Skip to content

peterfajdiga/karousel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Karousel

Scrollable tiling Kwin script. Works especially well with ultrawide screens. Use with this for animations.

demo.mp4

A scrollable tiling window manager tiles windows, but it does not maximize their widths. Instead, it leaves the width of windows to the user's control. Windows are automatically centered when possible. And when running out of width, windows can be scrolled through horizontally.

Similar window managers include PaperWM, Niri, and Cardboard.

Dependencies

Karousel requires the following QML modules:

  • QtQuick 6.0
  • org.kde.kwin 3.0
  • org.kde.notification 1.0

Limitations

  • Doesn't support multiple screens
  • Doesn't support windows on all desktops
  • Doesn't support windows on multiple activities

Installation

Download the latest release and extract it into ~/.local/share/kwin/scripts/.

Or clone the repo and run make install (requires node and tsc).

Key bindings

The key bindings can be configured in KDE System Settings among KWin's own keyboard shortcuts. Here's the default ones:

Shortcut Action
Meta+Space Toggle floating
Meta+A Move focus left
Meta+D Move focus right (Clashes with default KDE shortcuts, may require manual remapping)
Meta+W Move focus up (Clashes with default KDE shortcuts, may require manual remapping)
Meta+S Move focus down (Clashes with default KDE shortcuts, may require manual remapping)
(unassigned) Move focus to the next window in grid
(unassigned) Move focus to the previous window in grid
Meta+Home Move focus to start
Meta+End Move focus to end
Meta+Shift+A Move window left (Moves window out of and into columns)
Meta+Shift+D Move window right (Moves window out of and into columns)
Meta+Shift+W Move window up
Meta+Shift+S Move window down
(unassigned) Move window to the next position in grid
(unassigned) Move window to the previous position in grid
Meta+Shift+Home Move window to start
Meta+Shift+End Move window to end
Meta+X Toggle stacked layout for focused column (One window in the column visible, others shaded; not supported on Wayland)
Meta+Ctrl+Shift+A Move column left
Meta+Ctrl+Shift+D Move column right
Meta+Ctrl+Shift+Home Move column to start
Meta+Ctrl+Shift+End Move column to end
Meta+Ctrl++ Increase column width
Meta+Ctrl+- Decrease column width
Meta+R Cycle through preset column widths
Meta+Ctrl+X Equalize widths of visible columns
Meta+Ctrl+A Squeeze left column onto the screen (Clashes with default KDE shortcuts, may require manual remapping)
Meta+Ctrl+D Squeeze right column onto the screen
Meta+Alt+Return Center focused window (Scrolls so that the focused window is centered in the screen)
Meta+Alt+A Scroll one column to the left
Meta+Alt+D Scroll one column to the right
Meta+Alt+PgUp Scroll left
Meta+Alt+PgDown Scroll right
Meta+Alt+Home Scroll to start
Meta+Alt+End Scroll to end
Meta+Ctrl+Return Move Karousel grid to the current screen
Meta+[N] Move focus to column N (Clashes with default KDE shortcuts, may require manual remapping)
Meta+Shift+[N] Move window to column N (Requires manual remapping according to your keyboard layout, e.g. Meta+Shift+1 -> Meta+!)
Meta+Ctrl+Shift+[N] Move column to position N (Requires manual remapping according to your keyboard layout, e.g. Meta+Ctrl+Shift+1 -> Meta+Ctrl+!)
Meta+Ctrl+Shift+F[N] Move column to desktop N
Meta+Ctrl+Shift+Alt+F[N] Move this and all following columns to desktop N