chore: align IaC with today's package installs + PDF comparison docs
DevOps sync (2026-05-21): - Remove onlyoffice-desktopeditors from absent list (actively used) - Add gnome-keyring, rbw to common role (secrets migration) - Add perl-image-exiftool, icoutils, innoextract-git to dev-tools (Windows installer inspection) - Create fonts role: Inter, Cascadia Code, Fira, Source Sans, TeX Gyre - Create pdf role: zathura, zathura-pdf-mupdf, python-weasyprint - Register new roles in workstation.yml PDF comparison: - Add pdf-comparison docs with Quarto/Typst/Pandoc outputs - Add batch-pdf.sh script - Update yazi-cheatsheet.md - Ignore .quarto/ cache
This commit is contained in:
@@ -0,0 +1 @@
|
||||
/.quarto/
|
||||
@@ -0,0 +1,14 @@
|
||||
format:
|
||||
typst-pdf:
|
||||
default: true
|
||||
toc: false
|
||||
number-sections: true
|
||||
mainfont: "Inter"
|
||||
monofont: "JetBrains Mono"
|
||||
fontsize: 9pt
|
||||
papersize: a4
|
||||
margin:
|
||||
top: 1.2cm
|
||||
bottom: 1.2cm
|
||||
left: 1.5cm
|
||||
right: 1.5cm
|
||||
@@ -0,0 +1,128 @@
|
||||
/* Cheatsheet CSS for Markdown → HTML → PDF via WeasyPrint */
|
||||
/* Clean, professional tables with Inter + JetBrains Mono */
|
||||
|
||||
@page {
|
||||
size: a4 portrait;
|
||||
margin: 10mm 14mm 10mm 14mm;
|
||||
@bottom-center {
|
||||
content: "Seite " counter(page);
|
||||
font-size: 7pt;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
* { margin-top: 0; }
|
||||
|
||||
body {
|
||||
font-family: "Inter", "DejaVu Sans", sans-serif;
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 14pt;
|
||||
font-weight: 700;
|
||||
margin-bottom: 4pt;
|
||||
padding-bottom: 4pt;
|
||||
border-bottom: 1.5pt solid #111;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.5pt;
|
||||
font-weight: 700;
|
||||
margin: 10pt 0 4pt 0;
|
||||
color: #003366;
|
||||
border-bottom: 0.5pt solid #ccc;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 9pt;
|
||||
font-weight: 600;
|
||||
margin: 6pt 0 2pt 0;
|
||||
color: #003366;
|
||||
}
|
||||
|
||||
p { margin: 2pt 0; }
|
||||
|
||||
/* ---- Tables: clean reference style ---- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 2pt 0 6pt 0;
|
||||
font-size: 8pt;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
th {
|
||||
background: #f0f4f8;
|
||||
font-weight: 700;
|
||||
font-size: 7.5pt;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
color: #003366;
|
||||
padding: 3pt 5pt;
|
||||
border: none;
|
||||
border-bottom: 1pt solid #0066cc;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 2pt 5pt;
|
||||
border: none;
|
||||
border-bottom: 0.5pt solid #e4e4e4;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) td {
|
||||
background: #f7f9fb;
|
||||
}
|
||||
|
||||
tbody tr:last-child td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* ---- Code / key rendering ---- */
|
||||
code, kbd {
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
font-size: 8pt;
|
||||
background: #f5f5f5;
|
||||
padding: 1pt 3pt;
|
||||
border-radius: 2pt;
|
||||
border: 0.5pt solid #ddd;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
font-size: 7.5pt;
|
||||
background: #f5f5f5;
|
||||
padding: 4pt 6pt;
|
||||
border-radius: 3pt;
|
||||
border: 0.5pt solid #ddd;
|
||||
page-break-inside: avoid;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
/* ---- Two-column cheatsheet layout ---- */
|
||||
.twocol {
|
||||
column-count: 2;
|
||||
column-gap: 14pt;
|
||||
}
|
||||
|
||||
.twocol h2 {
|
||||
break-before: column;
|
||||
column-break-before: always;
|
||||
}
|
||||
|
||||
.twocol h2:first-child {
|
||||
break-before: avoid;
|
||||
column-break-before: avoid;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 0.5pt solid #ddd;
|
||||
margin: 6pt 0;
|
||||
}
|
||||
|
||||
a { color: #0066cc; text-decoration: none; }
|
||||
@@ -0,0 +1,126 @@
|
||||
---
|
||||
title: "Hyprland Keybindings Cheatsheet"
|
||||
author: "mw-pfeddersheim-workstation"
|
||||
date: "May 2026"
|
||||
---
|
||||
|
||||
# Hyprland Keybindings — Full Cheatsheet
|
||||
|
||||
**Layout:** German (de) | **Mod key:** SUPER (Windows key) | **Source:** `hyprctl binds` live
|
||||
|
||||
---
|
||||
|
||||
## General
|
||||
|
||||
| Shortcut | Action | Details |
|
||||
|----------|--------|---------|
|
||||
| `SUPER+Q` | Open terminal | kitty |
|
||||
| `SUPER+C` | Kill active window | killactive |
|
||||
| `SUPER+M` | Exit Hyprland | exit |
|
||||
| `SUPER+E` | File manager | dolphin |
|
||||
| `SUPER+V` | Toggle floating | togglefloating |
|
||||
| `SUPER+D` | App launcher | hyprlauncher |
|
||||
| `SUPER+P` | Toggle pseudo-split | pseudo |
|
||||
| `SUPER+J` | Toggle split direction | layoutmsg togglesplit |
|
||||
| `SUPER+F` | Toggle fullscreen | fullscreen 0 |
|
||||
| `SUPER+R` | Reload config | hyprctl reload |
|
||||
| `SUPER+SPACE` | Toggle float (popup) | togglefloating |
|
||||
| `SUPER+TAB` | Cycle next window | cyclenext |
|
||||
| `SUPER+SHIFT+TAB` | Cycle previous window | cyclenext prev |
|
||||
| `SUPER+` `` ` `` (Grave) | Toggle scratchpad | togglespecialworkspace |
|
||||
| `SUPER+SHIFT+` `` ` `` | Send window to scratchpad | movetoworkspace special |
|
||||
| `SUPER+CTRL+K` | Keybind cheat menu | *(broken — pipelines to grep+fuzzel)* |
|
||||
| `SUPER+CTRL+L` | Lock screen | hyprlock |
|
||||
| `SUPER+B` | Web browser | google-chrome-stable |
|
||||
|
||||
## Navigation / Focus
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+TAB` | Cycle next window |
|
||||
| `SUPER+SHIFT+TAB` | Cycle previous window |
|
||||
| `SUPER+H` | Move focus left |
|
||||
| `SUPER+L` | Move focus right |
|
||||
| `SUPER+left arrow` | Move focus left |
|
||||
| `SUPER+right arrow` | Move focus right |
|
||||
| `SUPER+up arrow` | Move focus up |
|
||||
| `SUPER+down arrow` | Move focus down |
|
||||
|
||||
## Window Movement
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+SHIFT+H` | Move window left |
|
||||
| `SUPER+SHIFT+L` | Move window right |
|
||||
| `SUPER+SHIFT+K` | Move window up |
|
||||
| `SUPER+SHIFT+J` | Move window down |
|
||||
| `SUPER+SHIFT+left` | Move window left |
|
||||
| `SUPER+SHIFT+right` | Move window right |
|
||||
| `SUPER+SHIFT+up` | Move window up |
|
||||
| `SUPER+SHIFT+down` | Move window down |
|
||||
|
||||
## Window Resize
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+ALT+H` | Resize active: width -40 |
|
||||
| `SUPER+ALT+L` | Resize active: width +40 |
|
||||
| `SUPER+ALT+K` | Resize active: height -40 |
|
||||
| `SUPER+ALT+J` | Resize active: height +40 |
|
||||
|
||||
## Screenshots
|
||||
|
||||
| Shortcut | Action | Tool |
|
||||
|----------|--------|------|
|
||||
| `Print` | Area select → save + copy | grimblast copysave area |
|
||||
| `SUPER+Print` | Active window → save + copy | grimblast copysave active |
|
||||
| `SUPER+SHIFT+Print` | Full monitor → save + copy | grimblast copysave output |
|
||||
| `SUPER+ALT+Print` | Area select → annotate | grim | slurp | satty |
|
||||
|
||||
## Workspaces
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+1..9` | Switch to workspace 1-9 |
|
||||
| `SUPER+SHIFT+1..9` | Move active window to workspace 1-9 |
|
||||
| `SUPER+` `` ` `` | Toggle scratchpad (togglespecialworkspace) |
|
||||
| `SUPER+SHIFT+` `` ` `` | Move to scratchpad (movetoworkspace special) |
|
||||
|
||||
### Workspace Layout
|
||||
|
||||
| Workspace | Monitor | Position |
|
||||
|-----------|---------|----------|
|
||||
| 1 | DP-1 (TERRA 3280W) | Left, 2560x1440@144 |
|
||||
| 2 | DVI-D-1 (BenQ BL2405) | Center, 1920x1080@60 rotated 90deg |
|
||||
| 3 | HDMI-A-1 (TERRA 3280W) | Right, 2560x1440@144 |
|
||||
|
||||
## Notes
|
||||
|
||||
- `SUPER+CTRL+K` (keybind menu) does **not work** — the `sed` pipeline breaks. Needs fix.
|
||||
- The `sed` pipeline `sed 's/^bind\s*=\s*\$mainMod/SUPER/;s/\s*#/#/'` fails silently because the unescaped `$` in the `sed` command gets interpreted as a variable.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Check |
|
||||
|-------|-------|
|
||||
| Print key not working | `hyprctl binds | grep Print` |
|
||||
| `SUPER+R` not working | `hyprctl binds | grep 'reload'` |
|
||||
| Screenshots fail | `which grimblast satty slurp grim` |
|
||||
| Clipboard empty | `echo test | wl-copy && wl-paste` |
|
||||
|
||||
## Satty Editor Shortcuts
|
||||
|
||||
| Action | Shortcut |
|
||||
|--------|----------|
|
||||
| Freehand | F |
|
||||
| Rectangle | R |
|
||||
| Ellipse | E |
|
||||
| Line/Arrow | L |
|
||||
| Text | T |
|
||||
| Blur | B |
|
||||
| Crop | C |
|
||||
| Undo | Ctrl+Z |
|
||||
| Redo | Ctrl+Shift+Z |
|
||||
| Copy | Ctrl+C |
|
||||
| Save | Ctrl+S |
|
||||
| Quit | Esc or Ctrl+Q |
|
||||
@@ -0,0 +1,200 @@
|
||||
#set document(title: "Hyprland Keybindings - Pandoc")
|
||||
#set text(font: ("Inter", "DejaVu Sans"), size: 9pt, lang: "de")
|
||||
#set page(paper: "a4", margin: 1.2cm)
|
||||
#set heading(numbering: "1.")
|
||||
#set par(leading: 0.45em)
|
||||
#show link: set text(navy)
|
||||
#let horizontalrule = h(25%) + line(stroke: 0.5pt, length: 50%)
|
||||
= Hyprland Keybindings --- Full Cheatsheet
|
||||
<hyprland-keybindings-full-cheatsheet>
|
||||
#strong[Layout:] German (de) | #strong[Mod key:] SUPER (Windows key) |
|
||||
#strong[Source:] `hyprctl binds` live
|
||||
|
||||
#horizontalrule
|
||||
|
||||
== General
|
||||
<general>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (37.04%, 29.63%, 33.33%),
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Shortcut], [Action], [Details],),
|
||||
table.hline(),
|
||||
[`SUPER+Q`], [Open terminal], [kitty],
|
||||
[`SUPER+C`], [Kill active window], [killactive],
|
||||
[`SUPER+M`], [Exit Hyprland], [exit],
|
||||
[`SUPER+E`], [File manager], [dolphin],
|
||||
[`SUPER+V`], [Toggle floating], [togglefloating],
|
||||
[`SUPER+D`], [App launcher], [hyprlauncher],
|
||||
[`SUPER+P`], [Toggle pseudo-split], [pseudo],
|
||||
[`SUPER+J`], [Toggle split direction], [layoutmsg togglesplit],
|
||||
[`SUPER+F`], [Toggle fullscreen], [fullscreen 0],
|
||||
[`SUPER+R`], [Reload config], [hyprctl reload],
|
||||
[`SUPER+SPACE`], [Toggle float (popup)], [togglefloating],
|
||||
[`SUPER+TAB`], [Cycle next window], [cyclenext],
|
||||
[`SUPER+SHIFT+TAB`], [Cycle previous window], [cyclenext prev],
|
||||
[`SUPER+` #raw("`") (Grave)], [Toggle
|
||||
scratchpad], [togglespecialworkspace],
|
||||
[`SUPER+SHIFT+` #raw("`");], [Send window to
|
||||
scratchpad], [movetoworkspace special],
|
||||
[`SUPER+CTRL+K`], [Keybind cheat menu], [#emph[(broken --- pipelines
|
||||
to grep+fuzzel)];],
|
||||
[`SUPER+CTRL+L`], [Lock screen], [hyprlock],
|
||||
[`SUPER+B`], [Web browser], [google-chrome-stable],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Navigation / Focus
|
||||
<navigation-focus>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+TAB`], [Cycle next window],
|
||||
[`SUPER+SHIFT+TAB`], [Cycle previous window],
|
||||
[`SUPER+H`], [Move focus left],
|
||||
[`SUPER+L`], [Move focus right],
|
||||
[`SUPER+left arrow`], [Move focus left],
|
||||
[`SUPER+right arrow`], [Move focus right],
|
||||
[`SUPER+up arrow`], [Move focus up],
|
||||
[`SUPER+down arrow`], [Move focus down],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Window Movement
|
||||
<window-movement>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+SHIFT+H`], [Move window left],
|
||||
[`SUPER+SHIFT+L`], [Move window right],
|
||||
[`SUPER+SHIFT+K`], [Move window up],
|
||||
[`SUPER+SHIFT+J`], [Move window down],
|
||||
[`SUPER+SHIFT+left`], [Move window left],
|
||||
[`SUPER+SHIFT+right`], [Move window right],
|
||||
[`SUPER+SHIFT+up`], [Move window up],
|
||||
[`SUPER+SHIFT+down`], [Move window down],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Window Resize
|
||||
<window-resize>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+ALT+H`], [Resize active: width -40],
|
||||
[`SUPER+ALT+L`], [Resize active: width +40],
|
||||
[`SUPER+ALT+K`], [Resize active: height -40],
|
||||
[`SUPER+ALT+J`], [Resize active: height +40],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Screenshots
|
||||
<screenshots>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (41.67%, 33.33%, 25%),
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Shortcut], [Action], [Tool],),
|
||||
table.hline(),
|
||||
[`Print`], [Area select → save + copy], [grimblast copysave area],
|
||||
[`SUPER+Print`], [Active window → save + copy], [grimblast copysave
|
||||
active],
|
||||
[`SUPER+SHIFT+Print`], [Full monitor → save + copy], [grimblast
|
||||
copysave output],
|
||||
[`SUPER+ALT+Print`], [Area select → annotate], [grim],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Workspaces
|
||||
<workspaces>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (55.56%, 44.44%),
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+1..9`], [Switch to workspace 1-9],
|
||||
[`SUPER+SHIFT+1..9`], [Move active window to workspace 1-9],
|
||||
[`SUPER+` #raw("`");], [Toggle scratchpad (togglespecialworkspace)],
|
||||
[`SUPER+SHIFT+` #raw("`");], [Move to scratchpad (movetoworkspace
|
||||
special)],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
=== Workspace Layout
|
||||
<workspace-layout>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 3,
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Workspace], [Monitor], [Position],),
|
||||
table.hline(),
|
||||
[1], [DP-1 (TERRA 3280W)], [Left, 2560x1440\@144],
|
||||
[2], [DVI-D-1 (BenQ BL2405)], [Center, 1920x1080\@60 rotated 90deg],
|
||||
[3], [HDMI-A-1 (TERRA 3280W)], [Right, 2560x1440\@144],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Notes
|
||||
<notes>
|
||||
- `SUPER+CTRL+K` (keybind menu) does #strong[not work] --- the `sed`
|
||||
pipeline breaks. Needs fix.
|
||||
- The `sed` pipeline `sed 's/^bind\s*=\s*\$mainMod/SUPER/;s/\s*#/#/'`
|
||||
fails silently because the unescaped `$` in the `sed` command gets
|
||||
interpreted as a variable.
|
||||
|
||||
== Troubleshooting
|
||||
<troubleshooting>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Issue], [Check],),
|
||||
table.hline(),
|
||||
[Print key not working], [`hyprctl binds | grep Print`],
|
||||
[`SUPER+R` not working], [`hyprctl binds | grep 'reload'`],
|
||||
[Screenshots fail], [`which grimblast satty slurp grim`],
|
||||
[Clipboard empty], [`echo test | wl-copy && wl-paste`],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Satty Editor Shortcuts
|
||||
<satty-editor-shortcuts>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Action], [Shortcut],),
|
||||
table.hline(),
|
||||
[Freehand], [F],
|
||||
[Rectangle], [R],
|
||||
[Ellipse], [E],
|
||||
[Line/Arrow], [L],
|
||||
[Text], [T],
|
||||
[Blur], [B],
|
||||
[Crop], [C],
|
||||
[Undo], [Ctrl+Z],
|
||||
[Redo], [Ctrl+Shift+Z],
|
||||
[Copy], [Ctrl+C],
|
||||
[Save], [Ctrl+S],
|
||||
[Quit], [Esc or Ctrl+Q],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,193 @@
|
||||
= Hyprland Keybindings --- Full Cheatsheet
|
||||
<hyprland-keybindings-full-cheatsheet>
|
||||
#strong[Layout:] German (de) | #strong[Mod key:] SUPER (Windows key) |
|
||||
#strong[Source:] `hyprctl binds` live
|
||||
|
||||
#horizontalrule
|
||||
|
||||
== General
|
||||
<general>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (37.04%, 29.63%, 33.33%),
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Shortcut], [Action], [Details],),
|
||||
table.hline(),
|
||||
[`SUPER+Q`], [Open terminal], [kitty],
|
||||
[`SUPER+C`], [Kill active window], [killactive],
|
||||
[`SUPER+M`], [Exit Hyprland], [exit],
|
||||
[`SUPER+E`], [File manager], [dolphin],
|
||||
[`SUPER+V`], [Toggle floating], [togglefloating],
|
||||
[`SUPER+D`], [App launcher], [hyprlauncher],
|
||||
[`SUPER+P`], [Toggle pseudo-split], [pseudo],
|
||||
[`SUPER+J`], [Toggle split direction], [layoutmsg togglesplit],
|
||||
[`SUPER+F`], [Toggle fullscreen], [fullscreen 0],
|
||||
[`SUPER+R`], [Reload config], [hyprctl reload],
|
||||
[`SUPER+SPACE`], [Toggle float (popup)], [togglefloating],
|
||||
[`SUPER+TAB`], [Cycle next window], [cyclenext],
|
||||
[`SUPER+SHIFT+TAB`], [Cycle previous window], [cyclenext prev],
|
||||
[`SUPER+` #raw("`") (Grave)], [Toggle
|
||||
scratchpad], [togglespecialworkspace],
|
||||
[`SUPER+SHIFT+` #raw("`");], [Send window to
|
||||
scratchpad], [movetoworkspace special],
|
||||
[`SUPER+CTRL+K`], [Keybind cheat menu], [#emph[(broken --- pipelines
|
||||
to grep+fuzzel)];],
|
||||
[`SUPER+CTRL+L`], [Lock screen], [hyprlock],
|
||||
[`SUPER+B`], [Web browser], [google-chrome-stable],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Navigation / Focus
|
||||
<navigation-focus>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+TAB`], [Cycle next window],
|
||||
[`SUPER+SHIFT+TAB`], [Cycle previous window],
|
||||
[`SUPER+H`], [Move focus left],
|
||||
[`SUPER+L`], [Move focus right],
|
||||
[`SUPER+left arrow`], [Move focus left],
|
||||
[`SUPER+right arrow`], [Move focus right],
|
||||
[`SUPER+up arrow`], [Move focus up],
|
||||
[`SUPER+down arrow`], [Move focus down],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Window Movement
|
||||
<window-movement>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+SHIFT+H`], [Move window left],
|
||||
[`SUPER+SHIFT+L`], [Move window right],
|
||||
[`SUPER+SHIFT+K`], [Move window up],
|
||||
[`SUPER+SHIFT+J`], [Move window down],
|
||||
[`SUPER+SHIFT+left`], [Move window left],
|
||||
[`SUPER+SHIFT+right`], [Move window right],
|
||||
[`SUPER+SHIFT+up`], [Move window up],
|
||||
[`SUPER+SHIFT+down`], [Move window down],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Window Resize
|
||||
<window-resize>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+ALT+H`], [Resize active: width -40],
|
||||
[`SUPER+ALT+L`], [Resize active: width +40],
|
||||
[`SUPER+ALT+K`], [Resize active: height -40],
|
||||
[`SUPER+ALT+J`], [Resize active: height +40],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Screenshots
|
||||
<screenshots>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (41.67%, 33.33%, 25%),
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Shortcut], [Action], [Tool],),
|
||||
table.hline(),
|
||||
[`Print`], [Area select → save + copy], [grimblast copysave area],
|
||||
[`SUPER+Print`], [Active window → save + copy], [grimblast copysave
|
||||
active],
|
||||
[`SUPER+SHIFT+Print`], [Full monitor → save + copy], [grimblast
|
||||
copysave output],
|
||||
[`SUPER+ALT+Print`], [Area select → annotate], [grim],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Workspaces
|
||||
<workspaces>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: (55.56%, 44.44%),
|
||||
align: (auto,auto,),
|
||||
table.header([Shortcut], [Action],),
|
||||
table.hline(),
|
||||
[`SUPER+1..9`], [Switch to workspace 1-9],
|
||||
[`SUPER+SHIFT+1..9`], [Move active window to workspace 1-9],
|
||||
[`SUPER+` #raw("`");], [Toggle scratchpad (togglespecialworkspace)],
|
||||
[`SUPER+SHIFT+` #raw("`");], [Move to scratchpad (movetoworkspace
|
||||
special)],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
=== Workspace Layout
|
||||
<workspace-layout>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 3,
|
||||
align: (auto,auto,auto,),
|
||||
table.header([Workspace], [Monitor], [Position],),
|
||||
table.hline(),
|
||||
[1], [DP-1 (TERRA 3280W)], [Left, 2560x1440\@144],
|
||||
[2], [DVI-D-1 (BenQ BL2405)], [Center, 1920x1080\@60 rotated 90deg],
|
||||
[3], [HDMI-A-1 (TERRA 3280W)], [Right, 2560x1440\@144],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Notes
|
||||
<notes>
|
||||
- `SUPER+CTRL+K` (keybind menu) does #strong[not work] --- the `sed`
|
||||
pipeline breaks. Needs fix.
|
||||
- The `sed` pipeline `sed 's/^bind\s*=\s*\$mainMod/SUPER/;s/\s*#/#/'`
|
||||
fails silently because the unescaped `$` in the `sed` command gets
|
||||
interpreted as a variable.
|
||||
|
||||
== Troubleshooting
|
||||
<troubleshooting>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Issue], [Check],),
|
||||
table.hline(),
|
||||
[Print key not working], [`hyprctl binds | grep Print`],
|
||||
[`SUPER+R` not working], [`hyprctl binds | grep 'reload'`],
|
||||
[Screenshots fail], [`which grimblast satty slurp grim`],
|
||||
[Clipboard empty], [`echo test | wl-copy && wl-paste`],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
|
||||
== Satty Editor Shortcuts
|
||||
<satty-editor-shortcuts>
|
||||
#figure(
|
||||
align(center)[#table(
|
||||
columns: 2,
|
||||
align: (auto,auto,),
|
||||
table.header([Action], [Shortcut],),
|
||||
table.hline(),
|
||||
[Freehand], [F],
|
||||
[Rectangle], [R],
|
||||
[Ellipse], [E],
|
||||
[Line/Arrow], [L],
|
||||
[Text], [T],
|
||||
[Blur], [B],
|
||||
[Crop], [C],
|
||||
[Undo], [Ctrl+Z],
|
||||
[Redo], [Ctrl+Shift+Z],
|
||||
[Copy], [Ctrl+C],
|
||||
[Save], [Ctrl+S],
|
||||
[Quit], [Esc or Ctrl+Q],
|
||||
)]
|
||||
, kind: table
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,126 @@
|
||||
---
|
||||
title: "Hyprland Keybindings Cheatsheet"
|
||||
author: "mw-pfeddersheim-workstation"
|
||||
date: "May 2026"
|
||||
---
|
||||
|
||||
# Hyprland Keybindings — Full Cheatsheet
|
||||
|
||||
**Layout:** German (de) | **Mod key:** SUPER (Windows key) | **Source:** `hyprctl binds` live
|
||||
|
||||
---
|
||||
|
||||
## General
|
||||
|
||||
| Shortcut | Action | Details |
|
||||
|----------|--------|---------|
|
||||
| `SUPER+Q` | Open terminal | kitty |
|
||||
| `SUPER+C` | Kill active window | killactive |
|
||||
| `SUPER+M` | Exit Hyprland | exit |
|
||||
| `SUPER+E` | File manager | dolphin |
|
||||
| `SUPER+V` | Toggle floating | togglefloating |
|
||||
| `SUPER+D` | App launcher | hyprlauncher |
|
||||
| `SUPER+P` | Toggle pseudo-split | pseudo |
|
||||
| `SUPER+J` | Toggle split direction | layoutmsg togglesplit |
|
||||
| `SUPER+F` | Toggle fullscreen | fullscreen 0 |
|
||||
| `SUPER+R` | Reload config | hyprctl reload |
|
||||
| `SUPER+SPACE` | Toggle float (popup) | togglefloating |
|
||||
| `SUPER+TAB` | Cycle next window | cyclenext |
|
||||
| `SUPER+SHIFT+TAB` | Cycle previous window | cyclenext prev |
|
||||
| `SUPER+` `` ` `` (Grave) | Toggle scratchpad | togglespecialworkspace |
|
||||
| `SUPER+SHIFT+` `` ` `` | Send window to scratchpad | movetoworkspace special |
|
||||
| `SUPER+CTRL+K` | Keybind cheat menu | *(broken — pipelines to grep+fuzzel)* |
|
||||
| `SUPER+CTRL+L` | Lock screen | hyprlock |
|
||||
| `SUPER+B` | Web browser | google-chrome-stable |
|
||||
|
||||
## Navigation / Focus
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+TAB` | Cycle next window |
|
||||
| `SUPER+SHIFT+TAB` | Cycle previous window |
|
||||
| `SUPER+H` | Move focus left |
|
||||
| `SUPER+L` | Move focus right |
|
||||
| `SUPER+left arrow` | Move focus left |
|
||||
| `SUPER+right arrow` | Move focus right |
|
||||
| `SUPER+up arrow` | Move focus up |
|
||||
| `SUPER+down arrow` | Move focus down |
|
||||
|
||||
## Window Movement
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+SHIFT+H` | Move window left |
|
||||
| `SUPER+SHIFT+L` | Move window right |
|
||||
| `SUPER+SHIFT+K` | Move window up |
|
||||
| `SUPER+SHIFT+J` | Move window down |
|
||||
| `SUPER+SHIFT+left` | Move window left |
|
||||
| `SUPER+SHIFT+right` | Move window right |
|
||||
| `SUPER+SHIFT+up` | Move window up |
|
||||
| `SUPER+SHIFT+down` | Move window down |
|
||||
|
||||
## Window Resize
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+ALT+H` | Resize active: width -40 |
|
||||
| `SUPER+ALT+L` | Resize active: width +40 |
|
||||
| `SUPER+ALT+K` | Resize active: height -40 |
|
||||
| `SUPER+ALT+J` | Resize active: height +40 |
|
||||
|
||||
## Screenshots
|
||||
|
||||
| Shortcut | Action | Tool |
|
||||
|----------|--------|------|
|
||||
| `Print` | Area select → save + copy | grimblast copysave area |
|
||||
| `SUPER+Print` | Active window → save + copy | grimblast copysave active |
|
||||
| `SUPER+SHIFT+Print` | Full monitor → save + copy | grimblast copysave output |
|
||||
| `SUPER+ALT+Print` | Area select → annotate | grim | slurp | satty |
|
||||
|
||||
## Workspaces
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `SUPER+1..9` | Switch to workspace 1-9 |
|
||||
| `SUPER+SHIFT+1..9` | Move active window to workspace 1-9 |
|
||||
| `SUPER+` `` ` `` | Toggle scratchpad (togglespecialworkspace) |
|
||||
| `SUPER+SHIFT+` `` ` `` | Move to scratchpad (movetoworkspace special) |
|
||||
|
||||
### Workspace Layout
|
||||
|
||||
| Workspace | Monitor | Position |
|
||||
|-----------|---------|----------|
|
||||
| 1 | DP-1 (TERRA 3280W) | Left, 2560x1440@144 |
|
||||
| 2 | DVI-D-1 (BenQ BL2405) | Center, 1920x1080@60 rotated 90deg |
|
||||
| 3 | HDMI-A-1 (TERRA 3280W) | Right, 2560x1440@144 |
|
||||
|
||||
## Notes
|
||||
|
||||
- `SUPER+CTRL+K` (keybind menu) does **not work** — the `sed` pipeline breaks. Needs fix.
|
||||
- The `sed` pipeline `sed 's/^bind\s*=\s*\$mainMod/SUPER/;s/\s*#/#/'` fails silently because the unescaped `$` in the `sed` command gets interpreted as a variable.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Check |
|
||||
|-------|-------|
|
||||
| Print key not working | `hyprctl binds | grep Print` |
|
||||
| `SUPER+R` not working | `hyprctl binds | grep 'reload'` |
|
||||
| Screenshots fail | `which grimblast satty slurp grim` |
|
||||
| Clipboard empty | `echo test | wl-copy && wl-paste` |
|
||||
|
||||
## Satty Editor Shortcuts
|
||||
|
||||
| Action | Shortcut |
|
||||
|--------|----------|
|
||||
| Freehand | F |
|
||||
| Rectangle | R |
|
||||
| Ellipse | E |
|
||||
| Line/Arrow | L |
|
||||
| Text | T |
|
||||
| Blur | B |
|
||||
| Crop | C |
|
||||
| Undo | Ctrl+Z |
|
||||
| Redo | Ctrl+Shift+Z |
|
||||
| Copy | Ctrl+C |
|
||||
| Save | Ctrl+S |
|
||||
| Quit | Esc or Ctrl+Q |
|
||||
@@ -0,0 +1,7 @@
|
||||
#set document(title: "Hyprland Keybindings - Pandoc")
|
||||
#set text(font: ("Inter", "DejaVu Sans"), size: 9pt, lang: "de")
|
||||
#set page(paper: "a4", margin: 1.2cm)
|
||||
#set heading(numbering: "1.")
|
||||
#set par(leading: 0.45em)
|
||||
#show link: set text(navy)
|
||||
#let horizontalrule = h(25%) + line(stroke: 0.5pt, length: 50%)
|
||||
@@ -0,0 +1,18 @@
|
||||
#set document(title: $if(title)$$title$$else$""$endif$)
|
||||
#set text(font: ($if(mainfont)$"$mainfont"$else$"Inter"$endif$, "DejaVu Sans"), size: $if(fontsize)$$fontsize$$else$9pt$endif$, lang: $if(lang)$$lang$$else$en$endif$)
|
||||
#set page(paper: "a4", margin: $if(margin-top)$($margin-top$,$else$1.5cm,$endif$ $if(margin-bottom)$$margin-bottom$,$else$1.5cm,$endif$ $if(margin-left)$$margin-left$,$else$1.5cm,$endif$ $if(margin-right)$$margin-right,$else$1.5cm$endif$)$else$1.5cm$endif$)
|
||||
$if(number-sections)$#set heading(numbering: "1.")$endif$
|
||||
|
||||
$for(include-before)$
|
||||
$include-before$
|
||||
|
||||
$endfor$
|
||||
|
||||
$body$
|
||||
|
||||
$for(include-after)$
|
||||
$include-after$
|
||||
|
||||
$endfor$
|
||||
|
||||
$if(quotes)$#show link.label => { box(text(str: #quotes.open) + content + text(str: #quotes.close)) }$endif$
|
||||
Reference in New Issue
Block a user