diff --git a/common/gui/common.nix b/common/gui/common.nix index 3e77c19..633c702 100644 --- a/common/gui/common.nix +++ b/common/gui/common.nix @@ -1,9 +1,10 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.printing.enable = true; environment.systemPackages = with pkgs; [ - gnome.adwaita-icon-theme - gnome.gnome-themes-extra + adwaita-icon-theme + gnome-themes-extra firefox-wayland librewolf discord diff --git a/common/gui/hyprland.nix b/common/gui/hyprland.nix index 0949d26..294f7ea 100644 --- a/common/gui/hyprland.nix +++ b/common/gui/hyprland.nix @@ -2,7 +2,8 @@ pkgs, inputs, ... -}: { +}: +{ imports = [ ./common.nix ./dbus.nix @@ -29,7 +30,7 @@ variant = ""; layout = "us"; }; - excludePackages = [pkgs.xterm]; + excludePackages = [ pkgs.xterm ]; # videoDrivers = ["amdgpu"]; libinput = { enable = true; @@ -51,15 +52,16 @@ programs = { hyprland = { enable = true; + withUWSM = true; # recommended for most users package = inputs.hyprland.packages.${pkgs.system}.hyprland; xwayland = { enable = true; }; }; waybar = { - enable = true; + enable = false; package = pkgs.waybar.overrideAttrs (oldAttrs: { - mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; }); }; thunar = { diff --git a/common/networking/default.nix b/common/networking/default.nix index 0590c0c..a9a6091 100644 --- a/common/networking/default.nix +++ b/common/networking/default.nix @@ -1,11 +1,13 @@ -{lib, ...}: { +{ lib, ... }: +{ imports = [ ./zerotier.nix ./firewall.nix - ./wireless.nix + # ./wireless.nix + ./networkmanager.nix ]; zerotier.enable = lib.mkDefault true; firewall.enable = lib.mkDefault true; - wireless.enable = lib.mkDefault false; + # wireless.enable = lib.mkDefault false; } diff --git a/common/networking/networkmanager.nix b/common/networking/networkmanager.nix new file mode 100644 index 0000000..cf0a649 --- /dev/null +++ b/common/networking/networkmanager.nix @@ -0,0 +1,29 @@ +{ + config, + pkgs, + ... +}: +{ + + sops.secrets."wireless.env" = { }; + networking = { + networkmanager = { + enable = true; + ensureProfiles = { + environmentFiles = [ config.sops.secrets."wireless.env".path ]; + profiles = { + home-wifi = { + connection.id = "home-wifi"; + connection.type = "wifi"; + wifi.ssid = "$home_uuid"; + wifi-security = { + auth-alg = "open"; + key-mgmt = "wpa-psk"; + psk = "$home_psk"; + }; + }; + }; + }; + }; + }; +} diff --git a/common/nixos/laptop.nix b/common/nixos/laptop.nix index fa5cbc4..d849971 100644 --- a/common/nixos/laptop.nix +++ b/common/nixos/laptop.nix @@ -2,10 +2,12 @@ config, lib, ... -}: { +}: +{ imports = [ ./bluetooth.nix - ../networking/wireless.nix + # ../networking/wireless.nix + ../networking/networkmanager.nix ]; options = { laptop.enable = lib.mkEnableOption "Enables Laptop options"; @@ -19,6 +21,6 @@ services.tlp.enable = true; bluetooth.enable = true; - wireless.enable = true; + # wireless.enable = true; }; } diff --git a/common/nixos/tuigreet.nix b/common/nixos/tuigreet.nix new file mode 100644 index 0000000..c92ccaf --- /dev/null +++ b/common/nixos/tuigreet.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: +{ + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a ‱ %h | %F' --cmd Hyprland"; + # command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; + user = "greeter"; + }; + }; + }; + + environment.systemPackages = with pkgs; [ greetd.tuigreet ]; + + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + security.pam.services.greetd.enableGnomeKeyring = true; + # To prevent getting stuck at shutdown + systemd.extraConfig = "DefaultTimeoutStopSec=10s"; + +} diff --git a/common/nixos/variables-config.nix b/common/nixos/variables-config.nix new file mode 100644 index 0000000..e7cfce2 --- /dev/null +++ b/common/nixos/variables-config.nix @@ -0,0 +1,9 @@ +{ lib, ... }: +{ + options = { + var = lib.mkOption { + type = lib.types.attrs; + default = { }; + }; + }; +} diff --git a/common/style/vars/candlekeep.nix b/common/style/vars/candlekeep.nix new file mode 100644 index 0000000..50244a1 --- /dev/null +++ b/common/style/vars/candlekeep.nix @@ -0,0 +1,18 @@ +{ + rounding = 15; + gaps-in = 10; + gaps-out = 10 * 2; + active-opacity = 1; + inactive-opacity = 0.89; + blur = true; + border-size = 3; + animation-speed = "medium"; # "fast" | "medium" | "slow" + fetch = "fastfetch"; # "nerdfetch" | "neofetch" | "pfetch" | "none" + + bar = { + position = "top"; # "top" | "bottom" + transparent = true; + transparentButtons = false; + floating = true; + }; +} diff --git a/flake.lock b/flake.lock index 631fe5e..ba3c9ec 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,30 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1732307740, - "narHash": "sha256-ZDsYdZOtg5qkK/wfLLB83B3SI+fE32S+/6Ey0ggHODM=", + "lastModified": 1734091628, + "narHash": "sha256-8O3i8zESjHVsGzyXb8gEpLztvANq3Ot5bwo60YKJc7k=", "owner": "Aylur", "repo": "ags", - "rev": "81159966eb8b39b66c3efc133982fd76920c9605", + "rev": "27cd93147aba09142fa585fd16f13c56268b696c", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, + "ags_2": { + "inputs": { + "nixpkgs": "nixpkgs_5", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1728326430, + "narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=", + "owner": "Aylur", + "repo": "ags", + "rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d", "type": "github" }, "original": { @@ -39,11 +58,48 @@ ] }, "locked": { - "lastModified": 1731774881, - "narHash": "sha256-1Dxryiw8u2ejntxrrv3sMtIE8WHKxmlN4KeH+uMGbmc=", + "lastModified": 1731959031, + "narHash": "sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "b31a6a4da8199ae3489057db7d36069a70749a56", + "rev": "4468981c1c50999f315baa1508f0e53c4ee70c52", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "aquamarine_2": { + "inputs": { + "hyprutils": [ + "hyprspace", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprspace", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1729527199, + "narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72", "type": "github" }, "original": { @@ -60,11 +116,11 @@ ] }, "locked": { - "lastModified": 1731952585, - "narHash": "sha256-Sh1E7sJd8JJM3PCU1ZOei/QWz97OLCENIi2rTRoaniw=", + "lastModified": 1733520119, + "narHash": "sha256-6K07ZJTnFu1xASBCMtVc9cFTbBEauwSc7gGBmjLkLSk=", "owner": "aylur", "repo": "astal", - "rev": "664c7a4ddfcf48c6e8accd3c33bb94424b0e8609", + "rev": "4c19d8d06fa25cc6389f37abe8839b4d8be5c0d6", "type": "github" }, "original": { @@ -126,11 +182,11 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1716150083, - "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "lastModified": 1731949548, + "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", "owner": "tinted-theming", "repo": "base16-vim", - "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", "type": "github" }, "original": { @@ -178,11 +234,11 @@ ] }, "locked": { - "lastModified": 1732546682, - "narHash": "sha256-7vEQ81tawY0HhmybI4DuxUjcRZIhCnuzDiMdwVYTFu0=", + "lastModified": 1733788855, + "narHash": "sha256-sGn4o9KFoGRSWDQlBKpv8dkNQ2/ODS9APopZD1/FP2Y=", "owner": "cachix", "repo": "devenv", - "rev": "a7125d27b4f92de7f77064bcee4e1de91b595973", + "rev": "d59fee8696cd48f69cf79f65992269df9891ba86", "type": "github" }, "original": { @@ -246,6 +302,22 @@ } }, "flake-compat_3": { + "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_4": { "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", @@ -259,7 +331,7 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_4": { + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1696426674, @@ -275,14 +347,14 @@ "type": "github" } }, - "flake-compat_5": { + "flake-compat_6": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -291,7 +363,7 @@ "type": "github" } }, - "flake-compat_6": { + "flake-compat_7": { "flake": false, "locked": { "lastModified": 1696426674, @@ -337,11 +409,11 @@ ] }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -352,7 +424,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -376,11 +448,11 @@ ] }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -391,7 +463,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_4" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -457,7 +529,7 @@ "nixvim", "flake-compat" ], - "gitignore": "gitignore_3", + "gitignore": "gitignore_4", "nixpkgs": [ "nixvim", "nixpkgs" @@ -468,11 +540,11 @@ ] }, "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", + "lastModified": 1733665616, + "narHash": "sha256-+XTFXYlFJBxohhMGLDpYdEnhUNdxN8dyTA8WAd+lh2A=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", + "rev": "d8c02f0ffef0ef39f6063731fc539d8c71eb463a", "type": "github" }, "original": { @@ -526,6 +598,29 @@ } }, "gitignore_3": { + "inputs": { + "nixpkgs": [ + "hyprspace", + "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" + } + }, + "gitignore_4": { "inputs": { "nixpkgs": [ "nixvim", @@ -547,7 +642,7 @@ "type": "github" } }, - "gitignore_4": { + "gitignore_5": { "inputs": { "nixpkgs": [ "pre-commit-hooks", @@ -571,16 +666,16 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1713702291, - "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "lastModified": 1732369855, + "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "rev": "dadd58f630eeea41d645ee225a63f719390829dc", "type": "github" }, "original": { "owner": "GNOME", - "ref": "46.1", + "ref": "47.2", "repo": "gnome-shell", "type": "github" } @@ -617,11 +712,11 @@ ] }, "locked": { - "lastModified": 1732482255, - "narHash": "sha256-GUffLwzawz5WRVfWaWCg78n/HrBJrOG7QadFY6rtV8A=", + "lastModified": 1734093295, + "narHash": "sha256-hSwgGpcZtdDsk1dnzA0xj5cNaHgN9A99hRF/mxMtwS4=", "owner": "nix-community", "repo": "home-manager", - "rev": "a9953635d7f34e7358d5189751110f87e3ac17da", + "rev": "66c5d8b62818ec4c1edb3e941f55ef78df8141a8", "type": "github" }, "original": { @@ -639,11 +734,11 @@ ] }, "locked": { - "lastModified": 1732303962, - "narHash": "sha256-5Umjb5AdtxV5jSJd5jxoCckh5mlg+FBQDsyAilu637g=", + "lastModified": 1734093295, + "narHash": "sha256-hSwgGpcZtdDsk1dnzA0xj5cNaHgN9A99hRF/mxMtwS4=", "owner": "nix-community", "repo": "home-manager", - "rev": "8cf9cb2ee78aa129e5b8220135a511a2be254c0c", + "rev": "66c5d8b62818ec4c1edb3e941f55ef78df8141a8", "type": "github" }, "original": { @@ -660,11 +755,11 @@ ] }, "locked": { - "lastModified": 1730837930, - "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", + "lastModified": 1733085484, + "narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", + "rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163", "type": "github" }, "original": { @@ -702,11 +797,74 @@ "type": "github" } }, + "hyprcursor_2": { + "inputs": { + "hyprlang": [ + "hyprspace", + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728669738, + "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1733248371, + "narHash": "sha256-FFLJzFTyNhS7tBEEECx0B8Ye/bpmxhFVEKlECgMLc6c=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "cc95e5babc6065bc3ab4cd195429a9900836ef13", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, "hyprland": { "inputs": { "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", @@ -716,11 +874,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1732545731, - "narHash": "sha256-nRit2lb7kha7bcNB6pwhySbpI7Tjc1PLnkJvayBiJr8=", + "lastModified": 1734219437, + "narHash": "sha256-gOSSJHm9LKGTO1VaHy8Rly1OO/cOyiIb+XI6iFEdooI=", "ref": "refs/heads/main", - "rev": "268778823676ef2bbda42050d78946e1fc27fc31", - "revCount": 5497, + "rev": "db249648776875ce3142141d0d3055e43ce606aa", + "revCount": 5542, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -756,6 +914,92 @@ "type": "github" } }, + "hyprland-protocols_2": { + "inputs": { + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728345020, + "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "a7c183800e74f337753de186522b9017a07a8cee", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1733472316, + "narHash": "sha256-PvXiFLIExJEJj+goLbIuXLTN5CSDSAUsAfiYSdbbWg0=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "969427419276c7ee170301ef1ebe0f68eb6eb2e2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprland_2": { + "inputs": { + "aquamarine": "aquamarine_2", + "hyprcursor": "hyprcursor_2", + "hyprland-protocols": "hyprland-protocols_2", + "hyprlang": "hyprlang_2", + "hyprutils": "hyprutils_2", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": "nixpkgs_7", + "pre-commit-hooks": "pre-commit-hooks_2", + "systems": [ + "hyprspace", + "systems" + ], + "xdph": "xdph_2" + }, + "locked": { + "lastModified": 1729989895, + "narHash": "sha256-IFctdjt+v7zRDe24Y8+BdVDaKy0pmn60FWDzpYg4CT0=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "a3d3b4fd64a51a8c1663b450bd2a408f1f0fa9b3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, "hyprlang": { "inputs": { "hyprutils": [ @@ -785,6 +1029,76 @@ "type": "github" } }, + "hyprlang_2": { + "inputs": { + "hyprutils": [ + "hyprspace", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728168612, + "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprpanel": { + "inputs": { + "ags": "ags_2", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1733062031, + "narHash": "sha256-cPm3IukRcKZqTgmjL9kh3ZYGoXBD8elaTQ3TFo+W67Q=", + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "rev": "955eed6c60a3ea5d6b0b1b8b7086cffbae984277", + "type": "github" + }, + "original": { + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "type": "github" + } + }, + "hyprspace": { + "inputs": { + "hyprland": "hyprland_2", + "systems": "systems_3" + }, + "locked": { + "lastModified": 1733625860, + "narHash": "sha256-YiLUDw14NaavML8y9rxXxO7q+j3b/ghQhBmIy0+/Zmk=", + "owner": "KZDKM", + "repo": "Hyprspace", + "rev": "e2d561c933cd085d68bf0b39c4f78870ad0abbc2", + "type": "github" + }, + "original": { + "owner": "KZDKM", + "repo": "Hyprspace", + "type": "github" + } + }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -797,11 +1111,38 @@ ] }, "locked": { - "lastModified": 1731702627, - "narHash": "sha256-+JeO9gevnXannQxMfR5xzZtF4sYmSlWkX/BPmPx0mWk=", + "lastModified": 1732288281, + "narHash": "sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "e911361a687753bbbdfe3b6a9eab755ecaf1d9e1", + "rev": "b26f33cc1c8a7fd5076e19e2cce3f062dca6351c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_2": { + "inputs": { + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728941256, + "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", "type": "github" }, "original": { @@ -835,6 +1176,33 @@ "type": "github" } }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, "ixx": { "inputs": { "flake-utils": [ @@ -920,11 +1288,11 @@ ] }, "locked": { - "lastModified": 1732324260, - "narHash": "sha256-0xzQvoId/P008QkTSAdFVv465P9rL9nYkIOWXL5pdsY=", + "lastModified": 1733570843, + "narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "698a62c628c2ec423aa770d8ec0e1d0bcf4fca1a", + "rev": "a35b08d09efda83625bef267eb24347b446c80b8", "type": "github" }, "original": { @@ -940,11 +1308,11 @@ ] }, "locked": { - "lastModified": 1732519917, - "narHash": "sha256-AGXhwHdJV0q/WNgqwrR2zriubLr785b02FphaBtyt1Q=", + "lastModified": 1733629314, + "narHash": "sha256-U0vivjQFAwjNDYt49Krevs1murX9hKBFe2Ye0cHpgbU=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "f4a5ca5771ba9ca31ad24a62c8d511a405303436", + "rev": "f1e477a7dd11e27e7f98b646349cd66bbabf2fb8", "type": "github" }, "original": { @@ -955,11 +1323,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1731676054, - "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", + "lastModified": 1733581040, + "narHash": "sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", + "rev": "22c3f2cf41a0e70184334a958e6b124fb0ce3e01", "type": "github" }, "original": { @@ -986,6 +1354,22 @@ } }, "nixpkgs-stable_2": { + "locked": { + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { "locked": { "lastModified": 1730741070, "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", @@ -1003,11 +1387,43 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", + "lastModified": 1733940404, + "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", "owner": "nixos", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_10": { + "locked": { + "lastModified": 1731763621, + "narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1715534503, + "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", "type": "github" }, "original": { @@ -1051,11 +1467,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1731676054, - "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", + "lastModified": 1733392399, + "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", + "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661", "type": "github" }, "original": { @@ -1067,15 +1483,15 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", - "owner": "nixos", + "lastModified": 1725634671, + "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1083,11 +1499,27 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", + "lastModified": 1732758367, + "narHash": "sha256-RzaI1RO0UXqLjydtz3GAXSTzHkpb/lLD1JD8a0W4Wpo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "fa42b5a5f401aab8a32bd33c9a4de0738180dc59", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1729413321, + "narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26", "type": "github" }, "original": { @@ -1097,33 +1529,33 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { - "lastModified": 1731763621, - "narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=", - "owner": "NixOS", + "lastModified": 1733940404, + "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d", + "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { - "lastModified": 1715534503, - "narHash": "sha256-5ZSVkFadZbFP1THataCaSf0JH2cAH3S29hU9rrxTEqk=", - "owner": "nixos", + "lastModified": 1733940404, + "narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "2057814051972fa1453ddfb0d98badbea9b83c06", + "rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1132,21 +1564,21 @@ "nixvim": { "inputs": { "devshell": "devshell", - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-parts": "flake-parts_2", "git-hooks": "git-hooks_2", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_9", "nuschtosSearch": "nuschtosSearch", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1732478249, - "narHash": "sha256-ka41KXN5B5C6yxJeIpFw5ytXFjd6vXJldw/5sN6y0CA=", + "lastModified": 1734223742, + "narHash": "sha256-vp3wSbCVU/4y5W+YI6H9PSix3WD7XbcIyesmB7W0ZWo=", "owner": "nix-community", "repo": "nixvim", - "rev": "a81a03a3f5dcdcdee5cbe831a9f2e81895e92875", + "rev": "58d2a5ac9cc4ff987e6edb77f2b55d1dec05ce50", "type": "github" }, "original": { @@ -1165,11 +1597,11 @@ ] }, "locked": { - "lastModified": 1731936508, - "narHash": "sha256-z0BSSf78LkxIrrFXZYmCoRRAxAmxMUKpK7CyxQRvkZI=", + "lastModified": 1733773348, + "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", "owner": "NuschtOS", "repo": "search", - "rev": "fe07070f811b717a4626d01fab714a87d422a9e1", + "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", "type": "github" }, "original": { @@ -1189,11 +1621,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1733318908, + "narHash": "sha256-SVQVsbafSM1dJ4fpgyBqLZ+Lft+jcQuMtEL3lQWx2Sk=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "6f4e2a2112050951a314d2733a994fbab94864c6", "type": "github" }, "original": { @@ -1204,19 +1636,44 @@ }, "pre-commit-hooks_2": { "inputs": { - "flake-compat": "flake-compat_4", - "gitignore": "gitignore_4", + "flake-compat": "flake-compat_3", + "gitignore": "gitignore_3", "nixpkgs": [ + "hyprspace", + "hyprland", "nixpkgs" ], "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1732021966, - "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", + "lastModified": 1729104314, + "narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_3": { + "inputs": { + "flake-compat": "flake-compat_5", + "gitignore": "gitignore_5", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_3" + }, + "locked": { + "lastModified": 1734190932, + "narHash": "sha256-nIweyhgHbDMJSH6zlciTe2abEzDKWkW28B6/qM9UWOU=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", + "rev": "c2b3567b03baf0999a1dd14f7e7ab34b46297d68", "type": "github" }, "original": { @@ -1231,11 +1688,13 @@ "devenv": "devenv", "home-manager": "home-manager", "hyprland": "hyprland", + "hyprpanel": "hyprpanel", + "hyprspace": "hyprspace", "nix-index-database": "nix-index-database", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_8", "nixpkgs-unstable": "nixpkgs-unstable", "nixvim": "nixvim", - "pre-commit-hooks": "pre-commit-hooks_2", + "pre-commit-hooks": "pre-commit-hooks_3", "sops-nix": "sops-nix", "stylix": "stylix", "superfile": "superfile" @@ -1243,14 +1702,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1732186149, - "narHash": "sha256-N9JGWe/T8BC0Tss2Cv30plvZUYoiRmykP7ZdY2on2b0=", + "lastModified": 1733965552, + "narHash": "sha256-GZ4YtqkfyTjJFVCub5yAFWsHknG1nS/zfk7MuHht4Fs=", "owner": "Mic92", "repo": "sops-nix", - "rev": "53c853fb1a7e4f25f68805ee25c83d5de18dc699", + "rev": "2d73fc6ac4eba4b9a83d3cb8275096fbb7ab4004", "type": "github" }, "original": { @@ -1265,24 +1724,24 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_6", "flake-utils": "flake-utils_2", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", "nixpkgs": [ "nixpkgs" ], - "systems": "systems_3", + "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1732261424, - "narHash": "sha256-8uTKUHkaU980J5kRnLYrdwmjZYB88eBGUk1oVgIUHFE=", + "lastModified": 1734110168, + "narHash": "sha256-Q0eeLYn45ErXlqGQyXmLLHGe1mqnUiK0Y9wZRa1SNFI=", "owner": "danth", "repo": "stylix", - "rev": "b667a340730dd3d0596083aa7c949eef01367c62", + "rev": "a9e3779949925ef22f5a215c5f49cf520dea30b1", "type": "github" }, "original": { @@ -1293,17 +1752,17 @@ }, "superfile": { "inputs": { - "flake-compat": "flake-compat_6", + "flake-compat": "flake-compat_7", "flake-utils": "flake-utils_3", "gomod2nix": "gomod2nix", - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1732529942, - "narHash": "sha256-63YHJvqsRqbtkbAlrsREfL/9b3jaojQbqnzboPNxX/E=", + "lastModified": 1733807756, + "narHash": "sha256-VZHQlbPffsKpt0kxMhh2BwDB4BCuGhBAoGPczDyReIk=", "owner": "MHNightCat", "repo": "superfile", - "rev": "8bd8b2139528cfad6f79536ef59806583bcdee93", + "rev": "aab8d242e54c63bfb9b0bfe8cf5b4c00690e568f", "type": "github" }, "original": { @@ -1329,20 +1788,35 @@ }, "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, "systems_3": { + "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_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1357,7 +1831,22 @@ "type": "github" } }, - "systems_4": { + "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=", @@ -1409,11 +1898,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1696725902, - "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "lastModified": 1729501581, + "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", "type": "github" }, "original": { @@ -1430,11 +1919,11 @@ ] }, "locked": { - "lastModified": 1732292307, - "narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=", + "lastModified": 1733761991, + "narHash": "sha256-s4DalCDepD22jtKL5Nw6f4LP5UwoMcPzPZgHWjAfqbQ=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "705df92694af7093dfbb27109ce16d828a79155f", + "rev": "0ce9d149d99bc383d1f2d85f31f6ebd146e46085", "type": "github" }, "original": { @@ -1471,11 +1960,58 @@ ] }, "locked": { - "lastModified": 1731703417, - "narHash": "sha256-rheDc/7C+yI+QspYr9J2z9kQ5P9F4ATapI7qyFAe1XA=", + "lastModified": 1733157064, + "narHash": "sha256-NetqJHAN4bbZDQADvpep+wXk2AbMZ2bN6tINz8Kpz6M=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "8070f36deec723de71e7557441acb17e478204d3", + "rev": "fd85ef39369f95eed67fdf3f025e86916edeea2f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, + "xdph_2": { + "inputs": { + "hyprland-protocols": [ + "hyprspace", + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprspace", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprspace", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprspace", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprspace", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprspace", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728166987, + "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 2ec3e85..44df739 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,11 @@ nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. + hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; + hyprspace = { + url = "github:KZDKM/Hyprspace"; + }; + # Home manager home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home-manager/machines/candlekeep.nix b/home-manager/machines/candlekeep.nix index 58e27ec..607d673 100644 --- a/home-manager/machines/candlekeep.nix +++ b/home-manager/machines/candlekeep.nix @@ -7,7 +7,8 @@ config, pkgs, ... -}: { +}: +{ # You can import other home-manager modules here imports = [ # If you want to use modules your own flake exports (from modules/home-manager): @@ -18,6 +19,7 @@ inputs.ags.homeManagerModules.default # You can also split up your configuration and import pieces of it here: + ./candlekeep/variables.nix # ./nvim.nix ../modules/common.nix ../modules/hyprland.nix @@ -29,6 +31,12 @@ ../modules/ags.nix ../modules/neovim ../modules/yazi.nix + ../modules/hyprpanel.nix + ../modules/hyprlock.nix + ../modules/hypridle.nix + # ../modules/hyprspace.nix + ../modules/qutebrowser.nix + ../scripts/default.nix ]; nixpkgs = { @@ -41,7 +49,7 @@ # You can also add overlays exported from other flakes: # neovim-nightly-overlay.overlays.default - (final: prev: {neovim = inputs.neovim-config.packages."x86_64-linux".default;}) + (final: prev: { neovim = inputs.neovim-config.packages."x86_64-linux".default; }) # Or define it inline, for example: # (final: prev: { @@ -49,6 +57,7 @@ # patches = [ ./change-hello-to-hi.patch ]; # }); # }) + inputs.hyprpanel.overlay ]; # Configure your nixpkgs instance config = { @@ -66,7 +75,7 @@ stylix = { base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml"; - image = ../../wallpapers/nixos-wallpaper-catppuccin-latte.png; + image = ../../wallpapers/forrest.png; autoEnable = true; enable = true; @@ -103,7 +112,11 @@ # Add stuff for your user as you see fit: # programs.neovim.enable = true; - home.packages = with pkgs; [openvpn]; + home.packages = with pkgs; [ + openvpn + hyprpanel + nerd-fonts.overpass + ]; # Enable home-manager and git programs.home-manager.enable = true; diff --git a/home-manager/machines/candlekeep/variables.nix b/home-manager/machines/candlekeep/variables.nix new file mode 100644 index 0000000..881f78c --- /dev/null +++ b/home-manager/machines/candlekeep/variables.nix @@ -0,0 +1,26 @@ +{ config, ... }: +{ + imports = [ ../../../common/nixos/variables-config.nix ]; + + config.var = { + hostname = "candlekeep"; + username = "gwg313"; + configDirectory = "/home/" + config.var.username + "/.config/nixos"; + + keyboardLayout = "en_US"; + + location = "Ottawa"; + timeZone = "American/Toronto"; + defaultLocale = "en_US.UTF-8"; + + git = { + username = "gwg313"; + email = "gwg313@pm.me"; + }; + + autoUpgrade = true; + autoGarbageCollector = true; + + theme = import ../../../common/style/vars/candlekeep.nix; + }; +} diff --git a/home-manager/modules/alacritty.nix b/home-manager/modules/alacritty.nix index 9265b66..1fa8aba 100644 --- a/home-manager/modules/alacritty.nix +++ b/home-manager/modules/alacritty.nix @@ -13,7 +13,8 @@ }; font = { normal = { - family = lib.mkForce "Monaspace Krypton"; + # family = lib.mkForce "Monaspace Krypton"; + family = lib.mkForce "Comic Code"; }; }; }; diff --git a/home-manager/modules/common-gui.nix b/home-manager/modules/common-gui.nix index a40bb90..63515ae 100644 --- a/home-manager/modules/common-gui.nix +++ b/home-manager/modules/common-gui.nix @@ -1,7 +1,9 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ imports = [ ./alacritty.nix ./fuzzel.nix + ./kitty.nix ]; fonts.fontconfig.enable = true; @@ -11,7 +13,7 @@ home.packages = with pkgs; [ # fonts - nerdfonts + nerd-fonts.monaspace noto-fonts-cjk-sans rPackages.fontawesome ubuntu_font_family diff --git a/home-manager/modules/common.nix b/home-manager/modules/common.nix index 8239320..4096ca5 100644 --- a/home-manager/modules/common.nix +++ b/home-manager/modules/common.nix @@ -16,6 +16,7 @@ ./tmux/tmux.nix ./zoxide.nix ./zsh.nix + ./nushell.nix ]; nixpkgs.config.allowUnfree = true; @@ -60,6 +61,7 @@ atac dblab gobang + lazyjournal # TUI Apps #ncdu_2 diff --git a/home-manager/modules/hypridle.nix b/home-manager/modules/hypridle.nix new file mode 100644 index 0000000..f7e4bf6 --- /dev/null +++ b/home-manager/modules/hypridle.nix @@ -0,0 +1,28 @@ +# Hypridle is a daemon that listens for user activity and runs commands when the user is idle. +{ pkgs, ... }: +{ + services.hypridle = { + enable = true; + settings = { + + general = { + ignore_dbus_inhibit = false; + lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; + before_sleep_cmd = "loginctl lock-session"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 600; + on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; + } + + { + timeout = 660; + on-timeout = "systemctl suspend"; + } + ]; + }; + }; +} diff --git a/home-manager/modules/hyprland.nix b/home-manager/modules/hyprland.nix index eec6a05..8bf305e 100644 --- a/home-manager/modules/hyprland.nix +++ b/home-manager/modules/hyprland.nix @@ -2,16 +2,17 @@ config, pkgs, ... -}: { - imports = [./waybar.nix]; +}: +{ + imports = [ ./waybar.nix ]; - services.mako = { - enable = true; - defaultTimeout = 4000; - borderRadius = 5; - borderSize = 2; - layer = "overlay"; - }; + # services.mako = { + # enable = true; + # defaultTimeout = 4000; + # borderRadius = 5; + # borderSize = 2; + # layer = "overlay"; + # }; wayland.windowManager.hyprland.enable = true; @@ -96,13 +97,17 @@ bind = [ # general binds - "$mod, RETURN, exec, ${pkgs.alacritty}/bin/alacritty" + ",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid + # "$mod, RETURN, exec, ${pkgs.alacritty}/bin/alacritty" + "$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty" + "$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus "$mod, Q, killactive" "SUPER_SHIFT, Q, exec, ${pkgs.wlogout}/bin/wlogout" "$mod, SPACE, exec, pkill fuzzel || ${pkgs.fuzzel}/bin/fuzzel" # pkill or allows for toggle "SUPER_SHIFT, SPACE, togglefloating" - "$mod, F, fullscreen" - "$mod, L, exec, ${pkgs.swaylock-effects}/bin/swaylock -f" + # "$mod, F, fullscreen" + "$mod,F, exec, hyprfocus-toggle" # Toggle HyprFocus + "$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock" "$mod, B, exec, ${pkgs.grim}/bin/grim \"desktop-$(${pkgs.busybox}/bin/date +\"%Y%m%d%H%m\").png" "SUPER_SHIFT, B, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -d)\" - | ${pkgs.wl-clipboard}/bin/wl-copy" # Screenshot selection directly to clipboard @@ -114,8 +119,10 @@ # Screen Brightness #",XF86MonBrightnessUp, exec, ${pkgs.light}/bin/light -A 10" #",XF86MonBrightnessDown, exec, ${pkgs.light}/bin/light -U 10" - ",XF86MonBrightnessUp, exec, ${pkgs.light}/bin/light -S \"$(${pkgs.light}/bin/light -G | ${pkgs.busybox}/bin/awk '{ print int(($1 + .72) * 1.4) }')\"" - ",XF86MonBrightnessDown, exec, ${pkgs.light}/bin/light -S \"$(${pkgs.light}/bin/light -G | ${pkgs.busybox}/bin/awk '{ print int($1 / 1.4) }')\"" + # ",XF86MonBrightnessUp, exec, ${pkgs.light}/bin/light -S \"$(${pkgs.light}/bin/light -G | ${pkgs.busybox}/bin/awk '{ print int(($1 + .72) * 1.4) }')\"" + # ",XF86MonBrightnessDown, exec, ${pkgs.light}/bin/light -S \"$(${pkgs.light}/bin/light -G | ${pkgs.busybox}/bin/awk '{ print int($1 / 1.4) }')\"" + ",XF86MonBrightnessUp, exec, brightness-up" # Brightness Up + ",XF86MonBrightnessDown, exec, brightness-down" # Brightness Down # move focus "$mod, left, movefocus, l" "$mod, right, movefocus, r" @@ -160,9 +167,9 @@ "$mod_ALT, mouse:272, resizewindow" ]; - monitor = [",preferred,auto,1"]; + monitor = [ ",preferred,auto,1" ]; # monitor = [ "HDMI-A-1,1920x1080@144,auto,1" ]; - exec = ["${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill"]; + exec = [ "${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill" ]; exec-once = [ # Enables clipboard sync "${pkgs.wl-clipboard}/bin/wl-paste -p | ${pkgs.wl-clipboard}/bin/wl-copy" @@ -189,35 +196,5 @@ # will reset the submap, meaning end the current one and return to the global one submap=reset ''; - services.swayidle = { - enable = true; - events = [ - { - event = "before-sleep"; - command = "${pkgs.swaylock}/bin/swaylock -f"; - } - { - event = "lock"; - command = "lock"; - } - ]; - timeouts = [ - { - timeout = 1800; - command = "${pkgs.swaylock}/bin/swaylock -f"; - } - ]; - systemdTarget = "xdg-desktop-portal-hyprland.service"; - }; - programs.swaylock = { - enable = true; - settings = { - font-size = "24"; - indicator-idle-visible = false; - indicator-radius = 100; - indicator-thickness = 20; - show-failed-attempts = true; - }; - }; } diff --git a/home-manager/modules/hyprlock.nix b/home-manager/modules/hyprlock.nix new file mode 100644 index 0000000..26d4117 --- /dev/null +++ b/home-manager/modules/hyprlock.nix @@ -0,0 +1,89 @@ +{ config, lib, ... }: +let + foreground = "rgba(216, 222, 233, 0.70)"; + imageStr = toString config.stylix.image; + font = config.stylix.fonts.serif.name; +in +{ + programs.hyprlock = { + enable = true; + settings = { + general = { + grace = 5; + no_fade_in = false; + disable_loading_bar = false; + }; + + # BACKGROUND + background = { + monitor = ""; + # path = imageStr; + blur_passes = 0; + contrast = 0.8916; + brightness = 0.7172; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + }; + + label = [ + { + # Day-Month-Date + monitor = ""; + text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"''; + color = foreground; + font_size = 28; + font_family = font + " Bold"; + position = "0, 490"; + halign = "center"; + valign = "center"; + } + # Time + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +"%I:%M")"''; + color = foreground; + font_size = 160; + font_family = "steelfish outline regular"; + position = "0, 370"; + halign = "center"; + valign = "center"; + } + # USER + { + monitor = ""; + text = " $USER"; + color = foreground; + outline_thickness = 2; + dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true; + font_size = 18; + font_family = font + " Bold"; + position = "0, -180"; + halign = "center"; + valign = "center"; + } + ]; + + # INPUT FIELD + input-field = lib.mkForce { + monitor = ""; + size = "300, 60"; + outline_thickness = 2; + dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true; + outer_color = "rgba(255, 255, 255, 0)"; + inner_color = "rgba(255, 255, 255, 0.1)"; + font_color = foreground; + fade_on_empty = false; + font_family = font + " Bold"; + placeholder_text = "🔒 Enter Password"; + hide_input = false; + position = "0, -250"; + halign = "center"; + valign = "center"; + }; + }; + }; +} diff --git a/home-manager/modules/hyprpanel.nix b/home-manager/modules/hyprpanel.nix new file mode 100644 index 0000000..f741164 --- /dev/null +++ b/home-manager/modules/hyprpanel.nix @@ -0,0 +1,239 @@ +# Hyprpanel is the bar on top of the screen +# Display informations like workspaces, battery, wifi, ... +{ pkgs, config, ... }: +let + transparentButtons = config.var.theme.bar.transparentButtons; + + location = config.var.location; + username = config.var.username; + + accent = "#${config.lib.stylix.colors.base0D}"; + accent-alt = "#${config.lib.stylix.colors.base03}"; + background = "#${config.lib.stylix.colors.base00}"; + background-alt = "#${config.lib.stylix.colors.base01}"; + foreground = "#${config.lib.stylix.colors.base05}"; + font = "${config.stylix.fonts.serif.name}"; + fontSize = "${toString config.stylix.fonts.sizes.desktop}"; + + rounding = config.var.theme.rounding; + border-size = config.var.theme.border-size; + + gaps-out = config.var.theme.gaps-out; + gaps-in = config.var.theme.gaps-in; + + floating = config.var.theme.bar.floating; + transparent = config.var.theme.bar.transparent; + position = config.var.theme.bar.position; + +in +{ + wayland.windowManager.hyprland.settings.exec-once = [ "${pkgs.hyprpanel}/bin/hyprpanel" ]; + + home.packages = with pkgs; [ + hyprpanel + libnotify + ]; + + home.file.".cache/ags/hyprpanel/options.json" = { + text = # json + '' + { + "bar.layouts": { + "0": { + "left": [ + "dashboard", + "workspaces", + "windowtitle" + ], + "middle": [ + "media" + ], + "right": [ + "systray", + "volume", + "bluetooth", + "battery", + "network", + "clock", + "notifications" + ] + }, + "1": { + "left": [ + "dashboard", + "workspaces", + "windowtitle" + ], + "middle": [ + "media" + ], + "right": [ + "systray", + "volume", + "bluetooth", + "battery", + "network", + "clock", + "notifications" + ] + }, + "2": { + "left": [ + "dashboard", + "workspaces", + "windowtitle" + ], + "middle": [ + "media" + ], + "right": [ + "systray", + "volume", + "bluetooth", + "battery", + "network", + "clock", + "notifications" + ] + } + }, + "theme.font.name": "${font}", + "theme.font.size": "${fontSize}px", + "theme.bar.outer_spacing": "${if floating && transparent then "0" else "8"}px", + "theme.bar.buttons.y_margins": "${if floating && transparent then "0" else "8"}px", + "theme.bar.buttons.spacing": "0.3em", + "theme.bar.buttons.radius": "${ + if transparent then toString rounding else toString (rounding - 8) + }px", + "theme.bar.floating": ${if floating then "true" else "false"}, + "theme.bar.buttons.padding_x": "0.8rem", + "theme.bar.buttons.padding_y": "0.4rem", + + "theme.bar.buttons.workspaces.hover": "${accent-alt}", + "theme.bar.buttons.workspaces.active": "${accent}", + "theme.bar.buttons.workspaces.available": "${accent-alt}", + "theme.bar.buttons.workspaces.occupied": "${accent}", + + "theme.bar.margin_top": "${if position == "top" then toString (gaps-in * 2) else "0"}px", + "theme.bar.margin_bottom": "${if position == "top" then "0" else toString (gaps-in * 2)}px", + "theme.bar.margin_sides": "${toString gaps-out}px", + "theme.bar.border_radius": "${toString rounding}px", + + "bar.launcher.icon": "", + "theme.bar.transparent": ${if transparent then "true" else "false"}, + "bar.workspaces.show_numbered": false, + "bar.workspaces.workspaces": 5, + "bar.workspaces.monitorSpecific": true, + "bar.workspaces.hideUnoccupied": false, + "bar.windowtitle.label": true, + "bar.volume.label": false, + "bar.network.truncation_size": 12, + "bar.bluetooth.label": false, + "bar.clock.format": "%a %b %d %I:%M %p", + "bar.notifications.show_total": true, + "theme.notification.border_radius": "${toString rounding}px", + "theme.osd.enable": true, + "theme.osd.orientation": "vertical", + "theme.osd.location": "left", + "theme.osd.radius": "${toString rounding}px", + "theme.osd.margins": "0px 0px 0px 10px", + "theme.osd.muted_zero": true, + "menus.clock.weather.location": "${location}", + "menus.clock.weather.key": "myapikey", + "menus.clock.weather.unit": "metric", + "menus.dashboard.powermenu.avatar.image": "/home/${username}/.profile_picture.png", + "menus.dashboard.powermenu.confirmation": false, + + "menus.dashboard.shortcuts.left.shortcut1.icon": "îȘź", + "menus.dashboard.shortcuts.left.shortcut1.command": "qutebrowser", + "menus.dashboard.shortcuts.left.shortcut1.tooltip": "Qutebrowser", + "menus.dashboard.shortcuts.left.shortcut2.icon": "󰅶", + "menus.dashboard.shortcuts.left.shortcut2.command": "caffeine", + "menus.dashboard.shortcuts.left.shortcut2.tooltip": "Caffeine", + "menus.dashboard.shortcuts.left.shortcut3.icon": "󰖔", + "menus.dashboard.shortcuts.left.shortcut3.command": "night-shift", + "menus.dashboard.shortcuts.left.shortcut3.tooltip": "Night-shift", + "menus.dashboard.shortcuts.left.shortcut4.icon": "", + "menus.dashboard.shortcuts.left.shortcut4.command": "menu", + "menus.dashboard.shortcuts.left.shortcut4.tooltip": "Search Apps", + "menus.dashboard.shortcuts.right.shortcut1.icon": "", + "menus.dashboard.shortcuts.right.shortcut1.command": "hyprpicker -a", + "menus.dashboard.shortcuts.right.shortcut1.tooltip": "Color Picker", + "menus.dashboard.shortcuts.right.shortcut3.icon": "󰄀", + "menus.dashboard.shortcuts.right.shortcut3.command": "screenshot region swappy", + "menus.dashboard.shortcuts.right.shortcut3.tooltip": "Screenshot", + + "menus.dashboard.directories.left.directory1.label": "󰉍 Downloads", + "menus.dashboard.directories.left.directory1.command": "bash -c \"thunar $HOME/Downloads/\"", + "menus.dashboard.directories.left.directory2.label": "󰉏 Pictures", + "menus.dashboard.directories.left.directory2.command": "bash -c \"thunar $HOME/Pictures/\"", + "menus.dashboard.directories.left.directory3.label": "ó±§¶ Documents", + "menus.dashboard.directories.left.directory3.command": "bash -c \"thunar $HOME/Documents/\"", + "menus.dashboard.directories.right.directory1.label": "󱂔 Home", + "menus.dashboard.directories.right.directory1.command": "bash -c \"thunar $HOME/\"", + "menus.dashboard.directories.right.directory2.label": "󰚝 Projects", + "menus.dashboard.directories.right.directory2.command": "bash -c \"thunar $HOME/dev/\"", + "menus.dashboard.directories.right.directory3.label": " Config", + "menus.dashboard.directories.right.directory3.command": "bash -c \"thunar $HOME/.config/\"", + + "theme.bar.menus.monochrome": true, + "wallpaper.enable": false, + "theme.bar.menus.background": "${background}", + "theme.bar.menus.cards": "${background-alt}", + "theme.bar.menus.card_radius": "${toString rounding}px", + "theme.bar.menus.label": "${foreground}", + "theme.bar.menus.text": "${foreground}", + "theme.bar.menus.border.size": "${toString border-size}px", + "theme.bar.menus.border.color": "${accent}", + "theme.bar.menus.border.radius": "${toString rounding}px", + "theme.bar.menus.popover.text": "${foreground}", + "theme.bar.menus.popover.background": "${background-alt}", + "theme.bar.menus.listitems.active": "${accent}", + "theme.bar.menus.icons.active": "${accent}", + "theme.bar.menus.switch.enabled":"${accent}", + "theme.bar.menus.check_radio_button.active": "${accent}", + "theme.bar.menus.buttons.default": "${accent}", + "theme.bar.menus.buttons.active": "${accent}", + "theme.bar.menus.iconbuttons.active": "${accent}", + "theme.bar.menus.progressbar.foreground": "${accent}", + "theme.bar.menus.slider.primary": "${accent}", + "theme.bar.menus.tooltip.background": "${background-alt}", + "theme.bar.menus.tooltip.text": "${foreground}", + "theme.bar.menus.dropdownmenu.background":"${background-alt}", + "theme.bar.menus.dropdownmenu.text": "${foreground}", + "theme.bar.background": "${background + (if transparentButtons then "00" else "")}", + "theme.bar.buttons.style": "default", + "theme.bar.buttons.monochrome": true, + "theme.bar.buttons.text": "${foreground}", + "theme.bar.buttons.background": "${ + (if transparent then background else background-alt) + (if transparentButtons then "00" else "") + }", + "theme.bar.buttons.icon": "${accent}", + "theme.bar.buttons.notifications.background": "${background-alt}", + "theme.bar.buttons.hover": "${background}", + "theme.bar.buttons.notifications.hover": "${background}", + "theme.bar.buttons.notifications.total": "${accent}", + "theme.bar.buttons.notifications.icon": "${accent}", + "theme.notification.background": "${background-alt}", + "theme.notification.actions.background": "${accent}", + "theme.notification.actions.text": "${foreground}", + "theme.notification.label": "${accent}", + "theme.notification.border": "${background-alt}", + "theme.notification.text": "${foreground}", + "theme.notification.labelicon": "${accent}", + "theme.osd.bar_color": "${accent}", + "theme.osd.bar_overflow_color": "${accent-alt}", + "theme.osd.icon": "${background}", + "theme.osd.icon_container": "${accent}", + "theme.osd.label": "${accent}", + "theme.osd.bar_container": "${background-alt}", + "theme.bar.menus.menu.media.background.color": "${background-alt}", + "theme.bar.menus.menu.media.card.color": "${background-alt}", + "theme.bar.menus.menu.media.card.tint": 90, + "bar.customModules.updates.pollingInterval": 1440000, + "bar.media.show_active_only": true, + "theme.bar.location": "${position}" + } + ''; + }; +} diff --git a/home-manager/modules/hyprspace.nix b/home-manager/modules/hyprspace.nix new file mode 100644 index 0000000..99841c9 --- /dev/null +++ b/home-manager/modules/hyprspace.nix @@ -0,0 +1,19 @@ +{ inputs, pkgs, ... }: +{ + + wayland.windowManager.hyprland = { + plugins = [ inputs.hyprspace.packages.${pkgs.system}.Hyprspace ]; + settings = { + plugin = { + overview = { + autoDrag = false; + }; + }; + + bind = [ + "$mod,S, overview:toggle" # Overview + + ]; + }; + }; +} diff --git a/home-manager/modules/kitty.nix b/home-manager/modules/kitty.nix new file mode 100644 index 0000000..ae33337 --- /dev/null +++ b/home-manager/modules/kitty.nix @@ -0,0 +1,29 @@ +# A fast, GPU-accelerated terminal emulator. +{ + pkgs, + lib, + ... +}: +{ + programs.kitty = { + enable = true; + font = { + # name = lib.mkForce "Comic Code"; + size = lib.mkForce 16; + }; + shellIntegration.enableZshIntegration = true; + extraConfig = '' + font_family family="Comic Code Ligatures" + bold_font auto + italic_font auto + bold_italic_font auto + symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+ed00-U+efc1,U+f000-U+f2ff,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f533,U+f0001-U+f1af0 Symbols Nerd Font Mono + ''; + environment = { + "TERM" = "xterm-256color"; + }; + }; + home.packages = with pkgs; [ + ueberzugpp + ]; +} diff --git a/home-manager/modules/linux-gui.nix b/home-manager/modules/linux-gui.nix index fe575aa..8385fa4 100644 --- a/home-manager/modules/linux-gui.nix +++ b/home-manager/modules/linux-gui.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ imports = [ ./discord ./zathura.nix @@ -27,5 +28,6 @@ chromium vlc zotero + feishin ]; } diff --git a/home-manager/modules/neovim/plugins/lsp.nix b/home-manager/modules/neovim/plugins/lsp.nix index 80813ce..c7b9554 100644 --- a/home-manager/modules/neovim/plugins/lsp.nix +++ b/home-manager/modules/neovim/plugins/lsp.nix @@ -2,7 +2,8 @@ lib, pkgs, ... -}: { +}: +{ programs.nixvim = { extraConfigLuaPre = # lua @@ -63,10 +64,10 @@ servers = { nil-ls = { enable = true; - filetypes = ["nix"]; + filetypes = [ "nix" ]; settings = { formatting = { - command = ["${lib.getExe pkgs.nixfmt-rfc-style}"]; + command = [ "${lib.getExe pkgs.nixfmt-rfc-style}" ]; }; }; }; @@ -74,14 +75,19 @@ pyright.enable = true; hls.enable = true; gopls.enable = true; - hls.installGhc = true; + # hls.installGhc = true; + hls.filetypes = [ + "haskell" + "lhaskell" + "cabal" + ]; leanls.enable = true; texlab.enable = true; html.enable = true; cmake = { enable = true; - filetypes = ["cmake"]; + filetypes = [ "cmake" ]; }; # ccls = { diff --git a/home-manager/modules/nushell.nix b/home-manager/modules/nushell.nix new file mode 100644 index 0000000..8b5d0ce --- /dev/null +++ b/home-manager/modules/nushell.nix @@ -0,0 +1,118 @@ +# A cat clone with syntax highlighting and Git integration. +{ pkgs, ... }: +{ + programs.nushell = { + enable = true; + envFile.text = '' + # Environment Variables + $env.XDG_CONFIG_HOME = ($env.HOME | path join ".config") + # Starship Prompt + mkdir ~/.cache/starship + starship init nu | save -f ~/.cache/starship/init.nu + # Zoxide + zoxide init nushell | save -f ~/.zoxide.nu + ''; + shellAliases = { + update = "sudo nixos-rebuild switch"; + clean = "nix-collect-garbage -d"; + repair = "nix-store --repair --verify --check-contents"; + + "." = "cd ../"; + ".." = "cd ../../"; + "..." = "cd ../../../"; + "...." = "cd ../../../../"; + + ls = "ls | grid -c -i"; + ll = "ls"; + + ps = "procs"; + grep = "rg"; + cat = "bat"; + vim = "nvim"; + + # Default flags + rm = "rm -i"; + chmod = "chmod -R"; + cp = "cp -i -v"; + mv = "mv -i -v"; + mkdir = "mkdir -p -v"; + df = "df -h"; + du = "du -h -s"; + dd = "dd status=progress bs=4M conv=fdatasync "; + wgetpaste = "wgetpaste -Xx"; + sudo = "sudo "; # Makes sudo work with es + ssh = "TERM=xterm ssh"; # Fixes some issues with ssh on some terminals + wget = "wget -c"; + ping = "ping -c 5"; + ftp = "ftp -p"; + + # Misc alieses I use often + + ports = "ss -tulanp"; + rmd = "rm -rf"; + mine = "sudo chown -R $(whoami):users"; + benchmark = "hyperfine --warmup 3 "; + c = "clear"; + listen = "lsof -P -i -n"; + octal = "stat -c '%a %n'"; + }; + configFile.text = '' + $env.config = { + show_banner: false + } + # Starhip Prompt + use ~/.cache/starship/init.nu + # Zoxide + source ~/.zoxide.nu + # nix shell + def nix-shell [] { + nix-shell --run $env.SHELL + } + def "version-completions" [] { + [ + {value: "4", description: "IPv4 address (default)"}, + {value: "6", description: "IPv6 address"} + ]} + # Define the function with completion annotation + def "whatismyip" [ + version?: int@version-completions # Parameter with custom completion + ] { + # Validate and set default version + let version = if ($version == null) { + 4 + } else if ($version in [4 6]) { + $version + } else { + error make { + msg: "Invalid IP version. Must be either 4 or 6." + } + } + # Get IP address + let ip = (http get $"https://api($version).ipify.org") + # Create record and display as table + { + $"ip($version)": $ip + } | table + } + ''; + }; + + home.packages = with pkgs; [ + fastfetch + ]; + + programs = { + carapace.enable = true; + carapace.enableNushellIntegration = true; + # starship = { + # enable = true; + # settings = { + # add_newline = true; + # character = { + # success_symbol = "[➜](bold green)"; + # error_symbol = "[➜](bold red)"; + # }; + # }; + # }; + }; +} diff --git a/home-manager/modules/qutebrowser.nix b/home-manager/modules/qutebrowser.nix new file mode 100644 index 0000000..3f087f8 --- /dev/null +++ b/home-manager/modules/qutebrowser.nix @@ -0,0 +1,170 @@ +# A cat clone with syntax highlighting and Git integration. +{ ... }: +{ + programs.qutebrowser = { + enable = true; + + searchEngines = { + "DEFAULT" = "https://duckduckgo.com/?q={}&ia=web"; + "d" = "https://duckduckgo.com/?q={}&ia=web"; + "g" = "https://google.com/search?q={}"; + "y" = "https://youtube.com/results?search_query={}"; + "ya" = "https://yandex.com/search/?text={}"; + "n" = "https://mynixos.com/search?q={}"; + "nixo" = "https://search.nixos.org/options?channel=unstable&query={}"; + "nixp" = "https://search.nixos.org/packages?channel=unstable&query={}"; + "gt" = "https://github.com/search?q={}&type=repositories"; + }; + + quickmarks = { + home = "github.com/gwg313"; + mynixos = "https://mynixos.com"; + github = "https://github.com"; + outlook = "https://outlook.office.com/mail/"; + office = "https://www.office.com/?auth=2"; + proton = "https://mail.proton.me/u/0/inbox"; + cloudflare-one = "https://one.dash.cloudflare.com/"; + chatgpt = "https://chat.openai.com/"; + nixvim = "https://nix-community.github.io/nixvim/"; + hyprland = "https://wiki.hyprland.org/"; + nerdfont = "https://www.nerdfonts.com/cheat-sheet"; + youtube = "https://youtube.com/"; + cloudflare = "https://dash.cloudflare.com/"; + }; + + settings = { + url = { + default_page = "github.com/gwg313"; + start_pages = [ "github.com/gwg313" ]; + }; + + colors = { + webpage.preferred_color_scheme = "dark"; # Enable dark mode for websites that support it + }; + + statusbar.show = "in-mode"; + + completion = { + height = "30%"; + open_categories = [ "history" ]; + scrollbar = { + padding = 0; + width = 0; + }; + show = "always"; + shrink = true; + timestamp_format = ""; + web_history.max_items = 7; + }; + + content = { + autoplay = false; + javascript.clipboard = "access"; + javascript.enabled = true; + webgl = true; + pdfjs = true; + }; + + downloads = { + position = "bottom"; + remove_finished = 0; + }; + + hints = { + radius = 1; + }; + + scrolling = { + bar = "never"; + smooth = true; + }; + + tabs = { + show = "multiple"; + last_close = "close"; + mode_on_change = "restore"; + close_mouse_button = "right"; + }; + + zoom.default = "100%"; + + qt.force_software_rendering = "chromium"; + }; + + keyBindings = { + normal = { + " p" = "tab-move -"; + " n" = "tab-move +"; + " w" = "tab-close"; + + " 1" = "tab-focus 1"; + " 2" = "tab-focus 2"; + " 3" = "tab-focus 3"; + " 4" = "tab-focus 4"; + " 5" = "tab-focus 5"; + " 6" = "tab-focus 6"; + " 7" = "tab-focus 7"; + " 8" = "tab-focus 8"; + " 9" = "tab-focus 9"; + " 0" = "tab-focus 10"; + + "" = "tab-close"; + "" = "open -w"; + + "" = "tab-focus 1"; + "" = "tab-focus 2"; + "" = "tab-focus 3"; + "" = "tab-focus 4"; + "" = "tab-focus 5"; + "" = "tab-focus 6"; + "" = "tab-focus 7"; + "" = "tab-focus 8"; + "" = "tab-focus 9"; + "" = "tab-focus 10"; + }; + + command = { + "" = "tab-close"; + "" = "open -w"; + "" = "tab-focus 1"; + "" = "tab-focus 2"; + "" = "tab-focus 3"; + "" = "tab-focus 4"; + "" = "tab-focus 5"; + "" = "tab-focus 6"; + "" = "tab-focus 7"; + "" = "tab-focus 8"; + "" = "tab-focus 9"; + "" = "tab-focus 10"; + }; + + insert = { + "" = "tab-close"; + "" = "open -w"; + "" = "tab-focus 1"; + "" = "tab-focus 2"; + "" = "tab-focus 3"; + "" = "tab-focus 4"; + "" = "tab-focus 5"; + "" = "tab-focus 6"; + "" = "tab-focus 7"; + "" = "tab-focus 8"; + "" = "tab-focus 9"; + "" = "tab-focus 10"; + }; + }; + + extraConfig = '' + config.unbind("gm") + config.unbind("gd") + config.unbind("gb") + config.unbind("tl") + config.unbind("gt") + + c.tabs.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6} + c.statusbar.padding = {"bottom": 6, "left": 7, "right": 7, "top": 6} + + config.load_autoconfig(True) + ''; + }; +} diff --git a/home-manager/modules/starship.nix b/home-manager/modules/starship.nix index 9355c93..4056407 100644 --- a/home-manager/modules/starship.nix +++ b/home-manager/modules/starship.nix @@ -1,8 +1,10 @@ # A customizable prompt for shells. -{...}: { +{ ... }: +{ programs.starship = { enable = true; enableZshIntegration = true; + enableNushellIntegration = true; settings = { add_newline = true; character = { diff --git a/home-manager/modules/zoxide.nix b/home-manager/modules/zoxide.nix index 4aceb20..5ed04b3 100644 --- a/home-manager/modules/zoxide.nix +++ b/home-manager/modules/zoxide.nix @@ -1,7 +1,9 @@ # ✹ Magical shell history -{...}: { +{ ... }: +{ programs.zoxide = { enable = true; + enableNushellIntegration = true; }; programs.zsh = { diff --git a/home-manager/modules/zsh.nix b/home-manager/modules/zsh.nix index c8f76f5..be0c0a3 100644 --- a/home-manager/modules/zsh.nix +++ b/home-manager/modules/zsh.nix @@ -4,7 +4,8 @@ pkgs, user, ... -}: { +}: +{ programs.zsh = { enable = true; shellAliases = { @@ -53,10 +54,10 @@ zplug = { enable = true; plugins = [ - {name = "zsh-users/zsh-autosuggestions";} - {name = "zsh-users/zsh-completions";} - {name = "zsh-users/zsh-syntax-highlighting";} - {name = "MichaelAquilina/zsh-you-should-use";} + { name = "zsh-users/zsh-autosuggestions"; } + { name = "zsh-users/zsh-completions"; } + { name = "zsh-users/zsh-syntax-highlighting"; } + { name = "MichaelAquilina/zsh-you-should-use"; } ]; }; @@ -75,6 +76,11 @@ }; initExtra = '' eval $(thefuck --alias) + fastfetch ''; }; + + home.packages = with pkgs; [ + fastfetch + ]; } diff --git a/home-manager/scripts/brightness/default.nix b/home-manager/scripts/brightness/default.nix new file mode 100644 index 0000000..05a09e5 --- /dev/null +++ b/home-manager/scripts/brightness/default.nix @@ -0,0 +1,41 @@ +# - ## Brightness +#- +#- This module provides a set of scripts to control the brightness of the screen. +#- +#- - `brightness-up` increases the brightness by 5%. +#- - `brightness-down` decreases the brightness by 5%. +#- - `brightness-set [value]` sets the brightness to the given value. +#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value. + +{ pkgs, ... }: + +let + increments = "5"; + + brightness-change = pkgs.writeShellScriptBin "brightness-change" '' + [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+ + [[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%- + ''; + + brightness-set = pkgs.writeShellScriptBin "brightness-set" '' + ${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}% + ''; + + brightness-up = pkgs.writeShellScriptBin "brightness-up" '' + brightness-change up ${increments} + ''; + + brightness-down = pkgs.writeShellScriptBin "brightness-down" '' + brightness-change down ${increments} + ''; + +in +{ + home.packages = [ + pkgs.brightnessctl + brightness-change + brightness-up + brightness-down + brightness-set + ]; +} diff --git a/home-manager/scripts/caffeine/default.nix b/home-manager/scripts/caffeine/default.nix new file mode 100644 index 0000000..cd21efb --- /dev/null +++ b/home-manager/scripts/caffeine/default.nix @@ -0,0 +1,40 @@ +# - ## Caffeine +#- +#- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock). +#- +#- - `caffeine-status` - Check if hypridle is running. (0/1) +#- - `caffeine-status-icon` - Check if hypridle is running. (icon) +#- - `caffeine` - Toggle hypridle. + +{ pkgs, ... }: +let + caffeine-status = pkgs.writeShellScriptBin "caffeine-status" '' + [[ $(pidof "hypridle") ]] && echo "0" || echo "1" + ''; + + caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" '' + [[ $(pidof "hypridle") ]] && echo "ó°ŸȘ" || echo "󰅶" + ''; + + caffeine = pkgs.writeShellScriptBin "caffeine" '' + if [[ $(pidof "hypridle") ]]; then + systemctl --user stop hypridle.service + title="󰅶 Caffeine Activated" + description="Caffeine is now active! Your screen will not turn off automatically." + else + systemctl --user start hypridle.service + title="ó°ŸȘ Caffeine Deactivated" + description="Caffeine is now deactivated! Your screen will turn off automatically." + fi + + notif "caffeine" "$title" "$description" + ''; + +in +{ + home.packages = [ + caffeine-status + caffeine + caffeine-status-icon + ]; +} diff --git a/home-manager/scripts/default.nix b/home-manager/scripts/default.nix new file mode 100644 index 0000000..194509b --- /dev/null +++ b/home-manager/scripts/default.nix @@ -0,0 +1,11 @@ +{ + imports = [ + ./night-shift + ./brightness + ./hyprfocus + ./hyprpanel + ./caffeine + ./notification + ./screenshot + ]; +} diff --git a/home-manager/scripts/hyprfocus/default.nix b/home-manager/scripts/hyprfocus/default.nix new file mode 100644 index 0000000..91578e6 --- /dev/null +++ b/home-manager/scripts/hyprfocus/default.nix @@ -0,0 +1,52 @@ +# - ## Hyprfocus +#- +#- A simple script to toggle focus on few windows in Hyprland. +#- (disable gaps, border, shadow, opacity, etc.) +#- +#- - `hyprfocus-on` - Enable hyprfocus. +#- - `hyprfocus-off` - Disable hyprfocus. +#- - `hyprfocus-toggle` - Toggle hyprfocus. +{ pkgs, ... }: +let + hyprfocus-on = + pkgs.writeShellScriptBin "hyprfocus-on" + # bash + '' + hyprpanel-hide + hyprctl keyword "general:gaps_in" 0 + hyprctl keyword "general:gaps_out" 0 + hyprctl keyword "general:border_size" 1 + hyprctl keyword "decoration:rounding" 0 + hyprctl keyword "decoration:drop_shadow" false + hyprctl keyword "decoration:inactive_opacity" 0.98 + hyprctl keyword "decoration:active_opacity" 1 + echo "1" > /tmp/hyprfocus + ''; + + hyprfocus-off = + pkgs.writeShellScriptBin "hyprfocus-off" + # bash + '' + hyprctl reload + hyprpanel-show + rm /tmp/hyprfocus + ''; + + hyprfocus-toggle = + pkgs.writeShellScriptBin "hyprfocus-toggle" + # bash + '' + if [ -f /tmp/hyprfocus ]; then + hyprfocus-off + else + hyprfocus-on + fi + ''; +in +{ + home.packages = [ + hyprfocus-on + hyprfocus-off + hyprfocus-toggle + ]; +} diff --git a/home-manager/scripts/hyprpanel/default.nix b/home-manager/scripts/hyprpanel/default.nix new file mode 100644 index 0000000..9f1fc29 --- /dev/null +++ b/home-manager/scripts/hyprpanel/default.nix @@ -0,0 +1,52 @@ +# - ## Hyprpanel +#- +#- Quick scripts to toggle, reload, hide & show hyprpanel. +#- +#- - `hyprpanel-toggle` - Toggle hyprpanel (hide/show). +#- - `hyprpanel-show` - Show hyprpanel. +#- - `hyprpanel-hide` - Hide hyprpanel. +#- - `hyprpanel-reload` - Reload hyprpanel. +{ pkgs, ... }: +let + hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" '' + hyprpanel -t bar-0 + hyprpanel -t bar-1 + hyprpanel -t bar-2 + hyprpanel -t bar-3 + ''; + + hyprpanel-hide = pkgs.writeShellScriptBin "hyprpanel-hide" '' + status=$(hyprpanel -r "isWindowVisible('bar-0')") + if [[ $status == "true" ]]; then + hyprpanel -t bar-0 + fi + status=$(hyprpanel -r "isWindowVisible('bar-1')") + if [[ $status == "true" ]]; then + hyprpanel -t bar-1 + fi + ''; + + hyprpanel-show = pkgs.writeShellScriptBin "hyprpanel-show" '' + status=$(hyprpanel -r "isWindowVisible('bar-0')") + if [[ $status == "false" ]]; then + hyprpanel -t bar-0 + fi + status=$(hyprpanel -r "isWindowVisible('bar-1')") + if [[ $status == "false" ]]; then + hyprpanel -t bar-1 + fi + ''; + + hyprpanel-reload = pkgs.writeShellScriptBin "hyprpanel-reload" '' + [ $(pgrep "ags") ] && pkill ags + hyprctl dispatch exec hyprpanel + ''; +in +{ + home.packages = [ + hyprpanel-toggle + hyprpanel-reload + hyprpanel-hide + hyprpanel-show + ]; +} diff --git a/home-manager/scripts/night-shift/default.nix b/home-manager/scripts/night-shift/default.nix new file mode 100644 index 0000000..2e010cc --- /dev/null +++ b/home-manager/scripts/night-shift/default.nix @@ -0,0 +1,79 @@ +# - ## Night-Shift +#- +#- Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system. +#- It use hyprsunset to control the screen temperature. +#- +#- - `night-shift-on` activates Night-Shift. +#- - `night-shift-off` deactivates Night-Shift. +#- - `night-shift` toggles Night-Shift. +#- - `night-shift-status` checks if Night-Shift is active. (0/1) +#- - `night-shift-status-icon` checks if Night-Shift is active. (icon) +{ pkgs, ... }: +let + value = "4500"; # Default value for night-shift temperature + + night-shift-on = + pkgs.writeShellScriptBin "night-shift-on" + # bash + '' + ${pkgs.hyprsunset}/bin/hyprsunset -t ${value} & + title="󰖔 Night-Shift Activated" + description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes." + + notif "night-shift" "$title" "$description" + ''; + + night-shift-off = + pkgs.writeShellScriptBin "night-shift-off" + # bash + '' + pkill hyprsunset + title="󰖕 Night-Shift Deactivated" + description="Night-Shift is now deactivated! Your screen will return to normal." + + notif "night-shift" "$title" "$description" + ''; + + night-shift = + pkgs.writeShellScriptBin "night-shift" + # bash + '' + if pidof "hyprsunset"; then + night-shift-off + else + night-shift-on + fi + ''; + + night-shift-status = + pkgs.writeShellScriptBin "night-shift-status" + # bash + '' + if pidof "hyprsunset"; then + echo "1" + else + echo "0" + fi + ''; + + night-shift-status-icon = + pkgs.writeShellScriptBin "night-shift-status-icon" + # bash + '' + if pidof "hyprsunset"; then + echo "󰖔" + else + echo "󰖕" + fi + ''; +in +{ + home.packages = [ + pkgs.hyprsunset + night-shift-on + night-shift-off + night-shift + night-shift-status + night-shift-status-icon + ]; +} diff --git a/home-manager/scripts/notification/default.nix b/home-manager/scripts/notification/default.nix new file mode 100644 index 0000000..084ac55 --- /dev/null +++ b/home-manager/scripts/notification/default.nix @@ -0,0 +1,33 @@ +{ pkgs, ... }: +let + notif = + pkgs.writeShellScriptBin "notif" # bash + '' + # Shell script to send custom notifications + # Usage: notif "sender_id" "message" ["description"] + NOTIF_FOLDER="/tmp/notif" + sender_id=$1 # To overwrite existing notifications + title=$2 + description=$3 + + [[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER + [[ -f "$NOTIF_FOLDER/$sender_id" ]] || (echo "0" > "$NOTIF_FOLDER/$sender_id") + + old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id") + [[ -z "$old_notification_id" ]] && old_notification_id=0 + + ${pkgs.libnotify}/bin/notify-send \ + --replace-id="$old_notification_id" --print-id \ + --app-name="$sender_id" \ + "$title" \ + "$description" \ + > "$NOTIF_FOLDER/$sender_id" + ''; + +in +{ + home.packages = [ + pkgs.libnotify + notif + ]; +} diff --git a/home-manager/scripts/screenshot/default.nix b/home-manager/scripts/screenshot/default.nix new file mode 100644 index 0000000..04be4cd --- /dev/null +++ b/home-manager/scripts/screenshot/default.nix @@ -0,0 +1,40 @@ +# - ## Screenshot +#- +#- This module provides a script to take screenshots using `grimblast` and `swappy`. +#- +#- - `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard. +{ pkgs, ... }: +let + screenshot = pkgs.writeShellScriptBin "screenshot" '' + if [[ $2 == "swappy" ]];then + folder="/tmp" + else + folder="$HOME/Pictures" + fi + filename="$(date +%Y-%m-%d_%H:%M:%S).png" + + if [[ $1 == "window" ]];then + mode="active" + elif [[ $1 == "region" ]];then + mode="area" + elif [[ $1 == "monitor" ]];then + mode="output" + fi + + ${pkgs.grimblast}/bin/grimblast --notify --freeze save $mode "$folder/$filename" || exit 1 + + if [[ $2 == "swappy" ]];then + ${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/$filename" + exit 0 + fi + ''; +in +{ + home.packages = [ + pkgs.hyprshot + screenshot + pkgs.slurp + pkgs.grim + pkgs.grimblast + ]; +} diff --git a/hosts/candlekeep/configuration.nix b/hosts/candlekeep/configuration.nix index 5fd269e..535b931 100644 --- a/hosts/candlekeep/configuration.nix +++ b/hosts/candlekeep/configuration.nix @@ -8,7 +8,8 @@ user, pkgs, ... -}: { +}: +{ # You can import other NixOS modules here imports = [ # If you want to use modules your own flake exports (from modules/nixos): @@ -16,7 +17,9 @@ ../../common/nixos/common.nix ../../common/gui/hyprland.nix ../../common/style/stylix.nix + # ../../common/style/vars/candlekeep.nix ../../common/nixos/sysctl + # ../../common/nixos/tuigreet.nix ../../common/networking ../../common/nixos @@ -53,7 +56,8 @@ systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; - initrd.luks.devices."luks-b13379b3-2025-4d55-a40a-c0f3ad8ec801".device = "/dev/disk/by-uuid/b13379b3-2025-4d55-a40a-c0f3ad8ec801"; + initrd.luks.devices."luks-1dbfdeb6-8537-41b2-abf0-09373af3eeee".device = + "/dev/disk/by-uuid/1dbfdeb6-8537-41b2-abf0-09373af3eeee"; }; # sops @@ -90,19 +94,17 @@ # This will add each flake input as a registry # To make nix3 commands consistent with your flake - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ( + nix.registry = (lib.mapAttrs (_: flake: { inherit flake; })) ( (lib.filterAttrs (_: lib.isType "flake")) inputs ); # This will additionally add your inputs to the system's legacy channels # Making legacy nix commands consistent as well, awesome! - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; + nix.nixPath = [ "/etc/nix/path" ]; + environment.etc = lib.mapAttrs' (name: value: { + name = "nix/path/${name}"; + value.source = value.flake; + }) config.nix.registry; networking.hostName = "candlekeep"; # networking.networkmanager.enable = true; @@ -114,7 +116,7 @@ openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILq54YrM3BbhBs0oDLOrc1bkg6FCCmkV4E3pWLZp0ejN gwg313@pm.me" ]; - extraGroups = ["wheel"]; + extraGroups = [ "wheel" ]; }; }; @@ -129,6 +131,7 @@ EDITOR = "nvim"; VISUAL = "nvim"; PAGER = "moar"; + PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; }; }; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion diff --git a/hosts/candlekeep/hardware-configuration.nix b/hosts/candlekeep/hardware-configuration.nix index d3a9ad6..ab60837 100644 --- a/hosts/candlekeep/hardware-configuration.nix +++ b/hosts/candlekeep/hardware-configuration.nix @@ -26,19 +26,23 @@ boot.extraModulePackages = [ ]; fileSystems."/" = { - device = "/dev/disk/by-uuid/f2c87d99-ea17-4ef3-9ef6-bcc6637357f2"; + device = "/dev/disk/by-uuid/c79b630a-d130-42ed-8cdc-3f8545fe2993"; fsType = "ext4"; }; - boot.initrd.luks.devices."luks-58623f70-2e6b-4ee0-8d14-d2bf34c07daf".device = "/dev/disk/by-uuid/58623f70-2e6b-4ee0-8d14-d2bf34c07daf"; - + boot.initrd.luks.devices."luks-96e3b309-ca79-4b42-aca5-3f098b123758".device = + "/dev/disk/by-uuid/96e3b309-ca79-4b42-aca5-3f098b123758"; fileSystems."/boot" = { - device = "/dev/disk/by-uuid/2394-0AAF"; + device = "/dev/disk/by-uuid/1FBA-8B80"; fsType = "vfat"; - }; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; swapDevices = [ - { device = "/dev/disk/by-uuid/dd8d717a-d872-4780-af3c-af4c702b587a"; } + { device = "/dev/disk/by-uuid/17eec89e-2381-4a25-8935-63cbcc67d07c"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/hosts/grymforge/configuration.nix b/hosts/grymforge/configuration.nix index fcff151..ce7b4a5 100644 --- a/hosts/grymforge/configuration.nix +++ b/hosts/grymforge/configuration.nix @@ -8,7 +8,8 @@ pkgs, user, ... -}: { +}: +{ # You can import other NixOS modules here imports = [ # If you want to use modules your own flake exports (from modules/nixos): @@ -56,7 +57,8 @@ systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; - initrd.luks.devices."luks-276bd2e3-9d6d-4df6-9155-3684907b48f0".device = "/dev/disk/by-uuid/276bd2e3-9d6d-4df6-9155-3684907b48f0"; + initrd.luks.devices."luks-276bd2e3-9d6d-4df6-9155-3684907b48f0".device = + "/dev/disk/by-uuid/276bd2e3-9d6d-4df6-9155-3684907b48f0"; }; # sops @@ -93,19 +95,17 @@ # This will add each flake input as a registry # To make nix3 commands consistent with your flake - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ( + nix.registry = (lib.mapAttrs (_: flake: { inherit flake; })) ( (lib.filterAttrs (_: lib.isType "flake")) inputs ); # This will additionally add your inputs to the system's legacy channels # Making legacy nix commands consistent as well, awesome! - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; + nix.nixPath = [ "/etc/nix/path" ]; + environment.etc = lib.mapAttrs' (name: value: { + name = "nix/path/${name}"; + value.source = value.flake; + }) config.nix.registry; networking.hostName = "grymforge"; networking.networkmanager.enable = true; @@ -117,16 +117,16 @@ openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILq54YrM3BbhBs0oDLOrc1bkg6FCCmkV4E3pWLZp0ejN gwg313@pm.me" ]; - extraGroups = ["wheel"]; + extraGroups = [ "wheel" ]; }; }; environment = { - loginShellInit = '' - if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then - exec Hyprland - fi - ''; # Will automatically open Hyprland when logged into tty1 + # loginShellInit = '' + # # if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then + # # exec Hyprland + # # fi + # ''; # Will automatically open Hyprland when logged into tty1 variables = { TERMINAL = "alacritty"; EDITOR = "nvim"; diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index 75e6ca6..fccb754 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -1,6 +1,5 @@ restic_key: ENC[AES256_GCM,data:DzpWvFP5gyhrnLVIYgu9ouotWqkOAHehihSKf/TqJE+sHTD4vnIScfhzoKzdkoDoWfkcmQ==,iv:q83qNYuP/3mngvg+kUfOVToogL8VTvZ6HiGIztpnP/s=,tag:YNWwbma0HmPKqYCS1L5kQQ==,type:str] wireless.env: ENC[AES256_GCM,data:/5i0Kv+VFTtVpaD7tfO2ahePu20eYkUYAqoh39PA2aoMWywLddQEQy4arj2Nvcw8hsRk760Kiq4wz3c23dPDqy7rU980NF2RaP4ODMIiQISfYeQP9coD84JhlnSTW+7EkhV520naqJgIYY0IsA8OxR/5euyFMHOL75FKnBh1ILY2DPSsJNG2m2ldw+US7E+7r4REl8tDqKfCIL5tznmbVTbPrer7cwrXe+ScFaholmqSntaB06yIIO3yr88TmE6EXF6oLCXU,iv:DPOqx7M7E83+DYjGFPZy44cxrta/3953IDjXL40rLAc=,tag:KmYBpQKgshMSgxnC96T1bQ==,type:str] -home_uuid: ENC[AES256_GCM,data:VX92mQuoYXpPxe6EzQ==,iv:3i7Ll7rITrOTYMKK4tHy+IU5DVWFbFjrFHQ3uw3Gr7g=,tag:0bp/XaR4JOdFYpSVtpxm5A==,type:str] sops: kms: [] gcp_kms: [] @@ -16,8 +15,8 @@ sops: US9oa0pORXRVWWlyYlZZTGhXdTdOaWsKClqIK/YNJIIGFqOO0t4oni8dRTTXQniG ioIwAOdEgE/n0vcYhHXxLxWlTeqGZF076g7EFfIqiSNqrDtacRnazg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-03T04:35:54Z" - mac: ENC[AES256_GCM,data:6h43edjI9ouW2vbTcydrvbrqDb7GmMVgXBUk8nHyd0mV5QzR0ZeGzl+WXN5cwTRqwahAMsFax6riWyCFyMAEHIC66ucQhhPKH90vsKpm7/Nh037lbIfbYnqVG5PTdRzLo0zELkNmB5NX7j0amgynEX3xm1ipcWPGowTQiVjkQ98=,iv:zsVRb2ahPZ27hOkdhjmDl3px0wBri+xIwSvya2Kg8Hg=,tag:qrDuyDrIfccOnvqekiNnWA==,type:str] + lastmodified: "2024-12-16T02:59:51Z" + mac: ENC[AES256_GCM,data:E8dmBkTvRlVGqPuHLciY4pXyvRqJU8uJo1pjmKaTnKc5s5O/k+bSRcG4XKsD+TLAEqSIE0zQlvTknV+yvc37VNYuxYx0g5KsDzW1zHwzQ2G+87dLSo4V6cCvo+ySdZNTCumal1lKAXGXuWxul34K3U5YG72YPnQpU8WXMQ/y5sk=,iv:uER87eu8mXu5YMGINGtBqeJbULyOdErJvbCASNrqe58=,tag:0bpnLA0Us0VLWA82oyJhxA==,type:str] pgp: [] unencrypted_suffix: _unencrypted - version: 3.9.0 + version: 3.9.2 diff --git a/wallpapers/anime-girl.jpg b/wallpapers/anime-girl.jpg new file mode 100644 index 0000000..e76753c Binary files /dev/null and b/wallpapers/anime-girl.jpg differ diff --git a/wallpapers/forrest.png b/wallpapers/forrest.png new file mode 100644 index 0000000..f8c6dca Binary files /dev/null and b/wallpapers/forrest.png differ diff --git a/wallpapers/virtual-youtuber-anime-girl.jpg b/wallpapers/virtual-youtuber-anime-girl.jpg new file mode 100644 index 0000000..399ea03 Binary files /dev/null and b/wallpapers/virtual-youtuber-anime-girl.jpg differ