diff --git a/README.md b/README.md
index 6389374..f535b47 100755
--- a/README.md
+++ b/README.md
@@ -15,10 +15,9 @@ each host should have these files:
- `hardware.nix`, hardware configuration.
## todo
- - move common config such as bootloader and networking settings to [`default.nix`](./default.nix) or some other common spot
- multi architecture configuration ([nix-systems](https://github.com/nix-systems/nix-systems)?)
- divide steam and gamemode?
- - cursor size theme option
- - sddm x11 support, too. or maybe just remove x11
- - hyprcursor
- - ags/quickshell?
\ No newline at end of file
+ - hidpi and cursor size option
+ - better theming for hyprlock, nwg-drawer, dunst
+ - why is hyprlock broken???
+ - wallpaper cycling
\ No newline at end of file
diff --git a/config/dunst.conf b/config/dunst.conf
index 63c019a..ffc6b82 100644
--- a/config/dunst.conf
+++ b/config/dunst.conf
@@ -23,7 +23,7 @@ progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 300
separator_height = 2
-frame_width = 2
+frame_width = 1
corner_radius = 8
transparency = 1
gap_size = 8
diff --git a/flake.lock b/flake.lock
index 520a366..2ea8f91 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,38 @@
{
"nodes": {
+ "aquamarine": {
+ "inputs": {
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1728326504,
+ "narHash": "sha256-dQXAj+4d6neY7ldCiH6gNym3upP49PVxRzEPxXlD9Aw=",
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "rev": "65dd97b5d21e917295159bbef1d52e06963f4eb0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "aquamarine",
+ "type": "github"
+ }
+ },
"base16-schemes": {
"flake": false,
"locked": {
@@ -50,13 +83,51 @@
"type": "github"
}
},
+ "flake-compat_2": {
+ "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"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "pre-commit-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
"hardware": {
"locked": {
- "lastModified": 1720737798,
- "narHash": "sha256-G/OtEAts7ZUvW5lrGMXSb8HqRp2Jr9I7reBuvCOL54w=",
+ "lastModified": 1728729581,
+ "narHash": "sha256-oazkQ/z7r43YkDLLQdMg8oIB3CwWNb+2ZrYOxtLEWTQ=",
"owner": "nixos",
"repo": "nixos-hardware",
- "rev": "c5013aa7ce2c7ec90acee5d965d950c8348db751",
+ "rev": "a8dd1b21995964b115b1e3ec639dd6ce24ab9806",
"type": "github"
},
"original": {
@@ -72,11 +143,11 @@
]
},
"locked": {
- "lastModified": 1721135958,
- "narHash": "sha256-H548rpPMsn25LDKn1PCFmPxmWlClJJGnvdzImHkqjuY=",
+ "lastModified": 1728337164,
+ "narHash": "sha256-VdRTjJFyq4Q9U7Z/UoC2Q5jK8vSo6E86lHc2OanXtvc=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "afd2021bedff2de92dfce0e257a3d03ae65c603d",
+ "rev": "038630363e7de57c36c417fd2f5d7c14773403e4",
"type": "github"
},
"original": {
@@ -101,11 +172,11 @@
]
},
"locked": {
- "lastModified": 1720108799,
- "narHash": "sha256-AxRkTJlbB8r7aG6gvc7IaLhc2T9TO4/8uqanKRxukBQ=",
+ "lastModified": 1727821604,
+ "narHash": "sha256-hNw5J6xatedqytYowx0mJKgctjA4lQARZFdgnzM2RpM=",
"owner": "hyprwm",
"repo": "hyprcursor",
- "rev": "a5c0d57325c5f0814c39110a70ca19c070ae9486",
+ "rev": "d60e1e01e6e6633ef1c87148b9137cc1dd39263d",
"type": "github"
},
"original": {
@@ -122,11 +193,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1721162167,
- "narHash": "sha256-seS+vRTrXWMBPUHUM0MYLd5Sg1JBICSzZX5daA/Vw+c=",
+ "lastModified": 1727257269,
+ "narHash": "sha256-b/j875k6RrxQLtbW+NCLw7NLToMd9KDYywjtUoihpq4=",
"owner": "hyprwm",
"repo": "hypridle",
- "rev": "fc4e3bd2dccd3b2e816c7cbe2dca25fa5e83a4bd",
+ "rev": "cc23f97836adbba1abc8edd48169fb1f1f698c32",
"type": "github"
},
"original": {
@@ -137,20 +208,23 @@
},
"hyprland": {
"inputs": {
+ "aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
+ "hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang_2",
"hyprutils": "hyprutils_2",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
+ "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_2",
"xdph": "xdph"
},
"locked": {
- "lastModified": 1721248202,
- "narHash": "sha256-VAhuQQ4EKbw/6z7K2IoR83+gXUdMksLWFQOhJNhSvQE=",
+ "lastModified": 1728507606,
+ "narHash": "sha256-Bt6aMwB63lmb8SqKLo6hKdi//camzM3KvJ5242gn+gQ=",
"ref": "refs/heads/main",
- "rev": "300228b503b36e5977b0d58713c5b4cf1f07b8a9",
- "revCount": 4930,
+ "rev": "c4eb1940336cd88ca65ba65582ce104e49dfc7c9",
+ "revCount": 5324,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -181,21 +255,19 @@
"inputs": {
"nixpkgs": [
"hyprland",
- "xdph",
"nixpkgs"
],
"systems": [
"hyprland",
- "xdph",
"systems"
]
},
"locked": {
- "lastModified": 1718746314,
- "narHash": "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=",
+ "lastModified": 1728345020,
+ "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
- "rev": "1b61f0093afff20ab44d88ad707aed8bf2215290",
+ "rev": "a7c183800e74f337753de186522b9017a07a8cee",
"type": "github"
},
"original": {
@@ -220,11 +292,11 @@
]
},
"locked": {
- "lastModified": 1720381373,
- "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
+ "lastModified": 1721324361,
+ "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
+ "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
@@ -249,11 +321,11 @@
]
},
"locked": {
- "lastModified": 1720381373,
- "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
+ "lastModified": 1728168612,
+ "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
+ "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
"type": "github"
},
"original": {
@@ -278,40 +350,11 @@
]
},
"locked": {
- "lastModified": 1720381373,
- "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
+ "lastModified": 1717881852,
+ "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=",
"owner": "hyprwm",
"repo": "hyprlang",
- "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprlang",
- "type": "github"
- }
- },
- "hyprlang_4": {
- "inputs": {
- "hyprutils": [
- "hyprpaper",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprpaper",
- "nixpkgs"
- ],
- "systems": [
- "hyprpaper",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1720381373,
- "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
- "owner": "hyprwm",
- "repo": "hyprlang",
- "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
+ "rev": "ec6938c66253429192274d612912649a0cfe4d28",
"type": "github"
},
"original": {
@@ -342,28 +385,6 @@
"type": "github"
}
},
- "hyprpaper": {
- "inputs": {
- "hyprlang": "hyprlang_4",
- "hyprutils": "hyprutils_4",
- "hyprwayland-scanner": "hyprwayland-scanner_2",
- "nixpkgs": "nixpkgs_5",
- "systems": "systems_4"
- },
- "locked": {
- "lastModified": 1721226775,
- "narHash": "sha256-dO+jd4i9vitOnSNgJSR6zjS2Gi/mDscLwfo5OY9geN0=",
- "owner": "hyprwm",
- "repo": "hyprpaper",
- "rev": "cbc16f939fc0ac742ac681c86e9009b9d48e1bfc",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprpaper",
- "type": "github"
- }
- },
"hyprutils": {
"inputs": {
"nixpkgs": [
@@ -376,11 +397,11 @@
]
},
"locked": {
- "lastModified": 1721071737,
- "narHash": "sha256-qmC9jGfbE4+EIBbbSAkrfR/p49wShjpv4/KztgE/P54=",
+ "lastModified": 1721324102,
+ "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "eb1ceff2b87f6820789249f63faa8e9dcb54d05f",
+ "rev": "962582a090bc233c4de9d9897f46794280288989",
"type": "github"
},
"original": {
@@ -401,11 +422,11 @@
]
},
"locked": {
- "lastModified": 1721071737,
- "narHash": "sha256-qmC9jGfbE4+EIBbbSAkrfR/p49wShjpv4/KztgE/P54=",
+ "lastModified": 1727300645,
+ "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "eb1ceff2b87f6820789249f63faa8e9dcb54d05f",
+ "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
"type": "github"
},
"original": {
@@ -426,36 +447,11 @@
]
},
"locked": {
- "lastModified": 1721324102,
- "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=",
+ "lastModified": 1717881334,
+ "narHash": "sha256-a0inRgJhPL6v9v7RPM/rx1kbXdfe3xJA1c9z0ZkYnh4=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "962582a090bc233c4de9d9897f46794280288989",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprutils",
- "type": "github"
- }
- },
- "hyprutils_4": {
- "inputs": {
- "nixpkgs": [
- "hyprpaper",
- "nixpkgs"
- ],
- "systems": [
- "hyprpaper",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1721071737,
- "narHash": "sha256-qmC9jGfbE4+EIBbbSAkrfR/p49wShjpv4/KztgE/P54=",
- "owner": "hyprwm",
- "repo": "hyprutils",
- "rev": "eb1ceff2b87f6820789249f63faa8e9dcb54d05f",
+ "rev": "0693f9398ab693d89c9a0aa3b3d062dd61b7a60e",
"type": "github"
},
"original": {
@@ -476,36 +472,11 @@
]
},
"locked": {
- "lastModified": 1720215857,
- "narHash": "sha256-JPdL+Qul+jEueAn8CARfcWP83eJgwkhMejQYfDvrgvU=",
+ "lastModified": 1726874836,
+ "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
- "rev": "d5fa094ca27e0039be5e94c0a80ae433145af8bb",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "type": "github"
- }
- },
- "hyprwayland-scanner_2": {
- "inputs": {
- "nixpkgs": [
- "hyprpaper",
- "nixpkgs"
- ],
- "systems": [
- "hyprpaper",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1720215857,
- "narHash": "sha256-JPdL+Qul+jEueAn8CARfcWP83eJgwkhMejQYfDvrgvU=",
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "rev": "d5fa094ca27e0039be5e94c0a80ae433145af8bb",
+ "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
"type": "github"
},
"original": {
@@ -564,13 +535,29 @@
"type": "github"
}
},
- "nixpkgs_2": {
+ "nixpkgs-stable": {
"locked": {
- "lastModified": 1720957393,
- "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
+ "lastModified": 1720386169,
+ "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
+ "rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-24.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1721138476,
+ "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206",
"type": "github"
},
"original": {
@@ -582,11 +569,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1720957393,
- "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
+ "lastModified": 1728241625,
+ "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
+ "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1",
"type": "github"
},
"original": {
@@ -598,11 +585,11 @@
},
"nixpkgs_4": {
"locked": {
- "lastModified": 1720957393,
- "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
+ "lastModified": 1717602782,
+ "narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
+ "rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6",
"type": "github"
},
"original": {
@@ -614,15 +601,15 @@
},
"nixpkgs_5": {
"locked": {
- "lastModified": 1720957393,
- "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
- "owner": "NixOS",
+ "lastModified": 1728241625,
+ "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=",
+ "owner": "nixos",
"repo": "nixpkgs",
- "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
+ "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1",
"type": "github"
},
"original": {
- "owner": "NixOS",
+ "owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -632,31 +619,39 @@
"locked": {
"lastModified": 1720957393,
"narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
- "owner": "nixos",
+ "owner": "NixOS",
"repo": "nixpkgs",
"rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
"type": "github"
},
"original": {
- "owner": "nixos",
+ "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
- "nixpkgs_7": {
+ "pre-commit-hooks": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "nixpkgs-stable": "nixpkgs-stable"
+ },
"locked": {
- "lastModified": 1720957393,
- "narHash": "sha256-oedh2RwpjEa+TNxhg5Je9Ch6d3W1NKi7DbRO1ziHemA=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "693bc46d169f5af9c992095736e82c3488bf7dbb",
+ "lastModified": 1728092656,
+ "narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
"type": "github"
},
"original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
"type": "github"
}
},
@@ -669,9 +664,8 @@
"hyprland": "hyprland",
"hyprland-catppuccin": "hyprland-catppuccin",
"hyprlock": "hyprlock",
- "hyprpaper": "hyprpaper",
"nix-colors": "nix-colors",
- "nixpkgs": "nixpkgs_6",
+ "nixpkgs": "nixpkgs_5",
"waybar": "waybar",
"waybar-catppuccin": "waybar-catppuccin"
}
@@ -721,25 +715,10 @@
"type": "github"
}
},
- "systems_4": {
- "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"
- }
- },
"waybar": {
"inputs": {
- "flake-compat": "flake-compat",
- "nixpkgs": "nixpkgs_7"
+ "flake-compat": "flake-compat_2",
+ "nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1721250245,
@@ -773,11 +752,22 @@
},
"xdph": {
"inputs": {
- "hyprland-protocols": "hyprland-protocols",
+ "hyprland-protocols": [
+ "hyprland",
+ "hyprland-protocols"
+ ],
"hyprlang": [
"hyprland",
"hyprlang"
],
+ "hyprutils": [
+ "hyprland",
+ "hyprutils"
+ ],
+ "hyprwayland-scanner": [
+ "hyprland",
+ "hyprwayland-scanner"
+ ],
"nixpkgs": [
"hyprland",
"nixpkgs"
@@ -788,11 +778,11 @@
]
},
"locked": {
- "lastModified": 1720194466,
- "narHash": "sha256-Rizg9efi6ue95zOp0MeIV2ZedNo+5U9G2l6yirgBUnA=",
+ "lastModified": 1728166987,
+ "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "b9b97e5ba23fe7bd5fa4df54696102e8aa863cf6",
+ "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 7eb5916..8c6503f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,10 +12,10 @@
waybar.url = "github:Alexays/Waybar";
+ # hypr suite
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprlock.url = "github:hyprwm/hyprlock?rev=b407128caeb551ae808cf8d0fb653a252a271709";
hypridle.url = "github:hyprwm/hypridle";
- hyprpaper.url = "github:hyprwm/hyprpaper";
waybar-catppuccin.url = "github:catppuccin/waybar";
waybar-catppuccin.flake = false;
diff --git a/hosts/goopnet-interface/apple-macbook-air-9-1.nix b/hosts/goopnet-interface/apple-macbook-air-9-1.nix
index 6737950..e5ae767 100644
--- a/hosts/goopnet-interface/apple-macbook-air-9-1.nix
+++ b/hosts/goopnet-interface/apple-macbook-air-9-1.nix
@@ -10,6 +10,8 @@
services.power-profiles-daemon.enable = true;
# manage fans for macbook devices
services.mbpfan.enable = true;
+ # disable tiny-dfr module from the nixos-hardware module
+ hardware.apple-t2.enableTinyDfr = false;
# better performance than the actual intel driver
services.xserver.videoDrivers = [ "modesetting" ];
@@ -31,17 +33,17 @@
${pkgs.kmod}/bin/modprobe brcmfmac_wcc
'';
- # VA-API
+ # VA-API and opengl
hardware.graphics = {
extraPackages = with pkgs; [
intel-media-driver
- intel-vaapi-driver
+ (intel-vaapi-driver.override { enableHybridCodec = true; })
libvdpau-va-gl
];
extraPackages32 = with pkgs.pkgsi686Linux; [
intel-media-driver
- intel-vaapi-driver
+ (intel-vaapi-driver.override { enableHybridCodec = true; })
libvdpau-va-gl
];
};
@@ -49,8 +51,6 @@
environment.variables = {
LIBVA_DRIVER_NAME= "iHD";
VDPAU_DRIVER = "va_gl";
- # VA-API on firefox
- MOZ_DISABLE_RDD_SANDBOX = "1";
};
environment.systemPackages = with pkgs; [ intel-gpu-tools ];
@@ -60,4 +60,4 @@
"i915.enable_fbc=1"
"i915.enable_gvt=1"
];
-}
\ No newline at end of file
+}
diff --git a/hosts/goopnet-interface/default.nix b/hosts/goopnet-interface/default.nix
index 5acb10c..ca36ac8 100755
--- a/hosts/goopnet-interface/default.nix
+++ b/hosts/goopnet-interface/default.nix
@@ -17,7 +17,7 @@
# debug
strace ltrace lsof
# apps
- firefox qalculate-gtk krita inkscape onlyoffice-bin vlc nicotine-plus transmission_4-gtk
+ firefox qalculate-gtk krita inkscape onlyoffice-desktopeditors vlc nicotine-plus transmission_4-gtk font-manager
# compatibility
wineWowPackages.waylandFull winetricks
# misc
@@ -28,7 +28,7 @@
# none yet
]) ++ (with pkgs.gnome; [
# yay gnomeware!!!!!!!!!!!!!! yum
- nautilus gnome-font-viewer gnome-disk-utility ghex pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe
+ nautilus gnome-disk-utility ghex pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe
]);
modules = {
@@ -48,8 +48,8 @@
hyprland.enable = true;
hyprlock.enable = true;
hypridle.enable = true;
- hyprpaper.enable = true;
+ swww.enable = true;
gnome-keyring.enable = true;
dunst.enable = true;
rofi.enable = true;
@@ -88,7 +88,4 @@
tools.rbw.enable = true;
};
};
-
- networking.networkmanager.enable = true;
- systemd.services.NetworkManager-wait-online.enable = false;
}
diff --git a/hosts/goopnet-interface/hardware.nix b/hosts/goopnet-interface/hardware.nix
index 18f19f6..f04b0c9 100755
--- a/hosts/goopnet-interface/hardware.nix
+++ b/hosts/goopnet-interface/hardware.nix
@@ -20,13 +20,6 @@
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
-
- boot.loader = {
- # use systemd-boot over grub
- grub.enable = lib.mkForce false;
- systemd-boot.enable = true;
- efi.canTouchEfiVariables = true;
- };
fileSystems."/" =
{ device = "/dev/disk/by-uuid/0f09afdc-88e4-4764-818b-77828931278f";
diff --git a/modules/desktop/batsignal.nix b/modules/desktop/batsignal.nix
index c8020bf..bdf9e0a 100644
--- a/modules/desktop/batsignal.nix
+++ b/modules/desktop/batsignal.nix
@@ -13,7 +13,7 @@ in {
};
config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = [
+ modules.desktop.execOnStart = [
# -w 20 -c 10 -d 5 -- set battery levels
# -p -- notify on plug/unplug
# -m 2 -- set interval to 2 seconds
diff --git a/modules/desktop/clipse.nix b/modules/desktop/clipse.nix
index 2cf47db..28e6123 100644
--- a/modules/desktop/clipse.nix
+++ b/modules/desktop/clipse.nix
@@ -16,11 +16,10 @@ in {
# runtime dependencies
user.packages = with pkgs; [ wl-clipboard ];
+ modules.desktop.execOnStart = [ "${lib.getExe cfg.package} -listen-shell" ];
hm.wayland.windowManager.hyprland.settings = let
class = "clipse";
in {
- exec-once = [ "${lib.getExe cfg.package} -listen-shell" ];
-
windowrulev2 = [
"float, class:^${class}$"
"size 622 652, class:^${class}$"
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix
index c80020d..4bcc269 100644
--- a/modules/desktop/default.nix
+++ b/modules/desktop/default.nix
@@ -9,6 +9,11 @@ in {
type = types.nullOr (types.enum ["x11" "wayland"]);
description = "What display protocol to use";
};
+ execOnStart = mkOption {
+ type = types.listOf types.str;
+ description = "List of commands to run on startup";
+ default = null;
+ };
};
config = mkMerge [
@@ -16,8 +21,25 @@ in {
modules.desktop.fonts.enable = true;
modules.desktop.fonts.baseFonts = true;
- # mounting and trash functionality, the recommended solution for most file managers
+ # bootloader
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ # enable networking
+ networking.networkmanager.enable = true;
+
+ # speed up boot
+ # https://discourse.nixos.org/t/boot-faster-by-disabling-udev-settle-and-nm-wait-online/6339
+ systemd.services.systemd-udev-settle.enable = false;
+ systemd.services.NetworkManager-wait-online.enable = false;
+
+ # mounting, trash, and mtp support
services.gvfs.enable = true;
+
+ # various evironment variables that are needed for everything desktop related
+ environment.sessionVariables = {
+ MOZ_DISABLE_RDD_SANDBOX = "1";
+ };
}
(mkIf (cfg.envProto == "wayland") {
environment.sessionVariables = {
diff --git a/modules/desktop/gammastep.nix b/modules/desktop/gammastep.nix
index 0e2a8fc..cda329a 100644
--- a/modules/desktop/gammastep.nix
+++ b/modules/desktop/gammastep.nix
@@ -9,7 +9,7 @@ in {
};
config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = [ "${pkgs.gammastep}/bin/gammastep-indicator" ];
+ modules.desktop.execOnStart = [ "${pkgs.gammastep}/bin/gammastep-indicator" ];
hm.services.gammastep = {
enable = true;
# portland, oregon
diff --git a/modules/desktop/hypridle.nix b/modules/desktop/hypridle.nix
index 37a6c5c..a9304ed 100644
--- a/modules/desktop/hypridle.nix
+++ b/modules/desktop/hypridle.nix
@@ -14,6 +14,7 @@ in {
};
config = mkIf cfg.enable {
+ hm.home.packages = [ cfg.package ];
hm.services.hypridle = let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {
diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix
index 4d13820..7613c31 100644
--- a/modules/desktop/hyprland.nix
+++ b/modules/desktop/hyprland.nix
@@ -179,7 +179,7 @@ in {
"${lib.getExe pkgs.networkmanagerapplet}" # network applet
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" # polkit agent
"${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing
- ];
+ ] ++ config.modules.desktop.execOnStart;
env = [
"XCURSOR_THEME,${config.modules.desktop.themes.cursorTheme.name}"
@@ -269,14 +269,17 @@ in {
blur = {
enabled = true;
- size = 4;
- passes = 2;
+ size = 10;
+ passes = 3;
+ # popups and special workspace have blur disabled by default
popups = true;
+ special = true;
};
drop_shadow = true;
- shadow_range = 4;
+ shadow_range = 6;
shadow_render_power = 3;
+ shadow_ignore_window = true;
};
animations = {
@@ -308,6 +311,8 @@ in {
gestures = {
workspace_swipe = true;
+ workspace_swipe_min_speed_to_force = 0;
+ workspace_swipe_cancel_ratio = 0.1;
};
misc = {
diff --git a/modules/desktop/hyprlock.nix b/modules/desktop/hyprlock.nix
index ddfb8c1..e5dc572 100644
--- a/modules/desktop/hyprlock.nix
+++ b/modules/desktop/hyprlock.nix
@@ -15,6 +15,7 @@ in {
config = mkIf cfg.enable {
security.pam.services.hyprlock.text = "auth include login";
+ hm.home.packages = [ cfg.package ];
hm.programs.hyprlock = with config.colorScheme.palette; {
enable = true;
package = cfg.package;
@@ -26,7 +27,6 @@ in {
no_fade_out = true;
text_trim = false;
};
-
background = [
{
path = toString ../../assets/lockscreen.png;
@@ -35,46 +35,82 @@ in {
blur_size = 6;
}
];
+ shape = [
+ {
+ size = "280, 280";
+ color = "rgb(${base00})";
+ rounding = 48;
+ position = "0, 45";
+ halign = "center"; valign = "center";
+
+ shadow_passes = 3;
+ shadow_size = 8;
+ }
+ ];
label = [
{
- text = "cmd[update:1000] echo \"$(date +'%H:%M')\"";
- font_size = 58;
- color = "rgb(${base05})";
+ position = "0, 105";
+ text = "cmd[update:1000] echo \"$(date +'%H')\"";
+ font_size = 78;
+ color = "rgb(f5c2e7)"; # catppuccin pink
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
- position = "0, 30";
- halign = "center";
- valign = "center";
+ halign = "center"; valign = "center";
}
{
- text = "cmd[update:1000] echo \"$(date +'%A %B %e')\"";
+ position = "0, 20";
+ text = "cmd[update:1000] echo \"$(date +'%M')\"";
+ font_size = 78;
+ color = "rgb(${base05})";
+ font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
+ halign = "center"; valign = "center";
+ }
+ {
+ position = "0, -45";
+ text = "cmd[update:1000] echo \"$(date +'%A, %d %B')\"";
font_size = 14;
color = "rgb(${base05})";
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
- position = "0, 10";
- halign = "center";
- valign = "center";
+ halign = "center"; valign = "center";
+ }
+ {
+ position = "-15, -13";
+ halign = "right"; valign = "top";
+ color = "rgb(${base05})";
+ font_size = 14;
+ font_family = "Font Awesome 6 Free";
+ text = "";
+
+ shadow_passes = 3;
+ shadow_size = 8;
+ }
+ {
+ position = "-41, -10";
+ halign = "right"; valign = "top";
+ color = "rgb(${base05})";
+ font_size = 14;
+ font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
+ text = "cmd[update:4000] echo \"$(cat /sys/class/power_supply/BAT0/capacity)%\"";
+
+ shadow_passes = 3;
+ shadow_size = 8;
}
];
-
input-field = [
{
- size = "300, 28";
+ position = "0, -140";
+ size = "280, 48";
outline_thickness = 2;
- dots_size = 0.2;
+ dots_size = 0.3;
fade_on_empty = false;
placeholder_text = "";
- outer_color = "rgb(${base0E})";
+ outer_color = "rgb(${base00})";
inner_color = "rgb(${base00})";
font_color = "rgb(${base05})";
check_color = "rgb(${base02})";
fail_color = "rgb(${base08})";
capslock_color = "rgb(${base09})";
-
- position = "0, -30";
- halign = "center";
- valign = "center";
}
];
};
diff --git a/modules/desktop/hyprpaper.nix b/modules/desktop/hyprpaper.nix
deleted file mode 100644
index 8e00d79..0000000
--- a/modules/desktop/hyprpaper.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, config, inputs, system, ... }:
-
-with lib;
-let
- cfg = config.modules.desktop.hyprpaper;
-in {
- options.modules.desktop.hyprpaper = {
- enable = mkEnableOption "Enable hyprpaper, a wayland wallpaper utility";
- package = mkOption {
- type = types.package;
- default = inputs.hyprpaper.packages.${system}.hyprpaper;
- example = "pkgs.hyprpaper";
- };
- };
-
- config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe cfg.package}" ];
- hm.xdg.configFile."hypr/hyprpaper.conf" = let
- img = ../../assets/wallpaper.png;
- in {
- text = ''
- preload = ${img}
- wallpaper = ,${img}
- splash = false
- '';
- };
- };
-}
diff --git a/modules/desktop/nwg-drawer.nix b/modules/desktop/nwg-drawer.nix
index 558f07d..7da4367 100644
--- a/modules/desktop/nwg-drawer.nix
+++ b/modules/desktop/nwg-drawer.nix
@@ -9,7 +9,7 @@ in {
};
config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe pkgs.nwg-drawer} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus" ];
+ modules.desktop.execOnStart = [ "${lib.getExe pkgs.nwg-drawer} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus" ];
hm.xdg.configFile."nwg-drawer/drawer.css".text = builtins.concatStringsSep "\n" [
"@import \"${inputs.waybar-catppuccin}/themes/mocha.css\";"
(lib.readFile ../../config/nwg-drawer.css)
diff --git a/modules/desktop/sddm.nix b/modules/desktop/sddm.nix
index 9b4b4ce..9067a87 100644
--- a/modules/desktop/sddm.nix
+++ b/modules/desktop/sddm.nix
@@ -9,7 +9,6 @@ in {
};
config = mkIf cfg.enable {
- # unsure if it's correct to put this in `environment.systemPackages`
environment.systemPackages = with pkgs; [
config.modules.desktop.themes.sddmTheme.package
config.modules.desktop.themes.cursorTheme.package
@@ -19,7 +18,7 @@ in {
];
services.displayManager.sddm = {
enable = true;
- wayland.enable = true;
+ wayland.enable = config.modules.desktop.envProto == "wayland";
theme = config.modules.desktop.themes.sddmTheme.name;
settings = {
Theme = {
diff --git a/modules/desktop/swww.nix b/modules/desktop/swww.nix
new file mode 100644
index 0000000..cbcaff6
--- /dev/null
+++ b/modules/desktop/swww.nix
@@ -0,0 +1,28 @@
+{ lib, config, inputs, system, pkgs, ... }:
+
+with lib;
+let
+ cfg = config.modules.desktop.swww;
+
+ img = ../../assets/wallpaper.png;
+in {
+ options.modules.desktop.swww = {
+ enable = mkEnableOption "Enable swww, a Solution to your Wayland Wallpaper Woes";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.swww;
+ example = "pkgs.swww";
+ };
+ startScript = mkOption {
+ type = types.package;
+ default = pkgs.writeScript "swww-start" ''
+ ${cfg.package}/bin/swww-daemon &
+ ${lib.getExe cfg.package} img "${img}" --transition-type none
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ modules.desktop.execOnStart = [ "${cfg.startScript}" ];
+ };
+}
\ No newline at end of file
diff --git a/modules/desktop/themes/catppuccin/waybar.css b/modules/desktop/themes/catppuccin/waybar.css
index bb72f31..d805dd0 100644
--- a/modules/desktop/themes/catppuccin/waybar.css
+++ b/modules/desktop/themes/catppuccin/waybar.css
@@ -18,6 +18,8 @@ window#waybar {
font-family: CozetteVector, monospace, FontAwesome, Noto Sans CJK;
font-size: 13px;
font-style: normal;
+
+ border: 1px solid @surface0;
}
#workspaces, .modules-right box {
diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix
index f21fa05..d3d3200 100644
--- a/modules/desktop/waybar.nix
+++ b/modules/desktop/waybar.nix
@@ -14,7 +14,13 @@ in {
};
config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe cfg.package}" ];
+ # runtime requirements for modules
+ user.packages = with pkgs; [
+ # mpris
+ playerctl
+ ];
+
+ modules.desktop.execOnStart = [ "${lib.getExe cfg.package}" ];
hm.programs.waybar = {
enable = true;
package = cfg.package;
@@ -54,11 +60,11 @@ in {
modules = [
"pulseaudio"
"backlight"
- #"network"
"cpu"
"memory"
"power-profiles-daemon"
"battery"
+ "custom/weather"
"privacy"
];
};
@@ -70,18 +76,18 @@ in {
};
"custom/power" = let
powerSelect = pkgs.writeScript "power-menu" ''
- cmd=$(echo 'shutdown|reboot|lock|exit Hyprland' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }')
+ cmd=$(echo '⏻ shutdown|↻ reboot| lock|⎋ exit desktop environment' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }')
case "$cmd" in
- shutdown)
- shutdown now
+ "⏻ shutdown")
+ poweroff
;;
- reboot)
+ "↻ reboot")
reboot
;;
- lock)
- ${lib.getExe config.modules.desktop.hyprlock.package}
+ " lock")
+ ${pkgs.systemd}/bin/loginctl lock-session
;;
- "exit Hyprland")
+ "⎋ exit desktop environment")
${config.modules.desktop.hyprland.package}/bin/hyprctl dispatch exit
;;
esac
@@ -139,17 +145,6 @@ in {
};
separate-outputs = true;
};
- #network = {
- # format = "";
- # format-ethernet = "";
- # format-wifi = " {signalStrength}%";
- # format-disconnected = "";
- # tooltip-format = "{ifname} via {gwaddr}";
- # tooltip-format-wifi = "connected to {essid}";
- # tooltip-format-ethernet = "{ifname}";
- # tooltip-format-disconnected = "Disconnected";
- # on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
- #};
pulseaudio = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%";
@@ -215,16 +210,15 @@ in {
];
};
mpris = {
- format = "♫ {dynamic}";
+ format = "{status_icon} {dynamic}";
format-paused = "{status_icon} {dynamic}";
dynamic-order = [ "title" ];
tooltip-format = "{player}: {dynamic}";
interval = 1;
status-icons = {
- playing = "▶";
- paused = "⏸";
+ playing = "⏸";
+ paused = "▶";
};
- player = "firefox";
};
clock = {
format = "{:%H:%M}";
@@ -252,6 +246,18 @@ in {
};
};
};
+ tray = {
+ icon-size = 16;
+ spacing = 4;
+ };
+ "custom/weather" = {
+ format = "{}°";
+ tooltip = true;
+ interval = 3600;
+ # doxxing live stream
+ exec = "${lib.getExe pkgs.wttrbar} --location 'Corvallis, Oregon, United States' --hide-conditions --fahrenheit --mph";
+ return-type = "json";
+ };
};
};
};
diff --git a/modules/desktop/wob.nix b/modules/desktop/wob.nix
index de88a37..443f0b0 100644
--- a/modules/desktop/wob.nix
+++ b/modules/desktop/wob.nix
@@ -14,12 +14,12 @@ in {
};
config = mkIf cfg.enable {
- hm.wayland.windowManager.hyprland.settings.exec-once = let
+ modules.desktop.execOnStart = let
path = cfg.sockPath;
script = pkgs.writeScript "launch-wob" ''
rm -f ${path} && mkfifo ${path} && tail -f ${path} | ${lib.getExe pkgs.wob}
'';
- in [ script ];
+ in [ (toString script) ];
hm.services.wob = {
enable = true;
settings = {
diff --git a/modules/fstrim.nix b/modules/fstrim.nix
new file mode 100644
index 0000000..a0e92b1
--- /dev/null
+++ b/modules/fstrim.nix
@@ -0,0 +1,36 @@
+{ config, lib, ... }:
+
+with lib;
+{
+ # if lvm is enabled, then tell it to issue discards
+ # (this is good for SSDs and has almost no downsides on HDDs, so
+ # it's a good idea to enable it unconditionally)
+ environment.etc."lvm/lvm.conf".text = mkIf config.services.lvm.enable ''
+ devices {
+ issue_discards = 1
+ }
+ '';
+
+ # discard blocks that are not in use by the filesystem, good for SSDs
+ services.fstrim = {
+ # we may enable this unconditionally across all systems becuase it's performance
+ # impact is negligible on systems without a SSD - which means it's a no-op with
+ # almost no downsides aside from the service firing once per week
+ enable = true;
+
+ # the default value, good enough for average-load systems
+ interval = "weekly";
+ };
+
+ # tweak fstim service to run only when on AC power
+ # and to be nice to other processes
+ # (this is a good idea for any service that runs periodically)
+ systemd.services.fstrim = {
+ unitConfig.ConditionACPower = true;
+
+ serviceConfig = {
+ Nice = 19;
+ IOSchedulingClass = "idle";
+ };
+ };
+}
\ No newline at end of file
diff --git a/modules/security.nix b/modules/security.nix
index 32fbd61..41b10a0 100755
--- a/modules/security.nix
+++ b/modules/security.nix
@@ -12,6 +12,9 @@ in {
boot = {
tmp.useTmpfs = lib.mkDefault true;
tmp.cleanOnBoot = lib.mkDefault (!config.boot.tmp.useTmpfs);
+
+ # disable kernel parameter editing on boot
+ loader.systemd-boot.editor = false;
kernel.sysctl = {
# magic sysrq key, allows low-level commands through keyboard input
diff --git a/modules/software/dev/git.nix b/modules/software/dev/git.nix
index 3db2265..012a0ed 100644
--- a/modules/software/dev/git.nix
+++ b/modules/software/dev/git.nix
@@ -54,5 +54,6 @@ in {
init.defaultBranch = "main";
};
};
+ hm.programs.gh.enable = true;
};
}
diff --git a/modules/software/system/wezterm.nix b/modules/software/system/wezterm.nix
index 04f349e..ba094b6 100644
--- a/modules/software/system/wezterm.nix
+++ b/modules/software/system/wezterm.nix
@@ -20,6 +20,7 @@ in {
local config = {}
+ config.front_end = "WebGpu"
config.font = wezterm.font '${fonts.monospaceBitmap.family}'
config.font_size = ${toString fonts.monospaceBitmap.size}
config.freetype_load_flags = 'MONOCHROME'