{ pkgs, hostname, ... }: let nix_background = "rgb(16, 15, 15)"; nix_text = "rgb(206, 205, 195)"; nix_accent = "rgb(32, 94, 166)"; # blue nix_inactive = "rgb(64, 62, 60)"; nix_alert = "rgb(175, 48, 41)"; # red nix_recording = "rgb(188, 82, 21)"; # orange nix_font = "JetBrainsMono Nerd Font"; nix_border_size = 3; nix_corner = 10; nix_bar_height = 30; in { home.pointerCursor = { gtk.enable = true; # x11.enable = true; package = pkgs.apple-cursor; name = "macOS"; size = 20; }; # gtk = { # enable = true; # }; services.udiskie.enable = true; # automount USB services.playerctld.enable = true; # media control for browser, etc services.mpd = { enable = true; musicDirectory = "/mnt/media/audio/music/flac"; extraConfig = '' audio_output { type "pipewire" name "PipeWire Sound Server" } auto_update "yes" ''; }; programs.rmpc = { enable = true; config = '' ( address: "127.0.0.1:6600", password: None, theme: None, cache_dir: None, on_song_change: None, volume_step: 5, max_fps: 30, scrolloff: 0, wrap_navigation: false, enable_mouse: true, enable_config_hot_reload: true, select_current_song_on_change: false, browser_song_sort: [Disc, Track, Artist, Title], ) ''; }; programs.alacritty = { enable = true; theme = "flexoki"; settings = { font = { normal = { family = nix_font; style = "Regular"; }; bold = { family = nix_font; style = "Bold"; }; italic = { family = nix_font; style = "Italic"; }; size = 9; }; window = { padding.x = 14; padding.y = 14; decorations = "None"; }; }; }; services.hyprpaper = { enable = true; settings = { preload = [ "~/Downloads/wall.jpg" ]; wallpaper = [ "DP-2,~/Downloads/wall.jpg" "HDMI-A-1,~/Downloads/wall.jpg" ]; }; }; services.dunst = { enable = true; settings = { global = { width = "(300, 300)"; height = "(75, 75)"; font = "${nix_font} 10"; offset = "(40, 40)"; frame_color = "#205ea6"; background = "#100f0f1A"; foreground = "#cecdc3"; timeout = 5; gaps = true; gap_size = 15; corner_radius = nix_corner; }; urgency_critical = { frame_color = nix_alert; timeout = 0; }; }; }; # services.mako = { # enable = true; # settings = { # default-timeout = 5; # ignore-timeout = 1; # width = "300"; # height = "300"; # border-color = "#89b4fa"; # background-color = "#1e1e2e"; # font = "JetBrains Mono Nerd Font 14"; # border-size = 3; # # "mode=do-not-disturb" = { # invisible = 1; # }; # # "urgency=low" = { # default-timeout = 5; # }; # # "urgency=normal" = { # default-timeout = 10; # }; # # "urgency=high" = { # border-color = "#f38ba8"; # }; # }; # }; dconf = { enable = true; settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; }; programs.waybar = { #systemd.enable = true; #systemd.target = "hyprland-session.target"; enable = true; style = '' * { background-color: ${nix_background}; color: ${nix_text}; border: none; border-radius: 0; min-height: 0; font-family: '${nix_font}'; font-size: 14px; /* up from 12px */ } .modules-left { margin-left: 8px; } .modules-right { margin-right: 8px; } #workspaces button { all: initial; padding: 0 6px; margin: 0 1.5px; min-width: 9px; } #workspaces button.empty { opacity: 0.5; } window#waybar { border-radius: 0 0 ${toString nix_corner}px ${toString nix_corner}px; } #cpu, #battery, #pulseaudio, #custom-power, #idle_inhibitor, #bluetooth, #privacy, #custom-menu, #hyprland-submap, #language { min-width: 12px; margin: 0 7.5px; } #tray { margin-right: 16px; } #bluetooth { margin-right: 17px; } #network { margin-right: 13px; } #custom-expand { margin-right: 18px; } tooltip { padding: 2px; } #custom-update { font-size: 10px; } #clock { margin-left: 8.75px; } #custom-weather { margin-left: 7.5px; margin-right: 7.5px; } #custom-weather.unavailable { min-width: 0; margin: 0; padding: 0; } .hidden { opacity: 0; } #privacy privacy-item *{ min-width: 12px; margin-left: 5px; margin-right: 0; font-size: 10px; padding-bottom: 1px; color: #ffffff; } #privacy.active { color: #a55555; } #idle_inhibitor.active { color: #a55555; } ''; settings = { mainBar = { height = nix_bar_height; spacing = 0; modules-left = [ "custom/menu" "hyprland/workspaces" "hyprland/submap" ]; modules-center = [ "clock" "idle_inhibitor" ]; modules-right = [ "group/minimized" "hyprland/language" "bluetooth" "network" "pulseaudio" "custom/power" "privacy" ]; privacy = { icon-size = 14; }; "hyprland/workspaces" = { on-click = "activate"; format = "{icon}"; format-icons = { default = ""; "1" = "1"; "2" = "2"; "3" = "3"; "4" = "4"; "5" = "5"; "6" = "6"; "7" = "7"; "8" = "8"; "9" = "9"; "10" = "0"; "active" = "󰝤"; }; persistent-workspaces = { "DP-2" = [ "1" "2" "3" ]; "HDMI-A-1" = [ "4" "5" "6" ]; }; }; tray = { spacing = 17; icon-size = 12; }; "hyprland/language" = { format = "{}"; format-en = "󱌯"; format-ar = "󱌨"; on-click = "hyprctl switchxkblayout monsgeek-monsgeek-keyboard next"; }; "custom/power" = { format = "⏻"; on-click = "hyprlock & systemctl suspend"; }; "custom/menu" = { format = ""; on-click = "rofi -show drun"; }; "custom/expand" = { tooltip = false; format = ""; }; "group/minimized" = { orientation = "horizontal"; modules = [ "custom/expand" "tray" ]; drawer = { transition-left-to-right = false; transition-duration = 200; children-class = "minimized"; }; }; bluetooth = { format = ""; format-disabled = ""; format-connected = ""; tooltip-format = "{controller_alias}\t{controller_address}"; tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{device_enumerate}"; tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; on-click = "alacritty --title bluetui -e bluetui"; }; mpris = { format = "{player_icon}"; }; network = { format = ""; format-wifi = ""; format-ethernet = ""; tooltip-format = "{ifname} via {gwaddr} 󰊗"; tooltip-format-wifi = "{essid} ({signalStrength}%) "; tooltip-format-ethernet = "{ipaddr}/{cidr}\n{ifname} "; tooltip-format-disconnected = "Disconnected"; on-click = "alacritty --title impala -e impala"; }; clock = { format = "{:%a %b %d %H:%M}"; tooltip-format = "{calendar}"; }; idle_inhibitor = { format = "{icon}"; format-icons = { activated = ""; deactivated = ""; }; }; pulseaudio = { format = "{icon}"; format-muted = ""; format-icons = { headphone = ""; headset = ""; default = [ "" "" "" ]; }; on-scroll-up = "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"; on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; on-click = "alacritty --title wiremix -e wiremix"; on-right-click = "set-mute @DEFAULT_AUDIO_SINK@ toggle"; tooltip-format = "{desc} - {volume}%"; }; }; }; }; programs.rofi = { enable = true; font = "${nix_font} 14"; plugins = [ pkgs.rofimoji ]; }; programs.hyprlock = { enable = true; settings = { general = { ignore_empty_input = true; }; background = { # color = nix_background; path = "screenshot"; blur_passes = 3; blur_size = 8; }; animations = { enabled = false; }; input-field = { size = "650, 100"; position = "0, 0"; halign = "center"; valign = "center"; fade_on_empty = false; font_color = nix_text; outer_color = nix_inactive; inner_color = nix_background; check_color = nix_accent; fail_color = nix_alert; font_family = nix_font; shadow_passes = 0; placeholder_text = "Enter Password 󰈷 "; fail_text = "$FAIL ($ATTEMPTS)"; rounding = nix_corner; }; "fingerprint:enabled" = true; }; }; services.hypridle = { enable = true; settings = { general = { lock_cmd = "pidof hyprlock || hyprlock"; }; listener = [ { timeout = 300; on-timeout = "loginctl lock-session & hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } { timeout = 900; on-timeout = "systemctl suspend"; on-resume = "hyprctl dispatch dpms on"; } ]; }; }; xdg.configFile."hypr/scripts/media.sh" = { executable = true; text = '' # Define a unique ID to reuse for replacing notifications NOTIF_ID=9999 PLAYER=$(playerctl -l 2>/dev/null | grep -i 'brave\|chromium\|chrome' | head -n 1) if [ -z "$PLAYER" ]; then exit 1 fi sleep 0.4s # Get play/pause status STATUS=$(playerctl -p "$PLAYER" status 2>/dev/null) # Fetch metadata TITLE=$(playerctl -p "$PLAYER" metadata title 2>/dev/null) ARTIST=$(playerctl -p "$PLAYER" metadata artist 2>/dev/null) # Format the message based on artist presence if [ -z "$ARTIST" ]; then MSG="$TITLE" else MSG="$TITLE\n$ARTIST" fi # Send notification using the -r flag to overwrite the old one if [ "$STATUS" = "Paused" ]; then notify-send -r $NOTIF_ID "Paused" "$MSG" -i media-playback-pause -t 5000 else notify-send -r $NOTIF_ID "Now Playing" "$MSG" -i media-playback-start -t 5000 fi ''; }; xdg.configFile."hypr/scripts/screenshot.sh" = { executable = true; text = '' MODE=$1 FILE=$(mktemp /tmp/screenshot-XXXXXX.png) grim -g "$(slurp)" "$FILE" || exit 1 wl-copy < "$FILE" ACTION=$(dunstify "Screenshot taken" "Copied to clipboard" \ --icon="$FILE" \ --action="open,Open in Satty" \ --timeout=5000) [ "$ACTION" = "2" ] && satty --filename "$FILE" FILE=$(mktemp /tmp/screenshot-XXXXXX.png) case "$MODE" in region) grim -g "$(slurp)" "$FILE" || exit 1 ;; fullscreen) grim "$FILE" || exit 1 ;; window) GEOMETRY=$(hyprctl clients -j | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | slurp) grim -g "$GEOMETRY" "$FILE" || exit 1 ;; *) notify-send "Screenshot" "Invalid mode: $MODE" --urgency=critical exit 1 ;; esac wl-copy < "$FILE" ACTION=$(notify-send "Screenshot taken ($MODE)" \ "Copied to clipboard" \ --icon="$FILE" \ --action="open=Open in Satty" \ --wait) [ "$ACTION" = "open" ] && satty --filename "$FILE" ''; }; wayland.windowManager.hyprland = { enable = true; plugins = [ pkgs.hyprlandPlugins.hyprbars ]; settings = { # This is an example Hyprland config file for Nix. # Refer to the wiki for more information. # https://wiki.hypr.land/Configuring/ # https://wiki.hypr.land/Nix/ # https://wiki.hypr.land/Nix/Hyprland-on-NixOS/ # https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf # todo: make the line above nix-ish # cursor = { #hide_on_key_press = true; # wish this could be disabled on window basis https://github.com/hyprwm/Hyprland/discussions/12317 warp_on_change_workspace = 1; }; plugin = { hyprbars = { bar_height = nix_bar_height; hyprbars-button = [ "rgb(ff605C), 16, 󰖭, hyprctl dispatch killactive" "rgb(00CA4E), 16, 󰊔, hyprctl dispatch fullscreen 1" "rgb(FFBD44), 16, , hyprctl dispatch togglefloating" ]; on_double_click = "hyprctl dispatch fullscreen 1"; icon_on_hover = true; bar_color = nix_background; "col.text" = nix_text; bar_buttons_alignment = "right"; }; }; ################ ### MONITORS ### ################ # See https://wiki.hypr.land/Configuring/Monitors/ #monitor = ",preferred,auto,auto"; monitor = if (hostname == "nixos-desktop") then [ "DP-2, 2560x1440@180,0x0,1,vrr,1,bitdepth,10" "HDMI-A-1, 1920x1080@75,2560x0,1,vrr,1" ] else [ ",preferred,auto,auto" ]; ################### ### MY PROGRAMS ### ################### # See https://wiki.hypr.land/Configuring/Keywords/ # Set programs that you use "$terminal" = "alacritty"; "$fileManager" = "dolphin"; "$menu" = "rofi -show drun"; "$browser" = "brave"; ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: exec-once = [ "waybar" "steam -silent" "webcord --start-minimized" #"[workspace 1 silent]$browser" #"[workspace 3 silent]proton-mail" #"[workspace 2 silent]signal-desktop" #"[workspace 2 silent]steam" ]; ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hypr.land/Configuring/Environment-variables/ env = [ "XCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24" ]; ################### ### PERMISSIONS ### ################### # See https://wiki.hypr.land/Configuring/Permissions/ # Please note permission changes here require a Hyprland restart and are not applied on-the-fly # for security reasons # ecosystem = { # enforce_permissions = 1; # }; permission = [ "/usr/(bin|local/bin)/grim, screencopy, allow" "/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow" # "/usr/(bin|local/bin)/hyprpm, plugin, allow" ]; ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hypr.land/Configuring/Variables/ # https://wiki.hypr.land/Configuring/Variables/#general general = { gaps_in = 10; gaps_out = 20; border_size = nix_border_size; # these need to have variables "col.active_border" = "0xFF205ea6"; "col.inactive_border" = "0xFF403E3C"; # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true; # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on allow_tearing = false; layout = "dwindle"; }; group = { "col.border_active" = "rgb(4385be)"; "col.border_inactive" = "rgb(403e3c)"; #"col.border_locked_active" = -1; #"col.border_locked_inactive" = -1; groupbar = { font_size = 12; font_family = "monospace"; font_weight_active = "ultraheavy"; font_weight_inactive = "normal"; indicator_height = 0; indicator_gap = 5; height = 22; gaps_in = 5; gaps_out = 0; text_color = "rgb(ffffff)"; text_color_inactive = "rgba(ffffff90)"; "col.active" = "rgb(100f0f)"; "col.inactive" = "rgb(403e3c)"; gradients = true; gradient_rounding = 0; gradient_round_only_edges = false; }; }; # https://wiki.hypr.land/Configuring/Basics/Variables/#decoration decoration = { rounding = nix_corner; shadow = { enabled = true; range = 2; render_power = 3; color = "rgba(1a1a1aee)"; }; # https://wiki.hypr.land/Configuring/Basics/Variables/#blur blur = { enabled = true; size = 2; passes = 2; special = true; brightness = 0.60; contrast = 0.75; }; }; layerrule = [ #"blur, notifications" #"ignorezero, notifications" # turn off anim for walker #"noanim, walker" ]; # add blur to notifications # https://wiki.hypr.land/Configuring/Variables/#animations animations = { enabled = "yes, please :)"; # Default animations, see https://wiki.hypr.land/Configuring/Animations/ for more 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.0" "quick,0.15,0,0.1,1" ]; animation = [ "global, 1, 10, default" "border, 1, 5.39, easeOutQuint" "windows, 1, 3.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, 0, 1, default" "specialWorkspace, 1, 3, easeOutQuint, slidevert" ]; }; # See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more dwindle = { #pseudo = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true; # You probably want this force_split = 2; # Always split on the right }; binds = { hide_special_on_workspace_change = true; }; # See https://wiki.hypr.land/Configuring/Master-Layout/ for more master = { new_status = "master"; }; # https://wiki.hypr.land/Configuring/Variables/#misc misc = { force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :( background_color = nix_background; focus_on_activate = true; }; ############# ### INPUT ### ############# # https://wiki.hypr.land/Configuring/Variables/#input input = { kb_layout = "us,ara"; kb_variant = ""; kb_model = ""; kb_options = "grp:alt_space_toggle"; kb_rules = ""; follow_mouse = 1; repeat_rate = 40; repeat_delay = 250; sensitivity = 0; # -1.0 - 1.0, 0 means no modification. accel_profile = "flat"; touchpad = { disable_while_typing = false; natural_scroll = false; }; }; # https://wiki.hypr.land/Configuring/Variables/#gestures #gestures = { # workspace_swipe = false; #}; # Example per-device config # See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more device = { name = "epic-mouse-v1"; sensitivity = -0.5; }; ################### ### KEYBINDINGS ### ################### # See https://wiki.hypr.land/Configuring/Keywords/ "$mainMod" = "SUPER"; # Sets "Windows" key as main modifier bind = [ # Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more "$mainMod, Return, exec, $terminal" "$mainMod, Q, killactive," "alt, F4, killactive," "$mainMod SHIFT, Q, exit," "$mainMod, E, exec, $fileManager" "$mainMod, V, togglefloating," "$mainMod, F, fullscreen, 3" "$mainMod, M, fullscreen, 1" "$mainMod, W, exec, $browser" "$mainMod, space, exec, $menu" #"$mainMod, P, pseudo," # dwindle #"$mainMod, T, togglesplit," # dwindle "$mainMod SHIFT, L, exec, hyprlock" "$mainMod SHIFT, F, workspaceopt, allfloat" "$mainMod SHIFT, H, exec, for i in {1..10}; do dunstctl history-pop; done; sleep 5 && dunstctl close-all" # show last 10 notifications for 5 seconds "$mainMod, G, togglegroup," "$mainMod SHIFT, S, exec, ~/.config/hypr/scripts/screenshot.sh region" ", PRINT, exec, ~/.config/hypr/scripts/screenshot.sh fullscreen" "$mainMod, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh window" # OCR "$mainMod SHIFT, T, exec, bash -c 'grim -g \"$(slurp)\" - | tesseract - stdout | wl-copy'" "$mainMod SHIFT, PRINT, exec, pkill hyprpicker || hyprpicker -a | wl-copy" # Move focus with mainMod + arrow keys "$mainMod, h, movefocus, l" "$mainMod, l, movefocus, r" "$mainMod, k, movefocus, u" "$mainMod, j, movefocus, d" "$mainMod, Tab, cyclenext" "$mainMod, Tab, bringactivetotop" # Switch workspaces with mainMod + [0-9] "$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" # Move active window to a workspace with mainMod + SHIFT + [0-9] "$mainMod SHIFT, 1, movetoworkspace, 1" "$mainMod SHIFT, 2, movetoworkspace, 2" "$mainMod SHIFT, 3, movetoworkspace, 3" "$mainMod SHIFT, 4, movetoworkspace, 4" "$mainMod SHIFT, 5, movetoworkspace, 5" "$mainMod SHIFT, 6, movetoworkspace, 6" "$mainMod SHIFT, 7, movetoworkspace, 7" "$mainMod SHIFT, 8, movetoworkspace, 8" "$mainMod SHIFT, 9, movetoworkspace, 9" "$mainMod SHIFT, 0, movetoworkspace, 10" # Example special workspace (scratchpad) "$mainMod, N, togglespecialworkspace, notes" "$mainMod SHIFT, N, movetoworkspace, special:notes" "$mainMod, grave, workspace, name:games" "$mainMod SHIFT, grave, movetoworkspace, name:games" # Scroll through existing workspaces with mainMod + scroll "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" ]; # Move/resize windows with mainMod + LMB/RMB and dragging bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; # Laptop multimedia keys for volume and LCD brightness bindel = [ ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @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" ",XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+" ",XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-" ]; # Requires playerctl bindl = [ ", XF86AudioNext, exec, playerctl next& ~/.config/hypr/scripts/media.sh" ", XF86AudioPause, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh" ", XF86AudioPlay, exec, playerctl play-pause& ~/.config/hypr/scripts/media.sh" ", XF86AudioPrev, exec, playerctl previous& ~/.config/hypr/scripts/media.sh" ]; ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hypr.land/Configuring/Window-Rules/ for more # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules #windowrule = [ # # Example windowrule # # "float,class:^(kitty)$,title:^(kitty)$" # # Ignore maximize requests from apps. You'll probably like this. # "suppressevent maximize, class:.*" # # Fix some dragging issues with XWayland # "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" # # make tuis accessed from waybar float in center # "tag +floating-window, title:(bluetui|impala|wiremix)" # "tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)" # "float, class:(org.gnome.Calculator)" # # send games to specific workspace # "workspace name:games silent, class:$games" # "noanim, class:$games" # "noblur, class:$games" # "noshadow, class:$games" # "noborder, class:$games" # "rounding 0, class:$games" # "fullscreen, class:$games" # "immediate, class:$games" # # pip # "tag +pip, title:(Picture.?in.?[Pp]icture)" # "tag -default-opacity, tag:pip" # "float, tag:pip" # "pin, tag:pip" # "size 600 338, tag:pip" # "keepaspectratio, tag:pip" # "bordersize 0, tag:pip" # "opacity 1 1, tag:pip" # "move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip" # # steam # "float, class:^(steam)$" # "center, class:^(steam)$, title:^(Steam)$" # "tag -default-opacity, class:^(steam.*)$" # "opacity 1 1, class:^(steam.*)$" # "size 1100 700, class:^(steam)$, title:^(Steam)$" # "size 460 800, class:^(steam)$, title:^(Friends List)$" # "idleinhibit fullscreen, class:^(steam)$" # # bitwarden # "noscreenshare, class:^(Bitwarden)$" # "tag +floating-window, class:^(Bitwarden)$" # # Bitwarden Chrome Extension # "noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" # "tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" # # floating tag # "float, tag:floating-window" # "center, tag:floating-window" # "size 875 600, tag:floating-window" # # hyprbar # "plugin:hyprbars:nobar, tag:^(?!floating-window$).*$" #]; #"$games" = # "^(steam_app_.*|lutris_game_class|minigalaxy|playnite_game_class|gamescope|chiaki|moonlight|com\.moonlight_stream\.Moonlight|.*[Ww]ine.*)$"; #workspace = [ # "name:1,monitor:DP-2" # "name:games,monitor:DP-2" # "name:4,monitor:HDMI-A-1" #]; }; }; }