diff --git a/modules/nixos/services.nix b/modules/nixos/services.nix index ef9feae71a6c4a24e847da17779522d023138b74..20314be33a994a99e64cfe4c4e0f5866b8d576ef 100644 --- a/modules/nixos/services.nix +++ b/modules/nixos/services.nix @@ -22,6 +22,23 @@ }; }; + gvfs.enable = true; + + gnome = { + tinysparql.enable = true; + gnome-keyring.enable = true; + }; + + fstrim.enable = true; + + dbus = { + enable = true; + packages = [ + pkgs.gcr + pkgs.gnome-settings-daemon + ]; + }; + # Auto mount devices udisks2 = { enable = true; diff --git a/users/natalie/desktop/configuration.nix b/users/natalie/desktop/configuration.nix index baeb2a2011ffae05de7c5565794024c184dc0d27..4c02281c5ba27e7b623f71cf2f8f5ab421d20102 100644 --- a/users/natalie/desktop/configuration.nix +++ b/users/natalie/desktop/configuration.nix @@ -35,7 +35,19 @@ steam = { enable = true; - package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; }; + remotePlay.openFirewall = true; + + gamescopeSession.enable = true; + extraCompatPackages = [ pkgs.proton-ge-bin ]; + }; + + gamescope = { + enable = true; + capSysNice = true; + args = [ + "--rt" + "--expose-wayland" + ]; }; git = { @@ -60,6 +72,15 @@ xdg.portal = { enable = true; + xdgOpenUsePortal = true; + config = { + common.default = [ "gtk" ]; + hyprland.default = [ + "gtk" + "hyprland" + ]; + }; + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; }; virtualisation = { @@ -85,6 +106,7 @@ hibernate.enable = false; hybrid-sleep.enable = false; }; + settings.Manager.DefaultTimeoutStopSec = "10s"; services.monitord.wantedBy = [ "multi-user.target" ]; }; diff --git a/users/natalie/home/default.nix b/users/natalie/home/default.nix index e1d7054f5eb20ca2e8541e06050e270dca53c57b..1a3bf2f38624b363453063a9e2681e1e6bbfa469 100644 --- a/users/natalie/home/default.nix +++ b/users/natalie/home/default.nix @@ -2,5 +2,6 @@ { imports = [ ./tmux.nix + ./hyprland ]; } diff --git a/users/natalie/home/hyprland/binds.nix b/users/natalie/home/hyprland/binds.nix new file mode 100644 index 0000000000000000000000000000000000000000..edac51ecfc9fda34b1fa911b91ccc507959080ab --- /dev/null +++ b/users/natalie/home/hyprland/binds.nix @@ -0,0 +1,154 @@ +{ ... }: +{ + wayland.windowManager.hyprland.settings = { + binds = { + movefocus_cycles_fullscreen = true; + }; + + bind = [ + # show keybinds list + "$mainMod, F1, exec, show-keybinds" + + # keybindings + "$mainMod, Return, exec, ghostty --gtk-single-instance=true" + "$mainMod, P, pseudo," + "$mainMod, C, killactive," + "$mainMod, M, exit, " + "$mainMod, E, exec, $fileManager" + "$mainMod, V, togglefloating," + "$mainMod, R, exec, $menu " + "$mainMod, J, togglesplit " + # "ALT, Return, exec, [float; size 1111 700] ghostty" + # "$mainMod SHIFT, Return, exec, [fullscreen] ghostty" + # "$mainMod, B, exec, [workspace 1 silent] zen-beta" + # "$mainMod, Q, killactive," + # "$mainMod, F, fullscreen, 0" + # "$mainMod SHIFT, F, fullscreen, 1" + # "$mainMod, Space, exec, toggle-float" + # "$mainMod, D, exec, vicinae vicinae://toggle" + # "$mainMod SHIFT, D, exec, webcord --enable-features=UseOzonePlatform --ozone-platform=wayland" + # "$mainMod SHIFT, S, exec, hyprctl dispatch exec '[workspace 5 silent] SoundWireServer'" + # "$mainMod, Escape, exec, swaylock" + # "ALT, Escape, exec, hyprlock" + # "$mainMod SHIFT, Escape, exec, power-menu" + # "$mainMod, X, togglesplit," + # "$mainMod, T, exec, toggle-oppacity" + # "$mainMod, E, exec, nemo" + # "ALT, E, exec, hyprctl dispatch exec '[float; size 1111 700] nemo'" + # "$mainMod SHIFT, B, exec, toggle-waybar" + # "$mainMod, C ,exec, hyprpicker -a" + # "$mainMod, W,exec, wallpaper-picker" + # "$mainMod SHIFT, W,exec, hyprctl dispatch exec '[float; size 925 615] waypaper'" + # "$mainMod, N, exec, swaync-client -t -sw" + # "CTRL SHIFT, Escape, exec, hyprctl dispatch exec '[workspace 9] missioncenter'" + # "$mainMod, equal, exec, woomer" + # "$mainMod SHIFT, W, exec, vm-start" + + # screenshot + ",Print, exec, screenshot --copy" + "$mainMod, Print, exec, screenshot --save" + "$mainMod SHIFT, Print, exec, screenshot --swappy" + + # switch focus + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + "$mainMod, h, movefocus, l" + "$mainMod, j, movefocus, d" + "$mainMod, k, movefocus, u" + "$mainMod, l, movefocus, r" + + "$mainMod, left, alterzorder, top" + "$mainMod, right, alterzorder, top" + "$mainMod, up, alterzorder, top" + "$mainMod, down, alterzorder, top" + "$mainMod, h, alterzorder, top" + "$mainMod, j, alterzorder, top" + "$mainMod, k, alterzorder, top" + "$mainMod, l, alterzorder, top" + + "CTRL ALT, up, exec, hyprctl dispatch focuswindow floating" + "CTRL ALT, down, exec, hyprctl dispatch focuswindow tiled" + + # switch workspace + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + + # same as above, but switch to the workspace + "$mainMod SHIFT, 1, movetoworkspacesilent, 1" # movetoworkspacesilent + "$mainMod SHIFT, 2, movetoworkspacesilent, 2" + "$mainMod SHIFT, 3, movetoworkspacesilent, 3" + "$mainMod SHIFT, 4, movetoworkspacesilent, 4" + "$mainMod SHIFT, 5, movetoworkspacesilent, 5" + "$mainMod SHIFT, 6, movetoworkspacesilent, 6" + "$mainMod SHIFT, 7, movetoworkspacesilent, 7" + "$mainMod SHIFT, 8, movetoworkspacesilent, 8" + "$mainMod SHIFT, 9, movetoworkspacesilent, 9" + "$mainMod SHIFT, 0, movetoworkspacesilent, 10" + "$mainMod CTRL, c, movetoworkspace, empty" + + # window control + "$mainMod SHIFT, left, movewindow, l" + "$mainMod SHIFT, right, movewindow, r" + "$mainMod SHIFT, up, movewindow, u" + "$mainMod SHIFT, down, movewindow, d" + "$mainMod SHIFT, h, movewindow, l" + "$mainMod SHIFT, j, movewindow, d" + "$mainMod SHIFT, k, movewindow, u" + "$mainMod SHIFT, l, movewindow, r" + + "$mainMod CTRL, left, resizeactive, -80 0" + "$mainMod CTRL, right, resizeactive, 80 0" + "$mainMod CTRL, up, resizeactive, 0 -80" + "$mainMod CTRL, down, resizeactive, 0 80" + "$mainMod CTRL, h, resizeactive, -80 0" + "$mainMod CTRL, j, resizeactive, 0 80" + "$mainMod CTRL, k, resizeactive, 0 -80" + "$mainMod CTRL, l, resizeactive, 80 0" + + "$mainMod ALT, left, moveactive, -80 0" + "$mainMod ALT, right, moveactive, 80 0" + "$mainMod ALT, up, moveactive, 0 -80" + "$mainMod ALT, down, moveactive, 0 80" + "$mainMod ALT, h, moveactive, -80 0" + "$mainMod ALT, j, moveactive, 0 80" + "$mainMod ALT, k, moveactive, 0 -80" + "$mainMod ALT, l, moveactive, 80 0" + + # media and volume controls + # ",XF86AudioMute,exec, pamixer -t" + ",XF86AudioPlay,exec, playerctl play-pause" + ",XF86AudioNext,exec, playerctl next" + ",XF86AudioPrev,exec, playerctl previous" + ",XF86AudioStop,exec, playerctl stop" + + "$mainMod, mouse_down, workspace, e-1" + "$mainMod, mouse_up, workspace, e+1" + + # clipboard manager + "$mainMod, V, exec, vicinae vicinae://extensions/vicinae/clipboard/history" + ]; + + bindel = [ + ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" + ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ",XF86AudioMute, exec, pctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ]; + + # mouse binding + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + }; +} diff --git a/users/natalie/home/hyprland/default.nix b/users/natalie/home/hyprland/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..dff992714274e09e3de63dff1e1e110e13e95cfb --- /dev/null +++ b/users/natalie/home/hyprland/default.nix @@ -0,0 +1,13 @@ +{ ... }: +{ + imports = [ + ./hyprland.nix + ./exec-once.nix + ./monitors.nix + ./settings.nix + ./binds.nix + # ./windowrules.nix + ./hyprlock.nix + # ./variables.nix + ]; +} diff --git a/users/natalie/home/hyprland/exec-once.nix b/users/natalie/home/hyprland/exec-once.nix new file mode 100644 index 0000000000000000000000000000000000000000..c88d3810e7986256a04dbaff84fc4b2a5a4eb38a --- /dev/null +++ b/users/natalie/home/hyprland/exec-once.nix @@ -0,0 +1,25 @@ +{ ... }: +{ + wayland.windowManager.hyprland.settings.exec-once = [ + # "hash dbus-update-activation-environment 2>/dev/null" + "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" + + "hyprlock" + + # "nm-applet &" + # "poweralertd &" + # "wl-clip-persist --clipboard both &" + # "wl-paste --watch cliphist store &" + # "waybar &" + # "swaync &" + # "vicinae server &" + # "udiskie --automount --notify --smart-tray &" + # "hyprctl setcursor Bibata-Modern-Ice 24 &" + # "init-wallpaper &" + # + # "ghostty --gtk-single-instance=true --quit-after-last-window-closed=false --initial-window=false" + # "[workspace 1 silent] zen-beta" + # "[workspace 2 silent] ghostty" + ]; +} diff --git a/users/natalie/home/hyprland/hyprland.nix b/users/natalie/home/hyprland/hyprland.nix new file mode 100644 index 0000000000000000000000000000000000000000..187b5d529982099ef510ccf8fa614695107a526d --- /dev/null +++ b/users/natalie/home/hyprland/hyprland.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + swww + grimblast + hyprpicker + grim + slurp + wl-clip-persist + cliphist + wf-recorder + glib + wayland + direnv + playerctl + ]; + systemd.user.targets.hyprland-session.Unit.Wants = [ + "xdg-desktop-autostart.target" + ]; + wayland.windowManager.hyprland = { + enable = true; + package = null; + portalPackage = null; + + xwayland = { + enable = true; + }; + systemd.enable = true; + }; +} diff --git a/users/natalie/home/hyprland/hyprlock.nix b/users/natalie/home/hyprland/hyprlock.nix new file mode 100644 index 0000000000000000000000000000000000000000..37cfb0022a8d68a49531555466f6c6cfee2a76e0 --- /dev/null +++ b/users/natalie/home/hyprland/hyprlock.nix @@ -0,0 +1,112 @@ +{ ... }: +{ + programs.hyprlock = { + enable = true; + + settings = { + general = { + hide_cursor = true; + ignore_empty_input = true; + fractional_scaling = 0; + }; + + background = [ + { + color = "rgba(29, 32, 33, 255)"; + blur_passes = 2; + vibrancy_darkness = 0.0; + } + ]; + # + # shape = [ + # # User box + # { + # size = "300, 50"; + # + # rounding = 0; + # border_size = 2; + # color = "rgba(102, 92, 84, 0.33)"; + # border_color = "rgba(168, 153, 132, 0.95)"; + # + # position = "0, ${if host == "laptop" then "120" else "270"}"; + # halign = "center"; + # valign = "bottom"; + # } + # ]; + # + # label = [ + # # Time + # { + # text = ''cmd[update:1000] echo "$(date +'%k:%M')"''; + # + # font_size = 115; + # font_family = "Maple Mono Bold"; + # + # shadow_passes = 3; + # color = "rgba(235, 219, 178, 0.9)"; + # + # position = "0, ${if host == "laptop" then "-25" else "-150"}"; + # halign = "center"; + # valign = "top"; + # } + # # Date + # { + # text = ''cmd[update:1000] echo "- $(date +'%A, %B %d') -" ''; + # + # font_size = 18; + # font_family = "Maple Mono"; + # + # shadow_passes = 3; + # color = "rgba(235, 219, 178, 0.9)"; + # + # position = "0, ${if host == "laptop" then "-225" else "-350"}"; + # halign = "center"; + # valign = "top"; + # } + # # Username + # { + # text = " $USER"; + # + # font_size = 15; + # font_family = "Maple Mono Bold"; + # + # color = "rgba(235, 219, 178, 1)"; + # + # position = "0, ${if host == "laptop" then "134" else "284"}"; + # halign = "center"; + # valign = "bottom"; + # } + # ]; + # + # input-field = [ + # { + # size = "300, 50"; + # rounding = 0; + # outline_thickness = 2; + # + # dots_spacing = 0.4; + # + # font_color = "rgba(235, 219, 178, 0.9)"; + # font_family = "Maple Mono Bold"; + # + # outer_color = "rgba(168, 153, 132, 0.95)"; + # inner_color = "rgba(102, 92, 84, 0.33)"; + # check_color = "rgba(152, 151, 26, 0.95)"; + # fail_color = "rgba(204, 36, 29, 0.95)"; + # capslock_color = "rgba(215, 153, 33, 0.95)"; + # bothlock_color = "rgba(215, 153, 33, 0.95)"; + # + # hide_input = false; + # fade_on_empty = false; + # placeholder_text = ''Enter Password''; + # + # position = "0, ${if host == "laptop" then "50" else "200"}"; + # halign = "center"; + # valign = "bottom"; + # } + # ]; + # + # animation = [ "inputFieldColors, 0" ]; + }; + }; +} diff --git a/users/natalie/home/hyprland/monitors.nix b/users/natalie/home/hyprland/monitors.nix new file mode 100644 index 0000000000000000000000000000000000000000..ae63a8e983bd40164ca183407a4c596d7c8d94cf --- /dev/null +++ b/users/natalie/home/hyprland/monitors.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: +{ + wayland.windowManager.hyprland = { + settings.monitor = [ ",preferred,auto,auto" ]; + + extraConfig = '' + # hyprlang noerror true + source = ~/.config/hypr/monitors.conf + source = ~/.config/hypr/workspaces.conf + # hyprlang noerror false + ''; + }; + + home.packages = with pkgs; [ nwg-displays ]; +} diff --git a/users/natalie/home/hyprland/settings.nix b/users/natalie/home/hyprland/settings.nix new file mode 100644 index 0000000000000000000000000000000000000000..522d975c669889907cc601d3fecabed57cabead6 --- /dev/null +++ b/users/natalie/home/hyprland/settings.nix @@ -0,0 +1,120 @@ +{ ... }: +{ + wayland.windowManager.hyprland.settings = { + # see: https://wiki.hypr.land/Configuring/Variables/#input + input = { + kb_layout = "us"; + repeat_delay = 300; + follow_mouse = 1; + }; + # https://wiki.hypr.land/Configuring/Variables/#general + general = { + "$mainMod" = "SUPER"; + layout = "dwindle"; + no_border_on_floating = false; + + }; + # https://wiki.hypr.land/Configuring/Variables/#misc + misc = { + disable_hyprland_logo = true; + always_follow_on_dnd = true; + layers_hog_keyboard_focus = true; + animate_manual_resizes = false; + enable_swallow = true; + swallow_regex = "^(ghostty)$"; + focus_on_activate = true; + new_window_takes_over_fullscreen = 2; + middle_click_paste = false; + }; + + # https://wiki.hypr.land/Configuring/Dwindle-Layout/ + dwindle = { + psuedotile = false; + force_split = 2; + preserve_split = true; + }; + # https://wiki.hypr.land/Configuring/Variables/#decoration + decoration = { + rounding = 0; + rounding_power = 2.0; + active_opacity = 1.0; + inactive_opacity = 1.0; + fullscreen_opacity = 1.0; + dim_modal = true; + dim_inactive = false; + dim_strength = 0.5; + dim_special = 0.2; + dim_around = 0.4; + screen_shader = ""; + border_part_of_window = true; + blur = { + enabled = true; + size = 8; + passes = 1; + brightness = 0.8172; + contrast = 0.8916; + ignore_opacity = true; + noise = 0.0117; + new_optimizations = true; + xray = true; + vibrancy = 0.1696; + vibrancy_darkness = 0.0; + special = false; + popups = false; + popups_ignorealpha = 0.2; + input_methods = false; + input_methods_ignorealpha = 0.2; + }; + + shadow = { + enabled = true; + range = 4; + render_power = 3; + sharp = false; + ignore_window = true; + color = "0xee1a1a1a"; + offset = "0 2"; + scale = 1.0; + }; + + }; + # https://wiki.hypr.land/Configuring/Animations/ + animations = { + enabled = true; + + bezier = [ + "easeOutQuint, 0.23, 1, 0.32, 1" + "easeInOutCubic, 0.65, 0.05, 0.36, 1" + "linear, 0, 0, 1, 1" + "almostLinear, 0.5, 0.5, 0.75, 1" + "quick, 0.15, 0, 0.1, 1" + ]; + + animation = [ + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 4.79, easeOutQuint" + "windowsIn, 1, 4.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 1, 1.94, almostLinear, fade" + "workspacesIn, 1, 1.21, almostLinear, fade" + "workspacesOut, 1, 1.94, almostLinear, fade" + "zoomFactor, 1, 7, quick" + ]; + + }; + # https://wiki.hypr.land/Configuring/XWayland/ + xwayland = { + force_zero_scaling = true; + }; + }; + +} diff --git a/users/natalie/home/hyprland/variables.nix b/users/natalie/home/hyprland/variables.nix new file mode 100644 index 0000000000000000000000000000000000000000..cbaff3f40e3bdb4e7ee46ccdcaf2eef8ede5962e --- /dev/null +++ b/users/natalie/home/hyprland/variables.nix @@ -0,0 +1,29 @@ +{ ... }: +{ + home.sessionVariables = { + NIXOS_OZONE_WL = 1; + __GL_GSYNC_ALLOWED = 0; + __GL_VRR_ALLOWED = 0; + # SSH_AUTH_SOCK = "/run/user/1000/ssh-agent"; + DISABLE_QT5_COMPAT = 0; + GDK_BACKEND = "wayland"; + # ANKI_WAYLAND = 1; + WLR_DRM_NO_ATOMIC = 1; + # QT_AUTO_SCREEN_SCALE_FACTOR = 1; + # QT_WAYLAND_DISABLE_WINDOWDECORATION = 1; + QT_QPA_PLATFORM = "wayland"; + QT_QPA_PLATFORMTHEME = "qt5ct"; + # QT_STYLE_OVERRIDE = "kvantum"; + MOZ_ENABLE_WAYLAND = 1; + WLR_BACKEND = "vulkan"; + WLR_RENDERER = "vulkan"; + WLR_NO_HARDWARE_CURSORS = 1; + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "Hyprland"; + SDL_VIDEODRIVER = "wayland"; + CLUTTER_BACKEND = "wayland"; + # GTK_THEME = "Colloid-Green-Dark-Gruvbox"; + # GRIMBLAST_HIDE_CURSOR = 0; + }; +} diff --git a/users/natalie/home/hyprland/windowrules.nix b/users/natalie/home/hyprland/windowrules.nix new file mode 100644 index 0000000000000000000000000000000000000000..22328145104b35b901688c0ef7483b3f0324b7c5 --- /dev/null +++ b/users/natalie/home/hyprland/windowrules.nix @@ -0,0 +1,91 @@ +{ ... }: +{ + wayland.windowManager.hyprland.settings = { + # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules + windowrule = [ + "float,class:^(mpv)$" + "pin,class:^(rofi)$" + "pin,class:^(waypaper)$" + "float,title:^(Volume Control)$" + + # "float,title:^(Firefox — Sharing Indicator)$" + # "move 0 0,title:^(Firefox — Sharing Indicator)$" + # "size 700 450,title:^(Volume Control)$" + # "move 40 55%,title:^(Volume Control)$" + #"float, title:^(Picture-in-Picture)$" + # "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" + # "pin, title:^(Picture-in-Picture)$" + # "opacity 1.0 override 1.0 override, title:^(.*imv.*)$" + # "opacity 1.0 override 1.0 override, title:^(.*mpv.*)$" + # "opacity 1.0 override 1.0 override, class:(Aseprite)" + # "opacity 1.0 override 1.0 override, class:(Unity)" + # "opacity 1.0 override 1.0 override, class:(zen)" + # "opacity 1.0 override 1.0 override, class:(evince)" + # "workspace 1, class:^(zen-beta)$" + # "workspace 3, class:^(evince)$" + # "workspace 4, class:^(Gimp-2.10)$" + # "workspace 4, class:^(Aseprite)$" + # "workspace 5, class:^(Audacious)$" + # "workspace 5, class:^(Spotify)$" + # "workspace 8, class:^(com.obsproject.Studio)$" + # "workspace 10, class:^(discord)$" + # "workspace 10, class:^(WebCord)$" + # "idleinhibit focus, class:^(mpv)$" + # "idleinhibit fullscreen, class:^(firefox)$" + # "float,class:^(org.gnome.Calculator)$" + # "float,class:^(waypaper)$" + # "float,class:^(zenity)$" + # "size 850 500,class:^(zenity)$" + # "size 725 330,class:^(SoundWireServer)$" + # "float,class:^(org.gnome.FileRoller)$" + # "float,class:^(org.pulseaudio.pavucontrol)$" + # "float,class:^(SoundWireServer)$" + # "float,class:^(.sameboy-wrapped)$" + # "float,class:^(file_progress)$" + # "float,class:^(confirm)$" + # "float,class:^(dialog)$" + # "float,class:^(download)$" + # "float,class:^(notification)$" + # "float,class:^(error)$" + # "float,class:^(confirmreset)$" + # "float,title:^(Open File)$" + # "float,title:^(File Upload)$" + # "float,title:^(branchdialog)$" + # "float,title:^(Confirm to replace files)$" + # "float,title:^(File Operation Progress)$" + # + # "opacity 0.0 override,class:^(xwaylandvideobridge)$" + # "noanim,class:^(xwaylandvideobridge)$" + # "noinitialfocus,class:^(xwaylandvideobridge)$" + # "maxsize 1 1,class:^(xwaylandvideobridge)$" + # "noblur,class:^(xwaylandvideobridge)$" + # + # # No gaps when only + # "bordersize 0, floating:0, onworkspace:w[t1]" + # "rounding 0, floating:0, onworkspace:w[t1]" + # "bordersize 0, floating:0, onworkspace:w[tg1]" + # "rounding 0, floating:0, onworkspace:w[tg1]" + # "bordersize 0, floating:0, onworkspace:f[1]" + # "rounding 0, floating:0, onworkspace:f[1]" + # Remove context menu transparency in chromium based apps + # "opaque,class:^()$,title:^()$" + # "noshadow,class:^()$,title:^()$" + # "noblur,class:^()$,title:^()$" + ]; + + # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules + layerrule = [ + "dimaround, vicinae" + "dimaround, rofi" + "dimaround, swaync-control-center" + ]; + + # https://wiki.hypr.land/Configuring/Workspace-Rules/ + # No gaps when only + workspace = [ + "w[t1], gapsout:0, gapsin:0" + "w[tg1], gapsout:0, gapsin:0" + "f[1], gapsout:0, gapsin:0" + ]; + }; +}