przystosowanie konfiguracji pod siebie
@@ -1,66 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
# 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!
|
|
||||||
@@ -1,305 +0,0 @@
|
|||||||
# 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.
|
|
||||||
@@ -1,294 +0,0 @@
|
|||||||
# 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! 🚀
|
|
||||||
@@ -1,276 +0,0 @@
|
|||||||
# 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! 🚀
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
# 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)
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
# 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 you’d like, I can link this from a central index or add more Ghostty tips (themes, performance flags, troubleshooting).
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
# A Guide to Customizing Hyprland in ZaneyOS
|
|
||||||
|
|
||||||
This guide provides a practical overview for customizing your Hyprland experience in ZaneyOS. We’ll 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.
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
# ZaneyOS Beginner’s 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. We’ll keep it simple and focus on essentials.
|
|
||||||
|
|
||||||
## Repository layout (where to change things)
|
|
||||||
|
|
||||||
- `flake.nix`: Entry point for the whole system. You generally don’t need to edit this for day‑to‑day tweaks.
|
|
||||||
- `hosts/`: Per‑machine 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.
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
# 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 host’s 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.
|
|
||||||
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
# 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 it’s 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.
|
|
||||||
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
120
flake.lock
generated
@@ -75,11 +75,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1757736223,
|
"lastModified": 1757995413,
|
||||||
"narHash": "sha256-4yhWsAvejkPRNdx9eKAVOQt1t8vI6qF/kITCRSIIiK8=",
|
"narHash": "sha256-vaU/7/PXoym6vnspGxhR29V9klGe9iy9zmp6x7w38f8=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "a73f8d6c29ea0e05c0dc570d4047e0aed1edd00d",
|
"rev": "4ae8996b3e139926c784acd22824cde46cd28833",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -105,44 +105,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1751685974,
|
|
||||||
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
|
||||||
"revCount": 92,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nvf",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1756770412,
|
|
||||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_2": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"stylix",
|
"stylix",
|
||||||
@@ -203,11 +166,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757784838,
|
"lastModified": 1757997814,
|
||||||
"narHash": "sha256-6aHo1++bAFdW1z+0tfuxM9EmxHvon90mHo8/+izXMcY=",
|
"narHash": "sha256-F+1aoG+3NH4jDDEmhnDUReISyq6kQBBuktTUqCUWSiw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6e28513cf2ee9a985c339fcef24d44f43d23456b",
|
"rev": "5820376beb804de9acf07debaaff1ac84728b708",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -233,21 +196,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mnw": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1756659871,
|
|
||||||
"narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=",
|
|
||||||
"owner": "Gerg-L",
|
|
||||||
"repo": "mnw",
|
|
||||||
"rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Gerg-L",
|
|
||||||
"repo": "mnw",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739444422,
|
"lastModified": 1739444422,
|
||||||
@@ -266,11 +214,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757487488,
|
"lastModified": 1757745802,
|
||||||
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
|
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
|
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -305,30 +253,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nvf": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"mnw": "mnw",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1757773905,
|
|
||||||
"narHash": "sha256-lM1K3cJsPQyiSGI3rE/F7u02fA/JYBsinMN49IQCY1s=",
|
|
||||||
"owner": "notashelf",
|
|
||||||
"repo": "nvf",
|
|
||||||
"rev": "7e74ee604a7c18dda21e6a809720ad37ab5bae43",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "notashelf",
|
|
||||||
"repo": "nvf",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"prismlauncher-cracked": {
|
"prismlauncher-cracked": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"libnbtplusplus": "libnbtplusplus",
|
"libnbtplusplus": "libnbtplusplus",
|
||||||
@@ -356,7 +280,6 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nvf": "nvf",
|
|
||||||
"prismlauncher-cracked": "prismlauncher-cracked",
|
"prismlauncher-cracked": "prismlauncher-cracked",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
}
|
}
|
||||||
@@ -368,13 +291,13 @@
|
|||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_2",
|
"systems": "systems",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@@ -382,11 +305,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757360005,
|
"lastModified": 1757956156,
|
||||||
"narHash": "sha256-VwzdFEQCpYMU9mc7BSQGQe5wA1MuTYPJnRc9TQCTMcM=",
|
"narHash": "sha256-f0W7qbsCqpi6swQ5w8H+0YrAbNwsHgCFDkNRMTJjqrE=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "834a743c11d66ea18e8c54872fbcc72ce48bc57f",
|
"rev": "0ce0103b498bb22f899ed8862d8d7f9503ed9cdb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -410,21 +333,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|||||||
40
flake.nix
@@ -14,11 +14,6 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nvf = {
|
|
||||||
url = "github:notashelf/nvf";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
firefox-addons = {
|
firefox-addons = {
|
||||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -30,15 +25,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||||
|
|
||||||
# Hypersysinfo (Optional)
|
|
||||||
#hyprsysteminfo.url = "github:hyprwm/hyprsysteminfo";
|
|
||||||
|
|
||||||
# QuickShell (optional add quickshell to outputs to enable)
|
|
||||||
#quickshell = {
|
|
||||||
# url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
#};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -55,20 +41,22 @@
|
|||||||
username = "garand_plg";
|
username = "garand_plg";
|
||||||
|
|
||||||
# Deduplicate nixosConfigurations while preserving the top-level 'profile'
|
# Deduplicate nixosConfigurations while preserving the top-level 'profile'
|
||||||
mkNixosConfig = gpuProfile: nixpkgs.lib.nixosSystem {
|
mkNixosConfig =
|
||||||
inherit system;
|
gpuProfile:
|
||||||
specialArgs = {
|
nixpkgs.lib.nixosSystem {
|
||||||
inherit inputs;
|
|
||||||
inherit username;
|
|
||||||
inherit host;
|
|
||||||
inherit profile; # keep using the let-bound profile for modules/scripts
|
|
||||||
inherit system;
|
inherit system;
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
inherit username;
|
||||||
|
inherit host;
|
||||||
|
inherit profile;
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./profiles/${gpuProfile}
|
||||||
|
nix-flatpak.nixosModules.nix-flatpak
|
||||||
|
];
|
||||||
};
|
};
|
||||||
modules = [
|
|
||||||
./profiles/${gpuProfile}
|
|
||||||
nix-flatpak.nixosModules.nix-flatpak
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
|||||||
@@ -1,14 +1,27 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
boot.initrd.luks.devices = {
|
boot.initrd.luks.devices = {
|
||||||
cryptroot = {
|
cryptroot = {
|
||||||
@@ -19,23 +32,30 @@
|
|||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/home" = {
|
||||||
{ device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/783D-A507";
|
device = "/dev/disk/by-uuid/783D-A507";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [
|
||||||
};
|
"fmask=0022"
|
||||||
|
"dmask=0022"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = lib.mkForce [
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/8e8cc3dc-5754-4757-a2d7-53e6a2c3b5a4";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
audacity
|
# audacity
|
||||||
discord
|
|
||||||
nodejs
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,17 +9,6 @@
|
|||||||
# SDDM background is set with stylixImage
|
# SDDM background is set with stylixImage
|
||||||
displayManager = "tui";
|
displayManager = "tui";
|
||||||
|
|
||||||
# Emable/disable bundled applications
|
|
||||||
tmuxEnable = false;
|
|
||||||
alacrittyEnable = false;
|
|
||||||
weztermEnable = false;
|
|
||||||
ghosttyEnable = false;
|
|
||||||
vscodeEnable = true;
|
|
||||||
# Note: This is evil-helix with VIM keybindings by default
|
|
||||||
helixEnable = false;
|
|
||||||
#To install: Enable here, zcli rebuild, then run zcli doom install
|
|
||||||
doomEmacsEnable = false;
|
|
||||||
|
|
||||||
# Hyprland Settings
|
# Hyprland Settings
|
||||||
# Examples:
|
# Examples:
|
||||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||||
@@ -57,26 +46,21 @@
|
|||||||
# Enable Printing Support
|
# Enable Printing Support
|
||||||
printEnable = true;
|
printEnable = true;
|
||||||
|
|
||||||
# Enable Thunar GUI File Manager
|
|
||||||
# Yazi is default File Manager
|
|
||||||
thunarEnable = true;
|
|
||||||
|
|
||||||
# Themes, waybar and animation.
|
|
||||||
# Only uncomment your selection
|
|
||||||
# The others much be commented out.
|
|
||||||
|
|
||||||
# Set Stylix Image
|
# Set Stylix Image
|
||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/zaneyos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
||||||
#stylixImage = ../../wallpapers/mountainscapedark.jpg;
|
#stylixImage = ../../wallpapers/DW_Pacts.jpg;
|
||||||
#stylixImage = ../../wallpapers/AnimeGirlNightSky.jpg;
|
#stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg;
|
||||||
#stylixImage = ../../wallpapers/Anime-Purple-eyes.png;
|
#stylixImage = ../../wallpapers/fire-nation.jpg;
|
||||||
#stylixImage = ../../wallpapers/Rainnight.jpg;
|
#stylixImage = ../../wallpapers/four-elements.jpg;
|
||||||
#stylixImage = ../../wallpapers/zaney-wallpaper.jpg;
|
#stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.jpg;
|
||||||
#stylixImage = ../../wallpapers/nix-wallpapers-strips-logo.jpg;
|
#stylixImage = ../../wallpapers/jablon.jpg;
|
||||||
#stylixImage = ../../wallpapers/beautifulmountainscape.jpg;
|
#stylixImage = ../../wallpapers/rammstein-log-two.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-log-one.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-log-three.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-one.jpg;
|
||||||
|
|
||||||
# Set Waybar
|
# Set Waybar
|
||||||
# Available Options:
|
# Available Options:
|
||||||
@@ -84,7 +68,7 @@
|
|||||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
||||||
# Throwback to ZaneyOS v1.0
|
# Throwback to GarandOS v1.0
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
||||||
# Very colorful and bright colors
|
# Very colorful and bright colors
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
||||||
@@ -98,8 +82,8 @@
|
|||||||
# animations-end4.nix (end-4 project very fluid)
|
# animations-end4.nix (end-4 project very fluid)
|
||||||
# animations-dynamic.nix (ml4w project)
|
# animations-dynamic.nix (ml4w project)
|
||||||
# animations-moving.nix (ml4w project)
|
# animations-moving.nix (ml4w project)
|
||||||
animChoice = ../../modules/home/hyprland/animations-def.nix;
|
# animChoice = ../../modules/home/hyprland/animations-def.nix;
|
||||||
#animChoice = ../../modules/home/hyprland/animations-end4.nix;
|
animChoice = ../../modules/home/hyprland/animations-end4.nix;
|
||||||
#animChoice = ../../modules/home/hyprland/animations-dynamic.nix;
|
#animChoice = ../../modules/home/hyprland/animations-dynamic.nix;
|
||||||
#animChoice = ../../modules/home/hyprland/animations-moving.nix;
|
#animChoice = ../../modules/home/hyprland/animations-moving.nix;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./host-packages.nix
|
./host-packages.nix
|
||||||
|
|||||||
@@ -1,35 +1,51 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
];
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device =
|
||||||
|
"/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/C2A6-DF56";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = lib.mkForce [
|
||||||
{
|
{
|
||||||
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
|
device = "/dev/vg0/swap";
|
||||||
fsType = "ext4";
|
}
|
||||||
};
|
];
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/C2A6-DF56";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
audacity
|
audacity
|
||||||
discord
|
discord
|
||||||
|
|||||||
@@ -9,17 +9,6 @@
|
|||||||
# SDDM background is set with stylixImage
|
# SDDM background is set with stylixImage
|
||||||
displayManager = "sddm";
|
displayManager = "sddm";
|
||||||
|
|
||||||
# Emable/disable bundled applications
|
|
||||||
tmuxEnable = false;
|
|
||||||
alacrittyEnable = false;
|
|
||||||
weztermEnable = false;
|
|
||||||
ghosttyEnable = false;
|
|
||||||
vscodeEnable = false;
|
|
||||||
# Note: This is evil-helix with VIM keybindings by default
|
|
||||||
helixEnable = false;
|
|
||||||
#To install: Enable here, zcli rebuild, then run zcli doom install
|
|
||||||
doomEmacsEnable = false;
|
|
||||||
|
|
||||||
# Hyprland Settings
|
# Hyprland Settings
|
||||||
# Examples:
|
# Examples:
|
||||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||||
@@ -59,10 +48,6 @@
|
|||||||
# Enable Printing Support
|
# Enable Printing Support
|
||||||
printEnable = false;
|
printEnable = false;
|
||||||
|
|
||||||
# Enable Thunar GUI File Manager
|
|
||||||
# Yazi is default File Manager
|
|
||||||
thunarEnable = false;
|
|
||||||
|
|
||||||
# Themes, waybar and animation.
|
# Themes, waybar and animation.
|
||||||
# Only uncomment your selection
|
# Only uncomment your selection
|
||||||
# The others much be commented out.
|
# The others much be commented out.
|
||||||
@@ -70,14 +55,18 @@
|
|||||||
# Set Stylix Image
|
# Set Stylix Image
|
||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/zaneyos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = ../../wallpapers/mountainscapedark.jpg;
|
stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg;
|
||||||
#stylixImage = ../../wallpapers/AnimeGirlNightSky.jpg;
|
#stylixImage = ../../wallpapers/DW_Pacts.jpg;
|
||||||
#stylixImage = ../../wallpapers/Anime-Purple-eyes.png;
|
#stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg;
|
||||||
#stylixImage = ../../wallpapers/Rainnight.jpg;
|
#stylixImage = ../../wallpapers/fire-nation.jpg;
|
||||||
#stylixImage = ../../wallpapers/zaney-wallpaper.jpg;
|
#stylixImage = ../../wallpapers/four-elements.jpg;
|
||||||
#stylixImage = ../../wallpapers/nix-wallpapers-strips-logo.jpg;
|
#stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.jpg;
|
||||||
#stylixImage = ../../wallpapers/beautifulmountainscape.jpg;
|
#stylixImage = ../../wallpapers/jablon.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-log-two.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-log-one.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-log-three.jpg;
|
||||||
|
#stylixImage = ../../wallpapers/rammstein-one.jpg;
|
||||||
|
|
||||||
# Set Waybar
|
# Set Waybar
|
||||||
# Available Options:
|
# Available Options:
|
||||||
@@ -85,7 +74,7 @@
|
|||||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix;
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.nix;
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-simple.nix;
|
||||||
# Throwback to ZaneyOS v1.0
|
# Throwback to GarandOS v1.0
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-jerry.nix;
|
||||||
# Very colorful and bright colors
|
# Very colorful and bright colors
|
||||||
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
#waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 2.9 MiB |
BIN
img/demo.png
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 312 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 64 KiB |
@@ -5,7 +5,9 @@
|
|||||||
kernelPackages = pkgs.linuxPackages_zen;
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = [ "v4l2loopback" ];
|
||||||
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||||
kernel.sysctl = { "vm.max_map_count" = 2147483642; };
|
kernel.sysctl = {
|
||||||
|
"vm.max_map_count" = 2147483642;
|
||||||
|
};
|
||||||
loader.systemd-boot.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
loader.efi.canTouchEfiVariables = true;
|
||||||
# Appimage Support
|
# Appimage Support
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
# Import the host-specific variables.nix
|
|
||||||
vars = import ../../hosts/${host}/variables.nix;
|
vars = import ../../hosts/${host}/variables.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -16,11 +15,9 @@ in
|
|||||||
./network.nix
|
./network.nix
|
||||||
./nfs.nix
|
./nfs.nix
|
||||||
./nh.nix
|
./nh.nix
|
||||||
#./quickshell.nix #Disabled for now not using it yet
|
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./printing.nix
|
./printing.nix
|
||||||
# Conditionally import the display manager module
|
./greetd.nix
|
||||||
(if vars.displayManager == "tui" then ./greetd.nix else ./sddm.nix)
|
|
||||||
./security.nix
|
./security.nix
|
||||||
./services.nix
|
./services.nix
|
||||||
./steam.nix
|
./steam.nix
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||||
@@ -7,24 +8,12 @@
|
|||||||
services = {
|
services = {
|
||||||
flatpak = {
|
flatpak = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# List the Flatpak applications you want to install
|
|
||||||
# Use the official Flatpak application ID (e.g., from flathub.org)
|
|
||||||
# Examples:
|
|
||||||
packages = [
|
packages = [
|
||||||
#"com.github.tchx84.Flatseal" #Manage flatpak permissions - should always have this
|
"org.vinegarhq.Sober"
|
||||||
#"com.rtosta.zapzap" # WhatsApp client
|
"io.github.flattool.Warehouse"
|
||||||
#"io.github.flattool.Warehouse" # Manage flatpaks, clean data, remove flatpaks and deps
|
"com.github.tchx84.Flatseal"
|
||||||
#"it.mijorus.gearlever" # Manage and support AppImages
|
|
||||||
#"io.github.freedoom.Phase1" # Classic Doom FPS 1
|
|
||||||
#"io.github.freedoom.Phase2" # Classic Doom FPS 2
|
|
||||||
#"io.github.dvlv.boxbuddyrs" # Manage distroboxes
|
|
||||||
#"de.schmidhuberj.tubefeeder" #watch YT videos
|
|
||||||
|
|
||||||
# Add other Flatpak IDs here, e.g., "org.mozilla.firefox"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Optional: Automatically update Flatpaks when you run nixos-rebuild swit ch
|
|
||||||
update.onActivation = true;
|
update.onActivation = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
fonts = {
|
fonts = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{ pkgs
|
{
|
||||||
, username
|
pkgs,
|
||||||
, ...
|
username,
|
||||||
}: {
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#vt = 3;
|
#vt = 3;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ pkgs
|
{
|
||||||
, host
|
pkgs,
|
||||||
, options
|
host,
|
||||||
, ...
|
options,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{ pkgs
|
{
|
||||||
, username
|
pkgs,
|
||||||
, ...
|
username,
|
||||||
}: {
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
programs.nh = {
|
programs.nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
clean = {
|
clean = {
|
||||||
|
|||||||
@@ -6,13 +6,9 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
neovim = {
|
nano.enable = true;
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
};
|
|
||||||
firefox.enable = false; # Firefox is not installed by default
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = true; # set this so desktop file is created
|
enable = true;
|
||||||
withUWSM = false;
|
withUWSM = false;
|
||||||
};
|
};
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
@@ -33,9 +29,9 @@
|
|||||||
# Hyprland systeminfo QT (Optional)
|
# Hyprland systeminfo QT (Optional)
|
||||||
#inputs.hyprsysteminfo.packages.${pkgs.system}.default
|
#inputs.hyprsysteminfo.packages.${pkgs.system}.default
|
||||||
|
|
||||||
|
discord
|
||||||
amfora # Fancy Terminal Browser For Gemini Protocol
|
amfora # Fancy Terminal Browser For Gemini Protocol
|
||||||
appimage-run # Needed For AppImage Support
|
appimage-run # Needed For AppImage Support
|
||||||
librewolf # Brave Browser
|
|
||||||
brightnessctl # For Screen Brightness Control
|
brightnessctl # For Screen Brightness Control
|
||||||
cliphist # Clipboard manager using rofi menu
|
cliphist # Clipboard manager using rofi menu
|
||||||
cmatrix # Matrix Movie Effect In Terminal
|
cmatrix # Matrix Movie Effect In Terminal
|
||||||
@@ -78,10 +74,33 @@
|
|||||||
usbutils # Good Tools For USB Devices
|
usbutils # Good Tools For USB Devices
|
||||||
uwsm # Universal Wayland Session Manager (optional must be enabled)
|
uwsm # Universal Wayland Session Manager (optional must be enabled)
|
||||||
v4l-utils # Used For Things Like OBS Virtual Camera
|
v4l-utils # Used For Things Like OBS Virtual Camera
|
||||||
waypaper # wallpaper changer
|
waypaper # wallpaper changer
|
||||||
warp-terminal # Terminal with AI support build in
|
warp-terminal # Terminal with AI support build in
|
||||||
wget # Tool For Fetching Files With Links
|
wget # Tool For Fetching Files With Links
|
||||||
ytmdl # Tool For Downloading Audio From YouTube
|
ytmdl # Tool For Downloading Audio From YouTube
|
||||||
|
nextcloud-client
|
||||||
|
plexamp
|
||||||
|
bitwarden-desktop
|
||||||
|
tutanota-desktop
|
||||||
|
slack
|
||||||
|
ungoogled-chromium
|
||||||
|
anki-bin
|
||||||
|
onlyoffice-bin
|
||||||
|
freetube
|
||||||
|
mattermost-desktop
|
||||||
|
kdePackages.kdenlive
|
||||||
|
wineWowPackages.waylandFull # wine64
|
||||||
|
lutris
|
||||||
|
space-cadet-pinball
|
||||||
|
dex
|
||||||
|
exercism
|
||||||
|
tty-solitaire
|
||||||
|
cmatrix
|
||||||
|
cowsay
|
||||||
|
sl
|
||||||
|
fortune
|
||||||
|
ookla-speedtest
|
||||||
|
kronometer
|
||||||
inputs.prismlauncher-cracked.packages.${system}.default
|
inputs.prismlauncher-cracked.packages.${system}.default
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,72 +0,0 @@
|
|||||||
# SDDM is a display manager for X11 and Wayland
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
foreground = config.stylix.base16Scheme.base00;
|
|
||||||
textColor = config.stylix.base16Scheme.base05;
|
|
||||||
sddm-astronaut = pkgs.sddm-astronaut.override {
|
|
||||||
embeddedTheme = "pixel_sakura";
|
|
||||||
themeConfig =
|
|
||||||
if lib.hasSuffix "sakura_static.png" config.stylix.image
|
|
||||||
then {
|
|
||||||
FormPosition = "left";
|
|
||||||
Blur = "2.0";
|
|
||||||
}
|
|
||||||
else if lib.hasSuffix "studio.png" config.stylix.image
|
|
||||||
then {
|
|
||||||
Background = pkgs.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/anotherhadi/nixy-wallpapers/refs/heads/main/wallpapers/studio.gif";
|
|
||||||
sha256 = "sha256-qySDskjmFYt+ncslpbz0BfXiWm4hmFf5GPWF2NlTVB8=";
|
|
||||||
};
|
|
||||||
HeaderTextColor = "#${textColor}";
|
|
||||||
DateTextColor = "#${textColor}";
|
|
||||||
TimeTextColor = "#${textColor}";
|
|
||||||
LoginFieldTextColor = "#${textColor}";
|
|
||||||
PasswordFieldTextColor = "#${textColor}";
|
|
||||||
UserIconColor = "#${textColor}";
|
|
||||||
PasswordIconColor = "#${textColor}";
|
|
||||||
WarningColor = "#${textColor}";
|
|
||||||
LoginButtonBackgroundColor = "#${foreground}";
|
|
||||||
SystemButtonsIconsColor = "#${foreground}";
|
|
||||||
SessionButtonTextColor = "#${textColor}";
|
|
||||||
VirtualKeyboardButtonTextColor = "#${textColor}";
|
|
||||||
DropdownBackgroundColor = "#${foreground}";
|
|
||||||
HighlightBackgroundColor = "#${textColor}";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
FormPosition = "left";
|
|
||||||
Blur = "4.0";
|
|
||||||
Background = "${toString config.stylix.image}";
|
|
||||||
HeaderTextColor = "#${textColor}";
|
|
||||||
DateTextColor = "#${textColor}";
|
|
||||||
TimeTextColor = "#${textColor}";
|
|
||||||
LoginFieldTextColor = "#${textColor}";
|
|
||||||
PasswordFieldTextColor = "#${textColor}";
|
|
||||||
UserIconColor = "#${textColor}";
|
|
||||||
PasswordIconColor = "#${textColor}";
|
|
||||||
WarningColor = "#${textColor}";
|
|
||||||
LoginButtonBackgroundColor = "#${config.stylix.base16Scheme.base01}";
|
|
||||||
SystemButtonsIconsColor = "#${textColor}";
|
|
||||||
SessionButtonTextColor = "#${textColor}";
|
|
||||||
VirtualKeyboardButtonTextColor = "#${textColor}";
|
|
||||||
DropdownBackgroundColor = "#${config.stylix.base16Scheme.base01}";
|
|
||||||
HighlightBackgroundColor = "#${textColor}";
|
|
||||||
FormBackgroundColor = "#${config.stylix.base16Scheme.base01}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
services.displayManager = {
|
|
||||||
sddm = {
|
|
||||||
package = pkgs.kdePackages.sddm;
|
|
||||||
extraPackages = [sddm-astronaut];
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
theme = "sddm-astronaut-theme";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [sddm-astronaut];
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{ profile, ... }: {
|
{ profile, ... }:
|
||||||
|
{
|
||||||
# Services to start
|
# Services to start
|
||||||
services = {
|
services = {
|
||||||
libinput.enable = true; # Input Handling
|
libinput.enable = true; # Input Handling
|
||||||
@@ -8,7 +9,7 @@
|
|||||||
enable = true; # Enable SSH
|
enable = true; # Enable SSH
|
||||||
settings = {
|
settings = {
|
||||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||||
PasswordAuthentication = true; #Users can SSH using kb and password
|
PasswordAuthentication = true; # Users can SSH using kb and password
|
||||||
KbdInteractiveAuthentication = true;
|
KbdInteractiveAuthentication = true;
|
||||||
};
|
};
|
||||||
ports = [ 22 ];
|
ports = [ 22 ];
|
||||||
@@ -18,10 +19,7 @@
|
|||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
smartd = {
|
smartd = {
|
||||||
enable =
|
enable = if profile == "vm" then false else true;
|
||||||
if profile == "vm"
|
|
||||||
then false
|
|
||||||
else true;
|
|
||||||
autodetect = true;
|
autodetect = true;
|
||||||
};
|
};
|
||||||
pipewire = {
|
pipewire = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
starship = {
|
starship = {
|
||||||
enable = false;
|
enable = false;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -16,5 +17,7 @@
|
|||||||
"--expose-wayland"
|
"--expose-wayland"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gamemode.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ pkgs
|
{
|
||||||
, host
|
pkgs,
|
||||||
, ...
|
host,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ username, ... }: {
|
{ username, ... }:
|
||||||
|
{
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = false;
|
enable = false;
|
||||||
user = "${username}";
|
user = "${username}";
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ in
|
|||||||
};
|
};
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
ZANEYOS_VERSION = "2.4";
|
GARANDOS_VERSION = "1.0";
|
||||||
ZANEYOS = "true";
|
GARANDOS = "true";
|
||||||
};
|
};
|
||||||
console.keyMap = "${consoleKeyMap}";
|
console.keyMap = "${consoleKeyMap}";
|
||||||
system.stateVersion = "23.11"; # Do not change!
|
system.stateVersion = "23.11"; # Do not change!
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
{ host
|
{
|
||||||
, pkgs
|
host,
|
||||||
, ...
|
pkgs,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
inherit (import ../../hosts/${host}/variables.nix) thunarEnable;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
thunar = {
|
thunar = {
|
||||||
enable = thunarEnable;
|
enable = true;
|
||||||
plugins = with pkgs.xfce; [
|
plugins = with pkgs.xfce; [
|
||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
thunar-volman
|
thunar-volman
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
{ pkgs
|
{
|
||||||
, inputs
|
pkgs,
|
||||||
, username
|
inputs,
|
||||||
, host
|
username,
|
||||||
, profile
|
host,
|
||||||
, ...
|
profile,
|
||||||
|
system,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||||
@@ -13,8 +15,16 @@ in
|
|||||||
home-manager = {
|
home-manager = {
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
useGlobalPkgs = false;
|
useGlobalPkgs = false;
|
||||||
backupFileExtension = "backup";
|
backupFileExtension = "backup-nixos";
|
||||||
extraSpecialArgs = { inherit inputs username host profile; };
|
extraSpecialArgs = {
|
||||||
|
inherit
|
||||||
|
inputs
|
||||||
|
username
|
||||||
|
host
|
||||||
|
profile
|
||||||
|
system
|
||||||
|
;
|
||||||
|
};
|
||||||
users.${username} = {
|
users.${username} = {
|
||||||
imports = [ ./../home ];
|
imports = [ ./../home ];
|
||||||
home = {
|
home = {
|
||||||
@@ -30,15 +40,16 @@ in
|
|||||||
description = "${gitUsername}";
|
description = "${gitUsername}";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"adbusers"
|
"adbusers"
|
||||||
"docker" #access to docker as non-root
|
"docker" # access to docker as non-root
|
||||||
"libvirtd" #Virt manager/QEMU access
|
"libvirtd" # Virt manager/QEMU access
|
||||||
"lp"
|
"lp"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"scanner"
|
"scanner"
|
||||||
"wheel" #subdo access
|
"wheel" # subdo access
|
||||||
"vboxusers" #Virtual Box
|
"vboxusers" # Virtual Box
|
||||||
|
"gamemode"
|
||||||
];
|
];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.bash;
|
||||||
ignoreShellProgramCheck = true;
|
ignoreShellProgramCheck = true;
|
||||||
};
|
};
|
||||||
nix.settings.allowed-users = [ "${username}" ];
|
nix.settings.allowed-users = [ "${username}" ];
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
# Only enable either docker or podman -- Not both
|
# Only enable either docker or podman -- Not both
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker = {
|
docker = {
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, ...
|
config,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ...
|
{
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, ...
|
config,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib;
|
||||||
|
let
|
||||||
cfg = config.drivers.intel;
|
cfg = config.drivers.intel;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, ...
|
config,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
config,
|
||||||
, ...
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
@@ -18,7 +18,7 @@ in
|
|||||||
# Modesetting is required.
|
# Modesetting is required.
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = true;
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
powerManagement.finegrained = false;
|
powerManagement.finegrained = false;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, ...
|
config,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, ...
|
config,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
@@ -15,6 +16,6 @@ in
|
|||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.qemuGuest.enable = true;
|
services.qemuGuest.enable = true;
|
||||||
services.spice-vdagentd.enable = true;
|
services.spice-vdagentd.enable = true;
|
||||||
services.spice-webdavd.enable = false; #Causes navfs2 build failure invalid neon version 9-12-25
|
services.spice-webdavd.enable = false; # Causes navfs2 build failure invalid neon version 9-12-25
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
{ lib, ... }: {
|
|
||||||
programs.alacritty =
|
|
||||||
let
|
|
||||||
font_family = lib.mkForce "Maple Mono NF";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
font = {
|
|
||||||
normal = {
|
|
||||||
family = font_family;
|
|
||||||
style = "Regular";
|
|
||||||
};
|
|
||||||
bold = {
|
|
||||||
family = font_family;
|
|
||||||
style = "Bold";
|
|
||||||
};
|
|
||||||
italic = {
|
|
||||||
family = font_family;
|
|
||||||
style = "Italic";
|
|
||||||
};
|
|
||||||
bold_italic = {
|
|
||||||
family = font_family;
|
|
||||||
style = "Bold Italic";
|
|
||||||
};
|
|
||||||
size = 15;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
115
modules/home/bash-aliases.nix
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
{ profile, ... }:
|
||||||
|
{
|
||||||
|
programs.bash = {
|
||||||
|
shellAliases = {
|
||||||
|
# NixOS aliases
|
||||||
|
upd = "nh os switch --hostname ${profile}";
|
||||||
|
upg = "nh os switch --hostname ${profile} --update";
|
||||||
|
upd-bt = "nh os boot --hostname ${profile}";
|
||||||
|
upd-ts = "nh os test --hostname ${profile}";
|
||||||
|
upd-bd = "nh os build --hostname ${profile}";
|
||||||
|
ncg = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
|
||||||
|
|
||||||
|
# Development aliases
|
||||||
|
srvenv = "source .venv/bin/activate";
|
||||||
|
"..srvenv" = "source ../.venv/bin/activate";
|
||||||
|
pm = "uv run manage.py";
|
||||||
|
bbr = "bun --bun run";
|
||||||
|
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||||
|
snano = "sudo nano";
|
||||||
|
zed = "MANGOHUD=0 /home/garand_plg/.local/bin/zed";
|
||||||
|
|
||||||
|
# System aliases
|
||||||
|
flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||||
|
kys = "shutdown now";
|
||||||
|
ookla = "speedtest";
|
||||||
|
snala = "sudo nala";
|
||||||
|
|
||||||
|
# Navigation aliases
|
||||||
|
"~" = "cd ~";
|
||||||
|
".." = "cd ..";
|
||||||
|
"..." = "cd ../..";
|
||||||
|
"...." = "cd ../../..";
|
||||||
|
"....." = "cd ../../../..";
|
||||||
|
|
||||||
|
# Modifies commands
|
||||||
|
cat = "bat";
|
||||||
|
cp = "cp -i";
|
||||||
|
mv = "mv -i";
|
||||||
|
rm = "trash -v";
|
||||||
|
mkdir = "mkdir -p";
|
||||||
|
ps = "ps auxf";
|
||||||
|
ping = "ping -c 10";
|
||||||
|
less = "less -R";
|
||||||
|
cls = "clear";
|
||||||
|
multitail = "multitail --no-repeat -c";
|
||||||
|
freshclam = "sudo freshclam";
|
||||||
|
|
||||||
|
# Alias"s for multiple directory listing commands
|
||||||
|
la = "eza -alh --icons"; # show hidden files
|
||||||
|
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||||
|
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||||
|
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||||
|
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||||
|
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||||
|
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||||
|
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||||
|
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||||
|
lw = "eza -xh --icons"; # wide listing format
|
||||||
|
ll = "eza -lh --icons"; # long listing format
|
||||||
|
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||||
|
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||||
|
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||||
|
lla = "eza -alh --icons"; # List and Hidden Files
|
||||||
|
las = "eza -a --icons"; # Hidden Files
|
||||||
|
lls = "eza -lh --icons"; # List
|
||||||
|
|
||||||
|
# chmod commands
|
||||||
|
mx = "chmod a+x";
|
||||||
|
"000" = "chmod -R 000";
|
||||||
|
"644" = "chmod -R 644";
|
||||||
|
"666" = "chmod -R 666";
|
||||||
|
"755" = "chmod -R 755";
|
||||||
|
"777" = "chmod -R 777";
|
||||||
|
|
||||||
|
# Search command line history
|
||||||
|
h = "history | grep ";
|
||||||
|
|
||||||
|
# Search running processes
|
||||||
|
p = "ps aux | grep ";
|
||||||
|
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||||
|
|
||||||
|
# Search files in the current folder
|
||||||
|
f = "find . | grep ";
|
||||||
|
|
||||||
|
# Count all files (recursively) in the current folder
|
||||||
|
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||||
|
|
||||||
|
# Alias"s to show disk space and space used in a folder
|
||||||
|
diskspace = "du -S | sort -n -r |more";
|
||||||
|
folders = "du -h --max-depth=1";
|
||||||
|
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||||
|
tree = "tree -CAhF --dirsfirst";
|
||||||
|
treed = "tree -CAFd";
|
||||||
|
mountedinfo = "df -hT";
|
||||||
|
|
||||||
|
# Show all logs in /var/log
|
||||||
|
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||||
|
|
||||||
|
# fix kitty ssh connection
|
||||||
|
kssh = "kitty +kitten ssh";
|
||||||
|
|
||||||
|
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||||
|
|
||||||
|
# Remove a directory and all files
|
||||||
|
rmd = "/bin/rm --recursive --force --verbose ";
|
||||||
|
|
||||||
|
# Fun aliases
|
||||||
|
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||||
|
fc = "fortune | cowsay";
|
||||||
|
|
||||||
|
# Network aliases
|
||||||
|
ssh-server = "kssh garand_plg@192.168.1.156 -i ~/.ssh/hp-t640-homeserver";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
146
modules/home/bash-functions.nix
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
_: {
|
||||||
|
programs.bash = {
|
||||||
|
bashrcExtra = ''
|
||||||
|
# Quick directory creation and navigation
|
||||||
|
mkcd() {
|
||||||
|
mkdir -p "$1" && cd "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract various archive formats
|
||||||
|
extract() {
|
||||||
|
for archive in "$@"; do
|
||||||
|
if [ -f "$archive" ]; then
|
||||||
|
case "$archive" in
|
||||||
|
*.tar.bz2) tar xvjf "$archive" ;;
|
||||||
|
*.tar.gz) tar xvzf "$archive" ;;
|
||||||
|
*.bz2) bunzip2 "$archive" ;;
|
||||||
|
*.rar) unrar x "$archive" ;;
|
||||||
|
*.gz) gunzip "$archive" ;;
|
||||||
|
*.tar) tar xvf "$archive" ;;
|
||||||
|
*.tbz2) tar xvjf "$archive" ;;
|
||||||
|
*.tgz) tar xvzf "$archive" ;;
|
||||||
|
*.zip) unzip "$archive" ;;
|
||||||
|
*.Z) uncompress "$archive" ;;
|
||||||
|
*.7z) 7z x "$archive" ;;
|
||||||
|
*) echo "don't know how to extract '$archive'..." ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "'$archive' is not a valid file!"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find files quickly
|
||||||
|
ff() {
|
||||||
|
find . -name "*$1*" -type f
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find directories quickly
|
||||||
|
fd() {
|
||||||
|
find . -name "*$1*" -type d
|
||||||
|
}
|
||||||
|
|
||||||
|
# IP address lookup
|
||||||
|
alias whatismyip="whatsmyip"
|
||||||
|
function whatsmyip () {
|
||||||
|
# Internal IP Lookup.
|
||||||
|
if command -v ip &> /dev/null; then
|
||||||
|
echo -n "Internal IP: "
|
||||||
|
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||||
|
else
|
||||||
|
echo -n "Internal IP: "
|
||||||
|
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# External IP Lookup
|
||||||
|
echo -n "External IP: "
|
||||||
|
curl -4 ifconfig.me
|
||||||
|
}
|
||||||
|
|
||||||
|
# Searches for text in all files in the current folder
|
||||||
|
ftext() {
|
||||||
|
# -i case-insensitive
|
||||||
|
# -I ignore binary files
|
||||||
|
# -H causes filename to be printed
|
||||||
|
# -r recursive search
|
||||||
|
# -n causes line number to be printed
|
||||||
|
# optional: -F treat search term as a literal, not a regular expression
|
||||||
|
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||||
|
grep -iIHrn --color=always "$1" . | less -r
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy file with a progress bar
|
||||||
|
cpp() {
|
||||||
|
set -e
|
||||||
|
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
|
||||||
|
awk '{
|
||||||
|
count += $NF
|
||||||
|
if (count % 10 == 0) {
|
||||||
|
percent = count / total_size * 100
|
||||||
|
printf "%3d%% [", percent
|
||||||
|
for (i=0;i<=percent;i++)
|
||||||
|
printf "="
|
||||||
|
printf ">"
|
||||||
|
for (i=percent;i<100;i++)
|
||||||
|
printf " "
|
||||||
|
printf "]\r"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy and go to the directory
|
||||||
|
cpg() {
|
||||||
|
if [ -d "$2" ]; then
|
||||||
|
cp "$1" "$2" && cd "$2"
|
||||||
|
else
|
||||||
|
cp "$1" "$2"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move and go to the directory
|
||||||
|
mvg() {
|
||||||
|
if [ -d "$2" ]; then
|
||||||
|
mv "$1" "$2" && cd "$2"
|
||||||
|
else
|
||||||
|
mv "$1" "$2"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create and go to the directory
|
||||||
|
mkdirg() {
|
||||||
|
mkdir -p "$1"
|
||||||
|
cd "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Goes up a specified number of directories (i.e. up 4)
|
||||||
|
up() {
|
||||||
|
local d=""
|
||||||
|
limit=$1
|
||||||
|
for ((i = 1; i <= limit; i++)); do
|
||||||
|
d=$d/..
|
||||||
|
done
|
||||||
|
d=$(echo $d | sed 's/^\///')
|
||||||
|
if [ -z "$d" ]; then
|
||||||
|
d=..
|
||||||
|
fi
|
||||||
|
cd $d
|
||||||
|
}
|
||||||
|
|
||||||
|
# Automatically do an ls after each cd, z, or zoxide
|
||||||
|
cd ()
|
||||||
|
{
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
builtin cd "$@" && ls
|
||||||
|
else
|
||||||
|
builtin cd ~ && ls
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Returns the last 2 fields of the working directory
|
||||||
|
pwdtail() {
|
||||||
|
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,22 +1,9 @@
|
|||||||
{ profile, ... }: {
|
_: {
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = false;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
fastfetch
|
fastfetch
|
||||||
if [ -f $HOME/.bashrc-personal ]; then
|
|
||||||
source $HOME/.bashrc-personal
|
|
||||||
fi
|
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
|
||||||
sv = "sudo nvim";
|
|
||||||
fr = "nh os switch --hostname ${profile}";
|
|
||||||
fu = "nh os switch --hostname ${profile} --update";
|
|
||||||
zu = "sh <(curl -L https://gitlab.com/Zaney/zaneyos/-/releases/latest/download/install-zaneyos.sh)";
|
|
||||||
ncg = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
|
|
||||||
v = "nvim";
|
|
||||||
cat = "bat";
|
|
||||||
".." = "cd ..";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
home.packages = with pkgs; [ bash ];
|
|
||||||
|
|
||||||
home.file."./.bashrc-personal".text = ''
|
|
||||||
|
|
||||||
# This file allows you to define your own aliases, functions, etc
|
|
||||||
# below are just some examples of what you can use this file for
|
|
||||||
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Set defaults
|
|
||||||
#
|
|
||||||
#export EDITOR="nvim"
|
|
||||||
#export VISUAL="nvim"
|
|
||||||
|
|
||||||
#alias c="clear"
|
|
||||||
#eval "$(zoxide init bash)"
|
|
||||||
#eval "$(oh-my-posh init bash --config $HOME/.config/powerlevel10k_rainbow.omp.json)"
|
|
||||||
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
{ pkgs
|
{
|
||||||
, lib
|
pkgs,
|
||||||
, ...
|
lib,
|
||||||
}: {
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
programs.bat = {
|
programs.bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.bottom = {
|
programs.bottom = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.btop = {
|
programs.btop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.btop.override {
|
package = pkgs.btop.override {
|
||||||
@@ -6,7 +7,6 @@
|
|||||||
cudaSupport = true;
|
cudaSupport = true;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
vim_keys = true;
|
|
||||||
rounded_corners = true;
|
rounded_corners = true;
|
||||||
proc_tree = true;
|
proc_tree = true;
|
||||||
show_gpu_info = "on";
|
show_gpu_info = "on";
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ config, ... }: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
programs.cava = {
|
programs.cava = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,21 +1,14 @@
|
|||||||
{ host, ... }:
|
{ host, ... }:
|
||||||
let
|
let
|
||||||
inherit (import ../../hosts/${host}/variables.nix)
|
inherit (import ../../hosts/${host}/variables.nix) waybarChoice;
|
||||||
alacrittyEnable
|
|
||||||
ghosttyEnable
|
|
||||||
tmuxEnable
|
|
||||||
waybarChoice
|
|
||||||
weztermEnable
|
|
||||||
vscodeEnable
|
|
||||||
helixEnable
|
|
||||||
doomEmacsEnable
|
|
||||||
;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
waybarChoice
|
||||||
./amfora.nix
|
./amfora.nix
|
||||||
./bash.nix
|
./bash.nix
|
||||||
./bashrc-personal.nix
|
./bash-aliases.nix
|
||||||
|
./bash-functions.nix
|
||||||
./bat.nix
|
./bat.nix
|
||||||
./btop.nix
|
./btop.nix
|
||||||
./bottom.nix
|
./bottom.nix
|
||||||
@@ -31,40 +24,24 @@ in
|
|||||||
./hyprland
|
./hyprland
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./lazygit.nix
|
./lazygit.nix
|
||||||
|
./librewolf.nix
|
||||||
./obs-studio.nix
|
./obs-studio.nix
|
||||||
./nvf.nix
|
|
||||||
./obs-studio.nix
|
./obs-studio.nix
|
||||||
./rofi
|
./rofi
|
||||||
./qt.nix
|
./qt.nix
|
||||||
|
./ssh.nix
|
||||||
./scripts
|
./scripts
|
||||||
./scripts/gemini-cli.nix
|
./scripts/gemini-cli.nix
|
||||||
#./starship.nix
|
./starship.nix
|
||||||
#./starship-ddubs-1.nix
|
|
||||||
./stylix.nix
|
./stylix.nix
|
||||||
./swappy.nix
|
./swappy.nix
|
||||||
./swaync.nix
|
./swaync.nix
|
||||||
./tealdeer.nix
|
./tealdeer.nix
|
||||||
./virtmanager.nix
|
./virtmanager.nix
|
||||||
waybarChoice
|
|
||||||
./wlogout
|
./wlogout
|
||||||
./xdg.nix
|
./xdg.nix
|
||||||
./yazi
|
|
||||||
./zoxide.nix
|
./zoxide.nix
|
||||||
./zsh
|
./vscode.nix
|
||||||
]
|
# ./zed.nix
|
||||||
++ (if helixEnable then [ ./evil-helix.nix ] else [ ])
|
];
|
||||||
++ (if vscodeEnable then [ ./vscode.nix ] else [ ])
|
|
||||||
++ (
|
|
||||||
if doomEmacsEnable then
|
|
||||||
[
|
|
||||||
./editors/doom-emacs-install.nix
|
|
||||||
./editors/doom-emacs.nix
|
|
||||||
]
|
|
||||||
else
|
|
||||||
[ ]
|
|
||||||
)
|
|
||||||
++ (if weztermEnable then [ ./wezterm.nix ] else [ ])
|
|
||||||
++ (if ghosttyEnable then [ ./ghostty.nix ] else [ ])
|
|
||||||
++ (if tmuxEnable then [ ./tmux.nix ] else [ ])
|
|
||||||
++ (if alacrittyEnable then [ ./alacritty.nix ] else [ ]);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,78 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
doom-icon = pkgs.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/jeetelongname/doom-banners/master/splashes/doom/doom-emacs-color2.svg";
|
|
||||||
sha256 = "1xxi5ra1z8njsqaqiaq96wyn1sc967l42kvjzbji1zrjj8za6bgq";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# 1. Create a script to install Doom Emacs
|
|
||||||
home.packages = [
|
|
||||||
(pkgs.writeShellScriptBin "get-doom" ''
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# --- Icons ---
|
|
||||||
ICON_CHECK="✔"
|
|
||||||
ICON_INFO="ℹ"
|
|
||||||
ICON_ROCKET="🚀"
|
|
||||||
|
|
||||||
# --- Helper Functions ---
|
|
||||||
print_status() {
|
|
||||||
echo
|
|
||||||
echo "--- $ICON_INFO $1 ---"
|
|
||||||
}
|
|
||||||
|
|
||||||
print_success() {
|
|
||||||
echo "--- $ICON_CHECK $1 ---"
|
|
||||||
}
|
|
||||||
|
|
||||||
print_banner() {
|
|
||||||
echo "==============================="
|
|
||||||
echo " Doom Emacs Installer $ICON_ROCKET"
|
|
||||||
echo "==============================="
|
|
||||||
}
|
|
||||||
|
|
||||||
# --- Main Script ---
|
|
||||||
print_banner
|
|
||||||
EMACSDIR="$HOME/.emacs.d"
|
|
||||||
|
|
||||||
if [ -d "$EMACSDIR" ]; then
|
|
||||||
print_success "Doom Emacs is already installed."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_status "Cloning Doom Emacs..."
|
|
||||||
git clone --depth 1 https://github.com/doomemacs/doomemacs "$EMACSDIR"
|
|
||||||
print_success "Doom Emacs cloned."
|
|
||||||
|
|
||||||
print_status "Running Doom install..."
|
|
||||||
"$EMACSDIR/bin/doom" install
|
|
||||||
print_success "Doom install complete."
|
|
||||||
|
|
||||||
print_status "Running doom sync..."
|
|
||||||
"$EMACSDIR/bin/doom" sync
|
|
||||||
print_success "Doom sync complete."
|
|
||||||
|
|
||||||
echo
|
|
||||||
print_success "All done! Doom Emacs is ready to use."
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
|
|
||||||
# 2. Add the bin directory to the PATH
|
|
||||||
home.sessionPath = [
|
|
||||||
"$HOME/.emacs.d/bin"
|
|
||||||
];
|
|
||||||
|
|
||||||
# 3. Create a desktop file
|
|
||||||
xdg.desktopEntries.doom-emacs = {
|
|
||||||
name = "Doom Emacs";
|
|
||||||
comment = "A configuration framework for GNU Emacs";
|
|
||||||
exec = "emacs";
|
|
||||||
icon = doom-icon;
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
categories = [ "Development" "TextEditor" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
emacs-gtk
|
|
||||||
git
|
|
||||||
lazygit
|
|
||||||
ripgrep
|
|
||||||
libtool
|
|
||||||
cmake
|
|
||||||
pkg-config
|
|
||||||
# Spell checking
|
|
||||||
hunspell
|
|
||||||
hunspellDicts.en_US
|
|
||||||
hunspellDicts.en_AU
|
|
||||||
hunspellDicts.es_ES
|
|
||||||
# LSP servers
|
|
||||||
clang-tools # C/C++ LSP
|
|
||||||
nil # Nix LSP
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".doom.d/init.el".text = ''
|
|
||||||
;;; init.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
(doom!
|
|
||||||
:completion
|
|
||||||
(company +auto)
|
|
||||||
(vertico +icons)
|
|
||||||
|
|
||||||
:ui
|
|
||||||
doom
|
|
||||||
doom-dashboard
|
|
||||||
doom-quit
|
|
||||||
hl-todo
|
|
||||||
modeline
|
|
||||||
nav-flash
|
|
||||||
ophints
|
|
||||||
(popup +defaults)
|
|
||||||
(ligatures +extra)
|
|
||||||
tabs
|
|
||||||
treemacs
|
|
||||||
vi-tilde-fringe
|
|
||||||
window-select
|
|
||||||
|
|
||||||
:editor
|
|
||||||
(evil +everywhere)
|
|
||||||
file-templates
|
|
||||||
fold
|
|
||||||
multiple-cursors
|
|
||||||
snippets
|
|
||||||
word-wrap
|
|
||||||
|
|
||||||
:emacs
|
|
||||||
(dired +icons)
|
|
||||||
electric
|
|
||||||
(ibuffer +icons)
|
|
||||||
(undo +tree)
|
|
||||||
vc
|
|
||||||
|
|
||||||
:term
|
|
||||||
vterm
|
|
||||||
|
|
||||||
:checkers
|
|
||||||
(syntax +flymake)
|
|
||||||
(spell +flyspell)
|
|
||||||
grammar
|
|
||||||
|
|
||||||
:tools
|
|
||||||
(eval +overlay)
|
|
||||||
(lookup +docsets)
|
|
||||||
lsp
|
|
||||||
(magit +forge)
|
|
||||||
pdf
|
|
||||||
tree-sitter
|
|
||||||
|
|
||||||
:lang
|
|
||||||
bash
|
|
||||||
(c +lsp)
|
|
||||||
css
|
|
||||||
docker
|
|
||||||
html
|
|
||||||
(json +lsp)
|
|
||||||
markdown
|
|
||||||
(nix +tree-sitter +lsp)
|
|
||||||
toml
|
|
||||||
yaml
|
|
||||||
|
|
||||||
:config
|
|
||||||
(default +bindings +smartparens))
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file.".doom.d/config.el".text = ''
|
|
||||||
;;; config.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
(setq doom-theme 'doom-one)
|
|
||||||
(setq display-line-numbers-type 'relative)
|
|
||||||
(setq nerd-icons-font-family "JetBrainsMono Nerd Font")
|
|
||||||
|
|
||||||
;; Git configuration
|
|
||||||
(after! magit
|
|
||||||
;; Set default git editor to emacsclient
|
|
||||||
(setq with-editor-emacsclient-executable "emacsclient")
|
|
||||||
;; Show word-granularity differences within diff hunks
|
|
||||||
(setq magit-diff-refine-hunk t)
|
|
||||||
;; Auto-refresh magit buffers
|
|
||||||
(setq magit-refresh-status-buffer t))
|
|
||||||
|
|
||||||
;; Lazygit integration
|
|
||||||
(defun my/lazygit ()
|
|
||||||
"Open lazygit in a terminal."
|
|
||||||
(interactive)
|
|
||||||
(if (fboundp 'vterm)
|
|
||||||
(let ((default-directory (magit-toplevel)))
|
|
||||||
(vterm "*lazygit*")
|
|
||||||
(vterm-send-string "lazygit")
|
|
||||||
(vterm-send-return))
|
|
||||||
(async-shell-command "lazygit" "*lazygit*")))
|
|
||||||
|
|
||||||
;; LSP configuration
|
|
||||||
(after! lsp-mode
|
|
||||||
(setq lsp-signature-auto-activate t
|
|
||||||
lsp-signature-render-documentation t
|
|
||||||
lsp-completion-provider :company-capf
|
|
||||||
lsp-idle-delay 0.1))
|
|
||||||
|
|
||||||
;; Nix LSP (nil) configuration
|
|
||||||
(with-eval-after-load 'lsp-nix-nil
|
|
||||||
(setq lsp-nix-nil-auto-eval-inputs t))
|
|
||||||
|
|
||||||
;; Company completion settings
|
|
||||||
(after! company
|
|
||||||
(setq company-idle-delay 0.2
|
|
||||||
company-minimum-prefix-length 1
|
|
||||||
company-tooltip-align-annotations t
|
|
||||||
company-require-match 'never))
|
|
||||||
|
|
||||||
;; Spell checking configuration
|
|
||||||
(after! ispell
|
|
||||||
(setq ispell-program-name "hunspell")
|
|
||||||
(setq ispell-local-dictionary "en_US")
|
|
||||||
(setq ispell-local-dictionary-alist
|
|
||||||
'(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8))))
|
|
||||||
|
|
||||||
;; Git keybindings
|
|
||||||
(map! :leader
|
|
||||||
(:prefix-map ("g" . "git")
|
|
||||||
:desc "Magit status" "g" #'magit-status
|
|
||||||
:desc "Magit dispatch" "d" #'magit-dispatch
|
|
||||||
:desc "Magit file dispatch" "f" #'magit-file-dispatch
|
|
||||||
:desc "Magit blame" "b" #'magit-blame-addition
|
|
||||||
:desc "Git time machine" "t" #'git-timemachine-toggle
|
|
||||||
:desc "Lazygit" "l" #'my/lazygit
|
|
||||||
:desc "Git stage file" "s" #'magit-stage-file
|
|
||||||
:desc "Git unstage file" "u" #'magit-unstage-file))
|
|
||||||
'';
|
|
||||||
|
|
||||||
home.file.".doom.d/packages.el".text = ''
|
|
||||||
;;; packages.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
;; Git-related packages
|
|
||||||
(package! git-timemachine)
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
home.file.".config/.emoji".text = ''
|
home.file.".config/.emoji".text = ''
|
||||||
😀 grinning face face smile happy joy :D grin
|
😀 grinning face face smile happy joy :D grin
|
||||||
😃 grinning face with big eyes face happy joy haha :D :) smile funny
|
😃 grinning face with big eyes face happy joy haha :D :) smile funny
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
enableEvilHelix = true; # Set to true to enable the configuration
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; (
|
|
||||||
if enableEvilHelix
|
|
||||||
then [
|
|
||||||
evil-helix
|
|
||||||
cmake-language-server
|
|
||||||
jsonnet-language-server
|
|
||||||
luaformatter
|
|
||||||
lua-language-server
|
|
||||||
marksman
|
|
||||||
taplo
|
|
||||||
nil
|
|
||||||
jq-lsp
|
|
||||||
vscode-langservers-extracted
|
|
||||||
bash-language-server
|
|
||||||
awk-language-server
|
|
||||||
vscode-extensions.llvm-vs-code-extensions.vscode-clangd
|
|
||||||
clang-tools
|
|
||||||
docker-compose-language-service
|
|
||||||
docker-compose
|
|
||||||
docker-language-server
|
|
||||||
typescript-language-server
|
|
||||||
]
|
|
||||||
else [ ]
|
|
||||||
);
|
|
||||||
|
|
||||||
home.file.".config/helix/languages.toml".text =
|
|
||||||
if enableEvilHelix
|
|
||||||
then ''
|
|
||||||
[language-server.nil]
|
|
||||||
command = "nil"
|
|
||||||
|
|
||||||
[language-server.lua]
|
|
||||||
command = "lua-language-server"
|
|
||||||
|
|
||||||
[language-server.json]
|
|
||||||
command = "vscode-json-languageserver"
|
|
||||||
|
|
||||||
[language-server.markdown]
|
|
||||||
command = "marksman"
|
|
||||||
''
|
|
||||||
else "";
|
|
||||||
|
|
||||||
home.file.".config/helix/config.toml".text =
|
|
||||||
if enableEvilHelix
|
|
||||||
then ''
|
|
||||||
theme = "catppuccin_mocha"
|
|
||||||
#theme = "ao"
|
|
||||||
|
|
||||||
[editor]
|
|
||||||
evil = true
|
|
||||||
end-of-line-diagnostics = "hint"
|
|
||||||
auto-pairs = true
|
|
||||||
mouse = true
|
|
||||||
middle-click-paste = true
|
|
||||||
shell = ["zsh", "-c"]
|
|
||||||
line-number = "absolute"
|
|
||||||
auto-completion = true
|
|
||||||
path-completion = true
|
|
||||||
auto-info = true
|
|
||||||
color-modes = true
|
|
||||||
popup-border = "all"
|
|
||||||
clipboard-provider = "wayland"
|
|
||||||
indent-heuristic = "hybrid"
|
|
||||||
|
|
||||||
[editor.statusline]
|
|
||||||
left = ["mode", "spinner"]
|
|
||||||
center = ["file-absolute-path", "total-line-numbers", "read-only-indicator", "file-modification-indicator"]
|
|
||||||
right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"]
|
|
||||||
separator = "│"
|
|
||||||
mode.normal = "NORMAL"
|
|
||||||
mode.insert = "INSERT"
|
|
||||||
mode.select = "SELECT"
|
|
||||||
|
|
||||||
[editor.lsp]
|
|
||||||
enable = true
|
|
||||||
display-messages = true
|
|
||||||
display-progress-messages = true
|
|
||||||
|
|
||||||
[editor.inline-diagnostics]
|
|
||||||
cursor-line = "hint"
|
|
||||||
other-lines = "hint"
|
|
||||||
''
|
|
||||||
else "";
|
|
||||||
}
|
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
icons = "auto";
|
icons = "auto";
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
git = true;
|
git = true;
|
||||||
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
@@ -19,12 +17,4 @@
|
|||||||
"--hyperlink" # make paths clickable in some terminals
|
"--hyperlink" # make paths clickable in some terminals
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# Aliases to make `ls`, `ll`, `la` use eza
|
|
||||||
home.shellAliases = {
|
|
||||||
ls = "eza";
|
|
||||||
lt = "eza --tree --level=2";
|
|
||||||
ll = "eza -lh --no-user --long";
|
|
||||||
la = "eza -lah ";
|
|
||||||
tree = "eza --tree ";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,140 @@
|
|||||||
|
# {
|
||||||
|
# programs.fastfetch = {
|
||||||
|
# enable = true;
|
||||||
|
|
||||||
|
# settings = {
|
||||||
|
# display = {
|
||||||
|
# color = {
|
||||||
|
# keys = "35";
|
||||||
|
# output = "95";
|
||||||
|
# };
|
||||||
|
# separator = " ➜ ";
|
||||||
|
# };
|
||||||
|
|
||||||
|
# logo = {
|
||||||
|
# source = ./garandos.png;
|
||||||
|
# type = "kitty-direct";
|
||||||
|
# height = 10;
|
||||||
|
# width = 20;
|
||||||
|
# padding = {
|
||||||
|
# top = 2;
|
||||||
|
# left = 2;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# modules = [
|
||||||
|
# "break"
|
||||||
|
# {
|
||||||
|
# type = "os";
|
||||||
|
# key = "OS";
|
||||||
|
# keyColor = "31";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "command";
|
||||||
|
# key = " ├ GarandOS ";
|
||||||
|
# keyColor = "31";
|
||||||
|
# text = "echo v$" + "{GARANDOS_VERSION}";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "kernel";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "31";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "packages";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "31";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "shell";
|
||||||
|
# key = " └ ";
|
||||||
|
# keyColor = "31";
|
||||||
|
# }
|
||||||
|
# "break"
|
||||||
|
# {
|
||||||
|
# type = "wm";
|
||||||
|
# key = "WM ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "wmtheme";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "icons";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "cursor";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "terminal";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "terminalfont";
|
||||||
|
# key = " └ ";
|
||||||
|
# keyColor = "32";
|
||||||
|
# }
|
||||||
|
# "break"
|
||||||
|
# {
|
||||||
|
# type = "host";
|
||||||
|
# format = "{5} {1} Type {2}";
|
||||||
|
# key = "PC ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "cpu";
|
||||||
|
# format = "{1} ({3}) @ {7} GHz";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "gpu";
|
||||||
|
# format = "{1} {2} @ {12} GHz";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "memory";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "disk";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "monitor";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "player";
|
||||||
|
# key = " ├ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# type = "media";
|
||||||
|
# key = " └ ";
|
||||||
|
# keyColor = "33";
|
||||||
|
# }
|
||||||
|
# "break"
|
||||||
|
# {
|
||||||
|
# type = "uptime";
|
||||||
|
# key = " Uptime ";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.fastfetch = {
|
programs.fastfetch = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -6,130 +143,178 @@
|
|||||||
display = {
|
display = {
|
||||||
color = {
|
color = {
|
||||||
keys = "35";
|
keys = "35";
|
||||||
output = "95";
|
output = "90";
|
||||||
};
|
};
|
||||||
separator = " ➜ ";
|
separator = " ➜ ";
|
||||||
};
|
};
|
||||||
|
|
||||||
logo = {
|
logo = {
|
||||||
source = ./nixos.png;
|
source = ./garandos.png;
|
||||||
type = "kitty-direct";
|
type = "kitty-direct";
|
||||||
height = 10;
|
height = 15;
|
||||||
width = 20;
|
width = 30;
|
||||||
padding = {
|
padding = {
|
||||||
top = 2;
|
top = 3;
|
||||||
left = 2;
|
left = 3;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
"break"
|
"break"
|
||||||
{
|
{
|
||||||
type = "os";
|
type = "custom";
|
||||||
key = "OS";
|
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||||
keyColor = "31";
|
|
||||||
}
|
}
|
||||||
{
|
|
||||||
type = "command";
|
|
||||||
key = " ├ ZaneyOS ";
|
|
||||||
keyColor = "31";
|
|
||||||
text = "echo v$" + "{ZANEYOS_VERSION}";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "kernel";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "31";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "packages";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "31";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "shell";
|
|
||||||
key = " └ ";
|
|
||||||
keyColor = "31";
|
|
||||||
}
|
|
||||||
"break"
|
|
||||||
{
|
|
||||||
type = "wm";
|
|
||||||
key = "WM ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "wmtheme";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "icons";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "cursor";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "terminal";
|
|
||||||
key = " ├ ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "terminalfont";
|
|
||||||
key = " └ ";
|
|
||||||
keyColor = "32";
|
|
||||||
}
|
|
||||||
"break"
|
|
||||||
{
|
{
|
||||||
type = "host";
|
type = "host";
|
||||||
format = "{5} {1} Type {2}";
|
format = "{5} {1} Type {2}";
|
||||||
key = "PC ";
|
key = "│ PC";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "cpu";
|
type = "cpu";
|
||||||
format = "{1} ({3}) @ {7} GHz";
|
format = "{1} ({3}) @ {7} GHz";
|
||||||
key = " ├ ";
|
key = "│ ├ ";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "gpu";
|
type = "gpu";
|
||||||
format = "{1} {2} @ {12} GHz";
|
format = "{1} {2} @ {12} GHz";
|
||||||
key = " ├ ";
|
key = "│ ├ ";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "memory";
|
type = "memory";
|
||||||
key = " ├ ";
|
key = "│ ├ ";
|
||||||
|
keyColor = "33";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "swap";
|
||||||
|
key = "│ ├ ";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "disk";
|
type = "disk";
|
||||||
key = " ├ ";
|
key = "│ ├ ";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "monitor";
|
type = "monitor";
|
||||||
key = " ├ ";
|
key = "│ └ ";
|
||||||
keyColor = "33";
|
keyColor = "33";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
type = "player";
|
type = "custom";
|
||||||
key = " ├ ";
|
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||||
keyColor = "33";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
type = "media";
|
|
||||||
key = " └ ";
|
|
||||||
keyColor = "33";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
"break"
|
"break"
|
||||||
{
|
{
|
||||||
type = "uptime";
|
type = "custom";
|
||||||
key = " Uptime ";
|
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
type = "os";
|
||||||
|
key = "│ OS";
|
||||||
|
keyColor = "31";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "command";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "31";
|
||||||
|
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "kernel";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "31";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "packages";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "31";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "shell";
|
||||||
|
key = "│ └ ";
|
||||||
|
keyColor = "31";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "wm";
|
||||||
|
key = "│ WM";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "wmtheme";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "icons";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "cursor";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "terminal";
|
||||||
|
key = "│ ├ ";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "terminalfont";
|
||||||
|
key = "│ └ ";
|
||||||
|
keyColor = "32";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||||
|
}
|
||||||
|
|
||||||
|
"break"
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "command";
|
||||||
|
key = "│ IN";
|
||||||
|
text =
|
||||||
|
#bash
|
||||||
|
''
|
||||||
|
birth_install=$(stat -c %W /)
|
||||||
|
if [ "$birth_install" -gt 0 ]; then
|
||||||
|
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||||
|
else
|
||||||
|
echo "Installation date unknown"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "command";
|
||||||
|
key = "│ ├ ";
|
||||||
|
text =
|
||||||
|
#bash
|
||||||
|
''
|
||||||
|
birth_install=$(stat -c %W /)
|
||||||
|
current=$(date +%s)
|
||||||
|
delta=$((current - birth_install))
|
||||||
|
delta_days=$((delta / 86400))
|
||||||
|
echo $delta_days days
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "uptime";
|
||||||
|
key = "│ └ ";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "custom";
|
||||||
|
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||||
|
}
|
||||||
|
"break"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
BIN
modules/home/fastfetch/garandos.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 78 KiB |
@@ -1,7 +1,8 @@
|
|||||||
# Fzf is a general-purpose command-line fuzzy finder.
|
# Fzf is a general-purpose command-line fuzzy finder.
|
||||||
{ config
|
{
|
||||||
, lib
|
config,
|
||||||
, ...
|
lib,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
accent = "#" + config.lib.stylix.colors.base0D;
|
accent = "#" + config.lib.stylix.colors.base0D;
|
||||||
@@ -11,7 +12,7 @@ in
|
|||||||
{
|
{
|
||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableBashIntegration = true;
|
||||||
colors = lib.mkForce {
|
colors = lib.mkForce {
|
||||||
"fg+" = accent;
|
"fg+" = accent;
|
||||||
"bg+" = "-1";
|
"bg+" = "-1";
|
||||||
@@ -29,7 +30,7 @@ in
|
|||||||
"--prompt='/ '"
|
"--prompt='/ '"
|
||||||
"-i"
|
"-i"
|
||||||
"--no-bold"
|
"--no-bold"
|
||||||
"--bind='enter:execute(nvim {})'"
|
"--bind='enter:execute(nano {})'"
|
||||||
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
||||||
"--preview-window=right:60%:wrap"
|
"--preview-window=right:60%:wrap"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
# A recent issue 7/7/2025 w/ghostty causes it to hang or respond slowly
|
|
||||||
# This is a workaround until a fix is released
|
|
||||||
myGhostty = pkgs.ghostty.overrideAttrs (_: {
|
|
||||||
preBuild = ''
|
|
||||||
shopt -s globstar
|
|
||||||
sed -i 's/^const xev = @import("xev");$/const xev = @import("xev").Epoll;/' **/*.zig
|
|
||||||
shopt -u globstar
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
in
|
|
||||||
{
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
package = myGhostty; # to fix a but in current builds of ghostty
|
|
||||||
#package = pkgs.ghostty;
|
|
||||||
};
|
|
||||||
home.file."./.config/ghostty/config".text = ''
|
|
||||||
|
|
||||||
#theme = Aura
|
|
||||||
theme = Dracula
|
|
||||||
#theme = Aardvark Blue
|
|
||||||
#theme = GruvboxDarkHard
|
|
||||||
adjust-cell-height = 10%
|
|
||||||
window-theme = dark
|
|
||||||
window-height = 32
|
|
||||||
window-width = 110
|
|
||||||
background-opacity = 0.95
|
|
||||||
background-blur-radius = 60
|
|
||||||
selection-background = #2d3f76
|
|
||||||
selection-foreground = #c8d3f5
|
|
||||||
cursor-style = bar
|
|
||||||
mouse-hide-while-typing = true
|
|
||||||
|
|
||||||
# keybindings
|
|
||||||
# Copy/Paste
|
|
||||||
keybind = ctrl+shift+c=copy_to_clipboard
|
|
||||||
keybind = ctrl+shift+v=paste_from_clipboard
|
|
||||||
|
|
||||||
keybind = alt+s>r=reload_config
|
|
||||||
keybind = alt+s>x=close_surface
|
|
||||||
|
|
||||||
keybind = alt+s>n=new_window
|
|
||||||
|
|
||||||
# tabs
|
|
||||||
keybind = alt+s>c=new_tab
|
|
||||||
keybind = alt+s>shift+l=next_tab
|
|
||||||
keybind = alt+s>shift+h=previous_tab
|
|
||||||
keybind = alt+s>comma=move_tab:-1
|
|
||||||
keybind = alt+s>period=move_tab:1
|
|
||||||
|
|
||||||
# quick tab switch
|
|
||||||
keybind = alt+s>1=goto_tab:1
|
|
||||||
keybind = alt+s>2=goto_tab:2
|
|
||||||
keybind = alt+s>3=goto_tab:3
|
|
||||||
keybind = alt+s>4=goto_tab:4
|
|
||||||
keybind = alt+s>5=goto_tab:5
|
|
||||||
keybind = alt+s>6=goto_tab:6
|
|
||||||
keybind = alt+s>7=goto_tab:7
|
|
||||||
keybind = alt+s>8=goto_tab:8
|
|
||||||
keybind = alt+s>9=goto_tab:9
|
|
||||||
|
|
||||||
# split
|
|
||||||
keybind = alt+s>\=new_split:right
|
|
||||||
keybind = alt+s>-=new_split:down
|
|
||||||
|
|
||||||
keybind = alt+s>j=goto_split:bottom
|
|
||||||
keybind = alt+s>k=goto_split:top
|
|
||||||
keybind = alt+s>h=goto_split:left
|
|
||||||
keybind = alt+s>l=goto_split:right
|
|
||||||
|
|
||||||
keybind = alt+s>z=toggle_split_zoom
|
|
||||||
|
|
||||||
keybind = alt+s>e=equalize_splits
|
|
||||||
|
|
||||||
# other
|
|
||||||
#copy-on-select = clipboard
|
|
||||||
|
|
||||||
font-size = 12
|
|
||||||
#font-family = JetBrainsMono Nerd Font Mono
|
|
||||||
#font-family-bold = JetBrainsMono NFM Bold
|
|
||||||
#font-family-bold-italic = JetBrainsMono NFM Bold Italic
|
|
||||||
#font-family-italic = JetBrainsMono NFM Italic
|
|
||||||
|
|
||||||
font-family = BerkeleyMono Nerd Font
|
|
||||||
#font-family = Iosevka Nerd Font
|
|
||||||
# font-family = SFMono Nerd Font
|
|
||||||
|
|
||||||
title = "GhosTTY"
|
|
||||||
|
|
||||||
wait-after-command = false
|
|
||||||
shell-integration = detect
|
|
||||||
window-save-state = always
|
|
||||||
gtk-single-instance = true
|
|
||||||
unfocused-split-opacity = 0.5
|
|
||||||
quick-terminal-position = center
|
|
||||||
shell-integration-features = cursor,sudo
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,42 +1,46 @@
|
|||||||
{ config, ... }: {
|
{ config, ... }:
|
||||||
|
{
|
||||||
programs.htop = {
|
programs.htop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings =
|
settings = {
|
||||||
{
|
color_scheme = 6;
|
||||||
color_scheme = 6;
|
cpu_count_from_one = 0;
|
||||||
cpu_count_from_one = 0;
|
delay = 15;
|
||||||
delay = 15;
|
fields = with config.lib.htop.fields; [
|
||||||
fields = with config.lib.htop.fields; [
|
PID
|
||||||
PID
|
USER
|
||||||
USER
|
PRIORITY
|
||||||
PRIORITY
|
NICE
|
||||||
NICE
|
M_SIZE
|
||||||
M_SIZE
|
M_RESIDENT
|
||||||
M_RESIDENT
|
M_SHARE
|
||||||
M_SHARE
|
STATE
|
||||||
STATE
|
PERCENT_CPU
|
||||||
PERCENT_CPU
|
PERCENT_MEM
|
||||||
PERCENT_MEM
|
TIME
|
||||||
TIME
|
COMM
|
||||||
COMM
|
];
|
||||||
];
|
highlight_base_name = 1;
|
||||||
highlight_base_name = 1;
|
highlight_megabytes = 1;
|
||||||
highlight_megabytes = 1;
|
highlight_threads = 1;
|
||||||
highlight_threads = 1;
|
}
|
||||||
}
|
// (
|
||||||
// (with config.lib.htop;
|
with config.lib.htop;
|
||||||
leftMeters [
|
leftMeters [
|
||||||
(bar "AllCPUs2")
|
(bar "AllCPUs2")
|
||||||
(bar "Memory")
|
(bar "Memory")
|
||||||
(bar "Swap")
|
(bar "Swap")
|
||||||
(text "Zram")
|
(text "Zram")
|
||||||
])
|
]
|
||||||
// (with config.lib.htop;
|
)
|
||||||
|
// (
|
||||||
|
with config.lib.htop;
|
||||||
rightMeters [
|
rightMeters [
|
||||||
(text "Tasks")
|
(text "Tasks")
|
||||||
(text "LoadAverage")
|
(text "LoadAverage")
|
||||||
(text "Uptime")
|
(text "Uptime")
|
||||||
(text "Systemd")
|
(text "Systemd")
|
||||||
]);
|
]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
animations = {
|
animations = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
# name "Dynamic"
|
# name "Dynamic"
|
||||||
# credit https://github.com/mylinuxforwork/dotfiles
|
# credit https://github.com/mylinuxforwork/dotfiles
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
# Name: END-4
|
# Name: END-4
|
||||||
# Credit: END-4 project https://github.com/end-4/dots-hyprland
|
# Credit: END-4 project https://github.com/end-4/dots-hyprland
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
# name "moving"
|
# name "moving"
|
||||||
# credit https://github.com/mylinuxforwork/dotfiles
|
# credit https://github.com/mylinuxforwork/dotfiles
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{ host, ... }:
|
{ host, ... }:
|
||||||
let
|
let
|
||||||
inherit
|
inherit (import ../../../hosts/${host}/variables.nix)
|
||||||
(import ../../../hosts/${host}/variables.nix)
|
|
||||||
browser
|
browser
|
||||||
terminal
|
terminal
|
||||||
;
|
;
|
||||||
@@ -17,7 +16,6 @@ in
|
|||||||
"$modifier ALT,W,exec,wallsetter"
|
"$modifier ALT,W,exec,wallsetter"
|
||||||
"$modifier SHIFT,N,exec,swaync-client -rs"
|
"$modifier SHIFT,N,exec,swaync-client -rs"
|
||||||
"$modifier,W,exec,${browser}"
|
"$modifier,W,exec,${browser}"
|
||||||
"$modifier,Y,exec,kitty -e yazi"
|
|
||||||
"$modifier,E,exec,emopicker9000"
|
"$modifier,E,exec,emopicker9000"
|
||||||
"$modifier,S,exec,screenshootin"
|
"$modifier,S,exec,screenshootin"
|
||||||
"$modifier,D,exec,discord"
|
"$modifier,D,exec,discord"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ ... }: {
|
{ ... }:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
env = [
|
env = [
|
||||||
@@ -23,7 +24,7 @@
|
|||||||
#"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2"
|
#"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2"
|
||||||
"GDK_SCALE,1"
|
"GDK_SCALE,1"
|
||||||
"QT_SCALE_FACTOR,1"
|
"QT_SCALE_FACTOR,1"
|
||||||
"EDITOR,nvim"
|
"EDITOR,nano"
|
||||||
# Set terminal and xdg_terminal_emulator to kitty
|
# Set terminal and xdg_terminal_emulator to kitty
|
||||||
# To provent yazi from starting xterm when run from rofi menu
|
# To provent yazi from starting xterm when run from rofi menu
|
||||||
# You can set to your preferred terminal if you you like
|
# You can set to your preferred terminal if you you like
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{ host, ... }:
|
{ host, ... }:
|
||||||
let
|
let
|
||||||
inherit
|
inherit (import ../../../hosts/${host}/variables.nix)
|
||||||
(import ../../../hosts/${host}/variables.nix)
|
|
||||||
stylixImage
|
stylixImage
|
||||||
;
|
;
|
||||||
in
|
in
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 362 KiB |
@@ -1,11 +1,11 @@
|
|||||||
{ host
|
{
|
||||||
, config
|
host,
|
||||||
, pkgs
|
config,
|
||||||
, ...
|
pkgs,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit
|
inherit (import ../../../hosts/${host}/variables.nix)
|
||||||
(import ../../../hosts/${host}/variables.nix)
|
|
||||||
extraMonitorSettings
|
extraMonitorSettings
|
||||||
keyboardLayout
|
keyboardLayout
|
||||||
stylixImage
|
stylixImage
|
||||||
@@ -65,8 +65,8 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
gestures = {
|
gestures = {
|
||||||
workspace_swipe = 1;
|
# workspace_swipe = 1;
|
||||||
workspace_swipe_fingers = 3;
|
# workspace_swipe_fingers = 3;
|
||||||
workspace_swipe_distance = 500;
|
workspace_swipe_distance = 500;
|
||||||
workspace_swipe_invert = 1;
|
workspace_swipe_invert = 1;
|
||||||
workspace_swipe_min_speed_to_force = 30;
|
workspace_swipe_min_speed_to_force = 30;
|
||||||
@@ -82,7 +82,8 @@ in
|
|||||||
gaps_out = 8;
|
gaps_out = 8;
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
resize_on_border = true;
|
resize_on_border = true;
|
||||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
"col.active_border" =
|
||||||
|
"rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||||
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -95,7 +96,7 @@ in
|
|||||||
disable_splash_rendering = true;
|
disable_splash_rendering = true;
|
||||||
enable_swallow = false;
|
enable_swallow = false;
|
||||||
vfr = true; # Variable Frame Rate
|
vfr = true; # Variable Frame Rate
|
||||||
vrr = 2; #Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
||||||
# Screen flashing to black momentarily or going black when app is fullscreen
|
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||||
# Try setting vrr to 0
|
# Try setting vrr to 0
|
||||||
|
|
||||||
@@ -162,7 +163,9 @@ in
|
|||||||
extraConfig = "
|
extraConfig = "
|
||||||
monitor=,preferred,auto,auto
|
monitor=,preferred,auto,auto
|
||||||
monitor=Virtual-1,1920x1080@60,auto,1
|
monitor=Virtual-1,1920x1080@60,auto,1
|
||||||
${extraMonitorSettings}
|
${
|
||||||
|
extraMonitorSettings
|
||||||
|
}
|
||||||
# To enable blur on waybar uncomment the line below
|
# To enable blur on waybar uncomment the line below
|
||||||
# Thanks to SchotjeChrisman
|
# Thanks to SchotjeChrisman
|
||||||
#layerrule = blur,waybar
|
#layerrule = blur,waybar
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ username, ... }: {
|
{ username, ... }:
|
||||||
|
{
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [ pyprland ];
|
home.packages = with pkgs; [ pyprland ];
|
||||||
|
|
||||||
home.file.".config/hypr/pyprland.toml".text = ''
|
home.file.".config/hypr/pyprland.toml".text = ''
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{host, ...}: let
|
{ host, ... }:
|
||||||
inherit
|
let
|
||||||
(import ../../../hosts/${host}/variables.nix)
|
inherit (import ../../../hosts/${host}/variables.nix)
|
||||||
extraMonitorSettings
|
extraMonitorSettings
|
||||||
;
|
;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = {
|
settings = {
|
||||||
windowrule = [
|
windowrule = [
|
||||||
|
|||||||
@@ -1,229 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
######################################
|
|
||||||
# Install script for zaneyos
|
|
||||||
# Author: Don Williams
|
|
||||||
# Date: June 27, 2005
|
|
||||||
#######################################
|
|
||||||
|
|
||||||
# Define colors
|
|
||||||
RED='\033[0;31m'
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
# Define log file
|
|
||||||
LOG_DIR="$(dirname "$0")"
|
|
||||||
LOG_FILE="${LOG_DIR}/install_$(date +"%Y-%m-%d_%H-%M-%S").log"
|
|
||||||
|
|
||||||
mkdir -p "$LOG_DIR"
|
|
||||||
exec > >(tee -a "$LOG_FILE") 2>&1
|
|
||||||
|
|
||||||
# Function to print a section header
|
|
||||||
print_header() {
|
|
||||||
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════════════╗${NC}"
|
|
||||||
echo -e "${GREEN}║ ${1} ${NC}"
|
|
||||||
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════════════╝${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to print an error message
|
|
||||||
print_error() {
|
|
||||||
echo -e "${RED}Error: ${1}${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to print a success banner
|
|
||||||
print_success_banner() {
|
|
||||||
echo -e "${GREEN}╔═══════════════════════════════════════════════════════════════════════╗${NC}"
|
|
||||||
echo -e "${GREEN}║ zaneyos Installation Successful! ║${NC}"
|
|
||||||
echo -e "${GREEN}║ ║${NC}"
|
|
||||||
echo -e "${GREEN}║ Please reboot your system for changes to take full effect. ║${NC}"
|
|
||||||
echo -e "${GREEN}║ ║${NC}"
|
|
||||||
echo -e "${GREEN}╚═══════════════════════════════════════════════════════════════════════╝${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to print a failure banner
|
|
||||||
print_failure_banner() {
|
|
||||||
echo -e "${RED}╔═══════════════════════════════════════════════════════════════════════╗${NC}"
|
|
||||||
echo -e "${RED}║ zaneyos Installation Failed! ║${NC}"
|
|
||||||
echo -e "${RED}║ ║${NC}"
|
|
||||||
echo -e "${RED}║ Please review the log file for details: ║${NC}"
|
|
||||||
echo -e "${RED}║ ${LOG_FILE} ║${NC}"
|
|
||||||
echo -e "${RED}║ ║${NC}"
|
|
||||||
echo -e "${RED}╚═══════════════════════════════════════════════════════════════════════╝${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
print_header "Verifying System Requirements"
|
|
||||||
|
|
||||||
# Check for git
|
|
||||||
if ! command -v git &> /dev/null; then
|
|
||||||
print_error "Git is not installed."
|
|
||||||
echo -e "Please install git and pciutils are installed, then re-run the install script."
|
|
||||||
echo -e "Example: nix-shell -p git pciutils"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for lspci (pciutils)
|
|
||||||
if ! command -v lspci &> /dev/null; then
|
|
||||||
print_error "pciutils is not installed."
|
|
||||||
echo -e "Please install git and pciutils, then re-run the install script."
|
|
||||||
echo -e "Example: nix-shell -p git pciutils"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$(grep -i nixos < /etc/os-release)" ]; then
|
|
||||||
echo -e "${GREEN}Verified this is NixOS.${NC}"
|
|
||||||
else
|
|
||||||
print_error "This is not NixOS or the distribution information is not available."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_header "Initial Setup"
|
|
||||||
|
|
||||||
echo -e "Default options are in brackets []"
|
|
||||||
echo -e "Just press enter to select the default"
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
print_header "Ensure In Home Directory"
|
|
||||||
cd "$HOME" || exit 1
|
|
||||||
echo -e "${GREEN}Current directory: $(pwd)${NC}"
|
|
||||||
|
|
||||||
print_header "Hostname Configuration"
|
|
||||||
read -rp "Enter Your New Hostname: [ default ] " hostName
|
|
||||||
if [ -z "$hostName" ]; then
|
|
||||||
hostName="default"
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_header "GPU Profile Detection"
|
|
||||||
|
|
||||||
# Attempt automatic detection
|
|
||||||
DETECTED_PROFILE=""
|
|
||||||
|
|
||||||
has_nvidia=false
|
|
||||||
has_intel=false
|
|
||||||
has_amd=false
|
|
||||||
has_vm=false
|
|
||||||
|
|
||||||
if lspci | grep -qi 'vga\|3d'; then
|
|
||||||
while read -r line; do
|
|
||||||
if echo "$line" | grep -qi 'nvidia'; then
|
|
||||||
has_nvidia=true
|
|
||||||
elif echo "$line" | grep -qi 'amd'; then
|
|
||||||
has_amd=true
|
|
||||||
elif echo "$line" | grep -qi 'intel'; then
|
|
||||||
has_intel=true
|
|
||||||
elif echo "$line" | grep -qi 'virtio\|vmware'; then
|
|
||||||
has_vm=true
|
|
||||||
fi
|
|
||||||
done < <(lspci | grep -i 'vga\|3d')
|
|
||||||
|
|
||||||
if $has_vm; then
|
|
||||||
DETECTED_PROFILE="vm"
|
|
||||||
elif $has_nvidia && $has_intel; then
|
|
||||||
DETECTED_PROFILE="hybrid"
|
|
||||||
elif $has_nvidia; then
|
|
||||||
DETECTED_PROFILE="nvidia"
|
|
||||||
elif $has_amd; then
|
|
||||||
DETECTED_PROFILE="amd"
|
|
||||||
elif $has_intel; then
|
|
||||||
DETECTED_PROFILE="intel"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Handle detected profile or fall back to manual input
|
|
||||||
if [ -n "$DETECTED_PROFILE" ]; then
|
|
||||||
profile="$DETECTED_PROFILE"
|
|
||||||
echo -e "${GREEN}Detected GPU profile: $profile${NC}"
|
|
||||||
read -p "Correct? (Y/N): " -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${RED}GPU profile not confirmed. Falling back to manual selection.${NC}"
|
|
||||||
profile="" # Clear profile to force manual input
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If profile is still empty (either not detected or not confirmed), prompt manually
|
|
||||||
if [ -z "$profile" ]; then
|
|
||||||
echo -e "${RED}Automatic GPU detection failed or no specific profile found.${NC}"
|
|
||||||
read -rp "Enter Your Hardware Profile (GPU)\nOptions:\n[ amd ]\nnvidia\nnvidia-laptop\nintel\nvm\nPlease type out your choice: " profile
|
|
||||||
if [ -z "$profile" ]; then
|
|
||||||
profile="amd"
|
|
||||||
fi
|
|
||||||
echo -e "${GREEN}Selected GPU profile: $profile${NC}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_header "Backup Existing zaneyos (if any)"
|
|
||||||
|
|
||||||
backupname=$(date +"%Y-%m-%d-%H-%M-%S")
|
|
||||||
if [ -d "zaneyos" ]; then
|
|
||||||
echo -e "${GREEN}zaneyos exists, backing up to .config/zaneyos-backups folder.${NC}"
|
|
||||||
if [ -d ".config/zaneyos-backups" ]; then
|
|
||||||
echo -e "${GREEN}Moving current version of zaneyos to backups folder.${NC}"
|
|
||||||
mv "$HOME"/zaneyos .config/zaneyos-backups/"$backupname"
|
|
||||||
sleep 1
|
|
||||||
else
|
|
||||||
echo -e "${GREEN}Creating the backups folder & moving zaneyos to it.${NC}"
|
|
||||||
mkdir -p .config/zaneyos-backups
|
|
||||||
mv "$HOME"/zaneyos .config/zaneyos-backups/"$backupname"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "${GREEN}Thank you for choosing zaneyos.${NC}"
|
|
||||||
echo -e "${GREEN}I hope you find your time here enjoyable!${NC}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_header "Cloning zaneyos Repository"
|
|
||||||
git clone https://gitlab.com/dwilliam62/zaneyos.git --depth=1 ~/zaneyos
|
|
||||||
cd ~/zaneyos || exit 1
|
|
||||||
|
|
||||||
print_header "Configuring Host and Profile"
|
|
||||||
mkdir -p hosts/"$hostName"
|
|
||||||
cp hosts/default/*.nix hosts/"$hostName"
|
|
||||||
|
|
||||||
installusername=$(echo $USER)
|
|
||||||
git config --global user.name "$installusername"
|
|
||||||
git config --global user.email "$installusername@gmail.com"
|
|
||||||
git add .
|
|
||||||
git config --global --unset-all user.name
|
|
||||||
git config --global --unset-all user.email
|
|
||||||
|
|
||||||
sed -i "/^[[:space:]]*host[[:space:]]*=[[:space:]]*\"/ s/\"[^\"]*\"/\"$hostName\"/" ./flake.nix
|
|
||||||
sed -i "/^[[:space:]]*profile[[:space:]]*=[[:space:]]*\"/ s/\"[^\"]*\"/\"$profile\"/" ./flake.nix
|
|
||||||
|
|
||||||
print_header "Keyboard Layout Configuration"
|
|
||||||
read -rp "Enter your keyboard layout: [ us ] " keyboardLayout
|
|
||||||
if [ -z "$keyboardLayout" ]; then
|
|
||||||
keyboardLayout="us"
|
|
||||||
fi
|
|
||||||
sed -i "/^[[:space:]]*keyboardLayout[[:space:]]*=[[:space:]]*\"/ s/\"[^\"]*\"/\"$keyboardLayout\"/" ./hosts/$hostName/variables.nix
|
|
||||||
|
|
||||||
print_header "Console Keymap Configuration"
|
|
||||||
read -rp "Enter your console keymap: [ us ] " consoleKeyMap
|
|
||||||
if [ -z "$consoleKeyMap" ]; then
|
|
||||||
consoleKeyMap="us"
|
|
||||||
fi
|
|
||||||
sed -i "/^[[:space:]]*consoleKeyMap[[:space:]]*=[[:space:]]*\"/ s/\"[^\"]*\"/\"$consoleKeyMap\"/" ./hosts/$hostName/variables.nix
|
|
||||||
|
|
||||||
print_header "Username Configuration"
|
|
||||||
sed -i "/^[[:space:]]*username[[:space:]]*=[[:space:]]*\"/ s/\"[^\"]*\"/\"$installusername\"/" ./flake.nix
|
|
||||||
|
|
||||||
print_header "Generating Hardware Configuration -- Ignore ERROR: cannot access /bin"
|
|
||||||
sudo nixos-generate-config --show-hardware-config > ./hosts/$hostName/hardware.nix
|
|
||||||
|
|
||||||
print_header "Setting Nix Configuration"
|
|
||||||
NIX_CONFIG="experimental-features = nix-command flakes"
|
|
||||||
|
|
||||||
print_header "Initiating NixOS Build"
|
|
||||||
read -p "Ready to run initial build? (Y/N): " -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
echo -e "${RED}Build cancelled.${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo nixos-rebuild boot --flake ~/zaneyos/#${profile}
|
|
||||||
|
|
||||||
# Check the exit status of the last command (nixos-rebuild)
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
print_success_banner
|
|
||||||
else
|
|
||||||
print_failure_banner
|
|
||||||
fi
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.kitty;
|
package = pkgs.kitty;
|
||||||
|
|||||||