This commit is contained in:
2026-02-23 11:48:11 +01:00
parent f2ef0c0b16
commit ca0a63597c
4 changed files with 265 additions and 196 deletions

View File

@@ -7,3 +7,4 @@ hyprlock
hyprsunset hyprsunset
satty satty
kitty kitty
mangohud

View File

@@ -24,8 +24,10 @@
}; };
imports = [ imports = [
# general packages list # general
./modules/packages.nix ./modules/packages.nix
./modules/xdg.nix
./modules/desktop.nix
# cli tools # cli tools
./modules/cli/fish.nix ./modules/cli/fish.nix
./modules/cli/nixvim.nix ./modules/cli/nixvim.nix
@@ -41,6 +43,7 @@
./modules/gui/kitty.nix ./modules/gui/kitty.nix
./modules/gui/satty.nix ./modules/gui/satty.nix
./modules/gui/mako.nix ./modules/gui/mako.nix
./modules/gui/mangohud.nix
# status bars # status bars
./modules/bars/ashell.nix ./modules/bars/ashell.nix
./modules/bars/waybar.nix ./modules/bars/waybar.nix
@@ -50,36 +53,16 @@
./modules/hypr/hypridle.nix ./modules/hypr/hypridle.nix
./modules/hypr/hyprlock.nix ./modules/hypr/hyprlock.nix
./modules/hypr/hyprsunset.nix ./modules/hypr/hyprsunset.nix
# other stuff
./modules/xdg.nix
./modules/desktop.nix
]; ];
# === DOTFILES IMPORT === # === DOTFILES IMPORT ===
home.file = { home.file = {
".config/MangoHud".source = ./dotfiles/mangohud;
".config/gtk-3.0/settings.ini".source = ./dotfiles/gtk-3.0/settings.ini; ".config/gtk-3.0/settings.ini".source = ./dotfiles/gtk-3.0/settings.ini;
".config/gtk-4.0".source = ./dotfiles/gtk-4.0; ".config/gtk-4.0".source = ./dotfiles/gtk-4.0;
".config/mimeapps.list".source = ./dotfiles/mimeapps.list; ".config/mimeapps.list".source = ./dotfiles/mimeapps.list;
".local/bin".source = ./scripts; ".local/bin".source = ./scripts;
}; };
# XDG
xdg.desktopEntries.x = {
name = "X";
genericName = "Social Media Client";
comment = "Open X (twitter)";
exec = "uwsm app -- chromium --app=https://x.com";
icon = "twitter";
terminal = false;
categories = [
"Network"
"WebBrowser"
"X-Social"
];
};
# === VARS === # === VARS ===
home.sessionVariables = { home.sessionVariables = {

81
modules/gui/mangohud.nix Normal file
View File

@@ -0,0 +1,81 @@
{
config,
pkgs,
isNixOS,
...
}:
{
catppuccin.mangohud.enable = false;
programs.mangohud = {
enable = true;
package = if isNixOS then pkgs.mangohud else (pkgs.runCommand "dummy-mangohud" { } "mkdir $out");
};
xdg.configFile."MangoHud/MangoHud.conf".text = ''
legacy_layout=false
background_alpha=0.6
round_corners=10
background_color=1E1E2E
font_size=24
text_color=CDD6F4
position=top-right
no_display
hud_compact
pci_dev=0:03:00.0
table_columns=2
gpu_text=GPU
gpu_stats
gpu_voltage
gpu_core_clock
gpu_mem_clock
gpu_temp
gpu_mem_temp
gpu_fan
gpu_power
gpu_color=A6E3A1
gpu_name
cpu_text=CPU
cpu_stats
cpu_load_change
cpu_load_value=50,90
cpu_load_color=A6E3A1,FAB387,F38BA8
cpu_mhz
cpu_temp
cpu_power
cpu_color=89B4FA
vram
vram_color=A6E3A1
ram
ram_color=F5C2E7
io_stats
io_read
io_write
io_color=CDD6F4
fps
fps_metrics=avg,0.01
frame_timing
frametime_color=A6E3A1
fps_limit_method=late
toggle_fps_limit=Shift_L+F1
fps_limit=0
resolution
gamemode
fps_color_change
fps_color=F38BA8,F9E2AF,A6E3A1
fps_value=30,60
log_duration=30
autostart_log=0
log_interval=100
toggle_logging=Shift_L+F2
blacklist=pamac-manager,lact,ghb,bitwig-studio,ptyxis,yumex
'';
}

View File

@@ -96,7 +96,7 @@
}; };
permission = [ permission = [
"/usr/bin/grim, screencopy, allow" ".*(grim), screencopy, allow"
"/usr/bin/hyprlock, screencopy, allow" "/usr/bin/hyprlock, screencopy, allow"
"/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow" "/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow"
]; ];
@@ -188,81 +188,83 @@
"match:class ^(com.obsproject.Studio)$, workspace 10" "match:class ^(com.obsproject.Studio)$, workspace 10"
]; ];
bind = [ bind =
# background # hyprlang
"$mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy" [
"$mainMod ALT_L, V, exec, cliphist wipe && notify-send \"Clipboard\" \"Clipboard cleared!\"" # background
# power management "$mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy"
"$mainMod L_SHIFT ctrl, l, exec, hyprlock" "$mainMod ALT_L, V, exec, cliphist wipe && notify-send \"Clipboard\" \"Clipboard cleared!\""
"$mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot" # power management
"$mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff" "$mainMod L_SHIFT ctrl, l, exec, hyprlock"
"$mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep" "$mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot"
"$mainMod L_SHIFT ctrl, m, exec, uwsm stop" "$mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff"
# zoom "$mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep"
"$mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1" "$mainMod L_SHIFT ctrl, m, exec, uwsm stop"
# focus management # zoom
"$mainMod, h, movefocus, l" "$mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod, l, movefocus, r" # focus management
"$mainMod, k, movefocus, u" "$mainMod, h, movefocus, l"
"$mainMod, j, movefocus, d" "$mainMod, l, movefocus, r"
"$mainMod, mouse_down, workspace, e+1" "$mainMod, k, movefocus, u"
"$mainMod, mouse_up, workspace, e-1" "$mainMod, j, movefocus, d"
"$mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1" "$mainMod, mouse_down, workspace, e+1"
"$mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1" "$mainMod, mouse_up, workspace, e-1"
# workspace management "$mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1"
"$mainMod, 1, workspace, 1" "$mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1"
"$mainMod, 2, workspace, 2" # workspace management
"$mainMod, 3, workspace, 3" "$mainMod, 1, workspace, 1"
"$mainMod, 4, workspace, 4" "$mainMod, 2, workspace, 2"
"$mainMod, 5, workspace, 5" "$mainMod, 3, workspace, 3"
"$mainMod, 6, workspace, 6" "$mainMod, 4, workspace, 4"
"$mainMod, 7, workspace, 7" "$mainMod, 5, workspace, 5"
"$mainMod, 8, workspace, 8" "$mainMod, 6, workspace, 6"
"$mainMod, 9, workspace, 9" "$mainMod, 7, workspace, 7"
"$mainMod, 0, workspace, 10" "$mainMod, 8, workspace, 8"
# window management "$mainMod, 9, workspace, 9"
"$mainMod SHIFT, 1, movetoworkspace, 1" "$mainMod, 0, workspace, 10"
"$mainMod SHIFT, 2, movetoworkspace, 2" # window management
"$mainMod SHIFT, 3, movetoworkspace, 3" "$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 4, movetoworkspace, 4" "$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 5, movetoworkspace, 5" "$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 6, movetoworkspace, 6" "$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 7, movetoworkspace, 7" "$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 8, movetoworkspace, 8" "$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 9, movetoworkspace, 9" "$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 0, movetoworkspace, 10" "$mainMod SHIFT, 8, movetoworkspace, 8"
# special workspace "$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod, TAB, togglespecialworkspace, magic" "$mainMod SHIFT, 0, movetoworkspace, 10"
"$mainMod SHIFT, TAB, movetoworkspace, special:magic" # special workspace
# layout "$mainMod, TAB, togglespecialworkspace, magic"
"$mainMod, S, layoutmsg, swapwithmaster" "$mainMod SHIFT, TAB, movetoworkspace, special:magic"
"$mainMod, n, layoutmsg, swapnext" # layout
"$mainMod, p, layoutmsg, swapprev" "$mainMod, S, layoutmsg, swapwithmaster"
# apps "$mainMod, n, layoutmsg, swapnext"
"$mainMod, M, exec, [float] waypaper" "$mainMod, p, layoutmsg, swapprev"
"$mainMod, RETURN, exec, [workspace 4] $terminal" # apps
"$mainMod CONTROL_L, RETURN, exec, $terminal" "$mainMod, M, exec, [float] waypaper"
"$mainMod, space , exec, $menu" "$mainMod, RETURN, exec, [workspace 4] $terminal"
"$mainMod ALT_L, c, exec, openrgb -c $openrgb_color" "$mainMod CONTROL_L, RETURN, exec, $terminal"
"$mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store=\"kwallet6\"" "$mainMod, space , exec, $menu"
"$mainMod Control_L, s, focuswindow, class:^(signal)$" "$mainMod ALT_L, c, exec, openrgb -c $openrgb_color"
"$mainMod Control_L, s, focuswindow, title:^(signal)$" "$mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store=\"kwallet6\""
"$mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$" "$mainMod Control_L, s, focuswindow, class:^(signal)$"
"$mainMod Control_L, v, exec, uwsm app -- vesktop" "$mainMod Control_L, s, focuswindow, title:^(signal)$"
"$mainMod Control_L, v, focuswindow, class:^(vesktop)$" "$mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$"
"$mainMod Control_L, g, exec, uwsm app -- steam" "$mainMod Control_L, v, exec, uwsm app -- vesktop"
"$mainMod Control_L, g, focuswindow, class:^(steam)$" "$mainMod Control_L, v, focuswindow, class:^(vesktop)$"
"$mainMod Control_L, b, exec, uwsm app -- $browser" "$mainMod Control_L, g, exec, uwsm app -- steam"
"$mainMod Control_L, b, focuswindow, class:^(zen)$" "$mainMod Control_L, g, focuswindow, class:^(steam)$"
"$mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes" "$mainMod Control_L, b, exec, uwsm app -- $browser"
"$mainMod Control_L, n, focuswindow, class:^(obsidian)$" "$mainMod Control_L, b, focuswindow, class:^(zen)$"
"$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player" "$mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes"
"$mainMod Control_L, f, exec, uwsm app -- freetube" "$mainMod Control_L, n, focuswindow, class:^(obsidian)$"
"$mainMod Control_L, f, focuswindow, class:^(freetube)$" "$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player"
"$mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop" "$mainMod Control_L, f, exec, uwsm app -- freetube"
"$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$" "$mainMod Control_L, f, focuswindow, class:^(freetube)$"
"$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell" "$mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop"
]; "$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$"
"$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell"
];
binde = [ binde = [
"$mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')" "$mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')"
@@ -310,117 +312,119 @@
]; ];
}; };
extraConfig = '' extraConfig =
windowrule { #hyprlang
name = pavucontrol-float ''
match:class = ^(org.pulseaudio.pavucontrol)$ windowrule {
float = 1 name = pavucontrol-float
size = 80% 60% match:class = ^(org.pulseaudio.pavucontrol)$
stay_focused = 1 float = 1
center = 1 size = 80% 60%
pin = 1 stay_focused = 1
} center = 1
pin = 1
}
windowrule { windowrule {
name = share-picker-float name = share-picker-float
match:class = ^(hyprland-share-picker)$ match:class = ^(hyprland-share-picker)$
float = 1 float = 1
center = 1 center = 1
pin = 1 pin = 1
} }
windowrule { windowrule {
name = steam-friends-list name = steam-friends-list
match:title = ^(Lista znajomych)$ match:title = ^(Lista znajomych)$
float = 1 float = 1
center = 1 center = 1
size = 40% 60% size = 40% 60%
} }
windowrule { windowrule {
name = vesktop-dont-focus-pls name = vesktop-dont-focus-pls
match:class = ^(vesktop)$ match:class = ^(vesktop)$
no_initial_focus = 1 no_initial_focus = 1
focus_on_activate = 0 focus_on_activate = 0
render_unfocused = 1 render_unfocused = 1
} }
windowrule { windowrule {
name = xdg-desktop-portal-gtk name = xdg-desktop-portal-gtk
match:class = ^(xdg-desktop-portal-gtk)$ match:class = ^(xdg-desktop-portal-gtk)$
float = 1 float = 1
center = 1 center = 1
size = 55% 50% size = 55% 50%
} }
windowrule { windowrule {
name = picture-in-picture name = picture-in-picture
match:title = ^(Obraz w obrazie)$ match:title = ^(Obraz w obrazie)$
pseudo = 1 pseudo = 1
no_initial_focus = 1 no_initial_focus = 1
} }
windowrule { windowrule {
name = login-google-zen name = login-google-zen
match:title = ^(Logowanie Konta Google Zen Browser)$ match:title = ^(Logowanie Konta Google Zen Browser)$
float = 1 float = 1
center = 1 center = 1
} }
windowrule { windowrule {
name = prism-launcher name = prism-launcher
match:class = ^(org.prismlauncher.PrismLauncher)$ match:class = ^(org.prismlauncher.PrismLauncher)$
workspace = 3 workspace = 3
} }
windowrule { windowrule {
name = gamescope name = gamescope
match:class = ^(gamescope)$ match:class = ^(gamescope)$
workspace = 3 workspace = 3
} }
monitorv2 { monitorv2 {
output = DP-1 output = DP-1
mode = 2560x1440@180.06 mode = 2560x1440@180.06
position = 0x0 position = 0x0
scale = 1 scale = 1
vrr = 1 vrr = 1
supports_wide_color = 1 supports_wide_color = 1
bitdepth = 10 bitdepth = 10
sdr_min_luminance = 0.005 sdr_min_luminance = 0.005
sdr_max_luminance = 220 sdr_max_luminance = 220
cm = hdr cm = hdr
supports_hdr = 1 supports_hdr = 1
} }
monitorv2 { monitorv2 {
output = DP-2 output = DP-2
mode = 1920x1080@144 mode = 1920x1080@144
position = auto-left position = auto-left
vrr = 1 vrr = 1
scale = 1.0 scale = 1.0
} }
monitorv2 { monitorv2 {
output = HDMI-A-2 output = HDMI-A-2
mode = highres mode = highres
position = auto-up position = auto-up
scale = 1 scale = 1
} }
# for laptop # for laptop
monitorv2 { monitorv2 {
output = eDP-1 output = eDP-1
mode = highres mode = highres
position = 0x0 position = 0x0
scale = 1 scale = 1
} }
monitorv2 { monitorv2 {
output = output =
position = auto-right position = auto-right
scale = 1 scale = 1
} }
''; '';
}; };
} }