diff --git a/flake.lock b/flake.lock index 8e5bff6..299670d 100644 --- a/flake.lock +++ b/flake.lock @@ -237,7 +237,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -255,7 +255,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1731533236, @@ -273,7 +273,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -291,7 +291,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_7" }, "locked": { "lastModified": 1731533236, @@ -309,7 +309,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_8" + "systems": "systems_9" }, "locked": { "lastModified": 1681202837, @@ -441,6 +441,35 @@ "type": "github" } }, + "hyprgraphics_2": { + "inputs": { + "hyprutils": [ + "hyprlock", + "hyprutils" + ], + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1737634889, + "narHash": "sha256-9JZE3KxcXOqZH9zs3UeadngDiK/yIACTiAR8HSA/TNI=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "0d77b4895ad5f1bb3b0ee43103a5246c58b65591", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, "hyprland": { "inputs": { "aquamarine": "aquamarine", @@ -451,7 +480,9 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_2", + "nixpkgs": [ + "nixpkgs" + ], "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" @@ -622,6 +653,60 @@ "type": "github" } }, + "hyprlang_2": { + "inputs": { + "hyprutils": [ + "hyprlock", + "hyprutils" + ], + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1737634606, + "narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f41271d35cc0f370d300413d756c2677f386af9d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprlock": { + "inputs": { + "hyprgraphics": "hyprgraphics_2", + "hyprlang": "hyprlang_2", + "hyprutils": "hyprutils_2", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1740265014, + "narHash": "sha256-U+8HOPgfrNkFEadoyB9GXSPPFW/Uytvb3TxyqW3JOw4=", + "owner": "hyprwm", + "repo": "hyprlock", + "rev": "e588351d1df57b125fda8d92f5b36a435545bb95", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlock", + "type": "github" + } + }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -647,6 +732,31 @@ "type": "github" } }, + "hyprutils_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1737978343, + "narHash": "sha256-TfFS0HCEJh63Kahrkp1h9hVDMdLU8a37Zz+IFucxyfA=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "6a8bc9d2a4451df12f5179dc0b1d2d46518a90ab", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, "hyprwayland-scanner": { "inputs": { "nixpkgs": [ @@ -672,6 +782,31 @@ "type": "github" } }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "hyprlock", + "nixpkgs" + ], + "systems": [ + "hyprlock", + "systems" + ] + }, + "locked": { + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -946,22 +1081,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1739020877, - "narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1740463929, "narHash": "sha256-4Xhu/3aUdCKeLfdteEHMegx5ooKQvwPHNkOgNCXQrvc=", @@ -977,7 +1096,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { "lastModified": 1740560979, "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", @@ -993,7 +1112,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_4": { "locked": { "lastModified": 1740303746, "narHash": "sha256-XcdiWLEhjJkMxDLKQJ0CCivmYYCvA5MDxu9pMybM5kM=", @@ -1009,7 +1128,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_5": { "locked": { "lastModified": 1682134069, "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", @@ -1064,7 +1183,7 @@ "nur": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_3", "treefmt-nix": "treefmt-nix" }, "locked": { @@ -1087,9 +1206,9 @@ "flake-utils": "flake-utils_4", "mnw": "mnw", "nil": "nil", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_4", "nmd": "nmd", - "systems": "systems_7" + "systems": "systems_8" }, "locked": { "lastModified": 1740659022, @@ -1220,12 +1339,13 @@ "home-manager": "home-manager", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", + "hyprlock": "hyprlock", "lix-module": "lix-module", "nix-inspect": "nix-inspect", "nix-minecraft": "nix-minecraft", "nix-vscode-extensions": "nix-vscode-extensions", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", "nixvirt-git": "nixvirt-git", "nur": "nur", @@ -1355,16 +1475,16 @@ }, "systems_3": { "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" } }, @@ -1443,6 +1563,21 @@ "type": "github" } }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "talhelper": { "inputs": { "flake-parts": "flake-parts_3", @@ -1510,7 +1645,7 @@ "vscode-server": { "inputs": { "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1729422940, diff --git a/flake.nix b/flake.nix index 7d2e8fd..26bb9ee 100644 --- a/flake.nix +++ b/flake.nix @@ -85,7 +85,15 @@ }; # Hyprland - hyprland.url = "github:hyprwm/Hyprland"; + hyprland = { + url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Hyprlock + hyprlock = { + url = "github:hyprwm/hyprlock"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Hyprland plugins hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; diff --git a/nixos/home/modules/de/hyprland.nix b/nixos/home/modules/de/hyprland.nix index 138e880..b25396c 100644 --- a/nixos/home/modules/de/hyprland.nix +++ b/nixos/home/modules/de/hyprland.nix @@ -12,6 +12,31 @@ in { imports = [inputs.ags.homeManagerModules.default]; config = mkIf cfg.enable { + gtk = { + enable = true; + + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = 1; + gtk-theme-name = "Andromeda-dark"; + gtk-icon-theme-name = "Flat-Remix-Blue-Dark"; + gtk-font-name = "Fira Code Semi-Bold 14"; + gtk-cursor-theme-name = "Bibata-Modern-Ice"; + gtk-cursor-theme-size = 24; + gtk-toolbar-style = "GTK_TOOLBAR_ICONS"; + gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; + gtk-button-images = 1; + gtk-menu-images = 1; + gtk-enable-event-sounds = 1; + gtk-enable-input-feedback-sounds = 0; + gtk-xft-antialias = 1; + gtk-xft-hinting = 1; + gtk-xft-hintstyle = "hintslight"; + gtk-xft-rgba = "rgb"; + }; + gtk4.extraConfig = { + gtk-application-prefer-dark-theme = "1"; + }; + }; programs.ags = { enable = true; diff --git a/nixos/hosts/telchar/default.nix b/nixos/hosts/telchar/default.nix index 63b7dcd..7b8db88 100644 --- a/nixos/hosts/telchar/default.nix +++ b/nixos/hosts/telchar/default.nix @@ -15,6 +15,7 @@ in { uv fastfetch gtk3 + dconf-editor ]; hardware.graphics = { diff --git a/nixos/modules/nixos/de/hyprland.nix b/nixos/modules/nixos/de/hyprland.nix index 97bc2a7..3c555ac 100644 --- a/nixos/modules/nixos/de/hyprland.nix +++ b/nixos/modules/nixos/de/hyprland.nix @@ -33,6 +33,7 @@ in { nvtopPackages.full # Video card monitoring nwg-displays # Display manager for Hyprland nwg-look # GTK settings editor, designed for Wayland. + pamixer # Volume control pyprland # Python bindings for Hyprland rofi-wayland # Window switcher and run dialog slurp # Select a region in Wayland @@ -64,6 +65,12 @@ in { busybox ]; + # Enabling Hyprlock to unlock the system + security = { + pam.services.hyprlock = {}; + polkit.enable = true; + }; + # Hyprland nixpkgs program modules programs = { # Hyprland DE @@ -74,8 +81,15 @@ in { inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; withUWSM = true; }; + dconf.enable = true; + seahorse.enable = true; + fuse.userAllowOther = true; + ## Additional programs for the overall Hyprland experience - hyprlock.enable = true; + hyprlock = { + enable = true; + package = inputs.hyprlock.packages.${pkgs.stdenv.hostPlatform.system}.hyprlock; + }; nm-applet.indicator = true; # Compatability; Application indicator for NetworkManager thunar.enable = true; thunar.plugins = with pkgs.xfce; [ @@ -85,6 +99,10 @@ in { thunar-volman tumbler ]; + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; }; # Hyprland nixpkgs service modules services = { @@ -98,6 +116,7 @@ in { }; }; }; + gnome.gnome-keyring.enable = true; }; # Fonts fonts.packages = with pkgs; [ diff --git a/nixos/profiles/role-workstation.nix b/nixos/profiles/role-workstation.nix index da24e2f..e198cc9 100644 --- a/nixos/profiles/role-workstation.nix +++ b/nixos/profiles/role-workstation.nix @@ -59,7 +59,6 @@ in }; programs = { - ssh.startAgent = true; # Enable OpenJDK java.enable = true;