Initial commit.

This commit is contained in:
Edward Betts 2025-02-24 15:23:59 -05:00
commit 6c44439057
2 changed files with 85 additions and 0 deletions

80
docs/index.md Normal file
View file

@ -0,0 +1,80 @@
# Sway Keyboard Shortcuts
This document outlines the keyboard shortcuts configured for my Sway window manager setup, as defined in `~/.config/sway/config`. Sway is a tiling Wayland compositor, and this configuration uses the **Windows (Super) key** as the primary modifier (`$mod` set to `Mod4`). The shortcuts are tailored to my workflow, with custom bindings for navigation, window management, and system controls.
The configuration uses Vim-inspired home row keys (`h`, `j`, `k`, `l`) for movement, and includes unique bindings like `$mod+Shift+x` for forcefully killing a focused process. See the sections below for details.
## Key Bindings
Below is a comprehensive list of keyboard shortcuts. The **Super** key (referred to as `$mod`) is the primary modifier unless otherwise noted.
| Shortcut | Action | Notes |
|-----------------------|---------------------------------------------|----------------------------------------------------------------------|
| **Super + Return** | Open terminal (`kitty`) | Launches my preferred terminal emulator. |
| **Super + Shift + q** | Kill focused window | Closes the currently focused window. |
| **Super + d** | Open application launcher (`wofi`) | Displays a minimal launcher with 5 lines. |
| **Super + Shift + c** | Reload Sway configuration | Reloads the config file without restarting Sway. |
| **Super + Shift + e** | Exit Sway with confirmation | Prompts to confirm logout of the Wayland session. |
| **Super + h/j/k/l** | Focus left/down/up/right | Vim-inspired navigation for moving focus between windows. |
| **Super + Left/Down/Up/Right** | Focus left/down/up/right | Alternative arrow key bindings for focus movement. |
| **Super + Shift + h/j/k/l** | Move window left/down/up/right | Moves the focused window in the specified direction. |
| **Super + Shift + Left/Down/Up/Right** | Move window left/down/up/right | Arrow key alternative for window movement. |
| **Super + 1-0** | Switch to workspace 1-10 | Number keys select workspaces. |
| **Super + Shift + 1-0** | Move container to workspace 1-10 | Moves the focused window to the specified workspace. |
| **Super + b** | Split container horizontally | Also bound to `Super + h` for convenience. |
| **Super + v** | Split container vertically | Creates a vertical split for the focused container. |
| **Super + s** | Set layout to stacking | Switches to stacking layout mode. |
| **Super + w** | Set layout to tabbed | Switches to tabbed layout mode (default for new workspaces). |
| **Super + e** | Toggle split layout | Toggles between horizontal and vertical split layouts. |
| **Super + f** | Toggle fullscreen | Makes the focused window fullscreen. |
| **Super + Shift + Space** | Toggle floating mode | Switches the focused window between tiling and floating. |
| **Super + Space** | Swap focus between tiling/floating | Toggles focus between tiling and floating areas. |
| **Super + a** | Focus parent container | Moves focus to the parent container of the current window. |
| **Super + Shift + minus** | Move window to scratchpad | Sends the focused window to the scratchpad. |
| **Super + minus** | Show/hide scratchpad window | Cycles through scratchpad windows or hides the current one. |
| **Super + Shift + s** | Toggle sticky mode | Makes the focused window sticky (stays visible across workspaces). |
| **Super + Shift + x** | Force kill focused process (`kill -9`) | Custom binding to terminate the focused windows process forcefully. |
| **Super + Shift + p** | Suspend system | Puts the system into suspend mode (locked). |
| **Super + Shift + u** | Move workspace to DP-3 output | Moves the current workspace to the DP-3 display. |
| **Super + Shift + o** | Lock screen (`run_swaylock`) | Runs a custom lock script located at `~/bin/run_swaylock`. |
| **Super + Shift + r** | Turn all outputs on (DPMS on) | Forces all displays to wake up. |
| **Super + Shift + f** | Turn all outputs off (DPMS off) | Turns off all displays (power saving). |
| **Super + c** | Open Qalculate calculator | Launches the `qalculate-gtk` application (floating). |
| **Super + p** | Open Pavucontrol | Launches the `pavucontrol` audio mixer (floating). |
| **Super + r** | Enter resize mode | Activates resize mode (see below for controls). |
| **XF86AudioRaiseVolume** | Increase volume (+10%) | Adjusts volume and displays it via `wob`. |
| **XF86AudioLowerVolume** | Decrease volume (-10%) | Adjusts volume and displays it via `wob`. |
| **XF86AudioMute** | Toggle mute | Mutes/unmutes the default sink, updates `wob`. |
| **XF86AudioMicMute** | Toggle microphone mute | Mutes/unmutes the default audio source. |
| **XF86MonBrightnessUp** | Increase brightness (+5%) | Adjusts screen brightness and shows level via `wob`. |
| **XF86MonBrightnessDown** | Decrease brightness (-5%) | Adjusts screen brightness and shows level via `wob`. |
| **XF86Display** | Toggle display configuration | Runs a custom script (`~/src/screen-change/toggle.py`). |
### Resize Mode
When in resize mode (`Super + r`), the following bindings are active:
| Shortcut | Action |
|---------------|----------------------------|
| **h / Left** | Shrink width by 10px |
| **j / Down** | Grow height by 10px |
| **k / Up** | Shrink height by 10px |
| **l / Right** | Grow width by 10px |
| **Return** | Exit resize mode |
| **Escape** | Exit resize mode |
## Custom Configuration Highlights
- **Modifier Key**: The `$mod` key is set to `Mod4` (Super/Windows key), aligning with a modern workflow.
- **Vim-Inspired Navigation**: Movement keys (`h`, `j`, `k`, `l`) replace traditional arrow keys for focus and window movement, reflecting my preference for Vim-style controls.
- **Force Kill Binding**: `Super + Shift + x` is a standout custom binding that uses `swaymsg` and `jq` to identify and terminate the focused windows process with `kill -9`. This is particularly useful for unresponsive applications.
- **Display and Power Management**: Shortcuts like `Super + Shift + r` (DPMS on) and `Super + Shift + f` (DPMS off) provide quick control over display power states.
- **Audio and Brightness**: Media keys integrate with `pactl` and `brightnessctl`, piping feedback to `wob` for an on-screen overlay, enhancing usability.
- **Workspace Layout**: The default workspace layout is `tabbed`, which differs from Sways typical tiling default, reflecting my preference for tabbed browsing-like behavior.
## Additional Notes
- **Floating Windows**: Specific applications (e.g., `pavucontrol`, `qalculate-gtk`) are set to float by default with a 4px border for better usability.
- **Idle Behavior**: After 300 seconds of inactivity, the screen locks with `run_swaylock`. After 600 seconds, displays turn off (DPMS off), resuming when activity is detected.
- **Font**: The UI uses `DejaVu Sans Mono 11` for a clean, monospaced look.
For further details, refer to the full configuration file at `~/.config/sway/config`.

5
mkdocs.yml Normal file
View file

@ -0,0 +1,5 @@
# mkdocs.yml
# Project information
site_name: Sway Configuration Docs
site_description: Documentation for my custom Sway window manager keyboard shortcuts and configuration