This commit is contained in:
2025-09-13 23:16:22 +02:00
commit 5057e1effa
179 changed files with 20524 additions and 0 deletions

66
cheatsheets/README.md Normal file
View File

@@ -0,0 +1,66 @@
# Cheatsheets Index (ddubsOS)
These documents cover both general usage and the specific configuration as defined in the NixOS configuration "ddubsOS".
- General use: Practical, task-focused tips and top workflows.
- ddubsOS specifics: Notes reflecting how tools are configured in this repository (modules/home/*) so behavior matches your system.
## 🔗 Quick Links
- Emacs
- [Getting Started Top 10](emacs/emacs.getting-started.top10.md)
- [File Explorer](emacs/emacs.file-explorer.cheatsheet.md)
- [Code Completion](emacs/emacs.code-completion.cheatsheet.md)
- [Magit (Git)](emacs/emacs.magit.cheatsheet.md)
- [Markdown](emacs/emacs.markdown.cheatsheet.md)
- Ghostty
- [Ghostty Cheatsheet](ghostty/ghostty.cheatsheet.md)
- Tmux
- [Tmux Cheatsheet](tmux/tmux.cheatsheet.md)
- Alacritty
- [Alacritty Cheatsheet](alacritty/alacritty.cheatsheet.md)
- Kitty
- [Kitty Cheatsheet](kitty/kitty.cheatsheet.md)
- WezTerm
- [WezTerm Cheatsheet](wezterm/wezterm.cheatsheet.md)
- Hyprland
- [Keybindings](hyprland/hyprland.binds.cheatsheet.md)
- [Window Rules](hyprland/hyprland.windowrules.cheatsheet.md)
- Yazi
- [Keymap](yazi/yazi.keymap.cheatsheet.md)
## 📚 How to use
- Browse the area you care about (e.g., Emacs, Ghostty).
- Start with the “getting started” or “top tips” docs for quick wins.
- Refer to tool-specific cheatsheets for day-to-day commands, then cross-check any ddubsOS-specific settings.
## 📂 Directory Tree
```
cheatsheets/
├── emacs/
│ ├── emacs.code-completion.cheatsheet.md
│ ├── emacs.file-explorer.cheatsheet.md
│ ├── emacs.getting-started.top10.md
│ ├── emacs.magit.cheatsheet.md
│ └── emacs.markdown.cheatsheet.md
├── ghostty/
│ └── ghostty.cheatsheet.md
├── tmux/
│ └── tmux.cheatsheet.md
├── alacritty/
│ └── alacritty.cheatsheet.md
├── kitty/
│ └── kitty.cheatsheet.md
├── wezterm/
│ └── wezterm.cheatsheet.md
├── hyprland/
│ ├── hyprland.binds.cheatsheet.md
│ └── hyprland.windowrules.cheatsheet.md
└── yazi/
└── yazi.keymap.cheatsheet.md
```
## 🛠️ Notes
- Ghostty cheatsheet reflects bindings from modules/home/terminals/ghostty.nix (ddubsOS).
- Emacs docs follow the same markdown style for consistency and quick scanning.

View File

@@ -0,0 +1,23 @@
# Alacritty on ddubsOS — Summary & Cheatsheet
## 🚀 Summary of modules/home/terminals/alacritty.nix
- Program
- Alacritty enabled.
- Font family (default): Maple NF; size: 15.
- Styles configured: Regular, Bold, Italic, Bold Italic.
---
## ⚙️ Default Options (as configured)
Font
- normal: Maple NF Regular
- bold: Maple NF Bold
- italic: Maple NF Italic
- bold_italic: Maple NF Bold Italic
- size: 15
Notes
- Uses lib.mkDefault for font family, so other modules can override.

View File

@@ -0,0 +1,128 @@
# Doom Emacs Code Completion & Lookup Cheatsheet
## 🚀 **What You Have (Like nvim-cmp + blink.cmp)**
If your Doom config includes:
- **Company Mode** - Auto-completion framework
- **LSP Mode** - Language Server Protocol support
- **Tree-sitter** - Advanced syntax parsing
- **Lookup tools** - Documentation and definition lookup
## ⌨️ **Code Completion (Company)**
### **Auto-completion Controls:**
- `TAB` or `C-SPC` - **Accept completion**
- `C-n` / `j` - **Next completion** (evil mode)
- `C-p` / `k` - **Previous completion** (evil mode)
- `C-w` - **Show documentation** for completion
- `C-s` - **Search/filter completions**
- `ESC` or `C-g` - **Cancel completion**
### **Manual Completion:**
- `M-/` - **Complete at point** (manual trigger)
- `C-M-/` - **Expand abbreviation**
## 🔍 **Code Lookup & Navigation**
### **Go to Definition/References:**
- `gd` - **Go to definition** (evil mode)
- `gD` - **Go to declaration**
- `gr` - **Go to references**
- `SPC c d` - **Find definition**
- `SPC c D` - **Find references**
- `SPC c i` - **Find implementations**
### **Documentation Lookup:**
- `K` - **Lookup documentation** (evil mode)
- `SPC c k` - **Lookup documentation**
- `SPC c K` - **Lookup in docsets**
- `C-h f` - **Describe function**
- `C-h v` - **Describe variable**
### **Symbol Navigation:**
- `SPC c j` - **Jump to symbol in buffer**
- `SPC c J` - **Jump to symbol in project**
- `SPC s i` - **Search for symbol**
## 🛠️ **LSP Features (Language Server)**
### **LSP Actions:**
- `SPC c a` - **Code actions** (refactor, fix, etc.)
- `SPC c r` - **Rename symbol**
- `SPC c f` - **Format buffer/region**
- `SPC c o` - **Organize imports**
### **Error Navigation:**
- `]e` - **Next error**
- `[e` - **Previous error**
- `SPC c x` - **List errors**
### **LSP Info:**
- `SPC c l` - **LSP menu**
- `SPC c h` - **Show hover info**
- `SPC c s` - **Show signature**
## 🎯 **Language-Specific Features**
### **C/C++ (clang-tools)**
- Full completion for functions, variables, types
- Go to definition across files
- Error checking and diagnostics
- Code formatting with clang-format
### **Nix (nil LSP)**
- Nix language completion
- Function documentation
- Syntax checking
- Go to definition for Nix expressions
### **JSON (vscode-json-languageserver)**
- Schema-based completion
- Validation and error checking
- Go to definition in JSON files
## ⚡ **Pro Tips**
### **Fuzzy Search Everything:**
- `SPC f f` - **Find files**
- `SPC /` - **Search in project**
- `SPC s s` - **Search buffer**
- `SPC p p` - **Switch projects**
### **Better Navigation:**
- `C-o` - **Go back** (after jumping to definition)
- `C-i` - **Go forward**
- `SPC j j` - **Jump to character** (like easymotion)
### **Completion Tweaks:**
- Completions appear after 0.2 seconds of typing
- Minimum 1 character to trigger
- Shows documentation in popup
- Works with both Company and LSP
## 🔧 **Troubleshooting**
### **If completion isn't working:**
1. Check if LSP server is running: `SPC c l`
2. Restart LSP: `SPC c l r`
3. Check syntax errors: `SPC c x`
### **Performance:**
- LSP servers auto-start when you open supported files
- Completion is optimized for fast response
- Use `SPC h r r` to reload Doom config after changes
## 🚀 **Quick Start Workflow**
1. **Open a code file** (`.c`, `.nix`, `.json`)
2. **Start typing** - completions appear automatically
3. **Navigate with `j/k`** and **accept with `TAB`**
4. **Use `gd`** to jump to definitions
5. **Use `K`** to see documentation
6. **Use `SPC c a`** for code actions
## 📚 **Language Servers Included**
- **C/C++**: `clang-tools` (clangd)
- **Nix**: `nil`
- **JSON**: `vscode-json-languageserver`
- More can be added per language as needed!

View File

@@ -0,0 +1,305 @@
# Doom Emacs File Explorer Cheatsheet
## 🗂️ **What is Dired?**
Dired (Directory Editor) is Emacs' built-in file manager that allows you to navigate, manage, and manipulate files and directories efficiently.
- Browse directories with keyboard navigation
- Mark, copy, move, and delete files
- Execute commands on multiple files at once
- Integrate with other Emacs tools and buffers
## 📋 **Requirements**
- Doom Emacs (Dired is built-in)
- **Treemacs**: Must be enabled in `~/.doom.d/init.el` (uncomment `treemacs` line)
- Optional tools for enhanced functionality:
- `rsync` - Fast file synchronization and copying
- `fd` or `find` - Enhanced file finding
- `rg` (ripgrep) or `ag` (the_silver_searcher) - Fast text search
- `exa` or `lsd` - Enhanced directory listings
- `trash-cli` - Safe file deletion to trash
- `zip`/`unzip`, `tar`, `gzip` - Archive handling
## ⌨️ **Opening File Explorers**
### **Dired (Built-in File Manager):**
- `SPC .` - **Open Dired** in current directory
- `SPC f d` - **Find directory** (open Dired in specific path)
- `C-x d` - **Open Dired** (classic Emacs binding)
### **Project File Navigation:**
- `SPC SPC` - **Find file** in project
- `SPC f f` - **Find file** anywhere
- `SPC f r` - **Recent files**
- `SPC p f` - **Find file** in project
### **Tree-style Explorers:**
- `SPC o p` - **Toggle project sidebar** (Treemacs)
- `SPC f t` - **Find file** in tree
## 🧭 **Navigation in Dired**
### **Basic Movement:**
- `j/k` or `n/p` - **Move up/down** between files
- `h` - **Go up** one directory (parent)
- `l` or `RET` - **Enter directory** or open file
- `^` - **Go to parent directory**
- `g` - **Refresh** directory listing
### **Jumping Around:**
- `gg` - **Go to top** of listing
- `G` - **Go to bottom** of listing
- `/` - **Search** for file/directory name
- `SPC s s` - **Search within** directory
### **File Information:**
- `(` - **Toggle details** (show/hide file info)
- `s` - **Sort** files (by name, date, size)
- `C-h m` - **Show help** for current mode
## 📁 **File Operations**
### **Opening Files:**
- `RET` - **Open file** in current window
- `o` - **Open file** in other window
- `C-o` - **Open file** in other window (keep cursor in Dired)
- `v` - **View file** (read-only)
- `f` - **Find file** (same as RET)
### **Creating Files & Directories:**
- `+` - **Create directory**
- `SPC f c` - **Create file** (when in Dired buffer)
- `C-x C-f` - **Find/create file** (from Dired)
## 🏷️ **Marking Files**
### **Basic Marking:**
- `m` - **Mark file** for operations
- `u` - **Unmark file**
- `U` - **Unmark all** files
- `t` - **Toggle marks** (mark unmarked, unmark marked)
- `* %` - **Mark by regex** pattern
### **Quick Marking:**
- `* .` - **Mark by extension** (e.g., *.txt)
- `* /` - **Mark directories**
- `* @` - **Mark symlinks**
- `* *` - **Mark executables**
### **Advanced Marking:**
- `% m` - **Mark files** matching regex
- `% d` - **Mark for deletion** files matching regex
- `* c` - **Change marks** (change one mark to another)
## ✂️ **File Management Operations**
### **Copy, Move, Delete:**
- `C` - **Copy** marked files (or file under cursor)
- `R` - **Rename/Move** marked files
- `D` - **Delete** marked files immediately
- `d` - **Mark for deletion** (use `x` to execute)
- `x` - **Execute deletions** (delete files marked with `d`)
### **Deletion Options:**
- `d` then `x` - **Safe deletion** (mark first, then execute)
- `D` - **Immediate deletion** (bypass mark step)
- **Trash integration**: If `trash-cli` is installed, files go to trash instead of permanent deletion
### **Advanced Operations:**
- `Z` - **Compress/uncompress** files (uses `gzip`, `zip`, `tar` automatically)
- `A` - **Search** in marked files (uses `grep` or `rg` if available)
- `Q` - **Query replace** in marked files
- `!` - **Run shell command** on marked files
- `&` - **Run async shell command** on marked files
## 📋 **Copying & Moving**
### **Copy Operations:**
- `C` - **Copy files** (prompts for destination)
- Works with marked files or single file under cursor
- Uses `rsync` if available for faster, resumable copying
- Supports copying to different drives/partitions
### **Move/Rename Operations:**
- `R` - **Rename/Move** files
- Can rename single files or move multiple marked files
- Supports moving across directories
### **Tips for Copy/Move:**
- Mark multiple files first, then use `C` or `R`
- Tab completion works for destination paths
- Use relative paths (`.`, `..`) for quick navigation
## 🔍 **Search & Filter**
### **Finding Files:**
- `/` - **Search** file names in current listing
- `n/N` - **Next/previous** search match
### **Enhanced Search (with external tools):**
- `A` - **Search inside files** (uses `rg` > `ag` > `grep` in priority order)
- Much faster with `ripgrep` or `the_silver_searcher`
- Supports regex patterns and file type filtering
### **Filtering Display:**
- `(` - **Toggle** detailed view
- `s` - **Sort** by different criteria
- `C-u s` - **Sort** with custom options
### **Content Search:**
- `A` - **Search inside** marked files
- `Q` - **Query replace** across marked files
## 🔧 **Advanced Features**
### **Wdired (Writable Dired):**
- `C-x C-q` - **Edit filenames** directly (like renaming)
- Edit filenames as text, then `C-c C-c` to apply changes
- `C-c C-k` to cancel edits
### **Multiple Windows:**
- `o` - **Open in other window**
- `C-o` - **Display in other window** (stay in Dired)
- `2` - **Split window** vertically for two Dired views
### **Subdirectories:**
- `i` - **Insert subdirectory** in same buffer
- `$` - **Hide/show** subdirectory contents
- `M-$` - **Hide all** subdirectories
## 📊 **File Comparison**
### **Diff Operations:**
- `=` - **Diff file** with another
- `M-=` - **Diff** marked files against each other
- Works with external diff tools
## 🗜️ **Archive Operations**
### **Compression & Archives:**
- `Z` - **Compress/decompress** automatically detects format
- Supports: `.gz`, `.zip`, `.tar`, `.tar.gz`, `.tar.xz`, `.7z`
- Uses appropriate tools: `gzip`, `zip`, `tar`, `7z`
### **Archive Viewing:**
- Open `.zip`, `.tar`, etc. files directly to browse contents
- Extract specific files from archives
## 🎛️ **Customization & Settings**
### **View Options:**
- `(` - **Toggle** between simple and detailed view
- `s` - **Cycle** through sort orders (name, date, size)
- Enhanced listings with `exa` or `lsd` if available
### **Useful Settings:**
- Dired reuses buffers by default in Doom
- Auto-refresh on file changes
- Integration with Evil mode keybindings
## ⚡ **Treemacs (Tree Explorer)**
### **Basic Treemacs:**
- `SPC o p` - **Toggle** Treemacs sidebar
- `j/k` - **Navigate** up/down in tree
- `RET` - **Open file** or expand/collapse directory
- `TAB` - **Expand/collapse** directory
### **Treemacs File Operations:**
- `cf` - **Create file**
- `cd` - **Create directory**
- `R` - **Rename**
- `d` - **Delete**
- `yy` - **Copy** path to clipboard
## 🚀 **Quick Start Workflow**
### **Basic File Management:**
1. **Press `SPC .`** - Open Dired in current directory
2. **Navigate with `j/k`** - Move between files
3. **Mark files with `m`** - Select multiple files
4. **Use `C` to copy** or `R` to move/rename
5. **Press `g`** to refresh when done
### **Efficient File Operations:**
1. **Mark multiple files** with `m`
2. **Execute batch operations** (`C` for copy, `R` for move)
3. **Use `!`** to run shell commands on marked files
4. **Toggle details with `(`** for more/less information
## 📚 **Essential Keybind Summary**
| Action | Key | Description |
|--------|-----|-------------|
| Open Dired | `SPC .` | Open file explorer |
| Navigate | `j/k` | Move up/down |
| Enter/Open | `RET` or `l` | Open file/directory |
| Parent Dir | `h` or `^` | Go up one directory |
| Mark | `m` | Mark file for operations |
| Copy | `C` | Copy marked files |
| Move/Rename | `R` | Move or rename files |
| Delete | `d` then `x` | Mark for deletion, execute |
| Create Dir | `+` | Create new directory |
| Compress | `Z` | Compress/decompress |
| Search Files | `A` | Search inside files |
| Refresh | `g` | Refresh directory listing |
| Help | `?` | Show available commands |
## 🔧 **Troubleshooting**
### **Common Issues:**
- **Dired buffer not updating?** Press `g` to refresh
- **Can't see file details?** Press `(` to toggle detailed view
- **Operations feel slow?** Use marking (`m`) for batch operations
- **Wrong sort order?** Press `s` to cycle through sort options
### **Performance Tips:**
- Install `fd` for faster file finding
- Install `rg` (ripgrep) for faster text search
- Use `rsync` for efficient file copying
- Consider `exa` or `lsd` for enhanced directory listings
### **Getting Help:**
- `?` - **Context help** in any Dired buffer
- `C-h m` - **Mode-specific help**
- `SPC h d f dired` - **Full Dired documentation**
## 📋 **Comparison: Dired vs Treemacs**
### **Use Dired when:**
- Managing multiple files at once
- Need detailed file information
- Performing batch operations
- Working with file permissions/ownership
### **Use Treemacs when:**
- Quick project overview
- Simple file navigation
- Prefer visual tree structure
- Need persistent sidebar
## 🛠️ **External Tool Integration**
### **Recommended Tools:**
- **`rsync`** - Fast, reliable file copying with resume capability
- **`ripgrep` (rg)** - Extremely fast text search, much faster than grep
- **`fd`** - Fast alternative to find with better defaults
- **`exa`** - Modern replacement for ls with colors and git integration
- **`trash-cli`** - Safe deletion to trash instead of permanent removal
- **`7z`** - Handle 7zip archives and other compression formats
### **Installation (Debian/Ubuntu):**
```bash
sudo apt install rsync ripgrep fd-find exa trash-cli p7zip-full
```
## 🎯 **Pro Tips**
- **Batch operations**: Mark files first (`m`), then execute operations
- **Quick navigation**: Use `/` to search for files by name
- **Edit filenames**: Use `C-x C-q` for Wdired mode to rename multiple files
- **Shell integration**: Use `!` to run shell commands on files
- **Multiple directories**: Use `i` to show subdirectories in same buffer
- **Safe deletion**: Install `trash-cli` to send files to trash instead of permanent deletion
- **Fast search**: Install `ripgrep` for lightning-fast text search in files
Dired provides a comprehensive file management experience that integrates well with external Linux tools, making file operations both efficient and powerful.

View File

@@ -0,0 +1,294 @@
# Top 10 Things New Doom Emacs Users Should Know
## 🚀 **Getting Started with Doom Emacs**
Welcome to Doom Emacs! Here are the 10 most essential things every new user
should master to get productive quickly.
---
## 1. 🗝️ **Master the Leader Key: `SPC`**
**The Space key is your gateway to everything in Doom Emacs.**
- `SPC` is called the "leader key" - it opens menus for almost every action
- After pressing `SPC`, you'll see helpful hints showing available commands
- Commands are organized logically: `SPC f` for files, `SPC g` for git, `SPC p`
for projects
**Essential starter commands:**
- `SPC f f` - Find/open files
- `SPC f s` - Save current file
- `SPC q q` - Quit Emacs
- `SPC h` - Help menu (very important!)
**Pro Tip:** If you forget what comes next, just press `SPC` and wait - Doom
will show you the options!
---
## 2. 📁 **Navigate Files Like a Pro**
**File navigation is fundamental to productivity.**
- `SPC .` - **Open file explorer** (Dired) in current directory
- `SPC f f` - **Find file** anywhere on your system
- `SPC f r` - **Recent files** you've worked on
- `SPC SPC` - **Find file in current project** (super useful!)
📋 _See the complete guide: `emacs.file-explorer.cheatsheet.md`_
**Quick workflow:**
1. Open your project directory in terminal
2. Start Emacs: `emacs` or `doom run`
3. Use `SPC .` to browse files or `SPC SPC` to quickly find files
---
## 3. ⌨️ **Understand Evil Mode (Vim Keybindings)**
**Doom Emacs uses Vim-style keybindings by default.**
**Basic movement (in Normal mode):**
- `h j k l` - Left, down, up, right
- `w` - Jump to next word
- `b` - Jump back one word
- `gg` - Go to top of file
- `G` - Go to bottom of file
**Mode switching:**
- `i` - Enter Insert mode (to type text)
- `ESC` - Return to Normal mode
- `v` - Visual mode (to select text)
**If you're not familiar with Vim:** Don't panic! You can learn gradually. The
basics above will get you started.
---
## 4. 🔍 **Search and Replace Efficiently**
**Finding and changing text is a daily task.**
- `/` - Search forward in current buffer
- `?` - Search backward in current buffer
- `n/N` - Next/previous search result
- `SPC s s` - Search in current buffer (interactive)
- `SPC s p` - Search in entire project
- `SPC s r` - Search and replace in current buffer
**For project-wide search:** `SPC s p` is incredibly powerful for finding code
across your entire project.
---
## 5. 🗂️ **Work with Buffers and Windows**
**Buffers are open files, windows are how you view them.**
**Buffer management:**
- `SPC b b` - Switch between open buffers
- `SPC b k` - Kill (close) current buffer
- `SPC b s` - Save current buffer
**Window management:**
- `SPC w v` - Split window vertically
- `SPC w s` - Split window horizontally
- `SPC w c` - Close current window
- `SPC w w` - Switch between windows
- `C-h j/k/h/l` - Navigate between windows (Vim-style)
**Think of it this way:** You can have many files open (buffers) but only see
some of them at once (windows).
---
## 6. 🛠️ **Configure and Customize Doom**
**Doom is highly configurable, but start simple.**
**Key files to know about:**
- `~/.doom.d/config.el` - Your personal configuration
- `~/.doom.d/init.el` - Enable/disable Doom modules
- `~/.doom.d/packages.el` - Add extra packages
**Essential commands:**
- `SPC h r r` - Reload Doom configuration
- `SPC h d h` - Doom help and documentation
- `doom doctor` - Check for configuration issues (run in terminal)
- `doom upgrade` - Update Doom (run in terminal)
**Start small:** Don't try to customize everything at once. Use Doom's defaults
first, then gradually tweak things.
---
## 7. 📝 **Master Text Editing Basics**
**Essential editing commands that work in any mode.**
**In Normal mode (Evil):**
- `x` - Delete character under cursor
- `dd` - Delete entire line
- `yy` - Copy (yank) entire line
- `p` - Paste after cursor
- `u` - Undo
- `C-r` - Redo
**In Insert mode:**
- `C-w` - Delete word backward
- `C-u` - Delete to beginning of line
**Selection and manipulation:**
- `v` - Start visual selection
- `V` - Select entire line
- `d` - Delete selected text
- `y` - Copy selected text
---
## 8. 💻 **Use Code Completion and Language Features**
**Doom comes with excellent code support out of the box.**
**Auto-completion:**
- Just start typing - completions appear automatically
- `TAB` - Accept completion
- `C-n/C-p` or `j/k` - Navigate completion options
**Code navigation:**
- `gd` - Go to definition
- `gr` - Find references
- `K` - Show documentation
- `SPC c a` - Code actions (refactor, fix, etc.)
📋 _See the complete guide: `emacs.code-completion.cheatsheet.md`_
**Languages supported:** Most popular languages work out of the box (Python,
JavaScript, C/C++, Rust, Go, etc.)
---
## 9. 📚 **Use Built-in Help System**
**Doom has excellent built-in documentation.**
- `SPC h` - **Main help menu**
- `SPC h d h` - **Doom-specific help**
- `SPC h k` - **Describe key** (what does this key do?)
- `SPC h f` - **Describe function**
- `SPC h v` - **Describe variable**
- `C-h m` - **Show help for current mode**
**When you're lost:** Press `SPC h` and explore. The help system is
comprehensive and always available.
**Pro Tip:** If you press a key combination and don't know what happened, use
`SPC h l` to see recent commands.
---
## 10. 🔧 **Learn Git Integration (Magit)**
**Magit is one of the best Git interfaces available anywhere.**
- `SPC g g` - Open Magit status (your main Git command!)
- `s` - Stage files or hunks
- `c c` - Commit changes
- `P P` - Push to remote
- `F F` - Pull from remote
📋 _See the complete guide: `emacs.magit.cheatsheet.md`_
**Basic workflow:**
1. `SPC g g` - See what's changed
2. `s` on files to stage them
3. `c c` to commit (write message, then `C-c C-c`)
4. `P P` to push
**Why it's essential:** If you work with Git, Magit will transform your
workflow. It's visual, fast, and incredibly powerful.
---
## 🎯 **Quick Start Checklist**
Once you've read through the above, try this 5-minute workflow:
1.**Open Doom:** `emacs` in terminal
2.**Find a file:** `SPC f f` and open any text file
3.**Edit something:** Press `i`, type text, press `ESC`
4.**Save:** `SPC f s`
5.**Open file explorer:** `SPC .`
6.**Get help:** `SPC h`
7.**Split window:** `SPC w v`
8.**Switch buffers:** `SPC b b`
9.**Search project:** `SPC s p` (if in a project)
10.**Quit:** `SPC q q`
---
## 📖 **Next Steps: Dive Deeper**
Once you're comfortable with the basics above:
1. **Read the specific cheatsheets:**
- `emacs.file-explorer.cheatsheet.md` - File management
- `emacs.code-completion.cheatsheet.md` - Coding features
- `emacs.magit.cheatsheet.md` - Git integration
- `emacs.markdown.cheatsheet.md` - Markdown editing
2. **Customize gradually:** Start tweaking your `config.el`
3. **Learn your language:** Explore language-specific features
4. **Join the community:** Doom Discord, Reddit, GitHub discussions
---
## 🆘 **When You're Stuck**
**Emergency commands:**
- `C-g` - Cancel current command (like pressing ESC)
- `SPC q q` - Quit Emacs
- `SPC h d h` - Doom help
- `:q` - Quit current buffer (Vim command)
**Remember:** Every expert was once a beginner. Don't try to learn everything at
once. Master these 10 things first, then gradually explore more advanced
features.
**Most important tip:** Use `SPC` and explore the menus. Doom is designed to be
discoverable - let it guide you!
---
## 🎓 **Learning Philosophy**
**Start with workflows, not features:** Instead of memorizing every keybinding,
learn complete workflows for tasks you do daily (editing files, committing code,
searching projects).
**Use the defaults first:** Doom's defaults are excellent. Resist the urge to
customize everything immediately.
**One thing at a time:** Master file navigation before diving into advanced code
features. Build your skills incrementally.
**Practice daily:** Use Doom for real work, even if you're slower at first.
Muscle memory develops with practice.
Welcome to Doom Emacs! 🚀

View File

@@ -0,0 +1,276 @@
# Doom Emacs Magit Cheatsheet
## 🚀 **What is Magit?**
Magit is an extremely powerful tool for managing your Git project
- Visual, interactive Git workflows
- Stage hunks, lines, or entire files with ease
- Commit, push, pull, merge, rebase - all from intuitive menus
- See your repo status at a glance
## 📋 **Requirements**
- Git installed on your system
- Doom Emacs with Magit enabled (included by default)
- Working inside a Git repository
## ⌨️ **Opening Magit**
### **Main Magit Interface:**
- `SPC g g` - **Magit status** (your main command!)
- `SPC g d` - **Magit file dispatch**
- `SPC g f` - **Magit file commands**
- `SPC g l` - **Magit log**
- `SPC g b` - **Magit blame**
## 🎯 **The Magit Status Buffer** (Your Command Center)
### **Navigation:**
- `j/k` or `n/p` - **Move up/down** between sections
- `TAB` - **Expand/collapse** section under cursor
- `M-TAB` - **Expand/collapse** all sections
- `g` - **Refresh** status buffer
### **Section Overview:**
```
Untracked files - Files not in Git
Unstaged changes - Modified files not staged
Staged changes - Files ready to commit
Recent commits - Your commit history
Stashes - Your saved work-in-progress
```
## 📝 **Staging & Unstaging**
### **Stage Files:**
- `s` - **Stage** file/hunk under cursor
- `S` - **Stage all** unstaged changes
- `i` - **Ignore** file (add to .gitignore)
### **Unstage Files:**
- `u` - **Unstage** file/hunk under cursor
- `U` - **Unstage all** staged changes
### **Discard Changes:**
- `k` - **Discard** changes in file/hunk under cursor
- `K` - **Discard all** changes in working directory
### **Staging Hunks & Lines:**
- `RET` or `SPC` - **Show diff** of file under cursor
- In diff view:
- `s` - **Stage hunk** under cursor
- `u` - **Unstage hunk** under cursor
- `k` - **Discard hunk** under cursor
- `+/-` - **Show more/less context** lines
## 💾 **Committing**
### **Create Commits:**
- `c c` - **Commit** (opens commit message buffer)
- `c a` - **Amend** last commit
- `c e` - **Extend** last commit (no message change)
- `c w` - **Reword** last commit message
- `c f` - **Fixup** commit
- `c s` - **Squash** commit
### **In Commit Message Buffer:**
- `C-c C-c` - **Finish commit**
- `C-c C-k` - **Cancel commit**
- `M-p/M-n` - **Previous/next** commit message from history
## 🌿 **Branching & Switching**
### **Branch Operations:**
- `b b` - **Switch branch** (checkout)
- `b c` - **Create new branch**
- `b n` - **Create branch** from current HEAD
- `b s` - **Create branch** and switch to it
- `b r` - **Rename branch**
- `b k` - **Delete branch**
### **Remote Branches:**
- `b a` - **Set upstream** for current branch
- `b u` - **Set upstream** and push
## 🔄 **Remote Operations**
### **Fetch & Pull:**
- `f f` - **Fetch** from default remote
- `f a` - **Fetch from all** remotes
- `F F` - **Pull** from upstream
- `F u` - **Pull from upstream** (rebase)
### **Push:**
- `P P` - **Push** to upstream
- `P u` - **Push and set upstream**
- `P f` - **Force push** (use carefully!)
- `P t` - **Push tags**
## 📚 **Viewing History & Logs**
### **Log Views:**
- `l l` - **Show log** for current branch
- `l o` - **Show log** for other branches
- `l h` - **Show log** for HEAD
- `l a` - **Show log** for all branches
- `l f` - **Show log** for file under cursor
### **In Log View:**
- `RET` - **Show commit** details
- `d d` - **Show diff** for commit
- `c c` - **Create new commit**
- `r r` - **Revert commit**
## 🔍 **Diffs & Comparisons**
### **Diff Commands:**
- `d d` - **Diff working directory** vs staged
- `d s` - **Diff staged** vs HEAD
- `d u` - **Diff unstaged** changes
- `d r` - **Diff range** between commits
### **In Diff Views:**
- `j/k` - **Navigate** between hunks
- `n/p` - **Next/previous** file
- `TAB` - **Toggle** visibility of diff section
- `+/-` - **Increase/decrease** context lines
## 🔧 **Rebasing & Merging**
### **Merge:**
- `m m` - **Merge** branch
- `m a` - **Abort merge**
- `m c` - **Continue merge**
### **Rebase:**
- `r i` - **Interactive rebase**
- `r r` - **Rebase** branch
- `r a` - **Abort rebase**
- `r c` - **Continue rebase**
### **During Interactive Rebase:**
- `j/k` - **Move** between commits
- `p` - **Pick** commit (default)
- `r` - **Reword** commit message
- `e` - **Edit** commit
- `s` - **Squash** commit
- `f` - **Fixup** commit
- `d` - **Drop** commit
## 📦 **Stashing**
### **Stash Operations:**
- `z z` - **Stash** current changes
- `z i` - **Stash** with message
- `z a` - **Apply stash**
- `z p` - **Pop stash** (apply and delete)
- `z k` - **Drop stash**
- `z l` - **List stashes**
## 🏷️ **Tags**
### **Tag Operations:**
- `t t` - **Create tag**
- `t a` - **Create annotated tag**
- `t k` - **Delete tag**
- `t p` - **Push tag**
## ⚡ **Pro Tips & Workflows**
### **Daily Git Workflow:**
1. `SPC g g` - **Open Magit status**
2. Review changes, stage with `s`
3. `c c` - **Commit changes**
4. `P P` - **Push to remote**
### **Power User Tricks:**
- Use `M-x magit-find-file` to quickly open files from Git history
- `SPC g f s` - **Stage current file** without opening Magit
- `SPC g f u` - **Unstage current file**
- `SPC g f d` - **Show file diff**
### **Staging Granularity:**
- Stage entire files with `s` in status buffer
- Stage individual hunks by entering diff view (`RET`) then `s`
- Stage individual lines by selecting region in diff then `s`
### **Commit Best Practices:**
- Use `c c` for normal commits
- Use `c a` to fix up your last commit
- Use `c f` to create fixup commits for interactive rebase later
## 🔧 **Troubleshooting**
### **Common Issues:**
- **Magit won't open?** Make sure you're in a Git repository
- **Performance slow?** Try `M-x magit-refresh` or restart Emacs
- **Merge conflicts?** Magit highlights conflicts - resolve them and use `m c`
### **Getting Help:**
- `?` - **Show help** in any Magit buffer
- `C-h m` - **Show mode help**
- `SPC h d m magit` - **Full Magit documentation**
## 🚀 **Quick Start Workflow**
1. **Navigate to your Git repo** in Doom Emacs
2. **Press `SPC g g`** - Opens Magit status
3. **Stage files** with `s`, review diffs with `RET`
4. **Commit** with `c c`, write message, finish with `C-c C-c`
5. **Push** with `P P`
## 📚 **Essential Keybind Summary**
| Action | Key | Description |
| ------- | --------- | ------------------ |
| Status | `SPC g g` | Open Magit status |
| Stage | `s` | Stage file/hunk |
| Unstage | `u` | Unstage file/hunk |
| Commit | `c c` | Create commit |
| Push | `P P` | Push to upstream |
| Pull | `F F` | Pull from upstream |
| Branch | `b b` | Switch branch |
| Log | `l l` | Show log |
| Diff | `d d` | Show diff |
| Stash | `z z` | Stash changes |
| Help | `?` | Show context help |
## 🎉 **Why Magit is Amazing**
- **Visual**: See your entire repo state at a glance
- **Interactive**: Stage hunks, lines, or files with simple keystrokes
- **Fast**: Navigate Git operations faster than any CLI
- **Powerful**: Access every Git feature through intuitive menus
- **Integrated**: Works seamlessly with Doom Emacs and Evil mode
**Pro Tip**: Once you learn Magit, you'll never want to use Git from the command
line again! 🚀

View File

@@ -0,0 +1,85 @@
# Doom Emacs Markdown Cheatsheet
## 📝 **Getting Started**
- Open any `.md` file - Doom automatically enables `markdown-mode`
- You'll get syntax highlighting, proper indentation, and markdown-specific features
## ⌨️ **Key Markdown Commands** (with Evil/Vim bindings)
### **Formatting Text:**
- `SPC m b` - **Bold** text
- `SPC m i` - *Italic* text
- `SPC m c` - `Inline code`
- `SPC m C` - Code block
- `SPC m s` - ~~Strikethrough~~
### **Headers:**
- `SPC m h` - Insert header (prompts for level 1-6)
- `SPC m H` - Insert header with underline style
### **Lists:**
- `SPC m l` - Insert unordered list item
- `SPC m L` - Insert ordered list item
### **Links & Images:**
- `SPC m l l` - Insert link
- `SPC m l i` - Insert image
- `SPC m l u` - Insert URL
### **Navigation:**
- `]]` - Next header
- `[[` - Previous header
- `SPC m o` - Open outline/table of contents
## 👁️ **Live Preview**
- `SPC m p` - Preview in browser
- `SPC m P` - Export to HTML
## 📊 **Tables**
- `SPC m t` - Table commands
- `SPC m t t` - Insert table
- `TAB` - Navigate between cells
- `S-TAB` - Navigate backward between cells
## 🎯 **Useful Evil Bindings in Markdown**
- `TAB` - Cycle folding of headers
- `S-TAB` - Cycle folding globally
- `RET` - Follow links
- `M-RET` - Insert new list item
## 🧪 **Test Examples**
### Sample Formatting
This is **bold text** and this is *italic text*.
Here's some `inline code` and a code block:
```bash
# Code block example
echo "Hello from markdown!"
```
### Sample List
- [ ] Checkbox item 1
- [x] Completed checkbox
- Regular bullet point
### Sample Table
| Feature | Shortcut | Description |
|---------|----------|-------------|
| Bold | SPC m b | Make text bold |
| Italic | SPC m i | Make text italic |
| Preview | SPC m p | Preview in browser |
## 🚀 **Pro Tips**
1. Use `SPC m o` to get an outline view for navigation
2. `TAB` on headers to fold/unfold sections
3. `RET` on links to follow them
4. Use `SPC m p` to preview your markdown in a browser
5. Create checklists with `- [ ]` syntax
## 📚 **Quick Reference**
- All markdown commands start with `SPC m`
- Use `SPC m ?` or `C-h m` to see all available commands
- Navigation between headers: `]]` (next) and `[[` (previous)
- Toggle folding: `TAB` (local) and `S-TAB` (global)

View File

@@ -0,0 +1,122 @@
# Ghostty on ddubsOS — Summary & Cheatsheet
## 🚀 Summary of modules/home/terminals/ghostty.nix
- Program
- Ghostty enabled with Nix package: pkgs.ghostty
- Shell integrations: Fish, Zsh, Bash
- clearDefaultKeybinds = true (all bindings are explicitly defined below)
- Appearance
- Title: ddubsOS-GhosTTY
- TERM: xterm-256color
- Theme: dark: catppuccin-mocha; light: catppuccin-mocha
- Window theme: dark
- Font: Maple Mono NF, size 12
- Cell height adjustment: +10%
- Background opacity: 1.00 (opaque)
- Background blur radius: 60
- Cursor style: bar
- Selection colors: bg #2d3f76, fg #c8d3f5
- Unfocused split opacity: 0.5
- Quick terminal position: center
- Window and Behavior
- Default window size: 110x32 (cols x rows)
- Confirm close surface: false
- Wait after command: false
- Shell integration: detect; features: cursor, sudo
- Window save state: always
- GTK single instance: true
- Mouse: hide while typing: true
- Keybindings (Super/Alt prefix scheme)
- Custom leader-like chord uses Alt+s then key, e.g. alt+s>c
- Standard clipboard and font size with Ctrl+Shift chords
- Tabs, splits, navigation, zoom, equalize defined below
---
## 🗝️ Keybindings Cheatsheet
Clipboard
- Ctrl+Shift+C — copy_to_clipboard
- Ctrl+Shift+V — paste_from_clipboard
Font size
- Ctrl+Shift+= (plus) — increase_font_size:1
- Ctrl+Shift+- (minus) — decrease_font_size:1
- Ctrl+Shift+0 — reset_font_size
Session
- Alt+s r — reload_config
- Alt+s x — close_surface
- Alt+s n — new_window
Tabs
- Alt+s c — new_tab
- Alt+s Shift+L — next_tab
- Alt+s Shift+H — previous_tab
- Alt+s , — move_tab:-1
- Alt+s . — move_tab:+1
- Alt+s 1..9 — goto_tab:N
Splits
- Alt+s \ — new_split:right
- Alt+s - — new_split:down
- Alt+s j — goto_split:bottom
- Alt+s k — goto_split:top
- Alt+s h — goto_split:left
- Alt+s l — goto_split:right
- Alt+s z — toggle_split_zoom
- Alt+s e — equalize_splits
Notes
- clearDefaultKeybinds = true means only the above are active.
- The Alt+s> notation denotes a two-key chord: hold Alt, press s, then the next key.
---
## ⚙️ Default Options Reference (as configured)
Terminal and window
- term: xterm-256color
- window-width: 110
- window-height: 32
- window-theme: dark
- window-save-state: always
- gtk-single-instance: true
- quick-terminal-position: center
Appearance
- theme: catppuccin-mocha (dark and light mapped to mocha)
- font-family: Maple Mono NF
- font-size: 12
- adjust-cell-height: 10%
- background-opacity: 1.00
- background-blur-radius: 60
- selection-background: #2d3f76
- selection-foreground: #c8d3f5
- cursor-style: bar
- unfocused-split-opacity: 0.5
Behavior
- confirm-close-surface: false
- mouse-hide-while-typing: true
- wait-after-command: false
- shell-integration: detect
- shell-integration-features: cursor,sudo
Integrations
- Fish, Zsh, Bash integrations enabled
---
## 📝 Style/Formatting Notes
This cheatsheet mirrors your Emacs cheatsheets style:
- Clear section headers with emoji
- Bulleted lists with concise descriptions
- Short “Notes” blocks for special behaviors
If youd like, I can link this from a central index or add more Ghostty tips (themes, performance flags, troubleshooting).

View File

@@ -0,0 +1,164 @@
# Guía de Personalización de Hyprland en ZaneyOS
Esta guía ofrece una visión práctica para personalizar tu experiencia con Hyprland en ZaneyOS. Veremos los archivos más relevantes, qué hacen y pequeños cambios seguros que puedes aplicar.
Nota: Estos archivos están escritos en Nix. Un pequeño error de sintaxis puede romper las compilaciones. Realiza un cambio a la vez y mantén tus ediciones bajo control de versiones.
## Aplicar tus cambios
Preferido (específico de ZaneyOS):
- `zcli rebuild`
- Nota: el alias `fr` está obsoleto.
Método manual de respaldo (funciona en cualquier instalación):
- Desde la raíz del repo, reemplaza PROFILE por tu perfil (intel, nvidia, nvidia-laptop, vm):
- `sudo nixos-rebuild switch --flake .#PROFILE`
---
### `binds.nix` — Atajos de teclado
Controla atajos de teclado y ratón.
Ubicación: `modules/home/hyprland/binds.nix`
Formato: `MODIFICADOR, TECLA, DISPATCHER, VALOR`
Ejemplo: Cambiar la terminal de Super+Return a Super+T
```nix
# ...
bind = [
# ...
"$modifier,T,exec, ${terminal}"
# ...
];
# ...
```
---
### `exec-once.nix` — Aplicaciones al iniciar
Comandos que se ejecutan automáticamente con Hyprland.
Ubicación: `modules/home/hyprland/exec-once.nix`
Ejemplo: Añadir copyq al inicio
```nix
# ...
exec-once = [
# ...
"pypr &"
"copyq"
];
# ...
```
---
### `decoration.nix` — Bordes, sombras, desenfoque
Ubicación: `modules/home/hyprland/decoration.nix`
Ejemplo: Esquinas redondeadas
```nix
# ...
decoration = {
rounding = 10;
};
# ...
```
---
### `env.nix` — Variables de entorno
Ubicación: `modules/home/hyprland/env.nix`
Ejemplo: Habilitar Wayland para Firefox
```nix
# ...
env = [
"SDL_VIDEODRIVER, wayland"
"MOZ_ENABLE_WAYLAND, 1"
];
# ...
```
---
### `gestures.nix` — Gestos del touchpad
Ubicación: `modules/home/hyprland/gestures.nix`
Ejemplo: Desactivar deslizamiento entre espacios
```nix
# ...
gestures = {
workspace_swipe = 0;
};
# ...
```
---
### `misc.nix` — Ajustes varios
Ubicación: `modules/home/hyprland/misc.nix`
Ejemplo: Activar Frecuencia de Actualización Variable (VRR)
```nix
# ...
misc = {
vrr = 1;
};
# ...
```
---
### `hyprland.nix` — Configuración principal
Ubicación: `modules/home/hyprland/hyprland.nix`
Ejemplo: Distribución del teclado
```nix
# ...
input = {
kb_layout = "us";
};
# ...
```
---
### `windowrules.nix` — Reglas de ventanas
Ubicación: `modules/home/hyprland/windowrules.nix`
Ejemplo: Hacer que Thunar flote siempre
```nix
# ...
windowrule = [
"float, class:^(foot-floating)$"
"float, class:^(Thunar)$"
];
# ...
```
---
## Consejos útiles
- Realiza un cambio a la vez y recompila para validar.
- Mantén una terminal abierta mientras experimentas por si cambias el atajo del lanzador.
- Si algo se rompe, reinicia y elige una generación anterior en el menú de arranque.

View File

@@ -0,0 +1,163 @@
# A Guide to Customizing Hyprland in ZaneyOS
This guide provides a practical overview for customizing your Hyprland experience in ZaneyOS. Well cover the most relevant files, what they do, and small, safe edits you can make.
Note: These files are written in Nix. A small syntax error can break builds. Make one change at a time and keep your edits under version control.
## Applying your changes
Preferred (ZaneyOS-specific):
- `zcli rebuild`
- Note: The `fr` alias is deprecated.
Manual backup method (works anywhere):
- From the repo root, replace PROFILE with your profile (intel, nvidia, nvidia-laptop, vm):
- `sudo nixos-rebuild switch --flake .#PROFILE`
---
### `binds.nix` — Keybindings
Controls keyboard and mouse shortcuts.
Location: `modules/home/hyprland/binds.nix`
Format: `MODIFIER, KEY, DISPATCHER, VALUE`
Example: Change terminal from Super+Return to Super+T
```nix
# ...
bind = [
# ...
"$modifier,T,exec, ${terminal}"
# ...
];
# ...
```
---
### `exec-once.nix` — Startup applications
Commands that start automatically with Hyprland.
Location: `modules/home/hyprland/exec-once.nix`
Example: Add copyq to autostart
```nix
# ...
exec-once = [
# ...
"pypr &"
"copyq"
];
# ...
```
---
### `decoration.nix` — Borders, shadows, blur
Location: `modules/home/hyprland/decoration.nix`
Example: Rounded corners
```nix
# ...
decoration = {
rounding = 10;
};
# ...
```
---
### `env.nix` — Environment variables
Location: `modules/home/hyprland/env.nix`
Example: Enable Wayland for Firefox
```nix
# ...
env = [
"SDL_VIDEODRIVER, wayland"
"MOZ_ENABLE_WAYLAND, 1"
];
# ...
```
---
### `gestures.nix` — Touchpad gestures
Location: `modules/home/hyprland/gestures.nix`
Example: Disable workspace swipe
```nix
# ...
gestures = {
workspace_swipe = 0;
};
# ...
```
---
### `misc.nix` — Misc settings
Location: `modules/home/hyprland/misc.nix`
Example: Enable Variable Refresh Rate
```nix
# ...
misc = {
vrr = 1;
};
# ...
```
---
### `hyprland.nix` — Main configuration
Location: `modules/home/hyprland/hyprland.nix`
Example: Keyboard layout
```nix
# ...
input = {
kb_layout = "us";
};
# ...
```
---
### `windowrules.nix` — Window rules
Location: `modules/home/hyprland/windowrules.nix`
Example: Float Thunar always
```nix
# ...
windowrule = [
"float, class:^(foot-floating)$"
"float, class:^(Thunar)$"
];
# ...
```
---
## Helpful tips
- Make one change at a time and rebuild to validate.
- Keep a terminal open during experiments in case your launcher keybind changes.
- If something breaks, reboot and choose a previous generation in the boot menu.

View File

@@ -0,0 +1,91 @@
# Hyprland Keybindings — ddubsOS
## 🗝️ Conventions
- SUPERKEY = Mod key (Hyprland `$modifier`)
- SHIFT, CTRL, ALT used as shown
- Arrows and hjkl are both supported for movement
---
## 🚀 Applications
- SUPERKEY+Return — Launch default terminal (${terminal})
- SUPERKEY+SHIFT+Return — Launch foot (floating)
- SUPERKEY+ALT+Return — Launch WezTerm
- SUPERKEY+CTRL+Return — Launch Ghostty
- SUPERKEY+W — Launch browser (${browser})
- SUPERKEY+Y — Kitty running Yazi (file manager)
- SUPERKEY+T — Thunar (also another mapping present: "exec, exec, thunar")
- SUPERKEY+M — Pavucontrol (audio)
- SUPERKEY+G — VS Code
- SUPERKEY+O — OBS Studio
- SUPERKEY+E — Emoji picker (emopicker9000)
- SUPERKEY+V — Clipboard menu (cliphist via rofi)
- SUPERKEY+D — Rofi menu
- SUPERKEY+SHIFT+D — Dock
- SUPERKEY+CTRL+D — Sherlock (alt menu)
- SUPERKEY+SHIFT+W — Web search
- SUPERKEY+ALT+W — Warp terminal (commented alternative: wallsetter)
- SUPERKEY+CTRL+W — Waypaper
- SUPERKEY+N — Note from clipboard
- SUPERKEY+SHIFT+N — SwayNC reset
- SUPERKEY+ALT+D — Discord Canary
- SUPERKEY+C — Hyprpicker (color picker)
- SHIFT+ALT+S — Hyprshot region (non-SUPER shortcut)
## 🧭 Hyprland UI/Plugins
- SUPERKEY+TAB — Hyprspace Overview toggle (all)
- SUPERKEY+SHIFT+TAB — Hyprspace Overview close (all)
- ALT+Space — Hyprexpo toggle
- SUPERKEY+A — AGS Overview toggle
## 📸 Screenshots
- SUPERKEY+S — screenshootin
- SUPERKEY+SHIFT+S — screenshootin-satty
- SUPERKEY+ALT+S — hyprpanel toggleWindow settings-dialog
## 🪟 Window Management
- SUPERKEY+Q — Kill active window
- SUPERKEY+P — Pseudo tile
- SUPERKEY+SHIFT+I — Toggle split
- SUPERKEY+F — Fullscreen
- SUPERKEY+SHIFT+F — Toggle floating
- SUPERKEY+ALT+F — Workspace option: allfloat
- SUPERKEY+SHIFT+C — Exit Hyprland
- SUPERKEY+SPACE — Toggle floating
- SUPERKEY+SHIFT+SPACE — Workspace option: allfloat
- SUPERKEY+SHIFT+M — swap_layout
### Move Window
- SUPERKEY+SHIFT+Left/Right/Up/Down — Move window L/R/U/D
- SUPERKEY+SHIFT+H/J/K/L — Move window L/D/U/R
### Swap Window
- SUPERKEY+ALT+Left/Right/Up/Down — Swap window L/R/U/D
- SUPERKEY+ALT+[, . , - , ,] — Swap window L/R/U/D (keycodes 43,46,45,44)
### Focus Movement
- SUPERKEY+Left/Right/Up/Down — Focus L/R/U/D
- SUPERKEY+H/J/K/L — Focus L/D/U/R
### Workspace Navigation
- SUPERKEY+1..9,0 — Go to workspace 1..10
- SUPERKEY+SHIFT+1..9,0 — Move window to workspace 1..10
- SUPERKEY+CTRL+Right/Left — Next/Previous workspace (relative)
- SUPERKEY+Mouse Wheel Down/Up — Workspace e+1 / e-1
### Alt-Tab
- ALT+Tab — Cycle next
- ALT+Tab — Bring active to top (runs twice to ensure raise)
## 🔊 Media & Brightness
- XF86AudioRaiseVolume — wpctl set-volume +5%
- XF86AudioLowerVolume — wpctl set-volume -5%
- XF86AudioMute — toggle sink mute
- XF86AudioPlay/Pause — playerctl play-pause
- XF86AudioNext/Prev — playerctl next/previous
- XF86MonBrightnessDown/Up — brightnessctl -5% / +5%
## 🖱️ Mouse Bindings
- SUPERKEY + Left Mouse — Move window
- SUPERKEY + Right Mouse — Resize window

View File

@@ -0,0 +1,59 @@
# Hyprland Window Rules — ddubsOS
## 🧩 Tags and Classification
- file-manager — Thunar, Nautilus, PCManFM-Qt
- terminal — Ghostty, WezTerm, Alacritty, Kitty, kitty-dropterm
- browser — Brave, Firefox, Chrome, Thorium/Cachy
- video — VLC, mpv, Clapper
- projects — VSCodium/VSCode
- im — Discord, WebCord, Vesktop, Ferdium, WhatsApp, Telegram, Teams
- obs — OBS Studio
- games — gamescope, steam_app_*
- gamestore — Steam, Lutris, Heroic
- settings — various settings apps (nm-applet, pavucontrol, file-roller, rofi, etc.)
## 🪟 Floating, Size, and Position
- foot-floating — float, size 60% x 60%, center
- Picture-in-Picture — float, 95%/75% opacity, pinned, keep aspect ratio, position at ~72%/7%
- Authentication Required dialogs — float, center
- Settings-tagged windows — float, size 70% x 70%
- Ferdium — float, center, size 60% x 70%
- Clapper — float
- VSCodium setup dialogs — float (title negative rules)
- Steam/Heroic non-main dialogs — float (title negative rules)
- File chooser dialogs — float; size 70% x 60% (Open Files); float on save prompts
## 🎨 Visual Effects
- noblur — games
- content none — mpv (prevent black screen on maximize)
- Opacity by tag:
- browser: 1.0 / 1.0
- video: 1.0 / 1.0
- projects: 0.9 / 0.8
- im: 0.94 / 0.86
- file-manager: 0.9 / 0.8
- terminal: 1.0 / 0.8
- settings: 0.8 / 0.7
- Extra opacity tweaks:
- gedit/GNOME Text Editor/mousepad: 0.8 / 0.7
- seahorse: 0.9 / 0.8
## 🧭 Workspace Assignment
- im* — workspace 3
- browser* — workspace 2
- obs* — workspace 10
## 🧪 XWayland and Special Cases
- Example targeted xwayland rule: noblur for class “resolve” on xwayland:1
## 🌱 Environment (set via Hyprland)
- NIXOS_OZONE_WL=1, NIXPKGS_ALLOW_UNFREE=1
- XDG_CURRENT_DESKTOP=Hyprland, XDG_SESSION_TYPE=wayland, XDG_SESSION_DESKTOP=Hyprland
- GDK_BACKEND=wayland,x11, CLUTTER_BACKEND=wayland
- QT_QPA_PLATFORM=wayland;xcb, QT_WAYLAND_DISABLE_WINDOWDECORATION=1, QT_AUTO_SCREEN_SCALE_FACTOR=1
- SDL_VIDEODRIVER=x11 (explicit)
- MOZ_ENABLE_WAYLAND=1
- AQ_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1
- GDK_SCALE=1, QT_SCALE_FACTOR=1
- EDITOR=nvim

View File

@@ -0,0 +1,61 @@
# Kitty on ddubsOS — Summary & Cheatsheet
## 🚀 Summary of modules/home/terminals/kitty.nix
- Program
- Kitty enabled with package pkgs.kitty
- Shell integrations: Zsh, Fish, Bash (mode: enabled)
- Appearance & Behavior
- Font: Maple Mono NF, size 12
- Scrollback: 10,000 lines; wheel min lines: 1; padding: 4px
- Confirm close: 0 (no confirm); audio bell: disabled; mouse hide wait: 60
- Cursor trail: 1; tab fade: 1; active/inactive tab font style: bold
- Tab bar: top, powerline style
- Layouts: splits enabled
- URL handling: open with default; detect URLs: true; allow_remote_control: true
- Theme (Catppuccin Mocha manual config in extraConfig)
- Foreground/background, selection, cursor, borders, tab bar, and 16-color palette explicitly set
---
## 🗝️ Keybindings Cheatsheet (extraConfig)
Clipboard
- Ctrl+Shift+V — paste_from_selection
- Shift+Insert — paste_from_selection
Scrollback
- Ctrl+Shift+Up / k — scroll_line_up
- Ctrl+Shift+Down / j — scroll_line_down
- Ctrl+Shift+PageUp — scroll_page_up
- Ctrl+Shift+PageDown — scroll_page_down
- Ctrl+Shift+Home — scroll_home
- Ctrl+Shift+End — scroll_end
- Ctrl+Shift+H — show_scrollback
Windows/Tabs/Layout
- Alt+N — new_window_with_cwd
- Alt+W — close_window
- Ctrl+Shift+Enter — split horizontal (hsplit)
- Ctrl+Shift+S — split vertical (vsplit)
- Ctrl+Shift+] / [ — next_window / previous_window
- Ctrl+Shift+F — move_window_forward
- Ctrl+Shift+B — move_window_backward
- Ctrl+Shift+` — move_window_to_top
- Ctrl+Shift+1..0 — first..tenth_window
- Ctrl+Shift+Right/Left — next_tab / previous_tab
- Ctrl+Shift+T — new_tab
- Ctrl+Shift+Q — close_tab
- Ctrl+Shift+L — next_layout
- Ctrl+Shift+. / , — move_tab_forward / move_tab_backward
Font Size
- Ctrl+Shift+Up — increase_font_size
- Ctrl+Shift+Down — decrease_font_size
- Ctrl+Shift+Backspace — restore_font_size
Notes
- Color scheme is embedded; Stylix support disabled in this config.

View File

@@ -0,0 +1,67 @@
# Guía para Principiantes de ZaneyOS: Personalización Básica
¡Bienvenido! Esta guía es para quienes son nuevos en Nix y quieren realizar personalizaciones comunes y seguras en su instalación de ZaneyOS. Mantendremos todo simple y al grano.
## Diseño del repositorio (dónde cambiar las cosas)
- `flake.nix`: Punto de entrada del sistema. Normalmente no necesitas editarlo para ajustes cotidianos.
- `hosts/`: Configuración por máquina.
- `hosts/<tu-hostname>/`
- `variables.nix`: Tu panel principal (activar/desactivar funciones, establecer opciones).
- `host-packages.nix`: Paquetes extra solo para esta máquina.
- `modules/`: Bloques reutilizables para el sistema y Home Manager.
- `modules/core/global-packages.nix`: Paquetes instalados en todas las máquinas.
- `modules/home/hyprland/binds.nix`: Atajos de Hyprland.
## Instalar paquetes
Dos patrones comunes:
### 1) Solo en esta máquina
Edita `hosts/<tu-hostname>/host-packages.nix` y añade el nombre del paquete:
```nix
[
brave
(catppuccin-vsc.override {
variant = "mocha";
})
cowsay
]
```
### 2) En todas las máquinas
Edita `modules/core/global-packages.nix` y añade el paquete a la lista.
## Ajustes de monitores (por host)
Edita `hosts/<tu-hostname>/variables.nix` y define la(s) línea(s) extra del monitor:
```nix
# Ejemplo: 1080p a 144 Hz en DP-1
extraMonitorSettings = "monitor=DP-1,1920x1080@144";
```
## Cambiar atajos de Hyprland
Edita `modules/home/hyprland/binds.nix`. Por ejemplo, cambiar la terminal de Super+Return a Super+T:
```nix
"SUPER, T, exec, ${terminal}"
```
## Aplicar y probar tus cambios
Preferido (específico de ZaneyOS):
- `zcli rebuild`
- Nota: el alias `fr` está obsoleto.
Método manual de respaldo (funciona en cualquier instalación):
- Desde la raíz del repo, reemplaza PROFILE por tu perfil (intel, nvidia, nvidia-laptop, vm):
- `sudo nixos-rebuild switch --flake .#PROFILE`
Consejos
- Si un rebuild falla, lee el error cerca del final: suele apuntar al archivo/línea exacta.
- Si un cambio rompe tu sesión tras reiniciar, elige una “generación” anterior en el menú de arranque.
- Usa Git para versionar tus cambios y poder revertir fácilmente.

View File

@@ -0,0 +1,66 @@
# ZaneyOS Beginners Guide to Customization
Welcome! This guide is for users who are new to Nix and want to make common, safe customizations to their ZaneyOS setup. Well keep it simple and focus on essentials.
## Repository layout (where to change things)
- `flake.nix`: Entry point for the whole system. You generally dont need to edit this for daytoday tweaks.
- `hosts/`: Permachine configuration.
- `hosts/<your-hostname>/`
- `variables.nix`: Your main control panel (enable/disable features, set options).
- `host-packages.nix`: Extra packages only for this one machine.
- `modules/`: Reusable building blocks for the system and Home Manager.
- `modules/core/global-packages.nix`: Packages installed on all machines.
- `modules/home/hyprland/binds.nix`: Hyprland keybindings.
## Installing packages
Two common patterns:
### 1) Only on this machine
Edit `hosts/<your-hostname>/host-packages.nix` and add the package name:
```nix
[
brave
(catppuccin-vsc.override {
variant = "mocha";
})
cowsay
]
```
### 2) On all machines
Edit `modules/core/global-packages.nix` and add the package to the list.
## Monitor settings (per host)
Edit `hosts/<your-hostname>/variables.nix` and set the extra monitor line(s):
```nix
# Example: 1080p at 144 Hz on DP-1
extraMonitorSettings = "monitor=DP-1,1920x1080@144";
```
## Change Hyprland keybindings
Edit `modules/home/hyprland/binds.nix`. For example, change terminal from Super+Return to Super+T:
```nix
"SUPER, T, exec, ${terminal}"
```
## Apply and test your changes
Preferred (ZaneyOS-specific):
- `zcli rebuild`
- Note: The `fr` alias is deprecated.
Manual backup method (works anywhere):
- From the repo root, replace PROFILE with your profile (intel, nvidia, nvidia-laptop, vm):
- `sudo nixos-rebuild switch --flake .#PROFILE`
Tips
- If a rebuild fails, read the error near the bottom of the output—it usually points to the exact file/line.
- If a change breaks your session after a reboot, pick an older “generation” from the boot menu to roll back.
- Use Git to track your edits so you can revert easily.

View File

@@ -0,0 +1,93 @@
# Project Guide — ZaneyOS
Scope
- A reproducible NixOS flake tailored for desktop systems with per-host overrides, GPU/VM profiles, and an integrated Home Manager layer (Hyprland, Waybar, shells, scripts).
- Repo location is expected at ~/zaneyos. If you place it elsewhere, update modules/core/nh.nix (programs.nh.flake) to the new path.
Quick commands
- Build and switch (preferred: nh/zcli)
- fr → nh os switch --hostname <profile> # alias provided by zsh/bash modules
- fu → nh os switch --hostname <profile> --update
- zcli rebuild
- zcli update
- Build for next boot (safer for larger changes)
- zcli rebuild-boot
- or: sudo nixos-rebuild boot --flake .#<profile>
- Direct NixOS (if you prefer without nh/zcli)
- sudo nixos-rebuild switch --flake .#<profile>
- Validate the flake
- nix flake check
- Format Nix files (nixfmt-rfc-style is included)
- find . -name "*.nix" -print0 | xargs -0 nixfmt
- Host management
- zcli update-host [hostname] [profile] # edits flake.nix host/profile
- zcli add-host <hostname> [profile] # copies hosts/default and guides hardware.nix
- Diagnostics and maintenance
- zcli diag # writes ~/diag.txt
- zcli cleanup # prunes older generations (prompts for retention)
zcli advanced options (for rebuild/update)
- --dry (-n) preview only
- --ask (-a) confirm before proceeding
- --cores N cap build CPU usage
- --verbose (-v) more logs
- --no-nom disable nix-output-monitor
Profiles and when to use them
- amd, intel, nvidia, nvidia-laptop (hybrid), vm
- Choose with the <profile> argument in nh/nixos-rebuild commands (e.g., .#vm)
High-level architecture
- flake.nix
- Inputs: nixpkgs 25.05, home-manager 25.05, stylix, nvf, nix-flatpak
- Local constants: system, host, profile, username
- nixosConfigurations: one per GPU/VM profile via mkNixosConfig
- Each configuration imports profiles/<profile>
- profiles/<profile>/default.nix
- Imports the active host and the system module stacks:
- ../../hosts/${host}
- ../../modules/drivers
- ../../modules/core
- Flips toggles: drivers.*.enable and vm.guest-services.enable
- Hybrid laptops: profiles/nvidia-laptop pulls intel/nvidia Bus IDs from the hosts variables.nix and wires nvidia-prime
- hosts/<hostname>/
- default.nix imports hardware.nix and host-packages.nix
- variables.nix is the control panel for UX + feature toggles:
- displayManager (greetd vs sddm)
- terminal/browser defaults (enable per-terminal via flags)
- waybarChoice, animChoice, stylixImage
- 24h clock, thunarEnable, printEnable, NFS
- intelID/nvidiaID for Prime offload
- modules/core
- default.nix composes focused NixOS modules: boot, flatpak, fonts, hardware, network, nfs, nh, packages, printing, display manager (conditional greetd/sddm), security, services (PipeWire, SSH, Bluetooth, fstrim; smartd conditional on profile), steam, stylix, syncthing, system (nix settings, locales, env vars), thunar, user (Home Manager), virtualisation, xserver
- user.nix integrates Home Manager and creates users.${username}; passes extraSpecialArgs { inputs, username, host, profile } to the home layer
- nh.nix enables nh, configures GC, and pins programs.nh.flake = /home/${username}/zaneyos
- modules/drivers
- Aggregates AMD, Intel, NVIDIA, NVIDIA Prime, and VM guest services
- nvidia-prime-drivers.nix exposes options.drivers.nvidia-prime.{enable,intelBusID,nvidiaBusID} consumed by the nvidia-laptop profile
- vm-guest-services.nix enables qemu-guest, spice agents when vm.guest-services.enable = true
- modules/home
- default.nix composes the user environment (Hyprland, Waybar via waybarChoice, Rofi, Yazi, Kitty/WezTerm/Ghostty/Alacritty toggles, Zsh/Bash config, Git, NVF/Neovim, OBS, swaync, scripts, Stylix, optional Doom Emacs/VSCodium/Helix)
- scripts/default.nix installs user-space tools including zcli; zcli wraps rebuild/update/boot builds, cleanup, diagnostics, host management, and Doom Emacs lifecycle
Where to change what
- flake.nix: set username, host, profile; add inputs; wire outputs
- hosts/<hostname>/{variables.nix,hardware.nix,host-packages.nix}: per-machine behavior, theming, and hardware
- modules/core/*: system-level settings, services, packages
- modules/home/*: user apps, shell, window manager, UI
Common workflows
- Small UX tweaks: edit hosts/<hostname>/variables.nix → fr
- Theme swap: edit stylixImage/waybarChoice in variables.nix → fr (or zcli rebuild-boot)
- GPU/VM switch: choose nixos-rebuild/nh profile (e.g., nh os switch --hostname vm) and optionally update host/profile constants with zcli update-host
Validation and troubleshooting
- nix flake check for a quick sanity test
- zcli diag to produce a detailed hardware/system report
- If the repo is not under ~/zaneyos, update modules/core/nh.nix so zcli/nh operate on the correct path
Documentation pointers
- README.md: requirements, first-time install methods, upgrade overview
- zcli.md: full CLI documentation, commands, options, and examples
- cheatsheets/: quick-reference guides for Hyprland, terminals, editors, etc.

View File

@@ -0,0 +1,88 @@
# Tmux on ddubsOS — Summary & Cheatsheet
## 🚀 Summary of modules/home/terminals/tmux.nix
### ⌨️ What is the Tmux Prefix?
- The prefix is a special key you press before most tmux commands, so tmux can tell them apart from regular typing.
- Notation guide used below:
- C-x = hold Control and press x (e.g., C-a means Control+a)
- M-x = hold Alt/Meta and press x (sometimes shown as Alt+x)
- S-x = hold Shift and press x (often implicit for uppercase letters)
- Tmux default prefix is C-b (Control+b). In this config its changed to C-a (Control+a), which mirrors the historical GNU Screen workflow many users prefer.
Quick examples (with prefix = C-a):
- New window: press C-a then c
- Next window: press C-a then n
- Split horizontally: press C-a then |
- Split vertically: press C-a then -
- Resize left: press C-a then C-h (hold Control and press h)
- Program
- tmux enabled; prefix: C-a; key mode: vi; baseIndex: 1; pane-base-index: 1
- baseIndex: window numbering starts at 1 instead of 0
- pane-base-index: pane numbering inside a window starts at 1 instead of 0
- Terminal overrides RGB; terminal set to "kitty"; shell: zsh
- Mouse: enabled; 12-hour clock; history-limit: 5000; renumber-windows: on
- Status/UX
- Status bar at top; passthrough: on; confirmations reduced (kill-pane without prompt)
- Plugins
- vim-tmux-navigator, sensible, catppuccin
---
## 🗝️ Keybindings Cheatsheet
Navigation
- Prefix h/j/k/l — select-pane Left/Down/Up/Right
- Prefix o — select next pane
- C-Tab — next-window
- C-S-Tab — previous-window
- M-Tab — new-window
Splits
- Prefix | — split-window -h (cwd)
- Prefix \ — split-window -fh (cwd)
- Prefix - — split-window -v (cwd)
- Prefix _ — split-window -fv (cwd)
Resize
- Prefix C-h/C-j/C-k/C-l — resize-pane 15 cols/rows in direction
- Prefix m — toggle zoom (resize-pane -Z)
Windows
- Prefix c — new-window
- Prefix n — next-window
- Prefix p — previous-window (note: config binds 'n' twice; intended p for previous)
- Prefix t — clock-mode
- Prefix q — display-panes
- Prefix u — refresh-client
Session/Reload
- Prefix r — source-file ~/.config/tmux/tmux.conf
- Prefix x — kill-pane (no prompt)
Popups (display-popup)
- Prefix C-y — lazygit (80%x80% at cwd)
- Prefix C-n — prompt for session name; create and switch
- Prefix C-j — switch session via fzf
- Prefix C-r — yazi (90%x90% at cwd)
- Prefix C-z — nvim ~/ddubsos/flake.nix (90%x90%)
- Prefix C-t — zsh (75%x75% at cwd)
Menu (display-menu)
- Prefix d — Dotfiles menu with quick-open entries:
- f: flake.nix (ddubsOS)
- c: core packages (ddubsOS)
- g: global packages (ddubsOS)
- k: keybinds (Hyprland)
- w: window rules (Hyprland)
- z: ZaneyOS flake.nix
- p: ZaneyOS packages
- q: Exit
Notes
- Pane/Window indices start at 1.
- Terminal passthrough and RGB enabled for truecolor.

View File

@@ -0,0 +1,41 @@
# WezTerm on ddubsOS — Summary & Cheatsheet
## 🚀 Summary of modules/home/terminals/wezterm.nix
- Program
- WezTerm enabled with package pkgs.wezterm
- Lua config provided at ~/.config/wezterm/wezterm.lua
- Appearance & Behavior
- Hide tab bar if only one tab
- Font fallback chain: Maple Mono NF (thin), Fira Code, JetBrains Mono, Hack
- Font: FiraCode Regular (window frame: JetBrainsMono Nerd Font Mono); size: 12
- Color scheme: Catppuccin Mocha; custom tab bar colors
- Window background opacity: 0.75; padding: 10 on all sides
- Fancy tab bar enabled; custom window_frame font
- Cursor: BlinkingUnderline, blink rate 500
- Term: xterm-256color
- Performance: max_fps 120; animation_fps 30
- Wayland: enable_wayland = true
- Missing glyph warnings: disabled
---
## 🗝️ Keybindings Cheatsheet
Tabs
- Alt+t — Spawn tab (CurrentPaneDomain)
- Alt+w — Close current tab (no confirm)
- Alt+n — Next tab
- Alt+p — Previous tab
Panes
- Alt+v — Split vertical
- Alt+h — Split horizontal
- Alt+q — Close current pane (no confirm)
- Alt+Arrow keys — Activate pane in arrow direction
Notes
- Lua contains optional NVIDIA-related tuning commented out.
- default_prog can be enabled if Starship prompt has startup issues.

View File

@@ -0,0 +1,110 @@
# Yazi Keymap — ddubsOS (Human-friendly)
## 🧭 Navigation
- k / Up — Move up
- j / Down — Move down
- Ctrl+u / Shift+PageUp — Half page up
- Ctrl+d / Shift+PageDown — Half page down
- Ctrl+b / PageUp — Page up
- Ctrl+f / PageDown — Page down
- g g — Go to top
- G — Go to bottom
- h / Left — Go to parent directory
- l / Right — Enter child directory
- H — Back (previous directory)
- L — Forward (next directory)
## 🧰 Selection & Visual Mode
- Space — Toggle current, then move down
- Ctrl+a — Select all
- Ctrl+r — Invert selection
- v — Enter visual (select) mode
- V — Visual unset mode
## 🔎 Search & Filter
- s — Search by name (fd)
- S — Search by content (ripgrep)
- Ctrl+s — Cancel search
- f — Filter files (smart)
- / — Find next (smart)
- ? — Find previous (smart)
- n — Next found
- N — Previous found
## 📂 Open & Preview
- o / Enter — Open
- O / Shift+Enter — Open interactively
- Tab — Spot hovered file
- K / J — Seek up/down in preview (±5)
## 📋 Clipboard (Yank/Copy/Move)
- y — Yank (copy)
- x — Yank cut (move)
- p — Paste
- P — Paste (overwrite)
- - — Symlink absolute path of yanked
- _ — Symlink relative path of yanked
- Ctrl+- — Hardlink yanked
- Y / X — Unyank (cancel yank)
## 🗑️ Delete
- d — Trash selected
- D — Delete permanently
## ✏️ Create & Rename
- a — Create file/dir (use trailing / for folders)
- r — Rename (cursor before extension)
## 🖥️ Shell
- ; — Run shell command (interactive)
- : — Run shell command (block until done)
## 👀 Hidden Files
- . — Toggle hidden
## 🧭 Quick Jumps
- g h — Go to $HOME
- g c — Go to ~/.config
- g d — Go to ~/Downloads
- g Space — Jump interactively
- z — Zoxide jump
- Z — FZF jump (file/dir)
## 🧾 Linemode (Metadata View)
- m s — Size
- m p — Permissions
- m b — Birth time
- m m — Modified time
- m o — Owner
- m n — None
## 🔤 Sorting
- , m / , M — Sort by mtime (asc/desc)
- , b / , B — Sort by btime (asc/desc)
- , e / , E — Sort by extension (asc/desc)
- , a / , A — Sort alphabetically (asc/desc)
- , n / , N — Sort naturally (asc/desc)
- , s / , S — Sort by size (asc/desc)
- , r — Sort randomly
## 🗂️ Tabs
- t — New tab (current dir)
- 1..9 — Switch to tab 1..9
- [ / ] — Previous / Next tab
- { / } — Swap tab left / right
## 🧮 Tasks & Help
- w — Show tasks (task manager)
- ~ / F1 — Open help
## 🧩 Plugins (Prepend)
- g i — LazyGit (plugin)
- l — Smart enter (dir enter or open file)
## 🧰 Spot, Pick, Input, Confirm, Completion (Modes)
- Spot mode: Esc/C-[/Ctrl+c/Tab to close; k/j/Up/Down navigate; h/l or Left/Right to swipe; c c copy cell; ~ / F1 for help
- Pick mode: Esc/C-[/Ctrl+c to cancel; Enter to submit; k/j/Up/Down navigate; ~ / F1 help
- Input mode: Esc/C-[ to escape; i/I/a/A enter insert/append (with BOL/EOL moves); visual selections (v, V, Ctrl-A/E); movement (h/l/Left/Right/C-b/C-f/b/B/w/W/e/E/Alt-b/Alt-f); delete/backspace/kill words; cut/copy/paste (d/D/c/C/x/y/p/P); undo/redo (u/C-r); ~ / F1 help
- Confirm mode: Esc/C-[/Ctrl+c/n to cancel; Enter/y to submit; k/j/Up/Down navigate; ~ / F1 help
- Completion mode: Ctrl+c cancel; Tab submit; Enter submit completion + input; Alt-k/j or Up/Down/C-p/C-n navigate; ~ / F1 help