Omarchy Enhanced Bindings

August 24, 2025 ยท View on GitHub

Enhanced Hyprland keybindings for Omarchy that provide better workspace management for desktop users, numpad support, and smoother keybinds for serial workspace switchers.

๐Ÿš€ What's Enhanced

For Desktop & Numpad Users

  • Full Numpad Support: Use numpad 1-0 for workspace switching and window moving
  • Desktop-Optimized: Better keybinds for users with full keyboards (not just laptops)
  • Serial Workspace Switching: Smooth relative navigation for power users

Workspace Management

  • Relative Navigation: Navigate to next/previous/empty workspaces with intuitive shortcuts
  • Consistent Keybindings: Logical key combinations that work together
  • Smart Window Movement: Move windows between workspaces relative to current position

Application & Development

  • VSCode Cline Support: Proper key bindings for the Cline extension with X11 support
  • Quick App Launchers: Streamlined app shortcuts (removed web apps, added gaming/development)
  • Browser Configuration: Changed from Chromium to Brave with optimized settings
  • Optional Enhanced Nightlight: Richer 3000K orange tone (uses existing binding)

๐Ÿ“ฆ Installation

One-Line Install

bash <(curl -fsSL https://raw.githubusercontent.com/nemuiyarou/omarchy-enhanced-bindings/main/install.sh)

โš ๏ธ Security Note: Always inspect scripts before running them with bash <(curl ...). You can review the install script here or download it first to examine locally. If you're not comfortable reviewing bash scripts, ask for help on the Omarchy Discord or visit omarchy.org for further information.

Manual Install

  1. Clone this repository:

    git clone https://github.com/nemuiyarou/omarchy-enhanced-bindings.git
    cd omarchy-enhanced-bindings
    
  2. Make the installer executable (this step is not required for the one-line install):

    chmod +x install.sh
    
  3. Run the installer:

    ./install.sh
    

The installer will:

  • โœ… Check for Omarchy installation
  • โœ… Create automatic backups of your current configuration
  • โœ… Offer Overwrite or Merge for existing bindings.conf
  • โœ… Install enhanced tiling bindings with numpad support
  • โœ… Install additional app shortcuts (VSCode Cline, Neovim, etc.)
  • โœ… Ask about web app shortcuts (ChatGPT, Email, YouTube, etc.)
  • โœ… Offer optional enhanced nightlight (3000K richer orange)
  • โœ… Update your ~/.config/hypr/hyprland.conf appropriately
  • โœ… Preserve all original Omarchy defaults (respecting DHH's design)
  • โœ… Reload Hyprland configuration

๐ŸŽฏ Key Bindings Overview

Workspace Switching

ShortcutActionNotes
SUPER + 1-0Switch to workspace 1-10Standard number row
SUPER + Numpad 1-0Switch to workspace 1-10NEW: Numpad support
SUPER + CTRL + RightNext workspaceNEW: Relative navigation
SUPER + CTRL + LeftPrevious workspaceNEW: Relative navigation
SUPER + CTRL + DownEmpty workspaceNEW: Jump to empty

Window Management

ShortcutActionNotes
SUPER + QClose active windowENHANCED: Changed from Super+W
SUPER + WToggle floatingENHANCED: Replaces default Super+V
SUPER + ALT + ArrowsResize active windowENHANCED: More intuitive directional resizing
SUPER + CTRL + 1-0Move window to workspaceENHANCED: Modifier changed from SHIFT to CTRL
SUPER + CTRL + Numpad 1-0Move window to workspaceNEW: Numpad support
SUPER + CTRL ALT, Right/LeftMove window to next/prev workspaceNEW: Relative movement

Applications

ShortcutActionNotes
SUPER + ReturnTerminalQuick terminal access
SUPER + BBrowserLaunch default browser
SUPER + VVSCodeNEW: With Cline support
SUPER + MMusic (Spotify)Media player
SUPER + GGemini AINEW: AI assistant
SUPER + FFile ManagerNautilus file browser
SUPER + SSteamNEW: Gaming
SUPER + TActivity MonitorSystem monitor (btop)

System Controls

ShortcutActionNotes
SUPER + CTRL + NToggle nightlightENHANCED: Optional 3000K richer orange
SUPER + SPACEApp launcherWalker launcher
SUPER + ESCAPEPower menuSystem power options

๐Ÿ”ง Customization

The enhanced bindings are organized in your personal Hyprland config:

  • ~/.config/hypr/tiling.conf: This is the core file for window and workspace management. It includes all tiling, floating, focus, and workspace switching commands, now with numpad support and the Super+Q/Super+W changes.
  • ~/.config/hypr/bindings.conf: This file contains all your application-specific shortcuts, like launching the terminal, browser, VSCode, etc.
  • webapps.conf (Optional): If you choose to install them, the contents of this file are appended to your main bindings.conf. It contains DHH's original web application shortcuts (ChatGPT, YouTube, etc.).

This approach respects DHH's Omarchy architecture by:

  • ๐ŸŽฏ Keeping original Omarchy defaults untouched (media, utilities, etc.)
  • ๐ŸŽฏ Using the intended ~/.config/hypr/ override system
  • ๐ŸŽฏ Making upgrades and customizations safe and clean
  • ๐ŸŽฏ Only overriding what's actually enhanced

You can customize these files, and they won't be overwritten by Omarchy updates. The nightlight enhancement (if chosen) modifies the existing omarchy-toggle-nightlight script for a richer orange tone.

๐Ÿ”„ Backup & Restore

The installer automatically creates timestamped backups in:

~/.config/hypr/omarchy-enhanced-bindings.backup.YYYYMMDD_HHMMSS/

To restore original configuration:

# Find your backup
ls ~/.config/hypr/omarchy-enhanced-bindings.backup.*

# Use the uninstall script (recommended)
./uninstall.sh

# Or restore manually (replace TIMESTAMP with your backup timestamp)
cp -r ~/.config/hypr/omarchy-enhanced-bindings.backup.TIMESTAMP/* ~/.config/hypr/

# Reload Hyprland
hyprctl reload

Overwrite vs. Merge Installation

If you have an existing ~/.config/hypr/bindings.conf, the installer will prompt you to choose between two modes:

  • Overwrite (Default): This replaces your bindings.conf entirely. It's the recommended option for a clean installation that perfectly matches the features advertised here.
  • Merge: This intelligently combines the enhanced bindings with your existing ones. It will update any bindings that are part of this package and add any that are missing, while leaving your other custom bindings untouched.

โš ๏ธ A Note on Merging: The merge process is designed to be safe, but it will overwrite any of your custom bindings that use the same key combination as one of the enhanced bindings. For example, if you have SUPER + V mapped to your own custom script, the merge process will replace it with the enhanced binding for VSCode. Your other custom bindings will be preserved.

โš ๏ธ A Note on Uninstalling After a Merge: The uninstaller works by restoring the backup created during installation. If you choose to merge and then make additional changes to your bindings.conf, running the uninstaller will revert all changes made since the backup was created, including your own. For a clean uninstall, it's always safest to work from the backup.

๐Ÿงช Testing & Validation

The package includes a comprehensive test script to validate installation integrity:

# Run all validation tests
./test.sh

The test script validates:

  • โœ… Package Structure: All required files are present
  • โœ… File Permissions: Scripts are executable
  • โœ… Binding Syntax: Configuration files are valid
  • โœ… Key Conflicts: No problematic duplicate bindings
  • โœ… Enhanced Features: All advertised features are present
  • โœ… Installation Logic: Install script functions work correctly
  • โœ… Documentation: README matches actual features

When to run tests:

  • Before installation (verify package integrity)
  • After making custom modifications
  • When troubleshooting issues
  • Before contributing changes

๐Ÿ› Troubleshooting

Bindings Not Working

  1. Ensure Hyprland is reloaded: hyprctl reload
  2. Check for conflicts: hyprctl binds
  3. Restart Hyprland session

VSCode Cline Issues

The enhanced bindings include specific support for the Cline extension with X11 mode:

# VSCode launched with X11 support for proper Cline integration
bindd = SUPER, V, VSCode, exec, env ELECTRON_OZONE_PLATFORM_HINT=x11 code --ozone-platform=x11

# Key passing for Cline extension (requires X11 mode)
bind = , Shift_L, pass, ^(code)$
bind = SHIFT, mouse:272, pass, ^(code)$
bind = SHIFT, mouse:273, pass, ^(code)$

Why X11 mode? VSCode's Wayland support has Electron bugs that prevent proper shift+drag functionality required by Cline. The X11 mode enables the passthrough that allows Cline to accept shift+drag operations correctly.

Browser Configuration

The enhanced bindings use Brave instead of Chromium:

$browser = uwsm app -- brave --password-store=basic

To change your browser: Edit ~/.config/hypr/bindings.conf and modify the $browser variable:

# For Firefox
$browser = uwsm app -- firefox --new-window

# For Chromium (original Omarchy default)  
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland

# For other browsers
$browser = uwsm app -- your-browser-here

Hyprland Configuration

The installer modifies your ~/.config/hypr/hyprland.conf to ensure the new bindings are loaded. Specifically, it looks for the line that sources the default Omarchy tiling bindings and replaces it:

  • It finds: source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf (even if commented out or with extra spaces).
  • It replaces it with: source = ~/.config/hypr/tiling.conf

If the script fails to update your configuration, you can perform this change manually. This ensures that you load the enhanced tiling bindings while still inheriting all other Omarchy defaults like media and utility keybindings.

Numpad Not Working

Ensure Num Lock is enabled. The bindings use these numpad key names:

  • KP_End (1), KP_Down (2), KP_Next (3)
  • KP_Left (4), KP_Begin (5), KP_Right (6)
  • KP_Home (7), KP_Up (8), KP_Prior (9), KP_Insert (0)

๐Ÿ“ What's Different from Default Omarchy

Application Changes

BindingOriginal OmarchyEnhanced Version
SUPER + GSignalโœ… Gemini AI
SUPER + VNot assignedโœ… VSCode (X11 + Cline support)
SUPER + SNot assignedโœ… Steam
SUPER + DDocker (lazydocker)โŒ Removed
SUPER + /1PasswordโŒ Removed
BrowserChromium (Wayland)โœ… Brave (password-store=basic)
Web Apps9 web app shortcutsโŒ Removed (A, C, E, Y, X, etc.)

Workspace & System Features

FeatureDefault OmarchyEnhanced Version
Numpad supportโŒโœ… Full numpad workspace control
Relative workspace navโŒโœ… Next/prev/empty workspace shortcuts
VSCode Cline supportโŒโœ… Proper key passing for Cline extension
Nightlight temperature4000Kโœ… Optional 3000K richer orange
Relative window movingโŒโœ… Move windows to next/prev workspace

Web Apps Removal

Removed by default: ChatGPT, Grok, Calendar, Email, YouTube, WhatsApp, Google Messages, X/Twitter

Installation Choice: The installer will ask if you want to include DHH's original web app shortcuts. This gives you the best of both worlds:

  • Desktop-focused (default): Clean, streamlined app shortcuts
  • Hybrid approach: Desktop apps + DHH's web apps if you choose

Important: If you later remove web apps via SUPER + ALT + SPACE (Omarchy menu), the keybindings will remain. To fully remove them, edit ~/.config/hypr/bindings.conf and delete the web app entries, then run hyprctl reload.

๐ŸŽฏ Target Users

This package is perfect for:

  • Desktop users with full keyboards and numpads
  • Serial workspace switchers who frequently navigate between workspaces
  • Developers using VSCode with the Cline extension
  • Power users who want smoother, more logical (Sorry DHH) keybindings
  • Anyone who finds the default laptop-optimized bindings limiting

๐Ÿ™ Credits

  • Claude: For writing such verbose and overly friendly documentation
  • Vaxry: For the amazing Wayland compositor (May you find a wife soon)
  • Gemini: For cleaning up Claude's mess

Happy workspace switching! ๐Ÿš€