Compare commits

23 Commits
main ... server

Author SHA1 Message Date
b30b3969f2 removed user 2025-01-19 17:24:15 -08:00
3f0ffe65d9 removed user 2025-01-19 17:20:41 -08:00
dcaa8e12d1 added init for zsh 2025-01-18 02:57:27 -08:00
20dc313f96 nerdfonts 2025-01-18 02:47:48 -08:00
aea284a05d Fixed install.sh 2025-01-18 02:42:21 -08:00
22db4be6fa Added user creation 2025-01-18 02:23:20 -08:00
df9a7f6670 Fixed install.sh and others 2025-01-18 02:14:27 -08:00
5fdf334224 Fixed install.sh 2025-01-17 22:57:56 -08:00
048071ae76 Fixed install.sh 2025-01-17 01:36:31 -08:00
fe3a31818c Fixed cli-tools 2025-01-17 01:34:13 -08:00
bf49baeb28 Major fixes, removed flakes 2025-01-17 01:30:36 -08:00
c26161a21f fixed flake format 2025-01-17 00:40:41 -08:00
53ceea37d7 fixed flake format 2025-01-17 00:15:43 -08:00
b5810551c0 fixed flake format 2025-01-17 00:12:03 -08:00
34178ce1e8 fixed flake format 2025-01-17 00:06:07 -08:00
0a6566f394 fixed flake format 2025-01-17 00:05:15 -08:00
2a172ee6de fixed flake format 2025-01-16 23:56:13 -08:00
d6cee1e554 fixed flake format 2025-01-16 23:54:38 -08:00
aeda1c3e59 update flakes 2025-01-16 23:49:40 -08:00
f57d25b2bf homemanger update 2025-01-16 23:08:00 -08:00
b166a89091 install script 2025-01-16 22:35:09 -08:00
2312d47bba updated flake.nix 2025-01-14 01:28:54 -08:00
e923b34960 intial 2025-01-11 00:52:48 -08:00
57 changed files with 232 additions and 3682 deletions

4
.gitattributes vendored
View File

@@ -1,4 +0,0 @@
*.jpg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

353
flake.lock generated
View File

@@ -1,353 +0,0 @@
{
"nodes": {
"flake-compat": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"revCount": 69,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1760948891,
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"home-manager-unstable": {
"inputs": {
"nixpkgs": [
"nixpkgs-unstable"
]
},
"locked": {
"lastModified": 1763963090,
"narHash": "sha256-zR7uDZdQUUC+gBOi4byefMvIZuSBeMC6GswGNsTgQlM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7702d14879e8f0148fa168e38f3eaa2650fa0d85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs-unstable"
]
},
"locked": {
"lastModified": 1763505477,
"narHash": "sha256-nJRd4LY2kT3OELfHqdgWjvToNZ4w+zKCMzS2R6z4sXE=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "3bda9f6b14161becbd07b3c56411f1670e19b9b5",
"type": "github"
},
"original": {
"owner": "nix-darwin",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-snapd": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1761703712,
"narHash": "sha256-OKuNVXmHuZ0zi8T0aGWrBJizIfvdTqV1RiV0IN8GPZs=",
"owner": "nix-community",
"repo": "nix-snapd",
"rev": "f7694a0e26d890e285137e1b726b1b44038805c4",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-snapd",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1762847253,
"narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1761442529,
"narHash": "sha256-8aDps5fCt0Ndw56ZgeBvdT7E5zeUSFi3CJaNR7ZJKnA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "75762615e96b1a7f172dcdadf62aa9f3aebedf7b",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1754788789,
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1763835633,
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1763622513,
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs-unstable"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1763946814,
"narHash": "sha256-BGM7b3b38cyAc7xdFgh+qbXGy5dEdZ+7bO3QX0QyzmM=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "3426dd04bbf7aacd2b51b8a40e62e29f4381e7a8",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"home-manager-unstable": "home-manager-unstable",
"nix-darwin": "nix-darwin",
"nix-snapd": "nix-snapd",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -1,95 +0,0 @@
{
description = "Nixos Config Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs-unstable";
nix-snapd.url = "github:nix-community/nix-snapd";
nix-snapd.inputs.pkgs-unstable.follows = "nixpkgs";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-unstable = {
url = "github:nix-community/home-manager/";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixos-hardware = {
url = "github:NixOS/nixos-hardware/master";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self,
home-manager,
home-manager-unstable,
nix-darwin,
nix-snapd,
nixos-hardware,
nixpkgs,
nixpkgs-unstable,
nixvim,
...
}@inputs:
let
system = "x86_64-linux";
configPath = "/etc/nixos";
pkgs-unstable = import nixpkgs-unstable {
system = system;
config.allowUnfree = true;
};
in
{
nixosConfigurations = {
buildbox = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "buildbox";};
system = system;
modules = [
./hosts/buildbox/configuration.nix
inputs.home-manager.nixosModules.default
];
};
eva-01 = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-01";};
system = system;
modules = [
./hosts/eva-01/configuration.nix
inputs.home-manager.nixosModules.default
nixos-hardware.nixosModules.lenovo-thinkpad-x1-nano-gen1
nix-snapd.nixosModules.default { services.snap.enable = true; }
];
};
eva-03 = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-03";};
system = system;
modules = [
./hosts/eva-03/configuration.nix
inputs.home-manager.nixosModules.default
];
};
};
darwinConfigurations = {
eva-02 = nix-darwin.lib.darwinSystem{
specialArgs = {inherit inputs configPath;} // {hostname = "eva-02";};
system = "aarch64-darwin";
modules = [
./hosts/eva-02/configuration.nix
inputs.home-manager-unstable.darwinModules.home-manager
];
};
};
};
}

190
home-manager/cli-tools.nix Normal file
View File

@@ -0,0 +1,190 @@
{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
#cli tools
bat
btop
curl
docker
dust
ghostty
git
neovim
nettools
nix-prefetch-github
nmap
openssh
tailscale
thefuck
tldr
unzip
vim
wget
];
programs = {
fastfetch.enable = true;
fzf.enable = true;
bat.enable = true;
btop.enable = true;
kitty.enable = true;
yazi.enable = true;
starship.enable = true;
lazygit.enable = true;
#thefuck.enable = true;
#thefuck.enableZshIntegration = true;
git = {
enable = true;
userName = "USER";
};
eza = {
enable = true;
icons = "auto";
enableZshIntegration = true;
extraOptions = [
"--group-directories-first"
];
};
ssh = {
enable = true;
matchBlocks = {
global = {
host = "*";
setEnv = {
TERM = "xterm-256color";
};
};
};
# Add IdentityAgent configuration here
extraConfig = ''
IdentityAgent ~/.1password/agent.sock
'';
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
shellAliases = {
ls = "eza --color=auto";
grep = "grep --color=auto";
ll = "eza -la";
lg = "lazygit";
fu = "fuck";
lt = "eza --tree";
cd = "z";
cat = "bat";
catp = "bat -p";
btop = "btop --utf-force";
open = "xdg-open";
};
initExtra = ''
. ~/.nix-profile/etc/profile.d/nix.sh
fastfetch
'';
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
#plugins = ["thefuck"];
};
};
starship = {
settings = {
add_newline = true;
format = lib.concatStrings [
"$time"
"$directory"
"$git_branch"
"$git_status"
"$hostname"
"$golang"
"direnv"
"$status"
];
right_format = lib.concatStrings [
"$cmd_duration"
];
cmd_duration = {
disabled = false;
show_notifications = false;
min_time = 2000;
format = "[$duration](bold yellow)";
};
directory = {
style = "cyan";
format = ''\[[$path]($style)\] '';
};
direnv = {
disabled = false;
};
git_branch = {
style = "bold cyan";
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
};
git_status = {
format = "[($all_status$ahead_behind )]($style)";
conflicted = "🏳";
ahead = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
behind = "\${count}";
up_to_date = "";
untracked = "🤷";
stashed = "📦";
modified = "📝";
staged = ''[++\($count\)](green)'';
renamed = "👅";
deleted = "🗑";
};
golang = {
format = ''\[[$symbol($version)]($style)\]'';
};
hostname = {
format = "[$ssh_symbol$hostname]($style) ";
};
status = {
disabled = false;
success_symbol = "[](bold red)[](bold yellow)[](bold green) ";
symbol = "[](bold red) ";
format = "$symbol";
};
time = {
disabled = false;
style = "cyan";
format = ''\[[$time]($style)\] '';
};
};
};
};
}

View File

@@ -1,151 +0,0 @@
{
pkgs,
pkgs-unstable,
lib,
hostname,
...
}:
{
imports = [
./direnv.nix
./custom/custom.nix
./eza.nix
./fastfetch/fastfetch.nix
./git.nix
./newsboat.nix
./nixvim/default.nix
./starship.nix
./tmux.nix
./zsh.nix
];
home.packages = with pkgs; [
age
age-plugin-1p
age-plugin-yubikey
agedu
awscli2
b3sum
bat
btop
cbonsai
curl
dig
dust
# esptool
fd
fzf
ffmpeg-full
gemini-cli
git-filter-repo
graphviz
jq
kitty
lazygit
nix-du
nmap
ocamlPackages.utop
opencode
openconnect
openssl
ripgrep
s3cmd
# sage
termusic
timg
tldr
trippy
trivy
wget
wireguard-tools
yazi
yt-dlp
yubikey-manager
zstd
]
++ lib.optionals (hostname == "eva-01") [
# cli
parted
traceroute
# cyber
amass
bettercap
bloodhound
bully
burpsuite
cowpatty
crunch
dirbuster
dnschef
ffuf
hash-identifier
hashcat
hashcat-utils
hping
macchanger
medusa
netdiscover
netexec
pwnat
pwncat
reaverwps-t6x
recon-ng
rustscan
sqlmap
steghide
thc-hydra
]
++ lib.optionals (hostname == "eva-02") [
]
++ lib.optionals (hostname == "eva-03") [
# cli
parted
traceroute
]
++ lib.optionals (hostname == "buildbox") [
# cli
parted
traceroute
];
programs = {
ssh = {
enable = true;
matchBlocks = {
global = {
host = "*";
setEnv = {
TERM = "xterm-256color";
};
};
} // lib.optionalAttrs (hostname == "buildbox") {
"192.168.8.109" = {
identityFile = "~/.ssh/gitea-buildbox";
user = "gitea";
};
"github.com" = {
identityFile = "~/.ssh/github-buildbox";
user = "git";
};
};
extraConfig = if hostname == "eva-02"
then ''
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
''
else ''
IdentityAgent ~/.1password/agent.sock
'';
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
};
}

View File

@@ -1,10 +0,0 @@
# build.nix
let
# Import your nixpkgs channel. The <> syntax finds it automatically.
pkgs = import <nixpkgs> {
# Apply your overlay here
overlays = [ (import ./sage.nix) ];
};
in
# This file now evaluates to exactly one thing: the sage package.
pkgs.sage

View File

@@ -1,12 +0,0 @@
{
pkgs,
hostname,
...
}:
{
nixpkgs.overlays = [
(import ./sage.nix)
];
}

View File

@@ -1,27 +0,0 @@
final: prev: {
# We are adding a package named 'sage' to the package set
sage = prev.rustPlatform.buildRustPackage rec {
pname = "sage";
version = "0.1.0";
src = prev.fetchFromGitHub {
owner = "Rogue-King";
repo = "sage";
rev = "v${version}";
sha256 = "sha256-nR0EhRJFUHwQHnJagXHkP/A1fGIoMZtXXuJf70/iDas=";
};
# Placeholder hash for cargo dependencies - the build will tell you the correct one.
cargoHash = "sha256-BXTEUGH2KB1gYl9cERVPbhAs0soezsSabg0nDedEjRI=";
#cargoLock.lockFile = ./Cargo.lock;
meta = with prev.lib; {
description = "A tool for elegant mathematics";
homepage = "https://github.com/Rogue-King/sage";
license = licenses.mit;
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
maintainers = with maintainers; [ ];
};
};
}

View File

@@ -1,12 +0,0 @@
{
programs = {
eza = {
enable = true;
icons = "auto";
enableZshIntegration = true;
extraOptions = [
"--group-directories-first"
];
};
};
}

View File

@@ -1,35 +0,0 @@
{
hostname,
lib,
...
}:
{
programs = {
git = {
enable = true;
userName = "rogueking";
userEmail = "miguel@muniz.org";
lfs.enable = true;
} // lib.optionalAttrs (! (lib.elem hostname [ "buildbox" ])) {
signing = {
signByDefault = true;
signer = if hostname == "eva-02"
then
"/Applications/1Password.app/Contents/MacOS/op-ssh-sign"
else
"/opt/1Password/op-ssh-sign";
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHI7zcxrwwg4VqpGduhPX31aslzXwkRXiM32+8K+aIMu";
};
extraConfig = {
gpg = {
format = "ssh";
ssh = lib.optionalAttrs (hostname == "eva-02") {
program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
};
};
};
};
};
}

View File

@@ -1,9 +0,0 @@
{
programs.newsboat = {
enable = true;
urls = [
{ url = "https://dev.to/feed"; }
{ url = "https://stackoverflow.blog/feed/"; }
];
};
}

View File

@@ -1,43 +0,0 @@
{
lib,
hostname,
...
}:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
colorschemes.everforest = {
enable = true;
settings = {
background = "soft"; #"hard"
transparent_background = 1;
};
};
opts = {
number = true;
relativenumber = true;
expandtab = true;
shiftwidth = 2;
tabstop = 2;
};
diagnostic.settings = {
virtual_text = true;
update_in_insert = true;
severity_sort = true;
};
globals = {
mapleader = " ";
maplocalleader = " ";
};
clipboard.providers.wl-copy.enable = lib.mkIf (hostname != "eva-02") true;
};
}

View File

@@ -1,7 +0,0 @@
{
imports = [
./config.nix
./keymaps.nix
./plugins/default.nix
];
}

View File

@@ -1,129 +0,0 @@
{
programs.nixvim = {
keymaps = [
{
action = ":q<CR>";
key = "<leader>q";
options = {
silent = true;
noremap = true;
desc = "Quit";
};
}
{
action = ":w<CR>";
key = "<leader>w";
options = {
silent = true;
noremap = true;
desc = "Save";
};
}
{
action = ":wq<CR>";
key = "<leader>wq";
options = {
silent = true;
noremap = true;
desc = "Save and quit";
};
}
{
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
key = "<leader>t";
mode = [
"n"
"v"
"t"
];
options = {
silent = true;
noremap = true;
desc = "Toggle floating terminal";
};
}
{
action = ":Telescope live_grep<CR>";
key = "<leader>lg";
options = {
silent = true;
noremap = true;
desc = "Live grep";
};
}
{
action = ":Telescope find_files<CR>";
key = "<leader>ff";
options = {
silent = true;
noremap = true;
desc = "Find file";
};
}
{
action = ":Telescope oldfiles<CR>";
key = "<leader>of";
options = {
silent = true;
noremap = true;
desc = "Browse recent files";
};
}
{
action = ":Telescope file_browser<CR>";
key = "<leader>fb";
options = {
silent = true;
noremap = true;
desc = "Directory-based file browser";
};
}
{
action = ":Neotree toggle reveal<CR>";
key = "<leader>nt";
options = {
silent = true;
noremap = true;
desc = "Toggle file tree";
};
}
{
action = ":Neotree focus<CR>";
key = "<leader>nf";
options = {
silent = true;
noremap = true;
desc = "Toggle file tree focus";
};
}
{
action = ":Glance definitions<CR>";
key = "<leader>gd";
options = {
silent = true;
noremap = true;
desc = "Glance definitions";
};
}
{
action = ":Glance references<CR>";
key = "<leader>gr";
options = {
silent = true;
noremap = true;
desc = "Glance references";
};
}
{
action = "\"+y<CR>";
key = "<leader>y";
mode = [ "v" ];
options = {
silent = true;
noremap = true;
desc = "Glance references";
};
}
];
};
}

View File

@@ -1,68 +0,0 @@
{
programs.nixvim.plugins = {
blink-cmp = {
enable = true;
settings = {
completion = {
accept = {
auto_brackets = {
enabled = true;
semantic_token_resolution = {
enabled = false;
};
};
};
documentation = {
auto_show = true;
};
};
keymap = {
"<C-e>" = [
"hide"
];
"<C-d>" = [
"scroll_documentation_up"
"fallback"
];
"<C-f>" = [
"scroll_documentation_down"
"fallback"
];
"<Tab>" = [
"select_next"
"fallback"
];
"<S-Tab>" = [
"select_prev"
"fallback"
];
"<C-space>" = [
"show"
"show_documentation"
"hide_documentation"
];
"<CR>" = [
"select_and_accept"
"fallback"
];
"<Down>" = [
"select_next"
"fallback"
];
"<Up>" = [
"select_prev"
"fallback"
];
"<S-s>" = [
"snippet_backward"
"fallback"
];
"<s>" = [
"snippet_forward"
"fallback"
];
};
};
};
};
}

View File

@@ -1,47 +0,0 @@
{
programs.nixvim.plugins = {
codecompanion = {
enable = true;
settings = {
adapters = {
ollama = {
__raw = ''
function()
return require('codecompanion.adapters').extend('ollama', {
env = {
url = "http://miguel-pc:11434",
},
schema = {
model = {
default = 'qwen2.5-coder:14b',
},
num_ctx = {
default = 32768,
},
},
})
end
'';
};
};
opts = {
log_level = "TRACE";
send_code = true;
use_default_actions = true;
use_default_prompts = true;
};
strategies = {
agent = {
adapter = "ollama";
};
chat = {
adapter = "ollama";
};
inline = {
adapter = "ollama";
};
};
};
};
};
}

View File

@@ -1,56 +0,0 @@
{
config,
lib,
hostname,
...
}:
{
imports = [
./blink-cmp.nix
./glance.nix
./illuminate.nix
./indent-blankline.nix
./lint.nix
./lsp.nix
./scrollview.nix
./startup.nix
./telescope.nix
./which-key.nix
];
programs.nixvim.plugins = {
cmp-nvim-lsp.enable = true;
cmp.enable = true;
cmp_luasnip.enable = true;
colorizer.enable = true;
comment.enable = true;
diffview.enable = true;
direnv.enable = true;
gitblame.enable = true;
gitsigns.enable = true;
# hardtime.enable = true;
intellitab.enable = true;
lastplace.enable = true;
lsp-format.enable = true;
lsp-lines.enable = true;
lsp-signature.enable = true;
lualine.enable = true;
luasnip.enable = true;
markview.enable = true;
multicursors.enable = true;
neo-tree.enable = true;
neoscroll.enable = true;
nvim-autopairs.enable = true;
refactoring.enable = true;
toggleterm.enable = true;
treesitter.enable = true;
web-devicons.enable = true;
zig.enable = true;
};
programs.nixvim.performance.byteCompileLua = {
enable = true;
plugins = true;
};
}

View File

@@ -1,11 +0,0 @@
{
programs.nixvim.plugins = {
glance = {
enable = true;
settings = {
border.enable = true;
theme.mode = "darken";
};
};
};
}

View File

@@ -1,14 +0,0 @@
{
programs.nixvim.plugins = {
illuminate.settings = {
enable = true;
delay = 100;
minCountToHighlight = 1;
modesAllowlist = [
"n"
"i"
"v"
];
};
};
}

View File

@@ -1,14 +0,0 @@
{
programs.nixvim.plugins = {
indent-blankline = {
enable = true;
settings = {
scope = {
show_end = true;
show_exact_scope = true;
show_start = true;
};
};
};
};
}

View File

@@ -1,13 +0,0 @@
{
programs.nixvim.plugins = {
lint = {
enable = true;
autoCmd = {
event = [
"InsertLeave"
"TextChanged"
];
};
};
};
}

View File

@@ -1,36 +0,0 @@
{ pkgs, ... }:
{
programs.nixvim.plugins = {
lsp = {
enable = true;
servers = {
nil_ls.enable = true;
nixd = {
enable = true;
extraOptions = {
offset_encoding = "utf-8";
};
};
html.enable = true;
ts_ls.enable = true;
#tailwindcss.enable = true;
gopls.enable = true;
golangci_lint_ls.enable = true;
eslint.enable = true;
templ.enable = true;
pylsp.enable = true;
sqls.enable = true;
ocamllsp = {
enable = true;
package = pkgs.ocamlPackages.ocaml-lsp;
};
#rust_analyzer = { #Build Failure
# enable = true;
# installCargo = true;
# installRustc = true;
#};
zls.enable = true;
};
};
};
}

View File

@@ -1,12 +0,0 @@
{
programs.nixvim.plugins = {
scrollview = {
enable = true;
settings = {
signs_on_startup = [
"all"
];
};
};
};
}

View File

@@ -1,63 +0,0 @@
{
programs.nixvim.plugins = {
startup = {
enable = true;
settings.parts = [
"header"
"body"
];
settings.sections = {
header = {
align = "center";
content = {
__raw = "require('startup.headers').hydra_header";
};
defaultColor = "";
foldSection = false;
highlight = "Statement";
margin = 5;
oldfilesAmount = 0;
title = "Header";
type = "text";
};
body = {
align = "center";
content = [
[
" Find File"
"Telescope find_files"
"<leader>ff"
]
[
"󰍉 Find Word"
"Telescope live_grep"
"<leader>lg"
]
[
" Recent Files"
"Telescope oldfiles"
"<leader>of"
]
[
" File Browser"
"Telescope file_browser"
"<leader>fb"
]
[
" New File"
"lua require'startup'.new_file()"
"<leader>nf"
]
];
defaultColor = "";
foldSection = false;
highlight = "String";
margin = 5;
oldfilesAmount = 0;
title = "Basic Commands";
type = "mapping";
};
};
};
};
}

View File

@@ -1,16 +0,0 @@
{
programs.nixvim.plugins = {
telescope = {
enable = true;
extensions.file-browser = {
enable = true;
settings = {
hidden = {
file_browser = true;
folder_browser = true;
};
};
};
};
};
}

View File

@@ -1,45 +0,0 @@
{
programs.nixvim.plugins = {
which-key = {
enable = true;
settings = {
preset = "modern";
delay = 500;
expand = 1;
notify = false;
win = {
border = "single";
padding = [
1
1
];
wo.winblend = 10;
};
replace = {
desc = [
[
"<space>"
"SPACE"
]
[
"<leader>"
"SPACE"
]
[
"<[cC][rR]>"
"RETURN"
]
[
"<[tT][aA][bB]>"
"TAB"
]
[
"<[bB][sS]>"
"BACKSPACE"
]
];
};
};
};
};
}

View File

@@ -1,90 +0,0 @@
{ lib, ... }:
{
programs = {
starship = {
enable = true;
settings = {
add_newline = true;
format = lib.concatStrings [
"$time"
"$directory"
"$git_branch"
"$git_status"
"$hostname"
"$golang"
"direnv"
"$status"
];
right_format = lib.concatStrings [
"$cmd_duration"
];
cmd_duration = {
disabled = false;
show_notifications = false;
min_time = 2000;
format = "[$duration](bold yellow)";
};
directory = {
style = "cyan";
format = ''\[[$path]($style)\] '';
};
direnv = {
disabled = false;
};
git_branch = {
style = "bold cyan";
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
};
git_status = {
format = "[($all_status$ahead_behind )]($style)";
conflicted = "🏳";
ahead = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
behind = "\${count}";
up_to_date = "";
untracked = "🤷";
stashed = "📦";
modified = "📝";
staged = ''[++\($count\)](green)'';
renamed = "👅";
deleted = "🗑";
};
golang = {
format = ''\[[$symbol($version)]($style)\]'';
};
hostname = {
format = "[$ssh_symbol$hostname]($style) ";
};
rust = {
format = ''[$symbol($version )]($style)'';
};
status = {
disabled = false;
success_symbol = "[](bold red)[](bold yellow)[](bold green) ";
symbol = "[](bold red) ";
format = "$symbol";
};
time = {
disabled = false;
style = "cyan";
format = ''\[[$time]($style)\] '';
use_12hr = true;
};
};
};
};
}

View File

@@ -1,25 +0,0 @@
{ pkgs, ... }:
{
programs = {
tmux = {
enable = true;
mouse = true;
baseIndex = 1;
keyMode = "vi";
historyLimit = 5000;
prefix = "C-a";
terminal = "xterm-ghostty";
disableConfirmationPrompt = true;
plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.tilish
tmuxPlugins.resurrect
tmuxPlugins.gruvbox
tmuxPlugins.continuum
tmuxPlugins.prefix-highlight
];
extraConfig = "bind C-l send-keys 'C-l'";
};
};
}

View File

@@ -1,63 +0,0 @@
{ config, configPath, hostname, ... }:
{
programs = {
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
shellAliases = {
cd = "z";
cat = "bat";
catp = "bat -pP";
find = "fd";
grep = "rg";
lg = "lazygit";
ll = "eza -la";
ls = "eza --color=auto";
lt = "eza --tree";
open = "xdg-open";
locate = "sudo plocate";
tulpn = "sudo netstat -tulpn";
rebuild = if hostname == "eva-02"
then
"sudo darwin-rebuild switch --flake .#eva-02"
else
"sudo nixos-rebuild switch --flake /etc/nixos#$(uname -n)";
};
# profileExtra = ''
# export SSH_AUTH_SOCK=~/.1password/agent.sock
# '';
profileExtra = if hostname == "eva-02"
then ''
export SSH_AUTH_SOCK="~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
''
else ''
export SSH_AUTH_SOCK=~/.1password/agent.sock
'';
initContent = ''
fastfetch
'';
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
};
};
mcfly = {
enable = true;
fzf.enable = true;
fuzzySearchFactor = 5;
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

View File

@@ -1,22 +1,15 @@
{
hostname,
lib,
...
}:
{
programs = {
fastfetch = {
enable = true;
settings = {
logo = {
source = lib.mkIf (hostname == "eva-01") "/etc/nixos/assets/pfp/eva-01.jpg";
source = "/etc/nixos/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg";
type = "kitty";
height = 20;
width = 60;
padding = {
top = 2; # 2;
top = 2; #2;
left = 2; # 3;
};
};

View File

@@ -2,19 +2,15 @@
{
imports = [
./commands/commands.nix
./programs/programs.nix
inputs.nixvim.homeModules.nixvim
./cli-tools.nix
./fastfetch/fastfetch.nix
./direnv.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "rogueking";
# home.homeDirectory = "/Users/rogueking";
home.homeDirectory = if pkgs.stdenv.isDarwin
then "/Users/rogueking" # Path for macOS
else "/home/rogueking"; # Path for Linux
home.username = "USER";
home.homeDirectory = "/home/USER";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
@@ -23,15 +19,16 @@
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.05"; # Please read the comment before changing.
home.stateVersion = "24.11"; # Please read the comment before changing.
nixpkgs.config.allowUnfree = true;
fonts.fontconfig.enable = true;
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
#(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage

View File

@@ -1,50 +0,0 @@
{
hostname,
lib,
...
}:
{
programs.ghostty = {
enable = true;
package = lib.mkIf (hostname == "eva-02") null;
enableZshIntegration = true;
settings = {
# Use explicit theme instead of relying on system theme detection
theme = "Adwaita Dark";
# Explicitly set color scheme preference to avoid GTK warnings
gtk-adwaita = true;
gtk-single-instance = true;
#custom-shader = "./shaders/tft.glsl";
font-family = "JetBrainsMono Nerd Font";
font-family-italic = "Maple Mono";
font-family-bold-italic = "Maple Mono";
font-size = 12;
bold-is-bright = true;
window-decoration = false;
background-opacity = 0.8;
#background-blur-radius = 120;
window-save-state = "always";
mouse-hide-while-typing = true;
cursor-invert-fg-bg = true;
keybind = [
"global:cmd+grave_accent=toggle_quick_terminal"
"super+shift+enter=new_window"
"super+shift+k=new_split:down"
"super+shift+l=new_split:right"
"super+shift+x=close_window"
];
};
};
#home.file.".config/ghostty/shaders" = {
# enable = true;
# source = ./shaders;
# recursive = true;
#};
}

View File

@@ -1,38 +0,0 @@
{
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
# unlock_cmd = "killall hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
};
listeners = [
{
timeout = 30;
on-timeout = "pidof hyprlock && hyprctl dispatch dpms off";
on-resume = "pidof hyprlock && hyprctl dispatch dpms on";
}
{
timeout = 540;
on-timeout = "notify-send 'You are idle!'";
on-resume = "notify-send 'Welcome back!'";
}
{
timeout = 600;
on-timeout = "loginctl lock-session";
on-resume = "notify-send 'Desktop Unlocked!'";
}
# {
# timeout = 1200;
# on-timeout = "systemctl suspend";
# on-resume = "notify-send 'Welcome back to your desktop!'";
# }
];
};
};
}

View File

@@ -1,164 +0,0 @@
{ config, configPath, ... }:
{
wayland.windowManager.hyprland = {
enable = true;
settings = {
# === Monitor configuration ===
monitor = "eDP-1, 2560x1440@60.03300, 0x0, 1.25";
# === Autostart / Exec commands ===
exec-once = [
"sleep 1 && nm-applet --indicator"
"waybar"
"ghostty"
"swww-daemon"
"eww daemon"
"swww img ${configPath}/assets/ena/wallpaper.png"
];
# === Input settings ===
input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "";
kb_rules = "";
follow_mouse = true;
touchpad = {
natural_scroll = false;
};
sensitivity = 0;
};
# === General settings ===
general = {
gaps_in = 2.5;
gaps_out = 5;
border_size = 2;
"col.active_border" = "rgb(cdd6f4)";
"col.inactive_border" = "rgba(595959aa)";
layout = "dwindle";
};
misc = {
disable_hyprland_logo = true;
};
# === Decoration settings ===
decoration = {
rounding = 3;
blur = {
enabled = true;
size = 7;
passes = 3;
};
};
# === Animations ===
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
# === Dwindle layout options ===
dwindle = {
pseudotile = true;
preserve_split = true;
};
# === Gestures ===
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = 3;
workspace_swipe_invert = true;
workspace_swipe_distance = 200;
workspace_swipe_forever = true;
};
# === Per-device configuration ===
device = [
{
name = "epic-mouse-v1";
sensitivity = -0.5;
}
];
# === Window rules (v2) ===
windowrulev2 = [
"opacity 0.8 0.8,class:^(dolphin)$"
];
# === Modifier key ===
"$mod" = "SUPER";
# === Key bindings ===
bind = [
"$mod, T, exec, ghostty"
"$mod, Q, killactive"
"$mod, L, exec, hyprlock"
"$mod, M, exec, wlogout --protocol layer-shell"
"$mod SHIFT, M, exit"
"$mod, E, exec, dolphin"
"$mod, V, togglefloating"
"$mod, SPACE, exec, rofi -show drun"
"$mod, P, pseudo"
"$mod, J, togglesplit"
"$mod, S, exec, flameshot full"
"$mod SHIFT, S, exec, flameshot gui"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
"$mod SHIFT, 5, movetoworkspace, 5"
"$mod SHIFT, 6, movetoworkspace, 6"
"$mod SHIFT, 7, movetoworkspace, 7"
"$mod SHIFT, 8, movetoworkspace, 8"
"$mod SHIFT, 9, movetoworkspace, 9"
"$mod SHIFT, 0, movetoworkspace, 10"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
"$mod SHIFT, L, resizeactive, 10 0"
"$mod SHIFT, H, resizeactive, -10 0"
"$mod SHIFT, K, resizeactive, 0 -10"
"$mod SHIFT, J, resizeactive, 0 10"
];
# === Mouse bindings ===
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
};
};
}

View File

@@ -1,48 +0,0 @@
{ configPath, ... }:
{
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
grace = 10;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "${configPath}/assets/ena/wallpaper.png";
blur_passes = 3;
blur_size = 8;
}
];
image = [
{
path = "${configPath}/assets/pfp.jpg";
size = 150;
border_size = 4;
border_color = "rgb(0C96F9)";
rounding = -1;
position = "0, 200";
halign = "center";
valign = "center";
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(CFE6F4)";
inner_color = "rgb(657DC2)";
outer_color = "rgb(0D0E15)";
outline_thickness = 5;
placeholder_text = "Password...";
shadow_passes = 2;
}
];
};
};
}

View File

@@ -1,275 +0,0 @@
{
pkgs,
lib,
config,
...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
clock24h = false;
in
with lib;
{
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
on-click = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 16px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
border-radius: 24px 10px 24px 10px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 28px;
margin: 0px;
padding: 0px 30px 0px 15px;
border-radius: 0px 0px 40px 0px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
font-weight: bold;
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
margin: 4px 0px;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
margin: 0px;
padding: 0px 15px 0px 30px;
border-radius: 0px 0px 0px 40px;
}
''
];
};
}

View File

@@ -1,84 +0,0 @@
{ pkgs, hostname, lib, ... }:
{
imports = lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) [
./ghostty/ghostty.nix
./rofi/rofi.nix
./hypr/hypridle.nix
./hypr/hyprland.nix
./hypr/hyprlock.nix
#./hypr/waybar.nix
]
++ lib.optionals (hostname == "eva-02") [
./ghostty/ghostty.nix
];
home.packages =
lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) (with pkgs; [
#pwndbg
bambu-studio
blender
brave
desmume
gparted
jellyfin-media-player
kdePackages.bluedevil
kdePackages.bluez-qt
kdePackages.kate
kdePackages.kdeconnect-kde
kdePackages.oxygen-sounds
kdePackages.partitionmanager
libreoffice-still
librewolf
localsend
lutris-unwrapped
meld
melonDS
moonlight-qt
nestopia-ue
nix-ld
notion-app
obsidian
pandoc
prismlauncher
protonplus
protonup-qt
putty
pwninit
pwntools
qFlipper
r2modman
remmina
sdrangel
sdrpp
signal-desktop
spice
steam
steamcmd
swww
tor-browser
vesktop
vlc
vscode
wireshark
yubikey-agent
# rpi-imager
]
++ lib.optionals (hostname == "eva-01") [
sonic-visualiser
cinny-desktop
calibre
]
++ lib.optionals (hostname == "eva-02") [
vscode
]
++ lib.optionals (hostname == "eva-03") [
]);
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
}

View File

@@ -1,278 +0,0 @@
{
config,
pkgs,
configPath,
...
}:
{
programs.rofi = {
enable = true;
terminal = "ghostty";
package = pkgs.rofi-wayland.override {
plugins = [ pkgs.rofi-emoji-wayland ];
};
font = "JetBrainsMono Nerd Font 12";
plugins = [
pkgs.rofi-emoji-wayland
pkgs.rofi-calc
pkgs.rofi-games
pkgs.rofi-file-browser
];
extraConfig = {
modi = "drun,run,filebrowser,emoji";
show-icons = true;
display-drun = "Apps";
display-run = "Run";
display-filebrowser = "Files";
drun-display-format = "{name}";
hover-select = true;
me-select-entry = "MouseSecondary";
me-accept-entry = "MousePrimary";
window-format = "{w} · {c} · {t}";
dpi = 1;
};
theme =
let
inherit (config.lib.formats.rasi) mkLiteral;
in
{
"*" = {
active-background = mkLiteral "#101C2F";
active-foreground = mkLiteral "#D6CBD5";
normal-background = mkLiteral "#030508";
normal-foreground = mkLiteral "#D6CBD5";
urgent-background = mkLiteral "#2B7F48";
urgent-foreground = mkLiteral "#D6CBD5";
alternate-active-background = mkLiteral "#11606B";
alternate-active-foreground = mkLiteral "#D6CBD5";
alternate-normal-background = mkLiteral "#030508";
alternate-normal-foreground = mkLiteral "#D6CBD5";
alternate-urgent-background = mkLiteral "#030508";
alternate-urgent-foreground = mkLiteral "#D6CBD5";
selected-active-background = mkLiteral "#101C2F";
selected-active-foreground = mkLiteral "#D6CBD5";
selected-normal-background = mkLiteral "#BCADBB";
selected-normal-foreground = mkLiteral "#D6CBD5";
selected-urgent-background = mkLiteral "#2B7F48";
selected-urgent-foreground = mkLiteral "#D6CBD5";
background-color = mkLiteral "#030508";
background = mkLiteral "rgba(32,32,32,0.7)";
foreground = mkLiteral "#BCADBB";
border-color = mkLiteral "#101C2F";
background-alt = mkLiteral "@selected-active-background";
selected = mkLiteral "@selected-urgent-background";
active = mkLiteral "@selected-normal-background";
urgent = mkLiteral "@selected";
text-selected = mkLiteral "@background";
text-color = mkLiteral "@foreground";
};
"window" = {
enabled = true;
fullscreen = false;
transparency = mkLiteral "\"real\"";
cursor = mkLiteral "\"default\"";
spacing = 0;
border = mkLiteral "4px 0px 4px 0px";
border-radius = 30;
location = mkLiteral "center";
anchor = mkLiteral "center";
width = mkLiteral "50%";
background-color = mkLiteral "@background";
};
"mainbox" = {
padding = 15;
enabled = true;
orientation = mkLiteral "vertical";
children = map mkLiteral [
"inputbar"
"listbox"
];
background-color = mkLiteral "transparent";
};
"inputbar" = {
enabled = true;
padding = mkLiteral "10px 10px 100px 10px";
margin = 10;
background-color = mkLiteral "transparent";
border-radius = 25;
orientation = mkLiteral "horizontal";
children = map mkLiteral [
"entry"
"dummy"
"mode-switcher"
];
background-image = mkLiteral "url(\"${configPath}/assets/background.png\", width)";
};
"entry" = {
enabled = true;
expand = false;
width = mkLiteral "20%";
padding = 10;
border-radius = 12;
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
cursor = mkLiteral "text";
placeholder = mkLiteral "\"🖥 Search \"";
placeholder-color = mkLiteral "inherit";
};
"listbox" = {
spacing = 10;
padding = 10;
background-color = mkLiteral "transparent";
orientation = mkLiteral "vertical";
children = map mkLiteral [
"message"
"listview"
];
};
"listview" = {
enabled = true;
columns = 2;
lines = 6;
cycle = true;
dynamic = true;
scrollbar = true;
layout = mkLiteral "vertical";
reverse = false;
fixed-height = false;
fixed-columns = true;
spacing = 10;
background-color = mkLiteral "transparent";
border = 0;
};
"dummy" = {
expand = true;
background-color = mkLiteral "transparent";
};
"mode-switcher" = {
enabled = true;
spacing = 10;
background-color = mkLiteral "transparent";
};
"button" = {
width = mkLiteral "5%";
padding = 12;
border-radius = 12;
background-color = mkLiteral "@text-selected";
text-color = mkLiteral "@text-color";
cursor = mkLiteral "pointer";
};
"button selected" = {
background-color = mkLiteral "@selected";
text-color = mkLiteral "@text-selected";
};
"scrollbar" = {
width = 4;
border = 0;
handle-color = mkLiteral "@border-color";
handle-width = 8;
padding = 0;
};
"element" = {
enabled = true;
spacing = 10;
padding = 10;
border-radius = 12;
background-color = mkLiteral "transparent";
cursor = mkLiteral "pointer";
};
"element normal.normal" = {
background-color = mkLiteral "inherit";
text-color = mkLiteral "inherit";
};
"element normal.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@foreground";
};
"element normal.active" = {
background-color = mkLiteral "@active";
text-color = mkLiteral "@foreground";
};
"element selected.normal" = {
border = mkLiteral "1px 6px 1px 6px";
border-radius = 16;
border-color = mkLiteral "@selected";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@selected";
};
"element selected.urgent" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element selected.active" = {
background-color = mkLiteral "@urgent";
text-color = mkLiteral "@text-selected";
};
"element alternate.normal" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.urgent" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element alternate.active" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
};
"element-icon" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
};
"element-text" = {
background-color = mkLiteral "transparent";
text-color = mkLiteral "inherit";
cursor = mkLiteral "inherit";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"message" = {
background-color = mkLiteral "transparent";
border = 0;
};
"textbox" = {
padding = 12;
border-radius = 10;
background-color = mkLiteral "@background-alt";
text-color = mkLiteral "@background";
vertical-align = mkLiteral "0.5";
horizontal-align = mkLiteral "0.0";
};
"error-message" = {
padding = 12;
border-radius = 20;
background-color = mkLiteral "@background-alt";
text-color = mkLiteral "@background";
};
};
};
}

View File

@@ -1,242 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
pkgs-unstable,
inputs,
configPath,
hostname,
lib,
...
}:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
# (modulesPath + "/profiles/qemu-guest.nix")
];
# Bootloader.
boot.loader.grub.enable = lib.mkDefault true;
boot.loader.grub.devices = [ "nodev" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
# Nix optimizations
nix.optimise.automatic = true;
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
persistent = true;
options = "--delete-older-than 30d";
};
networking.hostName = "buildbox"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
virtualisation.docker.enable = true;
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = false;
# Enable the KDE Plasma Desktop Environment.
# services.displayManager.sddm.enable = true;
# services.displayManager.sddm.wayland.enable = true;
# services.desktopManager.plasma6.enable = true;
# services.displayManager.sddm.theme = "sddm-astronaut-theme";
services.tailscale.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = false;
# Enable sound with pipewire.
# hardware.pulseaudio.enable = false;
#hardware.pulseaudio = {
# enable = true;
# package = pkgs.pulseaudioFull;
#};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# VSCode-Server
programs.nix-ld.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true;
users.users.rogueking = {
isNormalUser = true;
description = "rogueking";
extraGroups = [ "networkmanager" "wheel" "docker" ];
shell = pkgs.zsh;
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
packages = with pkgs; [
#apps
#cli
# thunderbird
];
};
# Install firefox.
programs.firefox.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
security.polkit.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "rogueking" ];
};
# Enable OpenSSH daemon
services.openssh = {
enable = true;
ports = [ 22 ];
settings = {
PasswordAuthentication = true;
AllowUsers = [ "rogueking" ];
UseDns = true;
X11Forwarding = false;
PermitRootLogin = "no";
MaxAuthTries = 8;
};
};
users.users."rogueking".openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
];
nixpkgs.config.permittedInsecurePackages = [
"python3.12-ecdsa-0.19.1"
];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
#apps
#cider-2
#guacamole-client
#sddm-astronaut
#cli tools
btop
curl
docker
dust
file
findutils
git
gparted
kopia
lazydocker
nettools
nix-prefetch-github
nmap
openssh
openssl
parted
plocate
ptunnel
tailscale
tlp
unzip
vim
];
home-manager = {
extraSpecialArgs = {
inherit
configPath
inputs
pkgs-unstable
hostname
;
};
users = {
"rogueking" = import ./../../home-manager/home.nix;
};
backupFileExtension = "backup";
};
#home-manager = {
# extraSpecialArgs = { inherit inputs; };
# users = {
# "rogueking" = import ../home-manager/home.nix;
# };
# backupFileExtension = "backup";
#};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment?
}

View File

@@ -1,35 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/2387c615-e566-44ed-a708-ebd407ee16f6";
fsType = "ext4";
};
swapDevices = [ {
device = "/var/lib/swapfile";
size = 4*1024;
} ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,341 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
pkgs-unstable,
inputs,
configPath,
hostname,
...
}:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# Nix optimizations
nix.optimise.automatic = true;
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
persistent = true;
options = "--delete-older-than 30d";
};
# Dynamic power managment
# powerManagement = {
# enable = true;
# cpuFreqGovernor = "powersave";
# powertop.enable = true;
# };
# Power Management
services.thermald.enable = true;
services.power-profiles-daemon.enable = false;
services.auto-cpufreq.enable = true;
services.auto-cpufreq.settings = {
battery = {
governor = "balanced";
turbo = "auto";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
services.system76-scheduler = {
enable = true;
useStockConfig = true;
};
# Intel CPU integrated graphics packages
hardware.graphics.extraPackages = with pkgs; [
intel-media-driver
intel-ocl
intel-vaapi-driver
];
networking.hostName = "eva-01"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
virtualisation.docker.enable = true;
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = false;
programs.xwayland.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = true;
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
# Enable Hyprland wayland compositor
programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# Enable XDG Desktop Portal for proper D-Bus integration
services.dbus.enable = true;
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
services.tailscale.enable = true;
#Enable Ollama daemon
services.ollama = {
enable = true;
package = pkgs-unstable.ollama;
};
#Enable Hyprland
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = false;
services.avahi.enable = true;
services.avahi.nssmdns4 = true;
# Enable Smart Card
services.pcscd.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
#hardware.pulseaudio = {
# enable = true;
# package = pkgs.pulseaudioFull;
#};
hardware.bluetooth.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true;
users.users.rogueking = {
isNormalUser = true;
description = "rogueking";
extraGroups = [
"networkmanager"
"wheel"
"docker"
];
shell = pkgs.zsh;
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
packages = with pkgs; [
#apps
#cli
# thunderbird
];
};
# Install firefox.
programs.firefox.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
security.polkit.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "rogueking" ];
};
#steam
programs.steam.enable = true;
# Enable OpenSSH daemon
services.openssh = {
enable = true;
ports = [ 22 ];
settings = {
PasswordAuthentication = false;
AllowUsers = [ "rogueking" ];
UseDns = true;
X11Forwarding = false;
PermitRootLogin = "no";
MaxAuthTries = "20";
};
};
users.users."rogueking".openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
];
# Firewall
networking.firewall = {
enable = true;
allowedTCPPorts = [
22
# 80
# 443
];
logRefusedConnections = true;
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
#apps
#cider-2
fprintd
guacamole-client
#sddm-astronaut
#cli tools
aircrack-ng
android-tools
btop
curl
docker
dust
file
findutils
git
goose-cli
hcxdumptool
hcxtools
kopia
lazydocker
metasploit
nettools
nix-prefetch-github
nmap
openssh
openssl
plocate
ptunnel
tailscale
tlp
unzip
vim
wifite2
wirelesstools
#fonts
nerd-fonts.hack
nerd-fonts.fira-code
#unstable
#pkgs-unstable.vllm
];
home-manager = {
extraSpecialArgs = {
inherit
configPath
inputs
pkgs-unstable
hostname
;
};
users = {
"rogueking" = import ./../../home-manager/home.nix;
};
backupFileExtension = "backup";
};
#home-manager = {
# extraSpecialArgs = { inherit inputs; };
# users = {
# "rogueking" = import ../home-manager/home.nix;
# };
# backupFileExtension = "backup";
#};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment?
}

View File

@@ -1,41 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/0ec1b4fd-ca0f-4938-a038-37a69ec00b21";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2066-E44D";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ {
device = "/var/lib/swapfile";
size = 8*1024;
} ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,192 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
pkgs-unstable,
inputs,
configPath,
hostname,
lib,
...
}:
{
nix.settings.experimental-features = ["nix-command" "flakes"];
# Nix optimizations
nix.optimise.automatic = true;
# nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
interval = [{
Hour = 2;
Minute = 30;
Weekday = 7;
}];
# persistent = true;
options = "--delete-older-than 30d";
};
networking.hostName = "eva-02"; # Define your hostname.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
# services.xserver.enable = true; # Enable for Darwin compatibility
# Enable sound with pipewire.
# hardware.pulseaudio.enable = false;
#hardware.pulseaudio = {
# enable = true;
# package = pkgs.pulseaudioFull;
#};
# Enable Touch ID
security.pam.services.sudo_local.touchIdAuth = true;
# Define a user account. Don't forget to set a password with passwd.
system.primaryUser = "rogueking";
programs.zsh.enable = true;
users.users.rogueking = {
# isNormalUser = true;
description = "rogueking";
# extraGroups = [ "admin" "staff" "wheel" "docker" ];
home = "/Users/rogueking";
shell = pkgs.zsh;
packages = with pkgs; [
#apps
vscode
#cli
];
};
homebrew = {
enable = true;
user = "rogueking";
#onActivation.autoUpdate = true;
brews = [
"docker"
"esptool"
"huggingface-cli"
"putty"
];
casks = [
"1password"
"1password-cli"
"bambu-studio"
"blender"
"brave-browser"
"ghostty"
"imhex"
"jellyfin-media-player"
"localsend"
"melonds"
"moonlight"
"obsidian"
"signal"
"steam"
"vesktop"
"vlc"
];
};
# Install firefox.
# programs.firefox.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Enable OpenSSH daemon
# services.openssh = {
# enable = true;
# # ports = [ 22 ];
# settings = {
# PasswordAuthentication = true;
# AllowUsers = [ "rogueking" ];
# UseDns = true;
# X11Forwarding = false;
# PermitRootLogin = "no";
# MaxAuthTries = 8;
# };
# };
users.users."rogueking".openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
#apps
#cli tools
btop
curl
docker
dust
file
findutils
git
kopia
lazydocker
nettools
nix-prefetch-github
nmap
openssh
openssl
ptunnel
tailscale
unzip
vim
];
fonts.packages = with pkgs; [
nerd-fonts.hack
nerd-fonts.fira-code
];
home-manager = {
extraSpecialArgs = {
inherit
configPath
inputs
pkgs-unstable
hostname
;
};
users = {
"rogueking" = import ./../../home-manager/home.nix;
};
backupFileExtension = "backup";
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
system.stateVersion = 6;
}

View File

@@ -1,349 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
configPath,
hostname,
inputs,
pkgs,
pkgs-unstable,
...
}:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
];
#Kernel
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
# Bootloader.
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.enable = true;
#{
# enable = true;
# windows = {
# "11-Pro" = {
# title = "Windows 11 Pro";
# efiDeviceHandle = "HD3c";
# sortKey = "z_windows";
# };
# };
# };
nix.settings.experimental-features = ["nix-command" "flakes"];
# Nix optimizations
nix.optimise.automatic = true;
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
persistent = true;
options = "--delete-older-than 30d";
};
networking.hostName = "eva-03"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
virtualisation.docker.enable = true;
# Enable OpenGL
hardware.graphics = {
enable = true;
};
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
# powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
# powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = false;
programs.xwayland.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = true;
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
# Enable Hyprland wayland compositor
programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# XRDP
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "startplasma-x11";
services.xrdp.openFirewall = true;
# Enable Tailscale
services.tailscale = {
enable = true;
package = pkgs-unstable.tailscale;
};
#Enable Ollama daemon
#services.ollama.enable = true;
# Enable ollama
services.ollama = {
enable = false;
host = "0.0.0.0";
openFirewall = true;
acceleration = "cuda";
package = pkgs-unstable.ollama;
loadModels = [
"deepcoder:14b"
"gemma3:12b-it-qat"
"gemma3:27b-it-qat"
];
};
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = false;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
#hardware.pulseaudio = {
# enable = true;
# package = pkgs.pulseaudioFull;
#};
hardware.bluetooth.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true;
users.users.rogueking = {
isNormalUser = true;
description = "rogueking";
extraGroups = [ "networkmanager" "wheel" "docker" ];
shell = pkgs.zsh;
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
packages = with pkgs; [
#apps
#cli
# thunderbird
];
};
# Install firefox.
programs.firefox.enable = true;
# Enable all firmware
hardware.enableAllFirmware = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
security.polkit.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "rogueking" ];
};
#steam
programs.steam.enable = true;
# Enable OpenSSH daemon
services.openssh = {
enable = true;
ports = [ 22 ];
settings = {
PasswordAuthentication = false;
AllowUsers = [ "rogueking" ];
UseDns = true;
X11Forwarding = false;
PermitRootLogin = "no";
MaxAuthTries = "20";
};
};
users.users."rogueking".openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
#apps
#cider-2
fprintd
guacamole-client
#sddm-astronaut
polonium
#cli tools
aircrack-ng
android-tools
btop
curl
docker
dust
file
findutils
fwupd
git
hcxdumptool
hcxtools
kopia
lazydocker
metasploit
nettools
nix-prefetch-github
nmap
openssh
openssl
plocate
ptunnel
tlp
unzip
vim
wifite2
wirelesstools
#unstable
pkgs-unstable.crush
(pkgs-unstable.llama-cpp.override { cudaSupport = true; })
#fonts
nerd-fonts.hack
nerd-fonts.fira-code
];
home-manager = {
extraSpecialArgs = {
inherit
# config
configPath
inputs
pkgs-unstable
hostname
;
};
users = {
"rogueking" = import ./../../home-manager/home.nix;
};
backupFileExtension = "backup";
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment?
}

View File

@@ -1,40 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/c8250302-044c-4be5-89b8-a07706a8dedf";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/E81D-0813";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/d8666f92-b7cf-40fb-b305-d16a84d79fa0"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

31
install.sh Normal file
View File

@@ -0,0 +1,31 @@
!#/bin/bash
echo "Intalling nix and home-manager"
sh <(curl -L https://nixos.org/nix/install) --no-daemon
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >>~/.config/nix/nix.conf
. ~/.nix-profile/etc/profile.d/nix.sh
nix-channel --add https://nixos.org/channels/nixos-24.11 nixpkgs
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install
cp -r home-manager/ ~/.config/
home-manager switch
sudo echo "/home/$USER/.nix-profile/bin/zsh" | sudo tee -a /etc/shells
. ~/.nix-profile/etc/profile.d/nix.sh
chsh -s /home/$USER/.nix-profile/bin/zsh $USER
source ~/.zshrc
#sudo echo ". ~/.nix-profile/etc/profile.d/nix.sh" | sudo tee -a ~/.bashrc
#sudo echo "zsh" | sudo tee -a ~/.bashrc