Several hyprland updates:

plugins, new cursor, light/dark themes, new app launcher, ...
This commit is contained in:
Miguel Palhas
2026-02-16 17:33:40 +00:00
parent 48225afa6d
commit e8086e8528
48 changed files with 1436 additions and 290 deletions
View File
View File
View File
View File
View File
+10 -1
View File
@@ -21,7 +21,16 @@
"Bash(nix-build:*)",
"Bash(direnv version:*)",
"Bash(nix:*)",
"WebFetch(domain:devenv.sh)"
"WebFetch(domain:devenv.sh)",
"WebFetch(domain:discourse.nixos.org)",
"Bash(curl:*)",
"WebFetch(domain:quickshell.org)",
"WebFetch(domain:www.tonybtw.com)",
"Bash(systemctl:*)",
"Bash(darkman get:*)",
"Bash(dconf read:*)",
"Bash(journalctl:*)",
"Bash(hyprctl:*)"
]
},
"sandbox": {
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
View File
Generated
+702 -48
View File
@@ -1,5 +1,38 @@
{
"nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770895474,
"narHash": "sha256-JBcrq1Y0uw87VZdYsByVbv+GBuT6ECaCNb9txLX9UuU=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "a494d50d32b5567956b558437ceaa58a380712f7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"base16-schemes": {
"flake": false,
"locked": {
@@ -35,6 +68,31 @@
"type": "github"
}
},
"elephant": {
"inputs": {
"nixpkgs": [
"walker",
"nixpkgs"
],
"systems": [
"walker",
"systems"
]
},
"locked": {
"lastModified": 1768551400,
"narHash": "sha256-mlHlHW8qLcHm42J1M34HLXLW+Rw8jsLkLdjSvIYlhjw=",
"owner": "abenz1267",
"repo": "elephant",
"rev": "f230c43ae94231c2db754f84a4f31cf76721a28a",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "elephant",
"type": "github"
}
},
"ethui": {
"inputs": {
"nixpkgs": "nixpkgs_2",
@@ -56,6 +114,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": [
@@ -112,7 +186,7 @@
},
"flake-utils_3": {
"inputs": {
"systems": "systems_4"
"systems": "systems_6"
},
"locked": {
"lastModified": 1731533236,
@@ -147,13 +221,35 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"hardware": {
"locked": {
"lastModified": 1771169962,
"narHash": "sha256-qpt3IhiY7L3Xf4XZn+k7m70BJwC0geUunoXDBHCBr84=",
"lastModified": 1771171797,
"narHash": "sha256-ngIarpog/Hv5r9M1YyvsaaSUBCqtWqHl6pibq6n2ppo=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "cd8c113bddb3805583c1419de1dcdde63254d34e",
"rev": "531af1dbaee7cfdd7aed1e595ce418b7e2e99a80",
"type": "github"
},
"original": {
@@ -204,13 +300,233 @@
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770511807,
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "7c75487edd43a71b61adb01cae8326d277aab683",
"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_5",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_3",
"xdph": "xdph"
},
"locked": {
"lastModified": 1771177803,
"narHash": "sha256-7HNX0Dy6liSZo8H/Od3JTPIH2gs+yuXKvf5kIkgJqI8=",
"ref": "refs/heads/main",
"rev": "6716b8a0e32b1adf68cd158ea38acec73f3fc22e",
"revCount": 6893,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1767023960,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"type": "github"
}
},
"hyprland-plugins": {
"inputs": {
"hyprland": [
"hyprland"
],
"nixpkgs": [
"hyprland-plugins",
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland-plugins",
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770899531,
"narHash": "sha256-UBrWjh0DR8db60aLNkTnZTJ9F4kWK0Y7rUDNJC88W7A=",
"owner": "hyprwm",
"repo": "hyprland-plugins",
"rev": "e03c34ccd51280a44ea6d1f5c040cd81ecca25ed",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-plugins",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1767983607,
"narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "d4037379e6057246b408bbcf796cf3e9838af5b2",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprlang_2": {
"inputs": {
"nixpkgs": [
"rose-pine-hyprcursor",
"nixpkgs"
],
"systems": "systems_5"
"systems": "systems_7"
},
"locked": {
"lastModified": 1709914708,
@@ -226,6 +542,158 @@
"type": "github"
}
},
"hyprspace": {
"inputs": {
"hyprland": [
"hyprland"
],
"systems": "systems_4"
},
"locked": {
"lastModified": 1767871242,
"narHash": "sha256-Gge7LY1lrPc2knDnyw8GBQ2sxRPzM7W2T6jNG1HY5bA=",
"owner": "KZDKM",
"repo": "Hyprspace",
"rev": "bcd969224ffeb6266c6618c192949461135eef38",
"type": "github"
},
"original": {
"owner": "KZDKM",
"repo": "Hyprspace",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1764592794,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770139857,
"narHash": "sha256-bCqxcXjavgz5KBJ/1CBLqnagMMf9JvU1m9HmYVASKoc=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "9038eec033843c289b06b83557a381a2648d8fa5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770501770,
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770203293,
"narHash": "sha256-PR/KER+yiHabFC/h1Wjb+9fR2Uy0lWM3Qld7jPVaWkk=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "37bc90eed02b0c8b5a77a0b00867baf3005cfb98",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
@@ -276,6 +744,22 @@
"type": "github"
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1771008912,
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1752480373,
@@ -323,6 +807,22 @@
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1770841267,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1771008912,
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
@@ -338,7 +838,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1770380644,
"narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=",
@@ -354,7 +854,7 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1710272261,
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
@@ -370,17 +870,17 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1771008912,
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
"owner": "nixos",
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -389,8 +889,8 @@
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_6",
"systems": "systems_3"
"nixpkgs": "nixpkgs_7",
"systems": "systems_5"
},
"locked": {
"lastModified": 1771135771,
@@ -409,11 +909,11 @@
"nvchad-starter": {
"flake": false,
"locked": {
"lastModified": 1770223222,
"narHash": "sha256-K79DeMiFAf3hrV6FTmsYVZoN0trzCpMWqLM2r3QJInA=",
"lastModified": 1771259985,
"narHash": "sha256-WDAH2Rn5udhULSMV76g6qj8WUZNKKtQJwn6SiqZmIfU=",
"owner": "naps62",
"repo": "nvchad-starter",
"rev": "578bd4076e922ee558005b2bc1a789351652c9d1",
"rev": "a16bb42a45a02836c449d88f78f823de81be6971",
"type": "github"
},
"original": {
@@ -446,6 +946,49 @@
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1770726378,
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770693276,
"narHash": "sha256-ngXnN5YXu+f45+QGYNN/VEBMQmcBCYGRCqwaK8cxY1s=",
"ref": "refs/heads/master",
"rev": "dacfa9de829ac7cb173825f593236bf2c21f637e",
"revCount": 735,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": {
"inputs": {
"claude-code": "claude-code",
@@ -453,21 +996,26 @@
"foundry": "foundry",
"hardware": "hardware",
"home-manager": "home-manager",
"hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins",
"hyprspace": "hyprspace",
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"nixvim": "nixvim",
"nvchad-starter": "nvchad-starter",
"nvchad4nix": "nvchad4nix",
"quickshell": "quickshell",
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
"systems": "systems_7",
"systems": "systems_9",
"utils": "utils_3",
"walker": "walker",
"zen-browser": "zen-browser"
}
},
"rose-pine-hyprcursor": {
"inputs": {
"hyprlang": "hyprlang",
"nixpkgs": "nixpkgs_7",
"hyprlang": "hyprlang_2",
"nixpkgs": "nixpkgs_8",
"utils": "utils_2"
},
"locked": {
@@ -517,6 +1065,36 @@
"type": "github"
}
},
"systems_10": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_11": {
"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_2": {
"locked": {
"lastModified": 1681028828,
@@ -534,35 +1112,20 @@
},
"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"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -577,6 +1140,21 @@
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
@@ -622,6 +1200,21 @@
"type": "github"
}
},
"systems_9": {
"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"
}
},
"utils": {
"inputs": {
"systems": "systems_2"
@@ -642,7 +1235,7 @@
},
"utils_2": {
"inputs": {
"systems": "systems_6"
"systems": "systems_8"
},
"locked": {
"lastModified": 1710146030,
@@ -660,7 +1253,7 @@
},
"utils_3": {
"inputs": {
"systems": "systems_8"
"systems": "systems_10"
},
"locked": {
"lastModified": 1731533236,
@@ -676,17 +1269,78 @@
"type": "github"
}
},
"walker": {
"inputs": {
"elephant": "elephant",
"nixpkgs": "nixpkgs_9",
"systems": "systems_11"
},
"locked": {
"lastModified": 1771062828,
"narHash": "sha256-y1jBFFO0u+V21y3YldHZozrDwVJVrdC+o3c4M8/rasU=",
"owner": "abenz1267",
"repo": "walker",
"rev": "19b1104585305e0806b842af341630f72038a4b9",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "walker",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_8"
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1771131295,
"narHash": "sha256-3Z7RKjuifcB6Hkjrk8gNOXAqEv5+ubc/J9lLoKD7pv4=",
"lastModified": 1771222275,
"narHash": "sha256-df+Un2QnDj95MQxmsnopCtSy/meWO2RDHuMGAqq3nlc=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "e983cc5e47483742b61e0c53cfe9a9314628086f",
"rev": "a20f5d0c6454b5b24a497afb280427c9af33a0be",
"type": "github"
},
"original": {
+18
View File
@@ -34,6 +34,24 @@
rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor";
zen-browser.url = "github:0xc000022070/zen-browser-flake";
ethui.url = "github:ethui/ethui/nix";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
hyprspace = {
url = "github:KZDKM/Hyprspace";
inputs.hyprland.follows = "hyprland";
};
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
walker.url = "github:abenz1267/walker";
claude-code.url = "github:sadjow/claude-code-nix";
};
+5 -9
View File
@@ -14,19 +14,23 @@
../common/programs/desktop
../common/programs/zen-browser.nix
../common/programs/hyprland
../common/programs/i3.nix
../common/programs/kitty
../common/programs/syncthing.nix
../common/programs/unity.nix
../common/programs/ethui.nix
../common/programs/gpg.nix
../common/features/xdg.nix
../common/features/downloads-cleanup.nix
../common/programs/3d.nix
../common/features/bluetooth.nix
./monitors.nix
];
wayland.windowManager.hyprland.settings = {
exec-once = [
"hyprctl setcursor Nordzy-cursors 32"
];
workspace = [
"1, monitor:DP-3"
"2, monitor:eDP-1"
@@ -42,14 +46,6 @@
];
};
programs.hyprpanel.settings.bar.layouts = {
"0" = {
right = [
"battery"
];
};
};
home = {
username = lib.mkDefault "naps62";
stateVersion = lib.mkDefault "24.05";
@@ -0,0 +1,64 @@
{ pkgs, config, lib, ... }:
let
downloadsDir = "${config.home.homeDirectory}/downloads";
# Age in days after which files should be deleted
maxAge = 30;
in
{
systemd.user.services.downloads-cleanup = {
Unit = {
Description = "Clean old files from downloads subdirectories";
};
Service = {
Type = "oneshot";
ExecStart = "${pkgs.writeShellScript "downloads-cleanup" ''
set -euo pipefail
echo "Starting downloads cleanup..."
echo "Cleaning files older than ${toString maxAge} days from ${downloadsDir}/*/ (including hidden files)"
# Find and delete files older than maxAge days in subdirectories of downloads
# -mindepth 2 ensures we only look inside subdirectories, not in downloads/ itself
# -type f ensures we only delete files, not directories
# This includes hidden files and directories
if [ -d "${downloadsDir}" ]; then
${pkgs.findutils}/bin/find "${downloadsDir}" \
-mindepth 2 \
-type f \
-mtime +${toString maxAge} \
-print \
-delete 2>/dev/null || true
# Also remove empty directories (including hidden ones)
${pkgs.findutils}/bin/find "${downloadsDir}" \
-mindepth 2 \
-type d \
-empty \
-print \
-delete 2>/dev/null || true
echo "Cleanup completed successfully"
else
echo "Downloads directory does not exist, skipping cleanup"
fi
''}";
};
};
systemd.user.timers.downloads-cleanup = {
Unit = {
Description = "Timer for downloads cleanup";
};
Timer = {
OnCalendar = "daily";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
};
}
+25 -1
View File
@@ -13,6 +13,17 @@
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/gtk-theme "'Orchis-Dark-Compact'"
'';
cursor-theme = ''
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/cursor-theme "'Nordzy-cursors'"
# Set environment variables for current session
export HYPRCURSOR_THEME="Nordzy-cursors"
export XCURSOR_THEME="Nordzy-cursors"
# Update Hyprland cursor theme
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 42
'';
};
lightModeScripts = {
gtk-theme = ''
@@ -21,10 +32,23 @@
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/gtk-theme "'Orchis-Compact'"
'';
cursor-theme = ''
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/cursor-theme "'Nordzy-white'"
# Set environment variables for current session
export HYPRCURSOR_THEME="Nordzy-white"
export XCURSOR_THEME="Nordzy-white"
# Update Hyprland cursor theme
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 42
'';
};
};
xdg.configFile."darkman/config.yaml".text = ''
usegeoclue: true
lat: 41.55
lng: -8.42
dbusserver: true
'';
}
+7 -5
View File
@@ -1,14 +1,16 @@
{ pkgs, inputs, ... }:
let
nordzy-cursors = pkgs.callPackage ../../../../pkgs/nordzy-cursors/package.nix { };
in
{
home.packages = with pkgs; [
rose-pine-cursor
inputs.rose-pine-hyprcursor.packages.${pkgs.stdenv.hostPlatform.system}.default
home.packages = [
nordzy-cursors
];
home.sessionVariables = {
HYPRCURSOR_THEME = "BreezeX-RosePine-Linux";
HYPRCURSOR_THEME = "Nordzy-cursors"; # Dark variant (default)
HYPRCURSOR_SIZE = 32;
XCURSOR_THEME = "BreezeX-RosePine-Linux";
XCURSOR_THEME = "Nordzy-cursors";
XCURSOR_SIZE = 32;
};
+46 -25
View File
@@ -1,12 +1,19 @@
{ config, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}:
let
rofiLaunchers = import ../../../pkgs/rofi-launchers/package.nix { };
in
{
imports = [
./rofi.nix
./walker.nix
./cursor.nix
./hyprpanel.nix
./waybar.nix
./quickshell.nix
];
home.packages = with pkgs; [
@@ -25,7 +32,34 @@ in
wayland.windowManager.hyprland = {
enable = true;
package = null;
portalPackage = null;
plugins = [
inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprfocus
# inputs.hyprspace.packages.${pkgs.stdenv.hostPlatform.system}.Hyprspace
];
settings = {
plugin = {
hyprexpo = {
columns = 3;
gap_size = 5;
bg_col = "rgb(000000)";
workspace_method = "center current";
};
hyprfocus = {
enabled = true;
mode = "flash";
flash_opacity = 1.8; # Flash brighter instead of dimmer
};
overview = {
autoDrag = true;
exitOnClick = true;
exitOnSwitch = true;
showNewWorkspace = false;
showEmptyWorkspace = false;
};
};
input = {
kb_options = "ctrl:nocaps";
repeat_delay = 150;
@@ -71,34 +105,17 @@ in
blur = {
enabled = true;
# new_optimizations = false;
popups = false;
};
shadow = {
enabled = false;
};
};
# keep default animations, but speed them all up
animations = {
bezier = [
"wind, 0.05, 0.9, 0.1, 1.0"
"winIn, 0.1, 1.0, 0.1, 1.0"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
"fadeIn, 0, 0, 0.98, 1"
];
animation = [
"windows, 1, 2, wind, popin 80%"
"windowsIn, 1, 2, fadeIn, popin 80%"
"windowsOut, 1, 5, winOut, popin 80%"
"windowsMove, 1, 5, wind, slide"
"border, 1, 1, liner"
"borderangle, 1, 30, liner, loop"
"fade, 1, 2, fadeIn"
"fadeIn, 1, 2, fadeIn"
"fadeOut, 1, 2, winOut"
"workspaces, 1, 2, wind"
"windowsMove, 0, 1, default, slide"
# "specialWorkspace, 0, 2, default, fade"
"specialWorkspace, 1, 2, fadeIn, fade"
"global, 1, 2, default"
];
};
@@ -111,7 +128,6 @@ in
"exec-once" = [
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"hyprpanel"
"nm-applet"
"hyprsunset"
"nerd-dictation begin --simulate-input-tool WTYPE --suspend-on-start && touch ~/.cache/nerd-dictation-suspended"
@@ -165,14 +181,19 @@ in
"$mod" = "SUPER";
bind = [
"$mod, g, hyprexpo:expo, toggle"
# "$mod, tab, overview:toggle,"
"$mod, b, exec, pkill waybar || waybar"
"$mod, t, exec, kitty"
"$mod, v, togglefloating"
"$mod, q, killactive"
"$mod, f, fullscreen, 0"
"$mod SHIFT, f, fullscreen, 1"
# rofi
"$mod, space, exec, launcher_t2"
# walker app launcher
"$mod, space, exec, walker"
# rofi (old)
# "$mod, space, exec, launcher_t2"
# nerd-dictation
# "$mod, d, exec, nerd-dictation-toggle"
@@ -0,0 +1,11 @@
{ inputs, pkgs, ... }:
{
home.packages = [
inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
];
xdg.configFile."quickshell" = {
source = ./quickshell;
recursive = true;
};
}
@@ -0,0 +1,94 @@
import Quickshell
import Quickshell.Hyprland
import QtQuick
import QtQuick.Layouts
Scope {
id: root
property bool barVisible: false
Variants {
model: Quickshell.screens
Scope {
id: perScreen
required property var modelData
// invisible trigger zone at the top edge
PanelWindow {
id: trigger
screen: perScreen.modelData
visible: !root.barVisible
anchors {
top: true
left: true
right: true
}
exclusionMode: ExclusionMode.Ignore
implicitHeight: 4
color: "transparent"
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: root.barVisible = true
}
}
// the actual bar
PanelWindow {
id: bar
screen: perScreen.modelData
visible: root.barVisible
anchors {
top: true
left: true
right: true
}
exclusionMode: ExclusionMode.Ignore
implicitHeight: 32
color: "#e611111b"
MouseArea {
anchors.fill: parent
hoverEnabled: true
propagateComposedEvents: true
// keep bar visible while mouse is on it
onExited: hideTimer.restart()
}
RowLayout {
anchors.fill: parent
anchors.leftMargin: 12
anchors.rightMargin: 12
spacing: 0
Workspaces {
Layout.alignment: Qt.AlignLeft
}
Item { Layout.fillWidth: true }
SysTray {
Layout.alignment: Qt.AlignRight
Layout.rightMargin: 16
}
ClockWidget {
Layout.alignment: Qt.AlignRight
}
}
}
Timer {
id: hideTimer
interval: 500
onTriggered: root.barVisible = false
}
}
}
}
@@ -0,0 +1,20 @@
import QtQuick
import QtQuick.Layouts
RowLayout {
spacing: 12
Text {
text: Time.date
font.family: "FiraCode Nerd Font"
font.pixelSize: 13
color: "#6c7086"
}
Text {
text: Time.clock
font.family: "FiraCode Nerd Font"
font.pixelSize: 14
color: "#bac2de"
}
}
@@ -0,0 +1,47 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import Quickshell
import Quickshell.Services.SystemTray
RowLayout {
spacing: 6
Repeater {
model: SystemTray.items
Image {
required property SystemTrayItem modelData
Layout.preferredWidth: 18
Layout.preferredHeight: 18
source: modelData.icon
fillMode: Image.PreserveAspectFit
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: (mouse) => {
if (mouse.button === Qt.RightButton || modelData.onlyMenu) {
modelData.display(bar, parent.x, bar.height)
} else {
modelData.activate()
}
}
}
ToolTip {
id: tooltip
visible: hoverArea.containsMouse
text: modelData.tooltipTitle || modelData.title || ""
}
MouseArea {
id: hoverArea
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.NoButton
}
}
}
}
@@ -0,0 +1,15 @@
pragma Singleton
import Quickshell
import QtQuick
Singleton {
id: root
readonly property string clock: Qt.formatDateTime(sysClock.date, "hh:mm")
readonly property string date: Qt.formatDateTime(sysClock.date, "ddd MMM d")
SystemClock {
id: sysClock
precision: SystemClock.Minutes
}
}
@@ -0,0 +1,41 @@
import QtQuick
import QtQuick.Layouts
import Quickshell.Hyprland
RowLayout {
spacing: 4
Repeater {
model: [1, 2, 3, 4, 5, 6]
Rectangle {
required property int modelData
property bool active: Hyprland.focusedMonitor?.activeWorkspace?.id === modelData
property bool occupied: {
for (let i = 0; i < Hyprland.workspaces.values.length; i++) {
let ws = Hyprland.workspaces.values[i];
if (ws.id === modelData && ws.windows > 0) return true;
}
return false;
}
Layout.preferredWidth: 24
Layout.preferredHeight: 24
radius: 4
color: active ? "#b4befe" : "transparent"
Text {
anchors.centerIn: parent
text: modelData
font.family: "FiraCode Nerd Font"
font.pixelSize: 13
color: active ? "#11111b" : occupied ? "#bac2de" : "#6c7086"
}
MouseArea {
anchors.fill: parent
onClicked: Hyprland.dispatch("workspace " + modelData)
}
}
}
}
@@ -0,0 +1,5 @@
import Quickshell
Scope {
Bar {}
}
+13
View File
@@ -0,0 +1,13 @@
{ inputs, pkgs, ... }:
{
imports = [ inputs.walker.homeManagerModules.default ];
programs.walker = {
enable = true;
runAsService = true;
# Using default theme - clean dark theme with good defaults
# You can customize later by copying from:
# https://github.com/abenz1267/walker/tree/master/resources/themes/default
};
}
+173
View File
@@ -0,0 +1,173 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 32;
exclusive = false;
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"bluetooth"
"network"
"pulseaudio"
"battery"
"clock"
];
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
};
persistent-workspaces = {
"*" = [ 1 2 3 4 5 6 ];
};
};
"hyprland/window" = {
max-length = 50;
};
tray = {
icon-size = 16;
spacing = 8;
};
bluetooth = {
format = "󰂯";
format-disabled = "󰂲";
format-connected = "󰂱";
tooltip-format = "{controller_alias}\t{controller_address}";
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{device_enumerate}";
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
on-click = "blueman-manager";
};
network = {
format-wifi = "󰤨";
format-ethernet = "󰈀";
format-disconnected = "󰤭";
tooltip-format-wifi = "{essid} ({signalStrength}%)";
tooltip-format-ethernet = "{ifname}: {ipaddr}/{cidr}";
tooltip-format-disconnected = "Disconnected";
};
pulseaudio = {
format = "{icon}";
format-muted = "󰝟";
format-icons = {
default = [ "󰕿" "󰖀" "󰕾" ];
};
tooltip-format = "{volume}%";
on-click = "pavucontrol";
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
scroll-step = 5;
};
battery = {
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
states = {
warning = 20;
critical = 10;
};
};
clock = {
format = "{:%H:%M}";
tooltip-format = "{:%A, %B %d, %Y}";
};
};
};
style = ''
@define-color foreground #bac2de;
@define-color background #11111b;
@define-color active #b4befe;
@define-color warning #f9e2af;
@define-color critical #f38ba8;
@define-color muted #6c7086;
* {
background-color: transparent;
color: @foreground;
border: none;
border-radius: 0;
min-height: 0;
font-family: FiraCode Nerd Font;
font-size: 15px;
}
window#waybar {
background-color: @background;
}
.modules-left {
margin-left: 10px;
}
.modules-right {
margin-right: 10px;
}
#workspaces button {
padding: 0 6px;
margin: 0 2px;
color: @muted;
}
#workspaces button.active {
color: @active;
}
#workspaces button.urgent {
color: @critical;
}
#window {
color: @muted;
font-size: 14px;
}
#tray,
#bluetooth,
#network,
#pulseaudio,
#battery,
#clock {
padding: 0 10px;
color: @foreground;
}
#battery.warning {
color: @warning;
}
#battery.critical {
color: @critical;
}
#pulseaudio.muted {
color: @muted;
}
tooltip {
background-color: @background;
border: 1px solid @muted;
border-radius: 4px;
}
'';
};
}
-88
View File
@@ -1,88 +0,0 @@
{
lib,
config,
pkgs,
...
}:
{
xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3;
config = {
modifier = "Mod4";
terminal = "${pkgs.kitty}/bin/kitty";
gaps = {
inner = 10;
outer = 0;
};
keybindings =
let
modifier = config.xsession.windowManager.i3.config.modifier;
in
lib.mkOptionDefault {
"${modifier}+h" = "focus left";
"${modifier}+j" = "focus down";
"${modifier}+k" = "focus up";
"${modifier}+l" = "focus right";
"XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
"XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioMicMute" = "exec volumectl -m toggle-mute";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
"Print" = "exec flameshot gui";
"${modifier}+space" = "exec launcher_t2";
};
bars = [
{
position = "top";
statusCommand = "i3status-rs ~/.config/i3status-rust/config-default.toml";
}
];
};
extraConfig = ''
smart_gaps on
hide_edge_borders smart_no_gaps
for_window [class="kitty"] border none
for_window [class="kitty"] gaps inner current set 0
for_window [class="kitty"] gaps outer current set 0
for_window [class="^zen"] border none
for_window [class="^zen"] gaps inner current set 0
for_window [class="^zen"] gaps outer current set 0
'';
};
programs = {
i3status-rust = {
enable = true;
};
};
# services.picom = {
# enable = true;
# backend = "glx";
# vSync = true;
# };
services.flameshot = {
enable = true;
settings.General = {
drawFontSize = 10;
};
};
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
};
}
+14 -1
View File
@@ -14,7 +14,6 @@
../common/programs/desktop
../common/programs/zen-browser.nix
../common/programs/hyprland
../common/programs/i3.nix
../common/programs/kitty
../common/programs/syncthing.nix
../common/programs/unity.nix
@@ -23,6 +22,7 @@
../common/programs/3d.nix
../common/programs/nerd-dictation.nix
../common/features/xdg.nix
../common/features/downloads-cleanup.nix
../common/features/bluetooth.nix
./monitors.nix
];
@@ -31,11 +31,24 @@
LIBVA_DRIVER_NAME = "nvidia";
GDM_BACKEND = "nvidia-drm";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
# Larger cursor size for desktop (4K monitors)
XCURSOR_SIZE = lib.mkForce 42;
HYPRCURSOR_SIZE = lib.mkForce 42;
};
wayland.windowManager.hyprland.settings = {
env = [
"WEBKIT_DISABLE_DMABUF_RENDERER, 1"
"XCURSOR_SIZE, 42"
"HYPRCURSOR_SIZE, 42"
];
cursor = {
no_hardware_cursors = true; # For NVIDIA
};
exec-once = [
"hyprctl setcursor Nordzy-cursors 42"
];
windowrule = [
+9 -40
View File
@@ -22,53 +22,22 @@ in
{
wayland.windowManager.hyprland.settings = {
monitor = [
# monitor, res, position, scale, transform, rotation
# List HDMI-A-1 first so it becomes the primary monitor (ID 0)
"HDMI-A-1, 3840x2160, 0x2160, 1"
"DP-1, 3840x2160, 0x0, 1"
# 300 instead of 0 is so that 'move left' actually focuses the bottom one instead of the top one
# for some reason, that's the minimum value for which this works
# Then the other monitors
"DP-2, 3840x2160, 3840x180, 1, transform, 1"
"DP-1, 3840x2160, 0x0, 1"
];
workspace = [
"1, monitor=DP-2"
"2, monitor=DP-1"
"3, monitor=DP-2"
"4, monitor=HDMI-A-1"
"5, monitor=HDMI-A-1"
"1, monitor:HDMI-A-1, default:true, persistent:true" # bottom-left (primary)
"2, monitor:DP-2, persistent:true" # right (vertical)
"3, monitor:DP-1, persistent:true" # top-left
"4, monitor:HDMI-A-1" # bottom-left
"5, monitor:DP-2" # right (vertical)
"6, monitor:DP-1" # top-left
];
};
xsession.windowManager.i3 = {
extraConfig = lib.mkAfter ''
workspace 1 output HDMI-0
workspace 2 output DP-2
workspace 3 output DP-0
for_window [title="^ethui-test - main$"] workspace 2
for_window [title="^ethui-test - main$"] border normal 2, floating enable, resize set 1280 1200, move position 4720 500
for_window [title="^ethui-test - dialog.*"] border normal 2, floating enable, resize set 800 800, move position mouse
no_focus [title="^ethui-test - main$"]
no_focus [title="^ethui-test - dialog.*"]
for_window [title="^ethui-dev - main$"] workspace 2
for_window [title="^ethui-dev - main$"] border normal 2, floating enable, resize set 1280 1200, move position 4720 500
for_window [title="^ethui-dev - dialog.*"] border normal 2, floating enable, resize set 800 800, move position mouse
no_focus [title="^ethui-dev - main$"]
no_focus [title="^ethui-dev - dialog.*"]
for_window [title="^ethui - main$"] workspace 2
for_window [title="^ethui - main$"] border normal 2, floating enable, resize set 1280 1200, move position 4720 500
for_window [title="^ethui - dialog.*"] border normal 2, floating enable, resize set 800 800, move position mouse
no_focus [title="^ethui - main$"]
no_focus [title="^ethui - dialog.*"]
# for_window [class="^Ethui$"] border normal 2, floating enable, resize set 1280 1200, move position mouse
for_window [title="^egui-test$"] floating enable, border none, resize set 800 800, move position 2720 500
no_focus [title="^egui-test$"]
'';
};
services.hyprpaper.settings.preload = [
(builtins.toString wallpaper1)
(builtins.toString wallpaper2)
View File
+1 -2
View File
@@ -2,7 +2,6 @@
{
imports = [
./wayland.nix
./x11.nix
./gdm.nix
./sddm.nix
];
}
+31
View File
@@ -0,0 +1,31 @@
{ inputs, pkgs, ... }:
let
sddm-astronaut-theme = pkgs.callPackage ../../../../pkgs/sddm-astronaut-theme/package.nix { };
in
{
services.xserver = {
enable = true;
displayManager = {
startx.enable = true;
};
autoRepeatDelay = 250;
autoRepeatInterval = 30;
};
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "sddm-astronaut-theme";
package = pkgs.kdePackages.sddm;
extraPackages = with pkgs.kdePackages; [
qtmultimedia
qtsvg
qtvirtualkeyboard
qt5compat
];
};
environment.systemPackages = with pkgs; [
sddm-astronaut-theme
];
}
+15 -13
View File
@@ -2,24 +2,26 @@
{
environment.systemPackages = with pkgs; [
wl-clipboard
hyprland
];
services.displayManager.sessionPackages = with pkgs; [
hyprland
];
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
# GTK/GNOME services still useful on Wayland
programs.dconf.enable = true;
services = {
# thumbnail support for images
services.tumbler.enable = true;
tumbler.enable = true;
environment.etc."xdg/wayland-sessions/hyprland.desktop".text = ''
[Desktop Entry]
Name=Hyprland
Comment=Hyprland Wayland Compositor
Exec=Hyprland
Type=Application
DesktopNames=Hyprland
'';
gnome = {
glib-networking.enable = true;
gnome-keyring.enable = true;
};
};
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
-54
View File
@@ -1,54 +0,0 @@
{ inputs, pkgs, ... }:
{
services = {
desktopManager = {
gnome.enable = true;
};
xserver = {
windowManager.i3.enable = true;
xkb.options = "ctrl:nocaps";
};
sysprof.enable = true;
gnome = {
glib-networking.enable = true;
gnome-keyring.enable = true;
gnome-online-accounts.enable = true;
};
};
programs = {
i3lock.enable = true;
dconf.enable = true;
};
environment.systemPackages = with pkgs; [
xclip
];
environment.gnome.excludePackages =
(with pkgs; [
gnome-photos
gnome-tour
gnome-console
gnome-text-editor
gedit
])
++ (with pkgs; [
cheese # webcam tool
gnome-music
gnome-terminal
epiphany # web browser
geary # email reader
evince # document viewer
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
gnome-contacts
gnome-initial-setup
gnome-shell-extensions
]);
}
-1
View File
@@ -39,5 +39,4 @@
};
services.dbus.packages = with pkgs; [ gcr ];
services.geoclue2.enable = true;
}
+5 -1
View File
@@ -44,7 +44,11 @@
TOP='DP-0'
RIGHT='DP-2'
${pkgs.xorg.xrandr}/bin/xrandr --output $BOTTOM --primary --mode 3840x2160 --pos 0x0 --rotate normal --output $TOP --mode 3840x2160 --above $BOTTOM --rotate normal --output $RIGHT --mode 3840x2160 --pos 3840x-1680 --rotate left
# Match Hyprland layout: TOP at 0x0, BOTTOM at 0x2160, RIGHT at 3840x180
${pkgs.xorg.xrandr}/bin/xrandr \
--output $TOP --mode 3840x2160 --pos 0x0 --rotate normal \
--output $BOTTOM --primary --mode 3840x2160 --pos 0x2160 --rotate normal \
--output $RIGHT --mode 3840x2160 --pos 3840x180 --rotate left
${pkgs.xorg.xrandr}/bin/xrandr --dpi 160
'';
View File
+35
View File
@@ -0,0 +1,35 @@
{ lib, stdenvNoCC, fetchFromGitHub }:
stdenvNoCC.mkDerivation rec {
pname = "nordzy-cursors";
version = "0.6.0";
src = fetchFromGitHub {
owner = "guillaumeboehm";
repo = "Nordzy-cursors";
rev = "v${version}";
sha256 = "sha256-q9PEEyxejRQ8UCwbqsfOCL7M70pLCOLyCx8gEFmZkWA=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
# Install all Nordzy cursor themes
for theme in Nordzy-cursors*; do
if [ -d "$theme" ]; then
cp -r "$theme" $out/share/icons/
fi
done
runHook postInstall
'';
meta = with lib; {
description = "Cursor theme using the Nord color palette";
homepage = "https://github.com/guillaumeboehm/Nordzy-cursors";
license = licenses.gpl3;
platforms = platforms.linux;
};
}
+29
View File
@@ -0,0 +1,29 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation {
pname = "sddm-astronaut-theme";
version = "1.0-pixel-sakura-v2";
src = pkgs.fetchFromGitHub {
owner = "Keyitdev";
repo = "sddm-astronaut-theme";
rev = "master";
sha256 = "sha256-+94WVxOWfVhIEiVNWwnNBRmN+d1kbZCIF10Gjorea9M=";
};
installPhase = ''
mkdir -p $out/share/sddm/themes/sddm-astronaut-theme
cp -r * $out/share/sddm/themes/sddm-astronaut-theme/
# Override the theme variant to pixel_sakura
sed -i 's|ConfigFile=Themes/astronaut.conf|ConfigFile=Themes/pixel_sakura.conf|' \
$out/share/sddm/themes/sddm-astronaut-theme/metadata.desktop
'';
meta = with pkgs.lib; {
description = "Modern astronaut-themed SDDM login theme";
homepage = "https://github.com/Keyitdev/sddm-astronaut-theme";
license = licenses.gpl3;
platforms = platforms.linux;
};
}
View File