Skip to content

KDE with kwin tiling

Guillem Jara edited this page Jan 22, 2021 · 9 revisions

A KDE config that uses kwin-tiling / krohnite*, qdbus, and zsh for creating a config inspired in the shortcuts of macOS.

NOTE: Require to install following plugins


swipe:
  3:
    left:
      command: 'zsh -c "if xdotool getactivewindow getwindowname | grep Konsole; then xdotool key xdotool key shift+Left; else; xdotool key ctrl+shift+Tab; fi"' # Next tab. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
    right:
      command: 'zsh -c "if xdotool getactivewindow getwindowname | grep Konsole; then xdotool key xdotool key shift+Right; else; xdotool key ctrl+Tab; fi"' # Next tab. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
    up:
      command: 'zsh -c "if xdotool getactivewindow getwindowname | grep Konsole; then xdotool key ctrl+shift+t; else; xdotool key ctrl+t; fi"' # Open new tab. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
    down:
      command: 'zsh -c "if xdotool getactivewindow getwindowname | grep Konsole; then xdotool key ctrl+shift+w; else; xdotool key ctrl+w; fi"' # Close tab. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
  4:
    left:
      workspace: "prev" # Switch to previous workspace
      keypress:
        LEFTMETA:
          command: "xdotool key super+shift+H" # Move window to left side
    right:
      workspace: "next" # Switch to next workspace
      keypress:
        LEFTMETA:
          command: "xdotool key super+shift+L" # Move window to right side
    up:
      command: 'zsh -c "if qdbus org.kde.KWin /Effects activeEffects | grep kwin4_effect_windowaperture; then qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.toggleDashboard; else; qdbus org.kde.kglobalaccel /component/kwin invokeShortcut \ExposeAll; fi"' # If the desktop is being shown, we stop doing it, else we show all the windows. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
      keypress:
        LEFTMETA:
          command: "xdotool key super+shift+K" # Move window to upside
    down:
      command: 'zsh -c "if qdbus org.kde.KWin /Effects activeEffects | grep presentwindows; then qdbus org.kde.kglobalaccel /component/kwin invokeShortcut \ExposeAll; else; qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.toggleDashboard; fi"' # If we are on presentwindows, we stop it, else we show the desktop. MUST BE RUN WITH ZSH, HAS BUGS WITH BASH
      keypress:
        LEFTMETA:
          command: "xdotool key super+shift+J" # Move window to downside

pinch:
  2:
    in:
      command: "xdotool keydown ctrl click 4 keyup ctrl" # Zoom in
    out:
      command: "xdotool keydown ctrl click 5 keyup ctrl" # Zoom out

rotate:
  3:
    clockwise:
      command: "xdotool key alt+Left" # History forward
    counterclockwise:
      command: "xdotool key alt+Right" # History backward

tap:
  2:
    command: "xdotool key super" # Menu

hold:
  3:
    window: "next" # Move window to next workspace
  4:
    window: "close" # Close window

plugin:
  inputs:
    libinput_command_input: # options for lib/plugin/inputs/libinput_command_input
      enable-tap: true # click to tap
      enable-dwt: true # disable tap while typing
      show-keycodes: true # https://github.com/iberianpig/fusuma-plugin-keypress#add-show-keycode-option
      verbose: true

* krohnite has lower CPU usage and looks like is compatible with shortcuts of kwin-tiling, but has some bugs. I recommend kwin-tiling because the config was created and tested with it.