From b4ae5a89aa9c058df20e1f71e137a09c358a0a5f Mon Sep 17 00:00:00 2001 From: KeksNino Date: Fri, 31 Jul 2026 17:00:52 +0200 Subject: [PATCH] partly add hyprland home module + bluetooth --- flake.lock | 593 +++++++++++++++++- flake.nix | 4 +- hosts/desktop/configuration.nix | 6 + hosts/desktop/home-manager/home.nix | 44 +- .../desktop/home-manager/hyprland/default.nix | 5 + .../desktop/home-manager/hyprland/general.nix | 162 +++++ hosts/desktop/home-manager/hyprland/rules.nix | 130 ++++ hosts/desktop/home-manager/programs.nix | 45 ++ hosts/desktop/packages.nix | 2 + 9 files changed, 934 insertions(+), 57 deletions(-) create mode 100644 hosts/desktop/home-manager/hyprland/default.nix create mode 100644 hosts/desktop/home-manager/hyprland/general.nix create mode 100644 hosts/desktop/home-manager/hyprland/rules.nix create mode 100644 hosts/desktop/home-manager/programs.nix diff --git a/flake.lock b/flake.lock index c71f9e8..33f4f33 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,42 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprsplit", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778620495, + "narHash": "sha256-Gu7UhWjwKCgSiVC3Qz/Rc7cYi9DNuDTBxYzg3kfLvfM=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "be35f75ac305f430f5f9d89b5f5a4af59ca7567e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, "bcdl-free": { "inputs": { "nixpkgs": "nixpkgs" @@ -33,6 +70,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -92,7 +145,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -108,6 +161,29 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprsplit", + "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" + } + }, "gsr-ui": { "inputs": { "flake-utils": "flake-utils", @@ -170,10 +246,380 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprsplit", + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_2", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1779392427, + "narHash": "sha256-0SiD8JBx6cU0KL1XjLMsR/nSZB5XY3uhrNnvfxH0CtY=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "8b7110cc68662a343b6839f292ac0f44a64c3364", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprsplit", + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprsplit", + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprsplit", + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprsplit", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777320127, + "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprsplit": { + "inputs": { + "hyprland": "hyprland", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1781205112, + "narHash": "sha256-PaoUtmk+qIP/ESdxkxnY7mUMpMHjix88qu22R5GLQqE=", + "owner": "shezdy", + "repo": "hyprsplit", + "rev": "6b00b677d8905fb38779c91e12d6294e0e586a44", + "type": "github" + }, + "original": { + "owner": "shezdy", + "repo": "hyprsplit", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1772462885, + "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778234770, + "narHash": "sha256-jAcsogZwWMfXT9MfXxZzkwliAqIuZUV0p71h6Ba9ReE=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "a2dbd8a4cc51f7cbe4224732668392bb1aa79df2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777159683, + "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778410714, + "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "millennium": { "inputs": { "millennium-src": "millennium-src", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_4" }, "locked": { "dir": "packages/nix", @@ -239,6 +685,38 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1778443072, + "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1781577229, "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", @@ -254,7 +732,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_5": { "locked": { "lastModified": 1785332987, "narHash": "sha256-Eiw4ie++bC7tDWyBEZmcbEeKv1xv0UAihkVTjD4C5VM=", @@ -269,7 +747,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { "lastModified": 1784555310, "narHash": "sha256-/FCliTPgiuV1owejZFNx3Ch9irdvkOfOFl+HHZ+DrtM=", @@ -285,7 +763,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_7": { "locked": { "lastModified": 1767026758, "narHash": "sha256-7fsac/f7nh/VaKJ/qm3I338+wAJa/3J57cOGpXi0Sbg=", @@ -301,7 +779,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_8": { "locked": { "lastModified": 1783279667, "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=", @@ -317,7 +795,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_9": { "locked": { "lastModified": 1784007870, "narHash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=", @@ -336,8 +814,8 @@ "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_4", - "systems": "systems_2" + "nixpkgs": "nixpkgs_6", + "systems": "systems_3" }, "locked": { "lastModified": 1785364321, @@ -353,13 +831,38 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778507602, + "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "bcdl-free": "bcdl-free", "gsr-ui": "gsr-ui", "home-manager": "home-manager", + "hyprsplit": "hyprsplit", "millennium": "millennium", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "nixvim": "nixvim", "sls-steam": "sls-steam", "xremap-flake": "xremap-flake", @@ -424,6 +927,21 @@ } }, "systems_2": { + "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_3": { "locked": { "lastModified": 1774449309, "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", @@ -439,7 +957,7 @@ "type": "github" } }, - "systems_3": { + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -454,6 +972,53 @@ "type": "github" } }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprsplit", + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprsplit", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprsplit", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprsplit", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprsplit", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprsplit", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778265244, + "narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, "xremap": { "flake": false, "locked": { @@ -475,7 +1040,7 @@ "inputs": { "crane": "crane", "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_7", "xremap": "xremap" }, "locked": { @@ -495,7 +1060,7 @@ "yazi": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_8", "rust-overlay": "rust-overlay" }, "locked": { @@ -515,7 +1080,7 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1785224333, diff --git a/flake.nix b/flake.nix index a38d73b..3b0ffc2 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ millennium.url = "github:SteamClientHomebrew/Millennium?dir=packages/nix"; bcdl-free.url = "git+https://git.pizzasucht.net/KeksNino/free-bandcamp-downloader"; nixvim.url = "github:nix-community/nixvim"; + hyprsplit.url = "github:shezdy/hyprsplit"; }; outputs = @@ -33,6 +34,7 @@ gsr-ui, bcdl-free, nixvim, + hyprsplit, ... }@inputs: let @@ -64,7 +66,7 @@ home-manager.users.user = import ./hosts/desktop/home-manager/home.nix; home-manager.extraSpecialArgs = { - inherit zen-browser; + inherit zen-browser hyprsplit; }; programs.gpu-screen-recorder = { diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 9bf8020..5de118f 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -89,6 +89,11 @@ in hardware.graphics.enable32Bit = true; services.hardware.openrgb.enable = true; + hardware.bluetooth = { + enable = true; + powerOnBoot = false; + }; + # Bootloader. boot.loader.grub.enable = true; boot.loader.grub.device = "nodev"; @@ -240,6 +245,7 @@ in libxkbcommon # libxkbcommon.so.0 libx11 # libX11.so.6 wayland + krb5 ]); }; diff --git a/hosts/desktop/home-manager/home.nix b/hosts/desktop/home-manager/home.nix index 52fff66..9109cd4 100644 --- a/hosts/desktop/home-manager/home.nix +++ b/hosts/desktop/home-manager/home.nix @@ -7,6 +7,7 @@ { imports = [ ./mpd.nix + ./programs.nix zen-browser.homeModules.beta ]; @@ -54,12 +55,6 @@ setAsDefaultBrowser = true; }; - programs.yazi.enable = true; - programs.yazi.enableFishIntegration = true; - - programs.fzf.enable = true; - programs.fzf.enableFishIntegration = true; - programs.eza = { enable = true; enableFishIntegration = true; @@ -70,14 +65,6 @@ ]; }; - programs.pywal = { - enable = true; - package = pkgs.pywal16; - }; - - programs.lazygit.enable = true; - programs.lazygit.enableFishIntegration = true; - programs.rbw = { enable = true; settings = { @@ -87,31 +74,6 @@ }; }; - programs.distrobox.enable = true; - services.podman.enable = true; - - programs.rofi.enable = true; - programs.rofi.plugins = [ pkgs.rofi-calc ]; - - services.polkit-gnome.enable = true; - services.cliphist.enable = true; - programs.btop.enable = true; - services.udiskie.enable = true; - programs.cava.enable = true; - programs.equibop.enable = true; - services.awww.enable = true; - services.mpdris2.enable = true; - programs.fastfetch.enable = true; - programs.prismlauncher.enable = true; - programs.fd.enable = true; - programs.uv.enable = true; - programs.satty.enable = true; - programs.mpvpaper.enable = true; - programs.obsidian.enable = true; - programs.gcc.enable = true; - programs.mpv.enable = true; - programs.imv.enable = true; - programs.aria2.enable = true; programs.qutebrowser = { enable = true; settings = { @@ -166,12 +128,10 @@ rm = "gomi"; ssh = "kitty +kitten ssh"; nd = "nix develop"; + df = "df -h -x tmpfs -x devtmpfs -x squashfs -x overlay -x efivarfs"; }; }; - programs.zoxide.enable = true; - programs.zoxide.enableFishIntegration = true; - home.file.".local/share/Steam/steam.cfg".text = '' BootStrapperInhibitAll=enable BootStrapperForceSelfUpdate=disable diff --git a/hosts/desktop/home-manager/hyprland/default.nix b/hosts/desktop/home-manager/hyprland/default.nix new file mode 100644 index 0000000..7814bed --- /dev/null +++ b/hosts/desktop/home-manager/hyprland/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./general.nix + ]; +} diff --git a/hosts/desktop/home-manager/hyprland/general.nix b/hosts/desktop/home-manager/hyprland/general.nix new file mode 100644 index 0000000..a407085 --- /dev/null +++ b/hosts/desktop/home-manager/hyprland/general.nix @@ -0,0 +1,162 @@ +{ hyprsplit, ... }: + +let + # Replace these with your pywal colors or import them from another file. + # wal = { + # color11 = "#..."; + # color14 = "#..."; + # }; +in +{ + wayland.windowManager.hyprland = { + enable = true; + + settings = { + + device = [ + { + name = "glorious-model-o-wireless"; + sensitivity = -1.0; + } + ]; + + config = { + input = { + kb_layout = "de"; + follow_mouse = 1; + repeat_delay = 300; + repeat_rate = 35; + scroll_factor = 1.3; + sensitivity = -1.0; + }; + + general = { + gaps_in = 4; + gaps_out = 12; + border_size = 2; + + # "col.active_border" = "rgb(${wal.color11}) rgb(${wal.color14}) 45deg"; + # "col.active_border" = "rgba(80808077) rgba(80808077) 45deg"; + + # "col.inactive_border" = "rgba(80808077) rgba(80808077) 45deg"; + + resize_on_border = false; + allow_tearing = false; + layout = "dwindle"; + }; + + decoration = { + rounding = 2; + + active_opacity = 0.65; + inactive_opacity = 0.65; + + shadow = { + enabled = true; + range = 50; + render_power = 4; + color = "0xaf1a1a1a"; + }; + + blur = { + enabled = true; + size = 3; + passes = 4; + brightness = 0.473; + contrast = 1.0; + vibrancy = 0.1696; + vibrancy_darkness = 0.2; + ignore_opacity = true; + popups = true; + }; + }; + + master = { + new_status = "master"; + new_on_top = true; + mfact = 0.5; + orientation = "center"; + }; + + misc = { + force_default_wallpaper = 0; + disable_hyprland_logo = true; + enable_anr_dialog = false; + }; + + xwayland = { + force_zero_scaling = true; + }; + }; + + # animations = { + # enabled = false; + # }; + + # bezier = [ + # "md3_standard,0.2,0,0,1" + # "md3_decel,0.05,0.7,0.1,1" + # "md3_accel,0.3,0,0.8,0.15" + # "overshot,0.05,0.9,0.1,1.02" + # + # # Hyprland supports spring curves as strings. + # "spring_snappy,1,80,16" + # + # "weighted_decel,0.05,0.9,0.1,1" + # "snap_curve,0.1,1,0,1" + # "winIn,0.1,1,0.1,1" + # "winOut,0.1,1,0.1,1" + # ]; + # + # animation = [ + # "windows,1,4,spring_snappy" + # "windowsIn,1,3,md3_decel,popin 70%" + # "windowsOut,1,4,md3_accel,popin 70%" + # "windowsMove,1,4,overshot" + # + # "fade,1,3,md3_decel" + # + # "layers,1,4.5,md3_standard,fade" + # "layersIn,1,4.5,winIn,slide" + # "layersOut,1,5,winOut,slide" + # + # "workspaces,1,5,md3_decel,slide" + # "workspacesIn,1,7,winIn,slide" + # "workspacesOut,1,7,winOut,slide" + # + # "specialWorkspace,1,4,winIn,slidevert" + # ]; + }; + + extraLuaFiles = { + # create a symlink to `.config/hypr/hyprsplit/init.lua`. + "hyprsplit/init" = { + autoLoad = false; + content = builtins.readFile "${hyprsplit}/init.lua"; + }; + # Finally, use it directly in Lua. + "hyprload" = { + autoLoad = true; + content = '' + local hs = require("hyprsplit") + hs.config({ num_workspaces = 10 }) + + local mod = "SUPER" + + for i = 1, 10 do + local key = (i == 10) and "0" or tostring(i) + hl.bind(mod .. " + " .. key, hs.dsp.focus({ workspace = i })) + hl.bind(mod .. " + " .. key, hs.dsp.window.move({ workspace = i })) + hl.bind("SUPER + " .. key, hs.dsp.focus({ workspace = i })) + hl.bind("SUPER + SHIFT + " .. key, hs.dsp.window.move({ workspace = i, follow = true })) + end + ''; + }; + }; + extraConfig = '' + hl.monitor({ output = "DP-1", mode = "1920x1080@60", position = "3840x0", scale = "auto" }) + hl.monitor({ output = "DP-2", mode = "1920x1080@144", position = "1920x0", scale = "auto", bitdepth = 10 }) + hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@60", position = "0x0", scale = "auto" }) + ''; + }; +} diff --git a/hosts/desktop/home-manager/hyprland/rules.nix b/hosts/desktop/home-manager/hyprland/rules.nix new file mode 100644 index 0000000..1085a78 --- /dev/null +++ b/hosts/desktop/home-manager/hyprland/rules.nix @@ -0,0 +1,130 @@ +{ + wayland.windowManager.hyprland.settings = { + window_rule = [ + # ----------------- + # Workspace + # ----------------- + "workspace 24,title:^(rmpc)$" + "workspace 10,class:^(equibop)$" + + "monitor DP-1,title:^(rmpc)$" + "monitor DP-1,class:^(equibop)$" + + # ----------------- + # Windows + # ----------------- + "opacity 1 0.999999,class:^(mpv)$" + "opacity 0.99 override 0.99 override,class:^(obsidian)$" + + # ----------------- + # Floating + # ----------------- + "float,class:^(imv)$" + "float,class:^(nemo)$" + "float,class:.*,title:^(Open File.*)$" + "float,title:^(Picture-in-Picture)$" + "float,class:^(rofi)$" + "float,class:^(xdg-desktop-portal-gtk)$" + "float,title:^(Steam Settings)$" + "float,title:^(Friends List)$" + "float,title:^(nvim)$" + "float,class:^(org.gnome.FileRoller)$" + "float,class:^(org.gnome.Decibels)$" + "float,class:^(neovide)$" + "float,class:^(org.prismlauncher.PrismLauncher)$" + "float,class:^(feh)$" + "float,class:^(com.github.aliencoweatcake.imageviewer)$" + "float,class:^(waypaper)$" + + # ----------------- + # Scrolling + # ----------------- + "scrollmouse 1.0,class:^(Minecraft.*)$" + "scrollmouse 1.0,class:^(Lunar.*)$" + "scrollmouse 1.0,class:^(LiquidBounce.*)$" + "scrollmouse 1.0,class:^(Nomifactory.*)$" + "scrollmouse 1.0,class:^(GT.*)$" + + # ----------------- + # Center + # ----------------- + "center,class:^(imv)$" + "center,class:^(nemo)$" + "center,class:^(org.prismlauncher.PrismLauncher)$" + + # ----------------- + # Size + # ----------------- + "size 1200 700,class:^(imv)$" + "size 1200 700,class:^(nemo)$" + "size 1200 700,title:^(nvim)$" + "size 1200 700,class:^(org.gnome.Decibels)$" + "size 1200 700,class:^(neovide)$" + "size 1200 700,class:^(org.prismlauncher.PrismLauncher)$" + "size 1200 700,class:^(waypaper)$" + + "suppressevent maximize,class:.*" + + # ----------------- + # Opaque + # ----------------- + "opaque,class:^(kitty)$" + "opaque,class:^(nemo)$" + "opaque,class:^(virt-manager)$" + "opaque,class:^(rofi)$" + "opaque,class:^(looking-glass-client)$" + "opaque,class:^(steam)$" + "opaque,class:^(equibop)$" + "opaque,initialtitle:^(Zen Browser)$" + "opaque,class:^(org.qutebrowser.qutebrowser)$" + "opaque,class:^(gimp)$" + "opaque,class:^(discord)$" + "opaque,class:^(librewolf)$" + "opaque,class:^(imv)$" + "opaque,class:^(org.gnome.Decibels)$" + "opaque,class:^(neovide)$" + "opaque,class:^(Tor Browser)$" + "opaque,class:^(com.ayugram.desktop)$" + "opaque,title:^(Software Manager)$" + "opaque,class:^(waypaper)$" + "opaque,class:^(mpv)$" + "opaque,class:^(helium)$" + "opaque,class:^(Spotify)$" + + # ----------------- + # Kando + # ----------------- + "noblur,class:^(kando)$" + "opaque,class:^(kando)$" + "size 100% 100%,class:^(kando)$" + "bordersize 0,class:^(kando)$" + "noanim,class:^(kando)$" + "float,class:^(kando)$" + "pin,class:^(kando)$" + ]; + + layerrule = [ + "blur,rofi" + "noanim,hyprpicker" + "noanim,selection" + + "noscreenshare,notifications" + "blur,notifications" + "ignorealpha 1,notifications" + + "blur,wofi" + + "dimaround,rofi" + + "noanim,^dms$" + "noscreenshare,dms:notification-popup" + + "noanim,noctalia-background-.*$" + "ignorealpha 0.5,noctalia-background-.*$" + "blur,noctalia-background-.*$" + "blurpopups,noctalia-background-.*$" + + "noscreenshare,noctalia-notifications-.*$" + ]; + }; +} diff --git a/hosts/desktop/home-manager/programs.nix b/hosts/desktop/home-manager/programs.nix new file mode 100644 index 0000000..e9f80cc --- /dev/null +++ b/hosts/desktop/home-manager/programs.nix @@ -0,0 +1,45 @@ +{ pkgs, ... }: +{ + programs.yazi.enable = true; + programs.yazi.enableFishIntegration = true; + + programs.fzf.enable = true; + programs.fzf.enableFishIntegration = true; + + programs.lazygit.enable = true; + programs.lazygit.enableFishIntegration = true; + + programs.zoxide.enable = true; + programs.zoxide.enableFishIntegration = true; + + programs.distrobox.enable = true; + services.podman.enable = true; + + programs.rofi.enable = true; + programs.rofi.plugins = [ pkgs.rofi-calc ]; + + services.polkit-gnome.enable = true; + services.cliphist.enable = true; + programs.btop.enable = true; + services.udiskie.enable = true; + programs.cava.enable = true; + programs.equibop.enable = true; + services.awww.enable = true; + services.mpdris2.enable = true; + programs.fastfetch.enable = true; + programs.prismlauncher.enable = true; + programs.fd.enable = true; + programs.uv.enable = true; + programs.satty.enable = true; + programs.mpvpaper.enable = true; + programs.obsidian.enable = true; + programs.gcc.enable = true; + programs.mpv.enable = true; + programs.imv.enable = true; + programs.aria2.enable = true; + + programs.pywal = { + enable = true; + package = pkgs.pywal16; + }; +} diff --git a/hosts/desktop/packages.nix b/hosts/desktop/packages.nix index 13410f5..362b797 100644 --- a/hosts/desktop/packages.nix +++ b/hosts/desktop/packages.nix @@ -59,6 +59,8 @@ losslesscut tree stow + bluetui + file-roller ]; fonts.packages = with pkgs; [