Auto-commit: 2026-01-05 19:52:54
This commit is contained in:
45
home/desktop/hyprland/animations.nix
Normal file
45
home/desktop/hyprland/animations.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
# Curves
|
||||
"expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90"
|
||||
"expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98"
|
||||
"expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00"
|
||||
"emphasizedDecel, 0.05, 0.7, 0.1, 1"
|
||||
"emphasizedAccel, 0.3, 0, 0.8, 0.15"
|
||||
"standardDecel, 0, 0, 0, 1"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.52, 0.03, 0.72, 0.08"
|
||||
];
|
||||
animation = [
|
||||
# Configs
|
||||
# windows
|
||||
"windowsIn, 1, 2, emphasizedDecel, popin 80%"
|
||||
"windowsOut, 1, 3, emphasizedDecel, popin 90%"
|
||||
"windowsMove, 1, 3, emphasizedDecel, slide"
|
||||
"border, 1, 10, emphasizedDecel"
|
||||
# layers
|
||||
"layersIn, 1, 2.7, emphasizedDecel, popin 93%"
|
||||
"layersOut, 1, 2.4, menu_accel, popin 94%"
|
||||
# fade
|
||||
"fadeLayersIn, 1, 0.5, menu_decel"
|
||||
"fadeLayersOut, 1, 2.7, menu_accel"
|
||||
"fade, 1, 2, emphasizedDecel"
|
||||
# workspaces
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
## specialWorkspace
|
||||
"specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert"
|
||||
"specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
19
home/desktop/hyprland/default.nix
Normal file
19
home/desktop/hyprland/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
21
home/desktop/hyprland/execs.nix
Normal file
21
home/desktop/hyprland/execs.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
exec-once = [
|
||||
"sleep 2; uwsm-app -- vesktop-portable"
|
||||
# todo openrgb
|
||||
"sleep 5; uwsm-app -- spotify"
|
||||
# "uwsm-app -- dms run"
|
||||
"sleep 5; uwsm-app -- Artemis.UI.Linux --minimized"
|
||||
"sleep 10; bash /home/lilly/Scripts/rgb-on.sh"
|
||||
# todo sunshine
|
||||
# todo arrpc
|
||||
#todo hyprpolkit
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
46
home/desktop/hyprland/general.nix
Normal file
46
home/desktop/hyprland/general.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
general = {
|
||||
no_focus_fallback = true;
|
||||
allow_tearing = true;
|
||||
snap = {
|
||||
enabled = true;
|
||||
window_gap = 4;
|
||||
monitor_gap = 5;
|
||||
respect_gaps = true;
|
||||
};
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
smart_split = false;
|
||||
smart_resizing = true;
|
||||
# precise_mouse_move = true;
|
||||
};
|
||||
|
||||
render = {
|
||||
cm_enabled = true;
|
||||
cm_fs_passthrough = 2;
|
||||
direct_scanout = 2;
|
||||
cm_auto_hdr = 1;
|
||||
};
|
||||
|
||||
quirks = {
|
||||
prefer_hdr = 2;
|
||||
};
|
||||
|
||||
debug = {
|
||||
disable_logs = false;
|
||||
};
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true; # Unscale XWayland
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
24
home/desktop/hyprland/hypridle.nix
Normal file
24
home/desktop/hyprland/hypridle.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
services.hypridle = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
enable = true;
|
||||
systemdTarget = "hyprland-session.target";
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "hyprlock";
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 300; # 2mins
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
22
home/desktop/hyprland/input.nix
Normal file
22
home/desktop/hyprland/input.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
kb_variant = "altgr-intl";
|
||||
sensitivity = 0.3;
|
||||
follow_mouse = 1;
|
||||
accel_profile = "flat";
|
||||
|
||||
repeat_delay = 250;
|
||||
repeat_rate = 35;
|
||||
|
||||
off_window_axis_events = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
162
home/desktop/hyprland/keybinds.nix
Normal file
162
home/desktop/hyprland/keybinds.nix
Normal file
@@ -0,0 +1,162 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mod, space, exec, dms ipc call spotlight toggle"
|
||||
"alt, space, exec, dms ipc call spotlight toggle"
|
||||
"$mod, Super_L, exec, dms ipc call spotlight toggle"
|
||||
# Color Picker
|
||||
"$mod+Shift, C, exec, hyprpicker -a" # Pick color (Hex) >> clipboard
|
||||
|
||||
# Screenshots
|
||||
"Super+Shift, S, exec, hyprshot --freeze --mode region --silent --clipboard-only"
|
||||
"CTRL+Shift, 4, exec, bash /home/lilly/Scripts/zipline-region.sh"
|
||||
"CTRL+Shift, 3, exec, /home/lilly/Scripts/zipline-monitor.sh"
|
||||
"CTRL+Shift, 2, exec, /home/lilly/Scripts/zipline-window.sh"
|
||||
#bindln = Ctrl,Print,exec,grim - | wl-copy Screenshot >> clipboard & file (clipboard)
|
||||
|
||||
#!
|
||||
##! Window
|
||||
#/# bind = $mod, ←/↑/→/↓,, # Focus in direction
|
||||
"$mod, Left, movefocus, l"
|
||||
"$mod, Right, movefocus, r"
|
||||
"$mod, Up, movefocus, u"
|
||||
"$mod, Down, movefocus, d"
|
||||
"$mod, BracketLeft, movefocus, l"
|
||||
"$mod, BracketRight, movefocus, r"
|
||||
#/# bind = $mod+Shift, ←/↑/→/↓,, # Move in direction
|
||||
"$mod+Shift, Left, movewindow, l"
|
||||
"$mod+Shift, Right, movewindow, r"
|
||||
"$mod+Shift, Up, movewindow, u"
|
||||
"$mod+Shift, Down, movewindow, d"
|
||||
"Alt, F4, killactive, Close (Windows)"
|
||||
"$mod, Q, killactive," # Close
|
||||
"$mod+Shift+Alt, Q, exec, hyprctl kill" # Forcefully zap a window
|
||||
|
||||
# Window split ratio
|
||||
#/# binde = Super, ;/',, # Adjust split ratio
|
||||
# Positioning mode
|
||||
"Super+Alt, Space, togglefloating," # Float/Tile
|
||||
"Super, D, fullscreen, 1" # Maximize
|
||||
"Super, F, fullscreen, 0" # Fullscreen
|
||||
"Super+Alt, F, fullscreenstate, 0 3" # Fullscreen spoof
|
||||
"Super, P, pin" # Pin
|
||||
|
||||
#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...)
|
||||
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
|
||||
"Super+Alt, code:10, movetoworkspacesilent, 1"
|
||||
"Super+Alt, code:11, movetoworkspacesilent, 2"
|
||||
"Super+Alt, code:12, movetoworkspacesilent, 3"
|
||||
"Super+Alt, code:13, movetoworkspacesilent, 4"
|
||||
"Super+Alt, code:14, movetoworkspacesilent, 5"
|
||||
"Super+Alt, code:15, movetoworkspacesilent, 6"
|
||||
"Super+Alt, code:16, movetoworkspacesilent, 7"
|
||||
"Super+Alt, code:17, movetoworkspacesilent, 8"
|
||||
"Super+Alt, code:18, movetoworkspacesilent, 9"
|
||||
"Super+Alt, code:19, movetoworkspacesilent, 10"
|
||||
|
||||
# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right
|
||||
"Super+Shift, mouse_down, movetoworkspace, r-1"
|
||||
"Super+Shift, mouse_up, movetoworkspace, r+1"
|
||||
"Super+Alt, mouse_down, movetoworkspace, -1"
|
||||
"Super+Alt, mouse_up, movetoworkspace, +1"
|
||||
|
||||
#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right
|
||||
"Super+Alt, Page_Down, movetoworkspace, +1"
|
||||
"Super+Alt, Page_Up, movetoworkspace, -1"
|
||||
"Super+Shift, Page_Down, movetoworkspace, r+1 "
|
||||
"Super+Shift, Page_Up, movetoworkspace, r-1"
|
||||
"Ctrl+Super+Shift, Right, movetoworkspace, r+1"
|
||||
"Ctrl+Super+Shift, Left, movetoworkspace, r-1"
|
||||
|
||||
"Super+Alt, S, movetoworkspacesilent, special" # Send to scratchpad
|
||||
|
||||
"Ctrl+Super, S, togglespecialworkspace,"
|
||||
|
||||
##! Workspace
|
||||
# Switching
|
||||
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...)
|
||||
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
|
||||
"Super, code:10, workspace, 1"
|
||||
"Super, code:11, workspace, 2"
|
||||
"Super, code:12, workspace, 3"
|
||||
"Super, code:13, workspace, 4"
|
||||
"Super, code:14, workspace, 5"
|
||||
"Super, code:15, workspace, 6"
|
||||
"Super, code:16, workspace, 7"
|
||||
"Super, code:17, workspace, 8"
|
||||
"Super, code:18, workspace, 9"
|
||||
"Super, code:19, workspace, 10"
|
||||
|
||||
#/# bind = Ctrl+Super, ←/→,, # Focus left/right
|
||||
"Ctrl+Super, Right, workspace, r+1"
|
||||
"Ctrl+Super, Left, workspace, r-1"
|
||||
#/# bind = Ctrl+Super+Alt, ←/→,, Focus busy left/right
|
||||
"Ctrl+Super+Alt, Right, workspace, m+1"
|
||||
"Ctrl+Super+Alt, Left, workspace, m-1"
|
||||
#/# bind = Super, Page_↑/↓,, # Focus left/right
|
||||
"Super, Page_Down, workspace, +1"
|
||||
"Super, Page_Up, workspace, -1"
|
||||
"Ctrl+Super, Page_Down, workspace, r+1"
|
||||
"Ctrl+Super, Page_Up, workspace, r-1"
|
||||
#/# bind = Super, Scroll ↑/↓,, # Focus left/right
|
||||
"Super, mouse_up, workspace, +1"
|
||||
"Super, mouse_down, workspace, -1"
|
||||
"Ctrl+Super, mouse_up, workspace, r+1"
|
||||
"Ctrl+Super, mouse_down, workspace, r-1"
|
||||
## Special
|
||||
"Ctrl+Super, BracketLeft, workspace, -1"
|
||||
"Ctrl+Super, BracketRight, workspace, +1"
|
||||
"Ctrl+Super, Up, workspace, r-5"
|
||||
"Ctrl+Super, Down, workspace, r+5"
|
||||
|
||||
##! Apps
|
||||
"Super, Return, exec, kitty"
|
||||
"Ctrl+Alt, T, exec, kitty"
|
||||
"Ctrl+Super, V, exec, pwvucontrol"
|
||||
"Ctrl+Shift, Escape, exec, \"command -v btop && kitty fish -c btop\"" # Task manager"
|
||||
|
||||
# Cursed stuff
|
||||
## Make window not amogus large
|
||||
"Ctrl+Super, Backslash, resizeactive, exact 640 480"
|
||||
];
|
||||
|
||||
bindle = [
|
||||
# Volume / Brightness control
|
||||
",XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+"
|
||||
",XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-"
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- -l 1.5"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:274, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
binde = [
|
||||
"Super, Semicolon, splitratio, -0.1"
|
||||
"Super, Apostrophe, splitratio, +0.1"
|
||||
];
|
||||
|
||||
binds = {
|
||||
scroll_event_delay = 0;
|
||||
hide_special_on_workspace_change = true;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
zoom_factor = 1;
|
||||
zoom_rigid = false;
|
||||
hotspot_padding = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
29
home/desktop/hyprland/misc.nix
Normal file
29
home/desktop/hyprland/misc.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
vrr = 3;
|
||||
vfr = true;
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = true;
|
||||
animate_manual_resizes = false;
|
||||
animate_mouse_windowdragging = false;
|
||||
enable_swallow = false;
|
||||
swallow_regex = "(foot|kitty|allacritty|Alacritty)";
|
||||
# new_window_takes_over_fs = 2;
|
||||
allow_session_lock_restore = true;
|
||||
session_lock_xray = true;
|
||||
initial_workspace_tracking = false;
|
||||
middle_click_paste = false;
|
||||
focus_on_activate = true;
|
||||
size_limits_tiled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
66
home/desktop/hyprland/monitors.nix
Normal file
66
home/desktop/hyprland/monitors.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
monitor = [
|
||||
",preferred,auto,1"
|
||||
];
|
||||
source = [ "monitors.conf" ];
|
||||
# monitorv2 = [
|
||||
# {
|
||||
# output = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 0x01010101";
|
||||
# mode = "3840x2160@240.0";
|
||||
# position = "0x0";
|
||||
# scale = 1.5;
|
||||
# bitdepth = 10;
|
||||
# vrr = 3;
|
||||
# supports_wide_color = 1;
|
||||
# supports_hdr = 1;
|
||||
# sdr_min_luminance = 0.000;
|
||||
# sdr_max_luminance = 1000;
|
||||
# min_luminance = 0.000;
|
||||
# max_luminance = 1000;
|
||||
# max_avg_luminance = 400;
|
||||
# cm = "hdr";
|
||||
# }
|
||||
# {
|
||||
# output = "desc:Samsung Electric Company LF32TU87 HNTT700129";
|
||||
# mode = "3840x2160@60.0";
|
||||
# position = "-2560x0";
|
||||
# scale = 1.5;
|
||||
# bitdepth = 10;
|
||||
# }
|
||||
# {
|
||||
# output = "desc:Technical Concepts Ltd Beyond TV 0x00010000";
|
||||
# disabled = true;
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
# monitorv2 {
|
||||
# output = desc:Technical Concepts Ltd Beyond TV 0x00010000
|
||||
# mode = 3840x2160@120.00
|
||||
# position = 2560x270
|
||||
# scale = 1.5
|
||||
# bitdepth = 10
|
||||
# vrr = 1
|
||||
# supports_wide_color = 1
|
||||
# supports_hdr = 1
|
||||
# sdr_min_luminance = 0.0005
|
||||
# sdr_max_luminance = 2000
|
||||
# min_luminance = 0.0005
|
||||
# max_luminance = 2000
|
||||
# max_avg_luminance = 400
|
||||
# cm = hdr
|
||||
# }
|
||||
|
||||
# workspace = 21, monitor:desc:Technical Concepts Ltd Beyond TV 0x00010000, default:true
|
||||
|
||||
# windowrule = match:class $games, workspace 21, fullscreen on
|
||||
# # windowrule = fullscreen, class:$games
|
||||
# windowrule = match:class steam, match:title (Steam Big Picture Mode), workspace 21
|
||||
20
home/desktop/hyprland/rules/default.nix
Normal file
20
home/desktop/hyprland/rules/default.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
105
home/desktop/hyprland/rules/windows.nix
Normal file
105
home/desktop/hyprland/rules/windows.nix
Normal file
@@ -0,0 +1,105 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$games" = "^(steam_app_.*|gamescope|starrail.exe|.*\.exe)$";
|
||||
"$launch_on_second_monitor" = "^(vesktop|spotify)$";
|
||||
"$utility_workspace" = 10;
|
||||
|
||||
windowrule = [
|
||||
|
||||
# Windows to launch silently on secondary monitor
|
||||
|
||||
"match:class $launch_on_second_monitor, workspace $altscreenworkspace silent"
|
||||
"match:class steam, match:title Steam, workspace 4 silent, tile on"
|
||||
|
||||
# Launch Steam Friends List as floating window on workspace 4
|
||||
|
||||
"match:class steam, match:title (Friends List), workspace 4 silent, tile on"
|
||||
|
||||
"match:class $games, content game"
|
||||
"match:class $games, tag +game"
|
||||
"match:class $games, workspace 3"
|
||||
|
||||
# Disable VRR for Where Winds meet
|
||||
"match:class (steam_app_3564740), no_vrr on"
|
||||
|
||||
# Game Stuff
|
||||
"match:class (starrail\.exe), render_unfocused on"
|
||||
|
||||
# Utilities to silently launch on the last workspace
|
||||
"match:class (com.github.wwmm.easyeffects), workspace $utility_workspace silent"
|
||||
"match:class (org.openrgb.OpenRGB), workspace $utility_workspace silent"
|
||||
"match:class (com.core447.StreamController), match:title StreamController, workspace $utility_workspace silent"
|
||||
"match:class (opendeck), workspace $utility_workspace silent"
|
||||
"match:class (Artemis.UI.Linux), match:title (Artemis 2.0), workspace $utility_workspace silent"
|
||||
|
||||
# Focus popups in the center
|
||||
# Floating
|
||||
"match:title ^(Open File)(.*)$, center on"
|
||||
"match:title ^(Open File)(.*)$, float on"
|
||||
"match:title ^(Select a File)(.*)$, center on"
|
||||
"match:title ^(Select folder)(.*)$, float on"
|
||||
"match:title ^(Select folder)(.*)$, center on"
|
||||
"match:title ^(Select a File)(.*)$, float on"
|
||||
"match:title ^(Choose wallpaper)(.*)$, center on"
|
||||
"match:title ^(Choose wallpaper)(.*)$, float on"
|
||||
"match:title ^(Choose wallpaper)(.*)$, size 60% 65%"
|
||||
"match:title ^(Open Folder)(.*)$, center on"
|
||||
"match:title ^(Open Folder)(.*)$, float on"
|
||||
"match:title ^(Save As)(.*)$, center on"
|
||||
"match:title ^(Save As)(.*)$, float on"
|
||||
"match:title ^(Enter name of file to save to)(.*)$, center on"
|
||||
"match:title ^(Enter name of file to save to)(.*)$, float on"
|
||||
"match:title ^(Library)(.*)$, center on"
|
||||
"match:title ^(Library)(.*)$, float on"
|
||||
"match:title ^(File Upload)(.*)$, center on"
|
||||
"match:title ^(File Upload)(.*)$, float on"
|
||||
"match:title ^(.*)(wants to save)$, center on"
|
||||
"match:title ^(.*)(wants to save)$, float on"
|
||||
"match:title ^(.*)(wants to open)$, center on"
|
||||
"match:title ^(.*)(wants to open)$, float on"
|
||||
"match:class ^(blueberry\.py)$, float on"
|
||||
"match:class ^(guifetch)$, float on"
|
||||
"match:class ^(pwvucontrol)$, float on"
|
||||
"match:class ^(pwvucontrol)$, size 45%"
|
||||
"match:class ^(pwvucontrol)$, center on"
|
||||
"match:class ^(com.saivert.pwvucontrol)$, float on"
|
||||
"match:class ^(com.saivert.pwvucontrol)$, size 45%"
|
||||
"match:class ^(com.saivert.pwvucontrol)$, center on"
|
||||
"match:class .*plasmawindowed.*, float on"
|
||||
"match:class kcm_.*, float on"
|
||||
"match:class .*bluedevilwizard, float on"
|
||||
"match:title .*Welcome, float on"
|
||||
"match:title .*Shell conflicts.*, float on"
|
||||
"match:class org.freedesktop.impl.portal.desktop.kde, float on"
|
||||
"match:class org.freedesktop.impl.portal.desktop.kde, size 60% 65%"
|
||||
"match:class ^(Zotero)$, float on"
|
||||
"match:class ^(Zotero)$, size 45%"
|
||||
|
||||
# stupid dolphin copy
|
||||
"match:title ^(Copying — Dolphin)$, move 40 80"
|
||||
|
||||
# Picture-in-Picture
|
||||
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on"
|
||||
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on"
|
||||
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move 73% 72%"
|
||||
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size 25%"
|
||||
"match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on"
|
||||
|
||||
# --- Tearing ---
|
||||
"match:class $games, immediate on"
|
||||
|
||||
# No shadow for tiled windows (matches windows that are not floating).
|
||||
"match:float 0, no_shadow on"
|
||||
|
||||
# Prevent Idle while fullscreen
|
||||
"match:class (.*), idle_inhibit fullscreen"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
37
home/desktop/hyprland/rules/workspaces.nix
Normal file
37
home/desktop/hyprland/rules/workspaces.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$altscreenworkspace" = "11";
|
||||
"$mainmonitor" = "GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 24210B000546";
|
||||
|
||||
workspace = [
|
||||
"1, monitor:desc:$mainmonitor, default:true"
|
||||
"2, monitor:desc:$mainmonitor"
|
||||
"3, monitor:desc:$mainmonitor"
|
||||
"4, monitor:desc:$mainmonitor"
|
||||
"5, monitor:desc:$mainmonitor"
|
||||
"6, monitor:desc:$mainmonitor"
|
||||
"7, monitor:desc:$mainmonitor"
|
||||
"8, monitor:desc:$mainmonitor"
|
||||
"9, monitor:desc:$mainmonitor"
|
||||
"10, monitor:desc:$mainmonitor"
|
||||
|
||||
"$altscreenworkspace, monitor:desc:Samsung Electric Company LF32TU87 HNTT700129, default:true"
|
||||
"$altscreenworkspace, layoutopt:orientation:bottom"
|
||||
|
||||
"21, monitor:desc:Technical Concepts Ltd Beyond TV 0x00010000, default:true"
|
||||
|
||||
# ######## Workspace rules ########
|
||||
"special:special, gapsout:30"
|
||||
];
|
||||
|
||||
# Launchers need to be FAST
|
||||
layerrule = [ "match:namespace gtk4-layer-shell, no_anim on" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
54
home/desktop/hyprland/theme.nix
Normal file
54
home/desktop/hyprland/theme.nix
Normal file
@@ -0,0 +1,54 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 0;
|
||||
|
||||
#"col.active_border" = "rgba(707070ff)";
|
||||
#"col.inactive_border" = "rgba(d0d0d0ff)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 12;
|
||||
active_opacity = 1.0;
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 30;
|
||||
render_power = 5;
|
||||
offset = "0 5";
|
||||
color = "rgba(00000070)";
|
||||
};
|
||||
};
|
||||
|
||||
# Opacity for inactive windows
|
||||
# windowrulev2 = opacity 0.9 0.9, floating:0, focus:0
|
||||
|
||||
windowrule = [
|
||||
# GNOME apps
|
||||
"match:class ^(org\.gnome\.), rounding 12"
|
||||
"match:class ^(org\.gnome\.), border_size 0"
|
||||
|
||||
# Terminal apps - no borders
|
||||
"match:class ^(org\.wezfurlong\.wezterm)$, border_size 0"
|
||||
"match:class ^(Alacritty)$, border_size 0"
|
||||
"match:class ^(zen)$, border_size 0"
|
||||
"match:class ^(com\.mitchellh\.ghostty)$, border_size 0"
|
||||
"match:class ^(kitty)$, border_size 0"
|
||||
|
||||
# Floating windows
|
||||
"match:class ^(gnome-calculator)$, float true"
|
||||
"match:class ^(blueman-manager)$, float true"
|
||||
"match:class ^(org\.gnome\.Nautilus)$, float true"
|
||||
];
|
||||
# Quickshell animation
|
||||
layerrule = [ "match:namespace ^(quickshell)$, no_anim on" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user