From 4932e4fd0d1b5b3d7ee0885eac70256d66b80112 Mon Sep 17 00:00:00 2001 From: Kat Inskip Date: Sat, 6 Apr 2024 11:21:36 -0700 Subject: [PATCH] feat(xfce): add --- flake.lock | 152 ++++++++++++++--------- home/environments/gnome/dconf.nix | 3 + home/environments/gnome/gtk.nix | 33 ----- home/environments/gnome/konawall.nix | 23 ++++ home/environments/hyprland/hypridle.nix | 3 +- home/environments/hyprland/hyprland.nix | 9 +- home/environments/hyprland/hyprlock.nix | 9 +- home/environments/hyprland/konawall.nix | 2 +- home/environments/kde/konawall.nix | 2 +- home/environments/xfce/gtk.nix | 32 +++++ home/environments/xfce/konawall.nix | 42 +++++++ home/environments/xfce/xfconf.nix | 31 +++++ home/profiles/common/base16.nix | 2 +- home/profiles/devops/packages.nix | 1 - home/profiles/graphical/discord.nix | 10 ++ home/profiles/graphical/packages.nix | 2 - home/profiles/graphical/wezterm.nix | 31 +++-- home/profiles/shell/eza.nix | 1 - nixos/environments/xfce/xfce.nix | 25 ++++ nixos/hardware/framework/boot.nix | 2 +- nixos/hardware/framework/fingerprint.nix | 2 +- nixos/hardware/framework/imports.nix | 2 +- nixos/profiles/bootable/grub.nix | 10 +- nixos/profiles/gaming/lutris.nix | 45 +++++++ nixos/profiles/gaming/parsec.nix | 5 + nixos/profiles/graphical/avahi.nix | 13 ++ nixos/profiles/graphical/fonts.nix | 1 + nixos/profiles/graphical/gpg.nix | 2 +- nixos/profiles/sdr.nix | 9 ++ nixos/profiles/secureboot.nix | 16 +++ nixos/profiles/wireless/bluetooth.nix | 8 +- packages/chicago95.nix | 44 +++++++ systems/default.nix | 3 +- systems/koishi.nix | 118 +++++++----------- 34 files changed, 490 insertions(+), 203 deletions(-) delete mode 100644 home/environments/gnome/gtk.nix create mode 100644 home/environments/gnome/konawall.nix create mode 100644 home/environments/xfce/gtk.nix create mode 100644 home/environments/xfce/konawall.nix create mode 100644 home/environments/xfce/xfconf.nix create mode 100644 home/profiles/graphical/discord.nix create mode 100644 nixos/environments/xfce/xfce.nix create mode 100644 nixos/profiles/gaming/lutris.nix create mode 100644 nixos/profiles/gaming/parsec.nix create mode 100644 nixos/profiles/graphical/avahi.nix create mode 100644 nixos/profiles/sdr.nix create mode 100644 nixos/profiles/secureboot.nix create mode 100644 packages/chicago95.nix diff --git a/flake.lock b/flake.lock index 6cd3abfd..fcbbcee1 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "arcexprs": { "flake": false, "locked": { - "lastModified": 1706385294, - "narHash": "sha256-mGqas+TDp2DtR7ufx10SDlKnL+aRZ/jhbkGYlF8NLO4=", + "lastModified": 1712091889, + "narHash": "sha256-u9zDQaf3n3D4O8xBbvLm1DzlFjrmUHkQ241oAjucx5I=", "owner": "arcnmx", "repo": "nixexprs", - "rev": "aa081527557408f1fb5dca56a19f817cd3577b47", + "rev": "f2c2012ce5f2b8f5d3c123a0978a056809bb4734", "type": "github" }, "original": { @@ -129,11 +129,11 @@ ] }, "locked": { - "lastModified": 1706833576, - "narHash": "sha256-w7BL0EWRts+nD1lbLECIuz6fRzmmV+z8oWwoY7womR0=", + "lastModified": 1711763326, + "narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "bdbae6ecff8fcc322bf6b9053c0b984912378af7", + "rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083", "type": "github" }, "original": { @@ -156,11 +156,11 @@ ] }, "locked": { - "lastModified": 1704875591, - "narHash": "sha256-eWRLbqRcrILgztU/m/k7CYLzETKNbv0OsT2GjkaNm8A=", + "lastModified": 1711973905, + "narHash": "sha256-UFKME/N1pbUtn+2Aqnk+agUt8CekbpuqwzljivfIme8=", "owner": "serokell", "repo": "deploy-rs", - "rev": "1776009f1f3fb2b5d236b84d9815f2edee463a9b", + "rev": "88b3059b020da69cbe16526b8d639bd5e0b51c8b", "type": "github" }, "original": { @@ -308,11 +308,11 @@ ] }, "locked": { - "lastModified": 1707114923, - "narHash": "sha256-LDYPWa+BgxHSNEye93SyIPgz5u3RAfh78P9KyO+rQzI=", + "lastModified": 1712390667, + "narHash": "sha256-ebq+fJZfobqpsAdGDGpxNWSySbQejRwW9cdiil6krCo=", "owner": "nix-community", "repo": "home-manager", - "rev": "afcedcf2c8e424d0465e823cf833eb3adebe1db7", + "rev": "b787726a8413e11b074cde42704b4af32d95545c", "type": "github" }, "original": { @@ -322,6 +322,35 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1712339458, + "narHash": "sha256-j8pv3tL2EFLGuvFoO64dHWD8YzNvD77hRb4EEx5ADgE=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "981b6617822dadc40246a6c70194d02dfc12e4c6", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, "hypridle": { "inputs": { "hyprlang": [ @@ -335,11 +364,11 @@ ] }, "locked": { - "lastModified": 1709223573, - "narHash": "sha256-xi7yscjt7t8tFcJDgHzxgW15Obcp7dEghG41f6tUmRc=", + "lastModified": 1710180874, + "narHash": "sha256-ZSn3wXQuRz36Ta/L+UCFKuUVG6QpwK2QmRkPjpQprU4=", "owner": "hyprwm", "repo": "hypridle", - "rev": "029f08805a2297966d295a52a6e62c3801926a52", + "rev": "4395339a2dc410bcf49f3e24f9ed3024fdb25b0a", "type": "github" }, "original": { @@ -350,6 +379,7 @@ }, "hyprland": { "inputs": { + "hyprcursor": "hyprcursor", "hyprland-protocols": [ "hyprland-protocols" ], @@ -368,11 +398,11 @@ ] }, "locked": { - "lastModified": 1708452876, - "narHash": "sha256-UrFrNfIwd0pcCTZYc6RAppzvpL6icfhelFMgufY5vxU=", + "lastModified": 1712420323, + "narHash": "sha256-2isV2NOIm+EKQej7RNyFxtW5gdxDGoI9YkBYczxscF8=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "13d985489788fa5349b3457d6eb1c19bad8f37e9", + "rev": "265c7924d85e2ad5f2ff0e9f59c03403028eaef4", "type": "github" }, "original": { @@ -414,11 +444,11 @@ ] }, "locked": { - "lastModified": 1709914708, - "narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=", + "lastModified": 1711671891, + "narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2", + "rev": "c1402612146ba06606ebf64963a02bc1efe11e74", "type": "github" }, "original": { @@ -440,11 +470,11 @@ ] }, "locked": { - "lastModified": 1710002782, - "narHash": "sha256-njx7ZjsIaOo+l9vF2FNtF1nvckHK/8gcqpN3EYitIoY=", + "lastModified": 1711884603, + "narHash": "sha256-y1Om75muuJcEoLd/FOYGIZ5/ja/Mc4iBX/9S7vWF0C8=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "160fe3553fae1c2fb5f3480bada708bff9405e0b", + "rev": "071ebcefb9070e4397d75103f5f535b58dacf250", "type": "github" }, "original": { @@ -487,11 +517,11 @@ ] }, "locked": { - "lastModified": 1710095677, - "narHash": "sha256-M1FyL+mCy0dyVfBi2qft3rcqU5NJh2BOQMwJdP2SDek=", + "lastModified": 1712427525, + "narHash": "sha256-AC9iR6PdtG9v/gHSXxiEAUAIGErkzTNAKwCE3V110xs=", "owner": "kittywitch", "repo": "konawall-py", - "rev": "e9eb56126b1c77f2799b1da2a94afc468a1aafec", + "rev": "2ab1de269d735822ab0f4c6c897dafa630fa0a94", "type": "github" }, "original": { @@ -570,11 +600,11 @@ ] }, "locked": { - "lastModified": 1706922828, - "narHash": "sha256-LW/is1Y4nzzcuKDh2qTySvEaVGy6wqOflSDcHZDg6H4=", + "lastModified": 1712366100, + "narHash": "sha256-JHNo5nvz5Rk9u+nrkbCSCZqAeBo0yVe4lEYz7m40xV0=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "ccb58cd173960992558b6127b423621090866b45", + "rev": "2f2d1ab110ca24f3d926e9a2aa9f4706a98ce711", "type": "github" }, "original": { @@ -590,11 +620,11 @@ ] }, "locked": { - "lastModified": 1707016097, - "narHash": "sha256-V4lHr6hFQ3rK650dh64Xffxsf4kse9vUYWsM+ldjkco=", + "lastModified": 1711854532, + "narHash": "sha256-JPStavwlT7TfxxiXHk6Q7sbNxtnXAIjXQJMLO0KB6M0=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "3e3dad2808379c522138e2e8b0eb73500721a237", + "rev": "2844b5f3ad3b478468151bd101370b9d8ef8a3a7", "type": "github" }, "original": { @@ -605,11 +635,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1710123225, - "narHash": "sha256-j3oWlxRZxB7cFsgEntpH3rosjFHRkAo/dhX9H3OfxtY=", + "lastModified": 1712324865, + "narHash": "sha256-+BatEWd4HlMeK7Ora+gYIkarjxFVCg9oKrIeybHIIX4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "ad2fd7b978d5e462048729a6c635c45d3d33c9ba", + "rev": "f3b959627bca46a9f7052b8fbc464b8323e68c2c", "type": "github" }, "original": { @@ -620,11 +650,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1706913249, - "narHash": "sha256-x3M7iV++CsvRXI1fpyFPduGELUckZEhSv0XWnUopAG8=", + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e92b6015881907e698782c77641aa49298330223", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", "type": "github" }, "original": { @@ -652,11 +682,11 @@ }, "nur": { "locked": { - "lastModified": 1709939601, - "narHash": "sha256-2dkG9wu9MqdFIYgUdbU0Y9H77x54y4mdVnuOHpVc9Rs=", + "lastModified": 1712418268, + "narHash": "sha256-ada/cxhkwk0D7/iuklXUv/EOx7ooYIn27LYAyYuoQ3o=", "owner": "nix-community", "repo": "NUR", - "rev": "e6999b0bacd992f609dcb1657461c682addaf9d0", + "rev": "ade3664ee297f453ea7f31945af6b751cf800b84", "type": "github" }, "original": { @@ -675,11 +705,11 @@ ] }, "locked": { - "lastModified": 1707045317, - "narHash": "sha256-o2NZJcNu2/M3qycZ2Z9sgIESQEBFmihbbA7//sp7yVA=", + "lastModified": 1712081763, + "narHash": "sha256-+xImkX19gde0Qac6kbJtJAXKXTOgcUE5z3RsBxVtseo=", "owner": "pjones", "repo": "plasma-manager", - "rev": "290cd65b65e2da11ca9fda69781ea9beb8a6f6ac", + "rev": "96a90a7f5ce6b29e01d7da83d082e870e4462174", "type": "github" }, "original": { @@ -832,11 +862,11 @@ ] }, "locked": { - "lastModified": 1707015547, - "narHash": "sha256-YZr0OrqWPdbwBhxpBu69D32ngJZw8AMgZtJeaJn0e94=", + "lastModified": 1711855048, + "narHash": "sha256-HxegAPnQJSC4cbEbF4Iq3YTlFHZKLiNTk8147EbLdGg=", "owner": "Mic92", "repo": "sops-nix", - "rev": "23f61b897c00b66855074db471ba016e0cda20dd", + "rev": "99b1e37f9fc0960d064a7862eb7adfb92e64fa10", "type": "github" }, "original": { @@ -871,11 +901,11 @@ }, "std": { "locked": { - "lastModified": 1701658249, - "narHash": "sha256-KIt1TUuBvldhaVRta010MI5FeQlB8WadjqljybjesN0=", + "lastModified": 1710870712, + "narHash": "sha256-e+7MJF2gsgTBuOWv4mCimSP0D9+naeFSw9a7N3yEmv4=", "owner": "chessai", "repo": "nix-std", - "rev": "715db541ffff4194620e48d210b76f73a74b5b5d", + "rev": "31bbc925750cc9d8f828fe55cee1a2bd985e0c00", "type": "github" }, "original": { @@ -929,11 +959,11 @@ ] }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -946,18 +976,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1706359063, - "narHash": "sha256-5HUTG0p+nCJv3cn73AmFHRZdfRV5AD5N43g8xAePSKM=", + "lastModified": 1709983277, + "narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=", "owner": "wlroots", "repo": "wlroots", - "rev": "00b869c1a96f300a8f25da95d624524895e0ddf2", + "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "00b869c1a96f300a8f25da95d624524895e0ddf2", + "rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b", "type": "gitlab" } }, @@ -974,11 +1004,11 @@ ] }, "locked": { - "lastModified": 1707162675, - "narHash": "sha256-ZojPqn5+cuuqCt/VVGo+uuRxYLtMomahHseFj9HB3O8=", + "lastModified": 1710519878, + "narHash": "sha256-0dbc10OBFUVYyXC+C+N6vRUd8xyBSRxkcZ4Egipbx0M=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "4bb6b2e814be63caa115038e917c6c25b7fc2ac1", + "rev": "aef95bdb6800a3a2af7aa7083d6df03067da6592", "type": "github" }, "original": { diff --git a/home/environments/gnome/dconf.nix b/home/environments/gnome/dconf.nix index d2f2693b..d0eb62d0 100644 --- a/home/environments/gnome/dconf.nix +++ b/home/environments/gnome/dconf.nix @@ -27,6 +27,9 @@ _: { workspace-names = ["Main"]; resize-with-right-button = true; }; + "org/gnome/desktop/input-sources" = { + xkb-options = ["terminate:ctrl_alt_bksp" "caps:ctrl_modifier"]; + }; }; }; } diff --git a/home/environments/gnome/gtk.nix b/home/environments/gnome/gtk.nix deleted file mode 100644 index c60dc623..00000000 --- a/home/environments/gnome/gtk.nix +++ /dev/null @@ -1,33 +0,0 @@ -{pkgs, ...}: { - gtk = { - enable = true; - iconTheme = { - name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; - }; - - theme = { - name = "palenight"; - package = pkgs.palenight-theme; - }; - - cursorTheme = { - name = "Numix-Cursor"; - package = pkgs.numix-cursor-theme; - }; - - gtk3.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - - gtk4.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - }; - - home.sessionVariables.GTK_THEME = "palenight"; -} diff --git a/home/environments/gnome/konawall.nix b/home/environments/gnome/konawall.nix new file mode 100644 index 00000000..e1739583 --- /dev/null +++ b/home/environments/gnome/konawall.nix @@ -0,0 +1,23 @@ +{ + config, + pkgs, + inputs, + ... +}: { + systemd.user.services.konawall-py-gnome = { + Unit = { + Description = "konawall-py"; + X-Restart-Triggers = [(toString config.xdg.configFile."konawall/config.toml".source)]; + After = ["gnome-session.target" "network-online.target"]; + Environment = [ + "PYSTRAY_BACKEND=gtk" + ]; + }; + Service = { + ExecStart = "${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall"; + Restart = "on-failure"; + RestartSec = "1s"; + }; + Install = {WantedBy = ["gnome-session.target"];}; + }; +} diff --git a/home/environments/hyprland/hypridle.nix b/home/environments/hyprland/hypridle.nix index adc4bf70..a9e411f3 100644 --- a/home/environments/hyprland/hypridle.nix +++ b/home/environments/hyprland/hypridle.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { services.hypridle = { enable = true; listeners = [ @@ -15,7 +15,6 @@ timeout = 330; onTimeout = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off"; onResume = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on"; - } { timeout = 600; diff --git a/home/environments/hyprland/hyprland.nix b/home/environments/hyprland/hyprland.nix index 36ae9192..a034a08c 100644 --- a/home/environments/hyprland/hyprland.nix +++ b/home/environments/hyprland/hyprland.nix @@ -94,10 +94,10 @@ in { "$mod ALT, mouse:272, resizewindow" ]; binde = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%+" - ", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%-" + ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%+" + ", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%-" ]; bind = [ @@ -106,7 +106,6 @@ in { ", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" ", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl prev" - "$mod, F, exec, firefox" "$mod, R, exec, wofi -t wezterm -IS drun" "$mod SHIFT, R, exec, wofi -t wezterm -IS run" "$mod, Return, exec, wezterm" diff --git a/home/environments/hyprland/hyprlock.nix b/home/environments/hyprland/hyprlock.nix index ae356856..a723eb5c 100644 --- a/home/environments/hyprland/hyprlock.nix +++ b/home/environments/hyprland/hyprlock.nix @@ -1,13 +1,12 @@ -{ pkgs, ... }: { +{pkgs, ...}: { programs.hyprlock = { enable = true; backgrounds = [ { - path = "screenshot"; - blur_size = 8; - blur_passes = 1; + path = "screenshot"; + blur_size = 8; + blur_passes = 1; } ]; }; - } diff --git a/home/environments/hyprland/konawall.nix b/home/environments/hyprland/konawall.nix index c74c063f..1411b9d3 100644 --- a/home/environments/hyprland/konawall.nix +++ b/home/environments/hyprland/konawall.nix @@ -20,7 +20,7 @@ }; }; in { - systemd.user.services.konawall-py = { + systemd.user.services.konawall-py-hyprland = { Unit = { Description = "konawall-py"; X-Restart-Triggers = [(toString config.xdg.configFile."konawall/config.toml".source)]; diff --git a/home/environments/kde/konawall.nix b/home/environments/kde/konawall.nix index e6c05fd6..5aa7e149 100644 --- a/home/environments/kde/konawall.nix +++ b/home/environments/kde/konawall.nix @@ -4,7 +4,7 @@ ... }: let konawallWithDelay = pkgs.writeShellScriptBin "konawall" '' - sleep 5 && ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall + sleep 5 && ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall ''; desktop_entry = '' [Desktop Entry] diff --git a/home/environments/xfce/gtk.nix b/home/environments/xfce/gtk.nix new file mode 100644 index 00000000..f8e6ec20 --- /dev/null +++ b/home/environments/xfce/gtk.nix @@ -0,0 +1,32 @@ +{pkgs, ...}: { + home.pointerCursor = { + gtk.enable = true; + # x11.enable = true; + package = pkgs.chicago95; + name = "Chicago95"; + size = 16; + }; + + gtk = { + enable = true; + iconTheme = { + name = "Chicago95-tux"; + package = pkgs.chicago95; + }; + + theme = { + name = "Chicago95"; + package = pkgs.chicago95; + }; + + cursorTheme = { + name = "Chicago95"; + package = pkgs.chicago95; + }; + + font = { + name = "Monaspace Krypton"; + size = 11; + }; + }; +} diff --git a/home/environments/xfce/konawall.nix b/home/environments/xfce/konawall.nix new file mode 100644 index 00000000..e53a8aa5 --- /dev/null +++ b/home/environments/xfce/konawall.nix @@ -0,0 +1,42 @@ +{ + inputs, + pkgs, + config, + ... +}: let + konawallConfig = { + interval = 60 * 5; + rotate = true; + source = "konachan"; + tags = [ + "rating:s" + "touhou" + "score:>=50" + "width:>=1500" + ]; + logging = { + file = "INFO"; + console = "DEBUG"; + }; + }; +in { + systemd.user.services.konawall-py = { + Unit = { + Description = "konawall-py"; + X-Restart-Triggers = [(toString config.xdg.configFile."konawall/config.toml".source)]; + After = ["gnome-session.target" "network-online.target"]; + Environment = [ + "PYSTRAY_BACKEND=gtk" + ]; + }; + Service = { + ExecStart = "${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall"; + Restart = "on-failure"; + RestartSec = "1s"; + }; + Install = {WantedBy = ["xfce4-session.target"];}; + }; + xdg.configFile = { + "konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig; + }; +} diff --git a/home/environments/xfce/xfconf.nix b/home/environments/xfce/xfconf.nix new file mode 100644 index 00000000..f4b12504 --- /dev/null +++ b/home/environments/xfce/xfconf.nix @@ -0,0 +1,31 @@ +_: { + xfconf = { + settings = { + xsettings = { + "Xfce4/SyncThemes" = true; + "Net/IconThemeName" = "Chicago95-tux"; + "Net/ThemeName" = "Chicago95"; + }; + xfce4-keyboard-shortcuts = { + "commands/custom/Super_L" = "xfce4-popup-whiskermenu"; + }; + xfce4-session = { + "startup/ssh-agent/enabled" = false; + }; + xfce4-power-manager = { + "xfce4-power-manager/show-tray-icon" = false; + "xfce4-power-manager/general-notification" = true; + }; + xfwm4 = { + "general/theme" = "Chicago95"; + "general/title_font" = "Sans Bold 8"; + "general/show_dock_shadow" = false; + }; + xfce4-notifyd = { + "theme" = "Chicago95"; + }; + + }; + enable = true; + }; +} diff --git a/home/profiles/common/base16.nix b/home/profiles/common/base16.nix index f78e9259..650d1025 100644 --- a/home/profiles/common/base16.nix +++ b/home/profiles/common/base16.nix @@ -22,6 +22,6 @@ in { ansi.palette.background.alpha = "ee00"; }; }; - defaultSchemeName = "light"; + defaultSchemeName = "dark"; }; } diff --git a/home/profiles/devops/packages.nix b/home/profiles/devops/packages.nix index c8bebcee..532d5029 100644 --- a/home/profiles/devops/packages.nix +++ b/home/profiles/devops/packages.nix @@ -20,7 +20,6 @@ deadnix # nix dead-code scanner alejandra # nix code formatter statix # nix anti-pattern finder - rnix-lsp # vscode nix extensions deploy-rs.deploy-rs # deployment system ]; } diff --git a/home/profiles/graphical/discord.nix b/home/profiles/graphical/discord.nix new file mode 100644 index 00000000..92f546a4 --- /dev/null +++ b/home/profiles/graphical/discord.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, ... }: let + inherit (lib.generators) toJSON; +in { + home.packages = with pkgs; [ + discord + ]; + xdg.configFile."discord/settings.json".text = toJSON {} { + "SKIP_HOST_UPDATE" = true; + }; +} diff --git a/home/profiles/graphical/packages.nix b/home/profiles/graphical/packages.nix index 443d8e6d..6bb6deac 100644 --- a/home/profiles/graphical/packages.nix +++ b/home/profiles/graphical/packages.nix @@ -14,7 +14,6 @@ spotify # Chat - discord fractal # Matrix tdesktop # Telegram dino # XMPP @@ -26,7 +25,6 @@ p7zip # Misc - gimp-with-plugins # GIMP exiftool # EXIF Stripping lm_sensors # Sensor Data cryptsetup # Encrypted block devices diff --git a/home/profiles/graphical/wezterm.nix b/home/profiles/graphical/wezterm.nix index 690d39b7..7dc84b61 100644 --- a/home/profiles/graphical/wezterm.nix +++ b/home/profiles/graphical/wezterm.nix @@ -2,14 +2,29 @@ _: { programs.wezterm = { enable = true; extraConfig = '' - local wezterm = require 'wezterm'; - return { - font = wezterm.font "Monaspace Krypton", - font_size = 10.0, - check_for_updates = false, - show_update_window = false, - enable_tab_bar = true - } + local wezterm = require 'wezterm'; + return { + font = wezterm.font_with_fallback({ + -- /nix/store/rh47mw5pfp7w2nmkn8rlwjkmkzf11prq-monaspace-1.000/share/fonts/opentype/MonaspaceKrypton-Regular.otf, FontConfig + "Monaspace Krypton", + + -- , BuiltIn + "JetBrains Mono", + + -- /nix/store/mc76mhlam0rggcgx3z695025phl07pi1-noto-fonts-color-emoji-2.042/share/fonts/noto/NotoColorEmoji.ttf, FontConfig + -- Assumed to have Emoji Presentation + -- Pixel sizes: [128] + "Noto Color Emoji", + + -- , BuiltIn + "Symbols Nerd Font Mono", + + }), + font_size = 10.0, + check_for_updates = false, + show_update_window = false, + enable_tab_bar = false + } ''; }; } diff --git a/home/profiles/shell/eza.nix b/home/profiles/shell/eza.nix index 8eb798eb..395ee3c4 100644 --- a/home/profiles/shell/eza.nix +++ b/home/profiles/shell/eza.nix @@ -1,6 +1,5 @@ _: { programs.eza = { enable = true; - enableAliases = true; }; } diff --git a/nixos/environments/xfce/xfce.nix b/nixos/environments/xfce/xfce.nix new file mode 100644 index 00000000..36dc3756 --- /dev/null +++ b/nixos/environments/xfce/xfce.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: { + services.xserver = { + enable = true; + libinput.touchpad = { + tappingButtonMap = "lrm"; + clickMethod = "clickfinger"; + }; + desktopManager = { + xterm.enable = false; + xfce.enable = true; + }; + displayManager.gdm.enable = true; + displayManager.defaultSession = "xfce"; + xkbOptions = "ctrl:nocaps"; + }; + programs.xfconf.enable = true; + + environment.systemPackages = with pkgs; [ + xfce.xfce4-pulseaudio-plugin + xfce.xfce4-whiskermenu-plugin + xclip + ]; + + services.colord.enable = true; +} diff --git a/nixos/hardware/framework/boot.nix b/nixos/hardware/framework/boot.nix index 921fbab5..ec3bfad8 100644 --- a/nixos/hardware/framework/boot.nix +++ b/nixos/hardware/framework/boot.nix @@ -4,7 +4,7 @@ _: { enable = true; }; consoleLogLevel = 0; - kernelParams = [ "quiet" ]; + kernelParams = ["quiet"]; initrd = { verbose = false; systemd.enable = true; diff --git a/nixos/hardware/framework/fingerprint.nix b/nixos/hardware/framework/fingerprint.nix index 57731bdc..c33118c6 100644 --- a/nixos/hardware/framework/fingerprint.nix +++ b/nixos/hardware/framework/fingerprint.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{pkgs, ...}: { services = { fwupd = { enable = true; diff --git a/nixos/hardware/framework/imports.nix b/nixos/hardware/framework/imports.nix index 6ff19e4f..6e1d0270 100644 --- a/nixos/hardware/framework/imports.nix +++ b/nixos/hardware/framework/imports.nix @@ -5,7 +5,7 @@ }: { imports = (with tree.nixos.profiles; [ - uefi + uefi ]) ++ [ inputs.nixos-hardware.outputs.nixosModules.framework-13-7040-amd diff --git a/nixos/profiles/bootable/grub.nix b/nixos/profiles/bootable/grub.nix index 78c53740..a38603fd 100644 --- a/nixos/profiles/bootable/grub.nix +++ b/nixos/profiles/bootable/grub.nix @@ -1,6 +1,10 @@ -{config, lib, ... }: let - inherit (lib.modules) mkIf; - in { +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; +in { boot.loader = mkIf (config.boot.loader.grub.enable) { timeout = null; grub = { diff --git a/nixos/profiles/gaming/lutris.nix b/nixos/profiles/gaming/lutris.nix new file mode 100644 index 00000000..a3920116 --- /dev/null +++ b/nixos/profiles/gaming/lutris.nix @@ -0,0 +1,45 @@ +{pkgs, ...}: { + hardware.opengl = { + driSupport32Bit = true; + driSupport = true; + }; + hardware.opengl.extraPackages = with pkgs; [ + rocm-opencl-icd + rocm-opencl-runtime + amdvlk + ]; + hardware.opengl.extraPackages32 = with pkgs; [ + driversi686Linux.amdvlk + driversi686Linux.mesa + ]; + environment.systemPackages = with pkgs; [ + (lutris.override { + extraPkgs = pkgs: [ + pkgs.libnghttp2 + pkgs.winetricks + pkgs.jansson + pkgs.samba + ]; + extraLibraries = pkgs: [ + pkgs.jansson + pkgs.samba + pkgs.xz + ]; + }) + + # support 32-bit only + wine + + # support 64-bit only + wine64 + + # wine-staging (version with experimental features) + wineWowPackages.staging + + # winetricks (all versions) + winetricks + + # native wayland support (unstable) + wineWowPackages.waylandFull + ]; +} diff --git a/nixos/profiles/gaming/parsec.nix b/nixos/profiles/gaming/parsec.nix new file mode 100644 index 00000000..65add7d7 --- /dev/null +++ b/nixos/profiles/gaming/parsec.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + environment.systemPackages = with pkgs; [ + parsec-bin + ]; +} diff --git a/nixos/profiles/graphical/avahi.nix b/nixos/profiles/graphical/avahi.nix new file mode 100644 index 00000000..56270678 --- /dev/null +++ b/nixos/profiles/graphical/avahi.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + services.avahi = { + nssmdns4 = true; + enable = true; + ipv4 = true; + ipv6 = true; + publish = { + enable = true; + addresses = true; + workstation = true; + }; + }; +} diff --git a/nixos/profiles/graphical/fonts.nix b/nixos/profiles/graphical/fonts.nix index 02de72b0..88e6f069 100644 --- a/nixos/profiles/graphical/fonts.nix +++ b/nixos/profiles/graphical/fonts.nix @@ -8,6 +8,7 @@ corefonts vistafonts open-dyslexic + chicago95 ]; enableDefaultPackages = true; fontDir.enable = true; diff --git a/nixos/profiles/graphical/gpg.nix b/nixos/profiles/graphical/gpg.nix index 6be42f20..7d529140 100644 --- a/nixos/profiles/graphical/gpg.nix +++ b/nixos/profiles/graphical/gpg.nix @@ -5,6 +5,6 @@ programs.gnupg.agent = { enable = true; enableSSHSupport = true; - pinentryFlavor = "qt"; + pinentryPackage = pkgs.pinentry-gnome3; }; } diff --git a/nixos/profiles/sdr.nix b/nixos/profiles/sdr.nix new file mode 100644 index 00000000..df94a33b --- /dev/null +++ b/nixos/profiles/sdr.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + environment.systemPackages = with pkgs; [ + rtl-sdr + sdrpp + sdrangel + ]; + hardware.rtl-sdr.enable = true; + users.users.kat.extraGroups = ["plugdev"]; +} diff --git a/nixos/profiles/secureboot.nix b/nixos/profiles/secureboot.nix new file mode 100644 index 00000000..476b8218 --- /dev/null +++ b/nixos/profiles/secureboot.nix @@ -0,0 +1,16 @@ +{pkgs, lib, ...}: let + inherit (lib.modules) mkForce; +in { + environment.systemPackages = with pkgs; [ + sbctl + ]; + boot = { + loader = { + systemd-boot.enable = mkForce false; + }; + lanzaboote = { + enable = true; + pkiBundle = "/etc/secureboot"; + }; + }; +} diff --git a/nixos/profiles/wireless/bluetooth.nix b/nixos/profiles/wireless/bluetooth.nix index 8f1096ff..b8427f94 100644 --- a/nixos/profiles/wireless/bluetooth.nix +++ b/nixos/profiles/wireless/bluetooth.nix @@ -1,16 +1,16 @@ {pkgs, ...}: { environment.systemPackages = with pkgs; [bluez5-experimental]; - environment.etc = { - "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' + services.pipewire.wireplumber.configPackages = [ + (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" '' bluez_monitor.properties = { ["bluez5.enable-sbc-xq"] = true, ["bluez5.enable-msbc"] = true, ["bluez5.enable-hw-volume"] = true, ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" } - ''; - }; + '') + ]; hardware.bluetooth = { enable = true; diff --git a/packages/chicago95.nix b/packages/chicago95.nix new file mode 100644 index 00000000..313ff084 --- /dev/null +++ b/packages/chicago95.nix @@ -0,0 +1,44 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + gdk-pixbuf, + xfce, + ... +}: +stdenvNoCC.mkDerivation rec { + pname = "chicago95"; + version = "3.0.1"; + + buildInputs = [gdk-pixbuf xfce.xfce4-panel-profiles]; + + src = fetchFromGitHub { + owner = "grassmunk"; + repo = "Chicago95"; + rev = "v${version}"; + hash = "sha256-EHcDIct2VeTsjbQWnKB2kwSFNb97dxuydAu+i/VquBA="; + }; + + # the Makefile is just for maintainers + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/{themes,icons,sounds} + cp -r Theme/Chicago95 $out/share/themes + cp -r Icons/* $out/share/icons + cp -r Cursors/* $out/share/icons + cp -r sounds/Chicago95 $out/share/sounds + + runHook postInstall + ''; + + meta = with lib; { + description = "A rendition of everyone's favorite 1995 Microsoft operating system for Linux."; + homepage = "https://github.com/grassmunk/Chicago95"; + license = with licenses; [gpl3Plus mit]; + platforms = platforms.linux; + maintainers = with maintainers; []; + }; +} diff --git a/systems/default.nix b/systems/default.nix index 984f880a..017a2865 100644 --- a/systems/default.nix +++ b/systems/default.nix @@ -115,7 +115,8 @@ pkgs = pkgs.${config.system}; nurpkgs = pkgs.${config.system}; }; - in { + in + { inherit machine nur; systemType = config.folder; inherit (config) system; diff --git a/systems/koishi.nix b/systems/koishi.nix index 4d1cd2ca..cd7ddf41 100644 --- a/systems/koishi.nix +++ b/systems/koishi.nix @@ -1,85 +1,63 @@ _: let -hostConfig = { - tree, - pkgs, - lib, - inputs, - ... -}: { - imports = - (with tree.nixos.hardware; [ - framework - ]) - ++ (with tree.nixos.profiles; [ + hostConfig = { + tree, + pkgs, + lib, + inputs, + ... + }: { + imports = + (with tree.nixos.hardware; [ + framework + ]) + ++ (with tree.nixos.profiles; [ graphical gaming wireless laptop bcachefs - ]) - ++ (with tree.nixos.environments; [ - hyprland - ]); - config = let - inherit (lib.modules) mkForce; - in { - home-manager.users.kat.imports = - (with tree.home.profiles; [ - graphical - devops + sdr + secureboot ]) - ++ (with tree.home.environments; [ - hyprland + ++ (with tree.nixos.environments; [ + xfce ]); + config = { + home-manager.users.kat.imports = + (with tree.home.profiles; [ + graphical + devops + ]) + ++ (with tree.home.environments; [ + xfce + ]); - environment.systemPackages = with pkgs; [ - parsec-bin - sbctl - ]; - services.avahi = { - nssmdns = true; - enable = true; - ipv4 = true; - ipv6 = true; - publish = { - enable = true; - addresses = true; - workstation = true; + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/861e8815-9327-4e49-915b-73a3b0bdfa25"; + fsType = "bcachefs"; + }; + "/boot" = { + device = "/dev/disk/by-uuid/DD84-303D"; + fsType = "vfat"; + }; }; + + swapDevices = [ + {device = "/dev/disk/by-uuid/04bd322e-dca0-43b8-b588-cc0ef1b1488e";} + ]; + + boot = { + supportedFilesystems = ["ntfs"]; + }; + + networking = { + useDHCP = false; + }; + + system.stateVersion = "24.05"; }; - fileSystems = { - "/" = { - device = "/dev/disk/by-uuid/861e8815-9327-4e49-915b-73a3b0bdfa25"; - fsType = "bcachefs"; - }; - "/boot" = { - device = "/dev/disk/by-uuid/DD84-303D"; - fsType = "vfat"; - }; - }; - - swapDevices = [ - {device = "/dev/disk/by-uuid/04bd322e-dca0-43b8-b588-cc0ef1b1488e";} - ]; - - boot = { - supportedFilesystems = ["ntfs"]; - loader = { - systemd-boot.enable = mkForce false; - }; - lanzaboote = { - enable = true; - pkiBundle = "/etc/secureboot"; - }; - }; - - networking = { - useDHCP = false; - }; - - system.stateVersion = "24.05"; }; -}; in { arch = "x86_64"; type = "NixOS";