# ======== # ======== # !!MONITORS!! # # --------------------------------------------------------------------------------- # # !!MONITORS!! # # run `hyprctl monitors all` to see all your monitors!!! source = $XDG_CACHE_HOME/wal/colors-hyprland source = $XDG_CONFIG_HOME/hypr/monitors.conf source = $XDG_CONFIG_HOME/hypr/wallpaper.conf exec-once = systemd-timer-notify & exec-once = [workspace special:magic silent] discord $fileManager = thunar $menu = rofi -combi-modi window,drun -show combi -show-icons -theme-str 'window {width: 15%; height: 42%;}' $browser = rofi -show file-browser-extended -show-icons -theme-str 'window {width: 20%; height: 32%;}' # $emoji = rofi -modi "emoji:rofimoji" -show emoji -theme-str 'window {width: 20%; height: 12%;}' # $calc = rofi -show calc -no-show-match -no-sort -theme-str 'window {width: 20%; height: 10%;}' $screenshot = slurp | grim -g - - | wl-copy $scripts = $XDG_CONFIG_HOME/hypr/scripts $power = $scripts/power.sh $notes = $scripts/notes.sh $move = $scripts/move.sh $actions = $scripts/actions.sh # $picker = hyprpicker -a 2>/dev/null $notifications = swaync-client -t # Environment variables env = ELECTRON_OZONE_PLATFORM_HINT,auto env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Posy_Cursor env = HYPRCURSOR_SIZE,24 env = HYPRCURSOR_THEME,Posy_Cursor $swpw_name = `(echo -n '90' && (hyprctl activeworkspace -j | jq -r '.name')) | sed 's/9090//g' | tr -d '\n'` $special_workspace_per_workspace = hyprctl dispatch workspace $swpw_name $move_to_special_workspace_per_workspace = hyprctl dispatch movetoworkspace $swpw_name # Special Workspace per Workspace bindings # !!INPUT!! # # --------------------------------------------------------------------------------- # # !!INPUT!! # render = {direct_scanout=1} # READ https://wiki.hyprland.org/Configuring/Variables/#input IF CONFUSED! # Example keyboard/mouse input settings. input { kb_layout = us # Set as needed kb_rules = kb_variant = kb_model = accel_profile = flat follow_mouse = 1 force_no_accel = true # Range is -1.0 to 1.0 | 0 means no modification to sensitivity. sensitivity = 0 touchpad { natural_scroll = false } } cursor { no_hardware_cursors = true } # !!DESIGN!! # # --------------------------------------------------------------------------------- # # !!DESIGN!! # animations { enabled = true bezier = myBezier, 0, 1, 0.18, 1.0 animation = windows, 1, 1.5, myBezier animation = windowsOut, 1, 2, myBezier, popin 95% animation = border, 1, 12, myBezier animation = borderangle, 1, 5, default animation = fade, 1, 6, default animation = workspaces, 1, 6, default } # The gaps between windows, as well as border colors. # proportional to the taskbar values. general { # Inner and Outer gaps between windows. gaps_in = 5 gaps_out = 20 14 20 20 # I prefer a thin border border_size = 2 # Border colors. col.active_border = $color0 col.inactive_border = $color1 # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true layout = dwindle # READ https://wiki.hyprland.org/Configuring/Tearing/ BEFORE TURNING ON! allow_tearing = false } # Window Decorations! Shadow, Blur, etc. decoration { rounding = 12 active_opacity = 1 inactive_opacity = 1 # Window Shadow shadow:enabled = true shadow:range = 16 shadow:render_power = 5 shadow:color = rgba(0,0,0,0.35) # Transparent Window Blur blur{ enabled = true size = 2 passes = 3 vibrancy = 0.1696 } } # Read https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more info on dwindle layout. dwindle { pseudotile = true preserve_split = true } # Read https://wiki.hyprland.org/Configuring/Master-Layout/ for more info on master layout. master { new_status = master } misc { force_default_wallpaper = 0 disable_hyprland_logo = true enable_anr_dialog = false } # No need for gestures unless you have a touch display. gestures { } # !!KEYBINDS!! # # --------------------------------------------------------------------------------- # # !!KEYBINDS!! # $mainMod = SUPER bind = $mainMod Shift, L, exit bind = $mainMod, Return, exec, $TERMINAL bind = $mainMod, Q, killactive, bind = $mainMod, G, exec, $screenshot bind = $mainMod SHIFT, E, exec, $fileManager bind = $mainMod, V, togglefloating bind = $mainMod, F, fullscreen bind = $mainMod, P, pseudo bind = $mainMod, T, togglesplit bindr = $mainMod, Tab, exec, pkill rofi || $menu # bindr = $mainMod Shift, P, exec, pkill hyprpicker || $picker # bindr = $mainMod Shift, C, exec, pkill rofi || $calc bindr = $mainMod Shift, T, exec, pkill rofi || $toggles bindr = $mainMod Shift, R, exec, pkill rofi || $power bindr = $mainMod, E, exec, pkill rofi || $browser bindr = $mainMod, N, exec, pkill rofi || $notes # bindr = $mainMod Shift, M, exec, pkill rofi || $emoji bindr = $mainMod Shift, Y, exec, pkill rofi || $scripts/runner bindr = $mainMod, D, exec, pkill rofi || $actions bindr = $mainMod Shift, W, exec, $move bindr = $mainMod, W, exec, $move --same bind = $mainMod, M, exec, pkill rmpc || kitty +kitten panel --edge center --layer overlay --focus-policy on-demand --margin-top 60 --margin-bottom 800 --margin-right 1200 --margin-left 22 rmpc bind = $mainMod Shift, N, exec, $notifications bind = $mainMod, A, exec, $special_workspace_per_workspace bind = $mainMod SHIFT, A, exec, $move_to_special_workspace_per_workspace # Switch current workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move a focused window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bind = $mainMod, h, movefocus, l bind = $mainMod, j, movefocus, r bind = $mainMod, k, movefocus, u bind = $mainMod, l, movefocus, d bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move and Resize windows with mainMod + LMB/RMB and dragging, drag on edges to resize. bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Laptop multimedia keys for volume and LCD brightness bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- # !!WINDOW RULES!! # # --------------------------------------------------------------------------------- # # !!WINDOW RULES!! # # Read https://wiki.hyprland.org/Configuring/Window-Rules/ for more info # Read https://wiki.hyprland.org/Configuring/Workspace-Rules/ for more info layerrule { name = layerrule-1 blur = on match:namespace = rofi } layerrule { name = layerrule-2 ignore_alpha = 0.01 match:namespace = rofi # This is so entirely transparent things aren't blurred. } # Add blur to waybar, for same reason as above. Since we have two versions # of the waybar design, one with translucency. layerrule { name = layerrule-3 blur = on blur_popups = on match:namespace = waybar } layerrule { name = layerrule-4 ignore_alpha = 1.0 match:namespace = waybar # this is so entirely transparent things aren't blurred. } # Add blur to eww widgets layerrule { name = layerrule-5 blur = on blur_popups = on ignore_alpha = 0.01 match:namespace = eww } # Fix dragging issues with XWayland windowrule { name = windowrule-1 no_focus = on match:class = ^$ match:title = ^$ match:xwayland = 1 match:float = 1 match:fullscreen = 0 match:pin = 0 } # -------------CUSTOMIZE BELOW------------------------ # Discord windowrule { name = windowrule-2 float = on size = 1200 800 move = (200) (100) workspace = special:magic no_screen_share = on match:class = ^(discord)$ } # File manager + archiver windowrule { name = windowrule-3 float = on center = on size = 971 670 opacity = 0.8 0.7 match:class = .*(?i)(thunar)$ } windowrule { name = windowrule-4 float = on center = on size = 971 670 opacity = 0.8 0.7 match:class = ^(xarchiver)$ } windowrule { name = windowrule-5 float = on center = on size = 568 138 match:title = ^(File\ Operation\ Progress)$ } windowrule { name = windowrule-6 float = on center = on size = 971 670 opacity = 0.8 0.7 match:title = ^(Open.*)$ } # XDG Portal windowrule { name = windowrule-7 float = on center = on size = 971 670 opacity = 0.8 0.7 match:class = ^(xdg-desktop-portal-gtk)$ } # Runelite windowrule { name = windowrule-8 float = on match:title = ^(RuneLite)$ } # Notes dmenu app windowrule { name = windowrule-9 float = on center = on size = (monitor_w*0.2) (monitor_h*0.25) opacity = 0.8 0.7 match:class = ^(notes)$ } # Opacity rules windowrule { name = windowrule-10 opacity = 0.8 0.7 match:class = ^(kitty)$ } windowrule { name = windowrule-11 opacity = 0.8 0.7 match:class = ^(steam)$ } windowrule { name = windowrule-12 opacity = 0.8 0.7 match:class = ^(PrismLauncher)$ } windowrule { name = windowrule-13 float = on match:class = ^(steam)$ match:title = ^(Friends\ List)$ } windowrule { name = windowrule-14 float = on opacity = 0.8 0.7 match:class = ^(io.lampnet.*)$ } windowrule { name = windowrule-15 float = on size = 1496 790 match:title = ^(System Update)$ } windowrule { name = windowrule-16 float = on match:class = ^(mpv)$ } windowrule { name = windowrule-17 float = on match:class = ^(feh)$ } windowrule { name = windowrule-18 border_size = 0 no_blur = on no_shadow = on match:class = ^(DeskPet)$ } windowrule { name = windowrule-19 float = on move = 2240 54 match:title = ^(Photo\ Gallery)$ } windowrule { name = windowrule-20 float = on move = 2240 54 match:title = ^(Music\ Controller)$ # no_blur = on # no_shadow = on }