Moving workspaces | desktops

So I'm clumsy and I find myself clicking on the trash cans in the upper right hand corners of the virtual workspace windows sometimes when I try to select a different one in the switcher. In other Os's Usually I just make a new one, move it where I want it then move the windows that were in it back into it. But I can't seem to figure out, (or find anywhere online) how to do this in Arch linux / KDE Plasma. I can find everything else, but how to do this.

Is this not possible on this combination of OS / DE? Or is it just assumed that everyone will know how to do this? I've tried just dragging the windows with my mouse (which works in other OS's) and just about every combination of keys I could think of to move the highlighted workspace, but so far nothing seems to work.

I'm probably missing something dead simple because I'm not that familiar with Arch / KDE yet, any help is appreciated.

Kernel: 6.2.8-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=86248a5d-1442-48a9-91bc-0cc6f758f2f1 rw [email protected]
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
Desktop: KDE Plasma v: 5.27.3 tk: Qt v: 5.15.8 wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: ROG STRIX B550-F GAMING v: Rev X.0x
serial: <superuser required> UEFI: American Megatrends v: 2803
date: 04/27/2022
Info: model: AMD Ryzen 7 5800X bits: 64 type: MT MCP arch: Zen 3+ gen: 4
level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
model-id: 0x21 (33) stepping: 0 microcode: 0xA201016
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB
L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 2440 high: 3576 min/max: 2200/4850 boost: enabled
scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 2200 2: 2200
3: 2437 4: 2200 5: 2200 6: 3576 7: 3064 8: 2879 9: 2200 10: 2200 11: 2200
12: 2200 13: 2200 14: 2200 15: 2200 16: 2894 bogomips: 121599
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Device-1: NVIDIA TU106 [GeForce RTX 2060 12GB] vendor: ASUSTeK
driver: nvidia v: 530.41.03 alternate: nouveau,nvidia_drm non-free: 525.xx+
status: current (as of 2023-02) arch: Turing code: TUxxx
process: TSMC 12nm FF built: 2018-22 pcie: gen: 1 speed: 2.5 GT/s
lanes: 16 link-max: gen: 3 speed: 8 GT/s bus-ID: 06:00.0
chip-ID: 10de:1f03 class-ID: 0300
Device-2: Elgato Systems GmbH Game Capture HD60 S+ type: USB
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo bus-ID: 5-1:2
chip-ID: 0fd9:006a class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 23.1.0
compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia display-ID: :0
screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 69 s-size: 707x392mm (27.83x15.43")
s-diag: 808mm (31.83")
Monitor-1: HDMI-1 res: 1920x1080 dpi: 70 size: 698x393mm (27.48x15.47")
diag: 801mm (31.54") modes: N/A
API: OpenGL v: 4.6.0 NVIDIA 530.41.03 renderer: NVIDIA GeForce RTX
2060/PCIe/SSE2 direct-render: Yes
Device-1: NVIDIA TU106 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel bus-ID: 1-9.4:6 v: kernel pcie: chip-ID: 03f0:0d8b
class-ID: 0300 gen: 3 speed: 8 GT/s serial: <filter> lanes: 16
bus-ID: 06:00.1 chip-ID: 10de:10f9 class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 08:00.4 chip-ID: 1022:1487 class-ID: 0403
Device-3: HP HyperX QuadCast S type: USB
driver: hid-generic,snd-usb-audio,usbhid
Device-4: Elgato Systems GmbH Game Capture HD60 S+ type: USB
driver: hid-generic,snd-usb-audio,usbhid,uvcvideo bus-ID: 5-1:2
chip-ID: 0fd9:006a class-ID: 0102 serial: <filter>
Sound API: ALSA v: k6.2.8-zen1-1-zen running: yes
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.67 running: yes
Device-1: Intel Ethernet I225-V vendor: ASUSTeK driver: igc v: kernel pcie:
gen: 2 speed: 5 GT/s lanes: 1 port: N/A bus-ID: 05:00.0 chip-ID: 8086:15f3
class-ID: 0200
IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-1: ASUSTek Broadcom BCM20702A0 Bluetooth type: USB driver: btusb
v: 0.8 bus-ID: 1-4.1:9 chip-ID: 0b05:17cb class-ID: fe01 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 1 state: up address: <filter>
Local Storage: total: 4.09 TiB used: 2.52 TiB (61.6%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 500GB
size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: SSD serial: <filter> rev: 4B6Q scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 860 EVO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: SSD serial: <filter> rev: 4B6Q scheme: GPT
ID-3: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DM006-2DM164
size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 7200 serial: <filter> rev: CC26 scheme: GPT
ID-1: / raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
used: 267.26 GiB (57.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
used: 267.26 GiB (57.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
used: 267.26 GiB (57.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 465.46 GiB size: 465.46 GiB (100.00%)
used: 267.26 GiB (57.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 31.25 GiB used: 140.5 MiB (0.4%)
priority: 100 dev: /dev/zram0
System Temperatures: cpu: 47.0 C mobo: N/A gpu: nvidia temp: 53 C
Fan Speeds (RPM): N/A gpu: nvidia fan: 0%
Processes: 406 Uptime: 3d 16h 32m wakeups: 700 Memory: 31.25 GiB
used: 12.12 GiB (38.8%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 Packages: 1466 pm: pacman pkgs: 1453
libs: 393 tools: octopi,paru pm: flatpak pkgs: 13 Shell: fish v: 3.6.1
default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.25
Garuda (2.6.16-1):
System install date:     2023-03-03
Last full system update: 2023-03-27 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:            grub-btrfs-snapper.path grub-btrfs-snapper.service

KDE is highly configurable, including workspace management so I think it is very likely there is a way to accomplish what you want.

It's not perfectly clear to me what you are describing though. This sentence is somewhat dizzying:

:face_with_spiral_eyes: There are a lot of "its" and I can't tell what they are referring to.

Can you describe what is happening another way? Perhaps you can upload an illustrative screenshot.


To be specific, if I have 4 workspaces, and I make a new workspace on MacOS,(Just using this as an example of the desired behavior,) and I want it to be workspace 1 instead of say Workspace 5, I can just go into the overview, click on it, and drag it to the 1 position making it Workspace 1. I can not find a way to do this in KDE.

Gotcha, that is clear enough.

First of all, there are tons and tons of workspace manipulation options available in KDE that are not even enabled by default. There isn't a realistic way to attach a keybinding to each possible option because there are too many, so they just sit there disabled unless you decide you want to add a keybinding to it.

Settings -> Shortcuts -> KWin and search for "desktop" (KDE calls workspaces "virtual desktops"), you'll see what I mean--there are probably sixty shortcuts in there, most of them not even active. If you see one that looks interesting, add a keybinding to it and try it out to see if you like what it does.

There are actually even more options than this for manipulating workspaces if you poke around, for example Window Management -> Task Switcher you can customize even more shortcuts for even more behaviors.

I think the feature closest to what you are describing is available in the "Desktop Grid" overview, which is enabled by default with the keybinding Meta+F8. Here, you can:

  • add or remove virtual desktops with the buttons in the corner;
  • drag a window from one workspace to another;
  • switch two workspaces with each other, by grabbing the actual desktop of the workspace (instead of a specific window), and dragging it to the desktop of another workspace.

It's easy to figure out how it works by just playing around with it for a second, but if you would like to see a demonstration, this person put together a little video clip for their Reddit post. In the video clip they demonstrate both dragging a window from one workspace to another, and swapping workspaces with each other by dragging desktop-to-desktop.


TIL how to mark a solution :smiley:

1 Like

This still doesn't do quite what I was looking for, but it's effectively close enough. Thank you.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.