hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.65k stars 830 forks source link

Workspace range selector does not work when binding workspaces to monitors #7130

Closed Eugenenoble2005 closed 1 month ago

Eugenenoble2005 commented 1 month ago

Regression?

No

System Info and Version

▄▀▀▀▀▄
▄▀▀▀▀▀▀▀▀▀▄
▄▀▀▀▀▀▀▀▀▀▀▀▄
▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▄
▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀ ▄▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀

archlinux :: ~ » hyprctl systeminfo -c Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886

flags: (if any)

System Information: System name: Linux Node name: archlinux Release: 6.10.2-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:49:55 +0000

GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 605] [8086:3184] (rev 03) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/noble/.config/hypr/hyprland.conf: Read Succeeded

Sourcing external config files

Default Configs

$configs = $HOME/.config/hypr/configs

source=$configs/Settings.conf source=$configs/Keybinds.conf

User Configs

$UserConfigs = $HOME/.config/hypr/UserConfigs

source= $UserConfigs/Startup_Apps.conf source= $UserConfigs/ENVariables.conf source= $UserConfigs/Monitors.conf source= $UserConfigs/Laptops.conf source= $UserConfigs/LaptopDisplay.conf source= $UserConfigs/WindowRules.conf source= $UserConfigs/UserKeybinds.conf source= $UserConfigs/UserSettings.conf source= $UserConfigs/WorkspaceRules.conf input{ touchpad{ natural_scroll=true } } general{ gaps_out=0 gaps_in=0

} decoration{ blur{ passes=4 size=10 } }

numkeys to workspace bindings

bind = ,KP_End, workspace, 1

bind = , KP_Down, workspace, 2

bind = , KP_Next, workspace, 3

bind = , KP_Left, workspace, 4

bind = , KP_Begin, workspace, 5

bind = , KP_Right, workspace, 6

bind = , KP_Home, workspace, 7

bind = , KP_Up, workspace, 8

bind = , KP_Prior, workspace, 9

bind = , KP_Insert, workspace, 10

turn on night light on boot

exec-once= hyprshade on blue-light-filter

start eww daemon on boot

exec-once=eww daemon exec-once=eww open deathnotedate

open widgets

windowrulev2= opacity 0.7, class:([Tt]hunar) windowrulev2= float, class:(fdm) windowrulev2 = size 60% 60% , class:(fdm) windowrulev2 = opacity 0.8, class:(firefox-nightly|fdm|OpenLP|Spotify) workspace=1,monitor:eDP-1 workspace = 1,monitor:eDP-1 workspace = 2,monitor:eDP-1 workspace = 3,monitor:eDP-1 workspace = 4,monitor:eDP-1 workspace = 5,monitor:eDP-1 workspace = 6,monitor:eDP-1 workspace = 7,monitor:eDP-1 workspace = 8,monitor:eDP-1

Config File: /home/noble/.config/hypr/configs/Settings.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

Default Settings. avoid changing this file as during update, this will be replaced

refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables

Initial boot script enable to apply initial wallpapers, theming, new settings etc.

exec-once = $HOME/.config/hypr/initial-boot.sh

Config File: /home/noble/.config/hypr/configs/Keybinds.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

Default Keybinds

visit https://wiki.hyprland.org/Configuring/Binds/ for more info

$mainMod = SUPER

Default

$scriptsDir = $HOME/.config/hypr/scripts $configs = $HOME/.config/hypr/configs

User

$UserConfigs = $HOME/.config/hypr/UserConfigs $UserScripts = $HOME/.config/hypr/UserScripts

bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 bind = $mainMod, Q, killactive, bind = $mainMod, F, fullscreen bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh bind = $mainMod SHIFT, F, togglefloating, bind = $mainMod ALT, F, exec, hyprctl dispatch workspaceopt allfloat bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh

FEATURES / EXTRAS

bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # Small help file bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search from Rofi bind = $mainMod SHIFT, B, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # animations ON/OFF bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC panel

FEATURES / EXTRAS (UserScripts)

bind = $mainMod, E, exec, $UserScripts/QuickEdit.sh # Quick Edit Hyprland Settings bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagickWW bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers

Waybar / Bar related

bind = $mainMod, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar bind = $mainMod , V, exec, waybar & bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu

Master Layout

bind = $mainMod CTRL, D, layoutmsg, removemaster bind = $mainMod, I, layoutmsg, addmaster bind = $mainMod, J, layoutmsg, cyclenext bind = $mainMod, K, layoutmsg, cycleprev bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 bind = $mainMod, P, pseudo, # dwindle bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster

group

bind = $mainMod, G, togglegroup bind = $mainMod SHIFT, tab, changegroupactive #change focus to another window

Cycle windows if floating bring to top

bind = ALT,Tab,cyclenext bind = ALT,Tab,bringactivetotop

Special Keys / Hot Keys

bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc #volume up bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec #volume down bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic #mute mic bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle bindl = , xf86Sleep, exec, systemctl suspend # sleep button bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh #Airplane mode

media controls using keyboards

bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop

Screenshot keybindings NOTE: You may need to press Fn key as well

bind = $mainMod, Print, exec, $scriptsDir/ScreenShot.sh --now bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area bind = $mainMod CTRL, Print, exec, $scriptsDir/ScreenShot.sh --in5 #screenshot in 5 secs bind = $mainMod CTRL SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --in10 #screenshot in 10 secs bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active #take screenshot of active window

screenshot with swappy (another screenshot tool)

bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy

Resize windows

bind = $mainMod SHIFT, left, exec, resizeactive,-50 0 binde = $mainMod SHIFT, right, resizeactive,50 0 binde = $mainMod SHIFT, up, resizeactive,0 -50 binde = $mainMod SHIFT, down, resizeactive,0 50

Move windows

bind = $mainMod CTRL, left, movewindow, l bind = $mainMod CTRL, right, movewindow, r bind = $mainMod CTRL, up, movewindow, u bind = $mainMod CTRL, down, movewindow, d

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

Workspaces related

bind = $mainMod, tab, workspace, m+1 bind = $mainMod SHIFT, tab, workspace, m-1

Special workspace

bind = $mainMod SHIFT, U, movetoworkspace, special bind = $mainMod, U, togglespecialworkspace,

The following mappings use the key codes to better support various keyboard layouts

1 is code:10, 2 is code 11, etc

Switch workspaces with mainMod + [0-9]

bind = $mainMod, code:10, workspace, 1 bind = $mainMod, code:11, workspace, 2 bind = $mainMod, code:12, workspace, 3 bind = $mainMod, code:13, workspace, 4 bind = $mainMod, code:14, workspace, 5 bind = $mainMod, code:15, workspace, 6 bind = $mainMod, code:16, workspace, 7 bind = $mainMod, code:17, workspace, 8 bind = $mainMod, code:18, workspace, 9 bind = $mainMod, code:19, workspace, 10

Move active window and follow to workspace mainMod + SHIFT [0-9]

bind = $mainMod SHIFT, code:10, movetoworkspace, 1 bind = $mainMod SHIFT, code:11, movetoworkspace, 2 bind = $mainMod SHIFT, code:12, movetoworkspace, 3 bind = $mainMod SHIFT, code:13, movetoworkspace, 4 bind = $mainMod SHIFT, code:14, movetoworkspace, 5 bind = $mainMod SHIFT, code:15, movetoworkspace, 6 bind = $mainMod SHIFT, code:16, movetoworkspace, 7 bind = $mainMod SHIFT, code:17, movetoworkspace, 8 bind = $mainMod SHIFT, code:18, movetoworkspace, 9 bind = $mainMod SHIFT, code:19, movetoworkspace, 10 bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ or ] bind = $mainMod SHIFT, bracketright, movetoworkspace, +1

Move active window to a workspace silently mainMod + CTRL [0-9]

bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ or ] bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1

Scroll through existing workspaces with mainMod + scroll

bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, period, workspace, e+1 bind = $mainMod, comma, workspace, e-1

Move/resize windows with mainMod + LMB/RMB and dragging

bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow

Config File: /home/noble/.config/hypr/UserConfigs/Startup_Apps.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

Commands & Apps to be executed at launch

$scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts

$wallDIR=$HOME/Pictures/wallpapers $lock = $scriptsDir/LockScreen.sh $SwwwRandom = $UserScripts/WallpaperAutoChange.sh

wallpaper stuff / More wallpaper options below

exec-once = swww-daemon --format xrgb

exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes

Startup

exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

Polkit (Polkit Gnome / KDE)

exec-once = $scriptsDir/Polkit.sh

starup apps

exec-once = waybar & exec-once = nm-applet --indicator & exec-once = swaync & exec-once = ags &

exec-once = blueman-applet &

exec-once = rog-control-center &

clipboard manager

exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store

Rainbow borders

exec-once = $UserScripts/RainbowBorders.sh &

Starting hypridle to start hyprlock

exec-once = hypridle &

Start pyprland daemon

exec-once = pypr &

Here are list of features available but disabled by default

exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper

gnome polkit for nixos

exec-once = $scriptsDir/Polkit-NixOS.sh

xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start)

exec-once = $scriptsDir/PortalHyprland.sh

Config File: /home/noble/.config/hypr/UserConfigs/ENVariables.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/

environment-variables

env = CLUTTER_BACKEND,wayland env = GDK_BACKEND,wayland,x11 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME,qt5ct env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_SCALE_FACTOR,1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland

xwayland apps scale fix (useful if you are use monitor scaling)

see https://wiki.hyprland.org/Configuring/XWayland/

toolkit-specific scale

env = GDK_SCALE,2

firefox

env = MOZ_ENABLE_WAYLAND,1

electron >28 apps (may help)

env = ELECTRON_OZONE_PLATFORM_HINT,auto

NVIDIA

This is from Hyprland Wiki. Below will be activated nvidia gpu detected

env = LIBVA_DRIVER_NAME,nvidia

env = __GLX_VENDOR_LIBRARY_NAME,nvidia

env = NVD_BACKEND,direct

additional ENV's for nvidia. Caution, activate with care

env = GBM_BACKEND,nvidia-drm

env = __NV_PRIME_RENDER_OFFLOAD,1

env = __VK_LAYER_NV_optimus,NVIDIA_only

env = WLR_DRM_NO_ATOMIC,1

FOR VM and POSSIBLY NVIDIA

env = WLR_NO_HARDWARE_CURSORS,1 # On hyprland >v0.41, now configured on variable cursor section

env = WLR_RENDERER_ALLOW_SOFTWARE,1

nvidia firefox (for hardware acceleration on FF)?

check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration

env = MOZ_DISABLE_RDD_SANDBOX,1

env = EGL_PLATFORM,wayland

Config File: /home/noble/.config/hypr/UserConfigs/Monitors.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

Monitor Configuration

See Hyprland wiki for more details

https://wiki.hyprland.org/Configuring/Monitors/

Configure your Display resolution, offset, scale and Monitors here, use hyprctl monitors to get the info.

Monitors

monitor=,preferred,auto,1

NOTE: for laptop, kindly check notes in Laptops.conf regarding display

Created this inorder for the monitor display to not wake up if not intended.

See here: https://github.com/hyprwm/Hyprland/issues/4090

monitor = eDP-1, preferred, auto, 1

monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen

monitor = DP-3, 1920x1080@240, auto, 1

monitor = DP-1, preferred, auto, 1

monitor = HDMI-A-1, preferred,auto,1

QEMU-KVM or any virtual box

monitor = Virtual-1, 1920x1080@60,auto,1

Hi Refresh Rate

monitor=,highrr,auto,1

High Resolution

monitor=,highres,auto,1

to disable a monitor

monitor=name,disable

Mirror

monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2

monitor=,preferred,auto,1,mirror,eDP-1

Example :

monitor=eDP-1,2560x1440@165,0x0,1

workspace=HDMI-A-1,1

monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1

workspace=HDMI-A-2,2

monitor=eDP-1,transform,0

monitor=eDP-1,addreserved,10,10,10,49

workspace=eDP-1,1

Config File: /home/noble/.config/hypr/UserConfigs/Laptops.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings

These configs are mostly for laptops. This is addemdum to Keybinds.conf

$mainMod = SUPER $scriptsDir = $HOME/.config/hypr/scripts $UserConfigs = $HOME/.config/hypr/UserConfigs

for disabling Touchpad. hyprctl devices to get device name.

$Touchpad_Device=asue1209:00-04f3:319f-touchpad

binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec #Keyboard brightness Down binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc #Keyboard brightness up bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button bind = , xf86Launch3, exec, asusctl led-mode -n #FN+F4 Switch keyboard RGB profile bind = , xf86Launch4, exec, asusctl profile -n #FN+F5 change of fan profiles (Quite, Balance, Performance) binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh #disable touchpad

Screenshot keybindings for Asus G15 (no PrinSrc button)

bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # Fullscreen bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # Screenshot in 5 secs bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # Screenshot in 10 secs bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # Screenshot active window

$TOUCHPAD_ENABLED = true device { name = $Touchpad_Device enabled = $TOUCHPAD_ENABLED }

Below are useful when you are connecting your laptop in external display

Suggest you edit below for your laptop display

From WIKI This is to disable laptop monitor when lid is closed.

consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches

bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1"

bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable"

WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION!

CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper.

CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor

One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!!

Make sure to comment (put # on the both the bindl = , switch ......) above

NOTE: Display for laptop are being generated into LaptopDisplay.conf

This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc

bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf

bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf

for laptop-lid action (to erase the last entry)

exec-once = echo "eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf

#

Config File: /home/noble/.config/hypr/UserConfigs/LaptopDisplay.conf: Read Succeeded

NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid.

See notes on Laptops.conf

monitor = eDP-1, preferred, auto, 1

Config File: /home/noble/.config/hypr/UserConfigs/WindowRules.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

windowrule = noblur,gamescope

windowrule = fullscreen,gamescope

windowrule = workspace 6 silent,^(gamescope)$

windowrule center

windowrule = center,^(pavucontrol|org.pulseaudio.pavucontrol) windowrule = center,^([Ww]hatsapp-for-linux)$ windowrule = center,^([Ff]erdium)$

WINDOWRULE v2

windowrule v2 - position

windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center.

windowrulev2 = center, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = center, class:([Tt]hunar), title:(Confirm to replace files)

windowrule v2 to avoid idle for fullscreen apps

windowrulev2 = idleinhibit fullscreen, class:^()$ windowrulev2 = idleinhibit fullscreen, title:^()$ windowrulev2 = idleinhibit fullscreen, fullscreen:1

windowrule v2 move to workspace

windowrulev2 = workspace 1, class:^([Tt]hunderbird)$ windowrulev2 = workspace 2, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$ windowrulev2 = workspace 2, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$

windowrulev2 = workspace 3, class:^([Tt]hunar)$

windowrulev2 = workspace 4, class:^(com.obsproject.Studio)$ windowrulev2 = workspace 5, class:^([Ss]team)$ windowrulev2 = workspace 5, class:^([Ll]utris)$ windowrulev2 = workspace 7, class:^([Dd]iscord)$ windowrulev2 = workspace 7, class:^([Ww]ebCord)$ windowrulev2 = workspace 7, class:^([Vv]esktop)$ windowrulev2 = workspace 7, class:^([Ff]erdium)$ windowrulev2 = workspace 7, class:^([Ww]hatsapp-for-linux)$

windowrule v2 move to workspace (silent)

windowrulev2 = workspace 6 silent, class:^(virt-manager)$ windowrulev2 = workspace 9 silent, class:^([Aa]udacious)$

windowrule v2 - float

windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$ windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$ windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files) windowrulev2 = float, class:(xdg-desktop-portal-gtk) windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator) windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:(Add Folder to Workspace) windowrulev2 = float, class:^([Rr]ofi)$ windowrulev2 = float, class:^(eog)$ windowrulev2 = float, class:^(pavucontrol|org.pulseaudio.pavucontrol)$ windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct|mpv)$ windowrulev2 = float, class:^(nm-applet|nm-connection-editor|blueman-manager)$ windowrulev2 = float, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ # system monitor windowrulev2 = float, class:^(yad)$ # icon browser windowrulev2 = float, class:^(wihotspot-gui)$ # wifi hotspot windowrulev2 = float, class:^(evince)$ # document viewer windowrulev2 = float, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = float, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer windowrulev2 = float, title:(Kvantum Manager) windowrulev2 = float, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$ windowrulev2 = float, class:^([Qq]alculate-gtk)$ windowrulev2 = float, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = float, class:^([Ff]erdium)$

windowrule v2 - opacity #enable as desired

windowrulev2 = opacity 0.9 0.6, class:^([Rr]ofi)$ windowrulev2 = opacity 0.9 0.7, class:^(Brave-browser(-beta|-dev)?)$ windowrulev2 = opacity 0.9 0.7, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|firefox-nightly)$ windowrulev2 = opacity 0.9 0.6, class:^([Tt]horium-browser)$ windowrulev2 = opacity 0.9 0.8, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$ windowrulev2 = opacity 0.9 0.8, class:^(google-chrome(-beta|-dev|-unstable)?)$ windowrulev2 = opacity 0.94 0.86, class:^(chrome-.+-Default)$ # Chrome PWAs windowrulev2 = opacity 0.9 0.8, class:^([Tt]hunar)$ windowrulev2 = opacity 0.8 0.6, class:^(pcmanfm-qt)$ windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor)$ windowrulev2 = opacity 0.9 0.8, class:^(deluge)$ windowrulev2 = opacity 0.9 0.8, class:^(Alacritty)$ windowrulev2 = opacity 0.9 0.8, class:^(kitty)$ windowrulev2 = opacity 0.9 0.7, class:^(mousepad)$ windowrulev2 = opacity 0.9 0.7, class:^(VSCodium|codium-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(nwg-look|qt5ct|qt6ct|yad)$ windowrulev2 = opacity 0.9 0.8, title:(Kvantum Manager) windowrulev2 = opacity 0.9 0.7, class:^(com.obsproject.Studio)$ windowrulev2 = opacity 0.9 0.7, class:^([Aa]udacious)$ windowrulev2 = opacity 0.9 0.8, class:^(org.gnome.Nautilus)$ windowrulev2 = opacity 0.9 0.8, class:^(VSCode|code-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(jetbrains-.+)$ # JetBrains IDEs windowrulev2 = opacity 0.94 0.86, class:^([Dd]iscord|[Vv]esktop)$ windowrulev2 = opacity 0.9 0.8, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ windowrulev2 = opacity 0.94 0.86, class:^(gnome-disks|evince|wihotspot-gui|org.gnome.baobab)$ windowrulev2 = opacity 0.9 0.8, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = opacity 0.8 0.7, class:^(app.drey.Warp)$ # Warp file transfer windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui windowrulev2 = opacity 0.82 0.75, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = opacity 0.9 0.8, class:^(xdg-desktop-portal-gtk)$ # gnome-keyring gui windowrulev2 = opacity 0.9 0.7, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = opacity 0.9 0.7, class:^([Ff]erdium)$

windowrule v2 - size

windowrulev2 = size 70% 70%, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = size 70% 70%, class:^(xdg-desktop-portal-gtk)$ windowrulev2 = size 60% 70%, title:(Kvantum Manager) windowrulev2 = size 60% 70%, class:^(qt6ct)$ windowrulev2 = size 70% 70%, class:^(evince|wihotspot-gui)$ windowrulev2 = size 60% 70%, class:^(file-roller|org.gnome.FileRoller)$ windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = size 60% 70%, class:^([Ff]erdium)$

layerrule = unset,class:^([Rr]ofi)$

layerrule = blur,class:^([Rr]ofi)$

layerrule = ignorezero,

layerrule = ignorezero, overview layerrule = blur, overview

windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1

windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1

windowrulev2 = opacity 0.8 0.8, pinned:1

Picture-in-a-Picture (PIP) rules: Oddly, some need re-duplication. This is because the window for

PIP changes after on first launch, and will not inherant the rules...

windowrulev2=opacity 0.95 0.75,title:^(Picture-in-Picture)$ # for opacity: [focus num] [bg num]

Interestingly, the opacity rule above doesn't need the reduplication?

windowrulev2=pin,title:^(Picture-in-Picture)$

windowrulev2=pin,title:^(Firefox)$

windowrulev2=float, title:^(Picture-in-Picture)$

windowrulev2=float, title:^(Firefox)$

windowrulev2=size 25% 25%,title:^(Picture-in-Picture)$

windowrulev2=size 25% 25%,title:^(Firefox)$

windowrulev2=move 72% 7%,title:^(Picture-in-Picture)$

windowrulev2=move 72% 7%,title:^(Firefox)$

Config File: /home/noble/.config/hypr/UserConfigs/UserKeybinds.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict

if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc

See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables

See also Laptops.conf for laptops keybinds

$mainMod = SUPER $files = thunar $term = kitty $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts

rofi App launcher

bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu

bind = $mainMod, D, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window

ags overview

bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview'

bind = $mainMod, Return, exec, $term # Launch terminal bind = $mainMod, T, exec, $files # Launch file manager bind = $mainMod, O, exec, firefox-nightly bind = $mainMod,N, exec , $UserScripts/NightLight.sh #Toggle Night Light bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate)

pyprland

bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom

User Added Keybinds

bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme bindn = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Changing the keyboard layout

For passthrough keyboard into a VM

bind = $mainMod ALT, P, submap, passthru

submap = passthru

to unbind

bind = $mainMod ALT, P, submap, reset

submap = reset

Config File: /home/noble/.config/hypr/UserConfigs/UserSettings.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

User Settings

This is where you put your own settings as this will not be touched during update

if the upgrade.sh is used.

refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/

Sourcing colors generated by wallust

source = $HOME/.config/hypr/wallust/wallust-hyprland.conf

blurls = waybar

blurls = rofi

dwindle { pseudotile = yes preserve_split = yes special_scale_factor = 0.8 }

master { new_status = master #from Hyprland >v0.41.2 new_on_top = 1 mfact = 0.5 }

general { sensitivity = 1.00 border_size = 2 apply_sens_to_raw = 1 gaps_in = 6 gaps_out = 8

resize_on_border = true

col.active_border = $color12 col.inactive_border = $backgroundCol

layout = dwindle }

decoration { rounding = 10

active_opacity = 1.0 inactive_opacity = 0.9 fullscreen_opacity = 1.0

dim_inactive = true dim_strength = 0.1 dim_special = 0.8

drop_shadow = true shadow_range = 6 shadow_render_power = 1 col.shadow = $color12 col.shadow_inactive = 0x50000000

blur { enabled = true
size = 6 passes = 2 ignore_opacity = true new_optimizations = true special = true } }

animations { enabled = yes

bezier = wind, 0.05, 0.9, 0.1, 1.05 bezier = winIn, 0.1, 1.1, 0.1, 1.1 bezier = winOut, 0.3, -0.3, 0, 1 bezier = liner, 1, 1, 1, 1

animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide animation = windowsOut, 1, 5, winOut, slide animation = windowsMove, 1, 5, wind, slide animation = border, 1, 1, liner

animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors

animation = fade, 1, 10, default animation = workspaces, 1, 5, wind }

input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = repeat_rate = 50 repeat_delay = 300 numlock_by_default = true left_handed = false follow_mouse = true float_switch_override_focus = false

touchpad { disable_while_typing = true natural_scroll = false clickfinger_behavior = false middle_button_emulation = true tap-to-click = true drag_lock = false }

below for devices with touchdevice ie. touchscreen

touchdevice {
    enabled = true
}

# below is for table see link above for proper variables
tablet {
    transform = 0
    left_handed = 0
}

}

gestures { workspace_swipe = true workspace_swipe_fingers = 3 workspace_swipe_distance = 500 workspace_swipe_invert = true workspace_swipe_min_speed_to_force = 30 workspace_swipe_cancel_ratio = 0.5 workspace_swipe_create_new = true workspace_swipe_forever = true

workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right

}

group { col.border_active = $color15

groupbar {
    col.active = $color0

} }

misc { disable_hyprland_logo = true disable_splash_rendering = true vfr = true

vrr = 0

mouse_move_enables_dpms = true enable_swallow = true swallow_regex = ^(kitty)$ focus_on_activate = false no_direct_scanout = true #for fullscreen games initial_workspace_tracking = 0 middle_click_paste = false }

binds { workspace_back_and_forth = true allow_workspace_cycles = true pass_mouse_when_bound = false }

Could help when scaling and not pixelating

xwayland { force_zero_scaling = true }

cursor section for Hyprland >= v0.41.0

cursor { no_hardware_cursors = false enable_hyprcursor = true warp_on_change_workspace = true # for -git or Hyprland >v0.41.1 }

Config File: /home/noble/.config/hypr/wallust/wallust-hyprland.conf: Read Succeeded $background = rgb(000000) $foreground = rgb(FDFDFD) $color0 = rgb(000000) $color1 = rgb(250106) $color2 = rgb(5A020E) $color3 = rgb(780313) $color4 = rgb(424243) $color5 = rgb(807D7C) $color6 = rgb(BBBBBB) $color7 = rgb(F4F4F4) $color8 = rgb(AAAAAA) $color9 = rgb(320108) $color10 = rgb(780313) $color11 = rgb(A00419) $color12 = rgb(585859) $color13 = rgb(AAA6A6) $color14 = rgb(F9F9F9) $color15 = rgb(F4F4F4)

Config File: /home/noble/.config/hypr/UserConfigs/WorkspaceRules.conf: Read Succeeded

/ ---- 💫 https://github.com/JaKooLit 💫 ---- /

You can set workspace rules to achieve workspace-specific behaviors.

For instance, you can define a workspace where all windows are drawn without borders or gaps.

https://wiki.hyprland.org/Configuring/Workspace-Rules/

Assigning workspace to a certain monitor

workspace = 1, monitor:eDP-1

workspace = 2, monitor:DP-2

example rules (from wiki)

workspace = 3, rounding:false, decorate:false

workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1

workspace = 8,bordersize:8

workspace = name:Hello, monitor:DP-1, default:true

workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true

workspace = 5, on-created-empty:[float] firefox

workspace = special:scratchpad, on-created-empty:foot

Description

The following workspace rule does not work when attempting to bind all workspaces from 0-10 to a particular monitor:

workspace=r[1-10],monitor:eDP-1

Workspaces will still be scrambled randomly between monitors. The following works :

workspace=1,monitor:eDP-1
workspace = 1,monitor:eDP-1
workspace = 2,monitor:eDP-1
workspace = 3,monitor:eDP-1
workspace = 4,monitor:eDP-1
workspace = 5,monitor:eDP-1
workspace = 6,monitor:eDP-1
workspace = 7,monitor:eDP-1
workspace = 8,monitor:eDP-1

Am i doing it wrong perhaps? I am putting this rule at the bottom of hyprland.conf

How to reproduce

Install latest hyprland and try to bind workspace to monitors using the range rule e.g r[A-B]

Crash reports, logs, images, videos

No response

Eugenenoble2005 commented 1 month ago

Just read through other issues and the docs and have learned this is a known limitation with workspaces that have not been created yet.