diff --git a/assets/profile-picture.jpg b/assets/profile-picture.jpg new file mode 100644 index 0000000..a3914b3 Binary files /dev/null and b/assets/profile-picture.jpg differ diff --git a/assets/wallpapers/gruvbox-mountain-village.png b/assets/wallpapers/gruvbox-mountain-village.png new file mode 100644 index 0000000..623dfd0 Binary files /dev/null and b/assets/wallpapers/gruvbox-mountain-village.png differ diff --git a/wallpapers/lanterns_of_twilight.png b/assets/wallpapers/lanterns_of_twilight.png similarity index 100% rename from wallpapers/lanterns_of_twilight.png rename to assets/wallpapers/lanterns_of_twilight.png diff --git a/assets/wallpapers/mountains.jpg b/assets/wallpapers/mountains.jpg new file mode 100644 index 0000000..4d76129 Binary files /dev/null and b/assets/wallpapers/mountains.jpg differ diff --git a/wallpapers/sunset_bay.jpg b/assets/wallpapers/sunset_bay.jpg similarity index 100% rename from wallpapers/sunset_bay.jpg rename to assets/wallpapers/sunset_bay.jpg diff --git a/wallpapers/twilight-village.png b/assets/wallpapers/twilight-village.png similarity index 100% rename from wallpapers/twilight-village.png rename to assets/wallpapers/twilight-village.png diff --git a/flake.lock b/flake.lock index 0c3cd54..25d687a 100644 --- a/flake.lock +++ b/flake.lock @@ -47,39 +47,6 @@ "type": "github" } }, - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1762356719, - "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -101,17 +68,17 @@ "base16-fish": { "flake": false, "locked": { - "lastModified": 1754405784, - "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", + "lastModified": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", "owner": "tomyun", "repo": "base16-fish", - "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", "type": "github" }, "original": { "owner": "tomyun", "repo": "base16-fish", - "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", "type": "github" } }, @@ -191,35 +158,14 @@ "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": { "flake": false, "locked": { - "lastModified": 1764724327, - "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", + "lastModified": 1764873433, + "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", + "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", "type": "github" }, "original": { @@ -245,22 +191,6 @@ } }, "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { "flake": false, "locked": { "lastModified": 1751685974, @@ -298,24 +228,6 @@ } }, "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "nur", @@ -336,7 +248,7 @@ "type": "github" } }, - "flake-parts_4": { + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "nvf", @@ -344,11 +256,11 @@ ] }, "locked": { - "lastModified": 1760948891, - "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -357,7 +269,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -365,11 +277,11 @@ ] }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1767609335, + "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "250481aafeb741edfe23d29195671c19b36b6dca", "type": "github" }, "original": { @@ -378,24 +290,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems_3" - }, - "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" - } - }, "fromYaml": { "flake": false, "locked": { @@ -434,37 +328,15 @@ "type": "github" } }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "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" - } - }, "gnome-shell": { "flake": false, "locked": { "host": "gitlab.gnome.org", - "lastModified": 1764524476, - "narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", + "lastModified": 1767737596, + "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", "type": "gitlab" }, "original": { @@ -503,11 +375,11 @@ ] }, "locked": { - "lastModified": 1764998300, - "narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=", + "lastModified": 1769132734, + "narHash": "sha256-gmU9cRplrQWqoback9PgQX7Dlsdx8JlhlVZwf0q1F7E=", "owner": "nix-community", "repo": "home-manager", - "rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb", + "rev": "d055b309a6277343cb1033a11d7500f0a0f669fc", "type": "github" }, "original": { @@ -516,363 +388,13 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprdynamicmonitors": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1764602408, - "narHash": "sha256-VWNWzqFAfKib2xNEhkFV1Jhf1Zd01oGZba5wJKwTWFg=", - "owner": "fiffeek", - "repo": "hyprdynamicmonitors", - "rev": "8b23f99a9c02e449c88686abf0fe9bb66dd058e1", - "type": "github" - }, - "original": { - "owner": "fiffeek", - "repo": "hyprdynamicmonitors", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1762462052, - "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-guiutils": "hyprland-guiutils", - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner_2", - "nixpkgs": "nixpkgs_2", - "pre-commit-hooks": "pre-commit-hooks_2", - "systems": "systems_4", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1762542520, - "narHash": "sha256-hMWWVGEoJRNDaAJxHoL1YL+IXGxdQooEw8lABELVopg=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "522edc87126a48f3ce4891747b6a92a22385b1e7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-guiutils": { - "inputs": { - "aquamarine": [ - "hyprland", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprtoolkit": "hyprtoolkit", - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1762465111, - "narHash": "sha256-dS13YZdWjgGGLBjpT4FHB6xf8I/WiAU+mgNWXsZgDUs=", - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "rev": "a415eba866a953f3096d661318f771aa0082eb98", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1759610243, - "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1758927902, - "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprtoolkit": { - "inputs": { - "aquamarine": [ - "hyprland", - "hyprland-guiutils", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprland-guiutils", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprland-guiutils", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-guiutils", - "hyprutils" - ], - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": [ - "hyprland", - "hyprland-guiutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-guiutils", - "systems" - ] - }, - "locked": { - "lastModified": 1762463729, - "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", - "owner": "hyprwm", - "repo": "hyprtoolkit", - "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprtoolkit", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1762387740, - "narHash": "sha256-gQ9zJ+pUI4o+Gh4Z6jhJll7jjCSwi8ZqJIhCE2oqwhQ=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "926689ddb9c0a8787e58c02c765a62e32d63d1f7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "hyprland-guiutils", - "hyprtoolkit", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-guiutils", - "hyprtoolkit", - "systems" - ] - }, - "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "hyprwayland-scanner_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "mango": { - "inputs": { - "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_3", - "scenefx": "scenefx" - }, - "locked": { - "lastModified": 1762147045, - "narHash": "sha256-abMJkzCASBfJ4vPFZMM2jDaZEiwvq+FXk3uPFAH29DI=", - "owner": "DreamMaoMao", - "repo": "mango", - "rev": "1271832e947d3d4af27b36f687edd2f2e535f051", - "type": "github" - }, - "original": { - "owner": "DreamMaoMao", - "repo": "mango", - "rev": "1271832e947d3d4af27b36f687edd2f2e535f051", - "type": "github" - } - }, "mnw": { "locked": { - "lastModified": 1758834834, - "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=", + "lastModified": 1768701608, + "narHash": "sha256-kSvWF3Xt2HW9hmV5V7i8PqeWJIBUKmuKoHhOgj3Znzs=", "owner": "Gerg-L", "repo": "mnw", - "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001", + "rev": "20d63a8a1ae400557c770052a46a9840e768926b", "type": "github" }, "original": { @@ -881,13 +403,108 @@ "type": "github" } }, + "ndg": { + "inputs": { + "nixpkgs": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768214250, + "narHash": "sha256-hnBZDQWUxJV3KbtvyGW5BKLO/fAwydrxm5WHCWMQTbw=", + "owner": "feel-co", + "repo": "ndg", + "rev": "a6bd3c1ce2668d096e4fdaaa03ad7f03ba1fbca8", + "type": "github" + }, + "original": { + "owner": "feel-co", + "ref": "refs/tags/v2.6.0", + "repo": "ndg", + "type": "github" + } + }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1770739738, + "narHash": "sha256-sLpvik461SjSY1b23gHhNbM9aMJF9iU4h2vPepi9JoM=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "9e23010320cfe4012adc2d8810495bad0fe2d4a6", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1770735554, + "narHash": "sha256-8GzUa8bCyQ688jYW2waXrOqetTr7oV8UPTO2He+5Hsg=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "41b5de87692b8262fbdbff7faab93f04ff0be453", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix-jmu-cs345": { + "locked": { + "lastModified": 1745564874, + "narHash": "sha256-WrHuoXd3hiZ7sbrPKF8mJD6jPemwzM5swuDrDkVXlV0=", + "owner": "Eclypsed", + "repo": "nix-jmu-cs345", + "rev": "323dd2c148eb13fbbae5da48d8a0ed61f47c31ad", + "type": "github" + }, + "original": { + "owner": "Eclypsed", + "repo": "nix-jmu-cs345", + "type": "github" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1762463231, - "narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=", + "lastModified": 1769302137, + "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226", + "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", "type": "github" }, "original": { @@ -898,11 +515,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1758690382, - "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", "type": "github" }, "original": { @@ -912,88 +529,45 @@ "type": "github" } }, - "nixpkgs-lib": { + "nixpkgs-stable": { "locked": { - "lastModified": 1748740939, - "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "656a64127e9d791a334452c6b6606d17539476e2", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1762363567, - "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", + "lastModified": 1770617025, + "narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", + "rev": "2db38e08fdadcc0ce3232f7279bab59a15b94482", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_3": { + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1750386251, - "narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "076e8c6678d8c54204abcb4b1b14c366835a58bb", + "lastModified": 1770002874, + "narHash": "sha256-UOjvZXyZLZv0dP9GZPjis8IRxmrIoMt8c25WGCt7+hU=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "a8d74633f6920b91edf102e33a812af8489e2c88", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1764950072, - "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", - "owner": "NixOS", - "repo": "nixpkgs", - "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" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", + "owner": "noctalia-dev", + "repo": "noctalia-shell", "type": "github" } }, "nur": { "inputs": { - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ] @@ -1024,11 +598,11 @@ ] }, "locked": { - "lastModified": 1764773531, - "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", + "lastModified": 1767810917, + "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", "owner": "nix-community", "repo": "NUR", - "rev": "1d9616689e98beded059ad0384b9951e967a17fa", + "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", "type": "github" }, "original": { @@ -1039,20 +613,21 @@ }, "nvf": { "inputs": { - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_4", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts_3", "mnw": "mnw", + "ndg": "ndg", "nixpkgs": [ "nixpkgs" ], - "systems": "systems_5" + "systems": "systems_2" }, "locked": { - "lastModified": 1762353527, - "narHash": "sha256-67/sO6zaf02ZPz2s6k8swg6WMExz0gls7o4jmoljwl8=", + "lastModified": 1769173871, + "narHash": "sha256-vtcVJ/nlUVadTLoNsCb6HAYpwE/zOrlXljTnB5AyCsY=", "owner": "notashelf", "repo": "nvf", - "rev": "3d3cd879783be1457edfb42a38f392071335edd1", + "rev": "464a6f2641eecaf2a23b35a391b404b8efdcdb6a", "type": "github" }, "original": { @@ -1061,29 +636,6 @@ "type": "github" } }, - "plasma-manager": { - "inputs": { - "home-manager": [ - "home-manager" - ], - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1762274591, - "narHash": "sha256-Vbhluvk15qwiyNDyPd9tjJh9gxIfUjbKVT79c05Pd3I=", - "owner": "nix-community", - "repo": "plasma-manager", - "rev": "6296d7100cc84b2ff732b7c103a50c2856974cf6", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "plasma-manager", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -1107,87 +659,20 @@ "type": "github" } }, - "pre-commit-hooks_2": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore_2", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1762441963, - "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", "agenix-rekey": "agenix-rekey", - "elephant": "elephant", "home-manager": "home-manager_2", - "hyprdynamicmonitors": "hyprdynamicmonitors", - "hyprland": "hyprland", - "mango": "mango", + "niri": "niri", + "nix-jmu-cs345": "nix-jmu-cs345", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs", + "noctalia": "noctalia", "nur": "nur", "nvf": "nvf", - "plasma-manager": "plasma-manager", - "silentSDDM": "silentSDDM", "stylix": "stylix", - "walker": "walker" - } - }, - "scenefx": { - "inputs": { - "nixpkgs": [ - "mango", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750785057, - "narHash": "sha256-tGX6j4W91rcb+glXJo43sjPI9zQvPotonknG1BdihR4=", - "owner": "wlrfx", - "repo": "scenefx", - "rev": "3a6cfb12e4ba97b43326357d14f7b3e40897adfc", - "type": "github" - }, - "original": { - "owner": "wlrfx", - "repo": "scenefx", - "type": "github" - } - }, - "silentSDDM": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1761228832, - "narHash": "sha256-yOE3CA5VzThSTTtwv4K0iR0BUq1qc9vE6Kxoe0KXplo=", - "owner": "uiriansan", - "repo": "SilentSDDM", - "rev": "e334d92d3512cb5f49d16ca4b0a4baef721f9713", - "type": "github" - }, - "original": { - "owner": "uiriansan", - "repo": "SilentSDDM", - "type": "github" + "zen-browser": "zen-browser" } }, "stylix": { @@ -1197,13 +682,13 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_4", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" ], "nur": "nur_2", - "systems": "systems_6", + "systems": "systems_3", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -1211,11 +696,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1765047449, - "narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=", + "lastModified": 1769471853, + "narHash": "sha256-aqs0HkV2T/7Syf/pYLRVSwfk23PPAyGJmWT43U5ZSF4=", "owner": "nix-community", "repo": "stylix", - "rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a", + "rev": "805fa4262a21ada28cc918fa014359b9b35caea7", "type": "github" }, "original": { @@ -1241,16 +726,16 @@ }, "systems_2": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1269,66 +754,6 @@ "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": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "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": { "flake": false, "locked": { @@ -1365,11 +790,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1763914658, - "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", + "lastModified": 1767710407, + "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", "owner": "tinted-theming", "repo": "schemes", - "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", + "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", "type": "github" }, "original": { @@ -1381,11 +806,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1764465359, - "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", + "lastModified": 1767489635, + "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "edf89a780e239263cc691a987721f786ddc4f6aa", + "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", "type": "github" }, "original": { @@ -1397,11 +822,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1764464512, - "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", + "lastModified": 1767488740, + "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", + "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", "type": "github" }, "original": { @@ -1431,66 +856,59 @@ "type": "github" } }, - "walker": { - "inputs": { - "elephant": [ - "elephant" - ], - "nixpkgs": "nixpkgs_5", - "systems": "systems_7" - }, + "xwayland-satellite-stable": { + "flake": false, "locked": { - "lastModified": 1765009662, - "narHash": "sha256-jDplKt9wvUKZOimuNHmeV/perFVMpFt0KVIh+EDd2WY=", - "owner": "abenz1267", - "repo": "walker", - "rev": "cbd809658b5d99116bbffda49b71616c107f4c80", + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", "type": "github" }, "original": { - "owner": "abenz1267", - "repo": "walker", + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", "type": "github" } }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, + "xwayland-satellite-unstable": { + "flake": false, "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "lastModified": 1770583271, + "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769491693, + "narHash": "sha256-bbqeCDML1yXI6kpy8q8BshKRV1szk3xV0StAbzw4Z+o=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "708e0f10aba5de7d0f55883d06fa08aa6a7cd462", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", "type": "github" } } diff --git a/flake.nix b/flake.nix index 6ae9fa7..aee4d8e 100644 --- a/flake.nix +++ b/flake.nix @@ -31,37 +31,31 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - plasma-manager = { - url = "github:nix-community/plasma-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.home-manager.follows = "home-manager"; - }; - stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; - mango.url = "github:DreamMaoMao/mango?rev=1271832e947d3d4af27b36f687edd2f2e535f051"; - - hyprland.url = "github:hyprwm/Hyprland"; - - silentSDDM = { - url = "github:uiriansan/SilentSDDM"; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; }; - hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors"; - - elephant = { - url = "github:abenz1267/elephant"; + niri = { + url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; - walker = { - url = "github:abenz1267/walker"; - inputs.elephant.follows = "elephant"; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs = { + # IMPORTANT: To ensure compatibility with the latest Firefox version, use nixpkgs-unstable. + nixpkgs.follows = "nixpkgs"; + home-manager.follows = "home-manager"; + }; }; + + nix-jmu-cs345.url = "github:Eclypsed/nix-jmu-cs345"; }; outputs = @@ -74,13 +68,7 @@ { nixosConfigurations.vanta = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; - specialArgs = { - inherit inputs; - 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"; - }; + specialArgs = { inherit inputs; }; modules = [ ./modules/system ./hosts/vanta diff --git a/hosts/hosts.nix b/hosts/hosts.nix new file mode 100644 index 0000000..d4923b2 --- /dev/null +++ b/hosts/hosts.nix @@ -0,0 +1,21 @@ +{ + lib, + ... +}: +{ + options.host = { + name = lib.mkOption { + type = lib.types.str; + description = "Logical host name"; + }; + + # Host public SSH key (e.g. /etc/ssh/ssh_host_ed25519_key.pub). + # 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. + pubKey = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = "The public key of the host. Will be null until generated on first rebuild"; + }; + }; +} diff --git a/hosts/vanta/default.nix b/hosts/vanta/default.nix index 47a3984..a76f075 100644 --- a/hosts/vanta/default.nix +++ b/hosts/vanta/default.nix @@ -7,5 +7,11 @@ inputs.nixos-hardware.nixosModules.framework-12th-gen-intel ./hardware-configuration.nix ../../profiles/intel.nix + ../hosts.nix ]; + + host = { + name = "vanta"; + pubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP"; + }; } diff --git a/modules/home/assets.nix b/modules/home/assets.nix new file mode 100644 index 0000000..5a4d5fe --- /dev/null +++ b/modules/home/assets.nix @@ -0,0 +1,12 @@ +{ + config, + ... +}: +{ + home.file.".face".source = ../../assets/profile-picture.jpg; + + home.file."${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}" = { + source = ../../assets/wallpapers; + recursive = true; + }; +} diff --git a/modules/home/default.nix b/modules/home/default.nix index 5d67d2a..7808845 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -3,28 +3,24 @@ }: { imports = [ + ./assets.nix ./firefox.nix - ./foot.nix - # ./ghostty.nix ./git.nix - # ./helix.nix - ./hypr - ./mango.nix + ./helix.nix + ./kanshi.nix + ./niri.nix + ./noctalia.nix ./nvf.nix ./packages.nix - # ./plasma.nix ./screenshot.nix ./ssh.nix ./stylix.nix - ./swaync.nix - ./vscode.nix - ./walker.nix - ./wallpaper.nix - ./waybar - ./wlogout.nix + ./terminal.nix + ./vesktop.nix + ./vicinae.nix ./xdg.nix ./yazi.nix ./zed.nix - ./zsh.nix + ./zen-browser.nix ]; } diff --git a/modules/home/firefox.nix b/modules/home/firefox.nix index 728d932..6da552b 100644 --- a/modules/home/firefox.nix +++ b/modules/home/firefox.nix @@ -4,11 +4,20 @@ ... }: { + # This gets around having to run `pywalfox install` manually, which just creates this manifest + home.file.".mozilla/native-messaging-hosts/pywalfox.json".text = builtins.toJSON { + name = "pywalfox"; + description = "Automatically theme your browser using the colors generated by Pywal"; + path = "${pkgs.pywalfox-native}/bin/pywalfox"; + type = "stdio"; + allowed_extensions = [ "pywalfox@frewacom.org" ]; + }; + programs.firefox = { enable = true; languagePacks = [ "en-US" ]; nativeMessagingHosts = with pkgs; [ - kdePackages.plasma-browser-integration + pywalfox-native ]; policies = { DefaultDownloadDirectory = config.xdg.userDirs.download; @@ -70,7 +79,7 @@ packages = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin bitwarden - plasma-integration + pywalfox ]; settings = { "uBlock0@raymondhill.net".settings = { @@ -108,16 +117,6 @@ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@np" ]; }; - chat-gpt = { - name = "ChatGPT"; - urls = [ - { - template = "https://chatgpt.com?q={searchTerms}&temporary-chat=true"; - } - ]; - iconMapObj."64" = "https://chatgpt.com/favicon.ico"; - definedAliases = [ "@gpt" ]; - }; surugaya = { name = "Surugaya"; urls = [ @@ -125,8 +124,7 @@ template = "https://www.suruga-ya.jp/search?search_word={searchTerms}"; } ]; - iconMapObj."32" = - "https://www.suruga-ya.jp/drupal/themes/surugaya_mobile/images/pwa/images/icons/favicon-32x32.png"; + iconMapObj."16" = "https://www.suruga-ya.jp/drupal/themes/surugaya/favicon.ico"; definedAliases = [ "@suru" ]; }; }; diff --git a/modules/home/foot.nix b/modules/home/foot.nix deleted file mode 100644 index 7bd6da5..0000000 --- a/modules/home/foot.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - ... -}: -{ - programs.foot = { - enable = true; - server.enable = false; - settings = { - main = { - term = "xterm-256color"; - }; - mouse = { - hide-when-typing = "yes"; - }; - }; - }; -} diff --git a/modules/home/ghostty.nix b/modules/home/ghostty.nix deleted file mode 100644 index a691eb9..0000000 --- a/modules/home/ghostty.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - ... -}: -{ - programs.ghostty = { - enable = true; - enableZshIntegration = true; - settings = { - term = "xterm-256color"; - }; - systemd.enable = true; - }; -} diff --git a/modules/home/helix.nix b/modules/home/helix.nix index a69ab24..5d3bbfe 100644 --- a/modules/home/helix.nix +++ b/modules/home/helix.nix @@ -2,17 +2,38 @@ pkgs, ... }: +let + yazi-picker = pkgs.writeShellApplication { + name = "yazi-picker"; + text = '' + paths=$(yazi --chooser-file=/dev/stdout) + + if [[ -n "$paths" ]]; then + zellij action toggle-floating-panes + zellij action write 27 # send key + zellij action write-chars ":$1 $paths" + zellij action write 13 # send key + else + zellij action toggle-floating-panes + fi + ''; + }; +in { + home.packages = [ yazi-picker ]; + programs.helix = { enable = true; + defaultEditor = true; extraPackages = with pkgs; [ basedpyright ruff - # pylyzer isort black nixd nixfmt + rust-analyzer + rustfmt ]; languages = { language = [ @@ -21,7 +42,6 @@ language-servers = [ "basedpyright" "ruff" - # "pylyzer" ]; auto-format = true; formatter = { @@ -40,6 +60,18 @@ command = "nixfmt"; }; } + { + name = "rust"; + language-servers = [ "rust-analyzer" ]; + auto-format = true; + roots = [ + "Cargo.toml" + "Cargo.lock" + ]; + formatter = { + command = "rustfmt"; + }; + } ]; language-server = { basedpyright.config.python.analysis = { @@ -49,17 +81,29 @@ command = "ruff"; args = [ "server" ]; }; - # pylyzer = { - # command = "pylyzer"; - # args = [ "--server" ]; - # }; nixd = { command = "nixd"; }; + rust-analyzer = { + command = "rust-analyzer"; + config = { + inlayHints = { + bindingModeHints.enable = false; + closingBraceHints.minLines = 10; + closureReturnTypeHints.enable = "with_block"; + discriminantHints.enable = "fieldless"; + lifetimeElisionHints.enable = "skip_trivial"; + typeHints.hideClosureInitialization = false; + }; + }; + }; }; }; settings = { editor = { + bufferline = "always"; + completion-timeout = 5; + completion-trigger-len = 1; line-number = "relative"; cursorline = true; color-modes = true; @@ -68,8 +112,22 @@ normal = "block"; select = "underline"; }; + lsp = { + display-inlay-hints = true; + }; indent-guides = { render = true; + skip-levels = 1; + }; + soft-wrap = { + enable = true; + max-indent-retain = 80; + }; + }; + keys = { + normal = { + "C-y" = + ":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- yazi-picker open %{buffer_name}"; }; }; theme = "catppuccin_mocha"; diff --git a/modules/home/kanshi.nix b/modules/home/kanshi.nix new file mode 100644 index 0000000..84d2bf5 --- /dev/null +++ b/modules/home/kanshi.nix @@ -0,0 +1,39 @@ +{ + ... +}: +{ + services.kanshi = { + enable = true; + settings = [ + { + profile = { + name = "laptop"; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + scale = 1.0; + } + ]; + }; + } + { + profile = { + name = "docked"; + outputs = [ + { + criteria = "eDP-1"; + status = "disable"; + } + { + criteria = "LG Electronics LG TV SSCR2 *"; + mode = "3840x2160@120Hz"; + scale = 1.0; + status = "enable"; + } + ]; + }; + } + ]; + }; +} diff --git a/modules/home/mango.nix b/modules/home/mango.nix deleted file mode 100644 index a566197..0000000 --- a/modules/home/mango.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - inputs, - ... -}: -{ - imports = [ - inputs.mango.hmModules.mango - ]; - - wayland.windowManager.mango = { - enable = true; - settings = '' - bind=SUPER,Return,spawn,alacritty - bind=SUPER,s,spawn,rofi -show drun - - bind=SUPER,q,killclient - bind=SUPER+SHIFT,r,reload_config - - bind=SUPER,t,setlayout,tile - bind=SUPER,v,setlayout,vertical_grid - bind=SUPER,c,setlayout,spiral - bind=SUPER,x,setlayout,scroller - bind=SUPER,n,switch_layout - bind=SUPER,a,togglegaps - - bind=SUPER,Up,focusdir,up - bind=SUPER,Down,focusdir,down - bind=SUPER,Left,focusdir,left - bind=SUPER,Right,focusdir,right - - bind=SUPER+SHIFT,Up,exchange_client,up - bind=SUPER+SHIFT,Down,exchange_client,down - bind=SUPER+SHIFT,Left,exchange_client,left - bind=SUPER+SHIFT,Right,exchange_client,right - ''; - }; -} diff --git a/modules/home/niri.nix b/modules/home/niri.nix new file mode 100644 index 0000000..879f669 --- /dev/null +++ b/modules/home/niri.nix @@ -0,0 +1,427 @@ +{ + pkgs, + lib, + config, + ... +}: +let + # Executables + foot = lib.getExe' config.programs.foot.package "foot"; + vicinae = lib.getExe' config.programs.vicinae.package "vicinae"; + noctalia-shell = lib.getExe' config.programs.noctalia-shell.package "noctalia-shell"; + playerctl = lib.getExe' pkgs.playerctl "playerctl"; + wpctl = lib.getExe' pkgs.wireplumber "wpctl"; + brightnessctl = lib.getExe' pkgs.brightnessctl "brightnessctl"; +in +{ + programs.niri = { + # Niri is enabled by niri.nixosModules.nir in desktop.nix + settings = { + input = { + keyboard = { + xkb = { + layout = "us"; + options = "compose:ralt"; + }; + }; + touchpad = { + enable = true; + click-method = "clickfinger"; + drag = true; + drag-lock = true; + dwt = true; + natural-scroll = false; + scroll-method = "two-finger"; + tap = true; + tap-button-map = "left-right-middle"; # Mouse button click to register when tapping with 1, 2, or 3 fingers + }; + warp-mouse-to-focus = { + enable = true; + mode = "center-xy-always"; + }; + focus-follows-mouse = { + enable = true; + }; + mod-key = "Super"; + }; + binds = { + # General + "Mod+Slash" = { + action.show-hotkey-overlay = { }; + repeat = false; + hotkey-overlay.title = "Show hotkeys"; + }; + "Mod+Q" = { + action.close-window = { }; + repeat = false; + hotkey-overlay.title = "Close window"; + }; + "Mod+W" = { + action.spawn = foot; + repeat = false; + hotkey-overlay.title = "Terminal"; + }; + "Mod+A" = { + action.spawn = [ + vicinae + "toggle" + ]; + repeat = false; + hotkey-overlay.title = "Launcher"; + }; + "Mod+Escape" = { + action.spawn = [ + noctalia-shell + "ipc" + "call" + "sessionMenu" + "toggle" + ]; + repeat = false; + hotkey-overlay.title = "Session menu"; + }; + "Mod+N" = { + action.spawn = [ + noctalia-shell + "ipc" + "call" + "notifications" + "toggleHistory" + ]; + repeat = false; + hotkey-overlay.title = "Show notifications"; + }; + + # Media keys + "XF86AudioPrev" = { + action.spawn = [ + playerctl + "previous" + ]; + repeat = false; + hotkey-overlay.title = "Previous track"; + }; + "XF86AudioPlay" = { + action.spawn = [ + playerctl + "play-pause" + ]; + repeat = false; + hotkey-overlay.title = "Play / pause track"; + }; + "XF86AudioNext" = { + action.spawn = [ + playerctl + "next" + ]; + repeat = false; + hotkey-overlay.title = "Next track"; + }; + "XF86AudioRaiseVolume" = { + action.spawn = [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.05+" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Raise volume"; + }; + "XF86AudioLowerVolume" = { + action.spawn = [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.05-" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Lower volume"; + }; + "XF86AudioMute" = { + action.spawn = [ + wpctl + "set-mute" + "@DEFAULT_AUDIO_SINK@" + "toggle" + ]; + repeat = false; + allow-when-locked = true; + hotkey-overlay.title = "Mute playback"; + }; + "Alt+XF86AudioRaiseVolume" = { + action.spawn = [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SOURCE@" + "0.05+" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Raise microphone volume"; + }; + "Alt+XF86AudioLowerVolume" = { + action.spawn = [ + wpctl + "set-volume" + "@DEFAULT_AUDIO_SOURCE@" + "0.05-" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Lower microphone volume"; + }; + "Alt+XF86AudioMute" = { + action.spawn = [ + wpctl + "set-mute" + "@DEFAULT_AUDIO_SOURCE@" + "toggle" + ]; + repeat = false; + allow-when-locked = true; + hotkey-overlay.title = "Mute microphone"; + }; + + # Brightness + "XF86MonBrightnessUp" = { + action.spawn = [ + brightnessctl + "set" + "5%+" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Increase brightness"; + }; + "XF86MonBrightnessDown" = { + action.spawn = [ + brightnessctl + "set" + "5%-" + ]; + repeat = true; + allow-when-locked = true; + hotkey-overlay.title = "Decrease brightness"; + }; + + # Screen capture + "Print" = { + action.screenshot = { + show-pointer = false; + }; + repeat = false; + hotkey-overlay.title = "Screenshot"; + }; + "Mod+Print" = { + action.screenshot-window = { + # show-pointer = false; + }; + repeat = false; + hotkey-overlay.title = "Screenshot window"; + }; + "Shift+Print" = { + action.screenshot-screen = { + show-pointer = false; + }; + repeat = false; + hotkey-overlay.title = "Screenshot screen"; + }; + + # Display scaling + "Mod+Ctrl+Equal" = { + action.spawn = [ + "output-scale" + "+0.1" + ]; + repeat = true; + hotkey-overlay.title = "Increase display scale"; + }; + "Mod+Ctrl+Minus" = { + action.spawn = [ + "output-scale" + "-0.1" + ]; + repeat = true; + hotkey-overlay.title = "Decrease display scale"; + }; + "Mod+Ctrl+0" = { + action.spawn = [ + "output-scale" + "1.0" + ]; + repeat = true; + hotkey-overlay.title = "Reset display scale"; + }; + + # Window and column size + "Mod+F" = { + action.maximize-column = { }; + repeat = false; + hotkey-overlay.title = "Maximize Column"; + }; + "Mod+Shift+F" = { + action.fullscreen-window = { }; + repeat = false; + hotkey-overlay.title = "Fullscreen"; + }; + "Mod+Ctrl+F" = { + action.expand-column-to-available-width = { }; + repeat = false; + hotkey-overlay.title = "Fill empty column space"; + }; + "Mod+Equal" = { + action.set-column-width = "+10%"; + repeat = true; + hotkey-overlay.title = "Increase column width"; + }; + "Mod+Minus" = { + action.set-column-width = "-10%"; + repeat = true; + hotkey-overlay.title = "Decrease column width"; + }; + "Mod+Shift+Equal" = { + action.set-window-height = "+10%"; + repeat = true; + hotkey-overlay.title = "Increase window height"; + }; + "Mod+Shift+Minus" = { + action.set-window-height = "-10%"; + repeat = true; + hotkey-overlay.title = "Decrease window height"; + }; + "Mod+Z" = { + action.switch-focus-between-floating-and-tiling = { }; + repeat = false; + hotkey-overlay.title = "Toggle floating"; + }; + + # Window and column movement + "Mod+Up" = { + action.focus-window-or-monitor-up = { }; + repeat = false; + hotkey-overlay.title = "Focus window up"; + }; + "Mod+Down" = { + action.focus-window-or-monitor-down = { }; + repeat = false; + hotkey-overlay.title = "Focus window down"; + }; + "Mod+Left" = { + action.focus-column-or-monitor-left = { }; + repeat = false; + hotkey-overlay.title = "Focus window left"; + }; + "Mod+Right" = { + action.focus-column-or-monitor-right = { }; + repeat = false; + hotkey-overlay.title = "Focus window right"; + }; + "Mod+BracketLeft" = { + action.consume-or-expel-window-left = { }; + repeat = false; + hotkey-overlay.title = "Move window left"; + }; + "Mod+BracketRight" = { + action.consume-or-expel-window-right = { }; + repeat = false; + hotkey-overlay.title = "Move window right"; + }; + "Mod+Shift+Up" = { + action.move-column-to-monitor-up = { }; + repeat = false; + hotkey-overlay.title = "Move column up"; + }; + "Mod+Shift+Down" = { + action.move-column-to-monitor-down = { }; + repeat = false; + hotkey-overlay.title = "Move column down"; + }; + "Mod+Shift+Left" = { + action.move-column-left-or-to-monitor-left = { }; + repeat = false; + hotkey-overlay.title = "Move column left"; + }; + "Mod+Shift+Right" = { + action.move-column-right-or-to-monitor-right = { }; + repeat = false; + hotkey-overlay.title = "Move column right"; + }; + + # Workspaces + "Mod+Ctrl+Up" = { + action.focus-workspace-up = { }; + repeat = false; + hotkey-overlay.title = "Focus workspace up"; + }; + "Mod+Ctrl+Down" = { + action.focus-workspace-down = { }; + repeat = false; + hotkey-overlay.title = "Focus workspace down"; + }; + "Mod+Ctrl+Shift+Up" = { + action.move-column-to-workspace-up = { }; + repeat = false; + hotkey-overlay.title = "Move column to workspace up"; + }; + "Mod+Ctrl+Shift+Down" = { + action.move-column-to-workspace-down = { }; + repeat = false; + hotkey-overlay.title = "Move column to workspace down"; + }; + + # Overview + "Mod+Tab" = { + action.toggle-overview = { }; + repeat = false; + hotkey-overlay.title = "Toggle overview"; + }; + }; + window-rules = [ + { + geometry-corner-radius = { + bottom-left = 5.0; + bottom-right = 5.0; + top-left = 5.0; + top-right = 5.0; + }; + clip-to-geometry = true; + } + ]; + layer-rules = [ + { + # Use noctalia wallpaper as overview backdrop + matches = [ { namespace = "^noctalia-overview*"; } ]; + place-within-backdrop = true; + } + ]; + prefer-no-csd = true; + screenshot-path = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y%m%d-%H%M%S.png"; + hotkey-overlay = { + skip-at-startup = true; + }; + # If not using systemd for noctalia, use this + # spawn-at-startup = [ + # { argv = [ "noctalia-shell" ]; } + # ]; + cursor = { + size = 16; + theme = "catppuccin-mocha-dark-cursors"; + hide-when-typing = true; + }; + gestures = { + hot-corners.enable = false; + }; + environment = { + "NIXOS_OZONE_WL" = "1"; + }; + debug = { + # Allows notification actions and window activation from Noctalia. + honor-xdg-activation-with-invalid-serial = { }; + }; + # Support for external 'inclues' sounds like it is in the works. + # Will just have to wait until then for noctalia color scheme integration. + }; + }; +} diff --git a/modules/home/noctalia.nix b/modules/home/noctalia.nix new file mode 100644 index 0000000..71faad5 --- /dev/null +++ b/modules/home/noctalia.nix @@ -0,0 +1,127 @@ +{ + inputs, + config, + ... +}: +{ + imports = [ + inputs.noctalia.homeModules.default + ]; + + programs.noctalia-shell = { + enable = true; + systemd.enable = true; # Replaces spawn-at-startup in niri + settings = { + general = { + avatarImage = "~/.face"; + }; + location.name = "Washington DC"; + bar = { + widgets = { + right = [ + { + id = "plugin:tailscale"; + } + { + id = "Tray"; + } + { + id = "NotificationHistory"; + } + { + id = "Battery"; + } + { + id = "Volume"; + } + { + id = "Brightness"; + } + { + id = "ControlCenter"; + } + ]; + }; + }; + templates = { + activeTemplates = [ + { + enabled = true; + id = "discord"; + } + { + enabled = true; + id = "foot"; + } + { + enabled = true; + id = "gtk"; + } + { + enabled = true; + id = "helix"; + } + { + enabled = true; + id = "niri"; + } + { + enabled = true; + id = "pywalfox"; + } + { + enabled = true; + id = "qt"; + } + { + enabled = true; + id = "vicinae"; + } + { + enabled = true; + id = "yazi"; + } + { + enabled = true; + id = "zed"; + } + ]; + enableUserTheming = true; + }; + wallpaper = { + enabled = true; + overviewEnabled = true; + directory = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}"; + }; + colorSchemes.predefinedScheme = "Catppuccin"; + }; + plugins = { + sources = [ + { + enabled = true; + name = "Noctalia Plugins"; + url = "https://github.com/noctalia-dev/noctalia-plugins"; + } + ]; + states = { + tailscale = { + enabled = true; + sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins"; + }; + }; + version = 1; + }; + pluginSettings = { + tailscale = { + refreshInterval = 5000; + compactMode = true; + showIpAddress = false; + showPeerCount = false; + hideDisconnected = false; + terminalCommand = "foot"; + pingCount = 5; + defaultPeerAction = "copy-ip"; + }; + }; + }; +} diff --git a/modules/home/nvf.nix b/modules/home/nvf.nix index 202a2f9..7050305 100644 --- a/modules/home/nvf.nix +++ b/modules/home/nvf.nix @@ -1,7 +1,7 @@ { inputs, pkgs, - host, + # host, ... }: { @@ -13,11 +13,19 @@ enable = true; settings = { vim = { - viAlias = false; + viAlias = true; vimAlias = true; + # lazy.plugins = { + # "kanagawa.nvim" = { + # package = pkgs.vimPlugins.kanagawa-nvim; + # setupModule = "kanagawa"; + # after = "vim.cmd(\"colorscheme kanagawa\")"; + # }; + # }; + options = { - wrap = false; + wrap = true; }; clipboard = { @@ -67,6 +75,12 @@ whichKey.enable = true; }; + theme = { + enable = true; + name = "catppuccin"; + style = "mocha"; + }; + keymaps = [ { key = ""; @@ -124,12 +138,6 @@ } ]; - theme = { - enable = true; - name = "catppuccin"; - style = "mocha"; - }; - languages = { enableTreesitter = true; enableFormat = true; @@ -140,7 +148,7 @@ dap.enable = true; lsp = { enable = true; - server = "clangd"; + servers = [ "clangd" ]; }; treesitter.enable = true; }; @@ -149,7 +157,7 @@ enable = true; format = { enable = true; - type = "prettier"; + type = [ "prettier" ]; }; lsp.enable = true; treesitter.enable = true; @@ -170,6 +178,7 @@ }; format = { enable = true; + type = [ "prettierd" ]; }; lsp = { enable = true; @@ -183,21 +192,19 @@ enable = true; format = { enable = true; - package = pkgs.nixfmt; - type = "nixfmt"; + type = [ "nixfmt" ]; }; lsp = { enable = true; - package = pkgs.nixd; - server = "nixd"; - options = { - nixos = { - expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options"; - }; - home-manager = { - expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []"; - }; - }; + servers = [ "nixd" ]; + # options = { + # nixos = { + # expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options"; + # }; + # home-manager = { + # expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []"; + # }; + # }; }; treesitter.enable = true; }; @@ -210,7 +217,10 @@ }; format = { enable = true; - type = "black-and-isort"; + type = [ + "black" + "isort" + ]; }; lsp = { enable = true; @@ -242,7 +252,7 @@ extraDiagnostics.enable = true; format = { enable = true; - type = "prettier"; + type = [ "prettier" ]; }; lsp.enable = true; treesitter.enable = true; diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 80d33b4..d62b7f3 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -1,21 +1,20 @@ { + inputs, pkgs, ... }: { + imports = [ + inputs.nix-jmu-cs345.homeManagerModules.bernstdh + ]; + + programs.nix-jmu-cs345.enable = true; + home.packages = with pkgs; [ zoom-us devenv - discord - sqlitebrowser - drawio - check-capslock - wl-clipboard-rs - - # Libre Office - libreoffice-qt - hunspell - hunspellDicts.en_US + htop + obsidian # CD Stuff picard @@ -23,9 +22,6 @@ rsgain playerctl - pamixer - pavucontrol brightnessctl - obsidian ]; } diff --git a/modules/home/screenshot.nix b/modules/home/screenshot.nix index cba91f5..4911581 100644 --- a/modules/home/screenshot.nix +++ b/modules/home/screenshot.nix @@ -5,13 +5,22 @@ }: { home.packages = with pkgs; [ - hyprshot - satty + grim + slurp + wl-clipboard-rs ]; - xdg.configFile."satty/config.toml".text = '' - [general] - fullscreen = false - output-filename = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y-%m-%d_%H:%M:%S.png" - ''; + programs.swappy = { + enable = true; + # Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config + settings = { + Default = { + save_dir = config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR; + save_filename_format = "%Y%m%d-%H%M%S.png"; + show_panel = false; + auto_save = false; + early_exit = true; + }; + }; + }; } diff --git a/modules/home/ssh.nix b/modules/home/ssh.nix index 21a959e..8e6ba22 100644 --- a/modules/home/ssh.nix +++ b/modules/home/ssh.nix @@ -25,6 +25,11 @@ serverAliveCountMax = 5; serverAliveInterval = 60; }; + "cluster" = { + hostname = "login02.cluster.cs.jmu.edu"; + user = "tamassno"; + proxyJump = "stu"; + }; }; }; } diff --git a/modules/home/stylix.nix b/modules/home/stylix.nix index a228ad3..ef54334 100644 --- a/modules/home/stylix.nix +++ b/modules/home/stylix.nix @@ -1,5 +1,6 @@ { inputs, + config, pkgs, ... }: @@ -13,43 +14,77 @@ autoEnable = false; polarity = "dark"; base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + cursor = { + name = "Catppuccin-Mocha-Dark-Cursors"; + package = pkgs.catppuccin-cursors.mochaDark; + size = 16; + }; fonts = { monospace = { - name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font"; - package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code; + name = "JetBrainsMono Nerd Font"; + package = pkgs.nerd-fonts.jetbrains-mono; }; }; + icons = { + enable = true; + package = pkgs.morewaita-icon-theme; + light = "MoreWaita"; + dark = "MoreWaita"; + }; targets = { - ghostty.enable = true; - gtk.enable = true; - firefox = { + foot = { enable = true; - profileNames = [ "eclypse" ]; - colorTheme.enable = true; - firefoxGnomeTheme.enable = true; + fonts.enable = true; + colors.enable = false; + inputs.enable = false; + opacity.enable = false; }; - foot.enable = true; - lazygit.enable = true; - starship.enable = true; - swaync.enable = true; - yazi.enable = true; }; }; - home.pointerCursor = { - enable = true; - gtk.enable = true; - name = "Catppuccin-Mocha-Dark-Cursors"; - package = pkgs.catppuccin-cursors.mochaDark; - size = 16; - }; - gtk = { enable = true; colorScheme = "dark"; - iconTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; + iconTheme.name = "MoreWaita"; + theme = { + name = "adw-gtk3-dark"; + package = pkgs.adw-gtk3; }; }; + + qt = { + enable = true; + platformTheme.name = "qtct"; + style.name = "breeze"; + qt5ctSettings = { + Appearance = { + color_scheme_path = "${config.xdg.configHome}/qt5ct/colors/noctalia.conf"; + custom_palette = true; + icon_theme = "MoreWaita"; + standard_dialogs = "xdgdesktopportal"; + style = "Breeze"; + }; + Fonts = { + fixed = "\"JetBrainsMono Nerd Font Mono,12\""; + general = "\"JetBrainsMono Nerd Font Propo,12\""; + }; + }; + qt6ctSettings = { + Appearance = { + color_scheme_path = "${config.xdg.configHome}/qt6ct/colors/noctalia.conf"; + custom_palette = true; + icon_theme = "MoreWaita"; + standard_dialogs = "xdgdesktopportal"; + style = "Breeze"; + }; + Fonts = { + fixed = "\"JetBrainsMono Nerd Font Mono,12\""; + general = "\"JetBrainsMono Nerd Font Propo,12\""; + }; + }; + }; + + home.sessionVariables = { + QS_ICON_THEME = "MoreWaita"; + }; } diff --git a/modules/home/zsh.nix b/modules/home/terminal.nix similarity index 54% rename from modules/home/zsh.nix rename to modules/home/terminal.nix index f58ac99..bd4459d 100644 --- a/modules/home/zsh.nix +++ b/modules/home/terminal.nix @@ -1,4 +1,5 @@ { + config, pkgs, ... }: @@ -11,6 +12,19 @@ fastfetch = { enable = true; }; + foot = { + enable = true; + server.enable = false; + settings = { + main = { + term = "xterm-256color"; + include = "${config.xdg.configHome}/foot/themes/noctalia"; + }; + mouse = { + hide-when-typing = "yes"; + }; + }; + }; fzf = { enable = true; enableZshIntegration = true; @@ -21,84 +35,62 @@ settings = { add_newline = true; format = pkgs.lib.concatStrings [ - "[╭─](fg:base02)" - "[ 󱄅 ](bg:base02 fg:base07)" - "[](bg:base07 fg:base02)" - "[( $username(@$hostname) )](bg:base07 fg:base02)" - "[](bg:red fg:base07)" - "[ $directory ](bg:red fg:base02)" - "[](bg:cyan fg:red)" - "[( $git_branch $git_status )](bg:cyan fg:base02)" - "[](fg:cyan bg:blue)" - "[(( $golang)( $nodejs)( $rust)( $python) )](bg:blue fg:base02)" - "[](fg:blue)" + "[ ╭─$username([@](bold 3)$hostname) $directory( $git_branch $git_status)](5)" "$line_break" - "[╰─](fg:base02)" - "$character" + "[ ╰─$character](5)" ]; username = { + style_root = "white"; + format = "[$user](5)"; + disabled = false; show_always = true; - style_user = "none"; - style_root = "none"; - format = "[$user]($style)"; }; hostname = { - style = "none"; - format = "[$hostname]($style)"; + format = "[$hostname](bold 7)"; + disabled = false; 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)"; + success_symbol = "[❯](bold 5)"; + error_symbol = "[✘](bold 5)"; + vimcmd_symbol = "[❮](bold 5)"; }; directory = { - style = "none"; - format = "[$path]($style)"; - truncation_length = 3; - truncation_symbol = "…/"; - substitutions = { - "Documents" = "󰈙 "; - "Downloads" = " "; - "Music" = " "; - "Pictures" = " "; - }; + read_only = ""; + format = "[ $path](blue)"; + read_only_style = "bold white"; + truncation_length = 5; }; git_branch = { symbol = ""; - style = "none"; + style = "bright-black"; format = "[$symbol $branch]($style)"; }; git_status = { - style = "none"; - format = "[$all_status$ahead_behind]($style)"; - }; - golang = { - symbol = ""; - style = "none"; - format = "[$symbol( $version)]($style)"; - }; - nodejs = { - symbol = ""; - style = "none"; - format = "[$symbol( $version)]($style)"; - }; - python = { - symbol = ""; - style = "none"; - format = "[$symbol( $version)( \\($virtualenv\\))]($style)"; - }; - rust = { - symbol = ""; - style = "none"; - format = "[$symbol( $version)]($style)"; + format = "([$all_status$ahead_behind](1))"; + conflicted = "󱐋"; + ahead = "⇡\${count}"; + behind = "⇣\${count}"; + diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; + up_to_date = ""; + untracked = "?\${count}"; + stashed = "$${count}"; + modified = "!\${count}"; + staged = "+\${count}"; + renamed = "»\${count}"; + deleted = "✘\${count}"; }; scan_timeout = 100; }; }; + zellij = { + enable = true; + enableZshIntegration = true; + settings = { + theme = "catppuccin-mocha"; + show_startup_tips = false; + }; + }; zoxide = { enable = true; enableZshIntegration = true; @@ -113,6 +105,7 @@ ]; }; autosuggestion.enable = true; + dotDir = "${config.xdg.configHome}/zsh"; history = { append = true; findNoDups = true; @@ -143,7 +136,6 @@ ''; syntaxHighlighting.enable = true; shellAliases = { - stu = "ssh stu"; ff = "fastfetch"; }; }; diff --git a/modules/home/vesktop.nix b/modules/home/vesktop.nix new file mode 100644 index 0000000..2833351 --- /dev/null +++ b/modules/home/vesktop.nix @@ -0,0 +1,18 @@ +{ + ... +}: +{ + programs.vesktop = { + enable = true; + vencord = { + settings = { + oUpdate = false; + autoUpdateNotification = false; + notifyAboutUpdates = false; + useQuickCss = true; + disableMinSize = true; + enabledThemes = [ "noctalia.theme.css" ]; + }; + }; + }; +} diff --git a/modules/home/vicinae.nix b/modules/home/vicinae.nix new file mode 100644 index 0000000..c8c1717 --- /dev/null +++ b/modules/home/vicinae.nix @@ -0,0 +1,36 @@ +{ + ... +}: +{ + # Not using Vicinae's flake because the server fucking seg faults immediately + programs.vicinae = { + enable = true; + systemd = { + enable = true; + autoStart = true; + }; + # For configuration option documentation, see: https://github.com/vicinaehq/vicinae/blob/f6222f1e82fe2077ad42f10a6d6837dc61c67fd0/vicinae/assets/config.jsonc + settings = { + escape_key_behavior = "close_window"; + close_on_focus_loss = true; + pop_to_root_on_close = true; + favicon_service = "twenty"; + font = { + normal = { + size = 12; + normal = "JetBrainsMono Nerd Font"; + }; + }; + theme = { + light = { + name = "noctalia"; + icon_theme = "MoreWaita"; + }; + dark = { + name = "noctalia"; + icon_theme = "MoreWaita"; + }; + }; + }; + }; +} diff --git a/modules/home/walker.nix b/modules/home/walker.nix deleted file mode 100644 index ae293db..0000000 --- a/modules/home/walker.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - 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 - }; - }; - }; - }; -} diff --git a/modules/home/wallpaper.nix b/modules/home/wallpaper.nix deleted file mode 100644 index 4504f99..0000000 --- a/modules/home/wallpaper.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - wallpaper, - ... -}: -let - wallpapers = config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR; -in -{ - home.file."${wallpapers}" = { - source = ../../wallpapers; - recursive = true; - }; - - services.wpaperd = { - enable = true; - settings = { - default = { - mode = "center"; - }; - any = { - path = "${wallpapers}/${wallpaper}"; - }; - }; - }; -} diff --git a/modules/home/xdg.nix b/modules/home/xdg.nix index b2d8ee3..da073ce 100644 --- a/modules/home/xdg.nix +++ b/modules/home/xdg.nix @@ -1,10 +1,19 @@ { config, + pkgs, ... }: { xdg = { enable = true; + portal = { + enable = true; + configPackages = [ pkgs.gnome-session ]; + extraPortals = with pkgs; [ + xdg-desktop-portal-gnome + xdg-desktop-portal-gtk + ]; + }; userDirs = { enable = true; createDirectories = true; diff --git a/modules/home/yazi.nix b/modules/home/yazi.nix index d77f44b..8787621 100644 --- a/modules/home/yazi.nix +++ b/modules/home/yazi.nix @@ -1,10 +1,63 @@ { + pkgs, ... }: { + home.packages = with pkgs; [ + dragon-drop + ]; + programs.yazi = { enable = true; enableZshIntegration = true; shellWrapperName = "y"; + plugins = with pkgs.yaziPlugins; { + inherit git full-border chmod; + }; + initLua = '' + require("git"):setup { + -- Order of status signs showing in the linemode + order = 1500, + } + require("full-border"):setup() + ''; + keymap = { + mgr.prepend_keymap = [ + { + on = ""; + run = "shell -- dragon-drop -x -i -T %s1"; + desc = "Open a prompt to drag and drop a file"; + } + { + on = [ + "c" + "m" + ]; + run = "plugin chmod"; + desc = "Chmod on selected files"; + } + ]; + }; + settings = { + plugin = { + # Disable all preset previewers, preloaders + # This is recommended by yazi when working with network shares + preloaders = [ ]; + previewers = [ ]; + + prepend_fetchers = [ + { + id = "git"; + url = "*"; + run = "git"; + } + { + id = "git"; + url = "*/"; + run = "git"; + } + ]; + }; + }; }; } diff --git a/modules/home/zed.nix b/modules/home/zed.nix index 7f2cb77..6d082c8 100644 --- a/modules/home/zed.nix +++ b/modules/home/zed.nix @@ -7,12 +7,11 @@ enable = true; extensions = [ "nix" - "catppuccin" ]; extraPackages = [ pkgs.nixd ]; userSettings = { - theme = "Catppuccin Mocha"; + theme = "Noctalia Dark"; features = { edit_prediction_provider = "copilot"; }; diff --git a/modules/home/zen-browser.nix b/modules/home/zen-browser.nix new file mode 100644 index 0000000..252466a --- /dev/null +++ b/modules/home/zen-browser.nix @@ -0,0 +1,13 @@ +{ + inputs, + ... +}: +{ + imports = [ + inputs.zen-browser.homeModules.twilight + ]; + + programs.zen-browser = { + enable = true; + }; +} diff --git a/modules/overlays/battery-status.sh b/modules/overlays/battery-status.sh deleted file mode 100644 index ce220f8..0000000 --- a/modules/overlays/battery-status.sh +++ /dev/null @@ -1,27 +0,0 @@ -############ 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 "" \ No newline at end of file diff --git a/modules/overlays/check-capslock.sh b/modules/overlays/check-capslock.sh deleted file mode 100644 index 9566eb0..0000000 --- a/modules/overlays/check-capslock.sh +++ /dev/null @@ -1,7 +0,0 @@ -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 \ No newline at end of file diff --git a/modules/overlays/default.nix b/modules/overlays/default.nix index 1bb8c60..73e8e6c 100644 --- a/modules/overlays/default.nix +++ b/modules/overlays/default.nix @@ -4,16 +4,6 @@ { nixpkgs.overlays = [ (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; - }; - }) + (import ./pywalfox-native.nix) ]; } diff --git a/modules/overlays/pywalfox-native.nix b/modules/overlays/pywalfox-native.nix new file mode 100644 index 0000000..0fe63b8 --- /dev/null +++ b/modules/overlays/pywalfox-native.nix @@ -0,0 +1,16 @@ +self: super: with super.python3Packages; { + heybrochecklog = buildPythonApplication rec { + pname = "pywalfox-native"; + version = "2.8.0rc1"; + pyproject = true; + + src = super.fetchurl { + url = "https://test-files.pythonhosted.org/packages/89/a1/8e011e2d325de8e987f7c0a67222448b252fc894634bfa0d3b3728ec6dbf/pywalfox-${version}.tar.gz"; + sha256 = "89e0d7a441eb600933440c713cddbfaecda236bde7f3f655db0ec20b0ae12845"; + }; + + build-system = [ setuptools ]; + + pythonImportsCheck = [ "pywalfox" ]; + }; +} diff --git a/modules/system/agenix.nix b/modules/system/agenix.nix index f2fe2ac..3bfca35 100644 --- a/modules/system/agenix.nix +++ b/modules/system/agenix.nix @@ -3,8 +3,6 @@ config, pkgs, lib, - host, - hostPubkey ? null, ... }: { @@ -25,13 +23,13 @@ rekey = { masterIdentities = [ "${inputs.self}/secrets/age-yubikey-identity-d9ed335b.pub" ]; storageMode = "local"; - localStorageDir = ../../. + "/secrets/rekeyed/${host}"; + localStorageDir = ../../. + "/secrets/rekeyed/${config.host.name}"; } # 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; + // lib.optionalAttrs (config.host.pubKey != null) { + hostPubkey = config.host.pubKey; }; secrets = { tailscale-auth.rekeyFile = ../../secrets/tailscale-auth.age; diff --git a/modules/system/boot.nix b/modules/system/boot.nix index d9cfa63..6aff1c7 100644 --- a/modules/system/boot.nix +++ b/modules/system/boot.nix @@ -12,6 +12,8 @@ }; efi.canTouchEfiVariables = true; }; - kernelParams = [ "kvm.enable_virt_at_load=0" ]; + kernelParams = [ + "kvm.enable_virt_at_load=0" # Fixes some virtuallization issues + ]; }; } diff --git a/modules/system/desktop.nix b/modules/system/desktop.nix index bcebf31..58fa8ef 100644 --- a/modules/system/desktop.nix +++ b/modules/system/desktop.nix @@ -1,59 +1,29 @@ { inputs, - pkgs, ... }: -let - sddm-theme = inputs.silentSDDM.packages.${pkgs.stdenv.hostPlatform.system}.default; -in { imports = [ - inputs.mango.nixosModules.mango + inputs.niri.nixosModules.niri ]; programs = { - hyprland = { + niri.enable = true; + uwsm = { enable = true; - # withUWSM = true; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - portalPackage = - inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; - - }; - mango.enable = true; - # uwsm.enable = true; - }; - - environment.systemPackages = [ - sddm-theme - sddm-theme.test - ]; - - services.displayManager = { - defaultSession = "mango"; - sddm = { - enable = true; - package = pkgs.kdePackages.sddm; - theme = sddm-theme.pname; - extraPackages = sddm-theme.propagatedBuildInputs; - settings = { - General = { - GreeterEnvironment = "QML2_IMPORT_PATH=${sddm-theme}/share/sddm/themes/${sddm-theme.pname}/components/,QT_IM_MODULE=qtvirtualkeyboard"; - InputMethod = "qtvirtualkeyboard"; + waylandCompositors = { + niri = { + prettyName = "Niri"; + binPath = "/run/current-system/sw/bin/niri-session"; }; }; - wayland.enable = true; }; }; - # Enable the KDE Plasma Desktop Environment. - # displayManager.sddm.enable = true; - # desktopManager.plasma5.enable = true; - - # Enable the System76 Cosmic Desktop Environment - # displayManager.cosmic-greeter.enable = true; - # desktopManager.cosmic = { - # enable = true; - # xwayland.enable = true; - # }; + services.displayManager = { + gdm = { + enable = true; + wayland = true; + }; + }; } diff --git a/modules/system/fileSystems.nix b/modules/system/fileSystems.nix index 1c58ba6..6abd043 100644 --- a/modules/system/fileSystems.nix +++ b/modules/system/fileSystems.nix @@ -40,6 +40,5 @@ in environment.systemPackages = with pkgs; [ cifs-utils - # rclone ]; } diff --git a/modules/system/network.nix b/modules/system/network.nix index b1e8679..789e26c 100644 --- a/modules/system/network.nix +++ b/modules/system/network.nix @@ -1,19 +1,19 @@ { - host, + config, ... }: { networking = { - hostName = "${host}"; # Define your hostname - - # Pick only one of the below networking options. + hostName = "${config.host.name}"; # Define your hostname + + # Pick only one of the below networking options. # wireless.enable = true; # Enables wireless support via wpa_supplicant. networkmanager.enable = true; # Easiest to use and most distros use this by default. - + # Configure network proxy if necessary # proxy.default = "http://user:password@proxy:port/"; # proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - + # Open ports in the firewall. # firewall.allowedTCPPorts = [ ... ]; # firewall.allowedUDPPorts = [ ... ]; diff --git a/modules/system/packages.nix b/modules/system/packages.nix index 6812530..cf0ba18 100644 --- a/modules/system/packages.nix +++ b/modules/system/packages.nix @@ -19,6 +19,7 @@ # }; gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; nix-ld.enable = true; + xwayland.enable = true; zsh.enable = true; }; @@ -38,6 +39,7 @@ systemPackages = with pkgs; [ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. git + disktui ]; variables = { EDITOR = "vim"; diff --git a/modules/system/services.nix b/modules/system/services.nix index 7d0293a..3ec4705 100644 --- a/modules/system/services.nix +++ b/modules/system/services.nix @@ -14,7 +14,6 @@ layout = "us"; variant = ""; }; - }; # Enable touchpad support (enabled default in most desktopManager). @@ -92,7 +91,7 @@ hardware = { bluetooth = { enable = true; - powerOnBoot = true; + powerOnBoot = false; }; sane = { enable = true; diff --git a/modules/system/system.nix b/modules/system/system.nix index c7b4fe5..70d3add 100644 --- a/modules/system/system.nix +++ b/modules/system/system.nix @@ -22,6 +22,8 @@ "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; + extra-substituters = [ "https://vicinae.cachix.org" ]; + extra-trusted-public-keys = [ "vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc=" ]; }; }; diff --git a/modules/system/user.nix b/modules/system/user.nix index c9cc5f3..907ae21 100644 --- a/modules/system/user.nix +++ b/modules/system/user.nix @@ -1,8 +1,6 @@ { inputs, pkgs, - host, - wallpaper, config, ... }: @@ -12,7 +10,7 @@ home-manager = { useUserPackages = true; useGlobalPkgs = true; - extraSpecialArgs = { inherit inputs host wallpaper; }; + extraSpecialArgs = { inherit inputs; }; users.eclypse = { imports = [ ../home ]; diff --git a/modules/home/hypr/default.nix b/modules/unused/hypr/default.nix similarity index 74% rename from modules/home/hypr/default.nix rename to modules/unused/hypr/default.nix index fefeb5e..4e80d07 100644 --- a/modules/home/hypr/default.nix +++ b/modules/unused/hypr/default.nix @@ -3,9 +3,7 @@ }: { imports = [ - ./hypridle.nix ./hyprland.nix - ./hyprlock.nix ./keybinds.nix ./monitors.nix ./pyprland.nix diff --git a/modules/home/hypr/hyprland.nix b/modules/unused/hypr/hyprland.nix similarity index 64% rename from modules/home/hypr/hyprland.nix rename to modules/unused/hypr/hyprland.nix index b9b6e79..a313d68 100644 --- a/modules/home/hypr/hyprland.nix +++ b/modules/unused/hypr/hyprland.nix @@ -1,5 +1,5 @@ { - # inputs, + inputs, pkgs, config, ... @@ -10,20 +10,24 @@ hyprpicker ]; - # xdg.configFile."uwsm/env".source = - # "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh"; - wayland.windowManager.hyprland = { enable = true; - # systemd.enable = false; - package = null; - portalPackage = null; + systemd.enable = false; + package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + portalPackage = + inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; settings = { source = [ "${config.xdg.configHome}/hypr/monitors.conf" + "${config.xdg.configHome}/hypr/noctalia/noctalia-colors.conf" ]; + # monitor = [ + # "desc:BOE 0x095F,2256x1504@60.00,0x0,1" + # "desc:LG Electronics LG TV SSCR2 0x01010101,3840x2160@120.00,2256x0,1" + # ]; + animations = { # Stolen from https://github.com/Vobledoble/nixparency-dots/ enabled = true; @@ -54,48 +58,57 @@ ]; }; + debug.disable_logs = false; + general = { gaps_in = 5; gaps_out = 10; border_size = 2; - "col.active_border" = "rgb(4479A4)"; - "col.inactive_border" = "rgba(4479A480)"; }; decoration = { - rounding = 10; + rounding = 20; + rounding_power = 2; - active_opacity = 0.95; - inactive_opacity = 0.85; - fullscreen_opacity = 1.0; + # active_opacity = 0.95; + # inactive_opacity = 0.85; + # fullscreen_opacity = 1.0; blur = { enabled = true; - size = 8; - passes = 3; + size = 3; + passes = 2; + vibrancy = 0.1696; new_optimizations = true; popups = true; }; - shadow.enabled = false; + shadow = { + enabled = true; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + }; + + input = { + kb_layout = "us"; + kb_options = "compose:ralt"; }; 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 - ]; + windowrule = { + name = "floating-terminal-dropdown"; + "match:class" = "term_dropdown"; + float = "on"; + }; exec-once = [ - "systemctl --user enable --now hypridle.service" "systemctl --user enable --now hyprpolkitagent.service" - "systemctl --user enable app-com.mitchellh.ghostty.service" - "wpaperd -d" - "swaync" + "noctalia-shell" "pypr" ]; diff --git a/modules/home/hypr/keybinds.nix b/modules/unused/hypr/keybinds.nix similarity index 86% rename from modules/home/hypr/keybinds.nix rename to modules/unused/hypr/keybinds.nix index c8abb50..a99a079 100644 --- a/modules/home/hypr/keybinds.nix +++ b/modules/unused/hypr/keybinds.nix @@ -6,14 +6,13 @@ exec = "hyprctl dispatch submap global"; submap = "global"; - # MY STUFF "$mod" = "SUPER"; bind = [ "$mod, Q, killactive" "$mod, W, exec, foot" - "$mod, S, exec, walker" - "$mod, Escape, exec, wlogout" + "$mod, S, exec, vicinae toggle" + "$mod, Escape, exec, noctalia-shell ipc call sessionMenu toggle" # Window Movement "$mod, left, movefocus, l" @@ -30,9 +29,8 @@ "$mod CTRL SHIFT, right, movetoworkspace, r+1" # Screenshoting - ", PRINT, exec, hyprshot -m output --raw | satty --filename -" - "$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -" - "SHIFT, PRINT, exec, hyprshot -m region --raw | satty --filename -" + ", PRINT, exec, grim -g \"$(slurp)\" - | wl-copy" + "SHIFT, PRINT, exec, wl-paste | swappy -f -" # Media Control Keys ", XF86AudioPrev, exec, playerctl previous" @@ -42,7 +40,7 @@ "ALT, XF86AudioMute, exec, pamixer --default-source -t" # Notification Center - "$mod, n, exec, swaync-client -t -sw" + "$mod, n, exec, noctalia-shell ipc call notifications toggleHistory" # Scratchpads "$mod, TAB, exec, pypr toggle term" diff --git a/modules/home/hypr/monitors.nix b/modules/unused/hypr/monitors.nix similarity index 84% rename from modules/home/hypr/monitors.nix rename to modules/unused/hypr/monitors.nix index d4bc84f..bbfdbaa 100644 --- a/modules/home/hypr/monitors.nix +++ b/modules/unused/hypr/monitors.nix @@ -15,5 +15,8 @@ home.hyprdynamicmonitors = { enable = true; installExamples = false; + extraFlags = [ + "--enable-lid-events" + ]; }; } diff --git a/modules/home/hypr/pyprland.nix b/modules/unused/hypr/pyprland.nix similarity index 94% rename from modules/home/hypr/pyprland.nix rename to modules/unused/hypr/pyprland.nix index 4f387d9..30a647c 100644 --- a/modules/home/hypr/pyprland.nix +++ b/modules/unused/hypr/pyprland.nix @@ -16,6 +16,7 @@ class = "term_dropdown" animation = "fromTop" margin = 150 + size = "80% 80%" max_size = "1920px 1080px" multi = false ''; diff --git a/modules/home/hypr/hypridle.nix b/modules/unused/hypridle.nix similarity index 84% rename from modules/home/hypr/hypridle.nix rename to modules/unused/hypridle.nix index c0927c6..e74aafc 100644 --- a/modules/home/hypr/hypridle.nix +++ b/modules/unused/hypridle.nix @@ -8,7 +8,7 @@ general = { lock_cmd = "pidof hyprlock || hyprlock --grace 10"; before_sleep_cmd = "loginctl lock-session"; - fail_timeout = 1000; + after_sleep_cmd = "hypctl dispatch dpms on"; }; listener = [ { @@ -22,7 +22,7 @@ } { timeout = 600; - on-timeout = "systemctl suspend || loginctl suspend"; + on-timeout = "systemctl suspend"; } ]; }; diff --git a/modules/home/hypr/hyprlock.nix b/modules/unused/hyprlock.nix similarity index 100% rename from modules/home/hypr/hyprlock.nix rename to modules/unused/hyprlock.nix diff --git a/modules/unused/mango.nix b/modules/unused/mango.nix new file mode 100644 index 0000000..ceeea9b --- /dev/null +++ b/modules/unused/mango.nix @@ -0,0 +1,87 @@ +{ + inputs, + config, + ... +}: +{ + imports = [ + inputs.mango.hmModules.mango + ]; + + wayland.windowManager.mango = { + enable = true; + settings = '' + source=${config.xdg.configHome}/mango/noctalia.conf + + monitorrule=name:eDP-1,width:2256,height:1504,refresh:59.999001,x:0,y:0,scale:1.0,vrr:0,rr:0 + monitorrule=name:LG Electronics LG TV SSCR2 *,width:3840,height:2160,refresh:120.0,x:2256,y:0,scale:1.0,vrr:0,rr:0 + + cursor_size=16 + cursor_theme=catppuccin-mocha-dark-cursors + + bind=SUPER,q,killclient + bind=SUPER,w,spawn,foot + bind=SUPER,a,spawn,vicinae toggle + bind=SUPER,Escape,spawn,noctalia-shell ipc call sessionMenu toggle + bind=SUPER,n,spawn,noctalia-shell ipc call notifications toggleHistory + + bind=SUPER+SHIFT,r,reload_config + + bind=SUPER,t,setlayout,tile + bind=SUPER,s,setlayout,scroller + + bind=SUPER,f,togglefloating + bind=SUPER+SHIFT,f,togglefullscreen + + bind=NONE,XF86AudioPrev,spawn,playerctl previous + bind=NONE,XF86AudioPlay,spawn,playerctl play-pause + bind=NONE,XF86AudioNext,spawn,playerctl next + + bindl=NONE,XF86AudioRaiseVolume,spawn,pamixer -i 5 + bindl=NONE,XF86AudioLowerVolume,spawn,pamixer -d 5 + bindl=NONE,XF86AudioMute,spawn,pamixer -t + bindl=ALT,XF86AudioRaiseVolume,spawn,pamixer --default-source -i 5 + bindl=ALT,XF86AudioLowerVolume,spawn,pamixer --default-source -d 5 + bindl=ALT,XF86AudioMute,spawn,pamixer --default-source -t + + bindl=NONE,XF86MonBrightnessUp,spawn,brightnessctl set 5%+ + bindl=NONE,XF86MonBrightnessDown,spawn,brightnessctl set 5%- + + bind=NONE,Print,spawn_shell,grim -g "$(slurp)" - | wl-copy + bind=SHIFT,Print,spawn_shell,wl-paste | swappy -f - + + bind=SUPER,Up,focusdir,up + bind=SUPER,Down,focusdir,down + bind=SUPER,Left,focusdir,left + bind=SUPER,Right,focusdir,right + bind=SUPER+SHIFT,Up,exchange_client,up + bind=SUPER+SHIFT,Down,exchange_client,down + bind=SUPER+SHIFT,Left,exchange_client,left + bind=SUPER+SHIFT,Right,exchange_client,right + + bind=SUPER+CTRL,Left,viewtoleft + bind=SUPER+CTRL,Right,viewtoright + bind=SUPER+CTRL+SHIFT,Left,tagtoleft + bind=SUPER+CTRL+SHIFT,Right,tagtoright + + mousebind=SUPER,btn_left,moveresize,curmove + mousebind=SUPER,btn_right,moveresize,curresize + mousebind=SUPER+ALT,btn_left,moveresize,curresize + + bind=SUPER,Tab,toggleoverview + + blur=1 + blur_params_radius=6 + blur_params_num_passes=2 + + windowrule=blur:1,unfocused_opacity:0.95,focused_opacity:0.95,appid:foot + + exec-once=${config.xdg.configHome}/mango/autostart.sh + ''; + + autostart_sh = '' + dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlroots + noctalia-shell + ''; + }; +} diff --git a/modules/home/plasma.nix b/modules/unused/plasma.nix similarity index 100% rename from modules/home/plasma.nix rename to modules/unused/plasma.nix diff --git a/modules/home/swaync.nix b/modules/unused/swaync.nix similarity index 100% rename from modules/home/swaync.nix rename to modules/unused/swaync.nix diff --git a/modules/home/vscode.nix b/modules/unused/vscode.nix similarity index 96% rename from modules/home/vscode.nix rename to modules/unused/vscode.nix index fc85e11..81e2953 100644 --- a/modules/home/vscode.nix +++ b/modules/unused/vscode.nix @@ -1,5 +1,6 @@ { pkgs, + config, ... }: { @@ -54,7 +55,7 @@ # VSCode attempts to write to ~/.ssh/config for remote ssh connections. # Because ~/.ssh/config is managed with home-manager, it is not writeable. # So we specify a custom ssh config path - "remote.SSH.configFile" = "/home/eclypse/.ssh/vscode-config"; + "remote.SSH.configFile" = "${config.home.homeDirectory}/.ssh/vscode-config"; # Prettier "editor.defaultFormatter" = "esbenp.prettier-vscode"; diff --git a/modules/home/waybar/default.nix b/modules/unused/waybar/default.nix similarity index 99% rename from modules/home/waybar/default.nix rename to modules/unused/waybar/default.nix index e70a44c..b8f518e 100644 --- a/modules/home/waybar/default.nix +++ b/modules/unused/waybar/default.nix @@ -3,7 +3,7 @@ }: { programs.waybar = { - enable = true; + enable = false; systemd.enable = true; settings = [ { diff --git a/modules/home/waybar/modules/backlight.nix b/modules/unused/waybar/modules/backlight.nix similarity index 100% rename from modules/home/waybar/modules/backlight.nix rename to modules/unused/waybar/modules/backlight.nix diff --git a/modules/home/waybar/modules/battery.nix b/modules/unused/waybar/modules/battery.nix similarity index 100% rename from modules/home/waybar/modules/battery.nix rename to modules/unused/waybar/modules/battery.nix diff --git a/modules/home/waybar/modules/bluetooth.nix b/modules/unused/waybar/modules/bluetooth.nix similarity index 100% rename from modules/home/waybar/modules/bluetooth.nix rename to modules/unused/waybar/modules/bluetooth.nix diff --git a/modules/home/waybar/modules/clock.nix b/modules/unused/waybar/modules/clock.nix similarity index 100% rename from modules/home/waybar/modules/clock.nix rename to modules/unused/waybar/modules/clock.nix diff --git a/modules/home/waybar/modules/cpu.nix b/modules/unused/waybar/modules/cpu.nix similarity index 100% rename from modules/home/waybar/modules/cpu.nix rename to modules/unused/waybar/modules/cpu.nix diff --git a/modules/home/waybar/modules/disk.nix b/modules/unused/waybar/modules/disk.nix similarity index 100% rename from modules/home/waybar/modules/disk.nix rename to modules/unused/waybar/modules/disk.nix diff --git a/modules/home/waybar/modules/hyprland-window.nix b/modules/unused/waybar/modules/hyprland-window.nix similarity index 100% rename from modules/home/waybar/modules/hyprland-window.nix rename to modules/unused/waybar/modules/hyprland-window.nix diff --git a/modules/home/waybar/modules/hyprland-workspaces.nix b/modules/unused/waybar/modules/hyprland-workspaces.nix similarity index 100% rename from modules/home/waybar/modules/hyprland-workspaces.nix rename to modules/unused/waybar/modules/hyprland-workspaces.nix diff --git a/modules/home/waybar/modules/hyprpicker.nix b/modules/unused/waybar/modules/hyprpicker.nix similarity index 100% rename from modules/home/waybar/modules/hyprpicker.nix rename to modules/unused/waybar/modules/hyprpicker.nix diff --git a/modules/home/waybar/modules/idle-inhibitor.nix b/modules/unused/waybar/modules/idle-inhibitor.nix similarity index 100% rename from modules/home/waybar/modules/idle-inhibitor.nix rename to modules/unused/waybar/modules/idle-inhibitor.nix diff --git a/modules/home/waybar/modules/memory.nix b/modules/unused/waybar/modules/memory.nix similarity index 100% rename from modules/home/waybar/modules/memory.nix rename to modules/unused/waybar/modules/memory.nix diff --git a/modules/home/waybar/modules/menu.nix b/modules/unused/waybar/modules/menu.nix similarity index 100% rename from modules/home/waybar/modules/menu.nix rename to modules/unused/waybar/modules/menu.nix diff --git a/modules/home/waybar/modules/mpris.nix b/modules/unused/waybar/modules/mpris.nix similarity index 100% rename from modules/home/waybar/modules/mpris.nix rename to modules/unused/waybar/modules/mpris.nix diff --git a/modules/home/waybar/modules/network.nix b/modules/unused/waybar/modules/network.nix similarity index 100% rename from modules/home/waybar/modules/network.nix rename to modules/unused/waybar/modules/network.nix diff --git a/modules/home/waybar/modules/power.nix b/modules/unused/waybar/modules/power.nix similarity index 100% rename from modules/home/waybar/modules/power.nix rename to modules/unused/waybar/modules/power.nix diff --git a/modules/home/waybar/modules/temperature.nix b/modules/unused/waybar/modules/temperature.nix similarity index 100% rename from modules/home/waybar/modules/temperature.nix rename to modules/unused/waybar/modules/temperature.nix diff --git a/modules/home/waybar/modules/tray.nix b/modules/unused/waybar/modules/tray.nix similarity index 100% rename from modules/home/waybar/modules/tray.nix rename to modules/unused/waybar/modules/tray.nix diff --git a/modules/home/waybar/modules/wireplumber.nix b/modules/unused/waybar/modules/wireplumber.nix similarity index 100% rename from modules/home/waybar/modules/wireplumber.nix rename to modules/unused/waybar/modules/wireplumber.nix diff --git a/modules/home/wlogout.nix b/modules/unused/wlogout.nix similarity index 100% rename from modules/home/wlogout.nix rename to modules/unused/wlogout.nix