Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

The workspace swipe gesture allows you to create a workspace linked to another monitor.

Open kerty0 opened this issue 1 year ago • 0 comments

Already reported ? *

  • [X] I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland, built from branch  at commit 4520b30d498daca8079365bdb909a8dea38e8d55  (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.2


flags: (if any)


System Information:
System name: Linux
Node name: kerty-pc
Release: 6.11.4-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Thu, 17 Oct 2024 20:53:41 +0000


GPU information: 
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c7) (prog-if 00 [VGA controller])


os-release: NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://endeavouros.com"
DOCUMENTATION_URL="https://discovery.endeavouros.com"
SUPPORT_URL="https://forum.endeavouros.com"
BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation"
PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2"
LOGO="endeavouros"


plugins:

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


Config File: /home/kerty/.config/hypr/hyprland.conf: Read Succeeded
################
### MONITORS ###
################

monitor=,preferred,auto,1
monitor=HDMI-A-1,1920x1080,-1930x0,1
# monitor=WL-1,1020x550,auto,0.5

###################
### MY PROGRAMS ###
###################

$terminal = kitty
$fileManager = YAZI=1 $terminal
$menu = wofi --show drun

#################
### AUTOSTART ###
#################

exec-once = hypridle & waybar & dunst & clipse -listen & udiskie
exec-once = systemctl --user start plasma-polkit-agent & sh -c "sleep 2; bluetooth-autoconnect"
exec-once = swww-daemon & swww img /var/local/active_wallpaper --filter Nearest --transition-type none & ~/.local/bin/random_wallpaper.sh 30m

#############################
### ENVIRONMENT VARIABLES ###
#############################

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

env = XDG_MENU_PREFIX,arch-
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
env = GTK_THEME,Adwaita:dark

#####################
### LOOK AND FEEL ###
#####################

general { 
    gaps_in = 2
    gaps_out = 4
    border_size = 2
    col.active_border = rgba(1e1c7eee) rgba(a100ffae) 90deg
    col.inactive_border = rgba(161616aa)
    resize_on_border = true
    allow_tearing = false
    layout = dwindle
}

decoration {
    rounding = 4
    active_opacity = 1.0
    inactive_opacity = 0.95
    blur {
        enabled = true
        size = 1
        passes = 1
    }
}

animations {
    enabled = true
    bezier = myBezier,0.22, 1, 0.36, 1
    bezier = windowBezier,0.16, 1, 0.3, 1
    animation = windows, 1, 3, myBezier , popin 90%
    animation = windowsOut, 1, 4, myBezier , popin 90%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 4, windowBezier#, slidefade 30%
}

dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
    # smart_split = true
    no_gaps_when_only = 2
}

master {
    new_status = master
}

misc { 
    force_default_wallpaper = 0
    disable_hyprland_logo = true
}

#############
### INPUT ###
#############

input {
    kb_layout = us,ru
    kb_variant =
    kb_model = 
    kb_options = grp:toggle 
    kb_rules =

    follow_mouse = 1

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    touchpad {
        natural_scroll = true
    }
}

gestures {
    workspace_swipe = true
    # workspace_swipe_forever = true
    # workspace_swipe_create_new = false
    # workspace_swipe_direction_lock = false
}

# device {
#     name = epic-mouse-v1
#     sensitivity = -0.5
# }

# cursor {
#     hotspot_padding = 0
# }

debug {
    overlay = false
    disable_logs = true
}

####################
### KEYBINDINGSS ###
####################

# Example binds
bind = SUPER, Q, exec, $terminal
bind = SUPER, C, killactive,
bind = SUPER, M, exec, wlogout
bind = SUPER, E, exec, $fileManager
bind = SUPER, F, togglefloating,  
bind = SUPER, F, resizeactive, exact 950 515
bind = SUPER, P, pseudo, # dwindle
bind = SUPER, T, togglesplit, # dwindle

bindr = SUPER, SUPER_L, exec, $menu

# Move focus with mainMod + arrow keys
bind = SUPER, left, movefocus, l
bind = SUPER, right, movefocus, r
bind = SUPER, up, movefocus, u
bind = SUPER, down, movefocus, d

# Swap window with mainMod + CTRL + arrow keys
bind = SUPER CTRL, left, swapwindow, l
bind = SUPER CTRL, right, swapwindow, r
bind = SUPER CTRL, up, swapwindow, u
bind = SUPER CTRL, down, swapwindow, d

# Resize window with SUPER + ALT + arrow keys
binde = SUPER ALT, right, resizeactive, 20 0
binde = SUPER ALT, left, resizeactive, -20 0
binde = SUPER ALT, up, resizeactive, 0 -20
binde = SUPER ALT, down, resizeactive, 0 20

# Switch workspaces with mainMod + [0-9]
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, name:󰍺

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, name:󰍺

bind = SUPER SHIFT, right, movetoworkspace, r+1
bind = SUPER SHIFT, left, movetoworkspace, r-1

# Example special workspace (scratchpad)
bind = SUPER, S, togglespecialworkspace, magic
bind = SUPER SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow

# Fn keys
$brightnessChange = 8
bind = , XF86MonBrightnessDown, exec, brightnessctl set $brightnessChange- 
bind = , XF86MonBrightnessUp, exec, brightnessctl set +$brightnessChange

$volumeChange= 5%
binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ $volumeChange- -l 2
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ $volumeChange+ -l 2
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle

# bind = SUPER, P, pseudo, # dwindle
bind = , XF86Tools, exec, wl-copy $(hyprpicker)
bind = , Print, exec, hyprshot -m region -o ~/Pictures/screenshots
bind = SUPER, Print, exec, hyprshot -m output -m active -o ~/Pictures/screenshots
bind = CTRLSUPER, Print, exec, hyprshot -m window -m active -o ~/Pictures/screenshots

bind = SUPER, V, exec, $terminal --class clipse -e 'clipse'  

##############################
### WINDOWS AND WORKSPACES ###
##############################

windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

windowrulev2 = float, class:(clipse)
windowrulev2 = size 30% 60%, class:(clipse)

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
workspace = 9, monitor:eDP-1
workspace = name:󰍺, monitor:HDMI-A-1, default:true, gapsout:0

======Config-End========

Description

If you use swipe workspace gesture on named workspace on first monitor, you can create new workspace even if workspace rules bind it to second monitor. From second monitor you can switch to same workspace. Program opened on first monitor opens on second and becomes invisible.

How to reproduce

Add this to config:

gestures {
    workspace_swipe = true
}
workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = name:󰍺, monitor:DP-2, default:true

Close all workspaces on DP-1 expect with id 1. Swipe on DP-2 to create new workspace. It will create and open workspace with id 2. Switch DP-1 to workspace with id 2. How you have both monitor with opened workspace with id 2.

Crash reports, logs, images, videos

No response

kerty0 avatar Oct 19 '24 12:10 kerty0