Table of Contents

Introduction

Keybindings are fundamental to interacting with a tiling window manager like Hyprland. HyprL provides a well-thought-out set of default keybindings to enhance your workflow. This guide explains how these keybindings are structured, lists the most important ones, and shows you how to customize them.

Understanding Keybindings

Hyprland keybindings are defined in configuration files, primarily ~/.config/hypr/conf/keybindings/default.conf.

Keybinding Structure

A typical keybinding entry in Hyprland looks like this:

bind = $mainMod, Q, exec, ~/.config/hyprL/settings/terminal.sh

Let’s break this down:

  • bind: The command to define a keybinding.
  • $mainMod: A variable representing the main modifier key (usually the Super key, also known as the Windows key or Command key on macOS). This variable is defined at the top of the default.conf file.
  • Q: The actual key being pressed.
  • exec: The action to perform (in this case, execute a command).
  • ~/.config/hyprL/settings/terminal.sh: The command or script to execute when the key combination is pressed.

Common Modifiers

  • $mainMod (Super key / Windows key)
  • SHIFT
  • ALT
  • CTRL

These can be combined, for example: $mainMod SHIFT, Q.

Default Keybindings

Here are some of the most commonly used default keybindings in HyprL:

Application Launchers

  • $mainMod + Q: Open Terminal (Kitty)
  • $mainMod + Z: Open Browser
  • $mainMod + E: Open File Manager
  • $mainMod + Space: Open Application Launcher (Rofi)
  • $mainMod + P: Open Hyprpicker (color picker)

Window Management

  • $mainMod + C: Kill active window
  • $mainMod SHIFT + Q: Quit active window and all open instances
  • $mainMod + F: Toggle active window fullscreen
  • $mainMod + T: Toggle active window floating mode
  • $mainMod SHIFT + T: Toggle all windows floating mode
  • $mainMod + J: Toggle split (for master layout)
  • $mainMod + Left/Right/Up/Down: Move focus between windows
  • $mainMod + Mouse1 (Left Click): Move window (while holding mouse button)
  • $mainMod + Mouse2 (Right Click): Resize window (while holding mouse button)

Workspace Navigation

  • $mainMod + [1-0]: Switch to workspace 1-10
  • $mainMod SHIFT + [1-0]: Move active window to workspace 1-10
  • $mainMod + Tab: Switch to next workspace
  • $mainMod SHIFT + Tab: Switch to previous workspace
  • $mainMod + Scroll Up/Down: Switch workspaces with mouse scroll

System Actions

  • $mainMod CTRL + R: Reload Hyprland configuration
  • $mainMod SHIFT + A: Toggle animations
  • $mainMod + PRINT or $mainMod SHIFT + S: Take a screenshot
  • $mainMod CTRL + Q: Start wlogout (power menu)
  • $mainMod + L: Lock screen (Hyprlock)
  • $mainMod ALT + F4: Force shutdown (use with caution!)

Multimedia Keys

  • XF86MonBrightnessUp/Down: Adjust screen brightness
  • XF86AudioRaiseVolume/LowerVolume/Mute: Adjust audio volume
  • XF86AudioPlay/Pause/Next/Prev: Control media playback
  • XF86AudioMicMute: Toggle microphone mute

Customizing Keybindings

Editing default.conf

The easiest way to customize keybindings is to edit the ~/.config/hypr/conf/keybindings/default.conf file directly. You can open it with your preferred text editor (e.g., nvim ~/.config/hypr/conf/keybindings/default.conf).

After making changes, reload your Hyprland configuration for them to take effect:

hyprctl reload

Creating New Keybinding Presets

For more extensive changes or to create different keybinding sets, you can create new .conf files in ~/.config/hypr/conf/keybindings/ and then modify your main hyprland.conf to source your new file instead of default.conf.

Viewing All Keybindings

HyprL provides a convenient script to view all active keybindings in a Rofi menu. Simply press $mainMod CTRL + K or run the script from your terminal:

~/.config/hypr/scripts/keybindings.sh

This will display a searchable list of all configured keybindings and their associated actions.