A standalone workspace overview module for Hyprland using Quickshell - shows all workspaces with live window previews, drag-and-drop support, and Super+Tab keybind.
video.mp4
Workspace overview showing live window previews with drag-and-drop support
- ๐ผ๏ธ Visual workspace overview showing all workspaces and windows
- ๐ฏ Click windows to focus them
- ๐ฑ๏ธ Middle-click windows to close them
- ๐ Drag and drop windows between workspaces
- โจ๏ธ Keyboard navigation (Arrow keys, vim keys, number shortcuts)
- ๐ก Hover tooltips showing window information
- ๐จ Material Design 3 theming
- โก Smooth animations and transitions
- Hyprland compositor
- Quickshell (installation guide)
- Qt 6 with modules: QtQuick, QtQuick.Controls
-
Clone this repository to your Quickshell config directory:
git clone https://github.com/Shanu-Kumawat/quickshell-overview ~/.config/quickshell/overview -
Add keybind to your Hyprland config (
~/.config/hypr/hyprland.conf):bind = Super, TAB, exec, qs ipc -c overview call overview toggle -
Auto-start the overview (add to Hyprland config):
exec-once = qs -c overview -
Reload Hyprland:
hyprctl reload
qs -c overview &For NixOS users, ensure Quickshell has access to required Qt6 modules:
# In your configuration.nix or home-manager config
environment.systemPackages = with pkgs; [
quickshell
qt6.qtwayland
];If you're using home-manager:
home.packages = with pkgs; [
quickshell
qt6.qtwayland
];| Action | Description |
|---|---|
| Super + Tab | Toggle the overview |
| Arrow Keys | Navigate between workspaces |
| h / j / k / l | Vim-style navigation (left/down/up/right) |
| 1-9, 0 | Jump to Nth workspace in current group (0 = 10th) |
| Escape / Enter | Close the overview |
| Click workspace | Switch to that workspace |
| Click window | Focus that window |
| Middle-click window | Close that window |
| Drag window | Move window to different workspace |
โ ๏ธ Want to change the size, position, or number of workspaces?
Edit~/.config/quickshell/overview/common/Config.qml- it's all there!
Edit ~/.config/quickshell/overview/common/Config.qml:
property QtObject overview: QtObject {
property int rows: 2 // Number of workspace rows
property int columns: 5 // Number of workspace columns (10 total workspaces)
property real scale: 0.16 // Overview scale factor (0.1-0.3, smaller = more compact)
property bool enable: true
}Common adjustments:
- Too small? Increase
scale(try 0.20 or 0.25) - Too big? Decrease
scale(try 0.12 or 0.14) - More workspaces? Change
rowsandcolumns(e.g., 3 rows ร 4 columns = 12 workspaces)
Edit ~/.config/quickshell/overview/modules/overview/Overview.qml (line ~111):
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
topMargin: 100 // Change this value to move up/down
}Edit ~/.config/quickshell/overview/common/Appearance.qml to customize:
- Colors (m3colors and colors objects)
- Font families and sizes
- Animation curves and durations
- Border radius values
- add the below config to
config.tomlin matugen config
[templates.quickshell_overview]
input_path = "~/.config/matugen/templates/quickshell-overview.qml"
output_path = "~/.config/quickshell/overview/common/Appearance.colors.qml"- paste this matugen overview template into your
matugen/templates/folder - Now set the below show property to
trueincommon/Appearance.qml
property QtObject appearance: QtObject {
property bool useMatugenColors: false // change to true to use matugen colors
}- Hyprland compositor (tested on latest versions)
- Quickshell (Qt6-based shell framework)
- Qt 6 with the following modules:
- QtQuick
- QtQuick.Controls
- QtQuick.Layouts
- Quickshell.Wayland
- Quickshell.Hyprland
The following features were removed to make it standalone:
- App search functionality
- Emoji picker
- Clipboard history integration
- Search widget
- Integration with the full illogical-impulse shell ecosystem
~/.config/quickshell/overview/
โโโ shell.qml # Main entry point
โโโ README.md # This file
โโโ hyprland-config.conf # Configuration reference
โโโ common/
โ โโโ Appearance.qml # Theme and styling
โ โโโ Config.qml # Configuration options
โ โโโ functions/
โ โ โโโ ColorUtils.qml # Color manipulation utilities
โ โโโ widgets/
โ โโโ StyledText.qml # Styled text component
โ โโโ StyledRectangularShadow.qml
โ โโโ StyledToolTip.qml
โ โโโ StyledToolTipContent.qml
โโโ services/
โ โโโ GlobalStates.qml # Global state management
โ โโโ HyprlandData.qml # Hyprland data provider
โโโ modules/
โโโ overview/
โโโ Overview.qml # Main overview component
โโโ OverviewWidget.qml # Workspace grid widget
โโโ OverviewWindow.qml # Individual window preview
# Toggle overview
qs ipc -c overview call overview toggle
# Open overview
qs ipc -c overview call overview open
# Close overview
qs ipc -c overview call overview close- Window icons may fallback to generic icon if app class name doesn't match icon theme
- Potential crashes during rapid window state changes due to Wayland screencopy buffer management
Extracted from the overview feature in illogical-impulse by end-4.
Adapted as a standalone component for Hyprland + Quickshell users who want just the overview functionality.
Note: Maintenance will be limited due to time constraints, but PRs and code improvements are welcome! Feel free to contribute or fork for your own needs.
Made with โค๏ธ for the Hyprland community
