Compare commits
65 Commits
0c28f1e978
...
main
Author | SHA1 | Date | |
---|---|---|---|
c0d1341448
|
|||
bba55dc973
|
|||
d48559e6d8
|
|||
c18c1d0060
|
|||
bec0e9d43a
|
|||
3937656ce1
|
|||
6554808614
|
|||
8a35e18e4e
|
|||
930417968f
|
|||
7d0e089e3f
|
|||
d135a13a5a
|
|||
9c0e7c4cae
|
|||
c65a7997e2
|
|||
61d4307a10
|
|||
81c866645f
|
|||
1065479388
|
|||
5d9782d733
|
|||
67009df2a9
|
|||
547e41d3f9
|
|||
8fe81eb9cd
|
|||
e599e4c5c4
|
|||
b42de80180
|
|||
2093304e4c
|
|||
e30f4a74cd
|
|||
7c72e527e7
|
|||
f854f65029
|
|||
9034502635
|
|||
24b195b766
|
|||
1ae179eb85
|
|||
efaae1a801
|
|||
27f29769e2
|
|||
c586cc93d8
|
|||
5526b559cf
|
|||
47c88ecf63
|
|||
71d94e52a8
|
|||
268e527db6
|
|||
f3bf120805
|
|||
422b0551db
|
|||
ac28a3442f
|
|||
078351becd
|
|||
46be9aa879
|
|||
8f91352720
|
|||
d3ce08e765
|
|||
5859b9d469
|
|||
a1cac8803a
|
|||
4054e42e21
|
|||
89ff07ac7b
|
|||
7641390aba
|
|||
539a1d8713
|
|||
b3ac24719a
|
|||
f8d4b52394
|
|||
4abde43c61
|
|||
686e36b144
|
|||
0bdff5ef5b
|
|||
02a8c645e9
|
|||
8217a70b34
|
|||
34795ac894
|
|||
a876874791
|
|||
6dbd2b86a2
|
|||
a4e5add644
|
|||
cc31b858f7
|
|||
e669331366
|
|||
453fda9a36
|
|||
e2f6ed72ed
|
|||
8a4af44494
|
546
flake.lock
generated
546
flake.lock
generated
@ -20,11 +20,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749155310,
|
"lastModified": 1751740947,
|
||||||
"narHash": "sha256-t0HfHg/1+TbSra5s6nNM0o4tnb3uqWedShSpZXsUMYY=",
|
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "94981cf75a9f11da0b6dd6a1abbd7c50a36ab2d3",
|
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -105,7 +105,9 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems"
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744632722,
|
"lastModified": 1744632722,
|
||||||
@ -123,7 +125,6 @@
|
|||||||
},
|
},
|
||||||
"chaotic": {
|
"chaotic": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"fenix": "fenix",
|
|
||||||
"flake-schemas": "flake-schemas",
|
"flake-schemas": "flake-schemas",
|
||||||
"home-manager": [
|
"home-manager": [
|
||||||
"home-manager"
|
"home-manager"
|
||||||
@ -131,14 +132,15 @@
|
|||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749559516,
|
"lastModified": 1752318841,
|
||||||
"narHash": "sha256-lL1GFZnMjjo0Tx8u9C2Cv0+aogvF98CgUCwsUl2pTmE=",
|
"narHash": "sha256-/Vfi3vmpBDaEDCdPYEOgUIUTyt2lOTRWVj3ESBRIChY=",
|
||||||
"owner": "chaotic-cx",
|
"owner": "chaotic-cx",
|
||||||
"repo": "nyx",
|
"repo": "nyx",
|
||||||
"rev": "b86053e6253c4b996bb81cc9fd490136da2f6aa6",
|
"rev": "b342f1adfa040963c9b00f4f1755def9f8588a58",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -184,28 +186,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fenix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"chaotic",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1749451322,
|
|
||||||
"narHash": "sha256-t53R3kSDl4Jie+Ooxi/aQFN2ODRp1tXQSJBevOt3IkQ=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "fenix",
|
|
||||||
"rev": "77de5067629e201436c76f14f96614a19368c4ae",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "fenix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -225,11 +205,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -255,6 +235,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746162366,
|
"lastModified": 1746162366,
|
||||||
@ -270,21 +266,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747046372,
|
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
@ -314,11 +295,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1751413152,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -341,6 +322,26 @@
|
|||||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"fromYaml": {
|
"fromYaml": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -357,29 +358,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
"ghostty": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": "flake-compat",
|
||||||
"stylix",
|
"flake-utils": "flake-utils",
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore_3",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"stylix",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"zig": "zig",
|
||||||
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747372754,
|
"lastModified": 1752293658,
|
||||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
"narHash": "sha256-p4I9YxndfMpcHg9EVcy5+BACLp2GBjpVMbXuJ/glYnw=",
|
||||||
"owner": "cachix",
|
"owner": "ghostty-org",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "ghostty",
|
||||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
"rev": "e67a62453d8e75e82b581a340e70896f722a7f0f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "cachix",
|
"owner": "ghostty-org",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "ghostty",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -427,41 +426,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_3": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"git-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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744584021,
|
"lastModified": 1748186689,
|
||||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "48.1",
|
"ref": "48.2",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -473,11 +450,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749526396,
|
"lastModified": 1752286566,
|
||||||
"narHash": "sha256-UL9F76abAk87llXOrcQRjhd5OaOclUd6MIltsqcUZmo=",
|
"narHash": "sha256-A4nftqiNz2bNihz0bKY94Hq/6ydR6UQOcGioeL7iymY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "427c96044f11a5da50faf6adaf38c9fa47e6d044",
|
"rev": "392ddb642abec771d63688c49fa7bcbb9d2a5717",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -531,11 +508,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749238452,
|
"lastModified": 1751808145,
|
||||||
"narHash": "sha256-8qiKEWcxUrjpUpK+WyFNg/72C8rp70LUuyTD23T+SdQ=",
|
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "c7225d73755a6c4c7c72f4d4f3925ea426e325a8",
|
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -558,15 +535,17 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"systems": "systems_2",
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
],
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749540031,
|
"lastModified": 1752270468,
|
||||||
"narHash": "sha256-11k6hq/4Tao2PNBFQpSNTlFFKmKGswL17caKuZIE0sM=",
|
"narHash": "sha256-SEFxC9q+BMn1FkeaBRCDb0h7hZ2B+MSi8+u85y4rgQY=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "6bdb1f413e4c592f73d91bef33dfb202503ef7ab",
|
"rev": "6821723b4421bdf163f1a1cc6fd472516d44b1e7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -655,11 +634,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749155776,
|
"lastModified": 1750371812,
|
||||||
"narHash": "sha256-t1PM0wxQLQwv2F2AW23uA7pm5giwmcgYEWbNIRct9r4=",
|
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-qtutils",
|
"repo": "hyprland-qtutils",
|
||||||
"rev": "396e8aa1c06274835b69da7f9a015fff9a9b7522",
|
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -684,11 +663,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749145882,
|
"lastModified": 1750371198,
|
||||||
"narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=",
|
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676",
|
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -707,18 +686,24 @@
|
|||||||
"hyprland",
|
"hyprland",
|
||||||
"hyprutils"
|
"hyprutils"
|
||||||
],
|
],
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner_2",
|
"hyprwayland-scanner": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_3"
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749186395,
|
"lastModified": 1751567624,
|
||||||
"narHash": "sha256-4PMO6bm0hHEOzGEhXRYSCLpkGT6lGwvax8GkLo+nK5w=",
|
"narHash": "sha256-tUVODSZhvafXmuN+5SwZpNWV+2cvhSd+5IJ5TXu3YgI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprsunset",
|
"repo": "hyprsunset",
|
||||||
"rev": "4528cca4b2e4b44ed0a4e767a0ba493770d9d141",
|
"rev": "4b2f0f9f46a6552930eecb979d18ac48d7079312",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -739,11 +724,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749135356,
|
"lastModified": 1751888065,
|
||||||
"narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=",
|
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb",
|
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -764,36 +749,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749145760,
|
"lastModified": 1751881472,
|
||||||
"narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=",
|
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6",
|
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprwayland-scanner",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprwayland-scanner_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprsunset",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"hyprsunset",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1749145760,
|
|
||||||
"narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=",
|
|
||||||
"owner": "hyprwm",
|
|
||||||
"repo": "hyprwayland-scanner",
|
|
||||||
"rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -811,11 +771,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749495634,
|
"lastModified": 1752218319,
|
||||||
"narHash": "sha256-NPifVq2XZGRCsLBoUt6M5YUTiIh23+ubq57w7mSODt8=",
|
"narHash": "sha256-fEvLVaVduwVotOib8NqO0e4N3dMsdA04Jlfm2sZQH5Q=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "c40d2f31f92571bf341497884174a132829ef0fc",
|
"rev": "d5da490d8c2553fc8d589b49f9c036973b9656a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -827,13 +787,13 @@
|
|||||||
"lanzaboote": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737639419,
|
"lastModified": 1737639419,
|
||||||
@ -868,11 +828,11 @@
|
|||||||
},
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749394952,
|
"lastModified": 1751276396,
|
||||||
"narHash": "sha256-WbWkzIvB0gqAdBLghdmUpGveY7MlAS2iMj3VEJnJ9yE=",
|
"narHash": "sha256-oOYrnKStMsOXST+wKnzuSZ49h8Dr1Q3mIn2f5Kb5GAw=",
|
||||||
"owner": "gmodena",
|
"owner": "gmodena",
|
||||||
"repo": "nix-flatpak",
|
"repo": "nix-flatpak",
|
||||||
"rev": "64c6e53a3999957c19ab95cda78bde466d8374cc",
|
"rev": "59adb9ad1cbd915494fc35cd0e0a9d582ca9de74",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -911,11 +871,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749355504,
|
"lastModified": 1752305182,
|
||||||
"narHash": "sha256-L17CdJMD+/FCBOHjREQLXbe2VUnc3rjffenBbu2Kwpc=",
|
"narHash": "sha256-6i4Q68G7wzNq1m2+l3lJUYgGZ9PwULvSVJpRSTTC46o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "40a6e15e44b11fbf8f2b1df9d64dbfc117625e94",
|
"rev": "ad29e2961dd0d58372384563bf00d510fc9f2e15",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -926,21 +886,21 @@
|
|||||||
},
|
},
|
||||||
"nixos-cosmic": {
|
"nixos-cosmic": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": [
|
"nixpkgs-stable": [
|
||||||
"nixpkgs-stable"
|
"nixpkgs-stable"
|
||||||
],
|
],
|
||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749511063,
|
"lastModified": 1751591814,
|
||||||
"narHash": "sha256-LjH3btCZgZHGxLcAm1B9pjShQODF3mceFtu6+9KL9+g=",
|
"narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "lilyinstarlight",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "nixos-cosmic",
|
||||||
"rev": "a812d36015622e8ca094685f069387468def4c97",
|
"rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -951,11 +911,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-facter-modules": {
|
"nixos-facter-modules": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743671943,
|
"lastModified": 1750412875,
|
||||||
"narHash": "sha256-7sYig0+RcrR3sOL5M+2spbpFUHyEP7cnUvCaqFOBjyU=",
|
"narHash": "sha256-uP9Xxw5XcFwjX9lNoYRpybOnIIe1BHfZu5vJnnPg3Jc=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "nixos-facter-modules",
|
"repo": "nixos-facter-modules",
|
||||||
"rev": "58ad9691670d293a15221d4a78818e0088d2e086",
|
"rev": "14df13c84552a7d1f33c1cd18336128fbc43f920",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -966,16 +926,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749521202,
|
"lastModified": 1751984180,
|
||||||
"narHash": "sha256-9SNHxww6HCKHPBg3h5u3dQqrxRqdGRlCl93PYhsNmOk=",
|
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b57e8a01883a0566ed6213694941ea7acc2093a0",
|
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "pull/413627/head",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -998,11 +958,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749173751,
|
"lastModified": 1751274312,
|
||||||
"narHash": "sha256-ENY3y3v6S9ZmLDDLI3LUT8MXmfXg/fSt2eA4GCnMVCE=",
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ed29f002b6d6e5e7e32590deb065c34a31dc3e91",
|
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1021,15 +981,14 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"stylix",
|
"stylix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748730660,
|
"lastModified": 1751906969,
|
||||||
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
|
"narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
|
"rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1040,7 +999,7 @@
|
|||||||
},
|
},
|
||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat_2",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
@ -1048,11 +1007,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747372754,
|
"lastModified": 1750779888,
|
||||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1093,6 +1052,7 @@
|
|||||||
"blueprint": "blueprint",
|
"blueprint": "blueprint",
|
||||||
"chaotic": "chaotic",
|
"chaotic": "chaotic",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"hyprsunset": "hyprsunset",
|
"hyprsunset": "hyprsunset",
|
||||||
@ -1106,27 +1066,32 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
|
"systems": "systems",
|
||||||
"walker": "walker"
|
"walker": "walker"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-analyzer-src": {
|
"rust-overlay": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"chaotic",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749419176,
|
"lastModified": 1752201818,
|
||||||
"narHash": "sha256-Hs0vidgwvBiBuqNjR5oCQMMGUfUYwwnyxLShg3yzhWU=",
|
"narHash": "sha256-d8KczaVT8WFEZdWg//tMAbv8EDyn2YTWcJvSY8gqKBU=",
|
||||||
"owner": "rust-lang",
|
"owner": "oxalica",
|
||||||
"repo": "rust-analyzer",
|
"repo": "rust-overlay",
|
||||||
"rev": "9fc1b9076cf49c7f54497df9cfa4485a63f14d3e",
|
"rev": "bd8f8329780b348fedcd37b53dbbee48c08c496d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "rust-lang",
|
"owner": "oxalica",
|
||||||
"ref": "nightly",
|
"repo": "rust-overlay",
|
||||||
"repo": "rust-analyzer",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"lanzaboote",
|
"lanzaboote",
|
||||||
@ -1147,7 +1112,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay_2": {
|
"rust-overlay_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixos-cosmic",
|
"nixos-cosmic",
|
||||||
@ -1155,11 +1120,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749436897,
|
"lastModified": 1751251399,
|
||||||
"narHash": "sha256-OkDtaCGQQVwVFz5HWfbmrMJR99sFIMXHCHEYXzUJEJY=",
|
"narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "e7876c387e35dc834838aff254d8e74cf5bd4f19",
|
"rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1175,11 +1140,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747603214,
|
"lastModified": 1751606940,
|
||||||
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
|
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||||
"owner": "mic92",
|
"owner": "mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
|
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1195,18 +1160,15 @@
|
|||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-compat": "flake-compat_4",
|
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": [
|
|
||||||
"home-manager"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_4",
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
],
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@ -1214,11 +1176,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749576521,
|
"lastModified": 1752250117,
|
||||||
"narHash": "sha256-II57ap6MGkArooZFaSDrgNgi24T5Dkdkzhe+xUHdybQ=",
|
"narHash": "sha256-zCPV1a8w9hRn5ukOQwaAggA3X5cMmVsZVBYo8wLfLuU=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "6d72fc259b6f595f5bcf9634bf2f82b76f939a0d",
|
"rev": "0da583a359fd911d5cbfd2c789424b888b777a4b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1242,66 +1204,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"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=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -1338,11 +1240,11 @@
|
|||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748180480,
|
"lastModified": 1750770351,
|
||||||
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
|
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
|
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1354,11 +1256,11 @@
|
|||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748740859,
|
"lastModified": 1751159871,
|
||||||
"narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
|
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
|
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1370,11 +1272,11 @@
|
|||||||
"tinted-zed": {
|
"tinted-zed": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725758778,
|
"lastModified": 1751158968,
|
||||||
"narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
|
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
|
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1383,41 +1285,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"nur",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733222881,
|
|
||||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"walker": {
|
"walker": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_5"
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748502384,
|
"lastModified": 1752245988,
|
||||||
"narHash": "sha256-nmTVxvbENySXZryA+TOGZ9nRr3m/+Xqc07Sy3aSN5Nw=",
|
"narHash": "sha256-t0Sg3HWhDIIQISLGt2cYnD28RUI3SKKTVE9bFL9M5Ok=",
|
||||||
"owner": "abenz1267",
|
"owner": "abenz1267",
|
||||||
"repo": "walker",
|
"repo": "walker",
|
||||||
"rev": "ade63feb9f1d91f1b1bf709bb139060579126c19",
|
"rev": "33c1ee26f675902b4404f64288ad1facb9ecec22",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1454,11 +1336,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749155346,
|
"lastModified": 1751300244,
|
||||||
"narHash": "sha256-KIkJu3zF8MF3DuGwzAmo3Ww9wsWXolwV30SjJRTAxYE=",
|
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "44bf29f1df45786098920c655af523535a9191ae",
|
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1466,6 +1348,60 @@
|
|||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"zig": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"ghostty"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748261582,
|
||||||
|
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zon2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742104771,
|
||||||
|
"narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zon2nix",
|
||||||
|
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zon2nix",
|
||||||
|
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
72
flake.nix
72
flake.nix
@ -2,37 +2,57 @@
|
|||||||
description = "unexplrd's personal configuration";
|
description = "unexplrd's personal configuration";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# lix.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-2.tar.gz";
|
# lix = {
|
||||||
# neve.url = "git+https://gitea.linerds.us/unexplrd/Neve";
|
# url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.1.tar.gz";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# };
|
||||||
|
# neve = {
|
||||||
|
# inputs.nixvim.follows = "nixvim";
|
||||||
|
# url = "git+https://gitea.linerds.us/unexplrd/Neve";
|
||||||
|
# };
|
||||||
# nixvim.url = "github:nix-community/nixvim";
|
# nixvim.url = "github:nix-community/nixvim";
|
||||||
# lix.inputs.nixpkgs.follows = "nixpkgs";
|
systems.url = "github:nix-systems/default";
|
||||||
# neve.inputs.nixvim.follows = "nixvim";
|
|
||||||
blueprint = {
|
blueprint = {
|
||||||
url = "github:numtide/blueprint";
|
url = "github:numtide/blueprint";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.systems.follows = "systems";
|
||||||
};
|
};
|
||||||
chaotic = {
|
chaotic = {
|
||||||
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
inputs.home-manager.follows = "home-manager";
|
home-manager.follows = "home-manager";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
disko = {
|
disko = {
|
||||||
url = "github:nix-community/disko/latest";
|
url = "github:nix-community/disko/latest";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
ghostty = {
|
||||||
|
url = "github:ghostty-org/ghostty";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.flake-utils.inputs.systems.follows = "systems";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
hyprland = {
|
hyprland = {
|
||||||
url = "github:hyprwm/Hyprland";
|
url = "github:hyprwm/Hyprland";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
|
systems.follows = "systems";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
hyprsunset = {
|
hyprsunset = {
|
||||||
url = "github:hyprwm/hyprsunset";
|
url = "github:hyprwm/hyprsunset";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
inputs.hyprland-protocols.follows = "hyprland/hyprland-protocols";
|
hyprland-protocols.follows = "hyprland/hyprland-protocols";
|
||||||
inputs.hyprutils.follows = "hyprland/hyprutils";
|
hyprutils.follows = "hyprland/hyprutils";
|
||||||
|
hyprwayland-scanner.follows = "hyprland/hyprwayland-scanner";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
systems.follows = "hyprland/systems";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||||
@ -42,28 +62,24 @@
|
|||||||
url = "git+ssh://gitea@gitea.linerds.us/unexplrd/nix-secrets";
|
url = "git+ssh://gitea@gitea.linerds.us/unexplrd/nix-secrets";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
nix-flatpak = {
|
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||||
url = "github:gmodena/nix-flatpak";
|
|
||||||
};
|
|
||||||
nix-index-database = {
|
nix-index-database = {
|
||||||
url = "github:nix-community/nix-index-database";
|
url = "github:nix-community/nix-index-database";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-cosmic = {
|
nixos-cosmic = {
|
||||||
url = "github:lilyinstarlight/nixos-cosmic";
|
url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
nixpkgs-stable.follows = "nixpkgs-stable";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-facter-modules = {
|
|
||||||
url = "github:numtide/nixos-facter-modules";
|
|
||||||
};
|
|
||||||
nixpkgs-stable = {
|
|
||||||
url = "github:nixos/nixpkgs/nixos-24.11";
|
|
||||||
};
|
};
|
||||||
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||||
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
# url = "github:NixOS/nixpkgs?ref=nixos-unstable";
|
url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
# workaround for `unexpected Nix daemon error: error: serialised integer 7022364302122705765 is too large for type 'j'`
|
# workaround for `unexpected Nix daemon error: error: serialised integer 7022364302122705765 is too large for type 'j'`
|
||||||
url = "github:NixOS/nixpkgs/pull/413627/head";
|
# url = "github:NixOS/nixpkgs/pull/413627/head";
|
||||||
};
|
};
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:mic92/sops-nix";
|
url = "github:mic92/sops-nix";
|
||||||
@ -71,12 +87,18 @@
|
|||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:danth/stylix";
|
url = "github:danth/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
inputs.home-manager.follows = "home-manager";
|
# home-manager.follows = "home-manager";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
systems.follows = "systems";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
walker = {
|
walker = {
|
||||||
url = "github:abenz1267/walker";
|
url = "github:abenz1267/walker";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
systems.follows = "systems";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
{
|
{inputs, ...}: {
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
self.nixosModules.config
|
self.modules.shared.nixos
|
||||||
self.nixosModules.desktop
|
self.nixosModules.desktop
|
||||||
self.nixosModules.system
|
self.nixosModules.system
|
||||||
./disko
|
./disko
|
||||||
@ -13,25 +8,19 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
|
||||||
hostId = "c7f6c4a1";
|
hostId = "c7f6c4a1";
|
||||||
hostName = "dunamis";
|
hostName = "dunamis";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.memoryAllocator.provider = "mimalloc";
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "Europe/Kyiv";
|
time.timeZone = "Europe/Kyiv";
|
||||||
|
|
||||||
desktop.gnome.enable = true;
|
desktop.niri.enable = true;
|
||||||
|
|
||||||
services.displayManager.autoLogin = {
|
services.displayManager.autoLogin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "user";
|
user = "user";
|
||||||
};
|
};
|
||||||
# TODO: make a module for autologin
|
|
||||||
# services.greetd.settings.initial_session = {
|
|
||||||
# user = "user";
|
|
||||||
# command = "${pkgs.niri}/bin/niri-session";
|
|
||||||
# };
|
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
config = {
|
config = {
|
||||||
@ -41,12 +30,13 @@
|
|||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "gruvbox-dark-pale";
|
theme = "sandcastle";
|
||||||
};
|
};
|
||||||
};
|
locale = "uk_UA.UTF-8";
|
||||||
|
misc = {
|
||||||
locale.ukrainian.enable = true;
|
|
||||||
opentabletdriver.enable = false;
|
opentabletdriver.enable = false;
|
||||||
qmk-vial.enable = true;
|
qmk-vial.enable = true;
|
||||||
virtual.libvirt.enable = true;
|
};
|
||||||
|
virt.libvirt.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{inputs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.networking) hostId;
|
||||||
disk = "/dev/disk/by-id/nvme-eui.000000000000000100a075244b5d6185";
|
disk = "/dev/disk/by-id/nvme-eui.000000000000000100a075244b5d6185";
|
||||||
in {
|
in {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
@ -10,5 +15,5 @@ in {
|
|||||||
mountOptions = ["rw" "nosuid" "nodev"];
|
mountOptions = ["rw" "nosuid" "nodev"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk;};
|
disko.devices.disk.main = import ./disk-main.nix {inherit disk hostId;};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{disk, ...}: {
|
{
|
||||||
|
disk,
|
||||||
|
hostId,
|
||||||
|
}: {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = disk;
|
device = disk;
|
||||||
content = {
|
content = {
|
||||||
@ -25,7 +28,7 @@
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "luks-main";
|
name = "luks-" + hostId;
|
||||||
initrdUnlock = true;
|
initrdUnlock = true;
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
content = let
|
content = let
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with inputs; [
|
|
||||||
nix-index-database.hmModules.nix-index
|
|
||||||
self.homeModules.desktop
|
|
||||||
self.homeModules.programs
|
|
||||||
];
|
|
||||||
inherit (osConfig) desktop;
|
|
||||||
home.stateVersion = osConfig.system.stateVersion;
|
|
||||||
home.sessionPath = ["$HOME/.local/bin"];
|
|
||||||
}
|
|
@ -1,7 +1 @@
|
|||||||
{
|
{flake, ...}: {imports = [flake.modules.shared.user];}
|
||||||
imports = [
|
|
||||||
./common.nix
|
|
||||||
./flatpak.nix
|
|
||||||
./programs.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
@ -1,125 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
in {
|
|
||||||
console.yazi.enable = true;
|
|
||||||
editor.helix.enable = true;
|
|
||||||
shell = {
|
|
||||||
fish.enable = true;
|
|
||||||
oh-my-posh.enable = true;
|
|
||||||
};
|
|
||||||
syncthing.enable = true;
|
|
||||||
# terminal.wezterm.enable = true;
|
|
||||||
terminal.ghostty.enable = true;
|
|
||||||
systemd.user.settings.Manager.DefaultEnvironment = {
|
|
||||||
TERMINAL = "ghostty";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
pueue.enable = true; # process queue in rust
|
|
||||||
ssh-agent.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
bat.enable = true; # cat in rust
|
|
||||||
btop = {
|
|
||||||
enable = true;
|
|
||||||
settings.update_ms = 200;
|
|
||||||
};
|
|
||||||
# direnv.enable = true;
|
|
||||||
# direnv.silent = true;
|
|
||||||
eza.enable = true; # ls in rust
|
|
||||||
fd.enable = true; # find in rust
|
|
||||||
fzf.enable = true; # fuzzy finder in rust
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
delta.enable = true; # diff in rust
|
|
||||||
signing.format = "ssh";
|
|
||||||
aliases = {
|
|
||||||
cl = "clone";
|
|
||||||
co = "checkout";
|
|
||||||
pom = "push origin main";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
gitui.enable = true; # git ui in rust
|
|
||||||
jujutsu.enable = true; # vcs in rust
|
|
||||||
keychain = {
|
|
||||||
enable = true;
|
|
||||||
keys = ["id_ed25519"];
|
|
||||||
};
|
|
||||||
nix-index-database.comma.enable = true;
|
|
||||||
nix-index.enable = true;
|
|
||||||
nix-your-shell.enable = true;
|
|
||||||
pay-respects.enable = true; # thefuck in rust
|
|
||||||
ripgrep.enable = true; # grep in rust
|
|
||||||
zk.enable = true;
|
|
||||||
zoxide.enable = true; # fuzzy cd in rust
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs;
|
|
||||||
[
|
|
||||||
# development utils
|
|
||||||
alejandra # nix formatter in rust
|
|
||||||
# devenv # programming deps in rust
|
|
||||||
(mkIf config.programs.jujutsu.enable jj-fzf) # fuzzy finder jujutsu tui
|
|
||||||
just # make in rust
|
|
||||||
silicon # create code pics in rust
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
# console utils
|
|
||||||
# bluetuith # bluetooth tui in go
|
|
||||||
dua # disk space usage in rust
|
|
||||||
duf # better df in go
|
|
||||||
fend # calculator in rust
|
|
||||||
mprocs # process runner in rust
|
|
||||||
ouch # archive manager in rust
|
|
||||||
# procs # ps in rust
|
|
||||||
rbw # bitwarden cli in rust
|
|
||||||
sd # sed in rust
|
|
||||||
systemctl-tui # systemctl tui in rust
|
|
||||||
trashy # trash cli in rust
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
# misc apps
|
|
||||||
adwaita-icon-theme
|
|
||||||
# vial # qmk keyboard configuring app
|
|
||||||
pinentry-qt # pinentry for rbw
|
|
||||||
virt-manager # libvirt gui
|
|
||||||
# waycheck # check wayland protocols
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
# gui libadwaita apps
|
|
||||||
celluloid # mpv gui in libadwaita
|
|
||||||
# gnome-text-editor
|
|
||||||
helvum # pipewire patchbay in rust
|
|
||||||
junction # app chooser
|
|
||||||
# loupe # image viewer and editor in rust
|
|
||||||
mission-center # task manager in rust (partly)
|
|
||||||
# nautilus # file manager
|
|
||||||
overskride # bluetooth gui in rust
|
|
||||||
papers # pdf reader in rust
|
|
||||||
pika-backup # borg gui in rust
|
|
||||||
pwvucontrol # pipewire gui in rust
|
|
||||||
sonusmix # pipewire routing tool in rust
|
|
||||||
# wdisplays # wlroots display configurator
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
uni = {
|
|
||||||
actions."Copy".exec = "fish -c \"~/.local/bin/uni --copy\"";
|
|
||||||
categories = ["Utility" "X-Launch" "Network"];
|
|
||||||
comment = "Select and open or copy URLs from a list.";
|
|
||||||
exec = "fish -c \"~/.local/bin/uni\"";
|
|
||||||
icon = "web-browser";
|
|
||||||
name = "Uni URL Handler";
|
|
||||||
startupNotify = true;
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
self.nixosModules.config
|
self.modules.shared.nixos
|
||||||
self.nixosModules.desktop
|
self.nixosModules.desktop
|
||||||
self.nixosModules.system
|
self.nixosModules.system
|
||||||
./disko
|
./disko
|
||||||
@ -9,17 +9,27 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
|
||||||
hostId = "14f63637";
|
hostId = "14f63637";
|
||||||
hostName = "eldrid";
|
hostName = "eldrid";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.memoryAllocator.provider = "mimalloc";
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "Europe/Kyiv";
|
time.timeZone = "Europe/Kyiv";
|
||||||
|
|
||||||
desktop.niri.enable = true;
|
desktop.niri.enable = true;
|
||||||
|
|
||||||
|
services.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "user";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap/swapfile";
|
||||||
|
size = 8 * 1024; # eight gigs
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
config = {
|
config = {
|
||||||
laptop.homeRowMods = true;
|
laptop.homeRowMods = true;
|
||||||
@ -30,19 +40,11 @@
|
|||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "rose-pine-moon";
|
theme = "sandcastle";
|
||||||
};
|
};
|
||||||
};
|
locale = "uk_UA.UTF-8";
|
||||||
|
misc = {
|
||||||
locale.ukrainian.enable = true;
|
|
||||||
opentabletdriver.enable = false;
|
|
||||||
qmk-vial.enable = true;
|
qmk-vial.enable = true;
|
||||||
virtual.libvirt.enable = false;
|
};
|
||||||
|
};
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/swap/swapfile";
|
|
||||||
size = 8 * 1024; # eight gigs
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{inputs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.networking) hostId;
|
||||||
disk = "/dev/disk/by-id/nvme-eui.e8238fa6bf530001001b444a44022ad0";
|
disk = "/dev/disk/by-id/nvme-eui.e8238fa6bf530001001b444a44022ad0";
|
||||||
in {
|
in {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
@ -10,5 +15,5 @@ in {
|
|||||||
mountOptions = ["rw" "nosuid" "nodev"];
|
mountOptions = ["rw" "nosuid" "nodev"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk;};
|
disko.devices.disk.main = import ./disk-main.nix {inherit disk hostId;};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{disk, ...}: {
|
{
|
||||||
|
disk,
|
||||||
|
hostId,
|
||||||
|
}: {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = disk;
|
device = disk;
|
||||||
content = {
|
content = {
|
||||||
@ -25,7 +28,7 @@
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "luks-main";
|
name = "luks-" + hostId;
|
||||||
initrdUnlock = true;
|
initrdUnlock = true;
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
content = {
|
content = {
|
||||||
|
@ -1,20 +1,47 @@
|
|||||||
{pkgs, ...}: let
|
{pkgs, ...}: let
|
||||||
cb-ucm-conf = pkgs.alsa-ucm-conf.overrideAttrs {
|
cb-ucm-conf = with pkgs;
|
||||||
wttsrc = pkgs.fetchFromGitHub {
|
alsa-ucm-conf.overrideAttrs {
|
||||||
|
wttsrc = fetchFromGitHub {
|
||||||
owner = "WeirdTreeThing";
|
owner = "WeirdTreeThing";
|
||||||
repo = "chromebook-ucm-conf";
|
repo = "alsa-ucm-conf-cros";
|
||||||
rev = "b6ce2a7";
|
rev = "a4f0ed6cf59163fb571c33a81a6b40b6f53ed57d";
|
||||||
hash = "sha256-QRUKHd3RQmg1tnZU8KCW0AmDtfw/daOJ/H3XU5qWTCc=";
|
hash = "sha256-H0BsRzHSEJ6XCZB/Rvb3w+uGCzr+kAvAwcHWqYEtp6w=";
|
||||||
};
|
};
|
||||||
postInstall = ''
|
unpackPhase = ''
|
||||||
cp -R $wttsrc/common/* $out/share/alsa/ucm2/common
|
runHook preUnpack
|
||||||
cp -R $wttsrc/codecs/* $out/share/alsa/ucm2/codecs
|
tar xf "$src"
|
||||||
cp -R $wttsrc/platforms/* $out/share/alsa/ucm2/platforms
|
runHook postUnpack
|
||||||
cp -R $wttsrc/sof-rt5682 $out/share/alsa/ucm2/conf.d
|
'';
|
||||||
cp -R $wttsrc/sof-cs42l42 $out/share/alsa/ucm2/conf.d
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out/share/alsa
|
||||||
|
cp -r alsa-ucm*/ucm2 $out/share/alsa
|
||||||
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
environment = {
|
||||||
|
systemPackages = [pkgs.sof-firmware];
|
||||||
|
sessionVariables.ALSA_CONFIG_UCM2 = "${cb-ucm-conf}/share/alsa/ucm2";
|
||||||
|
etc = {
|
||||||
|
"wireplumber/main.lua.d/51-increase-headroom.lua".text = ''
|
||||||
|
rule = {
|
||||||
|
matches = {
|
||||||
|
{
|
||||||
|
{ "node.name", "matches", "alsa_output.*" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
apply_properties = {
|
||||||
|
["api.alsa.headroom"] = 4096,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
table.insert(alsa_monitor.rules,rule)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
system.replaceDependencies.replacements = [
|
system.replaceDependencies.replacements = [
|
||||||
{
|
{
|
||||||
original = pkgs.alsa-ucm-conf;
|
original = pkgs.alsa-ucm-conf;
|
||||||
@ -22,6 +49,10 @@ in {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options snd-intel-dspcfg dsp_driver=3
|
||||||
|
'';
|
||||||
|
|
||||||
services.pipewire.wireplumber.configPackages = [
|
services.pipewire.wireplumber.configPackages = [
|
||||||
(pkgs.writeTextDir "share/wireplumber/main.lua.d/51-increase-headroom.lua" ''
|
(pkgs.writeTextDir "share/wireplumber/main.lua.d/51-increase-headroom.lua" ''
|
||||||
rule = {
|
rule = {
|
||||||
@ -37,10 +68,19 @@ in {
|
|||||||
|
|
||||||
table.insert(alsa_monitor.rules,rule)
|
table.insert(alsa_monitor.rules,rule)
|
||||||
'')
|
'')
|
||||||
];
|
(pkgs.writeTextDir "share/wireplumber/main.lua.d/51-avs-dmic.lua" ''
|
||||||
boot = {
|
rule = {
|
||||||
extraModprobeConfig = ''
|
matches = {
|
||||||
options snd-intel-dspcfg dsp_driver=3
|
{
|
||||||
'';
|
{ "node.nick", "equals", "Internal Microphone" },
|
||||||
};
|
},
|
||||||
|
},
|
||||||
|
apply_properties = {
|
||||||
|
["audio.format"] = "S16LE",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
table.insert(alsa_monitor.rules, rule)
|
||||||
|
'')
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# ./distributed-build.nix
|
# ./distributed-build.nix
|
||||||
|
./undervolt.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
7
hosts/eldrid/misc/undervolt.nix
Normal file
7
hosts/eldrid/misc/undervolt.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
services.undervolt = {
|
||||||
|
enable = true;
|
||||||
|
# coreOffset = -150;
|
||||||
|
turbo = 1;
|
||||||
|
};
|
||||||
|
}
|
@ -1,7 +1 @@
|
|||||||
{lib, ...}: {
|
{flake, ...}: {imports = [flake.modules.shared.user];}
|
||||||
imports = [
|
|
||||||
../../../dunamis/users/user/common.nix
|
|
||||||
../../../dunamis/users/user/programs.nix
|
|
||||||
../../../dunamis/users/user/flatpak.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
{
|
{inputs, ...}: {
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
self.nixosModules.config
|
self.modules.shared.nixos
|
||||||
self.nixosModules.desktop
|
self.nixosModules.desktop
|
||||||
self.nixosModules.system
|
self.nixosModules.system
|
||||||
./disko
|
./disko
|
||||||
@ -13,30 +9,33 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
hostId = "45b00123";
|
||||||
hostName = "legion";
|
hostName = "legion";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.memoryAllocator.provider = "mimalloc";
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "Europe/Kyiv";
|
time.timeZone = "Europe/Kyiv";
|
||||||
|
|
||||||
desktop.niri.enable = true;
|
desktop.niri.enable = true;
|
||||||
|
|
||||||
|
services.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "user";
|
||||||
|
};
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
config = {
|
config = {
|
||||||
laptop.homeRowMods = true;
|
laptop.homeRowMods = true;
|
||||||
powerSave = true;
|
powerSave = true;
|
||||||
# secureBoot = true;
|
secureBoot = true;
|
||||||
# tpmDiskUnlock = true;
|
tpmDiskUnlock = true;
|
||||||
vaapi = "nvidia";
|
vaapi = "nvidia";
|
||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "helios";
|
theme = "sandcastle";
|
||||||
};
|
};
|
||||||
|
locale = "uk_UA.UTF-8";
|
||||||
|
virt.libvirt.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
locale.ukrainian.enable = true;
|
|
||||||
virtual.libvirt.enable = true;
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{inputs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.networking) hostId;
|
||||||
disk-main = "/dev/disk/by-id/nvme-INTEL_SSDPEKKF256G8L_BTHH81460QC2256B";
|
disk-main = "/dev/disk/by-id/nvme-INTEL_SSDPEKKF256G8L_BTHH81460QC2256B";
|
||||||
disk-second = "/dev/disk/by-id/nvme-WDC_PC_SN730_SDBPNTY-1T00-1101_21114D802446";
|
disk-second = "/dev/disk/by-id/nvme-WDC_PC_SN730_SDBPNTY-1T00-1101_21114D802446";
|
||||||
in {
|
in {
|
||||||
@ -11,6 +16,6 @@ in {
|
|||||||
mountOptions = ["rw" "nosuid" "nodev"];
|
mountOptions = ["rw" "nosuid" "nodev"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk-main;};
|
disko.devices.disk.main = import ./disk-main.nix {inherit disk-main hostId;};
|
||||||
disko.devices.disk.second = import ./disk-second.nix {inherit disk-second;};
|
disko.devices.disk.second = import ./disk-second.nix {inherit disk-second hostId;};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{disk-main}: {
|
{
|
||||||
|
disk-main,
|
||||||
|
hostId,
|
||||||
|
}: {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = disk-main;
|
device = disk-main;
|
||||||
content = {
|
content = {
|
||||||
@ -25,7 +28,7 @@
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "luks-main";
|
name = "luks-" + hostId;
|
||||||
initrdUnlock = true;
|
initrdUnlock = true;
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
content = {
|
content = {
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{disk-second}: {
|
{
|
||||||
|
disk-second,
|
||||||
|
hostId,
|
||||||
|
}: {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = disk-second;
|
device = disk-second;
|
||||||
content = {
|
content = {
|
||||||
@ -8,7 +11,7 @@
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "luks-second";
|
name = "luks-${hostId}-second";
|
||||||
initrdUnlock = true;
|
initrdUnlock = true;
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
content = {
|
content = {
|
||||||
|
@ -1,7 +1 @@
|
|||||||
{
|
{flake, ...}: {imports = [flake.modules.shared.user];}
|
||||||
imports = [
|
|
||||||
../../../dunamis/users/user/common.nix
|
|
||||||
../../../dunamis/users/user/flatpak.nix
|
|
||||||
../../../dunamis/users/user/programs.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
@ -1,37 +1,21 @@
|
|||||||
{
|
{inputs, ...}: {
|
||||||
inputs,
|
|
||||||
# pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
self.nixosModules.desktop
|
self.nixosModules.desktop
|
||||||
self.nixosModules.system
|
self.nixosModules.system
|
||||||
self.nixosModules.config
|
self.modules.shared.nixos
|
||||||
./disko
|
./disko
|
||||||
./hardware
|
./hardware
|
||||||
./misc
|
./misc
|
||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
|
||||||
hostId = "bd1b5837";
|
hostId = "bd1b5837";
|
||||||
hostName = "morphius";
|
hostName = "morphius";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.loader.timeout = lib.mkForce 0;
|
|
||||||
environment.memoryAllocator.provider = "mimalloc";
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "Europe/Kyiv";
|
time.timeZone = "Europe/Kyiv";
|
||||||
|
|
||||||
zramSwap.enable = true;
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/swap/swapfile";
|
|
||||||
size = 8 * 1024;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
desktop.gnome.enable = true;
|
desktop.gnome.enable = true;
|
||||||
|
|
||||||
services.displayManager.autoLogin = {
|
services.displayManager.autoLogin = {
|
||||||
@ -39,6 +23,13 @@
|
|||||||
user = "user";
|
user = "user";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap/swapfile";
|
||||||
|
size = 8 * 1024;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
config = {
|
config = {
|
||||||
secureBoot = true;
|
secureBoot = true;
|
||||||
@ -49,10 +40,8 @@
|
|||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "gruvbox-dark-pale";
|
theme = "sandcastle";
|
||||||
};
|
};
|
||||||
|
locale = "uk_UA.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
locale.ukrainian.enable = true;
|
|
||||||
opentabletdriver.enable = false;
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{inputs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.networking) hostId;
|
||||||
disk = "/dev/nvme0n1";
|
disk = "/dev/nvme0n1";
|
||||||
in {
|
in {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
@ -10,5 +15,5 @@ in {
|
|||||||
mountOptions = ["rw" "nosuid" "nodev"];
|
mountOptions = ["rw" "nosuid" "nodev"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk;};
|
disko.devices.disk.main = import ./disk-main.nix {inherit disk hostId;};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{disk, ...}: {
|
{
|
||||||
|
disk,
|
||||||
|
hostId,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
type = "disk";
|
type = "disk";
|
||||||
device = disk;
|
device = disk;
|
||||||
content = {
|
content = {
|
||||||
@ -25,7 +29,7 @@
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = "luks-main";
|
name = "luks-" + hostId;
|
||||||
initrdUnlock = true;
|
initrdUnlock = true;
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
content = {
|
content = {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
# ./laptop
|
# ./laptop
|
||||||
];
|
];
|
||||||
|
hardware.sensor.iio.enable = true;
|
||||||
services = {
|
services = {
|
||||||
logind = {
|
logind = {
|
||||||
lidSwitch = "ignore";
|
lidSwitch = "ignore";
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
./keyboard-fix.nix
|
|
||||||
];
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
services = {
|
|
||||||
udev.extraHwdb = ''
|
|
||||||
evdev:input:b0011v0001p0001eAB83*
|
|
||||||
KEYBOARD_KEY_d5=sysrq
|
|
||||||
KEYBOARD_KEY_d4=leftmeta
|
|
||||||
KEYBOARD_KEY_95=brightnessdown
|
|
||||||
KEYBOARD_KEY_91=brightnessup
|
|
||||||
'';
|
|
||||||
keyd = {
|
|
||||||
enable = true;
|
|
||||||
keyboards.default = {
|
|
||||||
ids = ["0001:0001"];
|
|
||||||
settings.main = {
|
|
||||||
camera = "brightnessdown";
|
|
||||||
prog1 = "brightnessup";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,10 +1 @@
|
|||||||
{lib, ...}: {
|
{flake, ...}: {imports = [flake.modules.shared.user];}
|
||||||
imports = [
|
|
||||||
../../../dunamis/users/user/common.nix
|
|
||||||
../../../dunamis/users/user/programs.nix
|
|
||||||
../../../dunamis/users/user/flatpak.nix
|
|
||||||
];
|
|
||||||
systemd.user.settings.Manager.DefaultEnvironment = {
|
|
||||||
TERMINAL = lib.mkForce "ghostty";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
@ -1,29 +1,23 @@
|
|||||||
{
|
{inputs, ...}: {
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
self.nixosModules.desktop
|
self.nixosModules.desktop
|
||||||
self.nixosModules.system
|
self.nixosModules.system
|
||||||
self.nixosModules.config
|
self.modules.shared.nixos
|
||||||
./disko
|
./disko
|
||||||
./hardware
|
./hardware
|
||||||
./misc
|
./misc
|
||||||
];
|
];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
networkmanager.enable = true;
|
|
||||||
hostId = "31150fae";
|
hostId = "31150fae";
|
||||||
hostName = "sarien";
|
hostName = "sarien";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.memoryAllocator.provider = "mimalloc";
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "Europe/Kyiv";
|
time.timeZone = "Europe/Kyiv";
|
||||||
|
|
||||||
desktop.gnome.enable = true;
|
desktop.niri.enable = true;
|
||||||
|
|
||||||
services.displayManager.autoLogin = {
|
services.displayManager.autoLogin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "user";
|
user = "user";
|
||||||
@ -51,12 +45,10 @@
|
|||||||
};
|
};
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "gruvbox-dark-pale";
|
theme = "sandcastle";
|
||||||
};
|
};
|
||||||
|
locale = "uk_UA.UTF-8";
|
||||||
|
misc.qmk-vial.enable = true;
|
||||||
|
virt.libvirt.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
locale.ukrainian.enable = true;
|
|
||||||
opentabletdriver.enable = false;
|
|
||||||
qmk-vial.enable = true;
|
|
||||||
virtual.libvirt.enable = true;
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
{inputs, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (config.networking) hostId;
|
||||||
disk = "/dev/disk/by-id/nvme-eui.0025385911b36714";
|
disk = "/dev/disk/by-id/nvme-eui.0025385911b36714";
|
||||||
in {
|
in {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
@ -11,5 +16,5 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
# same partitioning setup
|
# same partitioning setup
|
||||||
disko.devices.disk.main = import ../../dunamis/disko/disk-main.nix {inherit disk;};
|
disko.devices.disk.main = import ../../dunamis/disko/disk-main.nix {inherit disk hostId;};
|
||||||
}
|
}
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
{disk, ...}: {
|
|
||||||
type = "disk";
|
|
||||||
device = disk;
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
ESP = {
|
|
||||||
size = "2G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"umask=0077"
|
|
||||||
"fmask=0022"
|
|
||||||
"dmask=0022"
|
|
||||||
"noexec"
|
|
||||||
"nosuid"
|
|
||||||
"nodev"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
luks = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "luks";
|
|
||||||
name = "luks-main";
|
|
||||||
initrdUnlock = true;
|
|
||||||
settings.allowDiscards = true;
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = ["-f"];
|
|
||||||
subvolumes = {
|
|
||||||
"@nixos-root" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
"noexec"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"@storage" = {
|
|
||||||
mountpoint = "/storage";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
mountOptions = [
|
|
||||||
"compress-force=zstd"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"@swap" = {
|
|
||||||
mountpoint = "/swap";
|
|
||||||
mountOptions = [
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,7 +1 @@
|
|||||||
{
|
{flake, ...}: {imports = [flake.modules.shared.user];}
|
||||||
imports = [
|
|
||||||
../../../dunamis/users/user/common.nix
|
|
||||||
../../../dunamis/users/user/programs.nix
|
|
||||||
../../../dunamis/users/user/flatpak.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./xdg-userdirs.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
{config, ...}: let
|
|
||||||
inherit (config.home) homeDirectory;
|
|
||||||
home = f: "${homeDirectory}/${f}";
|
|
||||||
in {
|
|
||||||
xdg.userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
templates = home "temps";
|
|
||||||
publicShare = home "pub";
|
|
||||||
desktop = home "desktop";
|
|
||||||
download = home "downloads";
|
|
||||||
documents = home "docs";
|
|
||||||
pictures = home "pics";
|
|
||||||
videos = home "vids";
|
|
||||||
music = home "music";
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common
|
# ./common
|
||||||
./cosmic
|
./cosmic
|
||||||
./gnome
|
./gnome
|
||||||
./hyprland
|
./hyprland
|
||||||
|
@ -1,21 +1,24 @@
|
|||||||
{
|
{
|
||||||
perSystem,
|
|
||||||
osConfig,
|
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
|
||||||
lib,
|
lib,
|
||||||
|
osConfig,
|
||||||
|
# perSystem,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
# inherit (lib.strings) removeSuffix;
|
inherit (lib) mkIf mkEnableOption mkForce getExe;
|
||||||
inherit (lib) mkIf mkEnableOption mkDefault mkForce getExe;
|
|
||||||
inherit (config.lib.stylix) colors;
|
|
||||||
# inherit (osConfig.module.stylix) theme;
|
|
||||||
inherit (osConfig.networking) hostName;
|
inherit (osConfig.networking) hostName;
|
||||||
|
|
||||||
cfg = config.desktop.niri;
|
cfg = config.desktop.niri;
|
||||||
|
|
||||||
ifLaptop = mkIf (hostName != "dunamis");
|
ifLaptop = mkIf (hostName != "dunamis");
|
||||||
|
|
||||||
|
commonArgs = {
|
||||||
|
inherit config inputs lib osConfig pkgs;
|
||||||
launcher = getExe pkgs.walker;
|
launcher = getExe pkgs.walker;
|
||||||
lockscreen = getExe pkgs.gtklock;
|
lockscreen = getExe pkgs.gtklock;
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
imports = with inputs; [
|
imports = with inputs; [
|
||||||
walker.homeManagerModules.default
|
walker.homeManagerModules.default
|
||||||
@ -30,6 +33,24 @@ in {
|
|||||||
wpaperd.enable = true;
|
wpaperd.enable = true;
|
||||||
qt.enable = false;
|
qt.enable = false;
|
||||||
};
|
};
|
||||||
|
stylix.iconTheme = {
|
||||||
|
enable = true;
|
||||||
|
light = "Papirus-Light";
|
||||||
|
dark = "Papirus-Dark";
|
||||||
|
package = let
|
||||||
|
inherit (lib.strings) hasPrefix;
|
||||||
|
inherit (osConfig.module.stylix) theme;
|
||||||
|
color =
|
||||||
|
if (hasPrefix "rose-pine" theme)
|
||||||
|
then "indigo"
|
||||||
|
else if (hasPrefix "nord" theme)
|
||||||
|
then "nordic"
|
||||||
|
else if (hasPrefix "s" theme)
|
||||||
|
then "teal"
|
||||||
|
else null;
|
||||||
|
in
|
||||||
|
pkgs.papirus-icon-theme.override {inherit color;};
|
||||||
|
};
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
button-layout = "icon:close";
|
button-layout = "icon:close";
|
||||||
@ -42,34 +63,14 @@ in {
|
|||||||
else lib.mkDefault "prefer-light";
|
else lib.mkDefault "prefer-light";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
iconTheme = let
|
|
||||||
name =
|
|
||||||
if (lib.strings.hasPrefix "gruvbox" osConfig.module.stylix.theme)
|
|
||||||
then "Gruvbox-Plus-Dark"
|
|
||||||
else if config.stylix.polarity == "dark"
|
|
||||||
then "Papirus-Dark"
|
|
||||||
else "Papirus-Light";
|
|
||||||
package =
|
|
||||||
if (lib.strings.hasPrefix "gruvbox" osConfig.module.stylix.theme)
|
|
||||||
then pkgs.gruvbox-plus-icons
|
|
||||||
else if (lib.strings.hasPrefix "rose-pine" osConfig.module.stylix.theme)
|
|
||||||
then pkgs.papirus-icon-theme.override {color = "indigo";}
|
|
||||||
else if (lib.strings.hasPrefix "nord" osConfig.module.stylix.theme)
|
|
||||||
then pkgs.papirus-icon-theme.override {color = "nordic";}
|
|
||||||
else pkgs.papirus-icon-theme;
|
|
||||||
in {inherit name package;};
|
|
||||||
};
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "gtk3";
|
platformTheme.name = "gtk3";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.walker = import ./programs/walker {inherit config inputs pkgs;};
|
programs.walker = import ./programs/walker commonArgs;
|
||||||
programs.waybar = import ./programs/waybar {inherit config colors getExe ifLaptop pkgs;};
|
programs.waybar = import ./programs/waybar commonArgs;
|
||||||
xdg.configFile.niri = import ./niri.nix {inherit config hostName launcher lockscreen;};
|
services = import ./services commonArgs;
|
||||||
services = import ./services {inherit pkgs lockscreen getExe perSystem;};
|
|
||||||
|
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
[
|
[
|
||||||
@ -79,13 +80,9 @@ in {
|
|||||||
helvum # pipewire patchbay in rust
|
helvum # pipewire patchbay in rust
|
||||||
junction # app chooser
|
junction # app chooser
|
||||||
loupe # image viewer and editor in rust
|
loupe # image viewer and editor in rust
|
||||||
mission-center # task manager in rust (partly)
|
|
||||||
nautilus # file manager
|
nautilus # file manager
|
||||||
overskride # bluetooth gui in rust
|
|
||||||
papers # pdf reader in rust
|
papers # pdf reader in rust
|
||||||
pika-backup # borg gui in rust
|
|
||||||
pwvucontrol # pipewire gui in rust
|
pwvucontrol # pipewire gui in rust
|
||||||
sonusmix # pipewire routing tool in rust
|
|
||||||
wdisplays # wlroots display configurator
|
wdisplays # wlroots display configurator
|
||||||
]
|
]
|
||||||
++ [
|
++ [
|
||||||
@ -98,6 +95,10 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
|
configFile = {
|
||||||
|
niri = import ./niri.nix commonArgs;
|
||||||
|
"mimeapps.list".force = true;
|
||||||
|
};
|
||||||
mime.enable = true;
|
mime.enable = true;
|
||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -126,12 +127,11 @@ in {
|
|||||||
};
|
};
|
||||||
systemd.user = {
|
systemd.user = {
|
||||||
settings.Manager.DefaultEnvironment = {
|
settings.Manager.DefaultEnvironment = {
|
||||||
QT_QPA_PLATFORM = "wayland";
|
|
||||||
DISPLAY = ":123";
|
DISPLAY = ":123";
|
||||||
};
|
};
|
||||||
targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie
|
targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie
|
||||||
services = let
|
services = let
|
||||||
mkGraphicalService = config: graphicalService // config;
|
mkGraphicalService = config: lib.attrsets.recursiveUpdate graphicalService config;
|
||||||
graphicalService = {
|
graphicalService = {
|
||||||
Install.WantedBy = ["niri.service"];
|
Install.WantedBy = ["niri.service"];
|
||||||
Unit = {
|
Unit = {
|
||||||
@ -148,33 +148,25 @@ in {
|
|||||||
in
|
in
|
||||||
lib.mkMerge [
|
lib.mkMerge [
|
||||||
{
|
{
|
||||||
udiskie = mkGraphicalService {};
|
copyq = mkGraphicalService {Service.Environment = mkForce "QT_QPA_PLATFORM=wayland";};
|
||||||
waybar = mkGraphicalService {};
|
|
||||||
network-manager-applet = mkGraphicalService {};
|
network-manager-applet = mkGraphicalService {};
|
||||||
copyq = mkGraphicalService {
|
udiskie = mkGraphicalService {};
|
||||||
Service =
|
walker = mkGraphicalService {};
|
||||||
graphicalService.Service
|
waybar = mkGraphicalService {};
|
||||||
|
wpaperd =
|
||||||
|
mkGraphicalService {}
|
||||||
// {
|
// {
|
||||||
Environment = mkForce "QT_QPA_PLATFORM=wayland";
|
Service.TimeoutStopSec = mkForce "1";
|
||||||
};
|
Service.Restart = mkForce "always";
|
||||||
};
|
};
|
||||||
xwayland-satellite = mkGraphicalService {
|
xwayland-satellite = mkGraphicalService {
|
||||||
Service =
|
Service = {
|
||||||
graphicalService.Service
|
|
||||||
// {
|
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = getExe pkgs.xwayland-satellite + " :123";
|
ExecStart = getExe pkgs.xwayland-satellite + " :123";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
wpaperd = mkGraphicalService {
|
|
||||||
Service =
|
|
||||||
mkDefault graphicalService.Service;
|
|
||||||
};
|
|
||||||
walker = mkGraphicalService {};
|
|
||||||
# gnome-polkit-agent = mkGraphicalService {
|
# gnome-polkit-agent = mkGraphicalService {
|
||||||
# Service =
|
# Service = {
|
||||||
# graphicalService.Service
|
|
||||||
# // {
|
|
||||||
# Type = "simple";
|
# Type = "simple";
|
||||||
# ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1";
|
# ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1";
|
||||||
# };
|
# };
|
||||||
@ -182,9 +174,7 @@ in {
|
|||||||
}
|
}
|
||||||
(lib.mkIf (hostName == "morphius") {
|
(lib.mkIf (hostName == "morphius") {
|
||||||
lisgd = mkGraphicalService {
|
lisgd = mkGraphicalService {
|
||||||
Service =
|
Service = {
|
||||||
graphicalService.Service
|
|
||||||
// {
|
|
||||||
# Group = "input";
|
# Group = "input";
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart =
|
ExecStart =
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
hostName,
|
osConfig,
|
||||||
launcher,
|
launcher,
|
||||||
lockscreen,
|
lockscreen,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.lib.stylix) colors;
|
inherit (config.lib.stylix) colors;
|
||||||
inherit (config.stylix) cursor;
|
inherit (config.stylix) cursor;
|
||||||
|
inherit (osConfig.networking) hostName;
|
||||||
|
|
||||||
keyboard =
|
keyboard =
|
||||||
if hostName == "eldrid"
|
if hostName == "eldrid"
|
||||||
then "chromeos"
|
then "chromeos"
|
||||||
@ -91,15 +93,15 @@ in {
|
|||||||
in ''
|
in ''
|
||||||
environment {
|
environment {
|
||||||
DISPLAY ":123"
|
DISPLAY ":123"
|
||||||
QT_QPA_PLATFORMTHEME "gtk3"
|
CLUTTER_BACKEND "wayland"
|
||||||
|
GDK_BACKEND "wayland"
|
||||||
MOZ_ENABLE_WAYLAND "1"
|
MOZ_ENABLE_WAYLAND "1"
|
||||||
MOZ_WEBRENDER "1"
|
MOZ_WEBRENDER "1"
|
||||||
GDK_BACKEND "wayland"
|
|
||||||
QT_QPA_PLATFORM "wayland"
|
QT_QPA_PLATFORM "wayland"
|
||||||
XDG_SESSION_TYPE "wayland"
|
|
||||||
CLUTTER_BACKEND "wayland"
|
|
||||||
SDL_VIDEODRIVER "wayland"
|
SDL_VIDEODRIVER "wayland"
|
||||||
|
XDG_SESSION_TYPE "wayland"
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input {
|
||||||
keyboard {
|
keyboard {
|
||||||
xkb {
|
xkb {
|
||||||
@ -108,53 +110,23 @@ in {
|
|||||||
}
|
}
|
||||||
repeat-delay 200
|
repeat-delay 200
|
||||||
repeat-rate 50
|
repeat-rate 50
|
||||||
track-layout "global"
|
track-layout "window"
|
||||||
}
|
}
|
||||||
touchpad {
|
touchpad {
|
||||||
// off
|
|
||||||
tap
|
tap
|
||||||
// dwt
|
|
||||||
// dwtp
|
|
||||||
natural-scroll
|
natural-scroll
|
||||||
accel-speed 0.2
|
accel-speed 0.2
|
||||||
accel-profile "flat"
|
accel-profile "flat"
|
||||||
// scroll-method "two-finger"
|
|
||||||
// disabled-on-external-mouse
|
|
||||||
}
|
}
|
||||||
mouse {
|
mouse {
|
||||||
// off
|
|
||||||
// natural-scroll
|
|
||||||
accel-speed 0.0
|
accel-speed 0.0
|
||||||
accel-profile "flat"
|
accel-profile "flat"
|
||||||
// scroll-method "no-scroll"
|
}
|
||||||
|
touch {
|
||||||
|
map-to-output "eDP-1"
|
||||||
}
|
}
|
||||||
warp-mouse-to-focus
|
warp-mouse-to-focus
|
||||||
// focus-follows-mouse
|
workspace-auto-back-and-forth
|
||||||
}
|
|
||||||
output "eDP-1" {
|
|
||||||
// off
|
|
||||||
scale 1.2
|
|
||||||
transform "normal"
|
|
||||||
// position x=1920 y=0
|
|
||||||
}
|
|
||||||
output "Samsung Electric Company S24R65x H4TMA03291" {
|
|
||||||
position x=0 y=0
|
|
||||||
variable-refresh-rate
|
|
||||||
}
|
|
||||||
output "Philips Consumer Electronics Company 27M2N5500 UK02418033254" {
|
|
||||||
mode "2560x1440@${
|
|
||||||
if hostName == "legion"
|
|
||||||
then "144.001"
|
|
||||||
else "180.000"
|
|
||||||
}"
|
|
||||||
variable-refresh-rate
|
|
||||||
position x=0 y=0
|
|
||||||
scale 1.33
|
|
||||||
}
|
|
||||||
output "PNP(AOC) 27V2G5 0x0000026C" {
|
|
||||||
position x=1920 y=0
|
|
||||||
mode "1920x1080@74.973"
|
|
||||||
variable-refresh-rate
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cursor {
|
cursor {
|
||||||
@ -162,51 +134,62 @@ in {
|
|||||||
xcursor-size ${toString cursor.size}
|
xcursor-size ${toString cursor.size}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
prefer-no-csd
|
||||||
|
|
||||||
|
screenshot-path "${xdgPics}/screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png"
|
||||||
|
|
||||||
|
animations {
|
||||||
|
slowdown 0.5
|
||||||
|
}
|
||||||
|
|
||||||
layout {
|
layout {
|
||||||
gaps 3
|
gaps 3
|
||||||
|
|
||||||
|
// background-color "#${colors.base02}"
|
||||||
|
background-color "transparent"
|
||||||
center-focused-column "never" // "on-overflow"
|
center-focused-column "never" // "on-overflow"
|
||||||
|
default-column-width { proportion 1.0; }
|
||||||
|
|
||||||
preset-column-widths {
|
preset-column-widths {
|
||||||
proportion 0.33333
|
proportion 0.33333
|
||||||
proportion 0.66667
|
proportion 0.66667
|
||||||
}
|
}
|
||||||
|
|
||||||
background-color "transparent"
|
struts {
|
||||||
// default-column-width { proportion 0.9; }
|
left 36
|
||||||
default-column-width { proportion 0.5; }
|
right 36
|
||||||
|
}
|
||||||
|
|
||||||
tab-indicator {
|
tab-indicator {
|
||||||
active-color "#${colors.base04}"
|
active-color "#${colors.base04}"
|
||||||
inactive-color "#${colors.base03}"
|
inactive-color "#${colors.base03}"
|
||||||
corner-radius 4
|
corner-radius 6
|
||||||
gap 6
|
gap 3
|
||||||
gaps-between-tabs 3
|
gaps-between-tabs 3
|
||||||
length total-proportion=0.3
|
// length total-proportion=0.3
|
||||||
place-within-column
|
place-within-column
|
||||||
position "left"
|
position "left"
|
||||||
width 6
|
width 6
|
||||||
}
|
}
|
||||||
focus-ring {
|
focus-ring {
|
||||||
off
|
width 1
|
||||||
width 3
|
|
||||||
active-gradient from="#${colors.base0D}" to="#${colors.base0F}" angle=40 relative-to="workspace-view"
|
|
||||||
inactive-color "#${colors.base03}"
|
|
||||||
}
|
|
||||||
border {
|
|
||||||
width 3
|
|
||||||
active-color "#${colors.base0D}"
|
active-color "#${colors.base0D}"
|
||||||
inactive-color "#${colors.base03}"
|
inactive-color "#${colors.base03}"
|
||||||
|
urgent-color "#${colors.base08}"
|
||||||
}
|
}
|
||||||
struts {
|
border {
|
||||||
left 33
|
off
|
||||||
right 33
|
width 1
|
||||||
|
active-color "#${colors.base0D}"
|
||||||
|
inactive-color "#${colors.base03}"
|
||||||
|
urgent-color "#${colors.base08}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
prefer-no-csd
|
|
||||||
|
|
||||||
hotkey-overlay {
|
|
||||||
skip-at-startup
|
|
||||||
}
|
|
||||||
window-rule {
|
window-rule {
|
||||||
geometry-corner-radius 12
|
geometry-corner-radius 12
|
||||||
clip-to-geometry true
|
clip-to-geometry true
|
||||||
@ -223,31 +206,22 @@ in {
|
|||||||
active-color "#${colors.base0F}"
|
active-color "#${colors.base0F}"
|
||||||
inactive-color "#${colors.base03}"
|
inactive-color "#${colors.base03}"
|
||||||
}
|
}
|
||||||
shadow {
|
|
||||||
on
|
|
||||||
color "#${colors.base0F}"
|
|
||||||
inactive-color "#${colors.base03}"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the wallpaper stationary, rather than moving with workspaces.
|
|
||||||
layer-rule {
|
layer-rule {
|
||||||
// This is for swaybg; change for other wallpaper tools.
|
match namespace="^wpaperd.*$"
|
||||||
// Find the right namespace by running niri msg layers.
|
|
||||||
match namespace="^wallpaper$"
|
|
||||||
place-within-backdrop true
|
place-within-backdrop true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optionally, disable the workspace shadows in the overview.
|
|
||||||
overview {
|
overview {
|
||||||
workspace-shadow {
|
workspace-shadow {
|
||||||
off
|
off
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
screenshot-path "${xdgPics}/screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png"
|
layer-rule {
|
||||||
|
match namespace="waybar"
|
||||||
|
match at-startup=true
|
||||||
|
|
||||||
animations {
|
opacity 0.99 // fixes the black fill
|
||||||
slowdown 0.8
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window-rule {
|
window-rule {
|
||||||
@ -262,6 +236,7 @@ in {
|
|||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="re.sonny.Junction"
|
match app-id="re.sonny.Junction"
|
||||||
|
match app-id="com.github.hluk.copyq"
|
||||||
open-floating true
|
open-floating true
|
||||||
open-focused true
|
open-focused true
|
||||||
}
|
}
|
||||||
@ -283,6 +258,7 @@ in {
|
|||||||
block-out-from "screencast"
|
block-out-from "screencast"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
binds {
|
binds {
|
||||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
|
|
||||||
@ -294,6 +270,7 @@ in {
|
|||||||
Mod+Shift+T { set-column-width "67%"; }
|
Mod+Shift+T { set-column-width "67%"; }
|
||||||
Mod+V { toggle-column-tabbed-display; }
|
Mod+V { toggle-column-tabbed-display; }
|
||||||
Mod+G { switch-focus-between-floating-and-tiling; }
|
Mod+G { switch-focus-between-floating-and-tiling; }
|
||||||
|
Mod+X { spawn "pkill" "-SIGUSR1" "waybar"; } // hide/show waybar
|
||||||
|
|
||||||
Mod+Ctrl+Comma { consume-or-expel-window-left; }
|
Mod+Ctrl+Comma { consume-or-expel-window-left; }
|
||||||
Mod+Ctrl+Period { consume-or-expel-window-right; }
|
Mod+Ctrl+Period { consume-or-expel-window-right; }
|
||||||
@ -319,7 +296,7 @@ in {
|
|||||||
Mod+BackSpace repeat=false { spawn "${launcher}"; }
|
Mod+BackSpace repeat=false { spawn "${launcher}"; }
|
||||||
Mod+A repeat=false { spawn "${launcher}"; }
|
Mod+A repeat=false { spawn "${launcher}"; }
|
||||||
Mod+Ctrl+L repeat=false { spawn "${lockscreen}"; }
|
Mod+Ctrl+L repeat=false { spawn "${lockscreen}"; }
|
||||||
Mod+Ctrl+V repeat=false { spawn "copyq" "toggle"; }
|
Mod+Ctrl+V repeat=false { spawn "copyq" "menu"; }
|
||||||
|
|
||||||
Mod+Shift+W repeat=false { spawn "walker" "-m" "windows"; }
|
Mod+Shift+W repeat=false { spawn "walker" "-m" "windows"; }
|
||||||
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
osConfig,
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkDefault getExe;
|
|
||||||
inherit (config.lib.stylix) colors;
|
|
||||||
inherit (osConfig.networking) hostName;
|
|
||||||
ifLaptop = mkIf (hostName != "dunamis");
|
|
||||||
in {
|
|
||||||
imports = with inputs; [
|
|
||||||
walker.homeManagerModules.default
|
|
||||||
];
|
|
||||||
options = config.desktop.niri.enable {
|
|
||||||
# programs.fuzzel = import ./fuzzel {inherit config mkDefault;};
|
|
||||||
programs.walker = import ./walker {inherit config inputs pkgs;};
|
|
||||||
programs.waybar = import ./waybar {inherit colors config getExe ifLaptop pkgs;};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
mkDefault,
|
lib,
|
||||||
}: {
|
}: {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -15,7 +15,7 @@
|
|||||||
match-mode = "fuzzy";
|
match-mode = "fuzzy";
|
||||||
icon-theme = config.dconf.settings."org/gnome/desktop/interface".icon-theme;
|
icon-theme = config.dconf.settings."org/gnome/desktop/interface".icon-theme;
|
||||||
};
|
};
|
||||||
border = mkDefault {
|
border = lib.mkDefault {
|
||||||
width = 3;
|
width = 3;
|
||||||
radius = 12;
|
radius = 12;
|
||||||
};
|
};
|
||||||
|
@ -146,32 +146,30 @@
|
|||||||
h_align = "center";
|
h_align = "center";
|
||||||
v_align = "center";
|
v_align = "center";
|
||||||
box = {
|
box = {
|
||||||
width = 450;
|
|
||||||
h_align = "center";
|
h_align = "center";
|
||||||
v_align = "center";
|
v_align = "center";
|
||||||
# spacing = 12;
|
|
||||||
orientation = "vertical";
|
orientation = "vertical";
|
||||||
search = {
|
search = {
|
||||||
margins = {
|
|
||||||
start = 8;
|
|
||||||
top = 8;
|
|
||||||
end = 8;
|
|
||||||
bottom = 0;
|
|
||||||
};
|
|
||||||
h_align = "top";
|
h_align = "top";
|
||||||
|
margins = {
|
||||||
|
start = 3;
|
||||||
|
top = 3;
|
||||||
|
end = 3;
|
||||||
|
bottom = 3;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
scroll = {
|
scroll = {
|
||||||
overlay_scrolling = true;
|
overlay_scrolling = true;
|
||||||
list = {
|
list = {
|
||||||
margins = {
|
margins = {
|
||||||
bottom = 8;
|
bottom = 3;
|
||||||
top = 4;
|
top = 0;
|
||||||
start = 8;
|
start = 3;
|
||||||
end = 8;
|
end = 3;
|
||||||
};
|
};
|
||||||
item = {
|
item = {
|
||||||
icon.theme = "${config.gtk.iconTheme.name}";
|
icon.theme = "${config.gtk.iconTheme.name}";
|
||||||
spacing = 4;
|
spacing = 3;
|
||||||
activation_label = {
|
activation_label = {
|
||||||
x_align = 0.5;
|
x_align = 0.5;
|
||||||
y_align = 0.5;
|
y_align = 0.5;
|
||||||
@ -232,8 +230,8 @@
|
|||||||
#window {
|
#window {
|
||||||
background: @base00;
|
background: @base00;
|
||||||
color: @base05;
|
color: @base05;
|
||||||
border-radius: 20px;
|
border-radius: 12px;
|
||||||
border: 3px solid @base0D;
|
border: 1px solid @base0D;
|
||||||
}
|
}
|
||||||
|
|
||||||
#box {
|
#box {
|
||||||
@ -242,7 +240,7 @@
|
|||||||
|
|
||||||
#search {
|
#search {
|
||||||
background: @base01;
|
background: @base01;
|
||||||
border-radius: 12px 12px 6px 6px;
|
border-radius: 9px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,12 +249,12 @@
|
|||||||
#typeahead {
|
#typeahead {
|
||||||
background: none;
|
background: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-radius: 12px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#input > *:first-child,
|
#input > *:first-child,
|
||||||
#typeahead > *:first-child {
|
#typeahead > *:first-child {
|
||||||
margin-right: 12px;
|
margin-right: 3px;
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,8 +267,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#list {
|
#list {
|
||||||
padding: 8px;
|
padding: 3px;
|
||||||
border-radius: 6px 6px 12px 12px;
|
border-radius: 9px;
|
||||||
background: @base01;
|
background: @base01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,7 +279,7 @@
|
|||||||
child:selected,
|
child:selected,
|
||||||
child:hover {
|
child:hover {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-radius: 8px;
|
border-radius: 6px;
|
||||||
background: @base02;
|
background: @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,84 +1,54 @@
|
|||||||
{
|
{
|
||||||
colors,
|
|
||||||
config,
|
config,
|
||||||
getExe,
|
lib,
|
||||||
ifLaptop,
|
osConfig,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
launcher,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
inherit (config.lib.stylix) colors;
|
||||||
|
|
||||||
|
ifLaptop = lib.mkIf (osConfig.networking.hostName != "dunamis");
|
||||||
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
target = "graphical-session.target";
|
target = "graphical-session.target";
|
||||||
};
|
};
|
||||||
settings = {
|
settings.bottom = {
|
||||||
bar-0 = {
|
|
||||||
# layer = "top";
|
|
||||||
position = "bottom";
|
position = "bottom";
|
||||||
height = 24;
|
height = 33;
|
||||||
spacing = 6;
|
spacing = 0;
|
||||||
margin-left = 33 + 3;
|
# margin-left = 36 + 3;
|
||||||
margin-right = 33 + 3;
|
# margin-right = 36 + 3;
|
||||||
margin-bottom = 3;
|
# margin-bottom = 3;
|
||||||
reload_style_on_change = true;
|
|
||||||
modules-left = [
|
modules-left = [
|
||||||
"niri/language"
|
"custom/launcher"
|
||||||
"niri/workspaces"
|
|
||||||
"wlr/taskbar"
|
"wlr/taskbar"
|
||||||
|
# "privacy"
|
||||||
];
|
];
|
||||||
modules-center = ["clock"];
|
|
||||||
modules-right = [
|
modules-right = [
|
||||||
(ifLaptop "group/laptop")
|
"niri/workspaces"
|
||||||
"wireplumber"
|
"niri/language"
|
||||||
"tray"
|
|
||||||
"privacy"
|
|
||||||
(ifLaptop "power-profiles-daemon")
|
|
||||||
"idle_inhibitor"
|
|
||||||
"custom/notification"
|
|
||||||
];
|
];
|
||||||
"niri/workspaces" = {
|
"niri/workspaces" = {
|
||||||
format = "{index}";
|
format = "{index}";
|
||||||
format-icons = {
|
|
||||||
"1" = "൧";
|
|
||||||
"2" = "൨";
|
|
||||||
"3" = "൩";
|
|
||||||
"4" = "൪";
|
|
||||||
"5" = "൫";
|
|
||||||
"6" = "൬";
|
|
||||||
"7" = "൭";
|
|
||||||
"8" = "൮";
|
|
||||||
"9" = "൯";
|
|
||||||
"10" = "൰";
|
|
||||||
general = "";
|
|
||||||
web = "";
|
|
||||||
chat = "";
|
|
||||||
code = "";
|
|
||||||
uni = "";
|
|
||||||
games = "";
|
|
||||||
system = "";
|
|
||||||
media = "";
|
|
||||||
tray = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
"niri/language" = {
|
"niri/language" = {
|
||||||
format = "{}";
|
format = "{}";
|
||||||
format-en = "🇺🇸";
|
format-en = "🇺🇸";
|
||||||
format-uk = "🇺🇦";
|
format-uk = "🇺🇦";
|
||||||
};
|
};
|
||||||
"custom/separator" = {
|
|
||||||
format = "";
|
|
||||||
interval = "once";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
"group/laptop" = {
|
"group/laptop" = {
|
||||||
orientation = "inherit";
|
orientation = "inherit";
|
||||||
modules = [
|
modules = [
|
||||||
"battery"
|
|
||||||
"backlight"
|
"backlight"
|
||||||
|
"battery"
|
||||||
|
"power-profiles-daemon"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"backlight" = {
|
backlight = {
|
||||||
format = "{icon} {percent}%";
|
format = "{percent}% {icon}";
|
||||||
format-icons = [
|
format-icons = [
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
@ -89,22 +59,22 @@
|
|||||||
""
|
""
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"idle_inhibitor" = {
|
idle_inhibitor = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-icons = {
|
format-icons = {
|
||||||
activated = "";
|
activated = "";
|
||||||
deactivated = "";
|
deactivated = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"tray" = {
|
tray = {
|
||||||
icon-size = 20;
|
icon-size = 16;
|
||||||
spacing = 6;
|
spacing = 6;
|
||||||
};
|
};
|
||||||
"clock" = {
|
clock = {
|
||||||
interval = 1;
|
interval = 1;
|
||||||
format = "{:%B %d - %H:%M - %A}";
|
format = "{:%R}";
|
||||||
tooltip = false;
|
tooltip = true;
|
||||||
# tooltip-format = "{%y.%m.%d - %B %d, %A}";
|
tooltip-format = "{:%B %d, %A}";
|
||||||
};
|
};
|
||||||
battery = {
|
battery = {
|
||||||
states = {
|
states = {
|
||||||
@ -112,32 +82,36 @@
|
|||||||
warning = 30;
|
warning = 30;
|
||||||
critical = 15;
|
critical = 15;
|
||||||
};
|
};
|
||||||
format = "{icon} {capacity}%";
|
format = "{capacity}% {icon}";
|
||||||
format-full = " {capacity}%";
|
format-full = "{capacity}% ";
|
||||||
format-charging = " {capacity}%";
|
format-charging = "{capacity}% ";
|
||||||
format-plugged = " {capacity}%";
|
format-plugged = "{capacity}% ";
|
||||||
format-alt = "{icon} {time}";
|
format-alt = "{icon} {time}";
|
||||||
format-icons = ["" "" "" "" "" "" "" "" "" ""];
|
format-icons = ["" "" "" "" "" "" "" "" "" ""];
|
||||||
};
|
};
|
||||||
mpris = {
|
memory = {
|
||||||
format = "{player_icon} {dynamic}";
|
format = "{used:0.1f}G ";
|
||||||
format-paused = "{status_icon} <i>{dynamic}</i>";
|
tooltip-format = ''
|
||||||
playing-len = 30;
|
RAM: {used:0.1f}G/{total:0.1f}G ({percentage}%)
|
||||||
playing-paused = 30;
|
Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G ({swapPercentage}%)'';
|
||||||
player-icons = {
|
|
||||||
default = "▶";
|
|
||||||
mpv = "🎵";
|
|
||||||
};
|
};
|
||||||
status-icons = {paused = "⏸";};
|
network = {
|
||||||
|
format = "{bandwidthDownBits} | {bandwidthUpBits} ";
|
||||||
|
interval = 3;
|
||||||
|
tooltip = false;
|
||||||
};
|
};
|
||||||
"upower" = {
|
cpu = {
|
||||||
|
format = "{usage}% ";
|
||||||
|
interval = 3;
|
||||||
|
};
|
||||||
|
upower = {
|
||||||
icon-size = 16;
|
icon-size = 16;
|
||||||
format = "{percentage}";
|
format = "{percentage}";
|
||||||
hide-if-empty = true;
|
hide-if-empty = true;
|
||||||
tooltip = true;
|
tooltip = true;
|
||||||
tooltip-spacing = 20;
|
tooltip-spacing = 20;
|
||||||
};
|
};
|
||||||
"power-profiles-daemon" = {
|
power-profiles-daemon = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||||
tooltip = true;
|
tooltip = true;
|
||||||
@ -148,14 +122,19 @@
|
|||||||
power-saver = "";
|
power-saver = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"wireplumber" = {
|
wireplumber = {
|
||||||
scroll-step = 3;
|
scroll-step = 3;
|
||||||
format = "{icon} {volume}%";
|
format = "{volume}% {icon}";
|
||||||
format-muted = "";
|
format-muted = "";
|
||||||
format-icons = ["" "" ""];
|
format-icons = ["" "" ""];
|
||||||
on-click = getExe pkgs.pwvucontrol;
|
on-click = lib.getExe pkgs.pwvucontrol;
|
||||||
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||||
};
|
};
|
||||||
|
"custom/launcher" = {
|
||||||
|
format = "";
|
||||||
|
on-click = launcher;
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
"custom/notification" = {
|
"custom/notification" = {
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
@ -173,7 +152,7 @@
|
|||||||
escape = true;
|
escape = true;
|
||||||
};
|
};
|
||||||
"privacy" = {
|
"privacy" = {
|
||||||
icon-spacing = 2;
|
icon-spacing = 0;
|
||||||
icon-size = 16;
|
icon-size = 16;
|
||||||
transition-duration = 250;
|
transition-duration = 250;
|
||||||
screenshare = {
|
screenshare = {
|
||||||
@ -188,143 +167,371 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
"wlr/taskbar" = {
|
"wlr/taskbar" = {
|
||||||
format = "{icon}";
|
format = "{icon} {name}";
|
||||||
icon-size = 20;
|
icon-size = 16;
|
||||||
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
||||||
tooltip-format = "{title}";
|
tooltip-format = "{title}";
|
||||||
on-click = "activate";
|
on-click = "activate";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
settings.top = {
|
||||||
|
position = "top";
|
||||||
|
height = 33;
|
||||||
|
spacing = 0;
|
||||||
|
# margin-left = 36 + 3;
|
||||||
|
# margin-right = 36 + 3;
|
||||||
|
# margin-top = 3;
|
||||||
|
modules-left = [
|
||||||
|
"custom/notification"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
modules-center = ["clock"];
|
||||||
|
modules-right = [
|
||||||
|
"privacy"
|
||||||
|
"network"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
"wireplumber"
|
||||||
|
(ifLaptop "group/laptop")
|
||||||
|
# "tray"
|
||||||
|
"idle_inhibitor"
|
||||||
|
];
|
||||||
|
"niri/workspaces" = {
|
||||||
|
format = "{index}";
|
||||||
};
|
};
|
||||||
style = ''
|
"niri/language" = {
|
||||||
@define-color base00 #${colors.base00};
|
format = "{}";
|
||||||
@define-color base01 #${colors.base01};
|
format-en = "🇺🇸";
|
||||||
@define-color base02 #${colors.base02};
|
format-uk = "🇺🇦";
|
||||||
@define-color base03 #${colors.base03};
|
};
|
||||||
@define-color base04 #${colors.base04};
|
"group/laptop" = {
|
||||||
@define-color base05 #${colors.base05};
|
orientation = "inherit";
|
||||||
@define-color base06 #${colors.base06};
|
modules = [
|
||||||
@define-color base07 #${colors.base07};
|
"backlight"
|
||||||
@define-color base08 #${colors.base08};
|
"battery"
|
||||||
@define-color base09 #${colors.base09};
|
"power-profiles-daemon"
|
||||||
@define-color base0A #${colors.base0A};
|
];
|
||||||
@define-color base0B #${colors.base0B};
|
};
|
||||||
@define-color base0C #${colors.base0C};
|
backlight = {
|
||||||
@define-color base0D #${colors.base0D};
|
format = "{percent}% {icon}";
|
||||||
@define-color base0E #${colors.base0E};
|
format-icons = [
|
||||||
@define-color base0F #${colors.base0F};
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
idle_inhibitor = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
activated = "";
|
||||||
|
deactivated = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
icon-size = 16;
|
||||||
|
spacing = 6;
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
interval = 1;
|
||||||
|
format = "{:%R}";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-format = "{:%B %d, %A}";
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
good = 95;
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{capacity}% {icon}";
|
||||||
|
format-full = "{capacity}% ";
|
||||||
|
format-charging = "{capacity}% ";
|
||||||
|
format-plugged = "{capacity}% ";
|
||||||
|
format-alt = "{icon} {time}";
|
||||||
|
format-icons = ["" "" "" "" "" "" "" "" "" ""];
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
format = "{used:0.1f}G ";
|
||||||
|
tooltip-format = ''
|
||||||
|
RAM: {used:0.1f}G/{total:0.1f}G ({percentage}%)
|
||||||
|
Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G ({swapPercentage}%)'';
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format = "{bandwidthDownBits} | {bandwidthUpBits} ";
|
||||||
|
interval = 3;
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = "{usage}% ";
|
||||||
|
interval = 3;
|
||||||
|
};
|
||||||
|
upower = {
|
||||||
|
icon-size = 16;
|
||||||
|
format = "{percentage}";
|
||||||
|
hide-if-empty = true;
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-spacing = 20;
|
||||||
|
};
|
||||||
|
power-profiles-daemon = {
|
||||||
|
format = "{icon}";
|
||||||
|
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||||
|
tooltip = true;
|
||||||
|
format-icons = {
|
||||||
|
default = "";
|
||||||
|
performance = "";
|
||||||
|
balanced = "";
|
||||||
|
power-saver = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wireplumber = {
|
||||||
|
scroll-step = 3;
|
||||||
|
format = "{volume}% {icon}";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = ["" "" ""];
|
||||||
|
on-click = lib.getExe pkgs.pwvucontrol;
|
||||||
|
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||||
|
};
|
||||||
|
"custom/launcher" = {
|
||||||
|
format = "";
|
||||||
|
on-click = launcher;
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"custom/notification" = {
|
||||||
|
tooltip = false;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
notification = "";
|
||||||
|
none = "";
|
||||||
|
dnd-notification = "";
|
||||||
|
dnd-none = "";
|
||||||
|
};
|
||||||
|
return-type = "json";
|
||||||
|
exec-if = "which swaync-client";
|
||||||
|
exec = "swaync-client -swb";
|
||||||
|
on-click = "swaync-client -t -sw";
|
||||||
|
on-click-right = "swaync-client -d -sw";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
"privacy" = {
|
||||||
|
icon-spacing = 0;
|
||||||
|
icon-size = 16;
|
||||||
|
transition-duration = 250;
|
||||||
|
screenshare = {
|
||||||
|
type = "screenshare";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-icon-size = 24;
|
||||||
|
};
|
||||||
|
audio-in = {
|
||||||
|
type = "audio-in";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-icon-size = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"wlr/taskbar" = {
|
||||||
|
format = "{icon} {name}";
|
||||||
|
icon-size = 18;
|
||||||
|
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
||||||
|
tooltip-format = "{title}";
|
||||||
|
on-click = "activate";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: figure out magic waybar css styling (does it pick up `~/.config/gtk-3.0/gtk.css` ?)
|
||||||
|
style =
|
||||||
|
# css
|
||||||
|
''
|
||||||
|
@define-color base00 #${colors.base00}; @define-color base08 #${colors.base08};
|
||||||
|
@define-color base01 #${colors.base01}; @define-color base09 #${colors.base09};
|
||||||
|
@define-color base02 #${colors.base02}; @define-color base0A #${colors.base0A};
|
||||||
|
@define-color base03 #${colors.base03}; @define-color base0B #${colors.base0B};
|
||||||
|
@define-color base04 #${colors.base04}; @define-color base0C #${colors.base0C};
|
||||||
|
@define-color base05 #${colors.base05}; @define-color base0D #${colors.base0D};
|
||||||
|
@define-color base06 #${colors.base06}; @define-color base0E #${colors.base0E};
|
||||||
|
@define-color base07 #${colors.base07}; @define-color base0F #${colors.base0F};
|
||||||
|
|
||||||
* {
|
* {
|
||||||
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
|
/* all: unset; */
|
||||||
|
font-family: Symbols Nerd Font, FontAwesome, ${config.stylix.fonts.sansSerif.name};
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 100%;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
window#waybar {
|
|
||||||
background-color: transparent;
|
.modules-left, .modules-center, .modules-right, window#waybar {
|
||||||
color: @base05;
|
|
||||||
}
|
|
||||||
.modules-center {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
.mpris.stopped {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
.modules-left,
|
|
||||||
.modules-center,
|
|
||||||
.modules-right {
|
|
||||||
/* border-bottom-left-radius: 12px;
|
|
||||||
border-bottom-right-radius: 12px;
|
|
||||||
border-top-left-radius: 0px;
|
|
||||||
border-top-right-radius: 0px; */
|
|
||||||
background-color: @base00;
|
background-color: @base00;
|
||||||
border-radius: 24px;
|
|
||||||
border: 3px solid @base0D;
|
|
||||||
color: @base05;
|
color: @base05;
|
||||||
padding: 0 0.4em;
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* for leftmost modules */
|
||||||
|
.modules-left, .modules-center, .modules-right {
|
||||||
|
padding-left: 3px;
|
||||||
|
background-color: @base00;
|
||||||
|
color: @base05;
|
||||||
|
}
|
||||||
|
window#bottom.modules-center {
|
||||||
|
background-color: transparent
|
||||||
}
|
}
|
||||||
tooltip {
|
tooltip {
|
||||||
background: @base01;
|
background: @base01;
|
||||||
border: 1px solid @base0E;
|
border: 1px solid @base0D;
|
||||||
|
border-radius: 16px;
|
||||||
|
padding: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip label {
|
tooltip label {
|
||||||
color: @base05;
|
color: @base05;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
box-shadow: inset 0 -3px transparent;
|
box-shadow: inset 0 -3px transparent;
|
||||||
border-radius: 16px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
box-shadow: inset 0 -3px transparent;
|
box-shadow: inset 0 -3px transparent;
|
||||||
}
|
}
|
||||||
#mode {
|
|
||||||
background-color: rgba(0, 0, 0, 0.2);
|
|
||||||
box-shadow: inset 0 -3px @base05;
|
|
||||||
}
|
|
||||||
#battery,
|
|
||||||
#backlight,
|
#backlight,
|
||||||
/* #workspaces,
|
#battery,
|
||||||
#taskbar,
|
|
||||||
#privacy, */
|
|
||||||
#taskbar button,
|
|
||||||
#language,
|
|
||||||
#clock,
|
#clock,
|
||||||
#battery,
|
#cpu,
|
||||||
#backlight,
|
#custom-launcher,
|
||||||
|
#custom-notification,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#language,
|
||||||
|
#memory,
|
||||||
|
#network,
|
||||||
|
#power-profiles-daemon,
|
||||||
|
#privacy,
|
||||||
|
#privacy-item,
|
||||||
|
#taskbar button,
|
||||||
|
#taskbar,
|
||||||
|
#tray button,
|
||||||
|
#tray,
|
||||||
#wireplumber,
|
#wireplumber,
|
||||||
#workspaces button,
|
#workspaces button,
|
||||||
|
#workspaces {
|
||||||
|
all: unset;
|
||||||
|
border-radius: 9px;
|
||||||
|
background-color: @base01;
|
||||||
|
margin: 3px 3px 3px 0;
|
||||||
|
padding: 0 0.42em;
|
||||||
|
min-width: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#custom-launcher,
|
||||||
#custom-notification,
|
#custom-notification,
|
||||||
#idle_inhibitor,
|
#idle_inhibitor,
|
||||||
#power-profiles-daemon,
|
#power-profiles-daemon,
|
||||||
#privacy-item,
|
#wireplumber {
|
||||||
#custom-separator {
|
padding: 0 0.5em;
|
||||||
|
}
|
||||||
|
#custom-notification,
|
||||||
|
#power-profiles-daemon {
|
||||||
|
min-width: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy,
|
||||||
|
#taskbar,
|
||||||
|
#workspaces {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item {
|
||||||
padding: 0 0.3em;
|
padding: 0 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#taskbar button {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
#taskbar button,
|
||||||
|
#tray button,
|
||||||
|
#workspaces button {
|
||||||
|
border-radius: 6px;
|
||||||
|
min-width: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: @base09;
|
||||||
|
color: @base00;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.performance {
|
||||||
|
background-color: @base0D;
|
||||||
|
color: @base00;
|
||||||
|
}
|
||||||
|
|
||||||
|
#power-profiles-daemon.power-saver {
|
||||||
|
background-color: @base0A;
|
||||||
|
color: @base00;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.audio-in {
|
||||||
|
background-color: @base0E;
|
||||||
|
color: @base00;
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#privacy-item.screenshare {
|
||||||
|
background-color: @base0C;
|
||||||
|
color: @base00;
|
||||||
|
margin: 3px 0 3px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#taskbar button,
|
||||||
#tray button {
|
#tray button {
|
||||||
padding: 0 0.3em;
|
padding: 0 0.4em;
|
||||||
margin: 0 0.2em;
|
margin: 3px;
|
||||||
}
|
}
|
||||||
#workspaces button.active {
|
|
||||||
color: @base0D;
|
#workspaces button.active,
|
||||||
|
#taskbar button.active {
|
||||||
|
background-color: @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover,
|
||||||
|
#workspaces button.active:hover,
|
||||||
|
#taskbar button.active:hover,
|
||||||
#taskbar button:hover {
|
#taskbar button:hover {
|
||||||
box-shadow: transparent;
|
background-color: @base0D;
|
||||||
|
color: @base00;
|
||||||
}
|
}
|
||||||
#taskbar.empty,
|
|
||||||
window#empty {
|
#taskbar.empty {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
#battery.critical:not(.charging) {
|
|
||||||
color: @base09;
|
|
||||||
animation-name: blink;
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
animation-timing-function: steps(12);
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
|
||||||
#power-profiles-daemon.performance {
|
|
||||||
color: @base0D;
|
|
||||||
}
|
|
||||||
#power-profiles-daemon.balanced {
|
|
||||||
color: @base0B;
|
|
||||||
}
|
|
||||||
#power-profiles-daemon.power-saver {
|
|
||||||
color: @base0A;
|
|
||||||
}
|
|
||||||
label:focus {
|
|
||||||
background-color: #000000;
|
|
||||||
}
|
|
||||||
#tray > .passive {
|
|
||||||
-gtk-icon-effect: dim;
|
|
||||||
}
|
|
||||||
#tray > .needs-attention {
|
#tray > .needs-attention {
|
||||||
-gtk-icon-effect: highlight;
|
-gtk-icon-effect: highlight;
|
||||||
background-color: @base08;
|
background-color: @base08;
|
||||||
}
|
}
|
||||||
#privacy-item.screenshare {
|
|
||||||
color: @base0C;
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
}
|
}
|
||||||
#privacy-item.audio-in {
|
|
||||||
color: @base0E;
|
/* #workspaces button.active {
|
||||||
|
color: @base00;
|
||||||
|
background-color: @base0D;
|
||||||
|
} */
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,26 @@
|
|||||||
{
|
{
|
||||||
getExe,
|
lib,
|
||||||
perSystem,
|
osConfig,
|
||||||
pkgs,
|
pkgs,
|
||||||
lockscreen,
|
lockscreen,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
swaync = import ./swaync;
|
lib.attrsets.recursiveUpdate {
|
||||||
|
blueman-applet.enable = osConfig.services.blueman.enable;
|
||||||
|
copyq.enable = true;
|
||||||
|
gammastep.enable = true;
|
||||||
|
gnome-keyring.enable = true;
|
||||||
|
hypridle.enable = true;
|
||||||
|
kanshi = import ./kanshi;
|
||||||
network-manager-applet.enable = true;
|
network-manager-applet.enable = true;
|
||||||
playerctld.enable = true;
|
playerctld.enable = true;
|
||||||
|
swaync = import ./swaync;
|
||||||
|
swayosd.enable = true;
|
||||||
|
udiskie.enable = true;
|
||||||
wpaperd.enable = true;
|
wpaperd.enable = true;
|
||||||
copyq = {
|
}
|
||||||
enable = true;
|
{
|
||||||
package = perSystem.nixpkgs-stable.copyq;
|
|
||||||
};
|
|
||||||
gnome-keyring = {
|
|
||||||
enable = true;
|
|
||||||
components = ["secrets"];
|
|
||||||
};
|
|
||||||
gammastep = {
|
gammastep = {
|
||||||
enable = true;
|
|
||||||
provider = "manual";
|
provider = "manual";
|
||||||
latitude = 49.6;
|
latitude = 49.6;
|
||||||
longitude = 36.1;
|
longitude = 36.1;
|
||||||
@ -28,19 +30,8 @@
|
|||||||
night = 3000;
|
night = 3000;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swayosd = {
|
gnome-keyring.components = ["secrets"];
|
||||||
enable = true;
|
hypridle.settings = {
|
||||||
topMargin = 0.8;
|
|
||||||
};
|
|
||||||
udiskie = {
|
|
||||||
enable = true;
|
|
||||||
automount = false;
|
|
||||||
notify = true;
|
|
||||||
tray = "auto";
|
|
||||||
};
|
|
||||||
hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
general = {
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
before_sleep_cmd = "loginctl lock-session";
|
||||||
lock_cmd = "pidof ${lockscreen} || ${lockscreen}";
|
lock_cmd = "pidof ${lockscreen} || ${lockscreen}";
|
||||||
@ -53,9 +44,14 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 601;
|
timeout = 601;
|
||||||
on-timeout = getExe pkgs.niri + " msg action power-off-monitors";
|
on-timeout = lib.getExe pkgs.niri + " msg action power-off-monitors";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
swayosd.topMargin = 0.8;
|
||||||
|
udiskie = {
|
||||||
|
automount = false;
|
||||||
|
notify = true;
|
||||||
|
tray = "auto";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
113
modules/home/desktop/niri/services/kanshi/default.nix
Normal file
113
modules/home/desktop/niri/services/kanshi/default.nix
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
settings = let
|
||||||
|
main = "Philips Consumer Electronics Company 27M2N5500 UK02418033254";
|
||||||
|
second = "Samsung Electric Company S24R65x H4TMA03291";
|
||||||
|
builtin = {
|
||||||
|
eldrid = "Chimei Innolux Corporation 0x1406 Unknown";
|
||||||
|
sarien = "LG Display 0x068B Unknown";
|
||||||
|
# morphius =;
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
output = {
|
||||||
|
criteria = main;
|
||||||
|
position = "0,0";
|
||||||
|
scale = 4.0 / 3.0;
|
||||||
|
adaptiveSync = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = {
|
||||||
|
criteria = second;
|
||||||
|
mode = "1920x1080@74.973";
|
||||||
|
adaptiveSync = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = {
|
||||||
|
criteria = builtin.eldrid;
|
||||||
|
position = "0,0";
|
||||||
|
scale = 1.2;
|
||||||
|
# adaptiveSync = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = {
|
||||||
|
criteria = builtin.sarien;
|
||||||
|
position = "0,0";
|
||||||
|
scale = 1.25;
|
||||||
|
# adaptiveSync = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "dunamis";
|
||||||
|
outputs = [
|
||||||
|
{criteria = main;}
|
||||||
|
{
|
||||||
|
criteria = second;
|
||||||
|
position = "1920,180";
|
||||||
|
scale = 1.2;
|
||||||
|
# transform = "90";
|
||||||
|
adaptiveSync = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "eldrid-docked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = main;
|
||||||
|
position = "0,0";
|
||||||
|
scale = 4.0 / 3.0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = builtin.eldrid;
|
||||||
|
position = "1920,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "eldrid-undocked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = builtin.eldrid;
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "sarien-docked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = main;
|
||||||
|
position = "0,0";
|
||||||
|
scale = 4.0 / 3.0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = builtin.sarien;
|
||||||
|
position = "1920,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "sarien-undocked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = builtin.sarien;
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
@ -17,17 +17,17 @@
|
|||||||
control-center-layer = "overlay";
|
control-center-layer = "overlay";
|
||||||
|
|
||||||
# Notification settings
|
# Notification settings
|
||||||
positionX = "right";
|
positionX = "left";
|
||||||
positionY = "top";
|
positionY = "top";
|
||||||
notification-2fa-action = true;
|
notification-2fa-action = true;
|
||||||
notification-inline-replies = false;
|
notification-inline-replies = false;
|
||||||
notification-icon-size = 32;
|
notification-icon-size = 48;
|
||||||
notification-body-image-height = 100;
|
notification-body-image-height = 100;
|
||||||
notification-body-image-width = 200;
|
notification-body-image-width = 200;
|
||||||
notification-window-width = 400;
|
notification-window-width = 400;
|
||||||
|
|
||||||
# Control center settings
|
# Control center settings
|
||||||
control-center-positionX = "right";
|
control-center-positionX = "left";
|
||||||
control-center-positionY = "top";
|
control-center-positionY = "top";
|
||||||
control-center-width = 500;
|
control-center-width = 500;
|
||||||
control-center-exclusive-zone = true;
|
control-center-exclusive-zone = true;
|
||||||
@ -59,8 +59,12 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# TODO: disable stylix, redo everything
|
||||||
style = ''
|
style = ''
|
||||||
/*** Global ***/
|
* {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
progress,
|
progress,
|
||||||
progressbar,
|
progressbar,
|
||||||
trough {
|
trough {
|
||||||
@ -70,20 +74,19 @@
|
|||||||
.app-icon,
|
.app-icon,
|
||||||
.image {
|
.image {
|
||||||
-gtk-icon-effect: none;
|
-gtk-icon-effect: none;
|
||||||
|
padding-right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification-action {
|
.notification-action {
|
||||||
border-radius: 12px;
|
border-radius: 9px;
|
||||||
margin: 0.5rem;
|
margin: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.close-button {
|
.close-button {
|
||||||
margin: 24px;
|
margin: 12px;
|
||||||
padding: 0.2rem;
|
border-radius: 6px;
|
||||||
border-radius: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** Notifications ***/
|
|
||||||
.notification-group.collapsed
|
.notification-group.collapsed
|
||||||
.notification-row:not(:last-child)
|
.notification-row:not(:last-child)
|
||||||
.notification-action,
|
.notification-action,
|
||||||
@ -103,21 +106,21 @@
|
|||||||
.notification.normal,
|
.notification.normal,
|
||||||
.notification.critical,
|
.notification.critical,
|
||||||
.control-center {
|
.control-center {
|
||||||
margin: 16px;
|
border-radius: 12px;
|
||||||
border-radius: 7px;
|
margin: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.floating-notifications,
|
.floating-notifications,
|
||||||
.notification-content {
|
.notification-content {
|
||||||
border-radius: 7px;
|
padding: 0.5rem;
|
||||||
|
margin: 3px;
|
||||||
|
border-radius: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-center-list {
|
.control-center-list {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** Widgets ***/
|
|
||||||
/* Title widget */
|
|
||||||
.widget-title {
|
.widget-title {
|
||||||
margin: 0.5rem;
|
margin: 0.5rem;
|
||||||
}
|
}
|
||||||
@ -127,11 +130,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.widget-title > button {
|
.widget-title > button {
|
||||||
border-radius: 16px;
|
border-radius: 9px;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DND Widget */
|
|
||||||
.widget-dnd {
|
.widget-dnd {
|
||||||
margin: 0.5rem;
|
margin: 0.5rem;
|
||||||
}
|
}
|
||||||
@ -141,23 +143,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.widget-dnd > switch {
|
.widget-dnd > switch {
|
||||||
border-radius: 16px;
|
border-radius: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-dnd > switch slider {
|
.widget-dnd > switch slider {
|
||||||
border-radius: 16px;
|
margin: 3px;
|
||||||
padding: 0.25rem;
|
border-radius: 6px;
|
||||||
|
padding: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mpris widget */
|
|
||||||
.widget-mpris .widget-mpris-player {
|
.widget-mpris .widget-mpris-player {
|
||||||
border-radius: 16px;
|
border-radius: 12px;
|
||||||
margin: 0.5rem;
|
margin: 0.5rem;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
|
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
|
||||||
border-radius: 16px;
|
border-radius: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player .widget-mpris-title {
|
.widget-mpris .widget-mpris-player .widget-mpris-title {
|
||||||
@ -169,9 +171,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.widget-mpris .widget-mpris-player > box > button {
|
.widget-mpris .widget-mpris-player > box > button {
|
||||||
border: 1px solid transparent;
|
border-radius: 6px;
|
||||||
border-radius: 16px;
|
padding: 3px;
|
||||||
padding: 0.25rem;
|
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -62,23 +62,25 @@ in {
|
|||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
language-server = {
|
language-server = {
|
||||||
clangd.command = "${pkgs.clang-tools}/bin/clangd";
|
|
||||||
# markdown-oxide.command = getExe pkgs.markdown-oxide;
|
# markdown-oxide.command = getExe pkgs.markdown-oxide;
|
||||||
nil.command = getExe pkgs.nil;
|
|
||||||
# nixd.command = getExe pkgs.nixd;
|
# nixd.command = getExe pkgs.nixd;
|
||||||
# pyright.command = getExe pkgs.pyright;
|
# pyright = {
|
||||||
# pyright.args = ["-"];
|
# command = getExe pkgs.pyright;
|
||||||
ruff.command = getExe pkgs.ruff;
|
# args = ["-"];
|
||||||
ruff.args = ["server"];
|
# };
|
||||||
# rust-analyzer.command = getExe pkgs.rust-analyzer;
|
# rust-analyzer.command = getExe pkgs.rust-analyzer;
|
||||||
# texlab.command = getExe pkgs.texlab;
|
# texlab.command = getExe pkgs.texlab;
|
||||||
tinymist.command = getExe pkgs.tinymist;
|
bash-language-server = {
|
||||||
zk = {
|
command = getExe pkgs.bash-language-server;
|
||||||
command = getExe pkgs.zk;
|
environment = {
|
||||||
args = ["lsp"];
|
"SHELLCHECK_PATH" = getExe pkgs.shellcheck;
|
||||||
|
"SHFMT_PATH" = getExe pkgs.shfmt;
|
||||||
};
|
};
|
||||||
fsac.command = getExe pkgs.fsautocomplete;
|
};
|
||||||
fsac.config = {
|
clangd.command = "${pkgs.clang-tools}/bin/clangd";
|
||||||
|
fsac = {
|
||||||
|
command = getExe pkgs.fsautocomplete;
|
||||||
|
config = {
|
||||||
# editor.formatOnSave = true;
|
# editor.formatOnSave = true;
|
||||||
AutomaticWorkspaceInit = true;
|
AutomaticWorkspaceInit = true;
|
||||||
FSharp.ExternalAutocomplete = true;
|
FSharp.ExternalAutocomplete = true;
|
||||||
@ -87,19 +89,30 @@ in {
|
|||||||
FSharp.formatting.fantomas.enabled = true;
|
FSharp.formatting.fantomas.enabled = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
nil = {
|
||||||
|
command = getExe pkgs.nil;
|
||||||
|
config = {
|
||||||
|
formatting.command = [(getExe pkgs.alejandra)];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ruff = {
|
||||||
|
command = getExe pkgs.ruff;
|
||||||
|
args = ["server"];
|
||||||
|
};
|
||||||
|
tinymist.command = getExe pkgs.tinymist;
|
||||||
|
vscode-json-language-server.command = getExe pkgs.nodePackages.vscode-json-languageserver;
|
||||||
|
yaml-language-server.command = getExe pkgs.yaml-language-server;
|
||||||
|
zk = {
|
||||||
|
command = getExe pkgs.zk;
|
||||||
|
args = ["lsp"];
|
||||||
|
};
|
||||||
|
};
|
||||||
language = [
|
language = [
|
||||||
{
|
{
|
||||||
name = "nix";
|
name = "nix";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = getExe pkgs.alejandra;
|
|
||||||
language-servers = ["nil"];
|
language-servers = ["nil"];
|
||||||
}
|
}
|
||||||
# {
|
|
||||||
# name = "latex";
|
|
||||||
# auto-format = true;
|
|
||||||
# formatter.command = "${pkgs.texlivePackages.latexindent}/bin/latexindent";
|
|
||||||
# language-servers = ["texlab"];
|
|
||||||
# }
|
|
||||||
{
|
{
|
||||||
name = "typst";
|
name = "typst";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
@ -109,23 +122,21 @@ in {
|
|||||||
{
|
{
|
||||||
name = "markdown";
|
name = "markdown";
|
||||||
# auto-format = true;
|
# auto-format = true;
|
||||||
# formatter.command = "${pkgs.comrak}/bin/comrak";
|
|
||||||
language-servers = ["zk" "markdown-oxide"];
|
language-servers = ["zk" "markdown-oxide"];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "c";
|
name = "c";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "cpp";
|
name = "cpp";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fsharp";
|
name = "fsharp";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
# formatter.command = getExe pkgs.fantomas;
|
|
||||||
language-servers = ["fsac"];
|
language-servers = ["fsac"];
|
||||||
scope = "source.fs";
|
scope = "source.fs";
|
||||||
roots = ["fsproj" "sln" ".git"];
|
roots = ["fsproj" "sln" ".git"];
|
||||||
@ -136,6 +147,25 @@ in {
|
|||||||
# language-servers = ["rust-analyzer"];
|
# language-servers = ["rust-analyzer"];
|
||||||
# formatter.command = getExe pkgs.rustfmt;
|
# formatter.command = getExe pkgs.rustfmt;
|
||||||
# }
|
# }
|
||||||
|
{
|
||||||
|
name = "json";
|
||||||
|
auto-format = true;
|
||||||
|
formatter.command = getExe pkgs.jq;
|
||||||
|
language-servers = ["vscode-json-language-server"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "yaml";
|
||||||
|
auto-format = true;
|
||||||
|
formatter.command = getExe pkgs.yamlfmt;
|
||||||
|
formatter.args = ["-"];
|
||||||
|
language-servers = ["yaml-language-server"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "bash";
|
||||||
|
auto-format = true;
|
||||||
|
# formatter.command = getExe pkgs.shfmt;
|
||||||
|
# formatter.args = ["-"];
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "python";
|
name = "python";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
|
@ -15,11 +15,11 @@ in {
|
|||||||
programs.zed-editor = {
|
programs.zed-editor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extensions = [
|
extensions = [
|
||||||
"nix"
|
"bash"
|
||||||
"fsharp"
|
"fsharp"
|
||||||
# "latex"
|
|
||||||
"typst"
|
|
||||||
"justfile"
|
"justfile"
|
||||||
|
"nix"
|
||||||
|
"typst"
|
||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
vim_mode = true;
|
vim_mode = true;
|
||||||
@ -35,30 +35,29 @@ in {
|
|||||||
};
|
};
|
||||||
"Nix" = {
|
"Nix" = {
|
||||||
language-servers = [
|
language-servers = [
|
||||||
"!nil"
|
"nil"
|
||||||
"nixd"
|
|
||||||
];
|
];
|
||||||
formatter = {
|
# formatter = {
|
||||||
external.command = getExe pkgs.alejandra;
|
# external.command = getExe pkgs.alejandra;
|
||||||
};
|
# };
|
||||||
};
|
|
||||||
"Rust" = {
|
|
||||||
formatter = {
|
|
||||||
external = {
|
|
||||||
command = getExe pkgs.rustfmt;
|
|
||||||
arguments = ["--edition" "2021"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
# "Rust" = {
|
||||||
|
# formatter = {
|
||||||
|
# external = {
|
||||||
|
# command = getExe pkgs.rustfmt;
|
||||||
|
# arguments = ["--edition" "2021"];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
"typst" = {
|
"typst" = {
|
||||||
language-servers = ["tinymist"];
|
language-servers = ["tinymist"];
|
||||||
format_on_save = "on";
|
format_on_save = "on";
|
||||||
formatter = {
|
# formatter = {
|
||||||
external = {
|
# external = {
|
||||||
command = getExe pkgs.typstyle;
|
# command = getExe pkgs.typstyle;
|
||||||
arguments = ["-i" "{buffer_path}"];
|
# arguments = ["-i" "{buffer_path}"];
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
"Python" = {
|
"Python" = {
|
||||||
format_on_save = "on";
|
format_on_save = "on";
|
||||||
@ -73,6 +72,15 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
|
bash-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.bash-language-server;
|
||||||
|
env = {
|
||||||
|
"SHELLCHECK_PATH" = getExe pkgs.shellcheck;
|
||||||
|
"SHFMT_PATH" = getExe pkgs.shfmt;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
fsautocomplete = {
|
fsautocomplete = {
|
||||||
binary = {
|
binary = {
|
||||||
path = getExe pkgs.fsautocomplete;
|
path = getExe pkgs.fsautocomplete;
|
||||||
@ -91,32 +99,32 @@ in {
|
|||||||
path = "${pkgs.clang-tools}/bin/clangd";
|
path = "${pkgs.clang-tools}/bin/clangd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
rust-analyzer = {
|
# rust-analyzer = {
|
||||||
binary = {
|
# binary = {
|
||||||
arguments = [];
|
# arguments = [];
|
||||||
path = getExe pkgs.rust-analyzer;
|
# path = getExe pkgs.rust-analyzer;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
ruff = {
|
ruff = {
|
||||||
binary = {
|
binary = {
|
||||||
arguments = [];
|
arguments = [];
|
||||||
path = getExe pkgs.ruff;
|
path = getExe pkgs.ruff;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nixd = {
|
# nixd = {
|
||||||
binary = {
|
|
||||||
arguments = [];
|
|
||||||
path = getExe pkgs.nixd;
|
|
||||||
};
|
|
||||||
initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
|
||||||
};
|
|
||||||
# nil = {
|
|
||||||
# binary = {
|
# binary = {
|
||||||
# arguments = [];
|
# arguments = [];
|
||||||
# path = getExe pkgs.nil;
|
# path = getExe pkgs.nixd;
|
||||||
# };
|
# };
|
||||||
# initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
# initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
||||||
# };
|
# };
|
||||||
|
nil = {
|
||||||
|
binary = {
|
||||||
|
arguments = [];
|
||||||
|
path = getExe pkgs.nil;
|
||||||
|
};
|
||||||
|
settings.formatting.command = [(getExe pkgs.alejandra)];
|
||||||
|
};
|
||||||
# texlab = {
|
# texlab = {
|
||||||
# binary = {
|
# binary = {
|
||||||
# arguments = [];
|
# arguments = [];
|
||||||
@ -129,6 +137,16 @@ in {
|
|||||||
path = getExe pkgs.tinymist;
|
path = getExe pkgs.tinymist;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
vscode-json-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.nodePackages.vscode-json-languageserver;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
yaml-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.yaml-language-server;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
telemetry = {
|
telemetry = {
|
||||||
diagnostics = false;
|
diagnostics = false;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
perSystem,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
@ -12,6 +13,7 @@ in {
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.ghostty = {
|
programs.ghostty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = perSystem.ghostty.ghostty;
|
||||||
settings = {
|
settings = {
|
||||||
gtk-single-instance = true;
|
gtk-single-instance = true;
|
||||||
window-decoration = "client";
|
window-decoration = "client";
|
||||||
|
@ -1,118 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkDefault;
|
|
||||||
in {
|
|
||||||
security = {
|
|
||||||
sudo.enable = false;
|
|
||||||
# doas.enable = true;
|
|
||||||
sudo-rs = {
|
|
||||||
enable = true;
|
|
||||||
execWheelOnly = true;
|
|
||||||
};
|
|
||||||
polkit.enable = true;
|
|
||||||
polkit.extraConfig = ''
|
|
||||||
polkit.addRule(function(action, subject) {
|
|
||||||
if (
|
|
||||||
subject.isInGroup("users")
|
|
||||||
&& (
|
|
||||||
action.id == "org.freedesktop.login1.reboot" ||
|
|
||||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
|
||||||
action.id == "org.freedesktop.login1.power-off" ||
|
|
||||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return polkit.Result.YES;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
'';
|
|
||||||
apparmor.enable = mkDefault true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(mkIf config.security.doas.enable doas-sudo-shim) # if doas install doas sudo shim
|
|
||||||
];
|
|
||||||
|
|
||||||
services.dbus = {
|
|
||||||
apparmor = "enabled";
|
|
||||||
implementation = "broker";
|
|
||||||
};
|
|
||||||
services.ntpd-rs = {
|
|
||||||
enable = true;
|
|
||||||
#settings = {
|
|
||||||
# server = {
|
|
||||||
# require-nts = true;
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.kernel.sysctl = {
|
|
||||||
"dev.tty.ldisc_autoload" = 0;
|
|
||||||
"fs.protected_fifos" = 2;
|
|
||||||
"fs.protected_regular" = 2;
|
|
||||||
"fs.suid_dumpable" = 0;
|
|
||||||
"kernel.kptr_restrict" = 2;
|
|
||||||
"kernel_kexec_load_disabled" = 1;
|
|
||||||
# "kernel.modules_disabled" = 1;
|
|
||||||
"kernel.sysrq" = 0;
|
|
||||||
"kernel.unprivileged_bpf_disabled" = 1;
|
|
||||||
"net.ipv4.conf.all.forwarding" = 0;
|
|
||||||
"net.ipv4.conf.all.log_martians" = 1;
|
|
||||||
"net.ipv4.conf.all.rp_filter" = 1;
|
|
||||||
"net.ipv4.conf.all.send_redirects" = 0;
|
|
||||||
"net.ipv4.conf.default.accept_redirects" = 0;
|
|
||||||
"net.ipv4.conf.default.log_martians" = 1;
|
|
||||||
"net.ipv6.conf.all.accept_redirects" = 0;
|
|
||||||
"net.ipv6.conf.default.accept_redirects" = 0;
|
|
||||||
};
|
|
||||||
boot.kernelParams = [
|
|
||||||
"amd_iommu=force_isolation"
|
|
||||||
"debugfs=off"
|
|
||||||
"efi=disable_early_pci_dma"
|
|
||||||
"gather_data_sampling=force"
|
|
||||||
"intel_iommu=on"
|
|
||||||
"iommu.passthrough=0"
|
|
||||||
"iommu.strict=1"
|
|
||||||
"iommu=force"
|
|
||||||
"page_alloc.shuffle=1"
|
|
||||||
"vsyscall=none"
|
|
||||||
# "ia32_emulation=0"
|
|
||||||
# "lockdown=confidentiality"
|
|
||||||
# "module.sig_enforce=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.blacklistedKernelModules = [
|
|
||||||
# Obscure network protocols
|
|
||||||
"ax25"
|
|
||||||
"netrom"
|
|
||||||
"rose"
|
|
||||||
# Old or rare or insufficiently audited filesystems
|
|
||||||
"adfs"
|
|
||||||
"affs"
|
|
||||||
"bfs"
|
|
||||||
"befs"
|
|
||||||
"cramfs"
|
|
||||||
"efs"
|
|
||||||
"erofs"
|
|
||||||
"exofs"
|
|
||||||
"freevxfs"
|
|
||||||
"f2fs"
|
|
||||||
"hfs"
|
|
||||||
"hpfs"
|
|
||||||
"jfs"
|
|
||||||
"minix"
|
|
||||||
"nilfs2"
|
|
||||||
"ntfs"
|
|
||||||
"omfs"
|
|
||||||
"qnx4"
|
|
||||||
"qnx6"
|
|
||||||
"sysv"
|
|
||||||
"ufs"
|
|
||||||
];
|
|
||||||
|
|
||||||
nix.settings.allowed-users = mkDefault ["@users"];
|
|
||||||
}
|
|
@ -16,7 +16,7 @@ in {
|
|||||||
gcr_4
|
gcr_4
|
||||||
libsecret
|
libsecret
|
||||||
];
|
];
|
||||||
# programs.seahorse.enable = true;
|
programs.seahorse.enable = true;
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
xdg.portal.config.common = {
|
xdg.portal.config.common = {
|
||||||
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
|
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common
|
./common
|
||||||
./cosmic.nix
|
./cosmic
|
||||||
./gnome.nix
|
./gnome
|
||||||
./hyprland.nix
|
./hyprland
|
||||||
./niri.nix
|
./niri
|
||||||
./plasma.nix
|
./plasma
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
cfg = config.desktop.niri;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
desktop.niri.enable =
|
|
||||||
mkEnableOption "enable niri desktop";
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
module.desktop.displayManager = "greetd";
|
|
||||||
module.desktop.gnome-keyring.enable = true;
|
|
||||||
sound.pipewire.enable = true;
|
|
||||||
|
|
||||||
security = {
|
|
||||||
soteria.enable = true; # polkit agent in rust
|
|
||||||
pam.services.gtklock = {};
|
|
||||||
};
|
|
||||||
programs.niri.enable = true; # wayland compositor in rust
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gnome
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
config.niri.default = ["gnome" "gtk"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
45
modules/nixos/desktop/niri/default.nix
Normal file
45
modules/nixos/desktop/niri/default.nix
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
cfg = config.desktop.niri;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
desktop.niri.enable =
|
||||||
|
mkEnableOption "enable niri desktop";
|
||||||
|
};
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(mkIf cfg.enable {
|
||||||
|
module.desktop = {
|
||||||
|
displayManager = "greetd";
|
||||||
|
gnome-keyring.enable = true;
|
||||||
|
};
|
||||||
|
sound.pipewire.enable = true;
|
||||||
|
|
||||||
|
programs.niri.enable = true; # wayland compositor in rust
|
||||||
|
security = {
|
||||||
|
pam.services.gtklock = {};
|
||||||
|
soteria.enable = true; # polkit agent in rust
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
blueman.enable = config.hardware.bluetooth.enable;
|
||||||
|
gvfs.enable = true;
|
||||||
|
};
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [xdg-desktop-portal-gnome xdg-desktop-portal-gtk];
|
||||||
|
config.niri.default = ["gnome" "gtk"];
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(mkIf (cfg.enable
|
||||||
|
&& config.services.displayManager.autoLogin.enable) {
|
||||||
|
services.greetd.settings.initial_session = {
|
||||||
|
command = "niri-session";
|
||||||
|
user = config.services.displayManager.autoLogin.user;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
@ -7,9 +7,6 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.desktop.plasma;
|
cfg = config.desktop.plasma;
|
||||||
in {
|
in {
|
||||||
imports = [
|
|
||||||
./common/pipewire.nix
|
|
||||||
];
|
|
||||||
options = {
|
options = {
|
||||||
desktop.plasma = {
|
desktop.plasma = {
|
||||||
enable = mkEnableOption "enable plasma desktop";
|
enable = mkEnableOption "enable plasma desktop";
|
@ -1,11 +1,21 @@
|
|||||||
{lib, ...}: {
|
{
|
||||||
environment.variables = {
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
boot.tmp.cleanOnBoot = lib.mkDefault true;
|
||||||
|
|
||||||
|
console.font = "${pkgs.spleen}/share/consolefonts/spleen-16x32.psfu";
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
ldso32 = null;
|
||||||
|
memoryAllocator.provider = "mimalloc";
|
||||||
|
variables = {
|
||||||
LESS = "-R --mouse";
|
LESS = "-R --mouse";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
environment.ldso32 = null;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
boot.tmp.cleanOnBoot = lib.mkDefault true;
|
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
settings.X11Forwarding = false;
|
settings.X11Forwarding = false;
|
||||||
@ -24,4 +34,12 @@
|
|||||||
"sntrup761x25519-sha512@openssh.com"
|
"sntrup761x25519-sha512@openssh.com"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.journald.extraConfig = ''
|
||||||
|
SystemMaxUse=1G
|
||||||
|
'';
|
||||||
|
systemd.coredump.extraConfig = ''
|
||||||
|
Storage=none
|
||||||
|
ProcessSizeMax=0
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
|
./locale.nix
|
||||||
./misc
|
./misc
|
||||||
./virtual
|
./stylix
|
||||||
|
./virt
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -3,16 +3,18 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) types mkOption;
|
||||||
cfg = config.locale.ukrainian;
|
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
locale.ukrainian.enable =
|
module.locale = mkOption {
|
||||||
mkEnableOption "enables ukrainian locale";
|
type = types.strMatching "[a-z]{2}_[A-Z]{2}\\.UTF-8";
|
||||||
|
default = "en_US.UTF-8";
|
||||||
|
description = "set locale";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
};
|
||||||
|
config = {
|
||||||
i18n = let
|
i18n = let
|
||||||
locale = "uk_UA.UTF-8";
|
inherit (config.module) locale;
|
||||||
in {
|
in {
|
||||||
defaultLocale = locale;
|
defaultLocale = locale;
|
||||||
extraLocaleSettings = {
|
extraLocaleSettings = {
|
@ -1,8 +1,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./locale.nix
|
|
||||||
./opentabletdriver.nix
|
./opentabletdriver.nix
|
||||||
./qmk-vial.nix
|
./qmk-vial.nix
|
||||||
./stylix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
opentabletdriver.enable =
|
module.misc.opentabletdriver.enable =
|
||||||
mkEnableOption "enables opentabletdriver";
|
mkEnableOption "enables opentabletdriver";
|
||||||
};
|
};
|
||||||
config = mkIf config.opentabletdriver.enable {
|
config = mkIf config.module.misc.opentabletdriver.enable {
|
||||||
hardware.opentabletdriver = {
|
hardware.opentabletdriver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
daemon.enable = true;
|
daemon.enable = true;
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
qmk-vial.enable =
|
module.misc.qmk-vial.enable =
|
||||||
mkEnableOption "adds a udev rule for vial keyboards";
|
mkEnableOption "adds a udev rule for vial keyboards";
|
||||||
};
|
};
|
||||||
config = mkIf config.qmk-vial.enable {
|
config = mkIf config.module.misc.qmk-vial.enable {
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||||
'';
|
'';
|
||||||
|
@ -5,66 +5,81 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
inherit (builtins) fetchurl;
|
||||||
inherit (lib) mkEnableOption mkOption mkIf;
|
inherit (lib) mkEnableOption mkOption mkIf;
|
||||||
inherit (lib) optionalAttrs;
|
inherit (lib) optionalAttrs;
|
||||||
inherit (lib.types) bool str;
|
inherit (lib.types) bool str;
|
||||||
inherit (config.system) stateVersion;
|
|
||||||
|
|
||||||
cfg = config.module.stylix;
|
cfg = config.module.stylix;
|
||||||
|
|
||||||
|
fromBase16Schemes = f: "${pkgs.base16-schemes}/share/themes/${f}.yaml";
|
||||||
|
|
||||||
interPackage = pkgs.inter-nerdfont;
|
interPackage = pkgs.inter-nerdfont;
|
||||||
iosevkaPackage =
|
iosevkaPackage = pkgs.nerd-fonts.iosevka;
|
||||||
if stateVersion == "24.11"
|
iosevkaTermPackage = pkgs.nerd-fonts.iosevka-term;
|
||||||
then pkgs.nerdfonts.override {fonts = ["Iosevka"];}
|
mesloLgPackage = pkgs.nerd-fonts.meslo-lg;
|
||||||
else pkgs.nerd-fonts.iosevka;
|
# jetBrainsMonoPackage = pkgs.nerd-fonts.jetbrains-mono;
|
||||||
iosevkaTermPackage =
|
geistMonoPackage = pkgs.nerd-fonts.geist-mono;
|
||||||
if stateVersion == "24.11"
|
geistPackage = pkgs.geist-font;
|
||||||
then pkgs.nerdfonts.override {fonts = ["Iosevka Term"];}
|
|
||||||
else pkgs.nerd-fonts.iosevka-term;
|
|
||||||
mesloLgPackage =
|
|
||||||
if stateVersion == "24.11"
|
|
||||||
then pkgs.nerdfonts.override {fonts = ["MesloLG"];}
|
|
||||||
else pkgs.nerd-fonts.meslo-lg;
|
|
||||||
jetBrainsMonoPackage =
|
|
||||||
if stateVersion == "24.11"
|
|
||||||
then pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}
|
|
||||||
else pkgs.nerd-fonts.jetbrains-mono;
|
|
||||||
geistMonoPackage =
|
|
||||||
if stateVersion == "24.11"
|
|
||||||
then pkgs.nerdfonts.override {fonts = ["GeistMono"];}
|
|
||||||
else pkgs.nerd-fonts.geist-mono;
|
|
||||||
|
|
||||||
wallpapers = {
|
wallpapers = {
|
||||||
fern-outline = builtins.fetchurl {
|
abstract = {
|
||||||
|
squares = fetchurl {
|
||||||
|
url = "https://w.wallhaven.cc/full/p9/wallhaven-p91dym.jpg";
|
||||||
|
name = "wallhaven-p91dym.jpg";
|
||||||
|
sha256 = "wnsAhh0Soxm+lxahh+Xc/+CAw/abWgPIkeoOlzNGaDo=";
|
||||||
|
};
|
||||||
|
waves = fetchurl {
|
||||||
|
url = "https://w.wallhaven.cc/full/5y/wallhaven-5ydl93.png";
|
||||||
|
name = "wallhaven-5ydl93.png";
|
||||||
|
sha256 = "fTE2cyn2mkx05+Zn6qcs4+Rb7AYD0uyi6CNznuZYOjw=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fern-outline = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/p9/wallhaven-p9m7ve.png";
|
url = "https://w.wallhaven.cc/full/p9/wallhaven-p9m7ve.png";
|
||||||
name = "wallhaven-p9m7ve.png";
|
name = "wallhaven-p9m7ve.png";
|
||||||
sha256 = "0r7dl4fjwv2p5q5ggr4sjsl2h5m0s98k9qhiwkvmwi010lyffkx7";
|
sha256 = "0r7dl4fjwv2p5q5ggr4sjsl2h5m0s98k9qhiwkvmwi010lyffkx7";
|
||||||
};
|
};
|
||||||
mountains-pink = builtins.fetchurl {
|
mountains-pink = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/yq/wallhaven-yq7gox.jpg";
|
url = "https://w.wallhaven.cc/full/yq/wallhaven-yq7gox.jpg";
|
||||||
name = "wallhaven-yq7gox.jpg";
|
name = "wallhaven-yq7gox.jpg";
|
||||||
sha256 = "09s31spp9mq71fgkl1w80nzdc1458p1gjfyi3y6fy14wj2dza0pj";
|
sha256 = "09s31spp9mq71fgkl1w80nzdc1458p1gjfyi3y6fy14wj2dza0pj";
|
||||||
};
|
};
|
||||||
mountains-black = builtins.fetchurl {
|
mountains-black = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/9d/wallhaven-9djzww.jpg";
|
url = "https://w.wallhaven.cc/full/9d/wallhaven-9djzww.jpg";
|
||||||
name = "wallhaven-9djzww.jpg";
|
name = "wallhaven-9djzww.jpg";
|
||||||
sha256 = "1p2si922i9qs09h8c74lrvx0f284g0xvm7lh85gk1x7lqhn611zm";
|
sha256 = "1p2si922i9qs09h8c74lrvx0f284g0xvm7lh85gk1x7lqhn611zm";
|
||||||
};
|
};
|
||||||
cyber-dawn = builtins.fetchurl {
|
cyber-dawn = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/ym/wallhaven-ymo2y7.png";
|
url = "https://w.wallhaven.cc/full/ym/wallhaven-ymo2y7.png";
|
||||||
name = "wallhaven-ymo2y7.png";
|
name = "wallhaven-ymo2y7.png";
|
||||||
sha256 = "1b3j0hxxy8m25scq42lxsxc99xvr15pha1j4wplgz761asrvxly3";
|
sha256 = "1b3j0hxxy8m25scq42lxsxc99xvr15pha1j4wplgz761asrvxly3";
|
||||||
};
|
};
|
||||||
nixos-rainbow = builtins.fetchurl {
|
nixos-rainbow = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/p9/wallhaven-p9pd23.png";
|
url = "https://w.wallhaven.cc/full/p9/wallhaven-p9pd23.png";
|
||||||
name = "wallhaven-p9pd23.png";
|
name = "wallhaven-p9pd23.png";
|
||||||
sha256 = "7CMuETntiVUCKhUIdJzX+sf3F47GvuX2a61o4xbEzww=";
|
sha256 = "7CMuETntiVUCKhUIdJzX+sf3F47GvuX2a61o4xbEzww=";
|
||||||
};
|
};
|
||||||
|
mountains-sepia = fetchurl {
|
||||||
|
url = "https://w.wallhaven.cc/full/k8/wallhaven-k89k81.jpg";
|
||||||
|
name = "wallhaven-k89k81.jpg";
|
||||||
|
sha256 = "C0lvJ0ff0mCC3i9mmeHZsj/n6Ehkp3jaslVr7VDUB3k=";
|
||||||
|
};
|
||||||
|
jcurry-cloud = fetchurl {
|
||||||
|
url = "https://w.wallhaven.cc/full/7j/wallhaven-7j6wpy.jpg";
|
||||||
|
name = "wallhaven-je8rwq.jpg";
|
||||||
|
sha256 = "xsuCYc0mCDkrJZ+BUmEEclAfF17g1n39JHeubtZHP78=";
|
||||||
|
};
|
||||||
|
vapor-moon = fetchurl {
|
||||||
|
url = "https://w.wallhaven.cc/full/lm/wallhaven-lm6d2r.png";
|
||||||
|
name = "wallhaven-lm6d2r.png";
|
||||||
|
sha256 = "V07kj2zwFHDwzIN8QE8IFrJMXxDOBoK9C11sQGgTjyQ=";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
themes = {
|
themes = {
|
||||||
rose-pine-dawn = {
|
rose-pine-dawn = {
|
||||||
polarity = "light";
|
polarity = "light";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
|
scheme = fromBase16Schemes "rose-pine-dawn";
|
||||||
wallpaper = wallpapers.cyber-dawn;
|
wallpaper = wallpapers.cyber-dawn;
|
||||||
|
|
||||||
serif = {
|
serif = {
|
||||||
@ -85,14 +100,12 @@
|
|||||||
};
|
};
|
||||||
rose-pine-moon = {
|
rose-pine-moon = {
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml";
|
scheme = fromBase16Schemes "rose-pine-moon";
|
||||||
wallpaper = wallpapers.cyber-dawn;
|
wallpaper = wallpapers.cyber-dawn;
|
||||||
|
|
||||||
serif = {
|
serif = {
|
||||||
# package = iosevkaPackage;
|
package = interPackage;
|
||||||
# name = "Iosevka Nerd Font Propo";
|
name = "Inter Nerd Font";
|
||||||
package = pkgs.geist-font;
|
|
||||||
name = "Geist Light";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
monospace = {
|
monospace = {
|
||||||
@ -106,15 +119,34 @@
|
|||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
gruvbox-dark-pale = {
|
sandcastle = {
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-pale.yaml";
|
scheme = fromBase16Schemes "sandcastle";
|
||||||
wallpaper = wallpapers.nixos-rainbow;
|
wallpaper = wallpapers.abstract.waves;
|
||||||
|
|
||||||
serif = {
|
serif = {
|
||||||
# package = iosevkaPackage;
|
package = geistPackage;
|
||||||
# name = "Iosevka Nerd Font Propo";
|
name = "Geist";
|
||||||
package = pkgs.geist-font;
|
};
|
||||||
|
|
||||||
|
monospace = {
|
||||||
|
package = geistMonoPackage;
|
||||||
|
name = "GeistMono NFM";
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Classic";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gruvbox-dark-pale = {
|
||||||
|
polarity = "dark";
|
||||||
|
scheme = fromBase16Schemes "gruvbox-dark-pale";
|
||||||
|
wallpaper = wallpapers.mountains-sepia;
|
||||||
|
|
||||||
|
serif = {
|
||||||
|
package = geistPackage;
|
||||||
name = "Geist";
|
name = "Geist";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -131,8 +163,8 @@
|
|||||||
};
|
};
|
||||||
nord = {
|
nord = {
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
|
scheme = fromBase16Schemes "nord";
|
||||||
wallpaper = builtins.fetchurl {
|
wallpaper = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
||||||
name = "wallhaven-l8l9gq.png";
|
name = "wallhaven-l8l9gq.png";
|
||||||
sha256 = "0ypr44sg0fn55m1b52dgr1nnscpi2p6rfkjsm7vvrdqw7bafbx2z";
|
sha256 = "0ypr44sg0fn55m1b52dgr1nnscpi2p6rfkjsm7vvrdqw7bafbx2z";
|
||||||
@ -157,8 +189,8 @@
|
|||||||
|
|
||||||
nord-light = {
|
nord-light = {
|
||||||
polarity = "light";
|
polarity = "light";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/nord-light.yaml";
|
scheme = fromBase16Schemes "nord-light";
|
||||||
wallpaper = builtins.fetchurl {
|
wallpaper = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
||||||
name = "wallhaven-l8l9gq.png";
|
name = "wallhaven-l8l9gq.png";
|
||||||
sha256 = "0ypr44sg0fn55m1b52dgr1nnscpi2p6rfkjsm7vvrdqw7bafbx2z";
|
sha256 = "0ypr44sg0fn55m1b52dgr1nnscpi2p6rfkjsm7vvrdqw7bafbx2z";
|
||||||
@ -183,8 +215,8 @@
|
|||||||
|
|
||||||
helios = {
|
helios = {
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/helios.yaml";
|
scheme = fromBase16Schemes "helios";
|
||||||
wallpaper = builtins.fetchurl {
|
wallpaper = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/lq/wallhaven-lqorw2.png";
|
url = "https://w.wallhaven.cc/full/lq/wallhaven-lqorw2.png";
|
||||||
name = "wallhaven-lqorw2.png";
|
name = "wallhaven-lqorw2.png";
|
||||||
sha256 = "sha256:1rjchjq4pc2jyq8dvpa17mmscv9qcm0h0zv468lsf8s51anpid6p";
|
sha256 = "sha256:1rjchjq4pc2jyq8dvpa17mmscv9qcm0h0zv468lsf8s51anpid6p";
|
||||||
@ -209,8 +241,8 @@
|
|||||||
|
|
||||||
sulphurpool = {
|
sulphurpool = {
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool.yaml";
|
scheme = fromBase16Schemes "atelier-sulphurpool";
|
||||||
wallpaper = builtins.fetchurl {
|
wallpaper = fetchurl {
|
||||||
url = "https://w.wallhaven.cc/full/rd/wallhaven-rd5q3m.jpg";
|
url = "https://w.wallhaven.cc/full/rd/wallhaven-rd5q3m.jpg";
|
||||||
name = "wallhaven-rd5q3m.jpg";
|
name = "wallhaven-rd5q3m.jpg";
|
||||||
sha256 = "sha256:1sa2739vwwv1xafzjvxlg3kvq26xmcxg6hrwq29q40j617r63sy6";
|
sha256 = "sha256:1sa2739vwwv1xafzjvxlg3kvq26xmcxg6hrwq29q40j617r63sy6";
|
||||||
@ -235,7 +267,7 @@
|
|||||||
himalaya = {
|
himalaya = {
|
||||||
# lightly pink like himalayan salt
|
# lightly pink like himalayan salt
|
||||||
polarity = "light";
|
polarity = "light";
|
||||||
scheme = "${pkgs.base16-schemes}/share/themes/atelier-plateau-light.yaml";
|
scheme = fromBase16Schemes "atelier-plateau-light";
|
||||||
wallpaper = wallpapers.mountains-pink;
|
wallpaper = wallpapers.mountains-pink;
|
||||||
|
|
||||||
serif = {
|
serif = {
|
||||||
@ -248,6 +280,48 @@
|
|||||||
name = "MesloLGM Nerd Font Mono";
|
name = "MesloLGM Nerd Font Mono";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
vesper = {
|
||||||
|
polarity = "dark";
|
||||||
|
scheme = fromBase16Schemes "vesper";
|
||||||
|
wallpaper = wallpapers.abstract.squares;
|
||||||
|
|
||||||
|
serif = {
|
||||||
|
package = geistPackage;
|
||||||
|
name = "Geist";
|
||||||
|
};
|
||||||
|
|
||||||
|
monospace = {
|
||||||
|
package = geistMonoPackage;
|
||||||
|
name = "GeistMono Nerd Font";
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Classic";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
github = {
|
||||||
|
polarity = "light";
|
||||||
|
scheme = fromBase16Schemes "github";
|
||||||
|
wallpaper = wallpapers.abstract.squares;
|
||||||
|
|
||||||
|
serif = {
|
||||||
|
package = geistPackage;
|
||||||
|
name = "Geist Light";
|
||||||
|
};
|
||||||
|
|
||||||
|
monospace = {
|
||||||
|
package = geistMonoPackage;
|
||||||
|
name = "GeistMono Nerd Font";
|
||||||
|
};
|
||||||
|
|
||||||
cursor = {
|
cursor = {
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
name = "Bibata-Modern-Ice";
|
name = "Bibata-Modern-Ice";
|
||||||
@ -277,6 +351,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
fonts.packages = [pkgs.nerd-fonts.symbols-only];
|
||||||
stylix =
|
stylix =
|
||||||
{
|
{
|
||||||
enable = true;
|
enable = true;
|
@ -5,10 +5,10 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.virtual.docker;
|
cfg = config.module.virt.docker;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
virtual.docker.enable =
|
module.virt.docker.enable =
|
||||||
mkEnableOption "enable docker";
|
mkEnableOption "enable docker";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
@ -5,10 +5,10 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.virtual.libvirt;
|
cfg = config.module.virt.libvirt;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
virtual.libvirt.enable =
|
module.virt.libvirt.enable =
|
||||||
mkEnableOption "enables virtualisation";
|
mkEnableOption "enables virtualisation";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
@ -5,10 +5,10 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.virtual.podman;
|
cfg = config.module.virt.podman;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
virtual.podman.enable =
|
module.virt.podman.enable =
|
||||||
mkEnableOption "enables podman";
|
mkEnableOption "enables podman";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
@ -4,7 +4,7 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
timeout = 3;
|
timeout = 0;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
consoleMode = "auto";
|
consoleMode = "auto";
|
@ -44,15 +44,26 @@ in {
|
|||||||
keyboards = {
|
keyboards = {
|
||||||
internal = {
|
internal = {
|
||||||
ids = ["0001:0001" "048d:c101"];
|
ids = ["0001:0001" "048d:c101"];
|
||||||
settings.main = {
|
settings.main = let
|
||||||
a = "lettermod(alt, a, 200, 150)";
|
# finger = mod;
|
||||||
s = "lettermod(meta, s, 200, 150)";
|
pinky = "alt";
|
||||||
d = "lettermod(control, d, 200, 150)";
|
ring = "meta";
|
||||||
f = "lettermod(shift, f, 200, 150)";
|
middle = "control";
|
||||||
j = "lettermod(shift, j, 200, 150)";
|
index = "shift";
|
||||||
k = "lettermod(control, k, 200, 150)";
|
# timeouts
|
||||||
l = "lettermod(meta, l, 200, 150)";
|
idle = "200";
|
||||||
";" = "lettermod(alt, ;, 200, 150)";
|
hold = "150";
|
||||||
|
# function takes finger and letter
|
||||||
|
homeRowMod = f: l: "lettermod(${f}, ${l}, ${idle}, ${hold})";
|
||||||
|
in {
|
||||||
|
"a" = homeRowMod pinky "a";
|
||||||
|
"s" = homeRowMod ring "s";
|
||||||
|
"d" = homeRowMod middle "d";
|
||||||
|
"f" = homeRowMod index "f";
|
||||||
|
"j" = homeRowMod index "j";
|
||||||
|
"k" = homeRowMod middle "k";
|
||||||
|
"l" = homeRowMod ring "l";
|
||||||
|
";" = homeRowMod pinky ";";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
# inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
# imports = with inputs; [lix.nixosModules.default];
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.lixPackageSets.latest.lix;
|
package = pkgs.lixPackageSets.latest.lix;
|
||||||
channel.enable = false;
|
channel.enable = false;
|
@ -20,7 +20,6 @@ in {
|
|||||||
write = true;
|
write = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
security.pam.sshAgentAuth.enable = true;
|
|
||||||
})
|
})
|
||||||
(lib.mkIf (!isBuildHost) {
|
(lib.mkIf (!isBuildHost) {
|
||||||
nix = let
|
nix = let
|
123
modules/shared/nixos/security/default.nix
Normal file
123
modules/shared/nixos/security/default.nix
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkDefault;
|
||||||
|
in {
|
||||||
|
security = {
|
||||||
|
sudo.enable = false;
|
||||||
|
# doas.enable = true;
|
||||||
|
sudo-rs = {
|
||||||
|
enable = true;
|
||||||
|
execWheelOnly = true;
|
||||||
|
};
|
||||||
|
polkit = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (
|
||||||
|
subject.isInGroup("users")
|
||||||
|
&& (
|
||||||
|
action.id == "org.freedesktop.login1.reboot" ||
|
||||||
|
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||||
|
action.id == "org.freedesktop.login1.power-off" ||
|
||||||
|
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
apparmor.enable = mkDefault true;
|
||||||
|
pam.sshAgentAuth.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(mkIf config.security.doas.enable doas-sudo-shim) # if doas install doas sudo shim
|
||||||
|
];
|
||||||
|
services = {
|
||||||
|
dbus = {
|
||||||
|
apparmor = "enabled";
|
||||||
|
implementation = "broker";
|
||||||
|
};
|
||||||
|
ntpd-rs = {
|
||||||
|
enable = true;
|
||||||
|
#settings = {
|
||||||
|
# server = {
|
||||||
|
# require-nts = true;
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
boot = {
|
||||||
|
kernel.sysctl = {
|
||||||
|
"dev.tty.ldisc_autoload" = 0;
|
||||||
|
"fs.protected_fifos" = 2;
|
||||||
|
"fs.protected_regular" = 2;
|
||||||
|
"fs.suid_dumpable" = 0;
|
||||||
|
"kernel.kptr_restrict" = 2;
|
||||||
|
"kernel_kexec_load_disabled" = 1;
|
||||||
|
# "kernel.modules_disabled" = 1;
|
||||||
|
"kernel.sysrq" = 0;
|
||||||
|
"kernel.unprivileged_bpf_disabled" = 1;
|
||||||
|
"net.ipv4.conf.all.forwarding" = 0;
|
||||||
|
"net.ipv4.conf.all.log_martians" = 1;
|
||||||
|
"net.ipv4.conf.all.rp_filter" = 1;
|
||||||
|
"net.ipv4.conf.all.send_redirects" = 0;
|
||||||
|
"net.ipv4.conf.default.accept_redirects" = 0;
|
||||||
|
"net.ipv4.conf.default.log_martians" = 1;
|
||||||
|
"net.ipv6.conf.all.accept_redirects" = 0;
|
||||||
|
"net.ipv6.conf.default.accept_redirects" = 0;
|
||||||
|
};
|
||||||
|
kernelParams = [
|
||||||
|
"amd_iommu=force_isolation"
|
||||||
|
"debugfs=off"
|
||||||
|
"efi=disable_early_pci_dma"
|
||||||
|
"gather_data_sampling=force"
|
||||||
|
"intel_iommu=on"
|
||||||
|
"iommu.passthrough=0"
|
||||||
|
"iommu.strict=1"
|
||||||
|
"iommu=force"
|
||||||
|
"page_alloc.shuffle=1"
|
||||||
|
"vsyscall=none"
|
||||||
|
# "ia32_emulation=0"
|
||||||
|
# "lockdown=confidentiality"
|
||||||
|
# "module.sig_enforce=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
blacklistedKernelModules = [
|
||||||
|
# Obscure network protocols
|
||||||
|
"ax25"
|
||||||
|
"netrom"
|
||||||
|
"rose"
|
||||||
|
# Old or rare or insufficiently audited filesystems
|
||||||
|
"adfs"
|
||||||
|
"affs"
|
||||||
|
"bfs"
|
||||||
|
"befs"
|
||||||
|
"cramfs"
|
||||||
|
"efs"
|
||||||
|
"erofs"
|
||||||
|
"exofs"
|
||||||
|
"freevxfs"
|
||||||
|
"f2fs"
|
||||||
|
"hfs"
|
||||||
|
"hpfs"
|
||||||
|
"jfs"
|
||||||
|
"minix"
|
||||||
|
"nilfs2"
|
||||||
|
"ntfs"
|
||||||
|
"omfs"
|
||||||
|
"qnx4"
|
||||||
|
"qnx6"
|
||||||
|
"sysv"
|
||||||
|
"ufs"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.settings.allowed-users = mkDefault ["@users"];
|
||||||
|
}
|
@ -1,25 +1,25 @@
|
|||||||
{lib, ...}: {
|
{
|
||||||
services = {
|
services = {
|
||||||
# hardware.openrgb.enable = true;
|
# hardware.openrgb.enable = true;
|
||||||
avahi.enable = true;
|
avahi.enable = true;
|
||||||
flatpak.enable = true;
|
|
||||||
fwupd.enable = true;
|
|
||||||
openssh.enable = true;
|
|
||||||
speechd.enable = lib.mkForce false;
|
|
||||||
syncthing.openDefaultPorts = true;
|
|
||||||
userborn.enable = true;
|
|
||||||
dnscrypt-proxy2 = {
|
dnscrypt-proxy2 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
bootstrap_resolvers = ["9.9.9.11:53" "9.9.9.9:53"];
|
||||||
require_dnssec = true;
|
require_dnssec = true;
|
||||||
server_names = ["mullvad-doh"];
|
server_names = ["mullvad-doh"];
|
||||||
bootstrap_resolvers = ["9.9.9.11:53" "9.9.9.9:53"];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
flatpak.enable = true;
|
||||||
fstrim = {
|
fstrim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interval = "daily";
|
interval = "daily";
|
||||||
};
|
};
|
||||||
|
fwupd.enable = true;
|
||||||
|
logind = {
|
||||||
|
lidSwitch = "ignore";
|
||||||
|
powerKey = "suspend";
|
||||||
|
};
|
||||||
opensnitch = {
|
opensnitch = {
|
||||||
enable = false;
|
enable = false;
|
||||||
settings = {
|
settings = {
|
||||||
@ -29,13 +29,12 @@
|
|||||||
ProcMonitorMethod = "ebpf";
|
ProcMonitorMethod = "ebpf";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
openssh.enable = true;
|
||||||
scx = {
|
scx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
scheduler = "scx_flash";
|
scheduler = "scx_flash";
|
||||||
};
|
};
|
||||||
logind = {
|
syncthing.openDefaultPorts = true;
|
||||||
lidSwitch = "ignore";
|
userborn.enable = true;
|
||||||
powerKey = "suspend";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -17,9 +17,7 @@ in {
|
|||||||
hashedPasswordFile = secrets."user-password-hashed".path;
|
hashedPasswordFile = secrets."user-password-hashed".path;
|
||||||
extraGroups =
|
extraGroups =
|
||||||
["wheel" "video" "libvirtd" "dialout"]
|
["wheel" "video" "libvirtd" "dialout"]
|
||||||
/*
|
# for lisgd
|
||||||
for lisgd
|
|
||||||
*/
|
|
||||||
++ lib.optional (hostName == "morphius" && config.desktop.niri.enable) "input";
|
++ lib.optional (hostName == "morphius" && config.desktop.niri.enable) "input";
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
35
modules/shared/user/common.nix
Normal file
35
modules/shared/user/common.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = with inputs; [
|
||||||
|
nix-index-database.hmModules.nix-index
|
||||||
|
self.homeModules.desktop
|
||||||
|
self.homeModules.programs
|
||||||
|
];
|
||||||
|
|
||||||
|
inherit (osConfig) desktop;
|
||||||
|
|
||||||
|
home = {
|
||||||
|
inherit (osConfig.system) stateVersion;
|
||||||
|
sessionPath = ["$HOME/.local/bin"];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.userDirs = let
|
||||||
|
inherit (config.home) homeDirectory;
|
||||||
|
homeDir = f: "${homeDirectory}/${f}";
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
templates = homeDir "temps";
|
||||||
|
publicShare = homeDir "pub";
|
||||||
|
desktop = homeDir "desktop";
|
||||||
|
download = homeDir "downloads";
|
||||||
|
documents = homeDir "docs";
|
||||||
|
pictures = homeDir "pics";
|
||||||
|
videos = homeDir "vids";
|
||||||
|
music = homeDir "music";
|
||||||
|
};
|
||||||
|
}
|
7
modules/shared/user/default.nix
Normal file
7
modules/shared/user/default.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
./flatpak.nix
|
||||||
|
./programs.nix
|
||||||
|
];
|
||||||
|
}
|
@ -69,7 +69,7 @@
|
|||||||
"com.obsproject.Studio"
|
"com.obsproject.Studio"
|
||||||
"com.usebottles.bottles" # wine containers
|
"com.usebottles.bottles" # wine containers
|
||||||
"de.capypara.FieldMonitor" # libvirt
|
"de.capypara.FieldMonitor" # libvirt
|
||||||
"de.haeckerfelix.Fragments" # torrents
|
"org.qbittorrent.qBittorrent" # torrents
|
||||||
"io.github.amit9838.mousam" # weather
|
"io.github.amit9838.mousam" # weather
|
||||||
"io.github.finefindus.Hieroglyphic" # find latex symbols (in rust)
|
"io.github.finefindus.Hieroglyphic" # find latex symbols (in rust)
|
||||||
"io.github.lainsce.Khronos" # log time for tasks
|
"io.github.lainsce.Khronos" # log time for tasks
|
||||||
@ -129,6 +129,7 @@
|
|||||||
"org.gimp.GIMP" = {inherit (homeNoNetwork) Context;};
|
"org.gimp.GIMP" = {inherit (homeNoNetwork) Context;};
|
||||||
"org.kde.kdenlive" = {inherit (homeNoNetwork) Context;};
|
"org.kde.kdenlive" = {inherit (homeNoNetwork) Context;};
|
||||||
"org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret";
|
"org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret";
|
||||||
|
"org.qbittorrent.qBittorrent".Context.filesystems = ["host"]; # evil
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
124
modules/shared/user/programs.nix
Normal file
124
modules/shared/user/programs.nix
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
osConfig,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
inherit (osConfig.virtualisation) libvirtd;
|
||||||
|
inherit (osConfig.hardware) bluetooth;
|
||||||
|
in {
|
||||||
|
console.yazi.enable = true;
|
||||||
|
editor.helix.enable = true;
|
||||||
|
shell = {
|
||||||
|
fish.enable = true;
|
||||||
|
oh-my-posh.enable = true;
|
||||||
|
};
|
||||||
|
syncthing.enable = true;
|
||||||
|
# terminal.wezterm.enable = true;
|
||||||
|
terminal.ghostty.enable = true;
|
||||||
|
systemd.user.settings.Manager.DefaultEnvironment = {
|
||||||
|
TERMINAL = "ghostty";
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
# pueue.enable = true; # process queue in rust
|
||||||
|
ssh-agent.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs =
|
||||||
|
lib.attrsets.recursiveUpdate
|
||||||
|
{
|
||||||
|
bat.enable = true; # cat in rust
|
||||||
|
btop.enable = true;
|
||||||
|
# direnv.enable = true;
|
||||||
|
eza.enable = true; # ls in rust
|
||||||
|
fd.enable = true; # find in rust
|
||||||
|
fzf.enable = true; # fuzzy finder in rust
|
||||||
|
git.enable = true;
|
||||||
|
gitui.enable = true; # git ui in rust
|
||||||
|
jujutsu.enable = true; # vcs in rust
|
||||||
|
keychain.enable = true;
|
||||||
|
nix-index-database.comma.enable = true;
|
||||||
|
nix-index.enable = true;
|
||||||
|
nix-your-shell.enable = true;
|
||||||
|
pay-respects.enable = true; # thefuck in rust
|
||||||
|
ripgrep.enable = true; # grep in rust
|
||||||
|
zellij.enable = true;
|
||||||
|
zk.enable = true;
|
||||||
|
zoxide.enable = true; # fuzzy cd in rust
|
||||||
|
}
|
||||||
|
{
|
||||||
|
btop.settings.update_ms = 200;
|
||||||
|
# direnv.silent = true;
|
||||||
|
git = {
|
||||||
|
delta.enable = true; # diff in rust
|
||||||
|
signing.format = "ssh";
|
||||||
|
aliases = {
|
||||||
|
cl = "clone";
|
||||||
|
co = "checkout";
|
||||||
|
pom = "push origin main";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keychain.keys = ["id_ed25519"];
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs;
|
||||||
|
[
|
||||||
|
# development utils
|
||||||
|
alejandra # nix formatter in rust
|
||||||
|
# devenv # programming deps in rust
|
||||||
|
(mkIf config.programs.jujutsu.enable jj-fzf) # fuzzy finder jujutsu tui
|
||||||
|
just # make in rust
|
||||||
|
silicon # create code pics in rust
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
# console utils
|
||||||
|
# bluetuith # bluetooth tui in go
|
||||||
|
dua # disk space usage in rust
|
||||||
|
duf # better df in go
|
||||||
|
fend # calculator in rust
|
||||||
|
# mprocs # process runner in rust
|
||||||
|
ouch # archive manager in rust
|
||||||
|
# procs # ps in rust
|
||||||
|
rbw # bitwarden cli in rust
|
||||||
|
sd # sed in rust
|
||||||
|
systemctl-tui # systemctl tui in rust
|
||||||
|
trashy # trash cli in rust
|
||||||
|
up # ultimate plumber in go
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
# misc apps
|
||||||
|
adwaita-icon-theme
|
||||||
|
# vial # qmk keyboard configuring app
|
||||||
|
pinentry-qt # pinentry for rbw
|
||||||
|
(mkIf libvirtd.enable virt-manager) # libvirt gui
|
||||||
|
# waycheck # check wayland protocols
|
||||||
|
gpu-screen-recorder-gtk
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
# gui libadwaita apps
|
||||||
|
celluloid # mpv gui in libadwaita
|
||||||
|
# gnome-text-editor
|
||||||
|
helvum # pipewire patchbay in rust
|
||||||
|
junction # app chooser
|
||||||
|
mission-center # task manager in rust (partly)
|
||||||
|
(mkIf bluetooth.enable overskride) # bluetooth gui in rust
|
||||||
|
pika-backup # borg gui in rust
|
||||||
|
pwvucontrol # pipewire gui in rust
|
||||||
|
sonusmix # pipewire routing tool in rust
|
||||||
|
];
|
||||||
|
|
||||||
|
# xdg.desktopEntries.uni = {
|
||||||
|
# actions."Copy".exec = "fish -c \"~/.local/bin/uni --copy\"";
|
||||||
|
# categories = ["Utility" "X-Launch" "Network"];
|
||||||
|
# comment = "Select and open or copy URLs from a list.";
|
||||||
|
# exec = "fish -c \"~/.local/bin/uni\"";
|
||||||
|
# icon = "web-browser";
|
||||||
|
# name = "Uni URL Handler";
|
||||||
|
# startupNotify = true;
|
||||||
|
# terminal = false;
|
||||||
|
# type = "Application";
|
||||||
|
# };
|
||||||
|
}
|
Reference in New Issue
Block a user