aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock564
-rw-r--r--flake.nix11
-rw-r--r--home-manager/laptop/niri/default.nix147
3 files changed, 696 insertions, 26 deletions
diff --git a/flake.lock b/flake.lock
index a46ae6a..1fa96bb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -16,6 +16,235 @@
"type": "github"
}
},
+ "cachix": {
+ "inputs": {
+ "devenv": [
+ "niri",
+ "crate2nix"
+ ],
+ "flake-compat": [
+ "niri",
+ "crate2nix"
+ ],
+ "nixpkgs": "nixpkgs",
+ "pre-commit-hooks": [
+ "niri",
+ "crate2nix"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709700175,
+ "narHash": "sha256-A0/6ZjLmT9qdYzKHmevnEIC7G+GiZ4UCr8v0poRPzds=",
+ "owner": "cachix",
+ "repo": "cachix",
+ "rev": "be97b37989f11b724197b5f4c7ffd78f12c8c4bf",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "ref": "latest",
+ "repo": "cachix",
+ "type": "github"
+ }
+ },
+ "crate2nix": {
+ "inputs": {
+ "cachix": "cachix",
+ "crate2nix_stable": "crate2nix_stable",
+ "devshell": "devshell",
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts",
+ "nix-test-runner": "nix-test-runner",
+ "nixpkgs": "nixpkgs_2",
+ "pre-commit-hooks": "pre-commit-hooks"
+ },
+ "locked": {
+ "lastModified": 1712435888,
+ "narHash": "sha256-4GF6wixxFDcXwJvg1cPgrG5OP+3lDn6vE5FQocn41bY=",
+ "owner": "nix-community",
+ "repo": "crate2nix",
+ "rev": "640584db14761545480c0d29b80c3ab34a3236bd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "crate2nix",
+ "type": "github"
+ }
+ },
+ "crate2nix_stable": {
+ "inputs": {
+ "flake-utils": "flake-utils"
+ },
+ "locked": {
+ "lastModified": 1702842982,
+ "narHash": "sha256-A9AowkHIjsy1a4LuiPiVP88FMxyCWK41flZEZOUuwQM=",
+ "owner": "nix-community",
+ "repo": "crate2nix",
+ "rev": "75ac2973affa6b9b4f661a7b592cba6e4f51d426",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "ref": "0.12.0",
+ "repo": "crate2nix",
+ "type": "github"
+ }
+ },
+ "devshell": {
+ "inputs": {
+ "flake-utils": "flake-utils_2",
+ "nixpkgs": [
+ "niri",
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1711099426,
+ "narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=",
+ "owner": "numtide",
+ "repo": "devshell",
+ "rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "devshell",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "locked": {
+ "lastModified": 1696426674,
+ "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
+ "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+ "revCount": 57,
+ "type": "tarball",
+ "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "niri",
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1712014858,
+ "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1712014858,
+ "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems_2"
+ },
+ "locked": {
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_2": {
+ "inputs": {
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1701680307,
+ "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_3": {
+ "inputs": {
+ "systems": "systems_4"
+ },
+ "locked": {
+ "lastModified": 1710146030,
+ "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "niri",
+ "crate2nix",
+ "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"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -23,11 +252,11 @@
]
},
"locked": {
- "lastModified": 1708806879,
- "narHash": "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=",
+ "lastModified": 1712390667,
+ "narHash": "sha256-ebq+fJZfobqpsAdGDGpxNWSySbQejRwW9cdiil6krCo=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "4ee704cb13a5a7645436f400b9acc89a67b9c08a",
+ "rev": "b787726a8413e11b074cde42704b4af32d95545c",
"type": "github"
},
"original": {
@@ -36,8 +265,38 @@
"type": "github"
}
},
+ "hyprcursor": {
+ "inputs": {
+ "hyprlang": [
+ "hyprland",
+ "hyprlang"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1712339458,
+ "narHash": "sha256-j8pv3tL2EFLGuvFoO64dHWD8YzNvD77hRb4EEx5ADgE=",
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "rev": "981b6617822dadc40246a6c70194d02dfc12e4c6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprcursor",
+ "type": "github"
+ }
+ },
"hyprland": {
"inputs": {
+ "hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"nixpkgs": [
@@ -48,11 +307,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1708968051,
- "narHash": "sha256-EkRf32ZKV2QAyDDaD98jc+EGxCQR5b+uGwpuNkH1Z+o=",
+ "lastModified": 1712507986,
+ "narHash": "sha256-Gd6VFiWNZlxExwVhVgC2IefYwONMtgb8EHj56W/Zl68=",
"owner": "hyprwm",
"repo": "Hyprland",
- "rev": "f7a34534873bf499fc1a04a5fa25ada03c4ee415",
+ "rev": "20899d0df2a2811d83b4ae3357ad31a94eafcd8e",
"type": "github"
},
"original": {
@@ -98,11 +357,11 @@
]
},
"locked": {
- "lastModified": 1708787654,
- "narHash": "sha256-7ACgM3ZuAhPqurXHUvR2nWMRcnmzGGPjLK6q4DSTelI=",
+ "lastModified": 1711671891,
+ "narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "0fce791ba2334aca183f2ed42399518947550d0d",
+ "rev": "c1402612146ba06606ebf64963a02bc1efe11e74",
"type": "github"
},
"original": {
@@ -111,10 +370,85 @@
"type": "github"
}
},
+ "nh": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1712310030,
+ "narHash": "sha256-YsTIJWqANadeXKKAtw41IKGOD55/bML7H9No8lu3h4Q=",
+ "owner": "viperML",
+ "repo": "nh",
+ "rev": "fd98e31fbf741045b9a649b004b99dfa61f5a63b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "viperML",
+ "repo": "nh",
+ "type": "github"
+ }
+ },
+ "niri": {
+ "inputs": {
+ "crate2nix": "crate2nix",
+ "flake-parts": "flake-parts_2",
+ "niri-stable": "niri-stable",
+ "niri-unstable": "niri-unstable",
+ "nixpkgs": "nixpkgs_3"
+ },
+ "locked": {
+ "lastModified": 1712740788,
+ "narHash": "sha256-gNvzKUhPLbL1iby0LIPRoq8RubKE3LT2mxK2k+vEi50=",
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "rev": "80a4c90fdcd3fe40ba0dedb94ddae8b852437610",
+ "type": "github"
+ },
+ "original": {
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "type": "github"
+ }
+ },
+ "niri-stable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1711790754,
+ "narHash": "sha256-lkGIQIMWfg71UOkT/TST8O6hD0IfslENj6oFPevUGl4=",
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "rev": "7ff2de19b9304b3afdadb44aeeee4e85dfcb5218",
+ "type": "github"
+ },
+ "original": {
+ "owner": "YaLTeR",
+ "ref": "v0.1.4",
+ "repo": "niri",
+ "type": "github"
+ }
+ },
+ "niri-unstable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1712736594,
+ "narHash": "sha256-r9i9cZUB02l0qhJ7Q4g3zXM8uClM4zxjEYM1AAFq48I=",
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "rev": "0cd149c939c1f756a96381a84801073021ac1e63",
+ "type": "github"
+ },
+ "original": {
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "type": "github"
+ }
+ },
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
- "nixpkgs-lib": "nixpkgs-lib"
+ "nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1707825078,
@@ -130,17 +464,33 @@
"type": "github"
}
},
+ "nix-test-runner": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1588761593,
+ "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=",
+ "owner": "stoeffel",
+ "repo": "nix-test-runner",
+ "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "stoeffel",
+ "repo": "nix-test-runner",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
- "lastModified": 1708807242,
- "narHash": "sha256-sRTRkhMD4delO/hPxxi+XwLqPn8BuUq6nnj4JqLwOu0=",
- "owner": "nixos",
+ "lastModified": 1700612854,
+ "narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=",
+ "owner": "NixOS",
"repo": "nixpkgs",
- "rev": "73de017ef2d18a04ac4bfd0c02650007ccb31c2a",
+ "rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614",
"type": "github"
},
"original": {
- "owner": "nixos",
+ "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -148,6 +498,24 @@
},
"nixpkgs-lib": {
"locked": {
+ "dir": "lib",
+ "lastModified": 1711703276,
+ "narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
+ "type": "github"
+ },
+ "original": {
+ "dir": "lib",
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib_2": {
+ "locked": {
"lastModified": 1697935651,
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
"owner": "nix-community",
@@ -161,13 +529,75 @@
"type": "github"
}
},
+ "nixpkgs-small": {
+ "locked": {
+ "lastModified": 1712468661,
+ "narHash": "sha256-n2gVVBs+rV+HzPv/N3QQv5cdAXqSkjmaObvfeMqnw2c=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "298edc8f1e0dfffce67f50375c9f5952e04a6d02",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable-small",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1712026416,
+ "narHash": "sha256-N/3VR/9e1NlN49p7kCiATiEY6Tzdo+CbrAG8kqCQKcI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "080a4a27f206d07724b88da096e27ef63401a504",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1712608508,
+ "narHash": "sha256-vMZ5603yU0wxgyQeHJryOI+O61yrX2AHwY6LOFyV1gM=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_4": {
+ "locked": {
+ "lastModified": 1712439257,
+ "narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nurpkgs": {
"locked": {
- "lastModified": 1708971962,
- "narHash": "sha256-ITVtpvlL8iWqHhcoaP5KiUIpZ9rf6tLlJVOoY/ZokP4=",
+ "lastModified": 1712508277,
+ "narHash": "sha256-hgCRQWyPj4hv4u1KUST/uCFI3GZgpza15Ma+GtgwCL0=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "bac24373cde80987b895dc80da7b22262a715c0d",
+ "rev": "498e425b17e64f5aa4f7b81828db759b3d41b6f2",
"type": "github"
},
"original": {
@@ -176,12 +606,49 @@
"type": "github"
}
},
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": [
+ "niri",
+ "crate2nix",
+ "flake-compat"
+ ],
+ "flake-utils": "flake-utils_3",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "niri",
+ "crate2nix",
+ "nixpkgs"
+ ],
+ "nixpkgs-stable": [
+ "niri",
+ "crate2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1712055707,
+ "narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=",
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "rev": "e35aed5fda3cc79f88ed7f1795021e559582093a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "pre-commit-hooks.nix",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"home-manager": "home-manager",
"hyprland": "hyprland",
+ "nh": "nh",
+ "niri": "niri",
"nix-colors": "nix-colors",
- "nixpkgs": "nixpkgs",
+ "nixpkgs": "nixpkgs_4",
+ "nixpkgs-small": "nixpkgs-small",
"nurpkgs": "nurpkgs"
}
},
@@ -200,22 +667,67 @@
"type": "github"
}
},
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "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"
+ }
+ },
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
- "lastModified": 1708558866,
- "narHash": "sha256-Mz6hCtommq7RQfcPnxLINigO4RYSNt23HeJHC6mVmWI=",
+ "lastModified": 1709983277,
+ "narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
"owner": "wlroots",
"repo": "wlroots",
- "rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
+ "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
- "rev": "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5",
+ "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
}
},
@@ -239,11 +751,11 @@
]
},
"locked": {
- "lastModified": 1708696469,
- "narHash": "sha256-shh5wmpeYy3MmsBfkm4f76yPsBDGk6OLYRVG+ARy2F0=",
+ "lastModified": 1709299639,
+ "narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "1b713911c2f12b96c2574474686e4027ac4bf826",
+ "rev": "2d2fb547178ec025da643db57d40a971507b82fe",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 6c01c42..edd701e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -4,6 +4,7 @@
inputs = {
# Nixpkgs
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
+ nixpkgs-small.url = github:nixos/nixpkgs/nixos-unstable-small;
# Home manager
home-manager = {
@@ -22,14 +23,23 @@
};
nix-colors.url = github:Misterio77/nix-colors;
+
+ nh = {
+ url = github:viperML/nh;
+ inputs.nixpkgs.follows = "nixpkgs"; # override this repo's nixpkgs snapshot
+ };
+
+ niri.url = github:/sodiboo/niri-flake;
};
outputs = { self
, nixpkgs
+ , nixpkgs-small
, home-manager
, nurpkgs
, hyprland
, nix-colors
+ , niri
, ... }@inputs:
let
inherit (self) outputs;
@@ -68,6 +78,7 @@
modules = [
./nixos/laptop/configuration.nix
nurpkgs.nixosModules.nur
+ niri.nixosModules.niri
];
};
ltrr = nixpkgs.lib.nixosSystem {
diff --git a/home-manager/laptop/niri/default.nix b/home-manager/laptop/niri/default.nix
new file mode 100644
index 0000000..123d88e
--- /dev/null
+++ b/home-manager/laptop/niri/default.nix
@@ -0,0 +1,147 @@
+{ pkgs, config, ... }:
+
+{
+ programs.niri = {
+ settings = {
+ input = {
+ keyboard.xkb = {
+ layout = "us,ru";
+ options = "grp:win_space_toggle,compose:ralt,ctrl:nocaps";
+ };
+ touchpad = {
+ tap = true;
+ dwt = true;
+ dwtp = true;
+ natural-scroll = true;
+ };
+ warp-mouse-to-focus = true;
+ focus-follows-mouse = true;
+ };
+ cursor = {
+ theme = "Bibata-Modern-Ice";
+ size = 24;
+ };
+ layout = {
+ gaps = 16;
+ center-focused-column = "never";
+ preset-column-widths = [
+ { proportion = 0.33333; }
+ { proportion = 0.5; }
+ { proportion = 0.66667; }
+ ];
+ border = {
+ enable = true;
+ };
+ focus-ring.enable = false;
+ };
+ prefer-no-csd = true;
+ binds = with config.lib.niri.actions; {
+ "Mod+Q".action.spawn = "alacritty";
+ "Mod+D".action.spawn = [ "rofi --show drun" ];
+ "Mod+B".action.spawn = [ "brave" "--enable-features=TouchpadOverscrollHistoryNavigation" ];
+ "Mod+E".action.spawn = [ "emacsclient" "-c" "-a" "emacs" ];
+ "Super+Alt+L".action.spawn = "swaylock";
+ "XF86AudioRaiseVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+" ];
+ "XF86AudioLowerVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-" ];
+ "XF86AudioMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
+ "XF86AudioMicMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ];
+ "XF86MonBrightnessUp".action.spawn = [ "brightnessctl" "s" "+5%" ];
+ "XF86MonBrightnessDown".action.spawn = [ "brightnessctl" "s" "5%-" ];
+ "Mod+Shift+Slash".action = show-hotkey-overlay;
+ "Mod+Shift+Q".action = close-window;
+ "Mod+Left".action = focus-column-left;
+ "Mod+Down".action = focus-window-down;
+ "Mod+Up".action = focus-window-up;
+ "Mod+Right".action = focus-column-right;
+ "Mod+H".action = focus-column-left;
+ "Mod+J".action = focus-window-down;
+ "Mod+K".action = focus-window-up;
+ "Mod+L".action = focus-column-right;
+ "Mod+Shift+Left".action = move-column-left;
+ "Mod+Shift+Down".action = move-window-down;
+ "Mod+Shift+Up".action = move-window-up;
+ "Mod+Shift+Right".action = move-column-right;
+ "Mod+Shift+H".action = move-column-left;
+ "Mod+Shift+J".action = move-window-down;
+ "Mod+Shift+K".action = move-window-up;
+ "Mod+Shift+L".action = move-column-right;
+ "Mod+Home".action = focus-column-first;
+ "Mod+End".action = focus-column-last;
+ "Mod+Ctrl+Home".action = move-column-to-first;
+ "Mod+Ctrl+End".action = move-column-to-last;
+ "Mod+Ctrl+Left".action = focus-monitor-left;
+ "Mod+Ctrl+Down".action = focus-monitor-down;
+ "Mod+Ctrl+Up".action = focus-monitor-up;
+ "Mod+Ctrl+Right".action = focus-monitor-right;
+ "Mod+Ctrl+H".action = focus-monitor-left;
+ "Mod+Ctrl+J".action = focus-monitor-down;
+ "Mod+Ctrl+K".action = focus-monitor-up;
+ "Mod+Ctrl+L".action = focus-monitor-right;
+ "Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
+ "Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
+ "Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
+ "Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
+ "Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
+ "Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
+ "Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
+ "Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
+ "Mod+Page_Down".action = focus-workspace-down;
+ "Mod+Page_Up".action = focus-workspace-up;
+ "Mod+U".action = focus-workspace-down;
+ "Mod+I".action = focus-workspace-up;
+ "Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
+ "Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
+ "Mod+Ctrl+U".action = move-column-to-workspace-down;
+ "Mod+Ctrl+I".action = move-column-to-workspace-up;
+ "Mod+Shift+Page_Down".action = move-workspace-down;
+ "Mod+Shift+Page_Up".action = move-workspace-up;
+ "Mod+Shift+U".action = move-workspace-down;
+ "Mod+WheelScrollRight".action = focus-column-right;
+ "Mod+WheelScrollLeft".action = focus-column-left;
+ "Mod+Ctrl+WheelScrollRight".action = move-column-right;
+ "Mod+Ctrl+WheelScrollLeft".action = move-column-left;
+ "Mod+Shift+WheelScrollDown".action = focus-column-right;
+ "Mod+Shift+WheelScrollUp".action = focus-column-left;
+ "Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
+ "Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
+
+ "Mod+1".action.focus-workspace = 1;
+ "Mod+2".action.focus-workspace = 2;
+ "Mod+3".action.focus-workspace = 3;
+ "Mod+4".action.focus-workspace = 4;
+ "Mod+5".action.focus-workspace = 5;
+ "Mod+6".action.focus-workspace = 6;
+ "Mod+7".action.focus-workspace = 7;
+ "Mod+8".action.focus-workspace = 8;
+ "Mod+9".action.focus-workspace = 9;
+ "Mod+Shift+1".action.move-column-to-workspace = 1;
+ "Mod+Shift+2".action.move-column-to-workspace = 2;
+ "Mod+Shift+3".action.move-column-to-workspace = 3;
+ "Mod+Shift+4".action.move-column-to-workspace = 4;
+ "Mod+Shift+5".action.move-column-to-workspace = 5;
+ "Mod+Shift+6".action.move-column-to-workspace = 6;
+ "Mod+Shift+7".action.move-column-to-workspace = 7;
+ "Mod+Shift+8".action.move-column-to-workspace = 8;
+ "Mod+Shift+9".action.move-column-to-workspace = 9;
+ "Mod+Comma".action = consume-window-into-column;
+ "Mod+Period".action = expel-window-from-column;
+ "Mod+BracketLeft".action = consume-or-expel-window-left;
+ "Mod+BracketRight".action = consume-or-expel-window-right;
+ "Mod+R".action = switch-preset-column-width;
+ "Mod+M".action = maximize-column;
+ "Mod+F".action = fullscreen-window;
+ "Mod+C".action = center-column;
+ "Mod+Minus".action.set-column-width = "-10%";
+ "Mod+Equal".action.set-column-width = "+10%";
+ "Mod+Shift+Minus".action.set-window-height = "-10%";
+ "Mod+Shift+Equal".action.set-window-height = "+10%";
+ "Print".action = screenshot;
+ "Ctrl+Print".action = screenshot-screen;
+ "Alt+Print".action = screenshot-window;
+ "Mod+Shift+E".action = quit;
+ "Mod+Shift+P".action = power-off-monitors;
+ };
+ };
+ };
+}
+