Compare commits
32 Commits
5526b559cf
...
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
|
382
flake.lock
generated
382
flake.lock
generated
@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749155310,
|
||||
"narHash": "sha256-t0HfHg/1+TbSra5s6nNM0o4tnb3uqWedShSpZXsUMYY=",
|
||||
"lastModified": 1751740947,
|
||||
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "94981cf75a9f11da0b6dd6a1abbd7c50a36ab2d3",
|
||||
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -136,11 +136,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750195929,
|
||||
"narHash": "sha256-5gaf/9wuxtfKqAFnNlX74Vz2VMURa/UzyfuEyYv4tZw=",
|
||||
"lastModified": 1752318841,
|
||||
"narHash": "sha256-/Vfi3vmpBDaEDCdPYEOgUIUTyt2lOTRWVj3ESBRIChY=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "419a1cfaf34100008ff5fa97ce9ef3b194472f71",
|
||||
"rev": "b342f1adfa040963c9b00f4f1755def9f8588a58",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -205,11 +205,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -235,6 +235,22 @@
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
@ -250,21 +266,6 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
@ -294,11 +295,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -321,6 +322,26 @@
|
||||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -337,29 +358,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"stylix",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore_3",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"zig": "zig",
|
||||
"zon2nix": "zon2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747372754,
|
||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||
"lastModified": 1752293658,
|
||||
"narHash": "sha256-p4I9YxndfMpcHg9EVcy5+BACLp2GBjpVMbXuJ/glYnw=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "e67a62453d8e75e82b581a340e70896f722a7f0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -407,41 +426,19 @@
|
||||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1744584021,
|
||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||
"lastModified": 1748186689,
|
||||
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "48.1",
|
||||
"ref": "48.2",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
@ -453,11 +450,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750263149,
|
||||
"narHash": "sha256-VYSGDzq4ds4LIYvyEYG+RBqGMGBZhES2tvnmU4TJBn0=",
|
||||
"lastModified": 1752286566,
|
||||
"narHash": "sha256-A4nftqiNz2bNihz0bKY94Hq/6ydR6UQOcGioeL7iymY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "85e68c6a388ef1dfc799aaa01f00758c58e87d89",
|
||||
"rev": "392ddb642abec771d63688c49fa7bcbb9d2a5717",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -511,11 +508,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749238452,
|
||||
"narHash": "sha256-8qiKEWcxUrjpUpK+WyFNg/72C8rp70LUuyTD23T+SdQ=",
|
||||
"lastModified": 1751808145,
|
||||
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "c7225d73755a6c4c7c72f4d4f3925ea426e325a8",
|
||||
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -544,11 +541,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750234582,
|
||||
"narHash": "sha256-eulPalplIVzQYomlljpc/GZFDu2DvTMVAz2IVuTyDzc=",
|
||||
"lastModified": 1752270468,
|
||||
"narHash": "sha256-SEFxC9q+BMn1FkeaBRCDb0h7hZ2B+MSi8+u85y4rgQY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "bef1321f00e260ee3031aecd02faf4f53bcb5c66",
|
||||
"rev": "6821723b4421bdf163f1a1cc6fd472516d44b1e7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -637,11 +634,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749155776,
|
||||
"narHash": "sha256-t1PM0wxQLQwv2F2AW23uA7pm5giwmcgYEWbNIRct9r4=",
|
||||
"lastModified": 1750371812,
|
||||
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "396e8aa1c06274835b69da7f9a015fff9a9b7522",
|
||||
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -666,11 +663,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749145882,
|
||||
"narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=",
|
||||
"lastModified": 1750371198,
|
||||
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676",
|
||||
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -702,11 +699,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749186395,
|
||||
"narHash": "sha256-4PMO6bm0hHEOzGEhXRYSCLpkGT6lGwvax8GkLo+nK5w=",
|
||||
"lastModified": 1751567624,
|
||||
"narHash": "sha256-tUVODSZhvafXmuN+5SwZpNWV+2cvhSd+5IJ5TXu3YgI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprsunset",
|
||||
"rev": "4528cca4b2e4b44ed0a4e767a0ba493770d9d141",
|
||||
"rev": "4b2f0f9f46a6552930eecb979d18ac48d7079312",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -727,11 +724,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749819919,
|
||||
"narHash": "sha256-7F/KG8dwSH9JXdlpOVrEEArS+PJSn0iEnx5eVCk89/I=",
|
||||
"lastModified": 1751888065,
|
||||
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "57ab2a867d8b554ad89f29060c15efd11631db91",
|
||||
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -752,11 +749,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749145760,
|
||||
"narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=",
|
||||
"lastModified": 1751881472,
|
||||
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6",
|
||||
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -774,11 +771,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750172631,
|
||||
"narHash": "sha256-XwqAqM1UmKahdCwzp2UQHTpjnY0b82/VTfA8VpZIR6g=",
|
||||
"lastModified": 1752218319,
|
||||
"narHash": "sha256-fEvLVaVduwVotOib8NqO0e4N3dMsdA04Jlfm2sZQH5Q=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "7de24ceed8c7693191b74a7bda6d89c91f94c8f5",
|
||||
"rev": "d5da490d8c2553fc8d589b49f9c036973b9656a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -790,7 +787,7 @@
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
@ -831,11 +828,11 @@
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1749394952,
|
||||
"narHash": "sha256-WbWkzIvB0gqAdBLghdmUpGveY7MlAS2iMj3VEJnJ9yE=",
|
||||
"lastModified": 1751276396,
|
||||
"narHash": "sha256-oOYrnKStMsOXST+wKnzuSZ49h8Dr1Q3mIn2f5Kb5GAw=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "64c6e53a3999957c19ab95cda78bde466d8374cc",
|
||||
"rev": "59adb9ad1cbd915494fc35cd0e0a9d582ca9de74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -874,11 +871,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749960154,
|
||||
"narHash": "sha256-EWlr9MZDd+GoGtZB4QsDzaLyaDQPGnRY03MFp6u2wSg=",
|
||||
"lastModified": 1752305182,
|
||||
"narHash": "sha256-6i4Q68G7wzNq1m2+l3lJUYgGZ9PwULvSVJpRSTTC46o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "424a40050cdc5f494ec45e46462d288f08c64475",
|
||||
"rev": "ad29e2961dd0d58372384563bf00d510fc9f2e15",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -889,7 +886,7 @@
|
||||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
@ -899,11 +896,11 @@
|
||||
"rust-overlay": "rust-overlay_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750244952,
|
||||
"narHash": "sha256-678XeoTKUT1tEKSXaGA/rwHYQ2cBntr1I3Xw2D5Onew=",
|
||||
"lastModified": 1751591814,
|
||||
"narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "fd677bef9e0172bc0cea0daccae3d28a74be882c",
|
||||
"rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -914,11 +911,11 @@
|
||||
},
|
||||
"nixos-facter-modules": {
|
||||
"locked": {
|
||||
"lastModified": 1743671943,
|
||||
"narHash": "sha256-7sYig0+RcrR3sOL5M+2spbpFUHyEP7cnUvCaqFOBjyU=",
|
||||
"lastModified": 1750412875,
|
||||
"narHash": "sha256-uP9Xxw5XcFwjX9lNoYRpybOnIIe1BHfZu5vJnnPg3Jc=",
|
||||
"owner": "numtide",
|
||||
"repo": "nixos-facter-modules",
|
||||
"rev": "58ad9691670d293a15221d4a78818e0088d2e086",
|
||||
"rev": "14df13c84552a7d1f33c1cd18336128fbc43f920",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -929,16 +926,16 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1749521202,
|
||||
"narHash": "sha256-9SNHxww6HCKHPBg3h5u3dQqrxRqdGRlCl93PYhsNmOk=",
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b57e8a01883a0566ed6213694941ea7acc2093a0",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "pull/413627/head",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@ -961,11 +958,11 @@
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1750151854,
|
||||
"narHash": "sha256-3za+1J9FifMetO7E/kwgyW+dp+8pPBNlWKfcBovnn6M=",
|
||||
"lastModified": 1751274312,
|
||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ad5c70bcc5cc5178205161b7a7d61a6e80f6d244",
|
||||
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -984,15 +981,14 @@
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748730660,
|
||||
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
|
||||
"lastModified": 1751906969,
|
||||
"narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
|
||||
"rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1003,7 +999,7 @@
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
@ -1011,11 +1007,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749636823,
|
||||
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=",
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1056,6 +1052,7 @@
|
||||
"blueprint": "blueprint",
|
||||
"chaotic": "chaotic",
|
||||
"disko": "disko",
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"hyprsunset": "hyprsunset",
|
||||
@ -1081,11 +1078,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750127910,
|
||||
"narHash": "sha256-FIgEIS0RAlOyXGqoj/OufTfcKItYq668yPYL4SXdU0M=",
|
||||
"lastModified": 1752201818,
|
||||
"narHash": "sha256-d8KczaVT8WFEZdWg//tMAbv8EDyn2YTWcJvSY8gqKBU=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "45418795a73b77b7726c62ce265d68cf541ffb49",
|
||||
"rev": "bd8f8329780b348fedcd37b53dbbee48c08c496d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1123,11 +1120,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750214276,
|
||||
"narHash": "sha256-1kniuhH70q4TAC/xIvjFYH46aHiLrbIlcr6fdrRwO1A=",
|
||||
"lastModified": 1751251399,
|
||||
"narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "f9b2b2b1327ff6beab4662b8ea41689e0a57b8d4",
|
||||
"rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1143,11 +1140,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750119275,
|
||||
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
|
||||
"lastModified": 1751606940,
|
||||
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||
"owner": "mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
|
||||
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1163,13 +1160,8 @@
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"git-hooks": "git-hooks",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
@ -1184,11 +1176,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750205637,
|
||||
"narHash": "sha256-49wV81h1jnHJky1XNHfgwxNA0oCwSTLMz4hhrtWCM8A=",
|
||||
"lastModified": 1752250117,
|
||||
"narHash": "sha256-zCPV1a8w9hRn5ukOQwaAggA3X5cMmVsZVBYo8wLfLuU=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "82323751bcd45579c8d3a5dd05531c3c2a78e347",
|
||||
"rev": "0da583a359fd911d5cbfd2c789424b888b777a4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1248,11 +1240,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748180480,
|
||||
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
|
||||
"lastModified": 1750770351,
|
||||
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
|
||||
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1264,11 +1256,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748740859,
|
||||
"narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
|
||||
"lastModified": 1751159871,
|
||||
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
|
||||
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1280,11 +1272,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1725758778,
|
||||
"narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
|
||||
"lastModified": 1751158968,
|
||||
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
|
||||
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1293,28 +1285,6 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -1325,11 +1295,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748502384,
|
||||
"narHash": "sha256-nmTVxvbENySXZryA+TOGZ9nRr3m/+Xqc07Sy3aSN5Nw=",
|
||||
"lastModified": 1752245988,
|
||||
"narHash": "sha256-t0Sg3HWhDIIQISLGt2cYnD28RUI3SKKTVE9bFL9M5Ok=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "ade63feb9f1d91f1b1bf709bb139060579126c19",
|
||||
"rev": "33c1ee26f675902b4404f64288ad1facb9ecec22",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1366,11 +1336,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749490041,
|
||||
"narHash": "sha256-R9Dn9IyUdPaJHD2Oqd7XJnnxpka6M6UYw4Ld0iA46HM=",
|
||||
"lastModified": 1751300244,
|
||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "3cf35e178bc192ee51e3fddfd69e531e2c106a30",
|
||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1378,6 +1348,60 @@
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"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",
|
||||
|
13
flake.nix
13
flake.nix
@ -3,8 +3,8 @@
|
||||
|
||||
inputs = {
|
||||
# lix = {
|
||||
# url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.1.tar.gz";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0-2.tar.gz";
|
||||
# };
|
||||
# neve = {
|
||||
# inputs.nixvim.follows = "nixvim";
|
||||
@ -28,6 +28,11 @@
|
||||
url = "github:nix-community/disko/latest";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
ghostty = {
|
||||
url = "github:ghostty-org/ghostty";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-utils.inputs.systems.follows = "systems";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -72,9 +77,9 @@
|
||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
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'`
|
||||
url = "github:NixOS/nixpkgs/pull/413627/head";
|
||||
# url = "github:NixOS/nixpkgs/pull/413627/head";
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:mic92/sops-nix";
|
||||
@ -83,7 +88,7 @@
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
inputs = {
|
||||
home-manager.follows = "home-manager";
|
||||
# home-manager.follows = "home-manager";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
systems.follows = "systems";
|
||||
};
|
||||
|
@ -30,7 +30,7 @@
|
||||
};
|
||||
stylix = {
|
||||
enable = true;
|
||||
theme = "vesper";
|
||||
theme = "sandcastle";
|
||||
};
|
||||
locale = "uk_UA.UTF-8";
|
||||
misc = {
|
||||
|
@ -1,4 +1,9 @@
|
||||
{inputs, ...}: let
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.networking) hostId;
|
||||
disk = "/dev/disk/by-id/nvme-eui.000000000000000100a075244b5d6185";
|
||||
in {
|
||||
imports = with inputs; [
|
||||
@ -10,5 +15,5 @@ in {
|
||||
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";
|
||||
device = disk;
|
||||
content = {
|
||||
@ -25,7 +28,7 @@
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "luks-main";
|
||||
name = "luks-" + hostId;
|
||||
initrdUnlock = true;
|
||||
settings.allowDiscards = true;
|
||||
content = let
|
||||
|
@ -40,7 +40,7 @@
|
||||
};
|
||||
stylix = {
|
||||
enable = true;
|
||||
theme = "vesper";
|
||||
theme = "sandcastle";
|
||||
};
|
||||
locale = "uk_UA.UTF-8";
|
||||
misc = {
|
||||
|
@ -1,4 +1,9 @@
|
||||
{inputs, ...}: let
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.networking) hostId;
|
||||
disk = "/dev/disk/by-id/nvme-eui.e8238fa6bf530001001b444a44022ad0";
|
||||
in {
|
||||
imports = with inputs; [
|
||||
@ -10,5 +15,5 @@ in {
|
||||
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";
|
||||
device = disk;
|
||||
content = {
|
||||
@ -25,7 +28,7 @@
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "luks-main";
|
||||
name = "luks-" + hostId;
|
||||
initrdUnlock = true;
|
||||
settings.allowDiscards = true;
|
||||
content = {
|
||||
|
@ -1,20 +1,47 @@
|
||||
{pkgs, ...}: let
|
||||
cb-ucm-conf = pkgs.alsa-ucm-conf.overrideAttrs {
|
||||
wttsrc = pkgs.fetchFromGitHub {
|
||||
owner = "WeirdTreeThing";
|
||||
repo = "chromebook-ucm-conf";
|
||||
rev = "b6ce2a7";
|
||||
hash = "sha256-QRUKHd3RQmg1tnZU8KCW0AmDtfw/daOJ/H3XU5qWTCc=";
|
||||
cb-ucm-conf = with pkgs;
|
||||
alsa-ucm-conf.overrideAttrs {
|
||||
wttsrc = fetchFromGitHub {
|
||||
owner = "WeirdTreeThing";
|
||||
repo = "alsa-ucm-conf-cros";
|
||||
rev = "a4f0ed6cf59163fb571c33a81a6b40b6f53ed57d";
|
||||
hash = "sha256-H0BsRzHSEJ6XCZB/Rvb3w+uGCzr+kAvAwcHWqYEtp6w=";
|
||||
};
|
||||
unpackPhase = ''
|
||||
runHook preUnpack
|
||||
tar xf "$src"
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/alsa
|
||||
cp -r alsa-ucm*/ucm2 $out/share/alsa
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
postInstall = ''
|
||||
cp -R $wttsrc/common/* $out/share/alsa/ucm2/common
|
||||
cp -R $wttsrc/codecs/* $out/share/alsa/ucm2/codecs
|
||||
cp -R $wttsrc/platforms/* $out/share/alsa/ucm2/platforms
|
||||
cp -R $wttsrc/sof-rt5682 $out/share/alsa/ucm2/conf.d
|
||||
cp -R $wttsrc/sof-cs42l42 $out/share/alsa/ucm2/conf.d
|
||||
'';
|
||||
};
|
||||
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 = [
|
||||
{
|
||||
original = pkgs.alsa-ucm-conf;
|
||||
@ -22,6 +49,10 @@ in {
|
||||
}
|
||||
];
|
||||
|
||||
boot.extraModprobeConfig = ''
|
||||
options snd-intel-dspcfg dsp_driver=3
|
||||
'';
|
||||
|
||||
services.pipewire.wireplumber.configPackages = [
|
||||
(pkgs.writeTextDir "share/wireplumber/main.lua.d/51-increase-headroom.lua" ''
|
||||
rule = {
|
||||
@ -37,10 +68,19 @@ in {
|
||||
|
||||
table.insert(alsa_monitor.rules,rule)
|
||||
'')
|
||||
(pkgs.writeTextDir "share/wireplumber/main.lua.d/51-avs-dmic.lua" ''
|
||||
rule = {
|
||||
matches = {
|
||||
{
|
||||
{ "node.nick", "equals", "Internal Microphone" },
|
||||
},
|
||||
},
|
||||
apply_properties = {
|
||||
["audio.format"] = "S16LE",
|
||||
},
|
||||
}
|
||||
|
||||
table.insert(alsa_monitor.rules, rule)
|
||||
'')
|
||||
];
|
||||
boot = {
|
||||
extraModprobeConfig = ''
|
||||
options snd-intel-dspcfg dsp_driver=3
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
};
|
||||
stylix = {
|
||||
enable = true;
|
||||
theme = "gruvbox-dark-pale";
|
||||
theme = "sandcastle";
|
||||
};
|
||||
locale = "uk_UA.UTF-8";
|
||||
virt.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-second = "/dev/disk/by-id/nvme-WDC_PC_SN730_SDBPNTY-1T00-1101_21114D802446";
|
||||
in {
|
||||
@ -11,6 +16,6 @@ in {
|
||||
mountOptions = ["rw" "nosuid" "nodev"];
|
||||
};
|
||||
};
|
||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk-main;};
|
||||
disko.devices.disk.second = import ./disk-second.nix {inherit disk-second;};
|
||||
disko.devices.disk.main = import ./disk-main.nix {inherit disk-main hostId;};
|
||||
disko.devices.disk.second = import ./disk-second.nix {inherit disk-second hostId;};
|
||||
}
|
||||
|
@ -1,4 +1,7 @@
|
||||
{disk-main}: {
|
||||
{
|
||||
disk-main,
|
||||
hostId,
|
||||
}: {
|
||||
type = "disk";
|
||||
device = disk-main;
|
||||
content = {
|
||||
@ -25,7 +28,7 @@
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "luks-main";
|
||||
name = "luks-" + hostId;
|
||||
initrdUnlock = true;
|
||||
settings.allowDiscards = true;
|
||||
content = {
|
||||
|
@ -1,4 +1,7 @@
|
||||
{disk-second}: {
|
||||
{
|
||||
disk-second,
|
||||
hostId,
|
||||
}: {
|
||||
type = "disk";
|
||||
device = disk-second;
|
||||
content = {
|
||||
@ -8,7 +11,7 @@
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "luks-second";
|
||||
name = "luks-${hostId}-second";
|
||||
initrdUnlock = true;
|
||||
settings.allowDiscards = true;
|
||||
content = {
|
||||
|
@ -40,7 +40,7 @@
|
||||
};
|
||||
stylix = {
|
||||
enable = true;
|
||||
theme = "vesper";
|
||||
theme = "sandcastle";
|
||||
};
|
||||
locale = "uk_UA.UTF-8";
|
||||
};
|
||||
|
@ -1,4 +1,9 @@
|
||||
{inputs, ...}: let
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.networking) hostId;
|
||||
disk = "/dev/nvme0n1";
|
||||
in {
|
||||
imports = with inputs; [
|
||||
@ -10,5 +15,5 @@ in {
|
||||
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";
|
||||
device = disk;
|
||||
content = {
|
||||
@ -25,7 +29,7 @@
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "luks-main";
|
||||
name = "luks-" + hostId;
|
||||
initrdUnlock = true;
|
||||
settings.allowDiscards = true;
|
||||
content = {
|
||||
|
@ -45,7 +45,7 @@
|
||||
};
|
||||
stylix = {
|
||||
enable = true;
|
||||
theme = "gruvbox-dark-pale";
|
||||
theme = "sandcastle";
|
||||
};
|
||||
locale = "uk_UA.UTF-8";
|
||||
misc.qmk-vial.enable = true;
|
||||
|
@ -1,4 +1,9 @@
|
||||
{inputs, ...}: let
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.networking) hostId;
|
||||
disk = "/dev/disk/by-id/nvme-eui.0025385911b36714";
|
||||
in {
|
||||
imports = with inputs; [
|
||||
@ -11,5 +16,5 @@ in {
|
||||
};
|
||||
};
|
||||
# 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,21 +1,24 @@
|
||||
{
|
||||
perSystem,
|
||||
osConfig,
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
# perSystem,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
# inherit (lib.strings) removeSuffix;
|
||||
inherit (lib) mkIf mkEnableOption mkDefault mkForce getExe;
|
||||
inherit (config.lib.stylix) colors;
|
||||
# inherit (osConfig.module.stylix) theme;
|
||||
inherit (lib) mkIf mkEnableOption mkForce getExe;
|
||||
inherit (osConfig.networking) hostName;
|
||||
|
||||
cfg = config.desktop.niri;
|
||||
|
||||
ifLaptop = mkIf (hostName != "dunamis");
|
||||
launcher = getExe pkgs.walker;
|
||||
lockscreen = getExe pkgs.gtklock;
|
||||
|
||||
commonArgs = {
|
||||
inherit config inputs lib osConfig pkgs;
|
||||
launcher = getExe pkgs.walker;
|
||||
lockscreen = getExe pkgs.gtklock;
|
||||
};
|
||||
in {
|
||||
imports = with inputs; [
|
||||
walker.homeManagerModules.default
|
||||
@ -30,6 +33,24 @@ in {
|
||||
wpaperd.enable = true;
|
||||
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 = {
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = "icon:close";
|
||||
@ -42,37 +63,14 @@ in {
|
||||
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 = {
|
||||
enable = true;
|
||||
platformTheme.name = "gtk3";
|
||||
};
|
||||
|
||||
programs = {
|
||||
walker = import ./programs/walker {inherit config inputs pkgs;};
|
||||
waybar = import ./programs/waybar {inherit config colors getExe ifLaptop pkgs;};
|
||||
};
|
||||
|
||||
xdg.configFile.niri = import ./niri.nix {inherit config hostName launcher lockscreen;};
|
||||
services = import ./services {inherit pkgs lockscreen getExe perSystem;};
|
||||
programs.walker = import ./programs/walker commonArgs;
|
||||
programs.waybar = import ./programs/waybar commonArgs;
|
||||
services = import ./services commonArgs;
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
@ -82,13 +80,9 @@ in {
|
||||
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
|
||||
]
|
||||
++ [
|
||||
@ -101,6 +95,10 @@ in {
|
||||
];
|
||||
|
||||
xdg = {
|
||||
configFile = {
|
||||
niri = import ./niri.nix commonArgs;
|
||||
"mimeapps.list".force = true;
|
||||
};
|
||||
mime.enable = true;
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
@ -129,12 +127,11 @@ in {
|
||||
};
|
||||
systemd.user = {
|
||||
settings.Manager.DefaultEnvironment = {
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
DISPLAY = ":123";
|
||||
};
|
||||
targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie
|
||||
services = let
|
||||
mkGraphicalService = config: graphicalService // config;
|
||||
mkGraphicalService = config: lib.attrsets.recursiveUpdate graphicalService config;
|
||||
graphicalService = {
|
||||
Install.WantedBy = ["niri.service"];
|
||||
Unit = {
|
||||
@ -151,33 +148,25 @@ in {
|
||||
in
|
||||
lib.mkMerge [
|
||||
{
|
||||
udiskie = mkGraphicalService {};
|
||||
waybar = mkGraphicalService {};
|
||||
copyq = mkGraphicalService {Service.Environment = mkForce "QT_QPA_PLATFORM=wayland";};
|
||||
network-manager-applet = mkGraphicalService {};
|
||||
copyq = mkGraphicalService {
|
||||
Service =
|
||||
graphicalService.Service
|
||||
// {
|
||||
Environment = mkForce "QT_QPA_PLATFORM=wayland";
|
||||
};
|
||||
};
|
||||
xwayland-satellite = mkGraphicalService {
|
||||
Service =
|
||||
graphicalService.Service
|
||||
// {
|
||||
Type = "simple";
|
||||
ExecStart = getExe pkgs.xwayland-satellite + " :123";
|
||||
};
|
||||
};
|
||||
wpaperd = mkGraphicalService {
|
||||
Service =
|
||||
mkDefault graphicalService.Service;
|
||||
};
|
||||
udiskie = mkGraphicalService {};
|
||||
walker = mkGraphicalService {};
|
||||
waybar = mkGraphicalService {};
|
||||
wpaperd =
|
||||
mkGraphicalService {}
|
||||
// {
|
||||
Service.TimeoutStopSec = mkForce "1";
|
||||
Service.Restart = mkForce "always";
|
||||
};
|
||||
xwayland-satellite = mkGraphicalService {
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = getExe pkgs.xwayland-satellite + " :123";
|
||||
};
|
||||
};
|
||||
# gnome-polkit-agent = mkGraphicalService {
|
||||
# Service =
|
||||
# graphicalService.Service
|
||||
# // {
|
||||
# Service = {
|
||||
# Type = "simple";
|
||||
# ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1";
|
||||
# };
|
||||
@ -185,20 +174,18 @@ in {
|
||||
}
|
||||
(lib.mkIf (hostName == "morphius") {
|
||||
lisgd = mkGraphicalService {
|
||||
Service =
|
||||
graphicalService.Service
|
||||
// {
|
||||
# Group = "input";
|
||||
Type = "simple";
|
||||
ExecStart =
|
||||
"${pkgs.lisgd}/bin/lisgd"
|
||||
+ " -d /dev/input/by-path/pci-0000:00:15.1-platform-i2c_designware.1-event"
|
||||
+ " -g \"1,DU,TL,*,P,niri msg action toggle-overview\""
|
||||
+ " -g \"3,UD,T,*,P,niri msg action focus-workspace-up\""
|
||||
+ " -g \"3,DU,B,*,P,niri msg action focus-workspace-down\""
|
||||
+ " -g \"3,LR,L,*,P,niri msg action focus-column-left\""
|
||||
+ " -g \"3,RL,R,*,P,niri msg action focus-column-right\"";
|
||||
};
|
||||
Service = {
|
||||
# Group = "input";
|
||||
Type = "simple";
|
||||
ExecStart =
|
||||
"${pkgs.lisgd}/bin/lisgd"
|
||||
+ " -d /dev/input/by-path/pci-0000:00:15.1-platform-i2c_designware.1-event"
|
||||
+ " -g \"1,DU,TL,*,P,niri msg action toggle-overview\""
|
||||
+ " -g \"3,UD,T,*,P,niri msg action focus-workspace-up\""
|
||||
+ " -g \"3,DU,B,*,P,niri msg action focus-workspace-down\""
|
||||
+ " -g \"3,LR,L,*,P,niri msg action focus-column-left\""
|
||||
+ " -g \"3,RL,R,*,P,niri msg action focus-column-right\"";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
|
@ -1,12 +1,14 @@
|
||||
{
|
||||
config,
|
||||
hostName,
|
||||
osConfig,
|
||||
launcher,
|
||||
lockscreen,
|
||||
...
|
||||
}: let
|
||||
inherit (config.lib.stylix) colors;
|
||||
inherit (config.stylix) cursor;
|
||||
inherit (osConfig.networking) hostName;
|
||||
|
||||
keyboard =
|
||||
if hostName == "eldrid"
|
||||
then "chromeos"
|
||||
@ -91,14 +93,13 @@ in {
|
||||
in ''
|
||||
environment {
|
||||
DISPLAY ":123"
|
||||
QT_QPA_PLATFORMTHEME "gtk3"
|
||||
CLUTTER_BACKEND "wayland"
|
||||
GDK_BACKEND "wayland"
|
||||
MOZ_ENABLE_WAYLAND "1"
|
||||
MOZ_WEBRENDER "1"
|
||||
GDK_BACKEND "wayland"
|
||||
QT_QPA_PLATFORM "wayland"
|
||||
XDG_SESSION_TYPE "wayland"
|
||||
CLUTTER_BACKEND "wayland"
|
||||
SDL_VIDEODRIVER "wayland"
|
||||
XDG_SESSION_TYPE "wayland"
|
||||
}
|
||||
|
||||
input {
|
||||
@ -159,29 +160,30 @@ in {
|
||||
}
|
||||
|
||||
struts {
|
||||
left 33
|
||||
right 33
|
||||
left 36
|
||||
right 36
|
||||
}
|
||||
|
||||
tab-indicator {
|
||||
active-color "#${colors.base04}"
|
||||
inactive-color "#${colors.base03}"
|
||||
corner-radius 4
|
||||
gap 6
|
||||
corner-radius 6
|
||||
gap 3
|
||||
gaps-between-tabs 3
|
||||
length total-proportion=0.3
|
||||
// length total-proportion=0.3
|
||||
place-within-column
|
||||
position "left"
|
||||
width 6
|
||||
}
|
||||
focus-ring {
|
||||
off
|
||||
width 3
|
||||
active-gradient from="#${colors.base0D}" to="#${colors.base0F}" angle=40 relative-to="workspace-view"
|
||||
width 1
|
||||
active-color "#${colors.base0D}"
|
||||
inactive-color "#${colors.base03}"
|
||||
urgent-color "#${colors.base08}"
|
||||
}
|
||||
border {
|
||||
width 3
|
||||
off
|
||||
width 1
|
||||
active-color "#${colors.base0D}"
|
||||
inactive-color "#${colors.base03}"
|
||||
urgent-color "#${colors.base08}"
|
||||
@ -215,6 +217,12 @@ in {
|
||||
off
|
||||
}
|
||||
}
|
||||
layer-rule {
|
||||
match namespace="waybar"
|
||||
match at-startup=true
|
||||
|
||||
opacity 0.99 // fixes the black fill
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match title="Картинка в картинці"
|
||||
@ -250,6 +258,7 @@ in {
|
||||
block-out-from "screencast"
|
||||
}
|
||||
|
||||
|
||||
binds {
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
|
@ -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,
|
||||
mkDefault,
|
||||
lib,
|
||||
}: {
|
||||
enable = true;
|
||||
settings = {
|
||||
@ -15,7 +15,7 @@
|
||||
match-mode = "fuzzy";
|
||||
icon-theme = config.dconf.settings."org/gnome/desktop/interface".icon-theme;
|
||||
};
|
||||
border = mkDefault {
|
||||
border = lib.mkDefault {
|
||||
width = 3;
|
||||
radius = 12;
|
||||
};
|
||||
|
@ -146,32 +146,30 @@
|
||||
h_align = "center";
|
||||
v_align = "center";
|
||||
box = {
|
||||
width = 450;
|
||||
h_align = "center";
|
||||
v_align = "center";
|
||||
# spacing = 12;
|
||||
orientation = "vertical";
|
||||
search = {
|
||||
margins = {
|
||||
start = 8;
|
||||
top = 8;
|
||||
end = 8;
|
||||
bottom = 0;
|
||||
};
|
||||
h_align = "top";
|
||||
margins = {
|
||||
start = 3;
|
||||
top = 3;
|
||||
end = 3;
|
||||
bottom = 3;
|
||||
};
|
||||
};
|
||||
scroll = {
|
||||
overlay_scrolling = true;
|
||||
list = {
|
||||
margins = {
|
||||
bottom = 8;
|
||||
top = 4;
|
||||
start = 8;
|
||||
end = 8;
|
||||
bottom = 3;
|
||||
top = 0;
|
||||
start = 3;
|
||||
end = 3;
|
||||
};
|
||||
item = {
|
||||
icon.theme = "${config.gtk.iconTheme.name}";
|
||||
spacing = 4;
|
||||
spacing = 3;
|
||||
activation_label = {
|
||||
x_align = 0.5;
|
||||
y_align = 0.5;
|
||||
@ -232,8 +230,8 @@
|
||||
#window {
|
||||
background: @base00;
|
||||
color: @base05;
|
||||
border-radius: 20px;
|
||||
border: 3px solid @base0D;
|
||||
border-radius: 12px;
|
||||
border: 1px solid @base0D;
|
||||
}
|
||||
|
||||
#box {
|
||||
@ -242,7 +240,7 @@
|
||||
|
||||
#search {
|
||||
background: @base01;
|
||||
border-radius: 12px 12px 6px 6px;
|
||||
border-radius: 9px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
@ -251,12 +249,12 @@
|
||||
#typeahead {
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
border-radius: 12px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
#input > *:first-child,
|
||||
#typeahead > *:first-child {
|
||||
margin-right: 12px;
|
||||
margin-right: 3px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
@ -269,8 +267,8 @@
|
||||
}
|
||||
|
||||
#list {
|
||||
padding: 8px;
|
||||
border-radius: 6px 6px 12px 12px;
|
||||
padding: 3px;
|
||||
border-radius: 9px;
|
||||
background: @base01;
|
||||
}
|
||||
|
||||
@ -281,7 +279,7 @@
|
||||
child:selected,
|
||||
child:hover {
|
||||
box-shadow: none;
|
||||
border-radius: 8px;
|
||||
border-radius: 6px;
|
||||
background: @base02;
|
||||
}
|
||||
|
||||
|
@ -1,330 +1,537 @@
|
||||
{
|
||||
colors,
|
||||
config,
|
||||
getExe,
|
||||
ifLaptop,
|
||||
lib,
|
||||
osConfig,
|
||||
pkgs,
|
||||
launcher,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (config.lib.stylix) colors;
|
||||
|
||||
ifLaptop = lib.mkIf (osConfig.networking.hostName != "dunamis");
|
||||
in {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "graphical-session.target";
|
||||
};
|
||||
settings = {
|
||||
bar-0 = {
|
||||
# layer = "top";
|
||||
position = "bottom";
|
||||
height = 24;
|
||||
spacing = 6;
|
||||
margin-left = 33 + 3;
|
||||
margin-right = 33 + 3;
|
||||
margin-bottom = 3;
|
||||
reload_style_on_change = true;
|
||||
modules-left = [
|
||||
"niri/language"
|
||||
"niri/workspaces"
|
||||
"wlr/taskbar"
|
||||
settings.bottom = {
|
||||
position = "bottom";
|
||||
height = 33;
|
||||
spacing = 0;
|
||||
# margin-left = 36 + 3;
|
||||
# margin-right = 36 + 3;
|
||||
# margin-bottom = 3;
|
||||
modules-left = [
|
||||
"custom/launcher"
|
||||
"wlr/taskbar"
|
||||
# "privacy"
|
||||
];
|
||||
modules-right = [
|
||||
"niri/workspaces"
|
||||
"niri/language"
|
||||
];
|
||||
"niri/workspaces" = {
|
||||
format = "{index}";
|
||||
};
|
||||
"niri/language" = {
|
||||
format = "{}";
|
||||
format-en = "🇺🇸";
|
||||
format-uk = "🇺🇦";
|
||||
};
|
||||
"group/laptop" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"backlight"
|
||||
"battery"
|
||||
"power-profiles-daemon"
|
||||
];
|
||||
modules-center = ["clock"];
|
||||
modules-right = [
|
||||
(ifLaptop "group/laptop")
|
||||
"wireplumber"
|
||||
"tray"
|
||||
"privacy"
|
||||
(ifLaptop "power-profiles-daemon")
|
||||
"idle_inhibitor"
|
||||
"custom/notification"
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
"niri/workspaces" = {
|
||||
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" = {
|
||||
format = "{}";
|
||||
format-en = "🇺🇸";
|
||||
format-uk = "🇺🇦";
|
||||
};
|
||||
"custom/separator" = {
|
||||
format = "";
|
||||
interval = "once";
|
||||
tooltip = false;
|
||||
};
|
||||
"group/laptop" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"battery"
|
||||
"backlight"
|
||||
];
|
||||
};
|
||||
"backlight" = {
|
||||
format = "{icon} {percent}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
"tray" = {
|
||||
icon-size = 20;
|
||||
spacing = 6;
|
||||
};
|
||||
"clock" = {
|
||||
interval = 1;
|
||||
format = "{:%B %d - %H:%M - %A}";
|
||||
tooltip = false;
|
||||
# tooltip-format = "{%y.%m.%d - %B %d, %A}";
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-full = " {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-alt = "{icon} {time}";
|
||||
format-icons = ["" "" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
mpris = {
|
||||
format = "{player_icon} {dynamic}";
|
||||
format-paused = "{status_icon} <i>{dynamic}</i>";
|
||||
playing-len = 30;
|
||||
playing-paused = 30;
|
||||
player-icons = {
|
||||
default = "▶";
|
||||
mpv = "🎵";
|
||||
};
|
||||
status-icons = {paused = "⏸";};
|
||||
};
|
||||
"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 = "{icon} {volume}%";
|
||||
format-muted = "";
|
||||
format-icons = ["" "" ""];
|
||||
on-click = getExe pkgs.pwvucontrol;
|
||||
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||
};
|
||||
"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 = 2;
|
||||
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}";
|
||||
icon-size = 20;
|
||||
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
};
|
||||
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 = 16;
|
||||
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
@define-color base00 #${colors.base00};
|
||||
@define-color base01 #${colors.base01};
|
||||
@define-color base02 #${colors.base02};
|
||||
@define-color base03 #${colors.base03};
|
||||
@define-color base04 #${colors.base04};
|
||||
@define-color base05 #${colors.base05};
|
||||
@define-color base06 #${colors.base06};
|
||||
@define-color base07 #${colors.base07};
|
||||
@define-color base08 #${colors.base08};
|
||||
@define-color base09 #${colors.base09};
|
||||
@define-color base0A #${colors.base0A};
|
||||
@define-color base0B #${colors.base0B};
|
||||
@define-color base0C #${colors.base0C};
|
||||
@define-color base0D #${colors.base0D};
|
||||
@define-color base0E #${colors.base0E};
|
||||
@define-color base0F #${colors.base0F};
|
||||
* {
|
||||
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
|
||||
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}";
|
||||
};
|
||||
"niri/language" = {
|
||||
format = "{}";
|
||||
format-en = "🇺🇸";
|
||||
format-uk = "🇺🇦";
|
||||
};
|
||||
"group/laptop" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"backlight"
|
||||
"battery"
|
||||
"power-profiles-daemon"
|
||||
];
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
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};
|
||||
|
||||
* {
|
||||
/* all: unset; */
|
||||
font-family: Symbols Nerd Font, FontAwesome, ${config.stylix.fonts.sansSerif.name};
|
||||
font-weight: 500;
|
||||
font-size: 100%;
|
||||
}
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
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; */
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.modules-left, .modules-center, .modules-right, window#waybar {
|
||||
background-color: @base00;
|
||||
border-radius: 24px;
|
||||
border: 3px solid @base0D;
|
||||
color: @base05;
|
||||
padding: 0 0.4em;
|
||||
}
|
||||
tooltip {
|
||||
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 {
|
||||
background: @base01;
|
||||
border: 1px solid @base0E;
|
||||
}
|
||||
tooltip label {
|
||||
color: @base05;
|
||||
}
|
||||
button {
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
border: 1px solid @base0D;
|
||||
border-radius: 16px;
|
||||
}
|
||||
button:hover {
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @base05;
|
||||
}
|
||||
|
||||
button {
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
}
|
||||
#mode {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
box-shadow: inset 0 -3px @base05;
|
||||
}
|
||||
#battery,
|
||||
#backlight,
|
||||
/* #workspaces,
|
||||
#taskbar,
|
||||
#privacy, */
|
||||
#taskbar button,
|
||||
#language,
|
||||
#clock,
|
||||
#battery,
|
||||
#backlight,
|
||||
#wireplumber,
|
||||
#workspaces button,
|
||||
#custom-notification,
|
||||
#idle_inhibitor,
|
||||
#power-profiles-daemon,
|
||||
#privacy-item,
|
||||
#custom-separator {
|
||||
padding: 0 0.3em;
|
||||
}
|
||||
#tray button {
|
||||
padding: 0 0.3em;
|
||||
margin: 0 0.2em;
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: @base0D;
|
||||
}
|
||||
#taskbar button:hover {
|
||||
box-shadow: transparent;
|
||||
}
|
||||
#taskbar.empty,
|
||||
window#empty {
|
||||
}
|
||||
|
||||
#backlight,
|
||||
#battery,
|
||||
#clock,
|
||||
#cpu,
|
||||
#custom-launcher,
|
||||
#custom-notification,
|
||||
#idle_inhibitor,
|
||||
#language,
|
||||
#memory,
|
||||
#network,
|
||||
#power-profiles-daemon,
|
||||
#privacy,
|
||||
#privacy-item,
|
||||
#taskbar button,
|
||||
#taskbar,
|
||||
#tray button,
|
||||
#tray,
|
||||
#wireplumber,
|
||||
#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,
|
||||
#idle_inhibitor,
|
||||
#power-profiles-daemon,
|
||||
#wireplumber {
|
||||
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;
|
||||
}
|
||||
|
||||
#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 {
|
||||
padding: 0 0.4em;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
#workspaces button.active,
|
||||
#taskbar button.active {
|
||||
background-color: @base02;
|
||||
}
|
||||
|
||||
#workspaces button:hover,
|
||||
#workspaces button.active:hover,
|
||||
#taskbar button.active:hover,
|
||||
#taskbar button:hover {
|
||||
background-color: @base0D;
|
||||
color: @base00;
|
||||
}
|
||||
|
||||
#taskbar.empty {
|
||||
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;
|
||||
background-color: @base08;
|
||||
}
|
||||
#privacy-item.screenshare {
|
||||
color: @base0C;
|
||||
}
|
||||
#privacy-item.audio-in {
|
||||
color: @base0E;
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
/* #workspaces button.active {
|
||||
color: @base00;
|
||||
background-color: @base0D;
|
||||
} */
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
@ -1,25 +1,26 @@
|
||||
{
|
||||
getExe,
|
||||
perSystem,
|
||||
lib,
|
||||
osConfig,
|
||||
pkgs,
|
||||
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;
|
||||
playerctld.enable = true;
|
||||
swaync = import ./swaync;
|
||||
swayosd.enable = true;
|
||||
udiskie.enable = true;
|
||||
wpaperd.enable = true;
|
||||
copyq = {
|
||||
enable = true;
|
||||
package = perSystem.nixpkgs-stable.copyq;
|
||||
};
|
||||
gnome-keyring = {
|
||||
enable = true;
|
||||
components = ["secrets"];
|
||||
};
|
||||
}
|
||||
{
|
||||
gammastep = {
|
||||
enable = true;
|
||||
provider = "manual";
|
||||
latitude = 49.6;
|
||||
longitude = 36.1;
|
||||
@ -29,34 +30,28 @@
|
||||
night = 3000;
|
||||
};
|
||||
};
|
||||
swayosd = {
|
||||
enable = true;
|
||||
topMargin = 0.8;
|
||||
gnome-keyring.components = ["secrets"];
|
||||
hypridle.settings = {
|
||||
general = {
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
lock_cmd = "pidof ${lockscreen} || ${lockscreen}";
|
||||
# unlock_cmd = "loginctl unlock-session";
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "pidof ${lockscreen} || ${lockscreen}";
|
||||
}
|
||||
{
|
||||
timeout = 601;
|
||||
on-timeout = lib.getExe pkgs.niri + " msg action power-off-monitors";
|
||||
}
|
||||
];
|
||||
};
|
||||
swayosd.topMargin = 0.8;
|
||||
udiskie = {
|
||||
enable = true;
|
||||
automount = false;
|
||||
notify = true;
|
||||
tray = "auto";
|
||||
};
|
||||
hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
lock_cmd = "pidof ${lockscreen} || ${lockscreen}";
|
||||
# unlock_cmd = "loginctl unlock-session";
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "pidof ${lockscreen} || ${lockscreen}";
|
||||
}
|
||||
{
|
||||
timeout = 601;
|
||||
on-timeout = getExe pkgs.niri + " msg action power-off-monitors";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -17,17 +17,17 @@
|
||||
control-center-layer = "overlay";
|
||||
|
||||
# Notification settings
|
||||
positionX = "right";
|
||||
positionX = "left";
|
||||
positionY = "top";
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = false;
|
||||
notification-icon-size = 32;
|
||||
notification-icon-size = 48;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
notification-window-width = 400;
|
||||
|
||||
# Control center settings
|
||||
control-center-positionX = "right";
|
||||
control-center-positionX = "left";
|
||||
control-center-positionY = "top";
|
||||
control-center-width = 500;
|
||||
control-center-exclusive-zone = true;
|
||||
@ -59,8 +59,12 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
# TODO: disable stylix, redo everything
|
||||
style = ''
|
||||
/*** Global ***/
|
||||
* {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
progress,
|
||||
progressbar,
|
||||
trough {
|
||||
@ -70,20 +74,19 @@
|
||||
.app-icon,
|
||||
.image {
|
||||
-gtk-icon-effect: none;
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
border-radius: 12px;
|
||||
margin: 0.5rem;
|
||||
border-radius: 9px;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin: 24px;
|
||||
padding: 0.2rem;
|
||||
border-radius: 16px;
|
||||
margin: 12px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
/*** Notifications ***/
|
||||
.notification-group.collapsed
|
||||
.notification-row:not(:last-child)
|
||||
.notification-action,
|
||||
@ -103,21 +106,21 @@
|
||||
.notification.normal,
|
||||
.notification.critical,
|
||||
.control-center {
|
||||
margin: 16px;
|
||||
border-radius: 7px;
|
||||
border-radius: 12px;
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.floating-notifications,
|
||||
.notification-content {
|
||||
border-radius: 7px;
|
||||
padding: 0.5rem;
|
||||
margin: 3px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.control-center-list {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/*** Widgets ***/
|
||||
/* Title widget */
|
||||
.widget-title {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
@ -127,11 +130,10 @@
|
||||
}
|
||||
|
||||
.widget-title > button {
|
||||
border-radius: 16px;
|
||||
border-radius: 9px;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
/* DND Widget */
|
||||
.widget-dnd {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
@ -141,23 +143,23 @@
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
border-radius: 16px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
margin: 3px;
|
||||
border-radius: 6px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Mpris widget */
|
||||
.widget-mpris .widget-mpris-player {
|
||||
border-radius: 16px;
|
||||
border-radius: 12px;
|
||||
margin: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
|
||||
border-radius: 16px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .widget-mpris-title {
|
||||
@ -169,9 +171,8 @@
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player > box > button {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 16px;
|
||||
padding: 0.25rem;
|
||||
border-radius: 6px;
|
||||
padding: 3px;
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
perSystem,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
@ -12,6 +13,7 @@ in {
|
||||
config = mkIf cfg.enable {
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
package = perSystem.ghostty.ghostty;
|
||||
settings = {
|
||||
gtk-single-instance = true;
|
||||
window-decoration = "client";
|
||||
|
@ -24,14 +24,18 @@ in {
|
||||
pam.services.gtklock = {};
|
||||
soteria.enable = true; # polkit agent in rust
|
||||
};
|
||||
services.gvfs.enable = true;
|
||||
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 config.services.displayManager.autoLogin.enable {
|
||||
(mkIf (cfg.enable
|
||||
&& config.services.displayManager.autoLogin.enable) {
|
||||
services.greetd.settings.initial_session = {
|
||||
command = "niri-session";
|
||||
user = config.services.displayManager.autoLogin.user;
|
||||
|
@ -34,4 +34,12 @@
|
||||
"sntrup761x25519-sha512@openssh.com"
|
||||
];
|
||||
};
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
SystemMaxUse=1G
|
||||
'';
|
||||
systemd.coredump.extraConfig = ''
|
||||
Storage=none
|
||||
ProcessSizeMax=0
|
||||
'';
|
||||
}
|
||||
|
@ -12,6 +12,8 @@
|
||||
|
||||
cfg = config.module.stylix;
|
||||
|
||||
fromBase16Schemes = f: "${pkgs.base16-schemes}/share/themes/${f}.yaml";
|
||||
|
||||
interPackage = pkgs.inter-nerdfont;
|
||||
iosevkaPackage = pkgs.nerd-fonts.iosevka;
|
||||
iosevkaTermPackage = pkgs.nerd-fonts.iosevka-term;
|
||||
@ -27,6 +29,11 @@
|
||||
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";
|
||||
@ -72,7 +79,7 @@
|
||||
themes = {
|
||||
rose-pine-dawn = {
|
||||
polarity = "light";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
|
||||
scheme = fromBase16Schemes "rose-pine-dawn";
|
||||
wallpaper = wallpapers.cyber-dawn;
|
||||
|
||||
serif = {
|
||||
@ -93,12 +100,12 @@
|
||||
};
|
||||
rose-pine-moon = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml";
|
||||
scheme = fromBase16Schemes "rose-pine-moon";
|
||||
wallpaper = wallpapers.cyber-dawn;
|
||||
|
||||
serif = {
|
||||
package = geistPackage;
|
||||
name = "Geist Light";
|
||||
package = interPackage;
|
||||
name = "Inter Nerd Font";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
@ -112,9 +119,30 @@
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
sandcastle = {
|
||||
polarity = "dark";
|
||||
scheme = fromBase16Schemes "sandcastle";
|
||||
wallpaper = wallpapers.abstract.waves;
|
||||
|
||||
serif = {
|
||||
package = geistPackage;
|
||||
name = "Geist";
|
||||
};
|
||||
|
||||
monospace = {
|
||||
package = geistMonoPackage;
|
||||
name = "GeistMono NFM";
|
||||
};
|
||||
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
gruvbox-dark-pale = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-pale.yaml";
|
||||
scheme = fromBase16Schemes "gruvbox-dark-pale";
|
||||
wallpaper = wallpapers.mountains-sepia;
|
||||
|
||||
serif = {
|
||||
@ -135,7 +163,7 @@
|
||||
};
|
||||
nord = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
|
||||
scheme = fromBase16Schemes "nord";
|
||||
wallpaper = fetchurl {
|
||||
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
||||
name = "wallhaven-l8l9gq.png";
|
||||
@ -161,7 +189,7 @@
|
||||
|
||||
nord-light = {
|
||||
polarity = "light";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/nord-light.yaml";
|
||||
scheme = fromBase16Schemes "nord-light";
|
||||
wallpaper = fetchurl {
|
||||
url = "https://w.wallhaven.cc/full/l8/wallhaven-l8l9gq.png";
|
||||
name = "wallhaven-l8l9gq.png";
|
||||
@ -187,7 +215,7 @@
|
||||
|
||||
helios = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/helios.yaml";
|
||||
scheme = fromBase16Schemes "helios";
|
||||
wallpaper = fetchurl {
|
||||
url = "https://w.wallhaven.cc/full/lq/wallhaven-lqorw2.png";
|
||||
name = "wallhaven-lqorw2.png";
|
||||
@ -213,7 +241,7 @@
|
||||
|
||||
sulphurpool = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool.yaml";
|
||||
scheme = fromBase16Schemes "atelier-sulphurpool";
|
||||
wallpaper = fetchurl {
|
||||
url = "https://w.wallhaven.cc/full/rd/wallhaven-rd5q3m.jpg";
|
||||
name = "wallhaven-rd5q3m.jpg";
|
||||
@ -239,7 +267,7 @@
|
||||
himalaya = {
|
||||
# lightly pink like himalayan salt
|
||||
polarity = "light";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/atelier-plateau-light.yaml";
|
||||
scheme = fromBase16Schemes "atelier-plateau-light";
|
||||
wallpaper = wallpapers.mountains-pink;
|
||||
|
||||
serif = {
|
||||
@ -260,7 +288,7 @@
|
||||
};
|
||||
vesper = {
|
||||
polarity = "dark";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/vesper.yaml";
|
||||
scheme = fromBase16Schemes "vesper";
|
||||
wallpaper = wallpapers.abstract.squares;
|
||||
|
||||
serif = {
|
||||
@ -281,7 +309,7 @@
|
||||
};
|
||||
github = {
|
||||
polarity = "light";
|
||||
scheme = "${pkgs.base16-schemes}/share/themes/github.yaml";
|
||||
scheme = fromBase16Schemes "github";
|
||||
wallpaper = wallpapers.abstract.squares;
|
||||
|
||||
serif = {
|
||||
@ -323,6 +351,7 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
fonts.packages = [pkgs.nerd-fonts.symbols-only];
|
||||
stylix =
|
||||
{
|
||||
enable = true;
|
||||
|
@ -1,8 +1,10 @@
|
||||
{
|
||||
pkgs,
|
||||
# inputs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# imports = with inputs; [lix.nixosModules.default];
|
||||
nix = {
|
||||
package = pkgs.lixPackageSets.latest.lix;
|
||||
channel.enable = false;
|
||||
|
@ -69,7 +69,7 @@
|
||||
"com.obsproject.Studio"
|
||||
"com.usebottles.bottles" # wine containers
|
||||
"de.capypara.FieldMonitor" # libvirt
|
||||
"de.haeckerfelix.Fragments" # torrents
|
||||
"org.qbittorrent.qBittorrent" # torrents
|
||||
"io.github.amit9838.mousam" # weather
|
||||
"io.github.finefindus.Hieroglyphic" # find latex symbols (in rust)
|
||||
"io.github.lainsce.Khronos" # log time for tasks
|
||||
@ -129,6 +129,7 @@
|
||||
"org.gimp.GIMP" = {inherit (homeNoNetwork) Context;};
|
||||
"org.kde.kdenlive" = {inherit (homeNoNetwork) Context;};
|
||||
"org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret";
|
||||
"org.qbittorrent.qBittorrent".Context.filesystems = ["host"]; # evil
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
{
|
||||
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;
|
||||
@ -20,46 +23,46 @@ in {
|
||||
};
|
||||
|
||||
services = {
|
||||
pueue.enable = true; # process queue in rust
|
||||
# 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";
|
||||
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"];
|
||||
};
|
||||
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
|
||||
zellij.enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
@ -76,20 +79,21 @@ in {
|
||||
dua # disk space usage in rust
|
||||
duf # better df in go
|
||||
fend # calculator in rust
|
||||
mprocs # process runner 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
|
||||
virt-manager # libvirt gui
|
||||
(mkIf libvirtd.enable virt-manager) # libvirt gui
|
||||
# waycheck # check wayland protocols
|
||||
gpu-screen-recorder-gtk
|
||||
]
|
||||
@ -99,28 +103,22 @@ in {
|
||||
# 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
|
||||
(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
|
||||
# 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";
|
||||
};
|
||||
};
|
||||
# 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