Compare commits

...

24 Commits

Author SHA1 Message Date
35fd66ce80 Updated waybar with hyprpicker widget 2025-12-21 22:31:19 -05:00
71d2a9c177 Added hardware profiles for nvidia && intel 2025-12-21 22:29:59 -05:00
a2034dc4f2 Updated Hyprlock 2025-12-21 15:07:26 -05:00
388af355bb Added agenix-rekey 2025-12-21 00:36:01 -05:00
f4b3ac54ef Updated hyprland config 2025-12-15 23:48:36 -05:00
61f29392cf Added swaync 2025-12-15 23:48:13 -05:00
8e4ceadfb1 Updated Waybar && Switched to JetBrainsMono 2025-12-15 23:46:52 -05:00
51deed6aa6 Updated wallpapers 2025-12-15 23:44:33 -05:00
38a6c622f7 Enabled TLP power management 2025-12-11 00:11:33 -05:00
7da6384e89 Added Pyprland + Scratchpad 2025-12-07 23:53:43 -05:00
4c5b7a966d Switched to foot terminal 2025-12-07 23:52:36 -05:00
96ad8e6994 Disabled UWSM 2025-12-07 23:51:09 -05:00
9dd76a18a1 Disabled Helix Editor 2025-12-07 23:50:08 -05:00
b8abe6f711 Updated GTK styling 2025-12-07 23:48:40 -05:00
70fd1d8fae Updated Hyprlock & Hypridle 2025-12-07 22:17:59 -05:00
ab088fcba5 Shell Upgrades - fzf, zoxide, etc. 2025-12-07 22:09:30 -05:00
b57e8202d8 Updated flake inputs 2025-12-07 21:25:27 -05:00
96fdf27a60 Added Hypridle and Hyprlock && switched to UWSM 2025-11-27 15:23:59 -05:00
1f1bd53be9 New starship prompt 2025-11-22 18:47:06 -05:00
72c811c67e Fixed wlogout icons 2025-11-22 18:46:36 -05:00
97ef9a7a9e Added Zed editor 2025-11-16 22:15:29 -05:00
d55077e045 Added Helix editor 2025-11-16 13:44:56 -05:00
1dddfebbb8 Replaced rofi w/ walker 2025-11-16 01:17:54 -05:00
15317047e3 Updated Styling 2025-11-16 01:17:15 -05:00
66 changed files with 1635 additions and 720 deletions

388
flake.lock generated
View File

@@ -23,6 +23,30 @@
"type": "github" "type": "github"
} }
}, },
"agenix-rekey": {
"inputs": {
"devshell": "devshell",
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1759699908,
"narHash": "sha256-kYVGY8sAfqwpNch706Fy2+/b+xbtfidhXSnzvthAhIQ=",
"owner": "oddlama",
"repo": "agenix-rekey",
"rev": "42362b12f59978aabf3ec3334834ce2f3662013d",
"type": "github"
},
"original": {
"owner": "oddlama",
"repo": "agenix-rekey",
"type": "github"
}
},
"aquamarine": { "aquamarine": {
"inputs": { "inputs": {
"hyprutils": [ "hyprutils": [
@@ -94,11 +118,11 @@
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1752979451, "lastModified": 1760703920,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", "rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -146,14 +170,56 @@
"type": "github" "type": "github"
} }
}, },
"devshell": {
"inputs": {
"nixpkgs": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"elephant": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1765010464,
"narHash": "sha256-hYHhTChUJLTMyKjf1ScBUKrvEoxnPQrOlDxsg76hs5k=",
"owner": "abenz1267",
"repo": "elephant",
"rev": "3f35c11d4d02bb8fb049fe3b0cb2b13631d7a813",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "elephant",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1758112371, "lastModified": 1764724327,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=", "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d", "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -163,6 +229,22 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747046372, "lastModified": 1747046372,
@@ -178,7 +260,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1751685974, "lastModified": 1751685974,
@@ -195,6 +277,27 @@
} }
}, },
"flake-parts": { "flake-parts": {
"inputs": {
"nixpkgs-lib": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
@@ -212,7 +315,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_2": { "flake-parts_3": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@@ -233,7 +336,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_3": { "flake-parts_4": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nvf", "nvf",
@@ -254,7 +357,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_4": { "flake-parts_5": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix", "stylix",
@@ -262,11 +365,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1756770412, "lastModified": 1763759067,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751", "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -277,7 +380,7 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -310,6 +413,28 @@
} }
}, },
"gitignore": { "gitignore": {
"inputs": {
"nixpkgs": [
"agenix-rekey",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
@@ -334,18 +459,20 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1748186689, "host": "gitlab.gnome.org",
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"type": "github" "type": "gitlab"
}, },
"original": { "original": {
"host": "gitlab.gnome.org",
"owner": "GNOME", "owner": "GNOME",
"ref": "48.2", "ref": "gnome-49",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "gitlab"
} }
}, },
"home-manager": { "home-manager": {
@@ -376,11 +503,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762463325, "lastModified": 1764998300,
"narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=", "narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0562fef070a1027325dd4ea10813d64d2c967b39", "rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -424,11 +551,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1762458772, "lastModified": 1764602408,
"narHash": "sha256-PSIdziku8cdYQ27E4Xxn1Qgc9prerJDOqSV0CtQoC3k=", "narHash": "sha256-VWNWzqFAfKib2xNEhkFV1Jhf1Zd01oGZba5wJKwTWFg=",
"owner": "fiffeek", "owner": "fiffeek",
"repo": "hyprdynamicmonitors", "repo": "hyprdynamicmonitors",
"rev": "13fc7f0ce1e15ab96601a19a08e4ddd02ef7ced5", "rev": "8b23f99a9c02e449c88686abf0fe9bb66dd058e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -477,8 +604,8 @@
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner_2", "hyprwayland-scanner": "hyprwayland-scanner_2",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks_2",
"systems": "systems_3", "systems": "systems_4",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
@@ -720,7 +847,7 @@
}, },
"mango": { "mango": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"scenefx": "scenefx" "scenefx": "scenefx"
}, },
@@ -834,11 +961,27 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1762363567, "lastModified": 1764950072,
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", "rev": "f61125a668a320878494449750330ca58b78c557",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1757068644,
"narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -850,17 +993,17 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1762618508, "lastModified": 1765129370,
"narHash": "sha256-tFRxHd/1cn0nnMHaz4r6WtAJDjujIF3NfIcNs57SOGE=", "narHash": "sha256-oECOMG9TqJfAym8EbcopfvA2+UZQEAnYB/wWEV09OvE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "1574446aca715072c9f7d53b14cfe3a1dc5d5a3f", "rev": "09e1d5968ffd4984068413c39e1803e74d436ce7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -881,11 +1024,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758998580, "lastModified": 1764773531,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=", "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728", "rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -896,13 +1039,13 @@
}, },
"nvf": { "nvf": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_4",
"mnw": "mnw", "mnw": "mnw",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1762353527, "lastModified": 1762353527,
@@ -945,6 +1088,29 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735882644,
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_2": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"nixpkgs" "nixpkgs"
@@ -967,6 +1133,8 @@
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"agenix-rekey": "agenix-rekey",
"elephant": "elephant",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"hyprdynamicmonitors": "hyprdynamicmonitors", "hyprdynamicmonitors": "hyprdynamicmonitors",
"hyprland": "hyprland", "hyprland": "hyprland",
@@ -977,7 +1145,8 @@
"nvf": "nvf", "nvf": "nvf",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"silentSDDM": "silentSDDM", "silentSDDM": "silentSDDM",
"stylix": "stylix" "stylix": "stylix",
"walker": "walker"
} }
}, },
"scenefx": { "scenefx": {
@@ -1028,13 +1197,13 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_5",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nur": "nur_2", "nur": "nur_2",
"systems": "systems_5", "systems": "systems_6",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@@ -1042,11 +1211,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1762264356, "lastModified": 1765047449,
"narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", "narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "stylix", "repo": "stylix",
"rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", "rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1071,21 +1240,6 @@
} }
}, },
"systems_2": { "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"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -1100,7 +1254,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -1115,6 +1269,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_5": { "systems_5": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -1130,6 +1299,36 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -1166,11 +1365,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757716333, "lastModified": 1763914658,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=", "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559", "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1182,11 +1381,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757811970, "lastModified": 1764465359,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=", "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e", "rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1198,11 +1397,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1757811247, "lastModified": 1764464512,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=", "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e", "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1211,6 +1410,49 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"agenix-rekey",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735135567,
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"walker": {
"inputs": {
"elephant": [
"elephant"
],
"nixpkgs": "nixpkgs_5",
"systems": "systems_7"
},
"locked": {
"lastModified": 1765009662,
"narHash": "sha256-jDplKt9wvUKZOimuNHmeV/perFVMpFt0KVIh+EDd2WY=",
"owner": "abenz1267",
"repo": "walker",
"rev": "cbd809658b5d99116bbffda49b71616c107f4c80",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "walker",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [

View File

@@ -21,6 +21,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
agenix-rekey = {
url = "github:oddlama/agenix-rekey";
inputs.nixpkgs.follows = "nixpkgs";
};
nvf = { nvf = {
url = "github:notashelf/nvf"; url = "github:notashelf/nvf";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -47,21 +52,44 @@
}; };
hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors"; hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors";
elephant = {
url = "github:abenz1267/elephant";
inputs.nixpkgs.follows = "nixpkgs";
};
walker = {
url = "github:abenz1267/walker";
inputs.elephant.follows = "elephant";
};
}; };
outputs = outputs =
{ nixpkgs, ... }@inputs: {
self,
nixpkgs,
agenix-rekey,
...
}@inputs:
{ {
nixosConfigurations.vanta = nixpkgs.lib.nixosSystem { nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;
host = "vanta"; host = "vanta";
wallpaper = "twilight-village.png";
# Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub).
hostPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
}; };
modules = [ modules = [
./modules/system ./modules/system
./hosts/vanta ./hosts/vanta
]; ];
}; };
agenix-rekey = agenix-rekey.configure {
userFlake = self;
nixosConfigurations = self.nixosConfigurations;
};
}; };
} }

View File

@@ -6,5 +6,6 @@
imports = [ imports = [
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
./hardware-configuration.nix ./hardware-configuration.nix
../../profiles/intel.nix
]; ];
} }

View File

@@ -1,17 +0,0 @@
{
...
}:
{
programs.alacritty = {
enable = true;
theme = "catppuccin_mocha";
settings = {
font = {
normal = {
family = "FiraCode Nerd Font";
style = "Regular";
};
};
};
};
}

View File

@@ -3,11 +3,11 @@
}: }:
{ {
imports = [ imports = [
# ./alacritty.nix
./firefox.nix ./firefox.nix
./ghostty.nix ./foot.nix
# ./ghostty.nix
./git.nix ./git.nix
# ./kitty.nix # ./helix.nix
./hypr ./hypr
./mango.nix ./mango.nix
./nvf.nix ./nvf.nix
@@ -16,12 +16,15 @@
./screenshot.nix ./screenshot.nix
./ssh.nix ./ssh.nix
./stylix.nix ./stylix.nix
./swaync.nix
./vscode.nix ./vscode.nix
./walker.nix
./wallpaper.nix ./wallpaper.nix
./waybar ./waybar
./wlogout.nix ./wlogout.nix
./xdg.nix ./xdg.nix
./yazi.nix ./yazi.nix
./zed.nix
./zsh.nix ./zsh.nix
]; ];
} }

View File

@@ -18,6 +18,7 @@
DisableProfileImport = true; DisableProfileImport = true;
DisableProfileRefresh = true; DisableProfileRefresh = true;
DisableTelemetry = true; DisableTelemetry = true;
DisplayBookmarksToolbar = "never";
DontCheckDefaultBrowser = true; DontCheckDefaultBrowser = true;
EnableTrackingProtection = { EnableTrackingProtection = {
Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing

17
modules/home/foot.nix Normal file
View File

@@ -0,0 +1,17 @@
{
...
}:
{
programs.foot = {
enable = true;
server.enable = false;
settings = {
main = {
term = "xterm-256color";
};
mouse = {
hide-when-typing = "yes";
};
};
};
}

View File

@@ -6,7 +6,6 @@
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
settings = { settings = {
theme = "Catppuccin Mocha";
term = "xterm-256color"; term = "xterm-256color";
}; };
systemd.enable = true; systemd.enable = true;

78
modules/home/helix.nix Normal file
View File

@@ -0,0 +1,78 @@
{
pkgs,
...
}:
{
programs.helix = {
enable = true;
extraPackages = with pkgs; [
basedpyright
ruff
# pylyzer
isort
black
nixd
nixfmt
];
languages = {
language = [
{
name = "python";
language-servers = [
"basedpyright"
"ruff"
# "pylyzer"
];
auto-format = true;
formatter = {
command = "bash"; # We have to use bash to call both isort and black
args = [
"-c"
"isort --profile black - | black --quiet --line-length=79 -" # Line length of 79 in accordance with PEP 8
];
};
}
{
name = "nix";
language-servers = [ "nixd" ];
auto-format = true;
formatter = {
command = "nixfmt";
};
}
];
language-server = {
basedpyright.config.python.analysis = {
typeCheckingMode = "strict";
};
ruff = {
command = "ruff";
args = [ "server" ];
};
# pylyzer = {
# command = "pylyzer";
# args = [ "--server" ];
# };
nixd = {
command = "nixd";
};
};
};
settings = {
editor = {
line-number = "relative";
cursorline = true;
color-modes = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides = {
render = true;
};
};
theme = "catppuccin_mocha";
};
};
}

View File

@@ -3,8 +3,11 @@
}: }:
{ {
imports = [ imports = [
./hypridle.nix
./hyprland.nix ./hyprland.nix
./hyprlock.nix
./keybinds.nix ./keybinds.nix
./monitors.nix ./monitors.nix
./pyprland.nix
]; ];
} }

View File

@@ -0,0 +1,30 @@
{
...
}:
{
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock --grace 10";
before_sleep_cmd = "loginctl lock-session";
fail_timeout = 1000;
};
listener = [
{
timeout = 300;
on-timeout = "loginctl lock-session";
}
{
timeout = 450;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
{
timeout = 600;
on-timeout = "systemctl suspend || loginctl suspend";
}
];
};
};
}

View File

@@ -1,4 +1,5 @@
{ {
# inputs,
pkgs, pkgs,
config, config,
... ...
@@ -6,10 +7,15 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
hyprpolkitagent hyprpolkitagent
hyprpicker
]; ];
# xdg.configFile."uwsm/env".source =
# "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh";
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
# systemd.enable = false;
package = null; package = null;
portalPackage = null; portalPackage = null;
@@ -18,9 +24,43 @@
"${config.xdg.configHome}/hypr/monitors.conf" "${config.xdg.configHome}/hypr/monitors.conf"
]; ];
# monitor = [ animations = {
# "eDP-1, 2256x1504@60, 0x0, 1" # Stolen from https://github.com/Vobledoble/nixparency-dots/
# ]; enabled = true;
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
general = {
gaps_in = 5;
gaps_out = 10;
border_size = 2;
"col.active_border" = "rgb(4479A4)";
"col.inactive_border" = "rgba(4479A480)";
};
decoration = { decoration = {
rounding = 10; rounding = 10;
@@ -34,18 +74,37 @@
size = 8; size = 8;
passes = 3; passes = 3;
new_optimizations = true; new_optimizations = true;
}; popups = true;
}; };
shadow.enabled = false;
};
misc = {
vfr = true;
};
layerrule = [
"blur, waybar" # Add blur to waybar
"blurpopups, waybar" # Blur waybar popups too!
"ignorealpha 0.2, waybar" # Make it so transparent parts are ignored
];
exec-once = [ exec-once = [
"systemctl --user enable --now hypridle.service"
"systemctl --user enable --now hyprpolkitagent.service" "systemctl --user enable --now hyprpolkitagent.service"
"systemctl --user enable app-com.mitchellh.ghostty.service"
"wpaperd -d" "wpaperd -d"
"systemctl enable --user app-com.mitchellh.ghostty.service" "swaync"
"pypr"
]; ];
env = [ env = [
"NIXOS_OZONE_WL, 1" "NIXOS_OZONE_WL, 1"
"HYPRSHOT_DIR, ${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}" "HYPRSHOT_DIR, ${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}"
"XDG_CURRENT_DESKTOP, Hyprland"
"XDG_SESSION_TYPE, wayland"
"XDG_SESSION_DESKTOP, Hyprland"
]; ];
}; };
}; };

View File

@@ -0,0 +1,108 @@
{
config,
wallpaper,
...
}:
{
programs.hyprlock = {
enable = true;
settings = with config.lib.stylix.colors; {
general = {
hide_cursor = true;
};
background = [
{
path = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}";
blur_size = 4;
blur_passes = 3;
}
];
input-field = [
rec {
size = "250, 50";
outline_thickness = 3;
dots_size = 0.25;
dots_spacing = 0.4;
outer_color = "rgba(${base0F}55)";
capslock_color = outer_color;
numlock_color = outer_color;
bothlock_color = outer_color;
inner_color = "rgba(${base0F}11)";
font_color = "rgba(${base0F}ff)";
fade_on_empty = true;
placeholder_text = "<i>Password...</i>";
position = "0, -60";
halign = "center";
valign = "center";
}
];
label = [
# Hours
{
text = "cmd[update:1000] echo \"<b><big> $(date +\"%H\") </big></b>\"";
color = "rgb(${base0F})";
font_size = 112;
font_family = "GeistMono Nerd Font";
position = "0, 350";
halign = "center";
valign = "center";
}
# Minutes
{
text = "cmd[update:1000] echo \"<b><big> $(date +\"%M\") </big></b>\"";
color = "rgb(${base0F})";
font_size = 112;
font_family = "GeistMono Nerd Font";
position = "0, 220";
halign = "center";
valign = "center";
}
# Day of the Week
{
text = "cmd[update:18000000] echo \"<b><big> \"$(date +'%A')\" </big></b>\"";
color = "rgb(${base0F})";
font_size = 22;
font_family = "JetBrainsMono Nerd Font";
position = "0, 115";
halign = "center";
valign = "center";
}
# Date
{
text = "cmd[update:18000000] echo \"<b> \"$(date +'%d %b')\" </b>\"";
color = "rgb(${base0F})";
font_size = 18;
font_family = "JetBrainsMono Nerd Font";
position = "0, 85";
halign = "center";
valign = "center";
}
# Temperature
{
text = "cmd[update:18000000] echo \"<b>Feels like<big> $(curl -s 'wttr.in?format=%t' | tr -d '+') </big></b>\"";
color = "rgb(${base0F})";
font_size = 18;
font_family = "GeistMono Nerd Font";
position = "0, 40";
halign = "center";
valign = "bottom";
}
# Caps Lock Warning
{
text = "cmd[update:250] check-capslock";
color = "rgb(${base0F})";
font_size = 13;
font_family = "JetBrainsMono Nerd Font";
position = "0, -120";
halign = "center";
valign = "center";
}
];
};
};
}

View File

@@ -11,8 +11,8 @@
bind = [ bind = [
"$mod, Q, killactive" "$mod, Q, killactive"
"$mod, W, exec, ghostty +new-window" "$mod, W, exec, foot"
"$mod, S, exec, rofi -show drun -show-icons" "$mod, S, exec, walker"
"$mod, Escape, exec, wlogout" "$mod, Escape, exec, wlogout"
# Window Movement # Window Movement
@@ -29,10 +29,6 @@
"$mod CTRL SHIFT, left, movetoworkspace, r-1" "$mod CTRL SHIFT, left, movetoworkspace, r-1"
"$mod CTRL SHIFT, right, movetoworkspace, r+1" "$mod CTRL SHIFT, right, movetoworkspace, r+1"
# Brightness keys
", XF86MonBrightnessUp, exec, brightnessctl set 10%+"
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
# Screenshoting # Screenshoting
", PRINT, exec, hyprshot -m output --raw | satty --filename -" ", PRINT, exec, hyprshot -m output --raw | satty --filename -"
"$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -" "$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -"
@@ -43,11 +39,13 @@
", XF86AudioPlay, exec, playerctl play-pause" ", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next" ", XF86AudioNext, exec, playerctl next"
", XF86AudioMute, exec, pamixer -t" ", XF86AudioMute, exec, pamixer -t"
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
"ALT, XF86AudioMute, exec, pamixer --default-source -t" "ALT, XF86AudioMute, exec, pamixer --default-source -t"
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5" # Notification Center
"$mod, n, exec, swaync-client -t -sw"
# Scratchpads
"$mod, TAB, exec, pypr toggle term"
] ]
++ ( ++ (
# workspaces # workspaces
@@ -71,5 +69,17 @@
"$mod, mouse:273, resizewindow" "$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow" "$mod ALT, mouse:272, resizewindow"
]; ];
bindel = [
# Volume Controls
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5"
# Brightness Controls
", XF86MonBrightnessUp, exec, brightnessctl set 5%+"
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
];
}; };
} }

View File

@@ -0,0 +1,22 @@
{
pkgs,
...
}:
{
home.packages = with pkgs; [
pyprland
];
xdg.configFile."hypr/pyprland.toml".text = ''
[pyprland]
plugins = ["scratchpads"]
[scratchpads.term]
command = "foot --app-id term_dropdown"
class = "term_dropdown"
animation = "fromTop"
margin = 150
max_size = "1920px 1080px"
multi = false
'';
}

View File

@@ -1,14 +0,0 @@
{
...
}:
{
programs.kitty = {
enable = true;
enableGitIntegration = true;
font = {
name = "FiraCode Nerd Font";
};
shellIntegration.enableZshIntegration = true;
themeFile = "Catppuccin-Mocha";
};
}

View File

@@ -9,6 +9,8 @@
discord discord
sqlitebrowser sqlitebrowser
drawio drawio
check-capslock
wl-clipboard-rs
# Libre Office # Libre Office
libreoffice-qt libreoffice-qt
@@ -20,9 +22,10 @@
heybrochecklog heybrochecklog
rsgain rsgain
rofi
playerctl playerctl
pamixer pamixer
pavucontrol
brightnessctl brightnessctl
obsidian
]; ];
} }

View File

@@ -13,45 +13,43 @@
autoEnable = false; autoEnable = false;
polarity = "dark"; polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
targets = { fonts = {
# firefox = { monospace = {
# enable = true; name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font";
# colorTheme.enable = true; package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code;
# firefoxGnomeTheme.enable = true;
# profileNames = [ "eclypse" ];
# };
# gtk = {
# enable = true;
# };
qt = {
enable = true;
}; };
}; };
targets = {
ghostty.enable = true;
gtk.enable = true;
firefox = {
enable = true;
profileNames = [ "eclypse" ];
colorTheme.enable = true;
firefoxGnomeTheme.enable = true;
};
foot.enable = true;
lazygit.enable = true;
starship.enable = true;
swaync.enable = true;
yazi.enable = true;
};
}; };
home.pointerCursor = { home.pointerCursor = {
enable = true;
gtk.enable = true; gtk.enable = true;
package = pkgs.bibata-cursors; name = "Catppuccin-Mocha-Dark-Cursors";
name = "Bibata-Modern-Ice"; package = pkgs.catppuccin-cursors.mochaDark;
size = 17; size = 16;
}; };
gtk = { gtk = {
enable = true; enable = true;
colorScheme = "dark"; colorScheme = "dark";
theme = { iconTheme = {
name = "Tokyonight-Dark"; name = "Adwaita";
package = pkgs.tokyonight-gtk-theme.override { package = pkgs.adwaita-icon-theme;
tweakVariants = [ "macos" ];
}; };
}; };
};
# home.pointerCursor = {
# enable = true;
# gtk.enable = true;
# name = "Catppuccin-Mocha-Dark-Cursors";
# package = pkgs.catppuccin-cursors.mochaDark;
# size = 16;
# };
} }

104
modules/home/swaync.nix Normal file
View File

@@ -0,0 +1,104 @@
{
...
}:
{
services.swaync = {
enable = true;
settings = {
positionX = "right";
positionY = "top";
cssPriority = "user"; # "application"
control-center-width = 380;
control-center-height = 860;
control-center-margin-top = 10;
control-center-margin-bottom = 10;
control-center-margin-right = 10;
control-center-margin-left = 10;
notification-window-width = 400;
notification-icon-size = 48;
notification-body-image-height = 100;
notification-body-image-width = 200;
timeout = 4;
timeout-low = 2;
timeout-critical = 6;
fit-to-screen = false;
keyboard-shortcuts = true;
image-visibility = "when-available";
transition-time = 200;
hide-on-clear = false;
hide-on-action = false;
script-fail-notify = true;
scripts = {
example-script = {
exec = "echo 'Do something...'";
urgency = "Normal";
};
};
notification-visibility = {
example-name = {
state = "muted";
urgency = "low";
app-name = "Spotify";
};
};
widgets = [
"label"
"buttons-grid"
"mpris"
"dnd"
"title"
"notifications"
];
widget-config = {
title = {
text = "Notifications";
clear-all-button = true;
button-text = " 󰎟 ";
};
dnd = {
text = "Do Not Disturb";
};
label = {
max-lines = 1;
text = " ";
};
mpris = {
image-size = 96;
image-radius = 12;
};
volume = {
label = "󰕾";
show-per-app = true;
};
buttons-grid = {
actions = [
{
label = "";
command = "pamixer -t";
}
{
label = "";
command = "pamixer --default-source -t";
}
{
label = "";
command = "nmtui";
}
# {
# label = "󰂯";
# command = "blueman-manager";
# }
# {
# label = "󰏘";
# command = "nwg-look";
# }
];
};
};
};
};
}

67
modules/home/walker.nix Normal file
View File

@@ -0,0 +1,67 @@
{
inputs,
...
}:
{
imports = [
inputs.walker.homeManagerModules.default
];
programs.walker = {
enable = true;
runAsService = true;
config = {
close_when_open = true;
click_to_close = true;
providers = {
default = [ "desktopapplications" ];
max_results = 50;
prefixes = [
{
prefix = ";";
provider = "providerlist";
}
{
prefix = ">";
provider = "runner";
}
{
prefix = "/";
provider = "files";
}
{
prefix = ".";
provider = "symbols";
}
{
prefix = "!";
provider = "todo";
}
{
prefix = "%";
provider = "bookmarks";
}
{
prefix = "=";
provider = "calc";
}
{
prefix = "@";
provider = "websearch";
}
{
prefix = ":";
provider = "clipboard";
}
{
prefix = "$";
provider = "windows";
}
];
clipboard = {
time_format = "%d.%m. - %H:%M"; # format for the clipboard item date
};
};
};
};
}

View File

@@ -1,5 +1,6 @@
{ {
config, config,
wallpaper,
... ...
}: }:
let let
@@ -18,7 +19,7 @@ in
mode = "center"; mode = "center";
}; };
any = { any = {
path = "${wallpapers}/lanterns_of_twilight.png"; path = "${wallpapers}/${wallpaper}";
}; };
}; };
}; };

View File

@@ -1,248 +1,6 @@
{ {
... ...
}: }:
let
hyprland-workspaces = {
format = "{icon}";
show-special = false;
active-only = false;
on-click = "activate";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
all-outputs = true;
sort-by-number = true;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
};
format-icons = {
"1" = " ";
"2" = " ";
"3" = " ";
"4" = " ";
"5" = "";
"6" = " ";
"7" = "";
"8" = " ";
"9" = " ";
"10" = "10";
"focused" = "";
"default" = "";
};
};
menu = {
format = "{}";
exec = "echo ; echo 󱓟 app launcher";
interval = 86400;
tooltip = true;
on-click = "pkill rofi || rofi -show drun -show-icons";
};
hyprland-window = {
format = "󰣆 {title}";
max-length = 40;
separate-outputs = false;
rewrite = {
"^.*( LibreWolf|LibreWolf)$" = "󰈹 LibreWolf";
"(.*) Mozilla Firefox" = " Firefox";
"^.*v( .*|$)" = " Neovim";
"^.*~$" = "󰄛 Kitty";
"(.*) " = " Empty";
"^.*pdf( .*|$)" = "";
"^.*(- Mousepad)$" = " $1";
};
};
arrow-right = {
format = "󰁙";
tooltip = false;
};
cpu = {
format = "󰘚 {usage}󱉸";
};
memory = {
interval = 10;
format = "{used:0.1f}G 󰾆";
format-alt = "{percentage}% 󰾆";
format-alt-click = "click";
tooltip = true;
tooltip-format = "{used:0.1f}GB/{total:0.1f}G";
# on-click-right = "kitty --title btop sh -c 'btop'";
};
temperature = {
interval = 10;
tooltip = true;
hwmon-path = [
"/sys/class/hwmon/hwmon6/temp1_input"
"/sys/class/thermal/thermal_zone0/temp"
];
critical-threshold = 82;
format-critical = "{temperatureC}°C {icon}";
format = "{temperatureC}°C {icon}";
format-icons = [ "󰈸" ];
# on-click-right = "kitty --title nvtop sh -c 'nvtop'";
};
idle-inhibitor = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
};
tray = {
icon-size = 16;
spacing = 4;
};
pulseaudio = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} 󰂰 {volume}";
format-muted = "󰖁";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
"󰕾"
""
];
ignored-sinks = [ "Easy Effects Sink" ];
};
scroll-step = 5.0;
# on-click-right = "pavucontrol -t 3";
tooltip-format = "{icon} {desc} | {volume}%";
smooth-scrolling-threshold = 1;
};
battery = {
align = 0;
rotate = 0;
full-at = 100;
design-capacity = false;
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}";
format-charging = " {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-alt-click = "click";
format-full = "{icon} Full";
format-alt = "{icon} {time}";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
format-time = "{H}h {M}min";
tooltip = true;
tooltip-format = "{timeTo} {power}w";
};
mpris = {
interval = 10;
format = "{player_icon} ";
format-paused = "{status_icon}";
on-click-middle = "playerctl play-pause";
on-click = "playerctl previous";
on-click-right = "playerctl next";
scroll-step = 5.0;
smooth-scrolling-threshold = 1;
player-icons = {
chromium = "";
mpd = "";
default = "";
firefox = "";
kdeconnect = "";
mopidy = "";
mpv = "󰐹";
spotify = "";
vlc = "󰕼";
};
status-icons = {
paused = "󰐎";
playing = "";
stopped = "";
};
max-length = 10;
};
arrow-left = {
format = "󰁒";
tooltip = false;
};
notifications = {
tooltip = false;
format = "{icon} {text}";
format-icons = {
notification = "󱅫";
none = "󰂚";
dnd-notification = "󰂛";
dnd-none = "󰂛";
inhibited-notification = "󰂚";
inhibited-none = "󰂚";
dnd-inhibited-notification = "󰂛";
dnd-inhibited-none = "󰂛";
};
return-type = "json";
# exec-if = "which swaync-client";
# exec = "swaync-client -swb";
# on-click = "swaync-client -t -sw";
# on-click-right = "swaync-client -d -sw";
escape = true;
};
clock = {
interval = 1;
format = "{:%I:%M %p}"; # AM-PM Format
format-alt = " {:%H:%M %Y, %d %B, %A}";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
};
};
};
power = {
format = "";
exec = "echo ; echo 󰟡 power";
on-click = "wlogout";
interval = 86400;
tooltip = true;
};
in
{ {
programs.waybar = { programs.waybar = {
enable = true; enable = true;
@@ -251,93 +9,135 @@ in
{ {
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 34; margin-left = 10;
width = 1200; margin-right = 10;
margin-left = 50;
margin-right = 50;
margin-top = 5; margin-top = 5;
fixed-center = true; fixed-center = true;
reload_style_on_change = true; reload_style_on_change = false;
"hyprland/workspaces" = import ./modules/hyprland-workspaces.nix { };
"custom/menu" = import ./modules/menu.nix { };
"hyprland/window" = import ./modules/hyprland-window.nix { };
"disk" = import ./modules/disk.nix { };
"cpu" = import ./modules/cpu.nix { };
"memory" = import ./modules/memory.nix { };
"temperature" = import ./modules/temperature.nix { };
"idle_inhibitor" = import ./modules/idle-inhibitor.nix { };
"tray" = import ./modules/tray.nix { };
"network" = import ./modules/network.nix { };
"wireplumber" = import ./modules/wireplumber.nix { };
"backlight" = import ./modules/backlight.nix { };
"mpris" = import ./modules/mpris.nix { };
"battery" = import ./modules/battery.nix { full-at = 80; }; # Change this to come from the TLP setting
"clock" = import ./modules/clock.nix { };
"custom/power" = import ./modules/power.nix { };
"custom/hyprpicker" = import ./modules/hyprpicker.nix { };
"custom/separator#blank" = {
format = "";
interval = "once";
tooltip = false;
};
modules-left = [ modules-left = [
"custom/menu" "custom/menu"
"hyprland/window" "custom/separator#blank"
"group/info" "clock"
"custom/separator#blank"
"custom/hyprpicker"
]; ];
modules-center = [ modules-center = [
"hyprland/workspaces#4" "hyprland/workspaces"
]; ];
modules-right = [ modules-right = [
"idle_inhibitor" "tray"
"group/demo" "custom/separator#blank"
"group/hub" "group/motherboard"
"custom/separator#blank"
"wireplumber"
"custom/separator#blank"
"battery"
"custom/separator#blank"
"custom/power"
]; ];
"hyprland/workspaces#4" = hyprland-workspaces; "group/motherboard" = {
"custom/menu" = menu;
"hyprland/window" = hyprland-window;
"custom/arrow-right" = arrow-right;
"cpu" = cpu;
"memory" = memory;
"temperature" = temperature;
"idle_inhibitor" = idle-inhibitor;
"tray" = tray;
"pulseaudio" = pulseaudio;
"mpris" = mpris;
"battery" = battery;
"custom/arrow-left" = arrow-left;
"custom/notifications" = notifications;
"clock" = clock;
"custom/power" = power;
"group/info" = {
orientation = "inherit"; orientation = "inherit";
drawer = {
transition-duration = 300;
transition-left-to-right = false;
};
modules = [ modules = [
"custom/arrow-right"
"cpu" "cpu"
"memory" "memory"
"temperature" "temperature"
]; "disk"
};
"group/demo" = {
orientation = "inherit";
modules = [
"tray"
"pulseaudio"
"mpris"
"battery"
];
};
"group/utils" = {
orientation = "inherit";
drawer = {
transition-duration = 300;
transition-left-to-right = true;
};
modules = [
"custom/arrow-left"
"custom/notifications"
];
};
"group/hub" = {
orientation = "inherit";
modules = [
"group/utils"
"clock"
"custom/power"
]; ];
}; };
} }
]; ];
style = ./style.css; style = ''
@define-color base00 #192435; /* Darkest background (night sky / deep shadows) */
@define-color base01 #243449; /* Slightly lighter background */
@define-color base02 #36455D; /* Selection / inactive UI */
@define-color base03 #51637E; /* Comments / subtle foreground */
@define-color base04 #8FA3BA; /* Dark foreground (status bars) */
@define-color base05 #C7D2DF; /* Default foreground (text) */
@define-color base06 #E3EAF2; /* Light foreground (highlighted text) */
@define-color base07 #F4D9C7; /* Bright foreground (lantern light) */
@define-color base08 #D88C7A; /* Red / Errors (warm wood & lantern glow) */
@define-color base09 #E5AD97; /* Orange / Numbers / Constants */
@define-color base0A #E9C48A; /* Yellow / Classes / Warnings */
@define-color base0B #9FBFA8; /* Green / Strings */
@define-color base0C #8FB6C8; /* Cyan / Support / Regex */
@define-color base0D #7FA6D9; /* Blue / Functions / Keywords */
@define-color base0E #B69BCB; /* Purple / Types / Specials */
@define-color base0F #B0896A; /* Brown / Deprecated */
* {
all: unset;
font-family: "JetBrainsMono Nerd Font Propo"; /* The Propo(rtional) variant of the ensures icons are properly spaced */
font-feature-settings: '"zero", "tnum", "ss01", "ss02", "ss03", "cv01"';
font-weight: 700;
min-height: 0;
}
window#waybar {
background: transparent;
}
.module {
padding: 0 6px;
}
.modules-left,
.modules-center,
.modules-right {
background: @base00;
padding: 6px 8px;
border-color: @base03;
border-width: 1.5px;
border-style: solid;
border-radius: 0.75rem;
}
#workspaces button {
color: @base04;
font-size: 0.9rem;
padding: 0 7px;
}
#motherboard,
#custom-menu {
color: @base04;
}
#wireplumber,
#battery,
#custom-power,
#custom-hyprpicker,
#clock {
color: @base05;
}
'';
}; };
} }

View File

@@ -0,0 +1,27 @@
{
...
}:
{
format = "{icon}";
tooltip-format = "Backlight {percent}%";
format-icons = [
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
];
icon-size = 10;
on-scroll-down = "brightnessctl set 10%-";
on-scroll-up = "brightnessctl set +10%";
}

View File

@@ -0,0 +1,33 @@
{
full-at ? 100,
...
}:
{
inherit full-at;
states = {
# These values are percentages based on `full-at`
good = 95;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = " {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-full = "{icon} {capacity}%";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
format-time = "{H}h {M}min";
tooltip = true;
tooltip-format = "{timeTo} {power}w";
}

View File

@@ -0,0 +1,13 @@
{
...
}:
{
format = "";
format-disabled = "󰂳";
format-connected = "󰂱 {num_connections}";
tooltip-format = " {device_alias}";
tooltip-format-connected = "{device_enumerate}";
tooltip-format-enumerate-connected = " {device_alias} 󰂄{device_battery_percentage}%";
tooltip = true;
# on-click = "blueman-manager";
}

View File

@@ -0,0 +1,21 @@
{
...
}:
{
interval = 1; # Poll every second
format = "{:%H:%M - %d/%b}";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
};
};
}

View File

@@ -0,0 +1,7 @@
{
...
}:
{
format = "{usage}% 󰍛";
interval = 1;
}

View File

@@ -0,0 +1,10 @@
{
...
}:
{
interval = 30;
format = "{percentage_used}% 󰋊";
tooltip = true;
tooltip-format = "{specific_free:0.1f}/{specific_total:0.1f}GiB";
unit = "GiB";
}

View File

@@ -0,0 +1,15 @@
{
...
}:
{
format = "{title}";
max-length = 40;
separate-outputs = true; # List different titles for each monitor
offscreen-css = true; # No idea what this does
offscreen-css-text = "(inactive)"; # No idea what this does either
rewrite = {
"(.*) Mozilla Firefox" = " Firefox";
# Foot terminal doesn't display any title for some reason
# Find a fix
};
}

View File

@@ -0,0 +1,23 @@
{
...
}:
{
active-only = false; # Show all workspaces
all-outputs = true; # Show all workspace groups
format = "{icon}";
show-special = false; # Hide Hyprland's "special" workspaces
on-click = "activate";
on-scroll-up = "hyprctl dispatch workspace r+1";
on-scroll-down = "hyprctl dispatch workspace r-1";
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
};
format-icons = {
active = "";
default = "";
};
}

View File

@@ -0,0 +1,7 @@
{
...
}:
{
format = "󰏘";
on-click = "hyprpicker | tr -d '\\n' | wl-copy";
}

View File

@@ -0,0 +1,10 @@
{
...
}:
{
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
}

View File

@@ -0,0 +1,11 @@
{
...
}:
{
interval = 10;
format = "{used:0.1f}G 󰾆";
format-alt = "{percentage}% 󰾆";
format-alt-click = "click";
tooltip = true;
tooltip-format = "{used:0.1f}/{total:0.1f}GiB";
}

View File

@@ -0,0 +1,10 @@
{
...
}:
{
format = "{}";
exec = "echo ; echo 󱓟 app launcher";
interval = 86400;
tooltip = true;
on-click = "walker";
}

View File

@@ -0,0 +1,26 @@
{
...
}:
{
interval = 10;
format = "{player_icon} ";
format-paused = "{status_icon} <i>{dynamic}</i>";
player-icons = {
chromium = "";
mpd = "";
default = "";
firefox = "";
kdeconnect = "";
mopidy = "";
mpv = "󰐹";
spotify = "";
vlc = "󰕼";
};
status-icons = {
paused = "";
playing = "";
stopped = "";
};
max-length = 30;
}

View File

@@ -0,0 +1,22 @@
{
...
}:
{
format = "{ifname}";
format-wifi = "{icon}";
format-ethernet = "󰌘";
format-disconnected = "󰌙";
format-linked = "󰈁 {ifname} (No IP)";
tooltip-format = "{ipaddr} {bandwidthUpBytes} {bandwidthDownBytes}";
tooltip-format-wifi = "{essid} {icon} {signalStrength}%";
tooltip-format-ethernet = "{essid} 󰌘";
tooltip-format-disconnected = "󰌙 Disconnected";
max-length = 50;
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
}

View File

@@ -0,0 +1,10 @@
{
...
}:
{
format = "";
exec = "echo ; echo 󰟡 power";
on-click = "wlogout";
interval = 86400; # once every day
tooltip = true;
}

View File

@@ -0,0 +1,14 @@
{
...
}:
{
interval = 10;
tooltip = true;
# Thermal Zone 12 refers to the CPU package temp
# This might vary between devices. Maybe make it an input?
thermal-zone = 12;
critical-threshold = 85;
format-critical = "{temperatureC}°C {icon}";
format = "{temperatureC}°C {icon}";
format-icons = [ "󰈸" ];
}

View File

@@ -0,0 +1,7 @@
{
...
}:
{
icon-size = 15;
spacing = 8;
}

View File

@@ -0,0 +1,27 @@
{
...
}:
{
format = "{icon} {volume}% {format_source}";
format-muted = "󰖁 {format_source}";
format-source = "󰍬 {volume}%";
format-source-muted = "󰍭";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
"󰕾"
""
];
};
scroll-step = 5.0;
on-click = "pavucontrol -t 3";
on-click-right = "pavucontrol -t 4";
tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%";
}

View File

@@ -1,184 +0,0 @@
@define-color foreground #BFE3EA;
@define-color background alpha(#000007,0.05);
@define-color cursor #B98FAE;
@define-color color0 #000009;
@define-color color1 #60697E;
@define-color color2 #BA4F80;
@define-color color3 #4F7F96;
@define-color color4 #BE869D;
@define-color color5 #47A6BD;
@define-color color6 #49AEC4;
@define-color color7 #9BCED9;
@define-color color8 #6D9098;
@define-color color9 #60697E;
@define-color color10 #BA4F80;
@define-color color11 #4F7F96;
@define-color color12 #BE869D;
@define-color color13 #47A6BD;
@define-color color14 #49AEC4;
@define-color color15 #9BCED9;
/* ---- 💫 https://github.com/JaKooLit 💫 ---- */
/*DARK_PURPLE*/
@define-color main-color @color15;
* {
all: unset; /*this is really important to isolate waybar from gtk*/
font: bold 14px "FiraCode Nerd Font";
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
}
window#waybar {
/*background: alpha(@background, 0.1);*/
background: rgba (0, 0, 0, 0.6);
border-radius: 5px;
/*border: 0px solid alpha(@background,0.8);*/
}
#window {
padding: 0px 8px;
margin: 5px 4px 5px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
tooltip {
background: alpha(@background, 0.8);
border: 2px solid alpha(lighter(@main-color), 0.8);
border-radius: 10px;
}
tooltip label {
color: @freground;
}
#custom-arrow-right {
color: @main-color;
margin: 0px 4px;
}
#cpu,
#memory,
#temperature,
#disk,
#custom-updates {
padding: 0px 6px;
margin: 6px 4px;
background: alpha(darker(@main-color), 0.4);
color: @main-color;
border-radius: 10px;
}
#workspaces {
margin: 4px 4px;
background: alpha(lighter(@color4), 0.09);
border-radius: 5px;
}
#workspaces button {
padding: 0px 4px;
margin: 0px 0px;
color: alpha(@foreground, 0.3);
}
#workspaces button.active {
transition: color 0.5s;
color: lighter(@main-color);
}
#workspaces button.urgent,
#workspaces button:hover {
color: @color12;
background-color: transparent;
}
#demo,
#control-center {
padding: 0px 6px;
margin: 4px 2px 4px 2px;
color: lighter(@color3);
background: alpha(lighter(@main-color), 0.08);
border-radius: 5px;
}
#bluetooth,
#network,
#pulseaudio {
padding: 0px 0 0 4px;
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
background-color: transparent;
border: none;
box-shadow: none;
}
#pulseaudio-slider {
margin: 6px;
}
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: lighter(@main-color);
}
#language {
padding: 0px 3px 2px 0px;
}
#custom-arrow-left {
color: lighter(@main-color);
margin: 0px 4px;
}
#custom-notifications,
#custom-weather,
#custom-theme-switcher {
padding: 0px 8px;
margin: 8px 4px;
color: @main-color;
background: alpha(darker(@main-color), 0.8);
border-radius: 10px;
}
#tray {
padding: 0px 8px;
margin: 4px 2px 4px 2px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#custom-menu,
#custom-power {
padding: 0px 10px 0px 6px;
margin: 6px 6px 6px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#clock {
padding: 0px 8px;
margin: 5px 2px 5px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#power,
#bluetooth,
#mpd,
#pulseaudio,
#battery,
#mpris {
padding: 4px 4px;
color: lighter(@main-color);
}

View File

@@ -1,6 +1,7 @@
{ {
config, config,
pkgs, pkgs,
wallpaper,
... ...
}: }:
{ {
@@ -21,7 +22,7 @@
} }
{ {
label = "logout"; label = "logout";
action = "loginctl terminate-user $USER"; action = "uwsm stop";
text = "Logout"; text = "Logout";
keybind = "e"; keybind = "e";
} }
@@ -44,6 +45,10 @@
keybind = "r"; keybind = "r";
} }
]; ];
# * IMPORTANT
# * The for some reason the SVG icons will not be rendered when wlogout is called
# * from a hyprland keybind unless librsvg is installed.
# * See packages.nix (programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];)
style = with config.lib.stylix.colors.withHashtag; '' style = with config.lib.stylix.colors.withHashtag; ''
* { * {
font-family: "Rubik Light"; font-family: "Rubik Light";
@@ -52,7 +57,7 @@
} }
window { window {
background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/lanterns_of_twilight.png"); background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}");
background-size: cover; background-size: cover;
} }

21
modules/home/zed.nix Normal file
View File

@@ -0,0 +1,21 @@
{
pkgs,
...
}:
{
programs.zed-editor = {
enable = true;
extensions = [
"nix"
"catppuccin"
];
extraPackages = [ pkgs.nixd ];
userSettings = {
theme = "Catppuccin Mocha";
features = {
edit_prediction_provider = "copilot";
};
};
};
}

View File

@@ -8,30 +8,55 @@
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
fastfetch = {
enable = true;
};
fzf = {
enable = true;
enableZshIntegration = true;
};
starship = { starship = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
settings = { settings = {
add_newline = true; add_newline = true;
format = pkgs.lib.concatStrings [ format = pkgs.lib.concatStrings [
"[](#f38ba8)" "[](fg:base02)"
"[ 󱄅 ](fg:#1e1e2e bg:#f38ba8)" "[ 󱄅 ](bg:base02 fg:base07)"
"[](fg:#f38ba8 bg:#fab387)" "[](bg:base07 fg:base02)"
"$directory" "[( $username(@$hostname) )](bg:base07 fg:base02)"
"[](fg:#fab387 bg:#f9e2af)" "[](bg:red fg:base07)"
"$git_branch" "[ $directory ](bg:red fg:base02)"
"$git_status" "[](bg:cyan fg:red)"
"[](fg:#f9e2af bg:#a6e3a1)" "[( $git_branch $git_status )](bg:cyan fg:base02)"
"$nodejs" "[](fg:cyan bg:blue)"
"$rust" "[(( $golang)( $nodejs)( $rust)( $python) )](bg:blue fg:base02)"
"$golang" "[](fg:blue)"
"$php"
"[](fg:#a6e3a1)"
"$line_break" "$line_break"
"[](fg:base02)"
"$character" "$character"
]; ];
username = {
show_always = true;
style_user = "none";
style_root = "none";
format = "[$user]($style)";
};
hostname = {
style = "none";
format = "[$hostname]($style)";
ssh_only = false;
};
character = {
success_symbol = "[](bold fg:green)";
error_symbol = "[](bold fg:red)";
vimcmd_symbol = "[](bold fg:green)";
vimcmd_replace_one_symbol = "[](bold fg:lavender)";
vimcmd_replace_symbol = "[](bold fg:lavender)";
vimcmd_visual_symbol = "[](bold fg:yellow)";
};
directory = { directory = {
style = "fg:#1e1e2e bg:#fab387"; style = "none";
format = "[$path]($style)"; format = "[$path]($style)";
truncation_length = 3; truncation_length = 3;
truncation_symbol = "/"; truncation_symbol = "/";
@@ -44,43 +69,82 @@
}; };
git_branch = { git_branch = {
symbol = ""; symbol = "";
style = "bg:#f9e2af"; style = "none";
format = "[[ $symbol $branch ](fg:#1e1e2e bg:#f9e2af)]($style)"; format = "[$symbol $branch]($style)";
}; };
git_status = { git_status = {
style = "bg:#f9e2af"; style = "none";
format = "[[($all_status$ahead_behind )](fg:#1e1e2e bg:#f9e2af)]($style)"; format = "[$all_status$ahead_behind]($style)";
};
nodejs = {
symbol = "";
style = "bg:#a6e3a1";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)";
};
rust = {
symbol = "";
style = "bg:#a6e3a1";
format = ''[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)'';
}; };
golang = { golang = {
symbol = ""; symbol = "";
style = "bg:#a6e3a1"; style = "none";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg#a6e3a1)]($style)"; format = "[$symbol( $version)]($style)";
}; };
php = { nodejs = {
symbol = ""; symbol = "";
style = "bg:#a6e3a1"; style = "none";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)"; format = "[$symbol( $version)]($style)";
};
python = {
symbol = "";
style = "none";
format = "[$symbol( $version)( \\($virtualenv\\))]($style)";
};
rust = {
symbol = "";
style = "none";
format = "[$symbol( $version)]($style)";
}; };
scan_timeout = 100; scan_timeout = 100;
}; };
}; };
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = { zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = false;
antidote = {
enable = true;
plugins = [
"Aloxaf/fzf-tab"
];
};
autosuggestion.enable = true; autosuggestion.enable = true;
history = {
append = true;
findNoDups = true;
ignoreSpace = true;
ignoreDups = true;
saveNoDups = true;
share = true;
};
historySubstringSearch = {
enable = true;
searchDownKey = "^p";
searchUpKey = "^n";
};
initContent = ''
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
# set descriptions format to enable group support
# NOTE: don't use escape sequences (like '%F{red}%d%f') here, fzf-tab will ignore them
zstyle ':completion:*:descriptions' format '[%d]'
# preview directory's content when completing cd or zoxide
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
# custom fzf flags
# NOTE: fzf-tab does not follow FZF_DEFAULT_OPTS by default
zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2 --bind=tab:accept
# switch group using `<` and `>`
zstyle ':fzf-tab:*' switch-group '<' '>'
'';
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
shellAliases = { shellAliases = {
stu = "ssh stu"; stu = "ssh stu";
ff = "fastfetch";
}; };
}; };
}; };

View File

@@ -0,0 +1,27 @@
############ Variables ############
enable_battery=false
battery_charging=false
####### Check availability ########
for battery in /sys/class/power_supply/*BAT*; do
if [[ -f "$battery/uevent" ]]; then
enable_battery=true
if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then
battery_charging=true
fi
break
fi
done
############# Output #############
if [[ $enable_battery == true ]]; then
if [[ $battery_charging == true ]]; then
echo -n "(+) "
fi
echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"%
if [[ $battery_charging == false ]]; then
echo -n " remaining"
fi
fi
echo ""

View File

@@ -0,0 +1,7 @@
MAIN_KB_CAPS=$(hyprctl devices | grep -B 6 "main: yes" | grep "capsLock" | head -1 | awk '{print $2}')
if [ "$MAIN_KB_CAPS" = "yes" ]; then
echo "Caps Lock active"
else
echo ""
fi

View File

@@ -4,5 +4,16 @@
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(import ./heybrochecklog.nix) (import ./heybrochecklog.nix)
(self: super: {
# battery-status = prev.writeShellApplication {
# name = "battery-status";
# text = builtins.readFile ./battery-status.sh;
# };
check-capslock = super.writeShellApplication {
name = "check-capslock";
text = builtins.readFile ./check-capslock.sh;
};
})
]; ];
} }

View File

@@ -1,20 +1,42 @@
{ {
inputs, inputs,
config,
pkgs, pkgs,
lib,
host,
hostPubkey ? null,
... ...
}: }:
{ {
imports = [ imports = [
inputs.agenix.nixosModules.default inputs.agenix.nixosModules.default
inputs.agenix-rekey.nixosModules.default
]; ];
environment.systemPackages = [ environment.systemPackages = [
inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.default # CLI Tool # agenix-rekey's CLI tool replaces standard agenix's
inputs.agenix-rekey.packages.${pkgs.stdenv.hostPlatform.system}.default
]; ];
age.secrets = { age = {
tailscale-auth.file = ../../secrets/tailscale-auth.age; # Need to explicitly set identity paths because OpenSSH daemon is disabled
eclypsecloud-eclypse.file = ../../secrets/eclypsecloud-eclypse.age; # but the host keys are still generated via services.openssh.generateHostKeys = true
eclypse-password.file = ../../secrets/eclypse-password.age; identityPaths = map (key: key.path) config.services.openssh.hostKeys;
rekey = {
masterIdentities = [ "${inputs.self}/secrets/age-yubikey-identity-d9ed335b.pub" ];
storageMode = "local";
localStorageDir = ../../. + "/secrets/rekeyed/${host}";
}
# We only set the hostPubkey if one is supplied. For new hosts the pub key will not
# exist until it is generated after the first rebuild. Runtime decryption will fail
# but then the ssh host key will be generated in /etc/ssh and can be supplied
// lib.optionalAttrs (hostPubkey != null) {
inherit hostPubkey;
};
secrets = {
tailscale-auth.rekeyFile = ../../secrets/tailscale-auth.age;
eclypsecloud-eclypse.rekeyFile = ../../secrets/eclypsecloud-eclypse.age;
eclypse-password.rekeyFile = ../../secrets/eclypse-password.age;
};
}; };
} }

View File

@@ -14,11 +14,14 @@ in
programs = { programs = {
hyprland = { hyprland = {
enable = true; enable = true;
# withUWSM = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
}; };
mango.enable = true; mango.enable = true;
# uwsm.enable = true;
}; };
environment.systemPackages = [ environment.systemPackages = [
@@ -39,6 +42,7 @@ in
InputMethod = "qtvirtualkeyboard"; InputMethod = "qtvirtualkeyboard";
}; };
}; };
wayland.enable = true;
}; };
}; };
@@ -46,7 +50,7 @@ in
# displayManager.sddm.enable = true; # displayManager.sddm.enable = true;
# desktopManager.plasma5.enable = true; # desktopManager.plasma5.enable = true;
# Enable the System75 Cosmic Desktop Environment # Enable the System76 Cosmic Desktop Environment
# displayManager.cosmic-greeter.enable = true; # displayManager.cosmic-greeter.enable = true;
# desktopManager.cosmic = { # desktopManager.cosmic = {
# enable = true; # enable = true;

View File

@@ -8,6 +8,10 @@
fontconfig.enable = true; fontconfig.enable = true;
packages = with pkgs; [ packages = with pkgs; [
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
nerd-fonts.symbols-only
nerd-fonts.geist-mono
rubik
]; ];
}; };
} }

View File

@@ -17,6 +17,8 @@
# enable = true; # enable = true;
# enableSSHSupport = true; # enableSSHSupport = true;
# }; # };
gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
nix-ld.enable = true;
zsh.enable = true; zsh.enable = true;
}; };

View File

@@ -1,4 +1,5 @@
{ {
pkgs,
... ...
}: }:
{ {
@@ -7,6 +8,10 @@
yubikey-touch-detector.enable = true; yubikey-touch-detector.enable = true;
}; };
environment.systemPackages = with pkgs; [
age-plugin-yubikey
];
services = { services = {
yubikey-agent.enable = true; yubikey-agent.enable = true;
}; };

View File

@@ -7,7 +7,7 @@
xserver = { xserver = {
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session. # You can disable this if you're only using the Wayland session.
enable = true; enable = false;
# Configure keymap in X11 # Configure keymap in X11
xkb = { xkb = {
@@ -52,15 +52,41 @@
upower.enable = true; upower.enable = true;
# Enable the OpenSSH daemon. (Look into Fail2Ban in the future) # Disable SSH daemon but generate host keys anyway for secret rekeying
openssh = { openssh = {
enable = false;
generateHostKeys = true;
};
system76-scheduler.settings.cfsProfiles.enable = true;
tlp = {
enable = true; enable = true;
settings = { settings = {
PasswordAuthentication = false; CPU_BOOST_ON_AC = 1;
PermitRootLogin = "prohibit-password"; CPU_BOOST_ON_BAT = 0;
AllowUsers = [ "eclypse" ]; CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
PLATFORM_PROFILE_ON_AC = "performance";
PLATFORM_PROFILE_ON_BAT = "balanced";
START_CHARGE_THRESH_BAT1 = 65; # Only STOP_CHARGE_THRESH available on Framework
STOP_CHARGE_THRESH_BAT1 = 80;
# Fixes stuttering Hyprland animations on Intel iGPU (https://wiki.hypr.land/Configuring/Performance/)
INTEL_GPU_MIN_FREQ_ON_AC = 300;
INTEL_GPU_MIN_FREQ_ON_BAT = 300;
}; };
}; };
# Disable GNOME's power management (conflicts with TLP)
power-profiles-daemon.enable = false;
# Enable thermald (only necessary for Intel CPUs)
thermald.enable = true;
};
powerManagement = {
enable = true;
powertop.enable = true;
}; };
hardware = { hardware = {

View File

@@ -2,6 +2,7 @@
inputs, inputs,
pkgs, pkgs,
host, host,
wallpaper,
config, config,
... ...
}: }:
@@ -11,7 +12,7 @@
home-manager = { home-manager = {
useUserPackages = true; useUserPackages = true;
useGlobalPkgs = true; useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs host; }; extraSpecialArgs = { inherit inputs host wallpaper; };
users.eclypse = { users.eclypse = {
imports = [ ../home ]; imports = [ ../home ];

17
profiles/intel.nix Normal file
View File

@@ -0,0 +1,17 @@
{
pkgs,
...
}:
{
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
intel-ocl
intel-vaapi-driver
vpl-gpu-rt
libvdpau-va-gl
libva-vdpau-driver
];
};
}

42
profiles/nvidia.nix Normal file
View File

@@ -0,0 +1,42 @@
{
config,
...
}:
{
# 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 = true;
# 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 513.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;
};
}

View File

@@ -0,0 +1,7 @@
# Serial: 27501992, Slot: 1
# Name: agenix-rekey-alpha
# Created: Sat, 20 Dec 2025 06:01:41 +0000
# PIN policy: Once (A PIN is required once per session, if set)
# Touch policy: Always (A physical touch is required for every decryption)
# Recipient: age1yubikey1qvq48l020xg9xtt5epdpnzp3kvkm2vvc57357p58pyfq557a8q8hv84c82e
AGE-PLUGIN-YUBIKEY-14ZJ6XQVZM8KNXKCT2PKLW

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 7p4RPw HgBYYM/VqZ4KN4V4TrGmk86wPRhDgM+VaXfa3VlODRM
OdM//HvJTzB7/jw+c+6euiYz9ptUf/z22tzJSgxTD+w
-> B%P@9-grease
Zgr76aiZDhCWBdnbxoOptAfEuM1RWw1bN4rsUCec4VP0cDN856bCtaQjnWWbSTvv
YPHtmw
--- obv+bg63dTlnoke3tQdkAizcAqsYG2sUjYBZrhGZG68
(2<><04>$<24>Y@<40><>i<EFBFBD>7<EFBFBD>j<EFBFBD><02><>ar<61>7<EFBFBD>X$U<><0E>~<7E><>|<7C><>'<14><><EFBFBD>oo`<60><><EFBFBD><EFBFBD><11>DƆ{<7B>#<23>%<25><<m<>O)V<><56>2C<17><!<21>e<EFBFBD>ݺ(24<01><05><>~<7E><>

View File

@@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 7p4RPw FdmJ1odfweTU4HWPTeWuEcoIUq1V4ke28BWmlNNdNHg
9qi5QQHociRgSzZ97HifRDf+/Hh0cCZJzFsobpP1cpU
-> 4pq5-grease
yKZUs4lQM6BQgsyzMn3T1pvUt393/NvcRe7KwuTCDCU
--- N7NO5Ps2SG3SFNNnNNvYUSGgA0b5Dk7H6+x0rt6JtXA
Dl<EFBFBD>]e p<>(F0i3<<3C><><EFBFBD><EFBFBD><EFBFBD>Sm<53>E<7F>Eh<45><01><>S<EFBFBD>eX<><0F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V$0<>Ŝ<EFBFBD><C59C><EFBFBD>c`<60><>%<25><><EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD><51><EFBFBD><17>7&<26>X, <0B><>Lo<4C><6F>?QQ+<2B>~|%{<7B><><EFBFBD>-V<>%H<>):ց]Kx<4B><78>K<EFBFBD><4B>NX<4E><58>6<EFBFBD><36>ۦejO<><4F>#X<><58>

View File

@@ -1,19 +0,0 @@
# This file is NOT imported into the nix configuration, it is just for the agenix CLI
let
# System public ssh keys (/etc/ssh/)
vanta = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
in
{
# Tailscale auth key need to be up to date with a valid auth key in the tailscale
# dashboard. Single-use keys expire after a single machine connects, and even
# reusable keys expire after 90 days.
# Update tailscale-auth.age with `agenix -e tailscale-auth.age -i /path/to/private-ssh-key`
# Note: Only devices with the below public keys are allowed to edit tailscale-auth.age
"tailscale-auth.age".publicKeys = [ vanta ]; # Devices allowed to join the tailnet;
# Devices that can connect to EclypseCloud with the eclypse user.
"eclypsecloud-eclypse.age".publicKeys = [ vanta ];
# Devices that have the eclypse user
"eclypse-password.age".publicKeys = [ vanta ];
}

View File

@@ -1,6 +1,8 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7p4RPw 7GuZj43+NoyPXf//ZLM99vossbJXOpDQSkBi3w51Wl8 -> piv-p256 2e0zWw ApoXPsP2VGfJnOt+dDk7DfssOkbM/3vkn4jwSfxD4UAj
FTMjlyml+T87LQffffY2AJL5IhTAJF2QlfFvhvZpvOs jtn4DCA/EyrTl9DW1hs84yd3RgVuDU77ggM218HiUdc
--- iONf8B3bUxXtCiv0EAv5QO0ZyhE5A6YfRbcxUr/awFg -> *E(-grease Ull1npy_ >F7 *?
<EFBFBD><0E><><EFBFBD>Tw<54><77>J`<60>~B IM+85AtRNlMrFgqk/uAG
<EFBFBD><11>;<3B>lOh<4F><68>{2<>?<3F><>P<EFBFBD><50>F>@m<>o<><6F>c<EFBFBD><1C>~X<>3<EFBFBD>@.g<0E>ھ<EFBFBD>eK<65><18>V7zphS<68><53>د6<D8AF><36>.W<><57>O@F  --- nxCTKF6R3E/qaTTgr7jZdz4ZLRE15NsJpyKHizEJnPw
<EFBFBD>><3E>"l<><6C><EFBFBD><14><>r<>sN<4E><7F>V*F<>I<7F>|<0E><>0X<30>8<EFBFBD><38>
<EFBFBD><EFBFBD> |P<><50><EFBFBD><1C>F<EFBFBD> <0C><>D<EFBFBD>\x<>Z<EFBFBD><5A>P<EFBFBD><50>]<5D>ʧ<EFBFBD>t-"n<>m<EFBFBD><6D><EFBFBD><EFBFBD><EFBFBD>&<26><>|<7C> %<25><><EFBFBD><EFBFBD><EFBFBD>

BIN
wallpapers/sunset_bay.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 MiB