tangled
alpha
login
or
join now
pyrox.dev
/
nix
My Nix Configuration
1
fork
atom
overview
issues
pulls
pipelines
[flake] even more misc fixes yolo
pyrox.dev
3 months ago
ef0fe98b
8018b6be
verified
This commit was signed with the committer's
known signature
.
pyrox.dev
SSH Key Fingerprint:
SHA256:ihSg8ro3xVhqiuGLMtUGTeMVgmEMlaXvSS4AFyYcM/o=
+253
-773
27 changed files
expand all
collapse all
unified
split
homeModules
profiles
gui
default.nix
programs
git
default.nix
wayland
default.nix
env.nix
hypridle.nix
hyprland
default.nix
keybindings.nix
keybindings.nix
monitors.nix
plugins.nix
services.nix
settings.nix
sway.nix
swaylock.nix
variables.nix
waybar-mocha.css
waybar-style.css
waybar.nix
windowrules.nix
xdg
default.nix
hosts
zaphod
misc.nix
nixosModules
default-config
nixpkgsConfig.nix
homes
thehedgehog-zaphod
caelestia-cli.json
caelestia-shell.json
default.nix
overlays
default.nix
hy3-fixes
default.nix
-1
homeModules/profiles/gui/default.nix
···
34
krita
35
libappindicator
36
libappindicator-gtk3
37
-
lutris
38
prismlauncher
39
pwvucontrol
40
hyprshot
···
34
krita
35
libappindicator
36
libappindicator-gtk3
0
37
prismlauncher
38
pwvucontrol
39
hyprshot
+3
homeModules/programs/git/default.nix
···
94
userEmail = "pyrox@pyrox.dev";
95
userName = "dish";
96
};
0
0
0
97
lazygit = lib.mkIf cfg.lazygit.enable {
98
enable = true;
99
settings = {
···
94
userEmail = "pyrox@pyrox.dev";
95
userName = "dish";
96
};
97
+
mergiraf = lib.mkIf cfg.enable {
98
+
enable = true;
99
+
};
100
lazygit = lib.mkIf cfg.lazygit.enable {
101
enable = true;
102
settings = {
+29
-5
homeModules/wayland/default.nix
···
0
0
0
0
0
0
0
0
0
0
0
1
{
2
imports = [
3
-
./sway.nix
4
-
./keybindings.nix
5
-
./waybar.nix
6
-
./swaylock.nix
7
-
./hyprland
8
];
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
}
···
1
+
{
2
+
pkgs,
3
+
config,
4
+
osConfig,
5
+
lib,
6
+
...
7
+
}:
8
+
let
9
+
c = osConfig.py.programs.hyprland;
10
+
cfg = config.wayland.windowManager.hyprland;
11
+
in
12
{
13
imports = [
14
+
./services.nix
15
+
./hypridle.nix
0
0
0
16
];
17
+
config = {
18
+
catppuccin.hyprland.enable = c.enable;
19
+
wayland.windowManager.hyprland = {
20
+
enable = c.enable;
21
+
# Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package
22
+
package = null;
23
+
systemd = {
24
+
enable = true;
25
+
enableXdgAutostart = true;
26
+
};
27
+
settings = import ./settings.nix;
28
+
plugins = [
29
+
pkgs.hyprlandPlugins.hy3
30
+
];
31
+
};
32
+
};
33
}
-33
homeModules/wayland/hyprland/default.nix
···
1
-
{
2
-
pkgs,
3
-
config,
4
-
osConfig,
5
-
lib,
6
-
...
7
-
}:
8
-
let
9
-
c = osConfig.py.programs.hyprland;
10
-
cfg = config.wayland.windowManager.hyprland;
11
-
in
12
-
{
13
-
imports = [
14
-
./services.nix
15
-
./hypridle.nix
16
-
];
17
-
config = {
18
-
catppuccin.hyprland.enable = c.enable;
19
-
wayland.windowManager.hyprland = {
20
-
enable = c.enable;
21
-
# Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package
22
-
package = null;
23
-
systemd = {
24
-
enable = true;
25
-
enableXdgAutostart = true;
26
-
};
27
-
settings = import ./settings.nix;
28
-
plugins = [
29
-
pkgs.hyprlandPlugins.hy3
30
-
];
31
-
};
32
-
};
33
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
homeModules/wayland/hyprland/env.nix
homeModules/wayland/env.nix
+1
homeModules/wayland/hyprland/hypridle.nix
homeModules/wayland/hypridle.nix
···
14
lock_cmd = "loginctl lock-session";
15
before_sleep_cmd = "loginctl lock-session";
16
after_sleep_cmd = "hyprctl dispatch dpms on";
0
17
};
18
};
19
};
···
14
lock_cmd = "loginctl lock-session";
15
before_sleep_cmd = "loginctl lock-session";
16
after_sleep_cmd = "hyprctl dispatch dpms on";
17
+
inhibit_sleep = 3;
18
};
19
};
20
};
-98
homeModules/wayland/hyprland/keybindings.nix
···
1
-
{
2
-
"$mod" = "SUPER";
3
-
"$satty" = "satty -f -";
4
-
5
-
binde = [
6
-
# Media binds that can be held and repeated
7
-
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
8
-
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
9
-
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
10
-
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
11
-
];
12
-
13
-
bind = [
14
-
"SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox"
15
-
"$mod, Return, exec, ghostty"
16
-
"$mod, X, global, caelestia:session"
17
-
"$mod, D, global, caelestia:launcher"
18
-
"SUPER_SHIFT, E, exit"
19
-
20
-
# Media Binds
21
-
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
22
-
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
23
-
", XF86AudioPlay, exec, playerctl play-pause"
24
-
", XF86AudioNext, exec, playerctl next"
25
-
", XF86AudioPrev, exec, playerctl previous"
26
-
27
-
# Workspace binds
28
-
"$mod, 1, workspace, 01"
29
-
"SUPER_SHIFT, 1, hy3:movetoworkspace, 01, follow, warp"
30
-
"$mod, 2, workspace, 02"
31
-
"SUPER_SHIFT, 2, hy3:movetoworkspace, 02, follow, warp"
32
-
"$mod, 3, workspace, 03"
33
-
"SUPER_SHIFT, 3, hy3:movetoworkspace, 03, follow, warp"
34
-
"$mod, 4, workspace, 04"
35
-
"SUPER_SHIFT, 4, hy3:movetoworkspace, 04, follow, warp"
36
-
"$mod, 5, workspace, 05"
37
-
"SUPER_SHIFT, 5, hy3:movetoworkspace, 05, follow, warp"
38
-
"$mod, 6, workspace, 06"
39
-
"SUPER_SHIFT, 6, hy3:movetoworkspace, 06, follow, warp"
40
-
"$mod, 7, workspace, 07"
41
-
"SUPER_SHIFT, 7, hy3:movetoworkspace, 07, follow, warp"
42
-
"$mod, 8, workspace, 08"
43
-
"SUPER_SHIFT, 8, hy3:movetoworkspace, 08, follow, warp"
44
-
"$mod, 9, workspace, 09"
45
-
"SUPER_SHIFT, 9, hy3:movetoworkspace, 09, follow, warp"
46
-
"$mod, 0, workspace, 10"
47
-
"SUPER_SHIFT, 0, hy3:movetoworkspace, 10, follow, warp"
48
-
# Scratchpad
49
-
"SUPER_SHIFT, -, movetoworkspace, special"
50
-
"$mod, -, togglespecialworkspace"
51
-
52
-
# Window Management
53
-
"SUPER_SHIFT, Up, hy3:movewindow, up, once, visible"
54
-
"SUPER_SHIFT, K, hy3:movewindow, up, once, visible"
55
-
"$mod, Up, hy3:movefocus, up, visible, warp"
56
-
"$mod, K, hy3:movefocus, up, visible, warp"
57
-
58
-
"SUPER_SHIFT, Right, hy3:movewindow, right, once, visible"
59
-
"SUPER_SHIFT, L, hy3:movewindow, right, once, visible"
60
-
"$mod, Right, hy3:movefocus, right, visible, warp"
61
-
"$mod, L, hy3:movefocus, right, visible, warp"
62
-
63
-
"SUPER_SHIFT, Left, hy3:movewindow, left, once, visible"
64
-
"SUPER_SHIFT, H, hy3:movewindow, left, once, visible"
65
-
"$mod, Left, hy3:movefocus, left, visible, warp"
66
-
"$mod, H, hy3:movefocus, left, visible, warp"
67
-
68
-
"SUPER_SHIFT, Down, hy3:movewindow, down, once, visible"
69
-
"SUPER_SHIFT, J, hy3:movewindow, down, once, visible"
70
-
"$mod, Down, hy3:movefocus, down, visible, warp"
71
-
"$mod, J, hy3:movefocus, down, visible, warp"
72
-
73
-
"SUPER_SHIFT, Q, killactive"
74
-
"$mod, F, fullscreen, 0"
75
-
"$mod, Space, hy3:togglefocuslayer"
76
-
"SUPER_SHIFT, Space, togglefloating, active"
77
-
78
-
# Screenshots
79
-
"SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty"
80
-
"SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty"
81
-
];
82
-
83
-
bindm = [
84
-
"$mod, mouse:272, movewindow"
85
-
];
86
-
87
-
# Unbind a bunch of default keybinds
88
-
unbind = [
89
-
"$mod, C"
90
-
"$mod, E"
91
-
"$mod, J"
92
-
"$mod, M"
93
-
"$mod, P"
94
-
"$mod, Q"
95
-
"$mod, R"
96
-
"$mod, V"
97
-
];
98
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
homeModules/wayland/hyprland/monitors.nix
homeModules/wayland/monitors.nix
homeModules/wayland/hyprland/plugins.nix
homeModules/wayland/plugins.nix
homeModules/wayland/hyprland/services.nix
homeModules/wayland/services.nix
homeModules/wayland/hyprland/settings.nix
homeModules/wayland/settings.nix
homeModules/wayland/hyprland/variables.nix
homeModules/wayland/variables.nix
homeModules/wayland/hyprland/windowrules.nix
homeModules/wayland/windowrules.nix
+96
-43
homeModules/wayland/keybindings.nix
···
1
-
{ config, lib, ... }:
2
-
let
3
-
inherit (config.wayland.windowManager.sway.config) menu;
4
-
mod = config.wayland.windowManager.sway.config.modifier;
5
-
term = config.wayland.windowManager.sway.config.terminal;
6
-
grim = "grim -g";
7
-
slurp-screen = "\"$(slurp -c -b '#1e1e2e80' -o -r)\" -";
8
-
slurp-box = "\"$(slurp -c '#f38ba8ff' -b '#1e1e2e80' -w 1 -d -F 'IBM Plex Mono')\" -";
9
-
satty = "satty -f -";
10
-
cfg = config.py.profiles.gui;
11
-
in
12
{
13
-
config.wayland.windowManager.sway.config.keybindings = lib.mkIf cfg.enable (
14
-
lib.mkOptionDefault {
15
-
"${mod}+d" = "${menu}";
16
-
"${mod}+Shift+F" = "exec MOZ_DISABLE_RDD_SANDBOX=1 firefox";
17
-
"${mod}+Return" = "exec ${term}";
18
-
"${mod}+x" = "exec wlogout";
19
-
"${mod}+s" = null;
20
-
"${mod}+w" = null;
21
-
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
22
-
"XF86MonBrightnessUp" = "exec brightnessctl set +5%";
23
-
"XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
24
-
"XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
25
-
"XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
26
-
"XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
27
-
"XF86AudioPlay" = "exec playerctl play-pause";
28
-
"XF86AudioNext" = "exec playerctl next";
29
-
"XF86AudioPrev" = "exec playerctl previous";
30
-
"Shift+F3" = "exec ${grim} ${slurp-screen} | ${satty}";
31
-
"Shift+F4" = "exec ${grim} ${slurp-box} | ${satty}";
32
-
"${mod}+Shift+1" = "move container to workspace number 1";
33
-
"${mod}+Shift+2" = "move container to workspace number 2";
34
-
"${mod}+Shift+3" = "move container to workspace number 3";
35
-
"${mod}+Shift+4" = "move container to workspace number 4";
36
-
"${mod}+Shift+5" = "move container to workspace number 5";
37
-
"${mod}+Shift+6" = "move container to workspace number 6";
38
-
"${mod}+Shift+7" = "move container to workspace number 7";
39
-
"${mod}+Shift+8" = "move container to workspace number 8";
40
-
"${mod}+Shift+9" = "move container to workspace number 9";
41
-
"${mod}+Shift+0" = "move container to workspace number 10";
42
-
"${mod}+0" = "workspace number 10";
43
-
}
44
-
);
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
45
}
···
0
0
0
0
0
0
0
0
0
0
0
1
{
2
+
"$mod" = "SUPER";
3
+
"$satty" = "satty -f -";
4
+
5
+
binde = [
6
+
# Media binds that can be held and repeated
7
+
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
8
+
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
9
+
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
10
+
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
11
+
];
12
+
13
+
bind = [
14
+
"SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox"
15
+
"$mod, Return, exec, ghostty"
16
+
"$mod, X, global, caelestia:session"
17
+
"$mod, D, global, caelestia:launcher"
18
+
"SUPER_SHIFT, E, exit"
19
+
20
+
# Media Binds
21
+
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
22
+
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
23
+
", XF86AudioPlay, exec, playerctl play-pause"
24
+
", XF86AudioNext, exec, playerctl next"
25
+
", XF86AudioPrev, exec, playerctl previous"
26
+
27
+
# Workspace binds
28
+
"$mod, 1, workspace, 01"
29
+
"SUPER_SHIFT, 1, hy3:movetoworkspace, 01"
30
+
"$mod, 2, workspace, 02"
31
+
"SUPER_SHIFT, 2, hy3:movetoworkspace, 02"
32
+
"$mod, 3, workspace, 03"
33
+
"SUPER_SHIFT, 3, hy3:movetoworkspace, 03"
34
+
"$mod, 4, workspace, 04"
35
+
"SUPER_SHIFT, 4, hy3:movetoworkspace, 04"
36
+
"$mod, 5, workspace, 05"
37
+
"SUPER_SHIFT, 5, hy3:movetoworkspace, 05"
38
+
"$mod, 6, workspace, 06"
39
+
"SUPER_SHIFT, 6, hy3:movetoworkspace, 06"
40
+
"$mod, 7, workspace, 07"
41
+
"SUPER_SHIFT, 7, hy3:movetoworkspace, 07"
42
+
"$mod, 8, workspace, 08"
43
+
"SUPER_SHIFT, 8, hy3:movetoworkspace, 08"
44
+
"$mod, 9, workspace, 09"
45
+
"SUPER_SHIFT, 9, hy3:movetoworkspace, 09"
46
+
"$mod, 0, workspace, 10"
47
+
"SUPER_SHIFT, 0, hy3:movetoworkspace, 10"
48
+
# Scratchpad
49
+
"SUPER_SHIFT, -, hy3:movetoworkspace, special:default"
50
+
"$mod, -, togglespecialworkspace, default"
51
+
52
+
# Window Management
53
+
"SUPER_SHIFT, Up, hy3:movewindow, up, once, visible"
54
+
"SUPER_SHIFT, K, hy3:movewindow, up, once, visible"
55
+
"$mod, Up, hy3:movefocus, up, visible, warp"
56
+
"$mod, K, hy3:movefocus, up, visible, warp"
57
+
58
+
"SUPER_SHIFT, Right, hy3:movewindow, right, once, visible"
59
+
"SUPER_SHIFT, L, hy3:movewindow, right, once, visible"
60
+
"$mod, Right, hy3:movefocus, right, visible, warp"
61
+
"$mod, L, hy3:movefocus, right, visible, warp"
62
+
63
+
"SUPER_SHIFT, Left, hy3:movewindow, left, once, visible"
64
+
"SUPER_SHIFT, H, hy3:movewindow, left, once, visible"
65
+
"$mod, Left, hy3:movefocus, left, visible, warp"
66
+
"$mod, H, hy3:movefocus, left, visible, warp"
67
+
68
+
"SUPER_SHIFT, Down, hy3:movewindow, down, once, visible"
69
+
"SUPER_SHIFT, J, hy3:movewindow, down, once, visible"
70
+
"$mod, Down, hy3:movefocus, down, visible, warp"
71
+
"$mod, J, hy3:movefocus, down, visible, warp"
72
+
73
+
"SUPER_SHIFT, Q, killactive"
74
+
"$mod, F, fullscreen, 0"
75
+
"$mod, Space, hy3:togglefocuslayer"
76
+
"SUPER_SHIFT, Space, togglefloating, active"
77
+
78
+
# Screenshots
79
+
"SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty"
80
+
"SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty"
81
+
];
82
+
83
+
bindm = [
84
+
"$mod, mouse:272, movewindow"
85
+
];
86
+
87
+
# Unbind a bunch of default keybinds
88
+
unbind = [
89
+
"$mod, C"
90
+
"$mod, E"
91
+
"$mod, J"
92
+
"$mod, M"
93
+
"$mod, P"
94
+
"$mod, Q"
95
+
"$mod, R"
96
+
"$mod, V"
97
+
];
98
}
-156
homeModules/wayland/sway.nix
···
1
-
{
2
-
pkgs,
3
-
config,
4
-
lib,
5
-
...
6
-
}:
7
-
let
8
-
term = config.wayland.windowManager.sway.config.terminal;
9
-
homeDir = config.home.homeDirectory;
10
-
cfg = config.py.profiles.gui;
11
-
in
12
-
{
13
-
config = lib.mkIf cfg.enable {
14
-
catppuccin = {
15
-
sway.enable = true;
16
-
};
17
-
home.sessionVariables = {
18
-
XDG_CURRENT_DESKTOP = "sway";
19
-
};
20
-
wayland.windowManager.sway = {
21
-
enable = lib.mkDefault true;
22
-
package = null;
23
-
# nix-community/home-manager/issues/5311
24
-
checkConfig = false;
25
-
wrapperFeatures.base = true;
26
-
wrapperFeatures.gtk = true;
27
-
extraConfig = ''
28
-
default_border pixel
29
-
focus_on_window_activation smart
30
-
'';
31
-
systemd = {
32
-
enable = true;
33
-
xdgAutostart = true;
34
-
};
35
-
config = {
36
-
terminal = lib.getExe pkgs.ghostty;
37
-
menu = "exec ${lib.getExe pkgs.onagre}";
38
-
modifier = "Mod4";
39
-
bars = [ { command = "true"; } ];
40
-
focus = {
41
-
followMouse = true;
42
-
mouseWarping = true;
43
-
newWindow = "smart";
44
-
};
45
-
fonts = {
46
-
names = [ "Inter" ];
47
-
style = "Regular";
48
-
size = 12.0;
49
-
};
50
-
gaps = {
51
-
inner = 1;
52
-
outer = 1;
53
-
smartBorders = "on";
54
-
smartGaps = false;
55
-
};
56
-
input = {
57
-
"type:keyboard" = {
58
-
xkb_options = "caps:escape";
59
-
};
60
-
"type:mouse" = {
61
-
accel_profile = "flat";
62
-
};
63
-
"type:touchpad" = {
64
-
accel_profile = "adaptive";
65
-
scroll_factor = "1.5";
66
-
tap = "enabled";
67
-
};
68
-
};
69
-
modes = {
70
-
resize = {
71
-
Escape = "mode default";
72
-
Return = "mode default";
73
-
Up = "resize shrink height 10 px";
74
-
Down = "resize grow height 10 px";
75
-
Left = "resize shrink width 10 px";
76
-
Right = "resize grow width 10 px";
77
-
h = "resize shrink width 10 px";
78
-
j = "resize grow height 10 px";
79
-
k = "resize shrink height 10 px";
80
-
l = "resize grow width 10 px";
81
-
};
82
-
};
83
-
output = {
84
-
eDP-1 = {
85
-
scale = "1.2";
86
-
};
87
-
};
88
-
startup = [
89
-
{ command = "${pkgs.dex}/bin/dex -a"; }
90
-
{ command = "${homeDir}/scripts/unfuck-xdg-portals.fish"; }
91
-
{ command = "wl-paste -t text --watch clipman store --no-persist"; }
92
-
];
93
-
window = {
94
-
commands = [
95
-
{
96
-
command = "inhibit_idle fullscreen";
97
-
criteria = {
98
-
class = "Chromium|zoom|Firefox";
99
-
};
100
-
}
101
-
{
102
-
command = "floating enable, sticky enable, resize set 20 ppt 40 ppt, border pixel 4";
103
-
criteria = {
104
-
app_id = "^py.floating$";
105
-
};
106
-
}
107
-
{
108
-
command = "resize set 20 ppt";
109
-
criteria = {
110
-
title = "Mumble PTT";
111
-
};
112
-
}
113
-
];
114
-
};
115
-
colors = {
116
-
background = "$base";
117
-
focused = {
118
-
border = "$pink";
119
-
background = "$base";
120
-
text = "$text";
121
-
indicator = "$rosewater";
122
-
childBorder = "$pink";
123
-
};
124
-
focusedInactive = {
125
-
border = "$mauve";
126
-
background = "$base";
127
-
text = "$text";
128
-
indicator = "$rosewater";
129
-
childBorder = "$mauve";
130
-
};
131
-
unfocused = {
132
-
border = "$mauve";
133
-
background = "$base";
134
-
text = "$text";
135
-
indicator = "$rosewater";
136
-
childBorder = "$mauve";
137
-
};
138
-
urgent = {
139
-
border = "$peach";
140
-
background = "$base";
141
-
text = "$peach";
142
-
indicator = "$overlay0";
143
-
childBorder = "$peach";
144
-
};
145
-
placeholder = {
146
-
border = "$overlay0";
147
-
background = "$base";
148
-
text = "$text";
149
-
indicator = "$overlay0";
150
-
childBorder = "$overlay0";
151
-
};
152
-
};
153
-
};
154
-
};
155
-
};
156
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-67
homeModules/wayland/swaylock.nix
···
1
-
{
2
-
lib,
3
-
config,
4
-
pkgs,
5
-
...
6
-
}:
7
-
let
8
-
cfg = config.py.profiles.gui;
9
-
in
10
-
{
11
-
catppuccin = {
12
-
swaylock.enable = false;
13
-
};
14
-
programs.swaylock = lib.mkIf cfg.enable {
15
-
enable = lib.mkDefault true;
16
-
package = pkgs.swaylock-effects;
17
-
settings = {
18
-
daemonize = true;
19
-
image = "/home/thehedgehog/bgs/ctp-waves.png";
20
-
scaling = "fill";
21
-
line-uses-ring = true;
22
-
ignore-empty-password = true;
23
-
clock = true;
24
-
timestr = "%T";
25
-
effect-blur = "5x5";
26
-
27
-
font = "IBM Plex Sans";
28
-
font-size = 20;
29
-
30
-
indicator = true;
31
-
indicator-idle-visible = true;
32
-
indicator-radius = 100;
33
-
indicator-thickness = 5;
34
-
35
-
# Catppuccin Theme(avoid IFD by vendoring it in here)
36
-
color = "1e1e2e";
37
-
bs-hl-color = "f5e0dc";
38
-
caps-lock-bs-hl-color = "f5e0dc";
39
-
caps-lock-key-hl-color = "a6e3a1";
40
-
inside-color = "00000000";
41
-
inside-clear-color = "00000000";
42
-
inside-caps-lock-color = "00000000";
43
-
inside-ver-color = "00000000";
44
-
inside-wrong-color = "00000000";
45
-
key-hl-color = "a6e3a1";
46
-
layout-bg-color = "00000000";
47
-
layout-border-color = "00000000";
48
-
layout-text-color = "cdd6f4";
49
-
line-color = "00000000";
50
-
line-clear-color = "00000000";
51
-
line-caps-lock-color = "00000000";
52
-
line-ver-color = "00000000";
53
-
line-wrong-color = "00000000";
54
-
ring-color = "b4befe";
55
-
ring-clear-color = "f5e0dc";
56
-
ring-caps-lock-color = "fab387";
57
-
ring-ver-color = "89b4fa";
58
-
ring-wrong-color = "eba0ac";
59
-
separator-color = "00000000";
60
-
text-color = "cdd6f4";
61
-
text-clear-color = "f5e0dc";
62
-
text-caps-lock-color = "fab387";
63
-
text-ver-color = "89b4fa";
64
-
text-wrong-color = "eba0ac";
65
-
};
66
-
};
67
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-37
homeModules/wayland/waybar-mocha.css
···
1
-
/*
2
-
*
3
-
* Catppuccin Mocha palette
4
-
* Maintainer: rubyowo
5
-
*
6
-
*/
7
-
8
-
@define-color base #1e1e2e;
9
-
@define-color mantle #181825;
10
-
@define-color crust #11111b;
11
-
12
-
@define-color text #cdd6f4;
13
-
@define-color subtext0 #a6adc8;
14
-
@define-color subtext1 #bac2de;
15
-
16
-
@define-color surface0 #313244;
17
-
@define-color surface1 #45475a;
18
-
@define-color surface2 #585b70;
19
-
20
-
@define-color overlay0 #6c7086;
21
-
@define-color overlay1 #7f849c;
22
-
@define-color overlay2 #9399b2;
23
-
24
-
@define-color blue #89b4fa;
25
-
@define-color lavender #b4befe;
26
-
@define-color sapphire #74c7ec;
27
-
@define-color sky #89dceb;
28
-
@define-color teal #94e2d5;
29
-
@define-color green #a6e3a1;
30
-
@define-color yellow #f9e2af;
31
-
@define-color peach #fab387;
32
-
@define-color maroon #eba0ac;
33
-
@define-color red #f38ba8;
34
-
@define-color mauve #cba6f7;
35
-
@define-color pink #f5c2e7;
36
-
@define-color flamingo #f2cdcd;
37
-
@define-color rosewater #f5e0dc;
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-128
homeModules/wayland/waybar-style.css
···
1
-
@import "mocha.css";
2
-
#waybar {
3
-
font-family:
4
-
BlexMono Nerd Font,
5
-
sans-serif;
6
-
font-size: 16px;
7
-
}
8
-
9
-
#window {
10
-
padding: 0 4px;
11
-
}
12
-
13
-
.modules-center {
14
-
padding-right: 20px;
15
-
}
16
-
17
-
window#waybar {
18
-
border: none;
19
-
border-radius: 0;
20
-
box-shadow: none;
21
-
text-shadow: none;
22
-
transition-duration: 0s;
23
-
color: @text;
24
-
background: @base;
25
-
}
26
-
27
-
#workspaces {
28
-
margin: 0 5px;
29
-
}
30
-
31
-
#workspaces button {
32
-
padding: 0 8px;
33
-
color: @text;
34
-
border-bottom: 2px solid @subtext0;
35
-
border-radius: 0px;
36
-
min-width: 25px;
37
-
margin-right: 8px;
38
-
}
39
-
40
-
#workspaces button.visible {
41
-
color: @subtext0;
42
-
}
43
-
44
-
#workspaces button.focused {
45
-
border-bottom: 3px solid @mauve;
46
-
font-weight: bold;
47
-
}
48
-
49
-
#workspaces button.urgent {
50
-
border: 2px solid @red;
51
-
}
52
-
53
-
#workspaces button:hover {
54
-
border-color: @blue;
55
-
color: @blue;
56
-
}
57
-
58
-
/* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */
59
-
60
-
#workspaces button.focused {
61
-
color: @subtext0;
62
-
}
63
-
#workspaces button.focused:hover {
64
-
color: @text;
65
-
}
66
-
67
-
#tray,
68
-
#mode,
69
-
#battery,
70
-
#temperature,
71
-
#cpu,
72
-
#memory,
73
-
#network,
74
-
#wireplumber,
75
-
#clock,
76
-
#idle_inhibitor,
77
-
#sway-language,
78
-
#backlight {
79
-
padding: 2px 8px;
80
-
margin: 2px 5px;
81
-
color: @text;
82
-
}
83
-
84
-
#mode:hover,
85
-
#battery:hover,
86
-
#temperature:hover,
87
-
#cpu:hover,
88
-
#memory:hover,
89
-
#network:hover,
90
-
#wireplumber:hover,
91
-
#clock:hover,
92
-
#idle_inhibitor:hover,
93
-
#sway-language:hover,
94
-
#backlight:hover {
95
-
background-color: @subtext1;
96
-
color: @base;
97
-
}
98
-
99
-
#clock {
100
-
font-weight: bold;
101
-
}
102
-
103
-
#battery.warning {
104
-
color: @yellow;
105
-
}
106
-
107
-
#battery.critical {
108
-
color: @red;
109
-
}
110
-
111
-
#battery.charging,
112
-
#battery.full {
113
-
color: @green;
114
-
}
115
-
116
-
#battery.warning:hover,
117
-
#battery.critical:hover,
118
-
#battery.charging:hover,
119
-
#battery.full:hover {
120
-
color: @base;
121
-
}
122
-
123
-
@keyframes blink {
124
-
to {
125
-
background-color: #ffffff;
126
-
color: black;
127
-
}
128
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-172
homeModules/wayland/waybar.nix
···
1
-
{
2
-
pkgs,
3
-
lib,
4
-
config,
5
-
...
6
-
}:
7
-
let
8
-
cfg = config.py.profiles.gui;
9
-
sway = config.wayland.windowManager.sway;
10
-
in
11
-
{
12
-
config = {
13
-
xdg.configFile."waybar/mocha.css" = lib.mkIf (cfg.enable && sway.enable) {
14
-
source = ./waybar-mocha.css;
15
-
recursive = false;
16
-
};
17
-
catppuccin.waybar.enable = false;
18
-
programs.waybar = lib.mkIf (cfg.enable && sway.enable) {
19
-
enable = lib.mkDefault false;
20
-
systemd.enable = true;
21
-
systemd.target = "sway-session.target";
22
-
style = ./waybar-style.css;
23
-
settings = {
24
-
mainBar = {
25
-
layer = "top";
26
-
position = "top";
27
-
height = 32;
28
-
modules-left = [
29
-
"sway/workspaces"
30
-
"sway/mode"
31
-
];
32
-
modules-center = [ "mpris" ];
33
-
modules-right = [
34
-
"idle_inhibitor"
35
-
"wireplumber"
36
-
"network"
37
-
"temperature"
38
-
"backlight"
39
-
"battery"
40
-
"clock"
41
-
"tray"
42
-
];
43
-
"sway/workspaces" = {
44
-
disable-scroll = true;
45
-
enable-bar-scroll = false;
46
-
active-only = false;
47
-
all-outputs = false;
48
-
format = "{icon}";
49
-
};
50
-
"idle_inhibitor" = {
51
-
format = "{icon} ";
52
-
format-icons = {
53
-
"activated" = "";
54
-
"deactivated" = "";
55
-
};
56
-
};
57
-
"tray" = {
58
-
icon-size = 25;
59
-
spacing = 12;
60
-
};
61
-
"clock" = {
62
-
tooltip-format = "<tt><small>{calendar}</small></tt>";
63
-
format = " {:%H:%M:%S}";
64
-
format-alt = "{%d %b %Y}";
65
-
interval = 1;
66
-
calendar = {
67
-
format = {
68
-
today = "<span color='#89b4fa'><b><u>{}</u></b></span>";
69
-
};
70
-
};
71
-
};
72
-
"cpu" = {
73
-
format = " {usage}%";
74
-
interval = 5;
75
-
tooltip = false;
76
-
};
77
-
"memory" = {
78
-
format = " {}%";
79
-
};
80
-
"temperature" = {
81
-
critical-threshold = 80;
82
-
format = "{icon} {temperatureC}°C";
83
-
format-icons = [
84
-
""
85
-
""
86
-
""
87
-
""
88
-
""
89
-
];
90
-
};
91
-
"backlight" = {
92
-
format = "{icon} {percent}%";
93
-
format-icons = [
94
-
""
95
-
""
96
-
""
97
-
""
98
-
""
99
-
""
100
-
""
101
-
];
102
-
};
103
-
"battery" = {
104
-
states = {
105
-
good = 65;
106
-
warning = 30;
107
-
critical = 15;
108
-
};
109
-
full-at = 80;
110
-
format = "{icon} {capacity}%";
111
-
format-charging = " {capacity}%";
112
-
format-plugged = " {capacity}%";
113
-
format-alt = "{icon} {time}";
114
-
format-icons = [
115
-
""
116
-
""
117
-
""
118
-
""
119
-
""
120
-
""
121
-
""
122
-
""
123
-
""
124
-
""
125
-
""
126
-
];
127
-
};
128
-
"network" = {
129
-
format-wifi = "<big></big> {essid}";
130
-
format-ethernet = " {ifname}: {ipaddr}/{cidr}";
131
-
format-linked = " {ifname} (No IP)";
132
-
format-disconnected = "⚠ Disconnected!";
133
-
format-alt = "{ifname}: {ipaddr}/{cidr}";
134
-
on-click = lib.getExe pkgs.networkmanagerapplet;
135
-
};
136
-
"wireplumber" = {
137
-
format = "{icon} {volume}%";
138
-
format-muted = "";
139
-
format-icons = [
140
-
""
141
-
""
142
-
""
143
-
];
144
-
states = {
145
-
low = 15;
146
-
med = 40;
147
-
high = 60;
148
-
};
149
-
scroll-step = 5;
150
-
on-click = lib.getExe pkgs.pwvucontrol;
151
-
};
152
-
mpris = {
153
-
format = "{status_icon} {dynamic}";
154
-
max-length = 100;
155
-
format-paused = "{status_icon} <i>{dynamic}</i>";
156
-
dynamic-order = [
157
-
"artist"
158
-
"title"
159
-
];
160
-
status-icons = {
161
-
playing = "";
162
-
paused = "";
163
-
};
164
-
player-icons = {
165
-
firefox = "";
166
-
};
167
-
};
168
-
};
169
-
};
170
-
};
171
-
};
172
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+5
-4
homeModules/xdg/default.nix
···
19
xdgOpenUsePortal = true;
20
extraPortals = [
21
pkgs.xdg-desktop-portal-gtk
22
-
pkgs.xdg-desktop-portal-wlr
23
];
24
config = {
25
common = {
26
-
default = [ "gtk" ];
27
-
"org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
28
-
"org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
0
0
29
};
30
};
31
};
···
19
xdgOpenUsePortal = true;
20
extraPortals = [
21
pkgs.xdg-desktop-portal-gtk
0
22
];
23
config = {
24
common = {
25
+
default = [
26
+
"hyprland"
27
+
"gtk"
28
+
];
29
+
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
30
};
31
};
32
};
+3
-4
hosts/zaphod/misc.nix
···
39
"pyrox"
40
];
41
# users.extraGroups.libvirtd.members = ["thehedgehog" "pyrox"];
42
-
# xdg.portal.extraPortals = [
43
-
# pkgs.xdg-desktop-portal-gtk
44
-
# ];
45
-
xdg.portal.wlr.enable = true;
46
xdg.portal.xdgOpenUsePortal = true;
47
48
users.users.root.hashedPassword = "$6$6EtuZhVOJdfI9DYP$1Qnd7R8qdN.E5yE2kDQCNg2zgJ5cIjNBKsIW/qJgb8wcKlUpIoVg/fEKvBkAgCiLyojVG2kzfu4J9LR8rA8a2/";
···
59
percentageLow = 30;
60
percentageCritical = 15;
61
};
0
0
0
62
}
···
39
"pyrox"
40
];
41
# users.extraGroups.libvirtd.members = ["thehedgehog" "pyrox"];
0
0
0
0
42
xdg.portal.xdgOpenUsePortal = true;
43
44
users.users.root.hashedPassword = "$6$6EtuZhVOJdfI9DYP$1Qnd7R8qdN.E5yE2kDQCNg2zgJ5cIjNBKsIW/qJgb8wcKlUpIoVg/fEKvBkAgCiLyojVG2kzfu4J9LR8rA8a2/";
···
55
percentageLow = 30;
56
percentageCritical = 15;
57
};
58
+
59
+
# For caelestia screen recording
60
+
programs.gpu-screen-recorder.enable = true;
61
}
+1
nixosModules/default-config/nixpkgsConfig.nix
···
6
nixpkgs = {
7
overlays = [
8
inputs.self.overlays.openssh-fixperms
0
9
inputs.golink.overlays.default
10
];
11
config = {
···
6
nixpkgs = {
7
overlays = [
8
inputs.self.overlays.openssh-fixperms
9
+
inputs.self.overlays.hy3-fixes
10
inputs.golink.overlays.default
11
];
12
config = {
+3
-9
nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json
···
13
"enableQt": false
14
},
15
"toggles": {
16
-
"communication": {
17
"discord": {
18
"enable": true,
19
"match": [
···
21
"class": "equibop"
22
}
23
],
24
-
"command": [
25
-
"equibop"
26
-
],
27
"move": true
28
}
29
},
···
39
}
40
}
41
],
42
-
"command": [
43
-
"ghostty",
44
-
"-e",
45
-
"btop"
46
-
]
47
}
48
}
49
}
···
13
"enableQt": false
14
},
15
"toggles": {
16
+
"discord": {
17
"discord": {
18
"enable": true,
19
"match": [
···
21
"class": "equibop"
22
}
23
],
24
+
"command": ["equibop"],
0
0
25
"move": true
26
}
27
},
···
37
}
38
}
39
],
40
+
"command": ["ghostty", "-e", "btop"]
0
0
0
0
41
}
42
}
43
}
+94
-16
nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json
···
128
},
129
"general": {
130
"apps": {
131
-
"audio": ["pwvucontrol"],
132
-
"explorer": ["thunar"],
133
-
"playback": ["mpv"],
134
-
"terminal": ["ghostty"]
0
0
0
0
0
0
0
0
135
},
136
"battery": {
137
"criticalLevel": 3,
···
171
"timeout": 600
172
},
173
{
174
-
"idleAction": ["systemctl", "suspend"],
0
0
0
175
"timeout": 900
176
}
177
]
···
181
"actionPrefix": ">",
182
"actions": [
183
{
184
-
"command": ["autocomplete", "calc"],
0
0
0
185
"dangerous": false,
186
"description": "Do simple math equations (powered by Qalc)",
187
"enabled": true,
···
189
"name": "Calculator"
190
},
191
{
192
-
"command": ["systemctl", "poweroff"],
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
193
"dangerous": true,
194
"description": "Shutdown the system",
195
"enabled": true,
···
197
"name": "Shutdown"
198
},
199
{
200
-
"command": ["systemctl", "reboot"],
0
0
0
201
"dangerous": true,
202
"description": "Reboot the system",
203
"enabled": true,
···
205
"name": "Reboot"
206
},
207
{
208
-
"command": ["loginctl", "terminate-user", ""],
0
0
0
0
209
"dangerous": true,
210
"description": "Log out of the current session",
211
"enabled": true,
···
213
"name": "Logout"
214
},
215
{
216
-
"command": ["loginctl", "lock-session"],
0
0
0
217
"dangerous": false,
218
"description": "Lock the current session",
219
"enabled": true,
···
221
"name": "Lock"
222
},
223
{
224
-
"command": ["systemctl", "suspend"],
0
0
0
225
"dangerous": false,
226
"description": "Suspend",
227
"enabled": true,
···
264
"paths": {
265
"mediaGif": "",
266
"sessionGif": "",
267
-
"wallpaperDir": "~/bgs/wallpapers/xenia/"
268
},
269
"services": {
270
"audioIncrement": 0.1,
···
284
},
285
"session": {
286
"commands": {
287
-
"hibernate": ["systemctl", "suspend"],
288
-
"logout": ["loginctl", "terminate-user", ""],
289
-
"reboot": ["systemctl", "reboot"],
290
-
"shutdown": ["systemctl", "poweroff"]
0
0
0
0
0
0
0
0
0
0
0
0
0
291
},
292
"dragThreshold": 30,
293
"enabled": true,
···
128
},
129
"general": {
130
"apps": {
131
+
"audio": [
132
+
"pwvucontrol"
133
+
],
134
+
"explorer": [
135
+
"thunar"
136
+
],
137
+
"playback": [
138
+
"mpv"
139
+
],
140
+
"terminal": [
141
+
"ghostty"
142
+
]
143
},
144
"battery": {
145
"criticalLevel": 3,
···
179
"timeout": 600
180
},
181
{
182
+
"idleAction": [
183
+
"systemctl",
184
+
"suspend"
185
+
],
186
"timeout": 900
187
}
188
]
···
192
"actionPrefix": ">",
193
"actions": [
194
{
195
+
"command": [
196
+
"autocomplete",
197
+
"calc"
198
+
],
199
"dangerous": false,
200
"description": "Do simple math equations (powered by Qalc)",
201
"enabled": true,
···
203
"name": "Calculator"
204
},
205
{
206
+
"name": "Wallpaper",
207
+
"icon": "image",
208
+
"description": "Change the current wallpaper",
209
+
"command": [
210
+
"autocomplete",
211
+
"wallpaper"
212
+
],
213
+
"enabled": true,
214
+
"dangerous": false
215
+
},
216
+
{
217
+
"name": "Random",
218
+
"icon": "casino",
219
+
"description": "Switch to a random wallpaper",
220
+
"command": [
221
+
"caelestia",
222
+
"wallpaper",
223
+
"-r"
224
+
],
225
+
"enabled": true,
226
+
"dangerous": false
227
+
},
228
+
{
229
+
"name": "Discord",
230
+
"icon": "d",
231
+
"description": "Open Discord",
232
+
"command": [
233
+
"caelestia",
234
+
"toggle",
235
+
"discord"
236
+
],
237
+
"enabled": true,
238
+
"dangerous": false
239
+
},
240
+
{
241
+
"command": [
242
+
"systemctl",
243
+
"poweroff"
244
+
],
245
"dangerous": true,
246
"description": "Shutdown the system",
247
"enabled": true,
···
249
"name": "Shutdown"
250
},
251
{
252
+
"command": [
253
+
"systemctl",
254
+
"reboot"
255
+
],
256
"dangerous": true,
257
"description": "Reboot the system",
258
"enabled": true,
···
260
"name": "Reboot"
261
},
262
{
263
+
"command": [
264
+
"loginctl",
265
+
"terminate-user",
266
+
""
267
+
],
268
"dangerous": true,
269
"description": "Log out of the current session",
270
"enabled": true,
···
272
"name": "Logout"
273
},
274
{
275
+
"command": [
276
+
"loginctl",
277
+
"lock-session"
278
+
],
279
"dangerous": false,
280
"description": "Lock the current session",
281
"enabled": true,
···
283
"name": "Lock"
284
},
285
{
286
+
"command": [
287
+
"systemctl",
288
+
"suspend"
289
+
],
290
"dangerous": false,
291
"description": "Suspend",
292
"enabled": true,
···
329
"paths": {
330
"mediaGif": "",
331
"sessionGif": "",
332
+
"wallpaperDir": "~/bgs/wallpapers"
333
},
334
"services": {
335
"audioIncrement": 0.1,
···
349
},
350
"session": {
351
"commands": {
352
+
"hibernate": [
353
+
"systemctl",
354
+
"suspend"
355
+
],
356
+
"logout": [
357
+
"loginctl",
358
+
"terminate-user",
359
+
""
360
+
],
361
+
"reboot": [
362
+
"systemctl",
363
+
"reboot"
364
+
],
365
+
"shutdown": [
366
+
"systemctl",
367
+
"poweroff"
368
+
]
369
},
370
"dragThreshold": 30,
371
"enabled": true,
+5
nixosModules/homes/thehedgehog-zaphod/default.nix
···
12
pkgs.mindustry
13
pkgs.signal-desktop
14
];
0
0
0
0
0
15
py.profiles.desktop.enable = true;
16
programs.caelestia = {
17
enable = true;
···
12
pkgs.mindustry
13
pkgs.signal-desktop
14
];
15
+
home.sessionVariables = {
16
+
QT_QPA_PLATFORM = "wayland;xcb";
17
+
GDK_BACKEND = "wayland,x11,*";
18
+
NIXOS_OZONE_WL = "1";
19
+
};
20
py.profiles.desktop.enable = true;
21
programs.caelestia = {
22
enable = true;
+1
overlays/default.nix
···
2
flake.overlays = {
3
cinny = import ./cinny;
4
openssh-fixperms = import ./openssh-fixperms;
0
5
};
6
}
···
2
flake.overlays = {
3
cinny = import ./cinny;
4
openssh-fixperms = import ./openssh-fixperms;
5
+
hy3-fixes = import ./hy3-fixes;
6
};
7
}
+12
overlays/hy3-fixes/default.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
final: prev: {
2
+
hyprlandPlugins = prev.hyprlandPlugins // {
3
+
hy3 = prev.hyprlandPlugins.hy3.overrideAttrs (old: {
4
+
patches = (old.patches or [ ]) ++ [
5
+
(prev.fetchpatch {
6
+
url = "https://github.com/outfoxxed/hy3/commit/8a3f46a40984e74094f71b5bd38df3dbe5daa97f.patch?full_index=1";
7
+
hash = "sha256-zNGCMcidRx7zV3mnlQT4EjA36g7MeBf6A9gyvITeZ4c=";
8
+
})
9
+
];
10
+
});
11
+
};
12
+
}