My Nix Configuration

[flake] even more misc fixes yolo

pyrox.dev ef0fe98b 8018b6be

verified
-1
homeModules/profiles/gui/default.nix
···
krita
libappindicator
libappindicator-gtk3
-
lutris
prismlauncher
pwvucontrol
hyprshot
+3
homeModules/programs/git/default.nix
···
userEmail = "pyrox@pyrox.dev";
userName = "dish";
};
+
mergiraf = lib.mkIf cfg.enable {
+
enable = true;
+
};
lazygit = lib.mkIf cfg.lazygit.enable {
enable = true;
settings = {
+29 -5
homeModules/wayland/default.nix
···
+
{
+
pkgs,
+
config,
+
osConfig,
+
lib,
+
...
+
}:
+
let
+
c = osConfig.py.programs.hyprland;
+
cfg = config.wayland.windowManager.hyprland;
+
in
{
imports = [
-
./sway.nix
-
./keybindings.nix
-
./waybar.nix
-
./swaylock.nix
-
./hyprland
+
./services.nix
+
./hypridle.nix
];
+
config = {
+
catppuccin.hyprland.enable = c.enable;
+
wayland.windowManager.hyprland = {
+
enable = c.enable;
+
# Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package
+
package = null;
+
systemd = {
+
enable = true;
+
enableXdgAutostart = true;
+
};
+
settings = import ./settings.nix;
+
plugins = [
+
pkgs.hyprlandPlugins.hy3
+
];
+
};
+
};
}
-33
homeModules/wayland/hyprland/default.nix
···
-
{
-
pkgs,
-
config,
-
osConfig,
-
lib,
-
...
-
}:
-
let
-
c = osConfig.py.programs.hyprland;
-
cfg = config.wayland.windowManager.hyprland;
-
in
-
{
-
imports = [
-
./services.nix
-
./hypridle.nix
-
];
-
config = {
-
catppuccin.hyprland.enable = c.enable;
-
wayland.windowManager.hyprland = {
-
enable = c.enable;
-
# Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package
-
package = null;
-
systemd = {
-
enable = true;
-
enableXdgAutostart = true;
-
};
-
settings = import ./settings.nix;
-
plugins = [
-
pkgs.hyprlandPlugins.hy3
-
];
-
};
-
};
-
}
homeModules/wayland/hyprland/env.nix homeModules/wayland/env.nix
+1
homeModules/wayland/hyprland/hypridle.nix homeModules/wayland/hypridle.nix
···
lock_cmd = "loginctl lock-session";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
+
inhibit_sleep = 3;
};
};
};
-98
homeModules/wayland/hyprland/keybindings.nix
···
-
{
-
"$mod" = "SUPER";
-
"$satty" = "satty -f -";
-
-
binde = [
-
# Media binds that can be held and repeated
-
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
-
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
-
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
-
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
-
];
-
-
bind = [
-
"SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox"
-
"$mod, Return, exec, ghostty"
-
"$mod, X, global, caelestia:session"
-
"$mod, D, global, caelestia:launcher"
-
"SUPER_SHIFT, E, exit"
-
-
# Media Binds
-
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
-
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
-
", XF86AudioPlay, exec, playerctl play-pause"
-
", XF86AudioNext, exec, playerctl next"
-
", XF86AudioPrev, exec, playerctl previous"
-
-
# Workspace binds
-
"$mod, 1, workspace, 01"
-
"SUPER_SHIFT, 1, hy3:movetoworkspace, 01, follow, warp"
-
"$mod, 2, workspace, 02"
-
"SUPER_SHIFT, 2, hy3:movetoworkspace, 02, follow, warp"
-
"$mod, 3, workspace, 03"
-
"SUPER_SHIFT, 3, hy3:movetoworkspace, 03, follow, warp"
-
"$mod, 4, workspace, 04"
-
"SUPER_SHIFT, 4, hy3:movetoworkspace, 04, follow, warp"
-
"$mod, 5, workspace, 05"
-
"SUPER_SHIFT, 5, hy3:movetoworkspace, 05, follow, warp"
-
"$mod, 6, workspace, 06"
-
"SUPER_SHIFT, 6, hy3:movetoworkspace, 06, follow, warp"
-
"$mod, 7, workspace, 07"
-
"SUPER_SHIFT, 7, hy3:movetoworkspace, 07, follow, warp"
-
"$mod, 8, workspace, 08"
-
"SUPER_SHIFT, 8, hy3:movetoworkspace, 08, follow, warp"
-
"$mod, 9, workspace, 09"
-
"SUPER_SHIFT, 9, hy3:movetoworkspace, 09, follow, warp"
-
"$mod, 0, workspace, 10"
-
"SUPER_SHIFT, 0, hy3:movetoworkspace, 10, follow, warp"
-
# Scratchpad
-
"SUPER_SHIFT, -, movetoworkspace, special"
-
"$mod, -, togglespecialworkspace"
-
-
# Window Management
-
"SUPER_SHIFT, Up, hy3:movewindow, up, once, visible"
-
"SUPER_SHIFT, K, hy3:movewindow, up, once, visible"
-
"$mod, Up, hy3:movefocus, up, visible, warp"
-
"$mod, K, hy3:movefocus, up, visible, warp"
-
-
"SUPER_SHIFT, Right, hy3:movewindow, right, once, visible"
-
"SUPER_SHIFT, L, hy3:movewindow, right, once, visible"
-
"$mod, Right, hy3:movefocus, right, visible, warp"
-
"$mod, L, hy3:movefocus, right, visible, warp"
-
-
"SUPER_SHIFT, Left, hy3:movewindow, left, once, visible"
-
"SUPER_SHIFT, H, hy3:movewindow, left, once, visible"
-
"$mod, Left, hy3:movefocus, left, visible, warp"
-
"$mod, H, hy3:movefocus, left, visible, warp"
-
-
"SUPER_SHIFT, Down, hy3:movewindow, down, once, visible"
-
"SUPER_SHIFT, J, hy3:movewindow, down, once, visible"
-
"$mod, Down, hy3:movefocus, down, visible, warp"
-
"$mod, J, hy3:movefocus, down, visible, warp"
-
-
"SUPER_SHIFT, Q, killactive"
-
"$mod, F, fullscreen, 0"
-
"$mod, Space, hy3:togglefocuslayer"
-
"SUPER_SHIFT, Space, togglefloating, active"
-
-
# Screenshots
-
"SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty"
-
"SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty"
-
];
-
-
bindm = [
-
"$mod, mouse:272, movewindow"
-
];
-
-
# Unbind a bunch of default keybinds
-
unbind = [
-
"$mod, C"
-
"$mod, E"
-
"$mod, J"
-
"$mod, M"
-
"$mod, P"
-
"$mod, Q"
-
"$mod, R"
-
"$mod, V"
-
];
-
}
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
···
-
{ config, lib, ... }:
-
let
-
inherit (config.wayland.windowManager.sway.config) menu;
-
mod = config.wayland.windowManager.sway.config.modifier;
-
term = config.wayland.windowManager.sway.config.terminal;
-
grim = "grim -g";
-
slurp-screen = "\"$(slurp -c -b '#1e1e2e80' -o -r)\" -";
-
slurp-box = "\"$(slurp -c '#f38ba8ff' -b '#1e1e2e80' -w 1 -d -F 'IBM Plex Mono')\" -";
-
satty = "satty -f -";
-
cfg = config.py.profiles.gui;
-
in
{
-
config.wayland.windowManager.sway.config.keybindings = lib.mkIf cfg.enable (
-
lib.mkOptionDefault {
-
"${mod}+d" = "${menu}";
-
"${mod}+Shift+F" = "exec MOZ_DISABLE_RDD_SANDBOX=1 firefox";
-
"${mod}+Return" = "exec ${term}";
-
"${mod}+x" = "exec wlogout";
-
"${mod}+s" = null;
-
"${mod}+w" = null;
-
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
-
"XF86MonBrightnessUp" = "exec brightnessctl set +5%";
-
"XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
-
"XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
-
"XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
-
"XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
-
"XF86AudioPlay" = "exec playerctl play-pause";
-
"XF86AudioNext" = "exec playerctl next";
-
"XF86AudioPrev" = "exec playerctl previous";
-
"Shift+F3" = "exec ${grim} ${slurp-screen} | ${satty}";
-
"Shift+F4" = "exec ${grim} ${slurp-box} | ${satty}";
-
"${mod}+Shift+1" = "move container to workspace number 1";
-
"${mod}+Shift+2" = "move container to workspace number 2";
-
"${mod}+Shift+3" = "move container to workspace number 3";
-
"${mod}+Shift+4" = "move container to workspace number 4";
-
"${mod}+Shift+5" = "move container to workspace number 5";
-
"${mod}+Shift+6" = "move container to workspace number 6";
-
"${mod}+Shift+7" = "move container to workspace number 7";
-
"${mod}+Shift+8" = "move container to workspace number 8";
-
"${mod}+Shift+9" = "move container to workspace number 9";
-
"${mod}+Shift+0" = "move container to workspace number 10";
-
"${mod}+0" = "workspace number 10";
-
}
-
);
+
"$mod" = "SUPER";
+
"$satty" = "satty -f -";
+
+
binde = [
+
# Media binds that can be held and repeated
+
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
+
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
+
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+
];
+
+
bind = [
+
"SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox"
+
"$mod, Return, exec, ghostty"
+
"$mod, X, global, caelestia:session"
+
"$mod, D, global, caelestia:launcher"
+
"SUPER_SHIFT, E, exit"
+
+
# Media Binds
+
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
+
", XF86AudioPlay, exec, playerctl play-pause"
+
", XF86AudioNext, exec, playerctl next"
+
", XF86AudioPrev, exec, playerctl previous"
+
+
# Workspace binds
+
"$mod, 1, workspace, 01"
+
"SUPER_SHIFT, 1, hy3:movetoworkspace, 01"
+
"$mod, 2, workspace, 02"
+
"SUPER_SHIFT, 2, hy3:movetoworkspace, 02"
+
"$mod, 3, workspace, 03"
+
"SUPER_SHIFT, 3, hy3:movetoworkspace, 03"
+
"$mod, 4, workspace, 04"
+
"SUPER_SHIFT, 4, hy3:movetoworkspace, 04"
+
"$mod, 5, workspace, 05"
+
"SUPER_SHIFT, 5, hy3:movetoworkspace, 05"
+
"$mod, 6, workspace, 06"
+
"SUPER_SHIFT, 6, hy3:movetoworkspace, 06"
+
"$mod, 7, workspace, 07"
+
"SUPER_SHIFT, 7, hy3:movetoworkspace, 07"
+
"$mod, 8, workspace, 08"
+
"SUPER_SHIFT, 8, hy3:movetoworkspace, 08"
+
"$mod, 9, workspace, 09"
+
"SUPER_SHIFT, 9, hy3:movetoworkspace, 09"
+
"$mod, 0, workspace, 10"
+
"SUPER_SHIFT, 0, hy3:movetoworkspace, 10"
+
# Scratchpad
+
"SUPER_SHIFT, -, hy3:movetoworkspace, special:default"
+
"$mod, -, togglespecialworkspace, default"
+
+
# Window Management
+
"SUPER_SHIFT, Up, hy3:movewindow, up, once, visible"
+
"SUPER_SHIFT, K, hy3:movewindow, up, once, visible"
+
"$mod, Up, hy3:movefocus, up, visible, warp"
+
"$mod, K, hy3:movefocus, up, visible, warp"
+
+
"SUPER_SHIFT, Right, hy3:movewindow, right, once, visible"
+
"SUPER_SHIFT, L, hy3:movewindow, right, once, visible"
+
"$mod, Right, hy3:movefocus, right, visible, warp"
+
"$mod, L, hy3:movefocus, right, visible, warp"
+
+
"SUPER_SHIFT, Left, hy3:movewindow, left, once, visible"
+
"SUPER_SHIFT, H, hy3:movewindow, left, once, visible"
+
"$mod, Left, hy3:movefocus, left, visible, warp"
+
"$mod, H, hy3:movefocus, left, visible, warp"
+
+
"SUPER_SHIFT, Down, hy3:movewindow, down, once, visible"
+
"SUPER_SHIFT, J, hy3:movewindow, down, once, visible"
+
"$mod, Down, hy3:movefocus, down, visible, warp"
+
"$mod, J, hy3:movefocus, down, visible, warp"
+
+
"SUPER_SHIFT, Q, killactive"
+
"$mod, F, fullscreen, 0"
+
"$mod, Space, hy3:togglefocuslayer"
+
"SUPER_SHIFT, Space, togglefloating, active"
+
+
# Screenshots
+
"SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty"
+
"SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty"
+
];
+
+
bindm = [
+
"$mod, mouse:272, movewindow"
+
];
+
+
# Unbind a bunch of default keybinds
+
unbind = [
+
"$mod, C"
+
"$mod, E"
+
"$mod, J"
+
"$mod, M"
+
"$mod, P"
+
"$mod, Q"
+
"$mod, R"
+
"$mod, V"
+
];
}
-156
homeModules/wayland/sway.nix
···
-
{
-
pkgs,
-
config,
-
lib,
-
...
-
}:
-
let
-
term = config.wayland.windowManager.sway.config.terminal;
-
homeDir = config.home.homeDirectory;
-
cfg = config.py.profiles.gui;
-
in
-
{
-
config = lib.mkIf cfg.enable {
-
catppuccin = {
-
sway.enable = true;
-
};
-
home.sessionVariables = {
-
XDG_CURRENT_DESKTOP = "sway";
-
};
-
wayland.windowManager.sway = {
-
enable = lib.mkDefault true;
-
package = null;
-
# nix-community/home-manager/issues/5311
-
checkConfig = false;
-
wrapperFeatures.base = true;
-
wrapperFeatures.gtk = true;
-
extraConfig = ''
-
default_border pixel
-
focus_on_window_activation smart
-
'';
-
systemd = {
-
enable = true;
-
xdgAutostart = true;
-
};
-
config = {
-
terminal = lib.getExe pkgs.ghostty;
-
menu = "exec ${lib.getExe pkgs.onagre}";
-
modifier = "Mod4";
-
bars = [ { command = "true"; } ];
-
focus = {
-
followMouse = true;
-
mouseWarping = true;
-
newWindow = "smart";
-
};
-
fonts = {
-
names = [ "Inter" ];
-
style = "Regular";
-
size = 12.0;
-
};
-
gaps = {
-
inner = 1;
-
outer = 1;
-
smartBorders = "on";
-
smartGaps = false;
-
};
-
input = {
-
"type:keyboard" = {
-
xkb_options = "caps:escape";
-
};
-
"type:mouse" = {
-
accel_profile = "flat";
-
};
-
"type:touchpad" = {
-
accel_profile = "adaptive";
-
scroll_factor = "1.5";
-
tap = "enabled";
-
};
-
};
-
modes = {
-
resize = {
-
Escape = "mode default";
-
Return = "mode default";
-
Up = "resize shrink height 10 px";
-
Down = "resize grow height 10 px";
-
Left = "resize shrink width 10 px";
-
Right = "resize grow width 10 px";
-
h = "resize shrink width 10 px";
-
j = "resize grow height 10 px";
-
k = "resize shrink height 10 px";
-
l = "resize grow width 10 px";
-
};
-
};
-
output = {
-
eDP-1 = {
-
scale = "1.2";
-
};
-
};
-
startup = [
-
{ command = "${pkgs.dex}/bin/dex -a"; }
-
{ command = "${homeDir}/scripts/unfuck-xdg-portals.fish"; }
-
{ command = "wl-paste -t text --watch clipman store --no-persist"; }
-
];
-
window = {
-
commands = [
-
{
-
command = "inhibit_idle fullscreen";
-
criteria = {
-
class = "Chromium|zoom|Firefox";
-
};
-
}
-
{
-
command = "floating enable, sticky enable, resize set 20 ppt 40 ppt, border pixel 4";
-
criteria = {
-
app_id = "^py.floating$";
-
};
-
}
-
{
-
command = "resize set 20 ppt";
-
criteria = {
-
title = "Mumble PTT";
-
};
-
}
-
];
-
};
-
colors = {
-
background = "$base";
-
focused = {
-
border = "$pink";
-
background = "$base";
-
text = "$text";
-
indicator = "$rosewater";
-
childBorder = "$pink";
-
};
-
focusedInactive = {
-
border = "$mauve";
-
background = "$base";
-
text = "$text";
-
indicator = "$rosewater";
-
childBorder = "$mauve";
-
};
-
unfocused = {
-
border = "$mauve";
-
background = "$base";
-
text = "$text";
-
indicator = "$rosewater";
-
childBorder = "$mauve";
-
};
-
urgent = {
-
border = "$peach";
-
background = "$base";
-
text = "$peach";
-
indicator = "$overlay0";
-
childBorder = "$peach";
-
};
-
placeholder = {
-
border = "$overlay0";
-
background = "$base";
-
text = "$text";
-
indicator = "$overlay0";
-
childBorder = "$overlay0";
-
};
-
};
-
};
-
};
-
};
-
}
-67
homeModules/wayland/swaylock.nix
···
-
{
-
lib,
-
config,
-
pkgs,
-
...
-
}:
-
let
-
cfg = config.py.profiles.gui;
-
in
-
{
-
catppuccin = {
-
swaylock.enable = false;
-
};
-
programs.swaylock = lib.mkIf cfg.enable {
-
enable = lib.mkDefault true;
-
package = pkgs.swaylock-effects;
-
settings = {
-
daemonize = true;
-
image = "/home/thehedgehog/bgs/ctp-waves.png";
-
scaling = "fill";
-
line-uses-ring = true;
-
ignore-empty-password = true;
-
clock = true;
-
timestr = "%T";
-
effect-blur = "5x5";
-
-
font = "IBM Plex Sans";
-
font-size = 20;
-
-
indicator = true;
-
indicator-idle-visible = true;
-
indicator-radius = 100;
-
indicator-thickness = 5;
-
-
# Catppuccin Theme(avoid IFD by vendoring it in here)
-
color = "1e1e2e";
-
bs-hl-color = "f5e0dc";
-
caps-lock-bs-hl-color = "f5e0dc";
-
caps-lock-key-hl-color = "a6e3a1";
-
inside-color = "00000000";
-
inside-clear-color = "00000000";
-
inside-caps-lock-color = "00000000";
-
inside-ver-color = "00000000";
-
inside-wrong-color = "00000000";
-
key-hl-color = "a6e3a1";
-
layout-bg-color = "00000000";
-
layout-border-color = "00000000";
-
layout-text-color = "cdd6f4";
-
line-color = "00000000";
-
line-clear-color = "00000000";
-
line-caps-lock-color = "00000000";
-
line-ver-color = "00000000";
-
line-wrong-color = "00000000";
-
ring-color = "b4befe";
-
ring-clear-color = "f5e0dc";
-
ring-caps-lock-color = "fab387";
-
ring-ver-color = "89b4fa";
-
ring-wrong-color = "eba0ac";
-
separator-color = "00000000";
-
text-color = "cdd6f4";
-
text-clear-color = "f5e0dc";
-
text-caps-lock-color = "fab387";
-
text-ver-color = "89b4fa";
-
text-wrong-color = "eba0ac";
-
};
-
};
-
}
-37
homeModules/wayland/waybar-mocha.css
···
-
/*
-
*
-
* Catppuccin Mocha palette
-
* Maintainer: rubyowo
-
*
-
*/
-
-
@define-color base #1e1e2e;
-
@define-color mantle #181825;
-
@define-color crust #11111b;
-
-
@define-color text #cdd6f4;
-
@define-color subtext0 #a6adc8;
-
@define-color subtext1 #bac2de;
-
-
@define-color surface0 #313244;
-
@define-color surface1 #45475a;
-
@define-color surface2 #585b70;
-
-
@define-color overlay0 #6c7086;
-
@define-color overlay1 #7f849c;
-
@define-color overlay2 #9399b2;
-
-
@define-color blue #89b4fa;
-
@define-color lavender #b4befe;
-
@define-color sapphire #74c7ec;
-
@define-color sky #89dceb;
-
@define-color teal #94e2d5;
-
@define-color green #a6e3a1;
-
@define-color yellow #f9e2af;
-
@define-color peach #fab387;
-
@define-color maroon #eba0ac;
-
@define-color red #f38ba8;
-
@define-color mauve #cba6f7;
-
@define-color pink #f5c2e7;
-
@define-color flamingo #f2cdcd;
-
@define-color rosewater #f5e0dc;
-128
homeModules/wayland/waybar-style.css
···
-
@import "mocha.css";
-
#waybar {
-
font-family:
-
BlexMono Nerd Font,
-
sans-serif;
-
font-size: 16px;
-
}
-
-
#window {
-
padding: 0 4px;
-
}
-
-
.modules-center {
-
padding-right: 20px;
-
}
-
-
window#waybar {
-
border: none;
-
border-radius: 0;
-
box-shadow: none;
-
text-shadow: none;
-
transition-duration: 0s;
-
color: @text;
-
background: @base;
-
}
-
-
#workspaces {
-
margin: 0 5px;
-
}
-
-
#workspaces button {
-
padding: 0 8px;
-
color: @text;
-
border-bottom: 2px solid @subtext0;
-
border-radius: 0px;
-
min-width: 25px;
-
margin-right: 8px;
-
}
-
-
#workspaces button.visible {
-
color: @subtext0;
-
}
-
-
#workspaces button.focused {
-
border-bottom: 3px solid @mauve;
-
font-weight: bold;
-
}
-
-
#workspaces button.urgent {
-
border: 2px solid @red;
-
}
-
-
#workspaces button:hover {
-
border-color: @blue;
-
color: @blue;
-
}
-
-
/* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */
-
-
#workspaces button.focused {
-
color: @subtext0;
-
}
-
#workspaces button.focused:hover {
-
color: @text;
-
}
-
-
#tray,
-
#mode,
-
#battery,
-
#temperature,
-
#cpu,
-
#memory,
-
#network,
-
#wireplumber,
-
#clock,
-
#idle_inhibitor,
-
#sway-language,
-
#backlight {
-
padding: 2px 8px;
-
margin: 2px 5px;
-
color: @text;
-
}
-
-
#mode:hover,
-
#battery:hover,
-
#temperature:hover,
-
#cpu:hover,
-
#memory:hover,
-
#network:hover,
-
#wireplumber:hover,
-
#clock:hover,
-
#idle_inhibitor:hover,
-
#sway-language:hover,
-
#backlight:hover {
-
background-color: @subtext1;
-
color: @base;
-
}
-
-
#clock {
-
font-weight: bold;
-
}
-
-
#battery.warning {
-
color: @yellow;
-
}
-
-
#battery.critical {
-
color: @red;
-
}
-
-
#battery.charging,
-
#battery.full {
-
color: @green;
-
}
-
-
#battery.warning:hover,
-
#battery.critical:hover,
-
#battery.charging:hover,
-
#battery.full:hover {
-
color: @base;
-
}
-
-
@keyframes blink {
-
to {
-
background-color: #ffffff;
-
color: black;
-
}
-
}
-172
homeModules/wayland/waybar.nix
···
-
{
-
pkgs,
-
lib,
-
config,
-
...
-
}:
-
let
-
cfg = config.py.profiles.gui;
-
sway = config.wayland.windowManager.sway;
-
in
-
{
-
config = {
-
xdg.configFile."waybar/mocha.css" = lib.mkIf (cfg.enable && sway.enable) {
-
source = ./waybar-mocha.css;
-
recursive = false;
-
};
-
catppuccin.waybar.enable = false;
-
programs.waybar = lib.mkIf (cfg.enable && sway.enable) {
-
enable = lib.mkDefault false;
-
systemd.enable = true;
-
systemd.target = "sway-session.target";
-
style = ./waybar-style.css;
-
settings = {
-
mainBar = {
-
layer = "top";
-
position = "top";
-
height = 32;
-
modules-left = [
-
"sway/workspaces"
-
"sway/mode"
-
];
-
modules-center = [ "mpris" ];
-
modules-right = [
-
"idle_inhibitor"
-
"wireplumber"
-
"network"
-
"temperature"
-
"backlight"
-
"battery"
-
"clock"
-
"tray"
-
];
-
"sway/workspaces" = {
-
disable-scroll = true;
-
enable-bar-scroll = false;
-
active-only = false;
-
all-outputs = false;
-
format = "{icon}";
-
};
-
"idle_inhibitor" = {
-
format = "{icon} ";
-
format-icons = {
-
"activated" = "";
-
"deactivated" = "";
-
};
-
};
-
"tray" = {
-
icon-size = 25;
-
spacing = 12;
-
};
-
"clock" = {
-
tooltip-format = "<tt><small>{calendar}</small></tt>";
-
format = " {:%H:%M:%S}";
-
format-alt = "{%d %b %Y}";
-
interval = 1;
-
calendar = {
-
format = {
-
today = "<span color='#89b4fa'><b><u>{}</u></b></span>";
-
};
-
};
-
};
-
"cpu" = {
-
format = " {usage}%";
-
interval = 5;
-
tooltip = false;
-
};
-
"memory" = {
-
format = " {}%";
-
};
-
"temperature" = {
-
critical-threshold = 80;
-
format = "{icon} {temperatureC}°C";
-
format-icons = [
-
""
-
""
-
""
-
""
-
""
-
];
-
};
-
"backlight" = {
-
format = "{icon} {percent}%";
-
format-icons = [
-
"󰃚"
-
"󰃛"
-
"󰃜"
-
"󰃝"
-
"󰃞"
-
"󰃟"
-
"󰃠"
-
];
-
};
-
"battery" = {
-
states = {
-
good = 65;
-
warning = 30;
-
critical = 15;
-
};
-
full-at = 80;
-
format = "{icon} {capacity}%";
-
format-charging = "󰂄 {capacity}%";
-
format-plugged = " {capacity}%";
-
format-alt = "{icon} {time}";
-
format-icons = [
-
"󰂎"
-
"󰁺"
-
"󰁻"
-
"󰁼"
-
"󰁽"
-
"󰁾"
-
"󰁿"
-
"󰂀"
-
"󰂁"
-
"󰂂"
-
"󰁹"
-
];
-
};
-
"network" = {
-
format-wifi = "<big></big> {essid}";
-
format-ethernet = "󰈀 {ifname}: {ipaddr}/{cidr}";
-
format-linked = "󰄡 {ifname} (No IP)";
-
format-disconnected = "⚠ Disconnected!";
-
format-alt = "{ifname}: {ipaddr}/{cidr}";
-
on-click = lib.getExe pkgs.networkmanagerapplet;
-
};
-
"wireplumber" = {
-
format = "{icon} {volume}%";
-
format-muted = "󰝟";
-
format-icons = [
-
""
-
""
-
""
-
];
-
states = {
-
low = 15;
-
med = 40;
-
high = 60;
-
};
-
scroll-step = 5;
-
on-click = lib.getExe pkgs.pwvucontrol;
-
};
-
mpris = {
-
format = "{status_icon} {dynamic}";
-
max-length = 100;
-
format-paused = "{status_icon} <i>{dynamic}</i>";
-
dynamic-order = [
-
"artist"
-
"title"
-
];
-
status-icons = {
-
playing = "";
-
paused = "";
-
};
-
player-icons = {
-
firefox = "󰈹";
-
};
-
};
-
};
-
};
-
};
-
};
-
}
+5 -4
homeModules/xdg/default.nix
···
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
-
pkgs.xdg-desktop-portal-wlr
];
config = {
common = {
-
default = [ "gtk" ];
-
"org.freedesktop.impl.portal.Screenshot" = [ "wlr" ];
-
"org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ];
+
default = [
+
"hyprland"
+
"gtk"
+
];
+
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
};
};
};
+3 -4
hosts/zaphod/misc.nix
···
"pyrox"
];
# users.extraGroups.libvirtd.members = ["thehedgehog" "pyrox"];
-
# xdg.portal.extraPortals = [
-
# pkgs.xdg-desktop-portal-gtk
-
# ];
-
xdg.portal.wlr.enable = true;
xdg.portal.xdgOpenUsePortal = true;
users.users.root.hashedPassword = "$6$6EtuZhVOJdfI9DYP$1Qnd7R8qdN.E5yE2kDQCNg2zgJ5cIjNBKsIW/qJgb8wcKlUpIoVg/fEKvBkAgCiLyojVG2kzfu4J9LR8rA8a2/";
···
percentageLow = 30;
percentageCritical = 15;
};
+
+
# For caelestia screen recording
+
programs.gpu-screen-recorder.enable = true;
}
+1
nixosModules/default-config/nixpkgsConfig.nix
···
nixpkgs = {
overlays = [
inputs.self.overlays.openssh-fixperms
+
inputs.self.overlays.hy3-fixes
inputs.golink.overlays.default
];
config = {
+3 -9
nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json
···
"enableQt": false
},
"toggles": {
-
"communication": {
+
"discord": {
"discord": {
"enable": true,
"match": [
···
"class": "equibop"
}
],
-
"command": [
-
"equibop"
-
],
+
"command": ["equibop"],
"move": true
}
},
···
}
}
],
-
"command": [
-
"ghostty",
-
"-e",
-
"btop"
-
]
+
"command": ["ghostty", "-e", "btop"]
}
}
}
+94 -16
nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json
···
},
"general": {
"apps": {
-
"audio": ["pwvucontrol"],
-
"explorer": ["thunar"],
-
"playback": ["mpv"],
-
"terminal": ["ghostty"]
+
"audio": [
+
"pwvucontrol"
+
],
+
"explorer": [
+
"thunar"
+
],
+
"playback": [
+
"mpv"
+
],
+
"terminal": [
+
"ghostty"
+
]
},
"battery": {
"criticalLevel": 3,
···
"timeout": 600
},
{
-
"idleAction": ["systemctl", "suspend"],
+
"idleAction": [
+
"systemctl",
+
"suspend"
+
],
"timeout": 900
}
]
···
"actionPrefix": ">",
"actions": [
{
-
"command": ["autocomplete", "calc"],
+
"command": [
+
"autocomplete",
+
"calc"
+
],
"dangerous": false,
"description": "Do simple math equations (powered by Qalc)",
"enabled": true,
···
"name": "Calculator"
},
{
-
"command": ["systemctl", "poweroff"],
+
"name": "Wallpaper",
+
"icon": "image",
+
"description": "Change the current wallpaper",
+
"command": [
+
"autocomplete",
+
"wallpaper"
+
],
+
"enabled": true,
+
"dangerous": false
+
},
+
{
+
"name": "Random",
+
"icon": "casino",
+
"description": "Switch to a random wallpaper",
+
"command": [
+
"caelestia",
+
"wallpaper",
+
"-r"
+
],
+
"enabled": true,
+
"dangerous": false
+
},
+
{
+
"name": "Discord",
+
"icon": "d",
+
"description": "Open Discord",
+
"command": [
+
"caelestia",
+
"toggle",
+
"discord"
+
],
+
"enabled": true,
+
"dangerous": false
+
},
+
{
+
"command": [
+
"systemctl",
+
"poweroff"
+
],
"dangerous": true,
"description": "Shutdown the system",
"enabled": true,
···
"name": "Shutdown"
},
{
-
"command": ["systemctl", "reboot"],
+
"command": [
+
"systemctl",
+
"reboot"
+
],
"dangerous": true,
"description": "Reboot the system",
"enabled": true,
···
"name": "Reboot"
},
{
-
"command": ["loginctl", "terminate-user", ""],
+
"command": [
+
"loginctl",
+
"terminate-user",
+
""
+
],
"dangerous": true,
"description": "Log out of the current session",
"enabled": true,
···
"name": "Logout"
},
{
-
"command": ["loginctl", "lock-session"],
+
"command": [
+
"loginctl",
+
"lock-session"
+
],
"dangerous": false,
"description": "Lock the current session",
"enabled": true,
···
"name": "Lock"
},
{
-
"command": ["systemctl", "suspend"],
+
"command": [
+
"systemctl",
+
"suspend"
+
],
"dangerous": false,
"description": "Suspend",
"enabled": true,
···
"paths": {
"mediaGif": "",
"sessionGif": "",
-
"wallpaperDir": "~/bgs/wallpapers/xenia/"
+
"wallpaperDir": "~/bgs/wallpapers"
},
"services": {
"audioIncrement": 0.1,
···
},
"session": {
"commands": {
-
"hibernate": ["systemctl", "suspend"],
-
"logout": ["loginctl", "terminate-user", ""],
-
"reboot": ["systemctl", "reboot"],
-
"shutdown": ["systemctl", "poweroff"]
+
"hibernate": [
+
"systemctl",
+
"suspend"
+
],
+
"logout": [
+
"loginctl",
+
"terminate-user",
+
""
+
],
+
"reboot": [
+
"systemctl",
+
"reboot"
+
],
+
"shutdown": [
+
"systemctl",
+
"poweroff"
+
]
},
"dragThreshold": 30,
"enabled": true,
+5
nixosModules/homes/thehedgehog-zaphod/default.nix
···
pkgs.mindustry
pkgs.signal-desktop
];
+
home.sessionVariables = {
+
QT_QPA_PLATFORM = "wayland;xcb";
+
GDK_BACKEND = "wayland,x11,*";
+
NIXOS_OZONE_WL = "1";
+
};
py.profiles.desktop.enable = true;
programs.caelestia = {
enable = true;
+1
overlays/default.nix
···
flake.overlays = {
cinny = import ./cinny;
openssh-fixperms = import ./openssh-fixperms;
+
hy3-fixes = import ./hy3-fixes;
};
}
+12
overlays/hy3-fixes/default.nix
···
+
final: prev: {
+
hyprlandPlugins = prev.hyprlandPlugins // {
+
hy3 = prev.hyprlandPlugins.hy3.overrideAttrs (old: {
+
patches = (old.patches or [ ]) ++ [
+
(prev.fetchpatch {
+
url = "https://github.com/outfoxxed/hy3/commit/8a3f46a40984e74094f71b5bd38df3dbe5daa97f.patch?full_index=1";
+
hash = "sha256-zNGCMcidRx7zV3mnlQT4EjA36g7MeBf6A9gyvITeZ4c=";
+
})
+
];
+
});
+
};
+
}