Compare commits

...

35 commits

Author SHA1 Message Date
5f5c70958e use waybar from git 2024-05-02 16:56:45 -07:00
75f7cbffa2 update todo 2024-05-02 16:40:39 -07:00
529961cefc window rules... 2024-05-01 19:48:46 -07:00
7f0e304478 default root shadow shell 2024-05-01 18:28:19 -07:00
642bea2f41 bluetooth mode... activated 2024-05-01 18:24:13 -07:00
1182d7e1ac qt themes to match gtk 2024-05-01 16:49:52 -07:00
3cb1680ffc more window rules 2024-05-01 15:56:53 -07:00
8238b20d38 adding cursor compat 2024-05-01 15:39:24 -07:00
a1cfd30341 polkit agent 2024-04-27 18:13:23 -07:00
3fff2cd853 fix gamemode 2024-04-27 15:51:56 -07:00
e400a3dc90 make dunst notifications follow monitor 2024-04-27 00:49:48 -07:00
88fbe0d74a git aliases... WORK 2024-04-27 00:41:56 -07:00
317ec37863 gamemode 2024-04-26 17:00:52 -07:00
68d23850d8 update todo 2024-04-26 00:00:48 -07:00
2aa9e86a5d actually fix locking and idle, fr this time 2024-04-25 23:46:42 -07:00
085d68b27d update todo 2024-04-25 22:54:40 -07:00
15d176e2b3 specify procps binaries 2024-04-25 22:50:37 -07:00
2094d5ce7b fix post-resume stacking hyprlocks 2024-04-25 22:32:45 -07:00
2f9cc4052a fix post-resume failing 2024-04-25 22:31:12 -07:00
622d09e2c8 update todo 2024-04-25 22:25:47 -07:00
f0865a73a8 remove gpu-screen-recorder (broken!) 2024-04-25 19:37:35 -07:00
ef7ed6de55 install ffmpeg 2024-04-25 19:36:16 -07:00
a189a0f467 gpu-screen-recorder 2024-04-25 18:38:54 -07:00
5889f85a24 Nvidia 2024-04-25 17:56:46 -07:00
bf4f121ec1 oops. that wasn't fixed 2024-04-25 00:58:23 -07:00
973c3d8bac update hypr stuff 2024-04-25 00:52:19 -07:00
ca5c52e679 add screen recorder 2024-04-23 00:05:45 -07:00
1ecad38549 remove dumb comment 2024-04-22 20:06:09 -07:00
e6231562a3 slay the xterm beast 2024-04-22 19:51:00 -07:00
508d543ae9 add baobab 2024-04-22 19:07:18 -07:00
376a5a99d6 i give up 2024-04-22 17:38:27 -07:00
c4cb22b00d nvm 2024-04-22 17:31:32 -07:00
2c6b52a617 oh. that doesn't work if the channel has a pipe 2024-04-22 17:30:39 -07:00
c1fd569ae5 vesktop fixes 2024-04-22 17:25:43 -07:00
31146eb6f7 move from armcord to vesktop 2024-04-16 19:26:08 -07:00
21 changed files with 279 additions and 143 deletions

View file

@ -17,7 +17,8 @@ each host should have these files:
## todo
- move common config such as bootloader and networking settings to [`default.nix`](./default.nix) or some other common spot
- multi architecture configuration
- multi architecture configuration ([nix-systems](https://github.com/nix-systems/nix-systems)?)
- bitwarden
- qt themes?
- sddm cursors no work :(
- sddm cursors no work :(
- setup editorconfig everywhere
- divide steam and gamemode?

View file

@ -3,7 +3,7 @@
frame_color = "#89B4FA"
separator_color= frame
follow = none
follow = "mouse"
width = 300
height = 145
origin = top-right

223
flake.lock generated
View file

@ -34,6 +34,22 @@
"type": "github"
}
},
"flake-compat": {
"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"
}
},
"hardware": {
"locked": {
"lastModified": 1711352745,
@ -71,7 +87,10 @@
},
"hyprcursor": {
"inputs": {
"hyprlang": "hyprlang_2",
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
@ -82,11 +101,11 @@
]
},
"locked": {
"lastModified": 1711466786,
"narHash": "sha256-sArxGyUBiCA1in+q6t0QqT+ZJiZ1PyBp7cNPKLmREM0=",
"lastModified": 1713612213,
"narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "d3876f34779cc03ee51e4aafc0d00a4f187c7544",
"rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1",
"type": "github"
},
"original": {
@ -99,14 +118,14 @@
"inputs": {
"hyprlang": "hyprlang",
"nixpkgs": "nixpkgs_2",
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1710180874,
"narHash": "sha256-ZSn3wXQuRz36Ta/L+UCFKuUVG6QpwK2QmRkPjpQprU4=",
"lastModified": 1713472482,
"narHash": "sha256-7Ft5WZTMIjXOGgRCf31DZBwK6RK8xkeKlD5vFXz3gII=",
"owner": "hyprwm",
"repo": "hypridle",
"rev": "4395339a2dc410bcf49f3e24f9ed3024fdb25b0a",
"rev": "7cff4581a3753154fc5b41f39a098fad49b777b1",
"type": "github"
},
"original": {
@ -119,18 +138,19 @@
"inputs": {
"hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang_3",
"hyprlang": "hyprlang_2",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
"systems": "systems_3",
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1711673030,
"narHash": "sha256-atpS9c2LR56DIURlDLmuKHGmVQj9Xky2aETGhdTwMKg=",
"lastModified": 1714084064,
"narHash": "sha256-WUEFYyOzgWOr6pK2/1fCohUUF77wuj1zIeP8jvPL0LU=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "fcd9d77b642c0cd45cae61cf10ed1924f2e7945b",
"rev": "1d40af64d352bd5a87c7d53a52707fc5cfc6940e",
"type": "github"
},
"original": {
@ -185,14 +205,15 @@
"nixpkgs": [
"hypridle",
"nixpkgs"
]
],
"systems": "systems"
},
"locked": {
"lastModified": 1708212860,
"narHash": "sha256-nW3Zrhh9RJcMTvOcXAaKADnJM/g6tDf3121lJtTHnYo=",
"lastModified": 1713121246,
"narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "11d5ccda071c153dfdc18ef65338956a51cef96a",
"rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
"type": "github"
},
"original": {
@ -205,17 +226,19 @@
"inputs": {
"nixpkgs": [
"hyprland",
"hyprcursor",
"nixpkgs"
],
"systems": "systems_2"
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1709914708,
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
"lastModified": 1713121246,
"narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
"rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
"type": "github"
},
"original": {
@ -227,20 +250,17 @@
"hyprlang_3": {
"inputs": {
"nixpkgs": [
"hyprland",
"hyprlock",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
"systems": "systems_4"
},
"locked": {
"lastModified": 1711250455,
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
"lastModified": 1713121246,
"narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
"rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
"type": "github"
},
"original": {
@ -250,28 +270,6 @@
}
},
"hyprlang_4": {
"inputs": {
"nixpkgs": [
"hyprlock",
"nixpkgs"
],
"systems": "systems_4"
},
"locked": {
"lastModified": 1711250455,
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprlang_5": {
"inputs": {
"nixpkgs": "nixpkgs_5",
"systems": "systems_6"
@ -292,16 +290,16 @@
},
"hyprlock": {
"inputs": {
"hyprlang": "hyprlang_4",
"hyprlang": "hyprlang_3",
"nixpkgs": "nixpkgs_4",
"systems": "systems_5"
},
"locked": {
"lastModified": 1711622429,
"narHash": "sha256-JwHbbmAzX1Kfq1XAs06lKbk2TZL7mH/yLczG4BaiuTs=",
"lastModified": 1713978374,
"narHash": "sha256-jla5Wo0Qt3NEnD0OjNj85BGw0pR4Zlz5uy8AqHH7tuE=",
"owner": "hyprwm",
"repo": "hyprlock",
"rev": "7f8c9b6addce5174af78acaf1eb1d726fc4133b5",
"rev": "415262065fff0a04b229cd00165f346a86a0a73a",
"type": "github"
},
"original": {
@ -312,16 +310,16 @@
},
"hyprpaper": {
"inputs": {
"hyprlang": "hyprlang_5",
"hyprlang": "hyprlang_4",
"nixpkgs": "nixpkgs_6",
"systems": "systems_7"
},
"locked": {
"lastModified": 1711556036,
"narHash": "sha256-z+ZgMjGC8540k3Z6Z49ZnEvbWyLGXtWPSCagMOrmuXk=",
"lastModified": 1712919696,
"narHash": "sha256-93zNQy4LGFP5h/GrQJctd8cPE0VdCDsWigTOx2effrE=",
"owner": "hyprwm",
"repo": "hyprpaper",
"rev": "5838c90cd29374935930281f62bc131d8bcf2295",
"rev": "02ee7ff3bbd9cba72f26be7b09dde4a89fc31c21",
"type": "github"
},
"original": {
@ -330,6 +328,31 @@
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1713989318,
"narHash": "sha256-WSsEQQxZQ+bsAWRhi1iXvP8sxgRyNtY3X1V3CfFdP5Q=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "1cfe2d26a82ce794fd33ec06fa022e68501c5a45",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
@ -382,11 +405,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1708475490,
"narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=",
"lastModified": 1712963716,
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0e74ca98a74bc7270d28838369593635a5db3260",
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
"type": "github"
},
"original": {
@ -398,11 +421,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1711523803,
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
"lastModified": 1713714899,
"narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
"rev": "6143fc5eeb9c4f00163267708e26191d1e918932",
"type": "github"
},
"original": {
@ -414,11 +437,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1711523803,
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
"lastModified": 1712963716,
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
"type": "github"
},
"original": {
@ -476,6 +499,22 @@
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1711163522,
"narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"catppuccin-vsc": "catppuccin-vsc",
@ -488,6 +527,7 @@
"hyprpaper": "hyprpaper",
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_7",
"waybar": "waybar",
"waybar-catppuccin": "waybar-catppuccin"
}
},
@ -596,6 +636,25 @@
"type": "github"
}
},
"waybar": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1714680561,
"narHash": "sha256-ov7v4OaiMW6gylMFTjKXXtoxrgAjtOTHa09oFmu3B3s=",
"owner": "Alexays",
"repo": "Waybar",
"rev": "0b6476da32d181ee6b2cabdc5205a46a90521a75",
"type": "github"
},
"original": {
"owner": "Alexays",
"repo": "Waybar",
"type": "github"
}
},
"waybar-catppuccin": {
"flake": false,
"locked": {
@ -615,20 +674,18 @@
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1709983277,
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
"lastModified": 1713731601,
"narHash": "sha256-bdcKdtLkusvv85DNuJsajZLFeq7bXp+x5AGP1Sd4wD8=",
"owner": "hyprwm",
"repo": "wlroots-hyprland",
"rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea",
"type": "github"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
"type": "gitlab"
"owner": "hyprwm",
"repo": "wlroots-hyprland",
"rev": "5c1d51c5a2793480f5b6c4341ad0797052aec2ea",
"type": "github"
}
},
"xdph": {
@ -651,11 +708,11 @@
]
},
"locked": {
"lastModified": 1709299639,
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
"lastModified": 1713724432,
"narHash": "sha256-dtU1y4oj/0Y42oauzm93ucFg1AoqETnQ21bmXTIUng0=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
"rev": "9ace6f969ce495185df34cc6254fb9d297765478",
"type": "github"
},
"original": {

View file

@ -10,6 +10,8 @@
hardware.url = "github:nixos/nixos-hardware";
nix-colors.url = "github:misterio77/nix-colors";
waybar.url = "github:Alexays/Waybar";
hyprland.url = "github:hyprwm/Hyprland";
hyprlock.url = "github:hyprwm/hyprlock";
hypridle.url = "github:hyprwm/hypridle";

View file

@ -19,18 +19,19 @@
# apps
firefox mpv qalculate-gtk
# misc
bat file which tree prismlauncher yt-dlp
bat file which tree prismlauncher yt-dlp ffmpeg gpu-screen-recorder gpu-screen-recorder-gtk
] ++ (with pkgs.my; [
# none yet
]) ++ (with pkgs.gnome; [
# yay gnomeware!!!!!!!!!!!!!! yum
nautilus gnome-disk-utility pkgs.gnome-text-editor file-roller gnome-system-monitor loupe
nautilus gnome-disk-utility pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe
]);
modules = {
security.useDoas = true;
hardware = {
bluetooth.enable = true;
pipewire.enable = true;
};
dev = {
@ -44,6 +45,7 @@
hypridle.enable = true;
hyprpaper.enable = true;
polkit-gnome.enable = true;
dunst.enable = true;
rofi.enable = true;
nwg-drawer.enable = true;
@ -64,7 +66,7 @@
dev.git.enable = true;
# distractions
distractions.discord.enable = true;
distractions.discord.armcord = true;
distractions.discord.vesktop = true;
distractions.steam.enable = true;
};
};

View file

@ -21,8 +21,7 @@
efi.canTouchEfiVariables = true;
};
# nvidia
# !! you should keep this enabled if you use wayland !!
# nvidia driver
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
@ -31,11 +30,13 @@
modesetting.enable = true;
powerManagement.enable = true;
# this program is (respectfully) a pile of dogshit and is just bloat if using wayland
nvidiaSettings = false;
};
boot.kernelParams = [
# use experimental nvidia supplied framebuffer
"nvidia-drm.fbdev=1"
];
# VA-API
hardware.opengl = {
extraPackages = with pkgs; [

View file

@ -13,12 +13,6 @@ in {
config = mkMerge [
{
qt = {
enable = true;
platformTheme = "gnome";
style = "adwaita-dark";
};
modules.desktop.fonts.enable = true;
modules.desktop.fonts.baseFonts = true;
}
@ -33,8 +27,6 @@ in {
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
# this fixes cursors on nvidia, maybe move all nvidia stuff to a module? or put this in hardware
WLR_NO_HARDWARE_CURSORS = "1";
};
})
(mkIf (cfg.envProto == "x11") {

View file

@ -89,7 +89,6 @@ in {
};
hm.gtk.enable = true;
# not the best way of writing this (imagine if `name` was named `family`...)
hm.gtk.font = with cfg.fonts.sansSerif; {
package = package;
name = family;

View file

@ -14,20 +14,18 @@ in {
};
config = mkIf cfg.enable {
hm.services.hypridle = {
hm.services.hypridle = let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {
enable = true;
package = cfg.package;
# the `date` command doesn't work if we just call hyprlock. Huh
# workaround is telling hyprctl to dispatch to execute it
# hacky, but i couldn't care less at the moment
# TODO: change this when/if it gets patched
lockCmd = "${config.modules.desktop.hyprland.package}/bin/hyprctl dispatch exec ${lib.getExe config.modules.desktop.hyprlock.package}";
unlockCmd = "pkill -USR1 hyprlock";
lockCmd = "${pkgs.procps}/bin/pidof hyprlock || ${hyprctl} dispatch exec ${lib.getExe config.modules.desktop.hyprlock.package}";
unlockCmd = "${pkgs.procps}/bin/pkill -USR1 hyprlock";
listeners = let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in [
beforeSleepCmd = "${pkgs.systemd}/bin/loginctl lock-session";
listeners = [
{
timeout = 90; # 1.5 min
onTimeout = "${hyprctl} dispatch dpms off"; # turn off screen
@ -35,11 +33,11 @@ in {
}
{
timeout = 60 * 2; # 2 min
onTimeout = "loginctl lock-session"; # lock computer
onTimeout = "${pkgs.systemd}/bin/loginctl lock-session"; # lock computer
}
{
timeout = 60 * 30; # 15 min
onTimeout = "systemctl suspend"; # sleep/suspend
timeout = 60 * 30; # 30 min
onTimeout = "${pkgs.systemd}/bin/systemctl suspend"; # sleep/suspend
}
];
};

View file

@ -118,18 +118,27 @@ in {
windowrulev2 = [
# common popups
"float, class:file-roller"
"size 1100 730, class:file-roller"
"float, class:org.gnome.Loupe"
"size 1100 730, class:org.gnome.Loupe"
"float, initialTitle:^Open Folder$"
"size 1100 730, initialTitle:^Open Folder$"
"float, initialTitle:^Open File$"
"size 1100 730, initialTitle:^Open File$"
"float, initialTitle:^Open Files$"
"size 1100 730, initialTitle:^Open Files$"
"float, initialTitle:^Save As$"
"size 1100 730, initialTitle:^Save As$"
# fix focus
"stayfocused, class:^pinentry-"
"stayfocused, class:^polkit-"
"stayfocused, class:^rofi-"
# workspace moving
"workspace 1, class:^firefox"
"workspace 2, class:code-url-handler"
"workspace 4, class:ArmCord"
"workspace 4, class:vesktop"
];
blurls = [

View file

@ -1,4 +1,4 @@
{ lib, config, inputs, system, ... }:
{ lib, config, pkgs, inputs, system, ... }:
with lib;
let
@ -15,17 +15,16 @@ in {
config = mkIf cfg.enable {
security.pam.services.hyprlock.text = "auth include login";
powerManagement.resumeCommands = ''
${cfg.package}
'';
hm.programs.hyprlock = with config.colorScheme.palette; {
enable = true;
package = cfg.package;
general = {
hide_cursor = false;
no_fade_in = true;
no_fade_out = true;
};
backgrounds = [
{
path = toString ../../assets/lockscreen.png;
@ -33,6 +32,7 @@ in {
blur_size = 6;
}
];
labels = [
{
text = "cmd[update:1000] echo \"$(date +'%H:%M')\"";
@ -49,6 +49,7 @@ in {
position = { x = 0; y = 10; };
}
];
input-fields = [
{
size = { width = 300; height = 28; };

View file

@ -9,7 +9,7 @@ in {
package = mkOption {
type = types.package;
default = inputs.hyprpaper.packages.${system}.hyprpaper;
example = "pkgs.hyperpaper";
example = "pkgs.hyprpaper";
};
};

View file

@ -0,0 +1,28 @@
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.polkit-gnome;
in {
options.modules.desktop.polkit-gnome = {
enable = mkEnableOption "Enable polkit-gnome, a simple polkit agent";
};
config = mkIf cfg.enable {
systemd.user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View file

@ -10,6 +10,7 @@ in {
config = mkIf cfg.enable {
services.xserver.enable = true; # this is needed, unfortunately!
services.xserver.excludePackages = [ pkgs.xterm ]; # prevents xterm on wayland and x
environment.systemPackages = with pkgs; [
config.modules.desktop.themes.sddmTheme.package
libsForQt5.qt5.qtsvg

View file

@ -67,6 +67,19 @@ in {
theme = cfg.gtkTheme;
};
hm.qt = {
enable = true;
platformTheme = "gtk";
style.name = "gtk2";
};
hm.home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
name = cfg.cursorTheme.name;
package = cfg.cursorTheme.package;
};
hm.services.dunst.iconTheme = {
name = cfg.iconTheme.name;
package = cfg.iconTheme.package;

View file

@ -1,17 +1,23 @@
{ lib, config, pkgs, inputs, ... }:
{ lib, config, pkgs, inputs, system, ... }:
with lib;
let
cfg = config.modules.desktop.waybar;
in {
options.modules.desktop.waybar = {
enable = mkEnableOption "Enable Waybar, a lightweight desktop environment based on GTK+";
enable = mkEnableOption "Enable Waybar, a highly customizable wayland bar for wlroots compositors.";
package = mkOption {
type = types.package;
default = inputs.waybar.packages.${system}.default;
example = "pkgs.waybar";
};
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe pkgs.waybar}" ];
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe cfg.package}" ];
hm.programs.waybar = {
enable = true;
package = cfg.package;
style = builtins.concatStringsSep "\n" [
"@import \"${inputs.waybar-catppuccin}/themes/mocha.css\";"
(lib.readFile ../../config/waybar.css)
@ -129,8 +135,7 @@ in {
"(\\S+\\.zig\\s.*)" = " $1";
"(\\S+\\.rs\\s.*)" = " $1";
"(\\S+\\.hs\\s.*)" = " $1";
".*Discord | (.*) | .*" = "$1 - ArmCord";
#"(.*) - ArmCord" = "$1";
".*Discord \\| (.*)" = "$1";
};
separate-outputs = true;
};

View file

@ -0,0 +1,19 @@
{ pkgs, config, lib, ... }:
with lib;
let
cfg = config.modules.hardware.bluetooth;
in {
options.modules.hardware.bluetooth = {
enable = mkEnableOption "Enable bluetooth, a short-range communication technology";
};
config = mkIf cfg.enable {
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# frontend
services.blueman.enable = true;
hm.services.blueman-applet.enable = true;
};
}

View file

@ -33,16 +33,7 @@ in {
];
aliases = {
ranked-authors = "!git authors | sort | uniq -c | sort -n";
emails = ''
!git log --format="%aE" | sort -u
'';
email-domains = ''
!git log --format="%aE" | awk -F'@' '{print $2}' | sort -u
'';
graph = ''
log --graph --color --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"
'';
graph = ''log --graph --color --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"'';
};
extraConfig = {

View file

@ -6,11 +6,11 @@ let
in {
options.modules.software.distractions.discord = {
enable = mkEnableOption "Enable discord, a social messaging app";
armcord = mkEnableOption "Use armcord, an alternative discord client.";
vesktop = mkEnableOption "Use vesktop, an alternative discord client.";
};
config = mkIf cfg.enable (mkMerge [
(mkIf (!cfg.armcord) {
(mkIf (!cfg.vesktop) {
user.packages = let
flags =
[
@ -36,8 +36,8 @@ in {
});
in [ discord ];
})
(mkIf cfg.armcord {
user.packages = with pkgs; [ armcord ];
(mkIf cfg.vesktop {
user.packages = with pkgs; [ vesktop ];
})
]);
}

View file

@ -10,11 +10,21 @@ in {
config = mkIf cfg.enable {
programs.steam.enable = true;
# optimize linux system performance on demand
# https://github.com/FeralInteractive/gamemode
user.extraGroups = [ "gamemode" ];
programs.gamemode = {
enable = true;
enableRenice = true;
settings = {};
settings = {
custom = {
start = "${pkgs.libnotify}/bin/notify-send --app-name GameMode 'GameMode started'";
end = "${pkgs.libnotify}/bin/notify-send --app-name GameMode 'GameMode ended'";
};
};
};
programs.gamescope = {
enable = true;
capSysNice = true;
@ -23,6 +33,7 @@ in {
enable = true;
args = [ "-W 1920" "-H 1080" "-r 60" "--expose-wayland" "-e" ];
};
user.packages = [ pkgs.protontricks pkgs.steam-run ];
};
}

View file

@ -33,5 +33,11 @@ with lib.my;
trusted-users = users;
allowed-users = users;
};
users.users.root = {
packages = [ pkgs.shadow ];
shell = pkgs.shadow;
hashedPassword = "!";
};
};
}