diff --git a/cheatsheets/README.md b/cheatsheets/README.md deleted file mode 100644 index 23eee44..0000000 --- a/cheatsheets/README.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/alacritty/alacritty.cheatsheet.md b/cheatsheets/alacritty/alacritty.cheatsheet.md deleted file mode 100644 index 84164f0..0000000 --- a/cheatsheets/alacritty/alacritty.cheatsheet.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/emacs/emacs.code-completion.cheatsheet.md b/cheatsheets/emacs/emacs.code-completion.cheatsheet.md deleted file mode 100644 index d1c074a..0000000 --- a/cheatsheets/emacs/emacs.code-completion.cheatsheet.md +++ /dev/null @@ -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! diff --git a/cheatsheets/emacs/emacs.file-explorer.cheatsheet.md b/cheatsheets/emacs/emacs.file-explorer.cheatsheet.md deleted file mode 100644 index b33bd75..0000000 --- a/cheatsheets/emacs/emacs.file-explorer.cheatsheet.md +++ /dev/null @@ -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. diff --git a/cheatsheets/emacs/emacs.getting-started.top10.md b/cheatsheets/emacs/emacs.getting-started.top10.md deleted file mode 100644 index 3405622..0000000 --- a/cheatsheets/emacs/emacs.getting-started.top10.md +++ /dev/null @@ -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! 🚀 diff --git a/cheatsheets/emacs/emacs.magit.cheatsheet.md b/cheatsheets/emacs/emacs.magit.cheatsheet.md deleted file mode 100644 index 0ccc062..0000000 --- a/cheatsheets/emacs/emacs.magit.cheatsheet.md +++ /dev/null @@ -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! 🚀 diff --git a/cheatsheets/emacs/emacs.markdown.cheatsheet.md b/cheatsheets/emacs/emacs.markdown.cheatsheet.md deleted file mode 100644 index 0e91631..0000000 --- a/cheatsheets/emacs/emacs.markdown.cheatsheet.md +++ /dev/null @@ -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) diff --git a/cheatsheets/ghostty/ghostty.cheatsheet.md b/cheatsheets/ghostty/ghostty.cheatsheet.md deleted file mode 100644 index f7c069f..0000000 --- a/cheatsheets/ghostty/ghostty.cheatsheet.md +++ /dev/null @@ -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). diff --git a/cheatsheets/hyprland-customization-guide.es.md b/cheatsheets/hyprland-customization-guide.es.md deleted file mode 100644 index 4c45e75..0000000 --- a/cheatsheets/hyprland-customization-guide.es.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/hyprland-customization-guide.md b/cheatsheets/hyprland-customization-guide.md deleted file mode 100644 index a6dc93d..0000000 --- a/cheatsheets/hyprland-customization-guide.md +++ /dev/null @@ -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. diff --git a/cheatsheets/hyprland/hyprland.binds.cheatsheet.md b/cheatsheets/hyprland/hyprland.binds.cheatsheet.md deleted file mode 100644 index c024232..0000000 --- a/cheatsheets/hyprland/hyprland.binds.cheatsheet.md +++ /dev/null @@ -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 - diff --git a/cheatsheets/hyprland/hyprland.windowrules.cheatsheet.md b/cheatsheets/hyprland/hyprland.windowrules.cheatsheet.md deleted file mode 100644 index 01667f0..0000000 --- a/cheatsheets/hyprland/hyprland.windowrules.cheatsheet.md +++ /dev/null @@ -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 - diff --git a/cheatsheets/kitty/kitty.cheatsheet.md b/cheatsheets/kitty/kitty.cheatsheet.md deleted file mode 100644 index d7e8c35..0000000 --- a/cheatsheets/kitty/kitty.cheatsheet.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/nix-beginner-guide.es.md b/cheatsheets/nix-beginner-guide.es.md deleted file mode 100644 index 3ec70b1..0000000 --- a/cheatsheets/nix-beginner-guide.es.md +++ /dev/null @@ -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//` - - `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//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//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. - diff --git a/cheatsheets/nix-beginner-guide.md b/cheatsheets/nix-beginner-guide.md deleted file mode 100644 index cc88d20..0000000 --- a/cheatsheets/nix-beginner-guide.md +++ /dev/null @@ -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//` - - `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//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//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. diff --git a/cheatsheets/project-guide.md b/cheatsheets/project-guide.md deleted file mode 100644 index b7b17a2..0000000 --- a/cheatsheets/project-guide.md +++ /dev/null @@ -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 # alias provided by zsh/bash modules - - fu → nh os switch --hostname --update - - zcli rebuild - - zcli update -- Build for next boot (safer for larger changes) - - zcli rebuild-boot - - or: sudo nixos-rebuild boot --flake .# -- Direct NixOS (if you prefer without nh/zcli) - - sudo nixos-rebuild switch --flake .# -- 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 [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 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/ -- profiles//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// - - 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//{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//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. - diff --git a/cheatsheets/tmux/tmux.cheatsheet.md b/cheatsheets/tmux/tmux.cheatsheet.md deleted file mode 100644 index 4c73daa..0000000 --- a/cheatsheets/tmux/tmux.cheatsheet.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/wezterm/wezterm.cheatsheet.md b/cheatsheets/wezterm/wezterm.cheatsheet.md deleted file mode 100644 index 9a8b9dd..0000000 --- a/cheatsheets/wezterm/wezterm.cheatsheet.md +++ /dev/null @@ -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. - diff --git a/cheatsheets/yazi/yazi.keymap.cheatsheet.md b/cheatsheets/yazi/yazi.keymap.cheatsheet.md deleted file mode 100644 index e4c636f..0000000 --- a/cheatsheets/yazi/yazi.keymap.cheatsheet.md +++ /dev/null @@ -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 - diff --git a/flake.lock b/flake.lock index f078207..a4e6c8e 100644 --- a/flake.lock +++ b/flake.lock @@ -75,11 +75,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1757736223, - "narHash": "sha256-4yhWsAvejkPRNdx9eKAVOQt1t8vI6qF/kITCRSIIiK8=", + "lastModified": 1757995413, + "narHash": "sha256-vaU/7/PXoym6vnspGxhR29V9klGe9iy9zmp6x7w38f8=", "owner": "rycee", "repo": "nur-expressions", - "rev": "a73f8d6c29ea0e05c0dc570d4047e0aed1edd00d", + "rev": "4ae8996b3e139926c784acd22824cde46cd28833", "type": "gitlab" }, "original": { @@ -105,44 +105,7 @@ "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": { - "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": { "nixpkgs-lib": [ "stylix", @@ -203,11 +166,11 @@ ] }, "locked": { - "lastModified": 1757784838, - "narHash": "sha256-6aHo1++bAFdW1z+0tfuxM9EmxHvon90mHo8/+izXMcY=", + "lastModified": 1757997814, + "narHash": "sha256-F+1aoG+3NH4jDDEmhnDUReISyq6kQBBuktTUqCUWSiw=", "owner": "nix-community", "repo": "home-manager", - "rev": "6e28513cf2ee9a985c339fcef24d44f43d23456b", + "rev": "5820376beb804de9acf07debaaff1ac84728b708", "type": "github" }, "original": { @@ -233,21 +196,6 @@ "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": { "locked": { "lastModified": 1739444422, @@ -266,11 +214,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1757487488, - "narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { @@ -305,30 +253,6 @@ "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": { "inputs": { "libnbtplusplus": "libnbtplusplus", @@ -356,7 +280,6 @@ "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", "nixpkgs": "nixpkgs", - "nvf": "nvf", "prismlauncher-cracked": "prismlauncher-cracked", "stylix": "stylix" } @@ -368,13 +291,13 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" ], "nur": "nur", - "systems": "systems_2", + "systems": "systems", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -382,11 +305,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1757360005, - "narHash": "sha256-VwzdFEQCpYMU9mc7BSQGQe5wA1MuTYPJnRc9TQCTMcM=", + "lastModified": 1757956156, + "narHash": "sha256-f0W7qbsCqpi6swQ5w8H+0YrAbNwsHgCFDkNRMTJjqrE=", "owner": "danth", "repo": "stylix", - "rev": "834a743c11d66ea18e8c54872fbcc72ce48bc57f", + "rev": "0ce0103b498bb22f899ed8862d8d7f9503ed9cdb", "type": "github" }, "original": { @@ -410,21 +333,6 @@ "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": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 8145b02..1ff7462 100644 --- a/flake.nix +++ b/flake.nix @@ -14,11 +14,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - nvf = { - url = "github:notashelf/nvf"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; @@ -30,15 +25,6 @@ }; 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 = @@ -55,20 +41,22 @@ username = "garand_plg"; # Deduplicate nixosConfigurations while preserving the top-level 'profile' - mkNixosConfig = gpuProfile: nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { - inherit inputs; - inherit username; - inherit host; - inherit profile; # keep using the let-bound profile for modules/scripts + mkNixosConfig = + gpuProfile: + nixpkgs.lib.nixosSystem { 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 { nixosConfigurations = { diff --git a/hosts/Garand-Desktop/default.nix b/hosts/Garand-Desktop/default.nix index 1ef7d77..b947be8 100644 --- a/hosts/Garand-Desktop/default.nix +++ b/hosts/Garand-Desktop/default.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ imports = [ ./hardware.nix ./host-packages.nix diff --git a/hosts/Garand-Desktop/hardware.nix b/hosts/Garand-Desktop/hardware.nix index e6878f9..10e28ee 100644 --- a/hosts/Garand-Desktop/hardware.nix +++ b/hosts/Garand-Desktop/hardware.nix @@ -1,14 +1,27 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (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.luks.devices = { cryptroot = { @@ -19,23 +32,30 @@ boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7"; + fsType = "ext4"; + }; - fileSystems."/home" = - { device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451"; - fsType = "ext4"; - }; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/783D-A507"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/783D-A507"; + fsType = "vfat"; + 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 # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/Garand-Desktop/host-packages.nix b/hosts/Garand-Desktop/host-packages.nix index f44b200..589a3a8 100644 --- a/hosts/Garand-Desktop/host-packages.nix +++ b/hosts/Garand-Desktop/host-packages.nix @@ -1,7 +1,6 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ environment.systemPackages = with pkgs; [ - audacity - discord - nodejs + # audacity ]; } diff --git a/hosts/Garand-Desktop/variables.nix b/hosts/Garand-Desktop/variables.nix index a4b9aa9..e70121b 100644 --- a/hosts/Garand-Desktop/variables.nix +++ b/hosts/Garand-Desktop/variables.nix @@ -9,17 +9,6 @@ # SDDM background is set with stylixImage 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 # Examples: # extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1"; @@ -57,26 +46,21 @@ # Enable Printing Support 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 # This will set your color palette # Default background - # Add new images to ~/zaneyos/wallpapers + # Add new images to ~/garandos/wallpapers stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg; - #stylixImage = ../../wallpapers/mountainscapedark.jpg; - #stylixImage = ../../wallpapers/AnimeGirlNightSky.jpg; - #stylixImage = ../../wallpapers/Anime-Purple-eyes.png; - #stylixImage = ../../wallpapers/Rainnight.jpg; - #stylixImage = ../../wallpapers/zaney-wallpaper.jpg; - #stylixImage = ../../wallpapers/nix-wallpapers-strips-logo.jpg; - #stylixImage = ../../wallpapers/beautifulmountainscape.jpg; + #stylixImage = ../../wallpapers/DW_Pacts.jpg; + #stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg; + #stylixImage = ../../wallpapers/fire-nation.jpg; + #stylixImage = ../../wallpapers/four-elements.jpg; + #stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.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 # Available Options: @@ -84,7 +68,7 @@ #waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix; #waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.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; # Very colorful and bright colors #waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix; @@ -98,8 +82,8 @@ # animations-end4.nix (end-4 project very fluid) # animations-dynamic.nix (ml4w project) # animations-moving.nix (ml4w project) - animChoice = ../../modules/home/hyprland/animations-def.nix; - #animChoice = ../../modules/home/hyprland/animations-end4.nix; + # animChoice = ../../modules/home/hyprland/animations-def.nix; + animChoice = ../../modules/home/hyprland/animations-end4.nix; #animChoice = ../../modules/home/hyprland/animations-dynamic.nix; #animChoice = ../../modules/home/hyprland/animations-moving.nix; diff --git a/hosts/default/default.nix b/hosts/default/default.nix index 1ef7d77..b947be8 100644 --- a/hosts/default/default.nix +++ b/hosts/default/default.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ imports = [ ./hardware.nix ./host-packages.nix diff --git a/hosts/default/hardware.nix b/hosts/default/hardware.nix index a662432..5ddb0ef 100644 --- a/hosts/default/hardware.nix +++ b/hosts/default/hardware.nix @@ -1,35 +1,51 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (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.kernelModules = [ "kvm-intel" ]; 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"; - 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 = [ ]; + device = "/dev/vg0/swap"; + } + ]; # 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 diff --git a/hosts/default/host-packages.nix b/hosts/default/host-packages.nix index f44b200..e8175a2 100644 --- a/hosts/default/host-packages.nix +++ b/hosts/default/host-packages.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ environment.systemPackages = with pkgs; [ audacity discord diff --git a/hosts/default/variables.nix b/hosts/default/variables.nix index 05993d4..690be83 100644 --- a/hosts/default/variables.nix +++ b/hosts/default/variables.nix @@ -9,17 +9,6 @@ # SDDM background is set with stylixImage 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 # Examples: # extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1"; @@ -59,10 +48,6 @@ # Enable Printing Support printEnable = false; - # Enable Thunar GUI File Manager - # Yazi is default File Manager - thunarEnable = false; - # Themes, waybar and animation. # Only uncomment your selection # The others much be commented out. @@ -70,14 +55,18 @@ # Set Stylix Image # This will set your color palette # Default background - # Add new images to ~/zaneyos/wallpapers - stylixImage = ../../wallpapers/mountainscapedark.jpg; - #stylixImage = ../../wallpapers/AnimeGirlNightSky.jpg; - #stylixImage = ../../wallpapers/Anime-Purple-eyes.png; - #stylixImage = ../../wallpapers/Rainnight.jpg; - #stylixImage = ../../wallpapers/zaney-wallpaper.jpg; - #stylixImage = ../../wallpapers/nix-wallpapers-strips-logo.jpg; - #stylixImage = ../../wallpapers/beautifulmountainscape.jpg; + # Add new images to ~/garandos/wallpapers + stylixImage = ../../wallpapers/attack-on-titan-mikasa-ackerman.jpg; + #stylixImage = ../../wallpapers/DW_Pacts.jpg; + #stylixImage = ../../wallpapers/edward-elric-fullmetal-alchemist.jpg; + #stylixImage = ../../wallpapers/fire-nation.jpg; + #stylixImage = ../../wallpapers/four-elements.jpg; + #stylixImage = ../../wallpapers/Grounded_Wallpaper_4K.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 # Available Options: @@ -85,7 +74,7 @@ #waybarChoice = ../../modules/home/waybar/waybar-ddubs.nix; #waybarChoice = ../../modules/home/waybar/waybar-ddubs-2.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; # Very colorful and bright colors #waybarChoice = ../../modules/home/waybar/waybar-nekodyke.nix; diff --git a/img/1.jpg b/img/1.jpg deleted file mode 100644 index 17963cd..0000000 Binary files a/img/1.jpg and /dev/null differ diff --git a/img/2.jpg b/img/2.jpg deleted file mode 100644 index d8e6230..0000000 Binary files a/img/2.jpg and /dev/null differ diff --git a/img/3.jpg b/img/3.jpg deleted file mode 100644 index 27b26aa..0000000 Binary files a/img/3.jpg and /dev/null differ diff --git a/img/4.jpg b/img/4.jpg deleted file mode 100644 index 4e94902..0000000 Binary files a/img/4.jpg and /dev/null differ diff --git a/img/demo-img2.png b/img/demo-img2.png deleted file mode 100644 index 6d80d4e..0000000 Binary files a/img/demo-img2.png and /dev/null differ diff --git a/img/demo-img3.png b/img/demo-img3.png deleted file mode 100644 index 6b41907..0000000 Binary files a/img/demo-img3.png and /dev/null differ diff --git a/img/demo.png b/img/demo.png deleted file mode 100644 index 8e4ee0e..0000000 Binary files a/img/demo.png and /dev/null differ diff --git a/img/first-install-cmd.jpg b/img/first-install-cmd.jpg deleted file mode 100644 index 369d45e..0000000 Binary files a/img/first-install-cmd.jpg and /dev/null differ diff --git a/img/initial-session.png b/img/initial-session.png deleted file mode 100644 index 230cec1..0000000 Binary files a/img/initial-session.png and /dev/null differ diff --git a/img/install-script.jpg b/img/install-script.jpg deleted file mode 100644 index 7b01f80..0000000 Binary files a/img/install-script.jpg and /dev/null differ diff --git a/img/nwg-displays.png b/img/nwg-displays.png deleted file mode 100644 index 222ee2a..0000000 Binary files a/img/nwg-displays.png and /dev/null differ diff --git a/modules/core/boot.nix b/modules/core/boot.nix index 61095d3..3abe9ce 100644 --- a/modules/core/boot.nix +++ b/modules/core/boot.nix @@ -5,7 +5,9 @@ kernelPackages = pkgs.linuxPackages_zen; kernelModules = [ "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.efi.canTouchEfiVariables = true; # Appimage Support diff --git a/modules/core/default.nix b/modules/core/default.nix index cdbb723..9f7c5c3 100644 --- a/modules/core/default.nix +++ b/modules/core/default.nix @@ -4,7 +4,6 @@ ... }: let - # Import the host-specific variables.nix vars = import ../../hosts/${host}/variables.nix; in { @@ -16,11 +15,9 @@ in ./network.nix ./nfs.nix ./nh.nix - #./quickshell.nix #Disabled for now not using it yet ./packages.nix ./printing.nix - # Conditionally import the display manager module - (if vars.displayManager == "tui" then ./greetd.nix else ./sddm.nix) + ./greetd.nix ./security.nix ./services.nix ./steam.nix diff --git a/modules/core/flatpak.nix b/modules/core/flatpak.nix index 9c8692c..7a93adb 100644 --- a/modules/core/flatpak.nix +++ b/modules/core/flatpak.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; @@ -7,24 +8,12 @@ services = { flatpak = { enable = true; - - # List the Flatpak applications you want to install - # Use the official Flatpak application ID (e.g., from flathub.org) - # Examples: packages = [ - #"com.github.tchx84.Flatseal" #Manage flatpak permissions - should always have this - #"com.rtosta.zapzap" # WhatsApp client - #"io.github.flattool.Warehouse" # Manage flatpaks, clean data, remove flatpaks and deps - #"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" + "org.vinegarhq.Sober" + "io.github.flattool.Warehouse" + "com.github.tchx84.Flatseal" ]; - # Optional: Automatically update Flatpaks when you run nixos-rebuild swit ch update.onActivation = true; }; }; diff --git a/modules/core/fonts.nix b/modules/core/fonts.nix index 2703381..7f08708 100644 --- a/modules/core/fonts.nix +++ b/modules/core/fonts.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ fonts = { packages = with pkgs; [ dejavu_fonts diff --git a/modules/core/greetd.nix b/modules/core/greetd.nix index 5a91a10..05399be 100644 --- a/modules/core/greetd.nix +++ b/modules/core/greetd.nix @@ -1,7 +1,9 @@ -{ pkgs -, username -, ... -}: { +{ + pkgs, + username, + ... +}: +{ services.greetd = { enable = true; #vt = 3; diff --git a/modules/core/network.nix b/modules/core/network.nix index e6f0b59..96ed3af 100644 --- a/modules/core/network.nix +++ b/modules/core/network.nix @@ -1,7 +1,8 @@ -{ pkgs -, host -, options -, ... +{ + pkgs, + host, + options, + ... }: let inherit (import ../../hosts/${host}/variables.nix) hostId; diff --git a/modules/core/nh.nix b/modules/core/nh.nix index edfa10d..c5cba4c 100644 --- a/modules/core/nh.nix +++ b/modules/core/nh.nix @@ -1,7 +1,9 @@ -{ pkgs -, username -, ... -}: { +{ + pkgs, + username, + ... +}: +{ programs.nh = { enable = true; clean = { diff --git a/modules/core/packages.nix b/modules/core/packages.nix index cb12d37..2b60753 100644 --- a/modules/core/packages.nix +++ b/modules/core/packages.nix @@ -6,13 +6,9 @@ }: { programs = { - neovim = { - enable = true; - defaultEditor = true; - }; - firefox.enable = false; # Firefox is not installed by default + nano.enable = true; hyprland = { - enable = true; # set this so desktop file is created + enable = true; withUWSM = false; }; dconf.enable = true; @@ -33,9 +29,9 @@ # Hyprland systeminfo QT (Optional) #inputs.hyprsysteminfo.packages.${pkgs.system}.default + discord amfora # Fancy Terminal Browser For Gemini Protocol appimage-run # Needed For AppImage Support - librewolf # Brave Browser brightnessctl # For Screen Brightness Control cliphist # Clipboard manager using rofi menu cmatrix # Matrix Movie Effect In Terminal @@ -78,10 +74,33 @@ usbutils # Good Tools For USB Devices uwsm # Universal Wayland Session Manager (optional must be enabled) v4l-utils # Used For Things Like OBS Virtual Camera - waypaper # wallpaper changer + waypaper # wallpaper changer warp-terminal # Terminal with AI support build in wget # Tool For Fetching Files With Links 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 ]; } diff --git a/modules/core/sddm.nix b/modules/core/sddm.nix deleted file mode 100644 index dbc0293..0000000 --- a/modules/core/sddm.nix +++ /dev/null @@ -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]; -} diff --git a/modules/core/services.nix b/modules/core/services.nix index 9420305..b7aff74 100644 --- a/modules/core/services.nix +++ b/modules/core/services.nix @@ -1,4 +1,5 @@ -{ profile, ... }: { +{ profile, ... }: +{ # Services to start services = { libinput.enable = true; # Input Handling @@ -8,7 +9,7 @@ enable = true; # Enable SSH settings = { 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; }; ports = [ 22 ]; @@ -18,10 +19,7 @@ gnome.gnome-keyring.enable = true; smartd = { - enable = - if profile == "vm" - then false - else true; + enable = if profile == "vm" then false else true; autodetect = true; }; pipewire = { diff --git a/modules/core/starfish.nix b/modules/core/starfish.nix index 48564f1..c679872 100644 --- a/modules/core/starfish.nix +++ b/modules/core/starfish.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ programs = { starship = { enable = false; diff --git a/modules/core/steam.nix b/modules/core/steam.nix index 8b5ad37..8ff9bf7 100644 --- a/modules/core/steam.nix +++ b/modules/core/steam.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ programs = { steam = { enable = true; @@ -16,5 +17,7 @@ "--expose-wayland" ]; }; + + gamemode.enable = true; }; } diff --git a/modules/core/stylix.nix b/modules/core/stylix.nix index 800d070..3f97c5c 100644 --- a/modules/core/stylix.nix +++ b/modules/core/stylix.nix @@ -1,6 +1,7 @@ -{ pkgs -, host -, ... +{ + pkgs, + host, + ... }: let inherit (import ../../hosts/${host}/variables.nix) stylixImage; diff --git a/modules/core/syncthing.nix b/modules/core/syncthing.nix index b214716..dfd0f03 100644 --- a/modules/core/syncthing.nix +++ b/modules/core/syncthing.nix @@ -1,4 +1,5 @@ -{ username, ... }: { +{ username, ... }: +{ services.syncthing = { enable = false; user = "${username}"; diff --git a/modules/core/system.nix b/modules/core/system.nix index 1f19ff9..4410d6a 100644 --- a/modules/core/system.nix +++ b/modules/core/system.nix @@ -30,8 +30,8 @@ in }; environment.variables = { NIXOS_OZONE_WL = "1"; - ZANEYOS_VERSION = "2.4"; - ZANEYOS = "true"; + GARANDOS_VERSION = "1.0"; + GARANDOS = "true"; }; console.keyMap = "${consoleKeyMap}"; system.stateVersion = "23.11"; # Do not change! diff --git a/modules/core/thunar.nix b/modules/core/thunar.nix index ea1229b..28c145a 100644 --- a/modules/core/thunar.nix +++ b/modules/core/thunar.nix @@ -1,14 +1,12 @@ -{ host -, pkgs -, ... +{ + host, + pkgs, + ... }: -let - inherit (import ../../hosts/${host}/variables.nix) thunarEnable; -in { programs = { thunar = { - enable = thunarEnable; + enable = true; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman diff --git a/modules/core/user.nix b/modules/core/user.nix index 8e48582..f1ad20d 100644 --- a/modules/core/user.nix +++ b/modules/core/user.nix @@ -1,9 +1,11 @@ -{ pkgs -, inputs -, username -, host -, profile -, ... +{ + pkgs, + inputs, + username, + host, + profile, + system, + ... }: let inherit (import ../../hosts/${host}/variables.nix) gitUsername; @@ -13,8 +15,16 @@ in home-manager = { useUserPackages = true; useGlobalPkgs = false; - backupFileExtension = "backup"; - extraSpecialArgs = { inherit inputs username host profile; }; + backupFileExtension = "backup-nixos"; + extraSpecialArgs = { + inherit + inputs + username + host + profile + system + ; + }; users.${username} = { imports = [ ./../home ]; home = { @@ -30,15 +40,16 @@ in description = "${gitUsername}"; extraGroups = [ "adbusers" - "docker" #access to docker as non-root - "libvirtd" #Virt manager/QEMU access + "docker" # access to docker as non-root + "libvirtd" # Virt manager/QEMU access "lp" "networkmanager" "scanner" - "wheel" #subdo access - "vboxusers" #Virtual Box + "wheel" # subdo access + "vboxusers" # Virtual Box + "gamemode" ]; - shell = pkgs.zsh; + shell = pkgs.bash; ignoreShellProgramCheck = true; }; nix.settings.allowed-users = [ "${username}" ]; diff --git a/modules/core/virtualisation.nix b/modules/core/virtualisation.nix index 09fd5dd..3af2ff0 100644 --- a/modules/core/virtualisation.nix +++ b/modules/core/virtualisation.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ # Only enable either docker or podman -- Not both virtualisation = { docker = { diff --git a/modules/drivers/amd-drivers.nix b/modules/drivers/amd-drivers.nix index b0a51dd..d3d3a7d 100644 --- a/modules/drivers/amd-drivers.nix +++ b/modules/drivers/amd-drivers.nix @@ -1,7 +1,8 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + pkgs, + config, + ... }: with lib; let diff --git a/modules/drivers/default.nix b/modules/drivers/default.nix index 6e3449e..e19682e 100644 --- a/modules/drivers/default.nix +++ b/modules/drivers/default.nix @@ -1,4 +1,5 @@ -{ ... +{ + ... }: { imports = [ diff --git a/modules/drivers/intel-drivers.nix b/modules/drivers/intel-drivers.nix index d50ab3e..fb24fd6 100644 --- a/modules/drivers/intel-drivers.nix +++ b/modules/drivers/intel-drivers.nix @@ -1,9 +1,11 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + pkgs, + config, + ... }: -with lib; let +with lib; +let cfg = config.drivers.intel; in { diff --git a/modules/drivers/local-hardware-clock.nix b/modules/drivers/local-hardware-clock.nix index cf4e73f..0231dcb 100644 --- a/modules/drivers/local-hardware-clock.nix +++ b/modules/drivers/local-hardware-clock.nix @@ -1,7 +1,8 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + pkgs, + config, + ... }: with lib; let diff --git a/modules/drivers/nvidia-drivers.nix b/modules/drivers/nvidia-drivers.nix index 2c30be9..476c914 100644 --- a/modules/drivers/nvidia-drivers.nix +++ b/modules/drivers/nvidia-drivers.nix @@ -1,7 +1,7 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + config, + ... }: with lib; let @@ -18,7 +18,7 @@ in # Modesetting is required. modesetting.enable = true; # 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. # Experimental and only works on modern Nvidia GPUs (Turing or newer). powerManagement.finegrained = false; diff --git a/modules/drivers/nvidia-prime-drivers.nix b/modules/drivers/nvidia-prime-drivers.nix index 147df1a..aba1acc 100644 --- a/modules/drivers/nvidia-prime-drivers.nix +++ b/modules/drivers/nvidia-prime-drivers.nix @@ -1,7 +1,8 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + pkgs, + config, + ... }: with lib; let diff --git a/modules/drivers/vm-guest-services.nix b/modules/drivers/vm-guest-services.nix index d14229d..3e99ebb 100644 --- a/modules/drivers/vm-guest-services.nix +++ b/modules/drivers/vm-guest-services.nix @@ -1,7 +1,8 @@ -{ lib -, pkgs -, config -, ... +{ + lib, + pkgs, + config, + ... }: with lib; let @@ -15,6 +16,6 @@ in config = mkIf cfg.enable { services.qemuGuest.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 + }; } diff --git a/modules/home/alacritty.nix b/modules/home/alacritty.nix deleted file mode 100644 index b8a8f4c..0000000 --- a/modules/home/alacritty.nix +++ /dev/null @@ -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; - }; - }; - }; -} diff --git a/modules/home/bash-aliases.nix b/modules/home/bash-aliases.nix new file mode 100644 index 0000000..e419497 --- /dev/null +++ b/modules/home/bash-aliases.nix @@ -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"; + }; + }; +} diff --git a/modules/home/bash-functions.nix b/modules/home/bash-functions.nix new file mode 100644 index 0000000..94187d9 --- /dev/null +++ b/modules/home/bash-functions.nix @@ -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}' + } + ''; + }; +} diff --git a/modules/home/bash.nix b/modules/home/bash.nix index 0712618..0edeae0 100644 --- a/modules/home/bash.nix +++ b/modules/home/bash.nix @@ -1,22 +1,9 @@ -{ profile, ... }: { +_: { programs.bash = { - enable = false; + enable = true; enableCompletion = true; initExtra = '' 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 .."; - }; }; } diff --git a/modules/home/bashrc-personal.nix b/modules/home/bashrc-personal.nix deleted file mode 100644 index 386597b..0000000 --- a/modules/home/bashrc-personal.nix +++ /dev/null @@ -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)" - - ''; -} diff --git a/modules/home/bat.nix b/modules/home/bat.nix index d63242a..e37fbc2 100644 --- a/modules/home/bat.nix +++ b/modules/home/bat.nix @@ -1,7 +1,9 @@ -{ pkgs -, lib -, ... -}: { +{ + pkgs, + lib, + ... +}: +{ programs.bat = { enable = true; config = { diff --git a/modules/home/bottom.nix b/modules/home/bottom.nix index 3b24f84..00793b1 100644 --- a/modules/home/bottom.nix +++ b/modules/home/bottom.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ programs.bottom = { enable = true; settings = { diff --git a/modules/home/btop.nix b/modules/home/btop.nix index 0f20db1..0c034f3 100644 --- a/modules/home/btop.nix +++ b/modules/home/btop.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ programs.btop = { enable = true; package = pkgs.btop.override { @@ -6,7 +7,6 @@ cudaSupport = true; }; settings = { - vim_keys = true; rounded_corners = true; proc_tree = true; show_gpu_info = "on"; diff --git a/modules/home/cava.nix b/modules/home/cava.nix index e3c23cd..cbb00b6 100644 --- a/modules/home/cava.nix +++ b/modules/home/cava.nix @@ -1,4 +1,5 @@ -{ config, ... }: { +{ config, ... }: +{ programs.cava = { enable = true; settings = { diff --git a/modules/home/default.nix b/modules/home/default.nix index 4a498e9..0c0a0b6 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -1,21 +1,14 @@ { host, ... }: let - inherit (import ../../hosts/${host}/variables.nix) - alacrittyEnable - ghosttyEnable - tmuxEnable - waybarChoice - weztermEnable - vscodeEnable - helixEnable - doomEmacsEnable - ; + inherit (import ../../hosts/${host}/variables.nix) waybarChoice; in { imports = [ + waybarChoice ./amfora.nix ./bash.nix - ./bashrc-personal.nix + ./bash-aliases.nix + ./bash-functions.nix ./bat.nix ./btop.nix ./bottom.nix @@ -31,40 +24,24 @@ in ./hyprland ./kitty.nix ./lazygit.nix + ./librewolf.nix ./obs-studio.nix - ./nvf.nix ./obs-studio.nix ./rofi ./qt.nix + ./ssh.nix ./scripts ./scripts/gemini-cli.nix - #./starship.nix - #./starship-ddubs-1.nix + ./starship.nix ./stylix.nix ./swappy.nix ./swaync.nix ./tealdeer.nix ./virtmanager.nix - waybarChoice ./wlogout ./xdg.nix - ./yazi ./zoxide.nix - ./zsh - ] - ++ (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 [ ]); + ./vscode.nix + # ./zed.nix + ]; } diff --git a/modules/home/editors/doom-emacs-install.nix b/modules/home/editors/doom-emacs-install.nix deleted file mode 100644 index dc45b0f..0000000 --- a/modules/home/editors/doom-emacs-install.nix +++ /dev/null @@ -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" ]; - }; -} diff --git a/modules/home/editors/doom-emacs.nix b/modules/home/editors/doom-emacs.nix deleted file mode 100644 index e9cd845..0000000 --- a/modules/home/editors/doom-emacs.nix +++ /dev/null @@ -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) - ''; -} diff --git a/modules/home/emoji.nix b/modules/home/emoji.nix index f53d31b..7eb541d 100644 --- a/modules/home/emoji.nix +++ b/modules/home/emoji.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ home.file.".config/.emoji".text = '' 😀 grinning face face smile happy joy :D grin 😃 grinning face with big eyes face happy joy haha :D :) smile funny diff --git a/modules/home/evil-helix.nix b/modules/home/evil-helix.nix deleted file mode 100644 index 911cca7..0000000 --- a/modules/home/evil-helix.nix +++ /dev/null @@ -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 ""; -} diff --git a/modules/home/eza.nix b/modules/home/eza.nix index 63de65a..90bfda0 100644 --- a/modules/home/eza.nix +++ b/modules/home/eza.nix @@ -4,8 +4,6 @@ enable = true; icons = "auto"; enableBashIntegration = true; - enableZshIntegration = true; - enableFishIntegration = true; git = true; extraOptions = [ @@ -19,12 +17,4 @@ "--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 "; - }; } diff --git a/modules/home/fastfetch/default.nix b/modules/home/fastfetch/default.nix index ea3675b..d60fdda 100644 --- a/modules/home/fastfetch/default.nix +++ b/modules/home/fastfetch/default.nix @@ -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 = { enable = true; @@ -6,130 +143,178 @@ display = { color = { keys = "35"; - output = "95"; + output = "90"; }; separator = " ➜ "; }; logo = { - source = ./nixos.png; + source = ./garandos.png; type = "kitty-direct"; - height = 10; - width = 20; + height = 15; + width = 30; padding = { - top = 2; - left = 2; + top = 3; + left = 3; }; }; modules = [ "break" { - type = "os"; - key = "OS"; - keyColor = "31"; + type = "custom"; + format = "┌─────────────────────────────────Hardware────────────────────────────────┐"; } - { - 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"; format = "{5} {1} Type {2}"; - key = "PC "; + key = "│  PC"; keyColor = "33"; } { type = "cpu"; format = "{1} ({3}) @ {7} GHz"; - key = " ├  "; + key = "│ ├  "; keyColor = "33"; } { type = "gpu"; format = "{1} {2} @ {12} GHz"; - key = " ├ 󰢮 "; + key = "│ ├  "; keyColor = "33"; } { type = "memory"; - key = " ├  "; + key = "│ ├ 󰑭 "; + keyColor = "33"; + } + { + type = "swap"; + key = "│ ├  "; keyColor = "33"; } { type = "disk"; - key = " ├ 󰋊 "; + key = "│ ├ 󰋊 "; keyColor = "33"; } { type = "monitor"; - key = " ├  "; + key = "│ └  "; keyColor = "33"; } { - type = "player"; - key = " ├ 󰥠 "; - keyColor = "33"; - } - { - type = "media"; - key = " └ 󰝚 "; - keyColor = "33"; + type = "custom"; + format = "└──────────────────────────────────────────────────────────────────────────┘"; } + "break" { - type = "uptime"; - key = " Uptime "; + type = "custom"; + 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" ]; }; }; diff --git a/modules/home/fastfetch/garandos.png b/modules/home/fastfetch/garandos.png new file mode 100644 index 0000000..684a50b Binary files /dev/null and b/modules/home/fastfetch/garandos.png differ diff --git a/modules/home/fastfetch/nixos.png b/modules/home/fastfetch/nixos.png deleted file mode 100644 index 571410a..0000000 Binary files a/modules/home/fastfetch/nixos.png and /dev/null differ diff --git a/modules/home/fzf.nix b/modules/home/fzf.nix index 0100ad8..c629d54 100644 --- a/modules/home/fzf.nix +++ b/modules/home/fzf.nix @@ -1,7 +1,8 @@ # Fzf is a general-purpose command-line fuzzy finder. -{ config -, lib -, ... +{ + config, + lib, + ... }: let accent = "#" + config.lib.stylix.colors.base0D; @@ -11,7 +12,7 @@ in { programs.fzf = { enable = true; - enableZshIntegration = true; + enableBashIntegration = true; colors = lib.mkForce { "fg+" = accent; "bg+" = "-1"; @@ -29,7 +30,7 @@ in "--prompt='/ '" "-i" "--no-bold" - "--bind='enter:execute(nvim {})'" + "--bind='enter:execute(nano {})'" "--preview='bat --style=numbers --color=always --line-range :500 {}'" "--preview-window=right:60%:wrap" ]; diff --git a/modules/home/ghostty.nix b/modules/home/ghostty.nix deleted file mode 100644 index be09725..0000000 --- a/modules/home/ghostty.nix +++ /dev/null @@ -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 - ''; -} diff --git a/modules/home/htop.nix b/modules/home/htop.nix index 263697b..77b8e22 100644 --- a/modules/home/htop.nix +++ b/modules/home/htop.nix @@ -1,42 +1,46 @@ -{ config, ... }: { +{ config, ... }: +{ programs.htop = { enable = true; - settings = - { - color_scheme = 6; - cpu_count_from_one = 0; - delay = 15; - fields = with config.lib.htop.fields; [ - PID - USER - PRIORITY - NICE - M_SIZE - M_RESIDENT - M_SHARE - STATE - PERCENT_CPU - PERCENT_MEM - TIME - COMM - ]; - highlight_base_name = 1; - highlight_megabytes = 1; - highlight_threads = 1; - } - // (with config.lib.htop; + settings = { + color_scheme = 6; + cpu_count_from_one = 0; + delay = 15; + fields = with config.lib.htop.fields; [ + PID + USER + PRIORITY + NICE + M_SIZE + M_RESIDENT + M_SHARE + STATE + PERCENT_CPU + PERCENT_MEM + TIME + COMM + ]; + highlight_base_name = 1; + highlight_megabytes = 1; + highlight_threads = 1; + } + // ( + with config.lib.htop; leftMeters [ (bar "AllCPUs2") (bar "Memory") (bar "Swap") (text "Zram") - ]) - // (with config.lib.htop; + ] + ) + // ( + with config.lib.htop; rightMeters [ (text "Tasks") (text "LoadAverage") (text "Uptime") (text "Systemd") - ]); + ] + ); }; } diff --git a/modules/home/hyprland/animations-def.nix b/modules/home/hyprland/animations-def.nix index dbbaea5..b1695a1 100644 --- a/modules/home/hyprland/animations-def.nix +++ b/modules/home/hyprland/animations-def.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ wayland.windowManager.hyprland.settings = { animations = { enabled = true; diff --git a/modules/home/hyprland/animations-dynamic.nix b/modules/home/hyprland/animations-dynamic.nix index eb96614..97ff0f6 100644 --- a/modules/home/hyprland/animations-dynamic.nix +++ b/modules/home/hyprland/animations-dynamic.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ wayland.windowManager.hyprland.settings = { # name "Dynamic" # credit https://github.com/mylinuxforwork/dotfiles diff --git a/modules/home/hyprland/animations-end4.nix b/modules/home/hyprland/animations-end4.nix index fd8fbce..f70f5ca 100644 --- a/modules/home/hyprland/animations-end4.nix +++ b/modules/home/hyprland/animations-end4.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ wayland.windowManager.hyprland.settings = { # Name: END-4 # Credit: END-4 project https://github.com/end-4/dots-hyprland diff --git a/modules/home/hyprland/animations-moving.nix b/modules/home/hyprland/animations-moving.nix index 59d8c77..17a0720 100644 --- a/modules/home/hyprland/animations-moving.nix +++ b/modules/home/hyprland/animations-moving.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ wayland.windowManager.hyprland.settings = { # name "moving" # credit https://github.com/mylinuxforwork/dotfiles diff --git a/modules/home/hyprland/binds.nix b/modules/home/hyprland/binds.nix index 025cb08..4879471 100644 --- a/modules/home/hyprland/binds.nix +++ b/modules/home/hyprland/binds.nix @@ -1,7 +1,6 @@ { host, ... }: let - inherit - (import ../../../hosts/${host}/variables.nix) + inherit (import ../../../hosts/${host}/variables.nix) browser terminal ; @@ -17,7 +16,6 @@ in "$modifier ALT,W,exec,wallsetter" "$modifier SHIFT,N,exec,swaync-client -rs" "$modifier,W,exec,${browser}" - "$modifier,Y,exec,kitty -e yazi" "$modifier,E,exec,emopicker9000" "$modifier,S,exec,screenshootin" "$modifier,D,exec,discord" diff --git a/modules/home/hyprland/env.nix b/modules/home/hyprland/env.nix index 134cc58..12987ca 100644 --- a/modules/home/hyprland/env.nix +++ b/modules/home/hyprland/env.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ wayland.windowManager.hyprland = { settings = { env = [ @@ -23,7 +24,7 @@ #"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2" "GDK_SCALE,1" "QT_SCALE_FACTOR,1" - "EDITOR,nvim" + "EDITOR,nano" # Set terminal and xdg_terminal_emulator to kitty # To provent yazi from starting xterm when run from rofi menu # You can set to your preferred terminal if you you like diff --git a/modules/home/hyprland/exec-once.nix b/modules/home/hyprland/exec-once.nix index 3c603fd..80dab1a 100644 --- a/modules/home/hyprland/exec-once.nix +++ b/modules/home/hyprland/exec-once.nix @@ -1,7 +1,6 @@ { host, ... }: let - inherit - (import ../../../hosts/${host}/variables.nix) + inherit (import ../../../hosts/${host}/variables.nix) stylixImage ; in diff --git a/modules/home/hyprland/face.jpg b/modules/home/hyprland/face.jpg index 9a5cb7e..815d2b7 100644 Binary files a/modules/home/hyprland/face.jpg and b/modules/home/hyprland/face.jpg differ diff --git a/modules/home/hyprland/hyprland.nix b/modules/home/hyprland/hyprland.nix index aedb5ff..6bc17b7 100644 --- a/modules/home/hyprland/hyprland.nix +++ b/modules/home/hyprland/hyprland.nix @@ -1,11 +1,11 @@ -{ host -, config -, pkgs -, ... +{ + host, + config, + pkgs, + ... }: let - inherit - (import ../../../hosts/${host}/variables.nix) + inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout stylixImage @@ -65,8 +65,8 @@ in }; gestures = { - workspace_swipe = 1; - workspace_swipe_fingers = 3; + # workspace_swipe = 1; + # workspace_swipe_fingers = 3; workspace_swipe_distance = 500; workspace_swipe_invert = 1; workspace_swipe_min_speed_to_force = 30; @@ -82,7 +82,8 @@ in gaps_out = 8; border_size = 2; 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})"; }; @@ -95,7 +96,7 @@ in disable_splash_rendering = true; enable_swallow = false; 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 # Try setting vrr to 0 @@ -162,7 +163,9 @@ in extraConfig = " monitor=,preferred,auto,auto monitor=Virtual-1,1920x1080@60,auto,1 - ${extraMonitorSettings} + ${ + extraMonitorSettings + } # To enable blur on waybar uncomment the line below # Thanks to SchotjeChrisman #layerrule = blur,waybar diff --git a/modules/home/hyprland/hyprlock.nix b/modules/home/hyprland/hyprlock.nix index d2c22b9..e68f372 100644 --- a/modules/home/hyprland/hyprlock.nix +++ b/modules/home/hyprland/hyprlock.nix @@ -1,4 +1,5 @@ -{ username, ... }: { +{ username, ... }: +{ programs.hyprlock = { enable = true; settings = { diff --git a/modules/home/hyprland/pyprland.nix b/modules/home/hyprland/pyprland.nix index 490b1c4..d07f8b6 100644 --- a/modules/home/hyprland/pyprland.nix +++ b/modules/home/hyprland/pyprland.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ home.packages = with pkgs; [ pyprland ]; home.file.".config/hypr/pyprland.toml".text = '' diff --git a/modules/home/hyprland/windowrules.nix b/modules/home/hyprland/windowrules.nix index de846b1..2f8fdc6 100644 --- a/modules/home/hyprland/windowrules.nix +++ b/modules/home/hyprland/windowrules.nix @@ -1,9 +1,10 @@ -{host, ...}: let - inherit - (import ../../../hosts/${host}/variables.nix) +{ host, ... }: +let + inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings ; -in { +in +{ wayland.windowManager.hyprland = { settings = { windowrule = [ diff --git a/modules/home/install-zaneyos.sh b/modules/home/install-zaneyos.sh deleted file mode 100755 index cbf5bfb..0000000 --- a/modules/home/install-zaneyos.sh +++ /dev/null @@ -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 diff --git a/modules/home/kitty.nix b/modules/home/kitty.nix index 69a4490..d5e747a 100644 --- a/modules/home/kitty.nix +++ b/modules/home/kitty.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ programs.kitty = { enable = true; package = pkgs.kitty; diff --git a/modules/home/lazygit.nix b/modules/home/lazygit.nix index 298c74d..021de2d 100644 --- a/modules/home/lazygit.nix +++ b/modules/home/lazygit.nix @@ -18,7 +18,10 @@ in }; gui = { theme = { - activeBorderColor = [ accent "bold" ]; + activeBorderColor = [ + accent + "bold" + ]; inactiveBorderColor = [ muted ]; }; showListFooter = false; diff --git a/modules/core/librewolf.nix b/modules/home/librewolf.nix similarity index 95% rename from modules/core/librewolf.nix rename to modules/home/librewolf.nix index 207a662..6b54388 100644 --- a/modules/core/librewolf.nix +++ b/modules/home/librewolf.nix @@ -5,7 +5,8 @@ system, host, ... -}: { +}: +{ programs = { librewolf = { enable = true; @@ -60,12 +61,12 @@ force = true; engines = { "garand's-search" = { - definedAliases = ["@g"]; - urls = [{template = "https://search.garandplg.com/search?q={searchTerms}";}]; + definedAliases = [ "@g" ]; + urls = [ { template = "https://search.garandplg.com/search?q={searchTerms}"; } ]; suggestUrl = "https://search.garandplg.com/autocompleter?q={searchTerms}"; }; "youtube" = { - definedAliases = ["@yt"]; + definedAliases = [ "@yt" ]; urls = [ { template = "https://www.youtube.com/results"; @@ -79,7 +80,7 @@ ]; }; "wikipedia-pl" = { - definedAliases = ["@w"]; + definedAliases = [ "@w" ]; urls = [ { template = "https://pl.wikipedia.org/w/index.php"; @@ -93,7 +94,7 @@ ]; }; "stackoverflow" = { - definedAliases = ["@so"]; + definedAliases = [ "@so" ]; urls = [ { template = "https://stackoverflow.com/search"; @@ -107,7 +108,7 @@ ]; }; "nix-packages" = { - definedAliases = ["@np"]; + definedAliases = [ "@np" ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; urls = [ { @@ -122,7 +123,7 @@ ]; }; "nix-options" = { - definedAliases = ["@no"]; + definedAliases = [ "@no" ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; urls = [ { @@ -137,7 +138,7 @@ ]; }; "nix-wiki" = { - definedAliases = ["@nw"]; + definedAliases = [ "@nw" ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; urls = [ { @@ -152,7 +153,7 @@ ]; }; "home-manager-option" = { - definedAliases = ["@hmo"]; + definedAliases = [ "@hmo" ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; urls = [ { @@ -167,7 +168,7 @@ ]; }; "eneba" = { - definedAliases = ["@en"]; + definedAliases = [ "@en" ]; icon = "https://static.eneba.games/branding/v2/logoFull.svg"; urls = [ { @@ -182,7 +183,7 @@ ]; }; "kinguin" = { - definedAliases = ["@ki"]; + definedAliases = [ "@ki" ]; icon = "https://static.kinguin.net/media/images/other/kinguin-mobile-logo.svg"; urls = [ { @@ -197,7 +198,7 @@ ]; }; "instant-gaming" = { - definedAliases = ["@ig"]; + definedAliases = [ "@ig" ]; icon = "https://asset.brandfetch.io/idCbLj4uOg/idGS61T0FV.jpeg"; urls = [ { @@ -212,7 +213,7 @@ ]; }; "morele" = { - definedAliases = ["@mo"]; + definedAliases = [ "@mo" ]; icon = "https://www.morele.net/static/img/shop/logo/image-logo-morele.svg"; urls = [ { @@ -227,7 +228,7 @@ ]; }; "x-kom" = { - definedAliases = ["@xk"]; + definedAliases = [ "@xk" ]; icon = "https://assets.x-kom.pl/public-spa/xkom/75062cb4b48a8510.svg"; urls = [ { @@ -242,7 +243,7 @@ ]; }; "komputronik" = { - definedAliases = ["@kp"]; + definedAliases = [ "@kp" ]; icon = "https://front.komputronik.pl/front-static/komputronik.Ceqagame-a.svg"; urls = [ { @@ -257,7 +258,7 @@ ]; }; "allegro" = { - definedAliases = ["@al"]; + definedAliases = [ "@al" ]; icon = ""; urls = [ { diff --git a/modules/home/nvf.nix b/modules/home/nvf.nix deleted file mode 100644 index 5ff7bd5..0000000 --- a/modules/home/nvf.nix +++ /dev/null @@ -1,268 +0,0 @@ -{ inputs -, config -, ... -}: { - imports = [ inputs.nvf.homeManagerModules.default ]; - - programs.nvf = { - enable = true; - - settings.vim = { - lsp.enable = true; - vimAlias = true; - viAlias = true; - withNodeJs = true; - lineNumberMode = "relNumber"; - enableLuaLoader = true; - preventJunkFiles = true; - options = { - tabstop = 4; - shiftwidth = 2; - wrap = false; - }; - - clipboard = { - enable = true; - registers = "unnamedplus"; - providers = { - wl-copy.enable = true; - xsel.enable = true; - }; - }; - - maps = { - normal = { - "e" = { - action = "Neotree toggle"; - silent = false; - }; - }; - }; - - diagnostics = { - enable = true; - config = { - virtual_lines.enable = true; - underline = true; - }; - }; - - keymaps = [ - { - key = "jk"; - mode = [ "i" ]; - action = ""; - desc = "Exit insert mode"; - } - { - key = "nh"; - mode = [ "n" ]; - action = ":nohl"; - desc = "Clear search highlights"; - } - { - key = "ff"; - mode = [ "n" ]; - action = "Telescope find_files"; - desc = "Search files by name"; - } - { - key = "lg"; - mode = [ "n" ]; - action = "Telescope live_grep"; - desc = "Search files by contents"; - } - { - key = "fe"; - mode = [ "n" ]; - action = "Neotree toggle"; - desc = "File browser toggle"; - } - { - key = ""; - mode = [ "i" ]; - action = ""; - desc = "Move left in insert mode"; - } - { - key = ""; - mode = [ "i" ]; - action = ""; - desc = "Move down in insert mode"; - } - { - key = ""; - mode = [ "i" ]; - action = ""; - desc = "Move up in insert mode"; - } - { - key = ""; - mode = [ "i" ]; - action = ""; - desc = "Move right in insert mode"; - } - ]; - - telescope.enable = true; - - spellcheck = { - enable = true; - languages = [ "en" ]; - programmingWordlist.enable = true; - }; - - lsp = { - formatOnSave = true; - lspkind.enable = false; - lightbulb.enable = false; - lspsaga.enable = false; - trouble.enable = true; - lspSignature.enable = true; - otter-nvim.enable = false; - nvim-docs-view.enable = false; - }; - - languages = { - enableFormat = true; - enableTreesitter = true; - enableExtraDiagnostics = true; - nix.enable = true; - clang.enable = true; - zig.enable = true; - python.enable = true; - markdown.enable = true; - ts = { - enable = true; - lsp.enable = true; - format.type = "prettierd"; - extensions.ts-error-translator.enable = true; - }; - html.enable = true; - lua.enable = true; - css = { - enable = true; - format.type = "prettierd"; - }; - typst.enable = true; - rust = { - enable = true; - crates.enable = true; - }; - }; - visuals = { - nvim-web-devicons.enable = true; - nvim-cursorline.enable = true; - cinnamon-nvim.enable = true; - fidget-nvim.enable = true; - highlight-undo.enable = true; - indent-blankline.enable = true; - rainbow-delimiters.enable = true; - }; - - statusline.lualine = { - enable = true; - theme = "base16"; - }; - - autopairs.nvim-autopairs.enable = true; - autocomplete.nvim-cmp.enable = true; - snippets.luasnip.enable = true; - tabline.nvimBufferline.enable = true; - treesitter.context.enable = false; - binds = { - whichKey.enable = true; - cheatsheet.enable = true; - }; - git = { - enable = true; - gitsigns.enable = true; - gitsigns.codeActions.enable = false; - }; - projects.project-nvim.enable = true; - dashboard.dashboard-nvim.enable = true; - filetree.neo-tree.enable = true; - notify = { - nvim-notify.enable = true; - nvim-notify.setupOpts.background_colour = "#${config.lib.stylix.colors.base01}"; - }; - utility = { - preview.markdownPreview.enable = true; - ccc.enable = false; - vim-wakatime.enable = false; - icon-picker.enable = true; - surround.enable = true; - diffview-nvim.enable = true; - motion = { - hop.enable = true; - leap.enable = true; - precognition.enable = false; - }; - images = { - image-nvim.enable = false; - }; - }; - ui = { - borders.enable = true; - noice.enable = true; - colorizer.enable = true; - illuminate.enable = true; - breadcrumbs = { - enable = false; - navbuddy.enable = false; - }; - smartcolumn = { - enable = true; - }; - fastaction.enable = true; - }; - - session = { - nvim-session-manager.enable = false; - }; - comments = { - comment-nvim.enable = true; - }; - - luaConfigPost = '' - -- Nix LSP (nil) configuration for auto-eval-inputs - local lspconfig = require('lspconfig') - lspconfig.nil_ls.setup({ - settings = { - ['nil'] = { - nix = { - auto_eval_inputs = true, - }, - }, - }, - }) - - -- Auto-update programming wordlist on first startup - vim.api.nvim_create_autocmd("VimEnter", { - callback = function() - -- Check if dirtytalk dict file exists - local dict_path = vim.fn.stdpath('data') .. '/site/spell/programming.utf-8.add' - if vim.fn.filereadable(dict_path) == 0 then - -- Only run if file doesn't exist to avoid repeated downloads - vim.schedule(function() - vim.cmd('DirtytalkUpdate') - end) - end - end, - }) - ''; - }; - }; - - home.activation = { - dirtytalkUpdate = '' - # Create the spell directory if it doesn't exist - mkdir -p "$HOME/.local/share/nvim/site/spell" - - # Try to run DirtytalkUpdate in headless mode with better error handling - if ! ${config.programs.nvf.finalPackage}/bin/nvim --headless -c "DirtytalkUpdate" -c "qa!" 2>/dev/null; then - echo "Note: DirtytalkUpdate will run automatically on first Neovim startup" - fi - ''; - }; -} diff --git a/modules/home/obs-studio.nix b/modules/home/obs-studio.nix index d0b610c..0d8a7f3 100644 --- a/modules/home/obs-studio.nix +++ b/modules/home/obs-studio.nix @@ -1,7 +1,7 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ programs.obs-studio = { enable = true; - #enableVirtualCamera = true; plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-pipewire-audio-capture diff --git a/modules/home/qt.nix b/modules/home/qt.nix index b8df345..503b6cd 100644 --- a/modules/home/qt.nix +++ b/modules/home/qt.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ qt = { enable = true; platformTheme.name = lib.mkForce "qtct"; diff --git a/modules/home/rofi/config-long.nix b/modules/home/rofi/config-long.nix index e8e9773..01eef82 100644 --- a/modules/home/rofi/config-long.nix +++ b/modules/home/rofi/config-long.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ home.file.".config/rofi/config-long.rasi".text = '' @import "~/.config/rofi/config.rasi" window { diff --git a/modules/home/rofi/default.nix b/modules/home/rofi/default.nix index 1b6ae5f..5d8e45a 100644 --- a/modules/home/rofi/default.nix +++ b/modules/home/rofi/default.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ imports = [ ./config-long.nix ./rofi.nix diff --git a/modules/home/rofi/rofi.nix b/modules/home/rofi/rofi.nix index f9bb5a5..d60ca5d 100644 --- a/modules/home/rofi/rofi.nix +++ b/modules/home/rofi/rofi.nix @@ -1,11 +1,13 @@ -{ pkgs -, config -, ... -}: { +{ + pkgs, + config, + ... +}: +{ programs = { rofi = { enable = true; - package = pkgs.rofi-wayland; + package = pkgs.rofi; extraConfig = { modi = "drun,filebrowser,run"; show-icons = true; diff --git a/modules/home/scripts/default.nix b/modules/home/scripts/default.nix index b9859a9..4d71371 100644 --- a/modules/home/scripts/default.nix +++ b/modules/home/scripts/default.nix @@ -1,8 +1,10 @@ -{ pkgs -, username -, profile -, ... -}: { +{ + pkgs, + username, + profile, + ... +}: +{ home.packages = [ (import ./emopicker9000.nix { inherit pkgs; }) (import ./hm-find.nix { inherit pkgs; }) @@ -19,11 +21,5 @@ inherit username; }) (import ./web-search.nix { inherit pkgs; }) - (import ./zcli.nix { - inherit pkgs profile; - backupFiles = [ - ".config/mimeapps.list.backup" - ]; - }) ]; } diff --git a/modules/home/scripts/emopicker9000.nix b/modules/home/scripts/emopicker9000.nix index 3d4346c..ed8e4ed 100644 --- a/modules/home/scripts/emopicker9000.nix +++ b/modules/home/scripts/emopicker9000.nix @@ -6,7 +6,7 @@ pkgs.writeShellScriptBin "emopicker9000" '' fi # Get user selection via wofi from emoji file. - chosen=$(cat $HOME/.config/.emoji | ${pkgs.rofi-wayland}/bin/rofi -i -dmenu -config ~/.config/rofi/config-long.rasi | awk '{print $1}') + chosen=$(cat $HOME/.config/.emoji | ${pkgs.rofi}/bin/rofi -i -dmenu -config ~/.config/rofi/config-long.rasi | awk '{print $1}') # Exit if none chosen. [ -z "$chosen" ] && exit diff --git a/modules/home/scripts/gemini-cli.nix b/modules/home/scripts/gemini-cli.nix index d39d30c..08851ff 100644 --- a/modules/home/scripts/gemini-cli.nix +++ b/modules/home/scripts/gemini-cli.nix @@ -3,7 +3,7 @@ let gemini-launcher = pkgs.writeShellScriptBin "gemini-launcher" '' #!${pkgs.bash}/bin/bash - + # Define the path to your API key file KEY_FILE="${config.home.homeDirectory}/gem.key" @@ -32,6 +32,9 @@ in exec = "gemini-launcher"; terminal = false; type = "Application"; - categories = [ "Development" "Utility" ]; + categories = [ + "Development" + "Utility" + ]; }; } diff --git a/modules/home/scripts/keybinds.nix b/modules/home/scripts/keybinds.nix index 5a5a9f3..eb8e2c6 100644 --- a/modules/home/scripts/keybinds.nix +++ b/modules/home/scripts/keybinds.nix @@ -7,7 +7,7 @@ pkgs.writeShellScriptBin "list-keybinds" '' msg='☣️ NOTE ☣️: Clicking with Mouse or Pressing ENTER will have NO function' keybinds=$(cat ~/.config/hypr/hyprland.conf | grep -E '^bind') - + # replace #modifier with SUPER in the displayed keybinds for rofi display_keybinds=$(echo "$keybinds" | sed 's/\$modifier/SUPER/g') diff --git a/modules/home/scripts/note.nix b/modules/home/scripts/note.nix index 3554cb1..95dcf2e 100644 --- a/modules/home/scripts/note.nix +++ b/modules/home/scripts/note.nix @@ -16,7 +16,7 @@ pkgs.writeShellScriptBin "note" '' # XDG-compliant notes directory and file NOTES_DIR="$HOME/.local/share/notes" NOTES_FILE="$NOTES_DIR/notes.txt" - + # Create notes directory if it doesn't exist mkdir -p "$NOTES_DIR" diff --git a/modules/home/scripts/web-search.nix b/modules/home/scripts/web-search.nix index 7af6e86..0a28e6b 100644 --- a/modules/home/scripts/web-search.nix +++ b/modules/home/scripts/web-search.nix @@ -25,10 +25,10 @@ pkgs.writeShellScriptBin "web-search" '' main() { # Pass the list to rofi - platform=$( (gen_list) | ${pkgs.rofi-wayland}/bin/rofi -dmenu -config ~/.config/rofi/config-long.rasi ) + platform=$( (gen_list) | ${pkgs.rofi}/bin/rofi -dmenu -config ~/.config/rofi/config-long.rasi ) if [[ -n "$platform" ]]; then - query=$( (echo ) | ${pkgs.rofi-wayland}/bin/rofi -dmenu -config ~/.config/rofi/config-long.rasi ) + query=$( (echo ) | ${pkgs.rofi}/bin/rofi -dmenu -config ~/.config/rofi/config-long.rasi ) if [[ -n "$query" ]]; then url=''${URLS[$platform]}$query diff --git a/modules/home/scripts/zcli.nix b/modules/home/scripts/zcli.nix deleted file mode 100644 index e04cc88..0000000 --- a/modules/home/scripts/zcli.nix +++ /dev/null @@ -1,700 +0,0 @@ -{ pkgs -, profile -, backupFiles ? [ ".config/mimeapps.list.backup" ] -, ... -}: -let - backupFilesString = pkgs.lib.strings.concatStringsSep " " backupFiles; - - # Create the get-doom script as a dependency - get-doom-script = pkgs.writeShellScriptBin "get-doom" '' - #!/usr/bin/env bash - set -euo pipefail - - # --- 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 "===============================" - } - - is_doom_installed() { - local dir="$1" - [[ -x "$dir/bin/doom" ]] && [[ -f "$dir/core/doom.el" ]] - } - - emacsdir_is_empty() { - local dir="$1" - [[ -d "$dir" ]] && [[ -z "$(ls -A "$dir" 2>/dev/null)" ]] - } - - # --- Main Script --- - print_banner - EMACSDIR="$HOME/.emacs.d" - - if is_doom_installed "$EMACSDIR"; then - print_success "Doom Emacs is already installed." - exit 0 - fi - - if [[ -d "$EMACSDIR" ]]; then - if emacsdir_is_empty "$EMACSDIR"; then - print_status "Found empty $EMACSDIR; proceeding to install Doom Emacs into it..." - else - echo "Error: Found $EMACSDIR but it does not look like a Doom Emacs installation." >&2 - echo "Refusing to overwrite a non-empty directory. Move it away and re-run, e.g.:" >&2 - echo " mv \"$EMACSDIR\" \"$EMACSDIR.bak\"" >&2 - exit 1 - fi - fi - - print_status "Cloning Doom Emacs..." - ${pkgs.git}/bin/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." - ''; -in - -pkgs.writeShellScriptBin "zcli" '' - #!${pkgs.bash}/bin/bash - set -euo pipefail - - # --- Program info --- - # - # zcli - NixOS System Management CLI - # ================================== - # - # Purpose: NixOS system management utility for ZaneyOS distribution - # Author: Don Williams (ddubs) & Zaney - # Start Date: June 7th, 2025 - # Version: 1.0.2 - # - # Architecture: - # - Nix-generated shell script using writeShellScriptBin - # - Configuration via Nix parameters (profile, backupFiles) - # - Uses 'nh' tool for NixOS operations, 'inxi' for diagnostics - # - Git integration for host configuration versioning - # - # Helper Functions: - # verify_hostname() - Validates current hostname against flake.nix host variable - # Exits with error if mismatch or missing host directory - # detect_gpu_profile() - Parses lspci output to identify GPU hardware - # Returns: nvidia/nvidia-laptop/amd/intel/vm/empty - # handle_backups() - Removes files listed in BACKUP_FILES array from $HOME - # parse_nh_args() - Parses command-line arguments for nh operations - # print_help() - Outputs command usage and available operations - # - # Command Functions: - # cleanup - Interactive cleanup of old generations via 'nh clean' - # diag - Generate system report using 'inxi --full' - # list-gens - Display user/system generations via nix-env and nix profile - # rebuild - NixOS rebuild using 'nh os switch' - # rebuild-boot - NixOS rebuild for next boot using 'nh os boot' - # trim - SSD optimization via 'sudo fstrim -v /' - # update - Flake update + rebuild using 'nh os switch --update' - # update-host - Modify flake.nix host/profile variables via sed - # add-host - Add new host configuration - # del-host - Delete host configuration - # doom [sub] - Doom Emacs management (install/status/remove/update) - # - # Variables: - # PROJECT - Base directory name (ddubsos/zaneyos) - # PROFILE - Hardware profile from Nix parameter - # BACKUP_FILES - Array of backup file paths to clean - # FLAKE_NIX_PATH - Path to flake.nix for host/profile updates - # - - - # --- Configuration --- - PROJECT="zaneyos" #ddubos or zaneyos - PROFILE="${profile}" - BACKUP_FILES_STR="${backupFilesString}" - VERSION="1.0.2" - FLAKE_NIX_PATH="$HOME/$PROJECT/flake.nix" - - read -r -a BACKUP_FILES <<< "$BACKUP_FILES_STR" - - # --- Helper Functions --- - verify_hostname() { - local current_hostname - local flake_hostname - - current_hostname="$(hostname)" - - # Extract the host value from flake.nix - if [ -f "$FLAKE_NIX_PATH" ]; then - flake_hostname=$(${pkgs.gnugrep}/bin/grep -E '^[[:space:]]*host[[:space:]]*=' "$FLAKE_NIX_PATH" | ${pkgs.gnused}/bin/sed 's/.*=[[:space:]]*"\([^"]*\)".*/\1/') - - if [ -z "$flake_hostname" ]; then - echo "Error: Could not find 'host' variable in $FLAKE_NIX_PATH" >&2 - exit 1 - fi - - if [ "$current_hostname" != "$flake_hostname" ]; then - echo "Error: Hostname mismatch!" >&2 - echo " Current hostname: '$current_hostname'" >&2 - echo " Flake.nix host: '$flake_hostname'" >&2 - echo "" >&2 - echo "Hint: Run 'zcli update-host' to automatically update flake.nix" >&2 - echo " or manually edit $FLAKE_NIX_PATH" >&2 - exit 1 - fi - else - echo "Error: Flake.nix not found at $FLAKE_NIX_PATH" >&2 - exit 1 - fi - - # Also check if host folder exists - local folder="$HOME/$PROJECT/hosts/$current_hostname" - if [ ! -d "$folder" ]; then - echo "Error: Matching host not found in $PROJECT, Missing folder: $folder" >&2 - exit 1 - fi - } - - print_help() { - echo "ZaneyOS CLI Utility -- version $VERSION" - echo "" - echo "Usage: zcli [command] [options]" - echo "" - echo "Commands:" - echo " cleanup - Clean up old system generations. Can specify a number to keep." - echo " diag - Create a system diagnostic report." - echo " (Filename: homedir/diag.txt)" - echo " list-gens - List user and system generations." - echo " rebuild - Rebuild the NixOS system configuration." - echo " rebuild-boot - Rebuild and set as boot default (activates on next restart)." - echo " trim - Trim filesystems to improve SSD performance." - echo " update - Update the flake and rebuild the system." - echo " update-host - Auto set host and profile in flake.nix." - echo " (Opt: zcli update-host [hostname] [profile])" - echo "" - echo "Options for rebuild, rebuild-boot, and update commands:" - echo " --dry, -n - Show what would be done without doing it" - echo " --ask, -a - Ask for confirmation before proceeding" - echo " --cores N - Limit build to N cores (useful for VMs)" - echo " --verbose, -v - Show verbose output" - echo " --no-nom - Don't use nix-output-monitor" - echo "" - echo "Doom Emacs:" - echo " doom install - Install Doom Emacs using get-doom script." - echo " doom status - Check if Doom Emacs is installed." - echo " doom remove - Remove Doom Emacs installation." - echo " doom update - Update Doom Emacs (runs doom sync)." - echo "" - echo " help - Show this help message." - } - - handle_backups() { - if [ ''${#BACKUP_FILES[@]} -eq 0 ]; then - echo "No backup files configured to check." - return - fi - - echo "Checking for backup files to remove..." - for file_path in "''${BACKUP_FILES[@]}"; do - full_path="$HOME/$file_path" - if [ -f "$full_path" ]; then - echo "Removing stale backup file: $full_path" - rm "$full_path" - fi - done - } - - detect_gpu_profile() { - local detected_profile="" - local has_nvidia=false - local has_intel=false - local has_amd=false - local has_vm=false - - if ${pkgs.pciutils}/bin/lspci &> /dev/null; then # Check if lspci is available - if ${pkgs.pciutils}/bin/lspci | ${pkgs.gnugrep}/bin/grep -qi 'vga\|3d'; then - while read -r line; do - if echo "$line" | ${pkgs.gnugrep}/bin/grep -qi 'nvidia'; then - has_nvidia=true - elif echo "$line" | ${pkgs.gnugrep}/bin/grep -qi 'amd'; then - has_amd=true - elif echo "$line" | ${pkgs.gnugrep}/bin/grep -qi 'intel'; then - has_intel=true - elif echo "$line" | ${pkgs.gnugrep}/bin/grep -qi 'virtio\|vmware'; then - has_vm=true - fi - done < <(${pkgs.pciutils}/bin/lspci | ${pkgs.gnugrep}/bin/grep -i 'vga\|3d') - - if "$has_vm"; then - detected_profile="vm" - elif "$has_nvidia" && "$has_intel"; then - detected_profile="nvidia-laptop" - elif "$has_nvidia"; then - detected_profile="nvidia" - elif "$has_amd"; then - detected_profile="amd" - elif "$has_intel"; then - detected_profile="intel" - fi - fi - else - echo "Warning: lspci command not found. Cannot auto-detect GPU profile." >&2 - fi - echo "$detected_profile" # Return the detected profile - } - - # --- Helper function to parse additional arguments --- - parse_nh_args() { - local args_string="" - local options_selected=() - shift # Remove the main command (rebuild, rebuild-boot, update) - - while [[ $# -gt 0 ]]; do - case $1 in - --dry|-n) - args_string="$args_string --dry" - options_selected+=("dry run mode (showing what would be done)") - shift - ;; - --ask|-a) - args_string="$args_string --ask" - options_selected+=("confirmation prompts enabled") - shift - ;; - --cores) - if [[ -n $2 && $2 =~ ^[0-9]+$ ]]; then - args_string="$args_string -- --cores $2" - options_selected+=("limited to $2 CPU cores") - shift 2 - else - echo "Error: --cores requires a numeric argument" >&2 - exit 1 - fi - ;; - --verbose|-v) - args_string="$args_string --verbose" - options_selected+=("verbose output enabled") - shift - ;; - --no-nom) - args_string="$args_string --no-nom" - options_selected+=("nix-output-monitor disabled") - shift - ;; - --) - shift - args_string="$args_string -- $*" - options_selected+=("additional arguments: $*") - break - ;; - -*) - echo "Warning: Unknown flag '$1' - passing through to nh" >&2 - args_string="$args_string $1" - options_selected+=("unknown flag '$1' passed through") - shift - ;; - *) - echo "Error: Unexpected argument '$1'" >&2 - exit 1 - ;; - esac - done - - # Print friendly confirmation of selected options to stderr so it doesn't interfere with return value - if [[ ''${#options_selected[@]} -gt 0 ]]; then - echo "Options selected:" >&2 - for option in "''${options_selected[@]}"; do - echo " ✓ $option" >&2 - done - echo >&2 - fi - - # Return only the args string - echo "$args_string" - } - - # --- Main Logic --- - if [ "$#" -eq 0 ]; then - echo "Error: No command provided." >&2 - print_help - exit 1 - fi - - case "$1" in - cleanup) - echo "Warning! This will remove old generations of your system." - read -p "How many generations to keep (default: all)? " keep_count - - if [ -z "$keep_count" ]; then - read -p "This will remove all but the current generation. Continue (y/N)? " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - ${pkgs.nh}/bin/nh clean all -v - else - echo "Cleanup cancelled." - fi - else - read -p "This will keep the last $keep_count generations. Continue (y/N)? " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - ${pkgs.nh}/bin/nh clean all -k "$keep_count" -v - else - echo "Cleanup cancelled." - fi - fi - - LOG_DIR="$HOME/zcli-cleanup-logs" - mkdir -p "$LOG_DIR" - LOG_FILE="$LOG_DIR/zcli-cleanup-$(${pkgs.coreutils}/bin/date +%Y-%m-%d_%H-%M-%S).log" - echo "Cleaning up old log files..." >> "$LOG_FILE" - ${pkgs.findutils}/bin/find "$LOG_DIR" -type f -mtime +3 -name "*.log" -delete >> "$LOG_FILE" 2>&1 - echo "Cleanup process logged to $LOG_FILE" - ;; - diag) - echo "Generating system diagnostic report..." - ${pkgs.inxi}/bin/inxi --full > "$HOME/diag.txt" - echo "Diagnostic report saved to $HOME/diag.txt" - ;; - help) - print_help - ;; - list-gens) - echo "--- User Generations ---" - ${pkgs.nix}/bin/nix-env --list-generations | ${pkgs.coreutils}/bin/cat || echo "Could not list user generations." - echo "" - echo "--- System Generations ---" - ${pkgs.nix}/bin/nix profile history --profile /nix/var/nix/profiles/system | ${pkgs.coreutils}/bin/cat || echo "Could not list system generations." - ;; - rebuild) - verify_hostname - handle_backups - - # Parse additional arguments - extra_args=$(parse_nh_args "$@") - - echo "Starting NixOS rebuild for host: $(${pkgs.nettools}/bin/hostname)" - if eval "${pkgs.nh}/bin/nh os switch --hostname '$PROFILE' $extra_args"; then - echo "Rebuild finished successfully" - else - echo "Rebuild Failed" >&2 - exit 1 - fi - ;; - rebuild-boot) - verify_hostname - handle_backups - - # Parse additional arguments - extra_args=$(parse_nh_args "$@") - - echo "Starting NixOS rebuild (boot) for host: $(${pkgs.nettools}/bin/hostname)" - echo "Note: Configuration will be activated on next reboot" - if eval "${pkgs.nh}/bin/nh os boot --hostname '$PROFILE' $extra_args"; then - echo "Rebuild-boot finished successfully" - echo "New configuration set as boot default - restart to activate" - else - echo "Rebuild-boot Failed" >&2 - exit 1 - fi - ;; - trim) - echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance." - read -p "Enter (y/Y) to run now or enter to exit (y/N): " -n 1 -r - echo # move to a new line - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Running fstrim..." - sudo ${pkgs.util-linux}/bin/fstrim -v / - echo "fstrim complete." - else - echo "Trim operation cancelled." - fi - ;; - update) - verify_hostname - handle_backups - - # Parse additional arguments - extra_args=$(parse_nh_args "$@") - - echo "Updating flake and rebuilding system for host: $(${pkgs.nettools}/bin/hostname)" - if eval "${pkgs.nh}/bin/nh os switch --hostname '$PROFILE' --update $extra_args"; then - echo "Update and rebuild finished successfully" - else - echo "Update and rebuild Failed" >&2 - exit 1 - fi - ;; - update-host) - target_hostname="" - target_profile="" - - if [ "$#" -eq 3 ]; then # zcli update-host - target_hostname="$2" - target_profile="$3" - elif [ "$#" -eq 1 ]; then # zcli update-host (auto-detect) - echo "Attempting to auto-detect hostname and GPU profile..." - target_hostname=$(${pkgs.nettools}/bin/hostname) - target_profile=$(detect_gpu_profile) - - if [ -z "$target_profile" ]; then - echo "Error: Could not auto-detect a specific GPU profile. Please provide it manually." >&2 - echo "Usage: zcli update-host [hostname] [profile]" >&2 - exit 1 - fi - echo "Auto-detected Hostname: $target_hostname" - echo "Auto-detected Profile: $target_profile" - else - echo "Error: Invalid number of arguments for 'update-host'." >&2 - echo "Usage: zcli update-host [hostname] [profile]" >&2 - exit 1 - fi - - echo "Updating $FLAKE_NIX_PATH..." - - # Update host - if ${pkgs.gnused}/bin/sed -i "s/^[[:space:]]*host[[:space:]]*=[[:space:]]*\".*\"/ host = \"$target_hostname\"/" "$FLAKE_NIX_PATH"; then - echo "Successfully updated host to: $target_hostname" - else - echo "Error: Failed to update host in $FLAKE_NIX_PATH" >&2 - exit 1 - fi - - # Update profile - if ${pkgs.gnused}/bin/sed -i "s/^[[:space:]]*profile[[:space:]]*=[[:space:]]*\".*\"/ profile = \"$target_profile\"/" "$FLAKE_NIX_PATH"; then - echo "Successfully updated profile to: $target_profile" - else - echo "Error: Failed to update profile in $FLAKE_NIX_PATH" >&2 - exit 1 - fi - - echo "Flake.nix updated successfully!" - ;; - add-host) - hostname="" - profile_arg="" - - if [ "$#" -ge 2 ]; then - hostname="$2" - fi - if [ "$#" -eq 3 ]; then - profile_arg="$3" - fi - - if [ -z "$hostname" ]; then - read -p "Enter the new hostname: " hostname - fi - - if [ -d "$HOME/$PROJECT/hosts/$hostname" ]; then - echo "Error: Host '$hostname' already exists." >&2 - exit 1 - fi - - echo "Copying default host configuration..." - ${pkgs.coreutils}/bin/cp -r "$HOME/$PROJECT/hosts/default" "$HOME/$PROJECT/hosts/$hostname" - - detected_profile="" - if [[ -n "$profile_arg" && "$profile_arg" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; then - detected_profile="$profile_arg" - else - echo "Detecting GPU profile..." - detected_profile=$(detect_gpu_profile) - echo "Detected GPU profile: $detected_profile" - read -p "Is this correct? (y/n) " -n 1 -r - echo - if [[ $REPLY =~ ^[Nn]$ ]]; then - read -p "Enter the correct profile (intel, amd, nvidia, nvidia-hybrid, vm): " new_profile - while [[ ! "$new_profile" =~ ^(intel|amd|nvidia|nvidia-hybrid|vm)$ ]]; do - echo "Invalid profile. Please enter one of the following: intel, amd, nvidia, nvidia-hybrid, vm" - read -p "Enter the correct profile: " new_profile - done - detected_profile=$new_profile - fi - fi - - echo "Setting profile to '$detected_profile'..." - ${pkgs.gnused}/bin/sed -i "s/profile = .*/profile = \"$detected_profile\";/" "$HOME/$PROJECT/hosts/$hostname/default.nix" - - read -p "Generate new hardware.nix? (y/n) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Generating hardware.nix..." - sudo nixos-generate-config --show-hardware-config > "$HOME/$PROJECT/hosts/$hostname/hardware.nix" - echo "hardware.nix generated." - fi - - echo "Adding new host to git..." - ${pkgs.git}/bin/git -C "$HOME/$PROJECT" add . - echo "hostname: $hostname added" - ;; - del-host) - hostname="" - if [ "$#" -eq 2 ]; then - hostname="$2" - else - read -p "Enter the hostname to delete: " hostname - fi - - if [ ! -d "$HOME/$PROJECT/hosts/$hostname" ]; then - echo "Error: Host '$hostname' does not exist." >&2 - exit 1 - fi - - read -p "Are you sure you want to delete the host '$hostname'? (y/N) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Deleting host '$hostname'..." - ${pkgs.coreutils}/bin/rm -rf "$HOME/$PROJECT/hosts/$hostname" - ${pkgs.git}/bin/git -C "$HOME/$PROJECT" add . - echo "hostname: $hostname removed" - else - echo "Deletion cancelled." - fi - ;; - doom) - if [ "$#" -lt 2 ]; then - echo "Error: doom command requires a subcommand." >&2 - echo "Usage: zcli doom [install|status|remove|update]" >&2 - exit 1 - fi - - # Ensure we're acting on a valid host and we can locate variables.nix - verify_hostname - current_hostname="$(hostname)" - host_vars_file="$HOME/$PROJECT/hosts/$current_hostname/variables.nix" - - if [ ! -f "$host_vars_file" ]; then - echo "Error: Host variables file not found: $host_vars_file" >&2 - echo "Please ensure your host folder exists and contains variables.nix." >&2 - exit 1 - fi - - is_doom_enabled() { - # Return 0 if doomEmacsEnable = true; appears (ignoring leading spaces) - ${pkgs.gnugrep}/bin/grep -Eq '^[[:space:]]*doomEmacsEnable[[:space:]]*=[[:space:]]*true[[:space:]]*;' "$host_vars_file" - } - - ensure_doom_enabled() { - # If the variable is present but false, flip it; if missing, append it - if ${pkgs.gnugrep}/bin/grep -Eq '^[[:space:]]*doomEmacsEnable[[:space:]]*=' "$host_vars_file"; then - ${pkgs.gnused}/bin/sed -i 's/^[[:space:]]*doomEmacsEnable[[:space:]]*=.*/ doomEmacsEnable = true;/' "$host_vars_file" - else - echo "" >> "$host_vars_file" - echo " # Enabled by zcli doom on $(date)" >> "$host_vars_file" - echo " doomEmacsEnable = true;" >> "$host_vars_file" - fi - } - - doom_subcommand="$2" - case "$doom_subcommand" in - install) - if ! is_doom_enabled; then - echo "✗ Doom Emacs is disabled for host '$current_hostname' (doomEmacsEnable = false)." >&2 - echo "To enable, set doomEmacsEnable = true; in:" >&2 - echo " $host_vars_file" >&2 - echo "and rebuild your system before installing Doom." >&2 - echo - read -p "Enable Doom for this host now and rebuild? (y/N) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Enabling Doom Emacs in $host_vars_file..." - ensure_doom_enabled - echo "Rebuilding system so user modules are applied..." - if ${pkgs.nh}/bin/nh os switch --hostname "$PROFILE"; then - echo "Rebuild complete. Proceeding with Doom installation." - else - echo "Error: Rebuild failed. Please fix the build and re-run 'zcli doom install'." >&2 - exit 1 - fi - else - echo "Aborting. Please enable doomEmacsEnable and rebuild before installing." >&2 - exit 1 - fi - fi - echo "Installing Doom Emacs..." - ${get-doom-script}/bin/get-doom - ;; - status) - if [ -x "$HOME/.emacs.d/bin/doom" ] && [ -f "$HOME/.emacs.d/core/doom.el" ]; then - echo "✔ Doom Emacs appears installed at $HOME/.emacs.d" - if [ -f "$HOME/.doom.d/init.el" ]; then - echo " • User config found: $HOME/.doom.d/init.el" - else - echo " • Warning: User config (~/.doom.d) not found" - fi - echo "Version information:" - "$HOME/.emacs.d/bin/doom" version 2>/dev/null || echo "Could not get version information" - else - if [ -d "$HOME/.emacs.d" ]; then - if [ -z "$(ls -A "$HOME/.emacs.d" 2>/dev/null)" ]; then - echo "✗ Found empty ~/.emacs.d (not a valid Doom installation)" - else - echo "✗ ~/.emacs.d exists but Doom was not detected" - fi - else - echo "✗ Doom Emacs is not installed" - fi - echo "Run 'zcli doom install' to install it" - fi - ;; - remove) - if [ ! -d "$HOME/.emacs.d" ]; then - echo "Doom Emacs is not installed" - exit 0 - fi - - echo "Warning: This will completely remove Doom Emacs and all your configuration!" - read -p "Are you sure you want to continue? (y/N) " -n 1 -r - echo - if [[ $REPLY =~ ^[Yy]$ ]]; then - echo "Removing Doom Emacs..." - ${pkgs.coreutils}/bin/rm -rf "$HOME/.emacs.d" - echo "✔ Doom Emacs has been removed" - else - echo "Removal cancelled" - fi - ;; - update) - if [ ! -x "$HOME/.emacs.d/bin/doom" ] || [ ! -f "$HOME/.emacs.d/core/doom.el" ]; then - echo "Error: Doom Emacs is not installed correctly. Run 'zcli doom install' first." >&2 - exit 1 - fi - - echo "Updating Doom Emacs..." - "$HOME/.emacs.d/bin/doom" sync - echo "✔ Doom Emacs update complete" - ;; - *) - echo "Error: Invalid doom subcommand '$doom_subcommand'" >&2 - echo "Usage: zcli doom [install|status|remove|update]" >&2 - exit 1 - ;; - esac - ;; - *) - echo "Error: Invalid command '$1'" >&2 - print_help - exit 1 - ;; - esac -'' diff --git a/modules/home/ssh.nix b/modules/home/ssh.nix new file mode 100644 index 0000000..6c3250d --- /dev/null +++ b/modules/home/ssh.nix @@ -0,0 +1,14 @@ +_: { + programs.ssh = { + enable = true; + enableDefaultConfig = false; + matchBlocks = { + "hp-t640-homeserver" = { + hostname = "192.168.1.156"; + user = "garand_plg"; + port = 22; + identityFile = "~/.ssh/hp-t640-homeserver"; + }; + }; + }; +} diff --git a/modules/home/starship-ddubs-1.nix b/modules/home/starship-ddubs-1.nix deleted file mode 100644 index 2faa8b0..0000000 --- a/modules/home/starship-ddubs-1.nix +++ /dev/null @@ -1,60 +0,0 @@ -# starship is a minimal, fast, and extremely customizable prompt for any shell! -{ config -, lib -, ... -}: -let - accent = "#${config.lib.stylix.colors.base0D}"; - background-alt = "#${config.lib.stylix.colors.base01}"; -in -{ - programs.starship = { - enable = false; - settings = { - add_newline = false; - format = lib.concatStrings [ - "$nix_shell" - "$hostname" - "$directory" - "$git_branch" - "$git_state" - "$git_status" - "\n" - "$character" - ]; - directory = { style = accent; }; - - character = { - success_symbol = "[❯](${accent})"; - error_symbol = "[❯](red)"; - vimcmd_symbol = "[❮](cyan)"; - }; - - nix_shell = { - format = "[$symbol]($style) "; - symbol = "🐚"; - style = ""; - }; - - git_branch = { - symbol = "[](${background-alt}) "; - style = "fg:${accent} bg:${background-alt}"; - format = "on [$symbol$branch]($style)[](${background-alt}) "; - }; - - git_status = { - format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)"; - style = "cyan"; - conflicted = ""; - renamed = ""; - deleted = ""; - stashed = "≡"; - }; - - git_state = { - format = "([$state( $progress_current/$progress_total)]($style)) "; - style = "bright-black"; - }; - }; - }; -} diff --git a/modules/home/starship.nix b/modules/home/starship.nix index 51090b9..7dd5919 100644 --- a/modules/home/starship.nix +++ b/modules/home/starship.nix @@ -1,6 +1,72 @@ -{ pkgs, ... }: { +# starship with python venv support +{ + config, + lib, + ... +}: +let + accent = "#${config.lib.stylix.colors.base0D}"; + background-alt = "#${config.lib.stylix.colors.base01}"; +in +{ programs.starship = { - enable = false; - package = pkgs.starship; + enable = true; + settings = { + add_newline = false; + format = lib.concatStrings [ + "$nix_shell" + "$hostname" + "$directory" + "$git_branch" + "$git_state" + "$git_status" + "$python" + "\n" + "$character" + ]; + + directory = { + style = accent; + }; + + character = { + success_symbol = "[❯](${accent})"; + error_symbol = "[❯](red)"; + vimcmd_symbol = "[❮](cyan)"; + }; + + nix_shell = { + format = "[$symbol]($style) "; + symbol = " "; + style = ""; + }; + + git_branch = { + symbol = "[](${background-alt}) "; + style = "fg:${accent} bg:${background-alt}"; + format = "on [$symbol$branch]($style)[](${background-alt}) "; + }; + + git_status = { + format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)"; + style = "cyan"; + conflicted = ""; + renamed = ""; + deleted = ""; + stashed = "≡"; + }; + + git_state = { + format = "([$state( $progress_current/$progress_total)]($style)) "; + style = "bright-black"; + }; + + python = { + format = " [$symbol($virtualenv)](${accent}) "; + symbol = " "; + pyenv_version_name = false; + style = "fg:${accent}"; + }; + }; }; } diff --git a/modules/home/steam.nix b/modules/home/steam.nix new file mode 100644 index 0000000..c4e2cc1 --- /dev/null +++ b/modules/home/steam.nix @@ -0,0 +1,6 @@ +_: { + home.file.".steam/steam/steam_dev.cfg".text = '' + @nClientDownloadEnableHTTP2PlatformLinux 0 + @fDownloadRateImprovementToAddAnotherConnection 1.0 + ''; +} diff --git a/modules/home/stylix.nix b/modules/home/stylix.nix index 4448304..f493c33 100644 --- a/modules/home/stylix.nix +++ b/modules/home/stylix.nix @@ -1,10 +1,13 @@ -_: { +{ host, ... }: +{ stylix.targets = { + librewolf.profileNames = [ "${host}" ]; waybar.enable = false; rofi.enable = false; hyprland.enable = false; hyprlock.enable = false; ghostty.enable = false; + vscode.enable = false; qt = { enable = true; platform = "qtct"; diff --git a/modules/home/swappy.nix b/modules/home/swappy.nix index b3b62a3..373d8a6 100644 --- a/modules/home/swappy.nix +++ b/modules/home/swappy.nix @@ -1,4 +1,5 @@ -{ username, ... }: { +{ username, ... }: +{ home.file = { ".config/swappy/config".text = '' [Default] diff --git a/modules/home/swaync.nix b/modules/home/swaync.nix index 2662402..c024bd9 100644 --- a/modules/home/swaync.nix +++ b/modules/home/swaync.nix @@ -1,4 +1,5 @@ -{ config, ... }: { +{ config, ... }: +{ services.swaync = { enable = true; settings = { diff --git a/modules/home/tealdeer.nix b/modules/home/tealdeer.nix index 1b2c859..3f705d3 100644 --- a/modules/home/tealdeer.nix +++ b/modules/home/tealdeer.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ programs.tealdeer = { enable = true; settings = { diff --git a/modules/home/tmux.nix b/modules/home/tmux.nix deleted file mode 100644 index 43d13b1..0000000 --- a/modules/home/tmux.nix +++ /dev/null @@ -1,118 +0,0 @@ -# Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window. -{ pkgs, ... }: { - programs.tmux = { - enable = true; - mouse = true; - shell = "${pkgs.zsh}/bin/zsh"; - prefix = "C-a"; - terminal = "kitty"; - keyMode = "vi"; - - extraConfig = '' - set-option -g status-position top - - #set -g default-terminal "screen-256color" - set-option -g history-limit 5000 - unbind % - unbind '"' - - bind-key h select-pane -L - bind-key j select-pane -D - bind-key k select-pane -U - bind-key l select-pane -R - - set -gq allow-passthrough on - bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt - - bind-key -n C-Tab next-window - bind-key -n C-S-Tab previous-window - bind-key -n M-Tab new-window - - - # Start windows and panes index at 1, not 0. - set -g base-index 1 - setw -g pane-base-index 1 - - - bind-key "|" split-window -h -c "#{pane_current_path}" - bind-key "\\" split-window -fh -c "#{pane_current_path}" - - bind-key "-" split-window -v -c "#{pane_current_path}" - bind-key "_" split-window -fv -c "#{pane_current_path}" - - bind -r C-j resize-pane -D 15 - bind -r C-k resize-pane -U 15 - bind -r C-h resize-pane -L 15 - bind -r C-l resize-pane -R 15 - - # 'c' to new window - bind-key c new-window - - # 'n' next window - bind-key n next-window - - # 'p' next previous - bind-key n previous-window - - unbind r - bind r source-file ~/.config/tmux/tmux.conf - - bind -r m resize-pane -Z - - bind-key t clock-mode - bind-key q display-panes - bind-key u refresh-client - bind-key o select-pane -t :.+ - - - ##### Display Popups ##### - - bind C-y display-popup \ - -d "#{pane_current_path}" \ - -w 80% \ - -h 80% \ - -E "lazygit" - bind C-n display-popup -E 'bash -i -c "read -p \"Session name: \" name; tmux new-session -d -s \$name && tmux switch-client -t \$name"' - bind C-j display-popup -E "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t" - #bind C-p display-popup -E "ipython" - #bind C-f display-popup \ - # -w 80% \ - # -h 80% \ - # -E 'rmpc' - bind C-r display-popup \ - -d "#{pane_current_path}" \ - -w 90% \ - -h 90% \ - -E "yazi" - bind C-z display-popup \ - -w 90% \ - -h 90% \ - -E 'nvim ~/ddubsos/flake.nix' - #bind C-g display-popup -E "bash -i ~/.tmux/scripts/chat-popup.sh" - bind C-t display-popup \ - -d "#{pane_current_path}" \ - -w 75% \ - -h 75% \ - -E "zsh" - - ##### Display Menu ##### - - bind d display-menu -T "#[align=centre]Dotfiles" -x C -y C \ - "ZaneyOS flake.nix" f "display-popup -E 'nvim ~/garandos/flake.nix'" \ - "ZaneyOS packages" p "display-popup -E 'nvim ~/garandos/modules/core/packages.nix'" \ - "ZaneyOS keybinds" k "display-popup -E 'nvim ~/garandos/modules/home/hyprland/binds.nix'" \ - "ZaneyOS env variables" e "display-popup -E 'nvim ~/garandos/modules/home/hyprland/env.nix'" \ - "ZaneyOS windowrules" w "display-popup -E 'nvim ~/garandos/modules/home/hyprland/windowrules.nix'" \ - "Exit" q "" - - - - ''; - - plugins = with pkgs; [ - tmuxPlugins.vim-tmux-navigator - tmuxPlugins.sensible - tmuxPlugins.tokyo-night-tmux - ]; - }; -} diff --git a/modules/home/vscode.nix b/modules/home/vscode.nix index 2d7b5e8..18fb4e4 100644 --- a/modules/home/vscode.nix +++ b/modules/home/vscode.nix @@ -1,4 +1,5 @@ -{ pkgs, lib, ... }: { +{ pkgs, lib, ... }: +{ nixpkgs.config.allowUnfree = true; programs.vscode = { @@ -6,33 +7,430 @@ package = pkgs.vscodium; profiles = { default = { - extensions = with pkgs.vscode-extensions; [ - bbenoist.nix - jeff-hykin.better-nix-syntax - ms-vscode.cpptools-extension-pack - mads-hartmann.bash-ide-vscode - tamasfe.even-better-toml - zainchen.json - shd101wyy.markdown-preview-enhanced + extensions = + with pkgs.vscode-extensions; + [ + batisteo.vscode-django + bradlc.vscode-tailwindcss + christian-kohler.npm-intellisense + christian-kohler.path-intellisense + continue.continue + davidanson.vscode-markdownlint + dbaeumer.vscode-eslint + donjayamanne.githistory + esbenp.prettier-vscode + ethansk.restore-terminals + formulahendry.auto-close-tag + formulahendry.auto-rename-tag + gruntfuggly.todo-tree + jnoortheen.nix-ide + mechatroner.rainbow-csv + ms-azuretools.vscode-docker + njpwerner.autodocstring + octref.vetur + oderwat.indent-rainbow + shd101wyy.markdown-preview-enhanced + streetsidesoftware.code-spell-checker + supermaven.supermaven + tomoki1207.pdf + visualstudioexptteam.intellicode-api-usage-examples + visualstudioexptteam.vscodeintellicode + vscode-icons-team.vscode-icons + vue.volar + wholroyd.jinja + yoavbls.pretty-ts-errors + tamasfe.even-better-toml + ms-ceintl.vscode-language-pack-pl + rust-lang.rust-analyzer + fill-labs.dependi + usernamehw.errorlens + bierner.docs-view + stkb.rewrap + ms-vscode.live-server + vadimcn.vscode-lldb + batisteo.vscode-django + vitaliymaz.vscode-svg-previewer + ] + ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "goto-alias"; + publisher = "antfu"; + version = "0.2.1"; + hash = "sha256-BJBJVG/zW2BW6K0UqQ4EE12VVIxW3g+z5CecZXRPIrM="; + } + { + name = "vite"; + publisher = "antfu"; + version = "0.2.5"; + hash = "sha256-F3uaqoaLXLE7M8OPzNIIUSraTBeRMwtjxrbgQyMIyZE="; + } + { + name = "django-html"; + publisher = "bibhasdn"; + version = "1.3.0"; + hash = "sha256-7xVJVcjmwl6917lqkTa0KFwMLkAvHkNT2wVML14gVCk="; + } + { + name = "one-dark-pro-monokai-darker"; + publisher = "eserozvataf"; + version = "1.1.0"; + hash = "sha256-jUjBiy0CD7jw2WBMvM3h8bEC2ySEuj7532dC3v9lpyI="; + } + { + name = "bootstrap-intellisense"; + publisher = "hossaini"; + version = "3.0.2"; + hash = "sha256-stZfbh42HncdRzFZ9ShumZ9Tuery9RF9c8rk3TD3P2g="; + } + { + name = "tab-indent-space-align"; + publisher = "j-zeppenfeld"; + version = "0.0.3"; + hash = "sha256-+WEdYJOVWW7YumfzLkvZmrnpUiC85oLsG1BKMwL1NHc="; + } + { + name = "bun-lockb"; + publisher = "jaaxxx"; + version = "0.0.7"; + hash = "sha256-CkdH/luVTFycRn4Td6ovFnEQep+tVEIXsyUjhfJwfN4="; + } + { + name = "search-node-modules"; + publisher = "jasonnutter"; + version = "1.3.0"; + hash = "sha256-X2CkCVF46McnXDlASlRHKixlAzR+hU4ys8A8JsbpfYI="; + } + { + name = "polacode-2019"; + publisher = "jeff-hykin"; + version = "0.6.1"; + hash = "sha256-SbfsD28gaVHAmJskUuc1Q8kA47jrVa3OO5Ur7ULk3jI="; + } + { + name = "vsc-python-indent"; + publisher = "kevinrose"; + version = "1.21.0"; + hash = "sha256-SvJhVG8sofzV0PebZG4IIORX3AcfmErDQ00tRF9fk/4="; + } + { + name = "json-to-ts"; + publisher = "mariusalchimavicius"; + version = "1.8.0"; + hash = "sha256-WoSycVtUAkVXv7BDuh+jFbnaU1IdVLvVjOYuIuUp79M="; + } + { + name = "inline-fold-new"; + publisher = "ctf0"; + version = "0.0.2"; + hash = "sha256-DpXTBYN1Ohh3ZvvpUtas0G99fZcimsp1NL7mpIC07yk="; + } + { + name = "mdc"; + publisher = "nuxt"; + version = "0.3.1"; + hash = "sha256-YJ+7gzDjA8kzxBwGLpEmfx0erJdgAntWc2OrK2zp9DM="; + } + { + name = "nuxtr-vscode"; + publisher = "nuxtr"; + version = "0.2.16"; + hash = "sha256-DVoq8zdlJ2ch8PCG34f1PRkILym9XdclUHQ9s2B5OME="; + } + { + name = "bun-vscode"; + publisher = "oven"; + version = "0.0.28"; + hash = "sha256-WlGqqKbfrV0gqCCdVo/UFF+Gnxhq0TNJ4LuHwFaFYXA="; + } + { + name = "csv-to-table"; + publisher = "phplasma"; + version = "1.4.1"; + hash = "sha256-npe7cQ4lAZr8HCyQSJmVsCDUJcOhGhL6y1QtUtqUY50="; + } + { + name = "nuxt-snippets"; + publisher = "praburangki"; + version = "1.8.0"; + hash = "sha256-qrWrrDO/Ie/mdygw18C0mrPzNQzZLsd+fapUyTVhc14="; + } + { + name = "bash-debug"; + publisher = "rogalmic"; + version = "0.3.9"; + hash = "sha256-f8FUZCvz/PonqQP9RCNbyQLZPnN5Oce0Eezm/hD19Fg="; + } + { + name = "vs-code-prettier-eslint"; + publisher = "rvest"; + version = "6.0.0"; + hash = "sha256-PogNeKhIlcGxUKrW5gHvFhNluUelWDGHCdg5K+xGXJY="; + } + { + name = "vscode-preview-docs"; + publisher = "selemondev"; + version = "0.1.7"; + hash = "sha256-Q9bEIb2m6cqHtdVjOaNivfYvbc5/VVdabM2NVTwBOFA="; + } + { + name = "autoimport"; + publisher = "steoates"; + version = "1.5.4"; + hash = "sha256-7iIwJJsoNbtTopc+BQ+195aSCLqdNAaGtMoxShyhBWY="; + } + { + name = "code-spell-checker-polish"; + publisher = "streetsidesoftware"; + version = "2.1.3"; + hash = "sha256-MZeTvK9dO4Kj6hK+afJPWGmnKBtlLrrnoqtUd5s2te0="; + } + { + name = "vscode-pets"; + publisher = "tonybaloney"; + version = "1.30.0"; + hash = "sha256-RxOA6xQ29JuB0NzEqMDkF9W1U+AsvgAOzGbtIUw0WyM="; + } + { + name = "explorer"; + publisher = "vitest"; + version = "1.17.0"; + hash = "sha256-7OePMFsWIyrPkAW/+SRiOoowluLMEszEjWmBsW0LPpc="; + } + { + name = "prettify-json"; + publisher = "mohsen1"; + version = "0.0.3"; + hash = "sha256-lvds+lFDzt1s6RikhrnAKJipRHU+Dk85ZO49d1sA8uo="; + } + { + name = "uv-toolkit"; + publisher = "the0807"; + version = "0.0.2"; + hash = "sha256-OXHUwynWm4RqJYjcv5qXt5DyjFDxtNjZFNpnd22gUgg="; + } + { + name = "kylin-python"; + publisher = "kylinideteam"; + version = "0.4.2"; + hash = "sha256-LhOsIvECrxLCnRjUVffS4G4fFsdP70iP/twoNoto354="; + } + { + name = "rust-flash-snippets"; + publisher = "lorenzopirro"; + version = "3.1.1"; + hash = "sha256-L8x/OqbrsKDmyphzV3CDpoZ27rTnPS0U1YGv9KakW+U="; + } + { + name = "rustowl-vscode"; + publisher = "cordx56"; + version = "0.3.4"; + hash = "sha256-sM4CxQfdtDkZg5B7gxw66k7ZpIfHQFORIukHRpg0+S8="; + } + { + name = "vscode-coverage-gutters"; + publisher = "ryanluker"; + version = "2.13.0"; + hash = "sha256-qgPKGikqNIeZkKfd0P0keAdxRl9XNzvEJKQy58eaUZk="; + } + { + name = "vscode-change-case"; + publisher = "hjdarnel"; + version = "1.4.0"; + hash = "sha256-6LS4MrG16054DQkPmr7BQJeekpEtcL2NtRe0Ckfq2w4="; + } + { + name = "vscode-bevy-inspector"; + publisher = "splo"; + version = "0.3.0"; + hash = "sha256-f0FAgQ0wm3FYPz5qpMHWHnTf3un0xw+5gcyBG7PYM2E="; + } + ]; + userSettings = { + "editor.foldingImportsByDefault" = true; + "editor.fontFamily" = "FiraCode Nerd Font"; + "editor.formatOnPaste" = true; + "editor.formatOnSave" = true; + "editor.guides.bracketPairs" = false; + "editor.guides.indentation" = false; + "editor.inlayHints.enabled" = "off"; + "editor.inlineSuggest.showToolbar" = "always"; + "editor.largeFileOptimizations" = false; + "editor.minimap.enabled" = false; + "editor.quickSuggestions" = { + "strings" = "on"; + }; + "editor.suggestFontSize" = 16; + "editor.suggestLineHeight" = 30; + "editor.tabSize" = 2; + "editor.unicodeHighlight.ambiguousCharacters" = false; + "editor.unicodeHighlight.invisibleCharacters" = false; + "editor.wordWrap" = "off"; + # Workbench settings + "workbench.colorCustomizations" = { + "editor.lineHighlightBackground" = "#1073cf2d"; + "editor.lineHighlightBorder" = "#9fced11f"; + }; + "workbench.colorTheme" = "One Dark Pro Monokai Darker"; + "workbench.iconTheme" = "vscode-icons"; + "workbench.startupEditor" = "none"; + # Terminal settings + "terminal.integrated.fontFamily" = "FiraCode Nerd Fonts Mono"; + # Git settings + "git.confirmSync" = false; + "git.enableSmartCommit" = true; + # Explorer settings + "explorer.confirmDelete" = false; + "explorer.confirmDragAndDrop" = false; + # Diff editor settings + "diffEditor.ignoreTrimWhitespace" = false; + "diffEditor.wordWrap" = "off"; + # Zen mode settings + "zenMode.centerLayout" = false; + "zenMode.hideActivityBar" = false; + "zenMode.hideLineNumbers" = false; + # Language specific settings + "[typescript]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "[vue]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "[jsonc]" = { + "editor.defaultFormatter" = "vscode.json-language-features"; + }; + "[json]" = { + "editor.defaultFormatter" = "vscode.json-language-features"; + }; + "[python]" = { + "editor.tabSize" = 4; + }; + # File associations + "files.associations" = { + "*.html" = "html"; + "*.txt" = "plaintext"; + }; + # JavaScript/TypeScript settings + "javascript.updateImportsOnFileMove.enabled" = "always"; + "typescript.updateImportsOnFileMove.enabled" = "always"; + # Python settings + "python.linting.pylintEnabled" = false; + "python.linting.flake8Enabled" = true; + "python.linting.flake8Args" = [ + "--line-width=119" + "--ignore=T000;E501;E265;E266;N802;D;Q;W504" + "--exclude=migrations;mocks" + ]; + "python.linting.enabled" = true; + "python.formatting.provider" = "yapf"; + "python.formatting.yapfArgs" = [ + "--style={based_on_style = pep8; column_limit = 119; dedent_closing_brackets = true; split_before_first_argument = true; coalesce_brackets = false; split_before_dict_set_generator = false; allow_split_before_dict_value = false; split_all_comma_separated_values = false; split_before_arithmetic_operator = false; split_before_logical_operator = false; split_before_named_assigns = false}" + ]; + "python.languageServer" = "Jedi"; + "python.jediMemoryLimit" = 1024; + "python.jedi.hover.enable" = true; + "python.jedi.hover.detailed" = false; + "python.jedi.hover.signature" = true; + "python.analysis.completeFunctionParens" = true; + "editor.hover.enabled" = true; + # Vue settings + "vue.codeActions.enabled" = false; + "vue.format.script.initialIndent" = true; + "vue.format.style.initialIndent" = true; + "vue.splitEditors.icon" = true; + "vue.splitEditors.layout.left" = [ + "script" + "scriptSetup" + ]; + "vue.splitEditors.layout.right" = [ + "template" + "customBlocks" + "style" + ]; + "vetur.ignoreProjectWarning" = true; + "vetur.languageFeatures.codeActions" = false; + "vetur.useWorkspaceDependencies" = true; + "prettier.vueIndentScriptAndStyle" = true; + # // Nuxt settings + "nuxtr.defaultPackageManager" = "Bun"; + "nuxtr.monorepoMode.DirectoryName" = ""; + "nuxtr.openItemsAfterCreation" = true; + "nuxtr.piniaFiles.defaultTemplate" = "setup"; + "nuxtr.vueFiles.firstTag" = "script"; + "nuxtr.vueFiles.style.defaultLanguage" = "postcss"; + # CSS/Tailwind settings + "tailwindCSS.emmetCompletions" = true; + # Syntax highlighting and appearance + "indentRainbow.colorOnWhiteSpaceOnly" = true; + "indentRainbow.indicatorStyle" = "light"; + "indentRainbow.lightIndicatorStyleLineWidth" = 4; + # Spelling and language + "cSpell.language" = "en;pl"; + "cSpell.userWords" = [ + "garand" + "Garand's" + "garandplg" + "garands" + "lockb" + "Shadcn" + "Vite" + ]; + # Navigation and intellisense + "editor.gotoLocation.multipleDefinitions" = "goto"; + "path-intellisense.extensionOnImport" = true; + # Markdown settings + "markdown-preview-enhanced.previewTheme" = "one-dark.css"; + # Extension specific settings + "supermaven.allowGitignore" = true; + "supermaven.enable" = { + "*" = true; + }; + "continue.enableTabAutocomplete" = false; + "continue.showInlineTip" = false; + "continue.telemetryEnabled" = false; + "hediet.vscode-drawio.resizeImages" = null; + "todo-tree.highlights.useColourScheme" = true; + "vite.autoStart" = false; + # Security and trust + "security.workspace.trust.untrustedFiles" = "open"; + # Remote development + "remote.autoForwardPortsSource" = "hybrid"; + "[plaintext]" = { + "editor.unicodeHighlight.ambiguousCharacters" = false; + "editor.unicodeHighlight.invisibleCharacters" = false; + }; + "python.diagnostics.sourceMapsEnabled" = true; + "vsintellicode.modify.editor.suggestSelection" = "automaticallyOverrodeDefaultValue"; + "githubLocalActions.workflowsDirectory" = ".gitea/workflows"; + "errorLens.excludeBySource" = [ + "cSpell" + ]; + }; + keybindings = [ + { + "key" = "tab"; + "command" = "-editor.emmet.action.expandAbbreviation"; + "when" = + "config.emmet.triggerExpansionOnTab && editorTextFocus && !editorReadonly && !editorTabMovesFocus"; + } + { + "key" = "tab"; + "command" = "-editor.action.inlineSuggest.jump"; + "when" = + "inlineEditIsVisible && tabShouldJumpToInlineEdit && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible"; + } + { + "key" = "tab"; + "command" = "-Alignment Preserving Indent"; + "when" = + "editorTextFocus && !editorReadOnly && !editorTabMovesFocus && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion != 'on'"; + } + { + "key" = "tab"; + "command" = "-Alignment Preserving Indent"; + "when" = + "editorTextFocus && !editorReadOnly && !editorTabMovesFocus && !hasOtherSuggestions && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'"; + } ]; - # userSettings = { - # "chat.editor.fontFamily" = "JetBrains Mono"; - # "chat.editor.fontSize" = 20.0; - # "debug.console.fontFamily" = "JetBrains Mono"; - # "debug.console.fontSize" = 20.0; - # "editor.fontFamily" = "JetBrains Mono"; - # "editor.fontSize" = 20.0; - # "editor.inlayHints.fontFamily" = "JetBrains Mono"; - # "editor.inlineSuggest.fontFamily" = "JetBrains Mono"; - # "editor.minimap.sectionHeaderFontSize" = 12.857142857142858; - # "markdown.preview.fontFamily" = "Montserrat"; - # "markdown.preview.fontSize" = 20.0; - # "scm.inputFontFamily" = "JetBrains Mono"; - # "scm.inputFontSize" = 18.571428571428573; - # "screencastMode.fontSize" = 80.0; - # "terminal.integrated.fontSize" = 20.0; - # "workbench.colorTheme" = "One Dark Pro Monokai Darker"; - # }; }; }; }; diff --git a/modules/home/waybar/waybar-curved.nix b/modules/home/waybar/waybar-curved.nix index 09a07e3..3fe6586 100644 --- a/modules/home/waybar/waybar-curved.nix +++ b/modules/home/waybar/waybar-curved.nix @@ -1,14 +1,16 @@ -{ pkgs -, lib -, host -, config -, ... +{ + pkgs, + lib, + host, + config, + ... }: let betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; inherit (import ../../../hosts/${host}/variables.nix) clock24h; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -46,10 +48,7 @@ with lib; { on-scroll-down = "hyprctl dispatch workspace e-1"; }; "clock" = { - format = - if clock24h == true - then '' {:L%H:%M}'' - else '' {:L%I:%M %p}''; + format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; }; diff --git a/modules/home/waybar/waybar-ddubs-2.nix b/modules/home/waybar/waybar-ddubs-2.nix index cbd62fe..35a9a38 100644 --- a/modules/home/waybar/waybar-ddubs-2.nix +++ b/modules/home/waybar/waybar-ddubs-2.nix @@ -1,7 +1,8 @@ -{ pkgs -, config -, lib -, ... +{ + pkgs, + config, + lib, + ... }: let terminal = "kitty"; @@ -20,7 +21,8 @@ let base0E = "D2A6FF"; base0F = "E6B673"; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -30,9 +32,20 @@ with lib; { layer = "top"; position = "top"; - modules-left = [ "custom/startmenu" "tray" "hyprland/window" ]; + modules-left = [ + "custom/startmenu" + "tray" + "hyprland/window" + ]; modules-center = [ "hyprland/workspaces" ]; - modules-right = [ "idle_inhibitor" "custom/notification" "pulseaudio" "battery" "clock" "custom/exit" ]; + modules-right = [ + "idle_inhibitor" + "custom/notification" + "pulseaudio" + "battery" + "clock" + "custom/exit" + ]; "hyprland/workspaces" = { format = "{name}"; @@ -46,9 +59,7 @@ with lib; { }; "clock" = { format = '' {:%H:%M}''; - /* - ''{: %I:%M %p}''; - */ + # ''{: %I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }{calendar}"; }; @@ -71,11 +82,17 @@ with lib; { "disk" = { format = " {free}"; tooltip = true; - # Not working with zaneyos window open then closes + # Not working with garandos window open then closes #on-click = "${terminal} -e sh -c df -h ; read"; }; "network" = { - format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ]; + format-icons = [ + "󰤯" + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; format-ethernet = " {bandwidthDownBits}"; format-wifi = " {bandwidthDownBits}"; format-disconnected = "󰤮"; @@ -99,7 +116,11 @@ with lib; { phone = ""; portable = ""; car = ""; - default = [ "" "" "" ]; + default = [ + "" + "" + "" + ]; }; on-click = "pavucontrol"; }; @@ -149,7 +170,18 @@ with lib; { format = "{icon} {capacity}%"; format-charging = "󰂄 {capacity}%"; format-plugged = "󱘖 {capacity}%"; - format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; + format-icons = [ + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; on-click = ""; tooltip = false; }; diff --git a/modules/home/waybar/waybar-ddubs.nix b/modules/home/waybar/waybar-ddubs.nix index 094babe..cdeddfa 100644 --- a/modules/home/waybar/waybar-ddubs.nix +++ b/modules/home/waybar/waybar-ddubs.nix @@ -1,14 +1,16 @@ -{ pkgs -, lib -, host -, config -, ... +{ + pkgs, + lib, + host, + config, + ... }: let betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; inherit (import ../../../hosts/${host}/variables.nix) clock24h; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -46,10 +48,7 @@ with lib; { on-scroll-down = "hyprctl dispatch workspace e-1"; }; "clock" = { - format = - if clock24h == true - then '' {:L%H:%M}'' - else '' {:L%I:%M %p}''; + format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; }; diff --git a/modules/home/waybar/waybar-dwm-2.nix b/modules/home/waybar/waybar-dwm-2.nix index 862f609..0e0856a 100644 --- a/modules/home/waybar/waybar-dwm-2.nix +++ b/modules/home/waybar/waybar-dwm-2.nix @@ -2,17 +2,30 @@ config, pkgs, ... -}: { - home.packages = with pkgs; [waybar]; +}: +{ + home.packages = with pkgs; [ waybar ]; programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; - "modules-left" = ["hyprland/workspaces" "temperature" "hyprland/window"]; - "modules-center" = ["custom/spacer"]; - "modules-right" = ["tray" "cpu" "memory" "idle_inhibitor" "clock" "pulseaudio" "bluetooth"]; + "modules-left" = [ + "hyprland/workspaces" + "temperature" + "hyprland/window" + ]; + "modules-center" = [ "custom/spacer" ]; + "modules-right" = [ + "tray" + "cpu" + "memory" + "idle_inhibitor" + "clock" + "pulseaudio" + "bluetooth" + ]; "hyprland/window" = { format = "{title}"; "max-length" = 333; @@ -103,7 +116,11 @@ headphone = ""; phone = ""; portable = ""; - default = ["" "" ""]; + default = [ + "" + "" + "" + ]; }; "on-click-left" = "pavucontrol"; input = true; @@ -149,7 +166,7 @@ "tooltip-format" = "{title}"; "on-click" = "activate"; "on-click-middle" = "close"; - "ignore-list" = ["Alacritty"]; + "ignore-list" = [ "Alacritty" ]; "app_ids-mapping" = { firefoxdeveloperedition = "firefox-developer-edition"; }; @@ -477,4 +494,3 @@ ''; }; } - diff --git a/modules/home/waybar/waybar-dwm.nix b/modules/home/waybar/waybar-dwm.nix index c914bb1..5714970 100644 --- a/modules/home/waybar/waybar-dwm.nix +++ b/modules/home/waybar/waybar-dwm.nix @@ -2,17 +2,28 @@ config, pkgs, ... -}: { - home.packages = with pkgs; [waybar]; +}: +{ + home.packages = with pkgs; [ waybar ]; programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; - "modules-left" = ["hyprland/workspaces" "hyprland/window"]; - "modules-center" = ["clock"]; - "modules-right" = ["tray" "cpu" "memory" "idle_inhibitor" "pulseaudio" "bluetooth"]; + "modules-left" = [ + "hyprland/workspaces" + "hyprland/window" + ]; + "modules-center" = [ "clock" ]; + "modules-right" = [ + "tray" + "cpu" + "memory" + "idle_inhibitor" + "pulseaudio" + "bluetooth" + ]; "hyprland/window" = { format = "{title}"; "max-length" = 333; @@ -103,7 +114,11 @@ headphone = ""; phone = ""; portable = ""; - default = ["" "" ""]; + default = [ + "" + "" + "" + ]; }; "on-click-left" = "pavucontrol"; input = true; @@ -149,7 +164,7 @@ "tooltip-format" = "{title}"; "on-click" = "activate"; "on-click-middle" = "close"; - "ignore-list" = ["Alacritty"]; + "ignore-list" = [ "Alacritty" ]; "app_ids-mapping" = { firefoxdeveloperedition = "firefox-developer-edition"; }; diff --git a/modules/home/waybar/waybar-jerry.nix b/modules/home/waybar/waybar-jerry.nix index 96e3c1f..982c00b 100644 --- a/modules/home/waybar/waybar-jerry.nix +++ b/modules/home/waybar/waybar-jerry.nix @@ -1,7 +1,8 @@ -{ pkgs -, config -, lib -, ... +{ + pkgs, + config, + lib, + ... }: let terminal = "kitty"; @@ -20,7 +21,8 @@ let base0E = "D2A6FF"; base0F = "E6B673"; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -30,9 +32,26 @@ with lib; { layer = "top"; position = "top"; - modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ]; # Eterna: [ "hyprland/window" ] - modules-left = [ "custom/startmenu" "hyprland/window" ]; # Eternal: [ "hyprland/workspaces" "cpu" "memory" "network" ] - modules-right = [ "tray" "idle_inhibitor" "custom/notification" "battery" "custom/exit" ]; # Eternal: [ "idle_inhibitor" "pulseaudio" "clock" "custom/notification" "tray" ] + modules-center = [ + "network" + "pulseaudio" + "cpu" + "hyprland/workspaces" + "memory" + "disk" + "clock" + ]; # Eterna: [ "hyprland/window" ] + modules-left = [ + "custom/startmenu" + "hyprland/window" + ]; # Eternal: [ "hyprland/workspaces" "cpu" "memory" "network" ] + modules-right = [ + "tray" + "idle_inhibitor" + "custom/notification" + "battery" + "custom/exit" + ]; # Eternal: [ "idle_inhibitor" "pulseaudio" "clock" "custom/notification" "tray" ] "hyprland/workspaces" = { format = "{name}"; @@ -46,9 +65,7 @@ with lib; { }; "clock" = { format = '' {:%H:%M}''; - /* - ''{: %I:%M %p}''; - */ + # ''{: %I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }{calendar}"; }; @@ -71,11 +88,17 @@ with lib; { "disk" = { format = " {free}"; tooltip = true; - # Not working with zaneyos window open then closes + # Not working with garandos window open then closes #on-click = "${terminal} -e sh -c df -h ; read"; }; "network" = { - format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ]; + format-icons = [ + "󰤯" + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; format-ethernet = " {bandwidthDownBits}"; format-wifi = " {bandwidthDownBits}"; format-disconnected = "󰤮"; @@ -99,7 +122,11 @@ with lib; { phone = ""; portable = ""; car = ""; - default = [ "" "" "" ]; + default = [ + "" + "" + "" + ]; }; on-click = "pavucontrol"; }; @@ -149,7 +176,18 @@ with lib; { format = "{icon} {capacity}%"; format-charging = "󰂄 {capacity}%"; format-plugged = "󱘖 {capacity}%"; - format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; + format-icons = [ + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; on-click = ""; tooltip = false; }; diff --git a/modules/home/waybar/waybar-nekodyke.nix b/modules/home/waybar/waybar-nekodyke.nix index 5df5cdc..92618e7 100755 --- a/modules/home/waybar/waybar-nekodyke.nix +++ b/modules/home/waybar/waybar-nekodyke.nix @@ -1,14 +1,16 @@ -{ pkgs -, lib -, host -, config -, ... +{ + pkgs, + lib, + host, + config, + ... }: let betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)"; inherit (import ../../../hosts/${host}/variables.nix) clock24h; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -58,10 +60,7 @@ with lib; { format = " {temperatureC}°C "; }; "clock" = { - format = - if clock24h == true - then '' {:L%H:%M}'' - else '' {:L%I:%M %p}''; + format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; }; diff --git a/modules/home/waybar/waybar-simple.nix b/modules/home/waybar/waybar-simple.nix index 9ffb056..ad0e525 100644 --- a/modules/home/waybar/waybar-simple.nix +++ b/modules/home/waybar/waybar-simple.nix @@ -1,13 +1,15 @@ -{ pkgs -, lib -, host -, config -, ... +{ + pkgs, + lib, + host, + config, + ... }: let inherit (import ../../../hosts/${host}/variables.nix) clock24h; in -with lib; { +with lib; +{ # Configure & Theme Waybar programs.waybar = { enable = true; @@ -52,10 +54,7 @@ with lib; { on-scroll-down = "hyprctl dispatch workspace e-1"; }; "clock" = { - format = - if clock24h == true - then '' {:L%H:%M}'' - else '' {:L%I:%M %p}''; + format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}''; tooltip = true; tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; }; diff --git a/modules/home/wezterm.nix b/modules/home/wezterm.nix deleted file mode 100644 index d939ca0..0000000 --- a/modules/home/wezterm.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ pkgs, ... }: { - programs.wezterm = { - enable = true; - package = pkgs.wezterm; - }; - home.file."./.config/wezterm/wezterm.lua".text = '' - -- Config from Drew @justaguylinux small mods - - local wezterm = require("wezterm") - - local config = wezterm.config_builder() - - config.enable_wayland = false - - -- General appearance and visuals - config.colors = { - tab_bar = { - background = "#00141d", -- col_gray1, your main DWM bar background - - active_tab = { - bg_color = "#80bfff", -- col_gray2 (selected tab in bright blue) - fg_color = "#00141d", -- contrast text on active tab - }, - - inactive_tab = { - bg_color = "#1a1a1a", -- col_gray4 (dark background for inactive tabs) - fg_color = "#FFFFFF", -- col_gray3 (white text on inactive tabs) - }, - - new_tab = { - bg_color = "#1a1a1a", -- same as inactive - fg_color = "#4fc3f7", -- col_barbie (for the "+" button) - }, - }, - } - - config.window_background_opacity = 0.90 - config.color_scheme = "nightfox" - config.font_size = 12 - config.font = wezterm.font("FiraCode", { weight = "Regular", italic = false }) - - config.window_padding = { - left = 10, - right = 10, - top = 10, - bottom = 10, - } - - config.use_fancy_tab_bar = true - config.window_frame = { - -- font = wezterm.font({ family = "FiraCode Nerd Font Mono", weight = "Regular" }), - font = wezterm.font({ family = "JetBrainsMono Nerd Font Mono", weight = "Regular" }), - } - - config.default_cursor_style = "BlinkingUnderline" - config.cursor_blink_rate = 500 - config.term = "xterm-256color" - config.max_fps = 144 - config.animation_fps = 30 - - -- Keybindings using ALT for tabs & splits - config.keys = { - -- Tab management - { key = "t", mods = "ALT", action = wezterm.action.SpawnTab("CurrentPaneDomain") }, - { key = "w", mods = "ALT", action = wezterm.action.CloseCurrentTab({ confirm = false }) }, - { key = "n", mods = "ALT", action = wezterm.action.ActivateTabRelative(1) }, - { key = "p", mods = "ALT", action = wezterm.action.ActivateTabRelative(-1) }, - - -- Pane management - { key = "v", mods = "ALT", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) }, - { key = "h", mods = "ALT", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) }, - { key = "q", mods = "ALT", action = wezterm.action.CloseCurrentPane({ confirm = false }) }, - - -- Pane navigation (move between panes with ALT + Arrows) - { key = "LeftArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Left") }, - { key = "RightArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Right") }, - { key = "UpArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Up") }, - { key = "DownArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Down") }, - } - return config - ''; -} diff --git a/modules/home/xdg.nix b/modules/home/xdg.nix index b485c29..8eba814 100644 --- a/modules/home/xdg.nix +++ b/modules/home/xdg.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ xdg = { enable = true; mime.enable = true; diff --git a/modules/home/yazi/default.nix b/modules/home/yazi/default.nix deleted file mode 100644 index 2b758e2..0000000 --- a/modules/home/yazi/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ pkgs, ... }: -let - settings = import ./yazi.nix; - keymap = import ./keymap.nix; - theme = import ./theme.nix; -in -{ - programs.yazi = { - enable = true; - enableZshIntegration = true; - enableBashIntegration = true; - enableFishIntegration = true; - shellWrapperName = "yy"; - settings = settings; - keymap = keymap; - theme = theme; - plugins = { - lazygit = pkgs.yaziPlugins.lazygit; - full-border = pkgs.yaziPlugins.full-border; - git = pkgs.yaziPlugins.git; - smart-enter = pkgs.yaziPlugins.smart-enter; - }; - - initLua = '' - require("full-border"):setup() - require("git"):setup() - require("smart-enter"):setup { - open_multi = true, - } - ''; - }; -} diff --git a/modules/home/yazi/keymap.nix b/modules/home/yazi/keymap.nix deleted file mode 100644 index d4e4267..0000000 --- a/modules/home/yazi/keymap.nix +++ /dev/null @@ -1,1201 +0,0 @@ -{ - mgr = { - keymap = [ - { - on = ""; - run = "escape"; - desc = "Exit visual mode, clear selected, or cancel search"; - } - { - on = ""; - run = "escape"; - desc = "Exit visual mode, clear selected, or cancel search"; - } - { - on = "q"; - run = "quit"; - desc = "Quit the process"; - } - { - on = "Q"; - run = "quit --no-cwd-file"; - desc = "Quit the process without outputting cwd-file"; - } - { - on = ""; - run = "close"; - desc = "Close the current tab, or quit if it's last"; - } - { - on = ""; - run = "suspend"; - desc = "Suspend the process"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -50%"; - desc = "Move cursor up half page"; - } - { - on = ""; - run = "arrow 50%"; - desc = "Move cursor down half page"; - } - { - on = ""; - run = "arrow -100%"; - desc = "Move cursor up one page"; - } - { - on = ""; - run = "arrow 100%"; - desc = "Move cursor down one page"; - } - { - on = ""; - run = "arrow -50%"; - desc = "Move cursor up half page"; - } - { - on = ""; - run = "arrow 50%"; - desc = "Move cursor down half page"; - } - { - on = ""; - run = "arrow -100%"; - desc = "Move cursor up one page"; - } - { - on = ""; - run = "arrow 100%"; - desc = "Move cursor down one page"; - } - { - on = [ "g" "g" ]; - run = "arrow top"; - desc = "Move cursor to the top"; - } - { - on = "G"; - run = "arrow bot"; - desc = "Move cursor to the bottom"; - } - { - on = "h"; - run = "leave"; - desc = "Go back to the parent directory"; - } - { - on = "l"; - run = "enter"; - desc = "Enter the child directory"; - } - { - on = ""; - run = "leave"; - desc = "Go back to the parent directory"; - } - { - on = ""; - run = "enter"; - desc = "Enter the child directory"; - } - { - on = "H"; - run = "back"; - desc = "Go back to the previous directory"; - } - { - on = "L"; - run = "forward"; - desc = "Go forward to the next directory"; - } - { - on = ""; - run = [ "toggle" "arrow 1" ]; - desc = "Toggle the current selection state"; - } - { - on = ""; - run = "toggle_all --state=on"; - desc = "Select all files"; - } - { - on = ""; - run = "toggle_all"; - desc = "Invert selection of all files"; - } - { - on = "v"; - run = "visual_mode"; - desc = "Enter visual mode (selection mode)"; - } - { - on = "V"; - run = "visual_mode --unset"; - desc = "Enter visual mode (unset mode)"; - } - { - on = "K"; - run = "seek -5"; - desc = "Seek up 5 units in the preview"; - } - { - on = "J"; - run = "seek 5"; - desc = "Seek down 5 units in the preview"; - } - { - on = ""; - run = "spot"; - desc = "Spot hovered file"; - } - { - on = "o"; - run = "open"; - desc = "Open selected files"; - } - { - on = "O"; - run = "open --interactive"; - desc = "Open selected files interactively"; - } - { - on = ""; - run = "open"; - desc = "Open selected files"; - } - { - on = ""; - run = "open --interactive"; - desc = "Open selected files interactively"; - } - { - on = "y"; - run = "yank"; - desc = "Yank selected files (copy)"; - } - { - on = "x"; - run = "yank --cut"; - desc = "Yank selected files (cut)"; - } - { - on = "p"; - run = "paste"; - desc = "Paste yanked files"; - } - { - on = "P"; - run = "paste --force"; - desc = "Paste yanked files (overwrite if the destination exists)"; - } - { - on = "-"; - run = "link"; - desc = "Symlink the absolute path of yanked files"; - } - { - on = "_"; - run = "link --relative"; - desc = "Symlink the relative path of yanked files"; - } - { - on = ""; - run = "hardlink"; - desc = "Hardlink yanked files"; - } - { - on = "Y"; - run = "unyank"; - desc = "Cancel the yank status"; - } - { - on = "X"; - run = "unyank"; - desc = "Cancel the yank status"; - } - { - on = "d"; - run = "remove"; - desc = "Trash selected files"; - } - { - on = "D"; - run = "remove --permanently"; - desc = "Permanently delete selected files"; - } - { - on = "a"; - run = "create"; - desc = "Create a file (ends with / for directories)"; - } - { - on = "r"; - run = "rename --cursor=before_ext"; - desc = "Rename selected file(s)"; - } - { - on = ";"; - run = "shell --interactive"; - desc = "Run a shell command"; - } - { - on = ":"; - run = "shell --block --interactive"; - desc = "Run a shell command (block until finishes)"; - } - { - on = "."; - run = "hidden toggle"; - desc = "Toggle the visibility of hidden files"; - } - { - on = "s"; - run = "search --via=fd"; - desc = "Search files by name via fd"; - } - { - on = "S"; - run = "search --via=rg"; - desc = "Search files by content via ripgrep"; - } - { - on = ""; - run = "escape --search"; - desc = "Cancel the ongoing search"; - } - { - on = "z"; - run = "plugin zoxide"; - desc = "Jump to a directory via zoxide"; - } - { - on = "Z"; - run = "plugin fzf"; - desc = "Jump to a file/directory via fzf"; - } - { - on = [ "m" "s" ]; - run = "linemode size"; - desc = "Linemode: size"; - } - { - on = [ "m" "p" ]; - run = "linemode permissions"; - desc = "Linemode: permissions"; - } - { - on = [ "m" "b" ]; - run = "linemode btime"; - desc = "Linemode: btime"; - } - { - on = [ "m" "m" ]; - run = "linemode mtime"; - desc = "Linemode: mtime"; - } - { - on = [ "m" "o" ]; - run = "linemode owner"; - desc = "Linemode: owner"; - } - { - on = [ "m" "n" ]; - run = "linemode none"; - desc = "Linemode: none"; - } - { - on = [ "c" "c" ]; - run = "copy path"; - desc = "Copy the file path"; - } - { - on = [ "c" "d" ]; - run = "copy dirname"; - desc = "Copy the directory path"; - } - { - on = [ "c" "f" ]; - run = "copy filename"; - desc = "Copy the filename"; - } - { - on = [ "c" "n" ]; - run = "copy name_without_ext"; - desc = "Copy the filename without extension"; - } - { - on = "f"; - run = "filter --smart"; - desc = "Filter files"; - } - { - on = "/"; - run = "find --smart"; - desc = "Find next file"; - } - { - on = "?"; - run = "find --previous --smart"; - desc = "Find previous file"; - } - { - on = "n"; - run = "find_arrow"; - desc = "Goto the next found"; - } - { - on = "N"; - run = "find_arrow --previous"; - desc = "Goto the previous found"; - } - { - on = [ "," "m" ]; - run = [ "sort mtime --reverse=no" "linemode mtime" ]; - desc = "Sort by modified time"; - } - { - on = [ "," "M" ]; - run = [ "sort mtime --reverse" "linemode mtime" ]; - desc = "Sort by modified time (reverse)"; - } - { - on = [ "," "b" ]; - run = [ "sort btime --reverse=no" "linemode btime" ]; - desc = "Sort by birth time"; - } - { - on = [ "," "B" ]; - run = [ "sort btime --reverse" "linemode btime" ]; - desc = "Sort by birth time (reverse)"; - } - { - on = [ "," "e" ]; - run = "sort extension --reverse=no"; - desc = "Sort by extension"; - } - { - on = [ "," "E" ]; - run = "sort extension --reverse"; - desc = "Sort by extension (reverse)"; - } - { - on = [ "," "a" ]; - run = "sort alphabetical --reverse=no"; - desc = "Sort alphabetically"; - } - { - on = [ "," "A" ]; - run = "sort alphabetical --reverse"; - desc = "Sort alphabetically (reverse)"; - } - { - on = [ "," "n" ]; - run = "sort natural --reverse=no"; - desc = "Sort naturally"; - } - { - on = [ "," "N" ]; - run = "sort natural --reverse"; - desc = "Sort naturally (reverse)"; - } - { - on = [ "," "s" ]; - run = [ "sort size --reverse=no" "linemode size" ]; - desc = "Sort by size"; - } - { - on = [ "," "S" ]; - run = [ "sort size --reverse" "linemode size" ]; - desc = "Sort by size (reverse)"; - } - { - on = [ "," "r" ]; - run = "sort random --reverse=no"; - desc = "Sort randomly"; - } - { - on = [ "g" "h" ]; - run = "cd ~"; - desc = "Go home"; - } - { - on = [ "g" "c" ]; - run = "cd ~/.config"; - desc = "Goto ~/.config"; - } - { - on = [ "g" "d" ]; - run = "cd ~/Downloads"; - desc = "Goto ~/Downloads"; - } - { - on = [ "g" "" ]; - run = "cd --interactive"; - desc = "Jump interactively"; - } - { - on = "t"; - run = "tab_create --current"; - desc = "Create a new tab with CWD"; - } - { - on = "1"; - run = "tab_switch 0"; - desc = "Switch to the first tab"; - } - { - on = "2"; - run = "tab_switch 1"; - desc = "Switch to the second tab"; - } - { - on = "3"; - run = "tab_switch 2"; - desc = "Switch to the third tab"; - } - { - on = "4"; - run = "tab_switch 3"; - desc = "Switch to the fourth tab"; - } - { - on = "5"; - run = "tab_switch 4"; - desc = "Switch to the fifth tab"; - } - { - on = "6"; - run = "tab_switch 5"; - desc = "Switch to the sixth tab"; - } - { - on = "7"; - run = "tab_switch 6"; - desc = "Switch to the seventh tab"; - } - { - on = "8"; - run = "tab_switch 7"; - desc = "Switch to the eighth tab"; - } - { - on = "9"; - run = "tab_switch 8"; - desc = "Switch to the ninth tab"; - } - { - on = "["; - run = "tab_switch -1 --relative"; - desc = "Switch to the previous tab"; - } - { - on = "]"; - run = "tab_switch 1 --relative"; - desc = "Switch to the next tab"; - } - { - on = "{"; - run = "tab_swap -1"; - desc = "Swap current tab with previous tab"; - } - { - on = "}"; - run = "tab_swap 1"; - desc = "Swap current tab with next tab"; - } - { - on = "w"; - run = "tasks_show"; - desc = "Show task manager"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - prepend_keymap = [ - { - on = [ "g" "i" ]; - run = "plugin lazygit"; - desc = "run lazygit"; - } - { - on = "l"; - run = "plugin smart-enter"; - desc = "Enter the child directory, or open the file"; - } - ]; - }; - tasks = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Close task manager"; - } - { - on = ""; - run = "close"; - desc = "Close task manager"; - } - { - on = ""; - run = "close"; - desc = "Close task manager"; - } - { - on = "w"; - run = "close"; - desc = "Close task manager"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "inspect"; - desc = "Inspect the task"; - } - { - on = "x"; - run = "cancel"; - desc = "Cancel the task"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - spot = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Close the spot"; - } - { - on = ""; - run = "close"; - desc = "Close the spot"; - } - { - on = ""; - run = "close"; - desc = "Close the spot"; - } - { - on = ""; - run = "close"; - desc = "Close the spot"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = "h"; - run = "swipe -1"; - desc = "Swipe to the previous file"; - } - { - on = "l"; - run = "swipe 1"; - desc = "Swipe to the next file"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "swipe -1"; - desc = "Swipe to the next file"; - } - { - on = ""; - run = "swipe 1"; - desc = "Swipe to the previous file"; - } - { - on = [ "c" "c" ]; - run = "copy cell"; - desc = "Copy selected cell"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - pick = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Cancel pick"; - } - { - on = ""; - run = "close"; - desc = "Cancel pick"; - } - { - on = ""; - run = "close"; - desc = "Cancel pick"; - } - { - on = ""; - run = "close --submit"; - desc = "Submit the pick"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - input = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Cancel input"; - } - { - on = ""; - run = "close --submit"; - desc = "Submit input"; - } - { - on = ""; - run = "escape"; - desc = "Go back the normal mode, or cancel input"; - } - { - on = ""; - run = "escape"; - desc = "Go back the normal mode, or cancel input"; - } - { - on = "i"; - run = "insert"; - desc = "Enter insert mode"; - } - { - on = "I"; - run = [ "move first-char" "insert" ]; - desc = "Move to the BOL, and enter insert mode"; - } - { - on = "a"; - run = "insert --append"; - desc = "Enter append mode"; - } - { - on = "A"; - run = [ "move eol" "insert --append" ]; - desc = "Move to the EOL, and enter append mode"; - } - { - on = "v"; - run = "visual"; - desc = "Enter visual mode"; - } - { - on = "r"; - run = "replace"; - desc = "Replace a single character"; - } - { - on = "V"; - run = [ "move bol" "visual" "move eol" ]; - desc = "Select from BOL to EOL"; - } - { - on = ""; - run = [ "move eol" "visual" "move bol" ]; - desc = "Select from EOL to BOL"; - } - { - on = ""; - run = [ "move bol" "visual" "move eol" ]; - desc = "Select from BOL to EOL"; - } - { - on = "h"; - run = "move -1"; - desc = "Move back a character"; - } - { - on = "l"; - run = "move 1"; - desc = "Move forward a character"; - } - { - on = ""; - run = "move -1"; - desc = "Move back a character"; - } - { - on = ""; - run = "move 1"; - desc = "Move forward a character"; - } - { - on = ""; - run = "move -1"; - desc = "Move back a character"; - } - { - on = ""; - run = "move 1"; - desc = "Move forward a character"; - } - { - on = "b"; - run = "backward"; - desc = "Move back to the start of the current or previous word"; - } - { - on = "B"; - run = "backward --far"; - desc = "Move back to the start of the current or previous WORD"; - } - { - on = "w"; - run = "forward"; - desc = "Move forward to the start of the next word"; - } - { - on = "W"; - run = "forward --far"; - desc = "Move forward to the start of the next WORD"; - } - { - on = "e"; - run = "forward --end-of-word"; - desc = "Move forward to the end of the current or next word"; - } - { - on = "E"; - run = "forward --far --end-of-word"; - desc = "Move forward to the end of the current or next WORD"; - } - { - on = ""; - run = "backward"; - desc = "Move back to the start of the current or previous word"; - } - { - on = ""; - run = "forward --end-of-word"; - desc = "Move forward to the end of the current or next word"; - } - { - on = "0"; - run = "move bol"; - desc = "Move to the BOL"; - } - { - on = "$"; - run = "move eol"; - desc = "Move to the EOL"; - } - { - on = "_"; - run = "move first-char"; - desc = "Move to the first non-whitespace character"; - } - { - on = "^"; - run = "move first-char"; - desc = "Move to the first non-whitespace character"; - } - { - on = ""; - run = "move bol"; - desc = "Move to the BOL"; - } - { - on = ""; - run = "move eol"; - desc = "Move to the EOL"; - } - { - on = ""; - run = "move bol"; - desc = "Move to the BOL"; - } - { - on = ""; - run = "move eol"; - desc = "Move to the EOL"; - } - { - on = ""; - run = "backspace"; - desc = "Delete the character before the cursor"; - } - { - on = ""; - run = "backspace --under"; - desc = "Delete the character under the cursor"; - } - { - on = ""; - run = "backspace"; - desc = "Delete the character before the cursor"; - } - { - on = ""; - run = "backspace --under"; - desc = "Delete the character under the cursor"; - } - { - on = ""; - run = "kill bol"; - desc = "Kill backwards to the BOL"; - } - { - on = ""; - run = "kill eol"; - desc = "Kill forwards to the EOL"; - } - { - on = ""; - run = "kill backward"; - desc = "Kill backwards to the start of the current word"; - } - { - on = ""; - run = "kill forward"; - desc = "Kill forwards to the end of the current word"; - } - { - on = "d"; - run = "delete --cut"; - desc = "Cut the selected characters"; - } - { - on = "D"; - run = [ "delete --cut" "move eol" ]; - desc = "Cut until the EOL"; - } - { - on = "c"; - run = "delete --cut --insert"; - desc = "Cut the selected characters, and enter insert mode"; - } - { - on = "C"; - run = [ "delete --cut --insert" "move eol" ]; - desc = "Cut until the EOL, and enter insert mode"; - } - { - on = "x"; - run = [ "delete --cut" "move 1 --in-operating" ]; - desc = "Cut the current character"; - } - { - on = "y"; - run = "yank"; - desc = "Copy the selected characters"; - } - { - on = "p"; - run = "paste"; - desc = "Paste the copied characters after the cursor"; - } - { - on = "P"; - run = "paste --before"; - desc = "Paste the copied characters before the cursor"; - } - { - on = "u"; - run = "undo"; - desc = "Undo the last operation"; - } - { - on = ""; - run = "redo"; - desc = "Redo the last operation"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - confirm = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Cancel the confirm"; - } - { - on = ""; - run = "close"; - desc = "Cancel the confirm"; - } - { - on = ""; - run = "close"; - desc = "Cancel the confirm"; - } - { - on = ""; - run = "close --submit"; - desc = "Submit the confirm"; - } - { - on = "n"; - run = "close"; - desc = "Cancel the confirm"; - } - { - on = "y"; - run = "close --submit"; - desc = "Submit the confirm"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - cmp = { - keymap = [ - { - on = ""; - run = "close"; - desc = "Cancel completion"; - } - { - on = ""; - run = "close --submit"; - desc = "Submit the completion"; - } - { - on = ""; - run = [ "close --submit" "close_input --submit" ]; - desc = "Submit the completion and input"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = "~"; - run = "help"; - desc = "Open help"; - } - { - on = ""; - run = "help"; - desc = "Open help"; - } - ]; - }; - help = { - keymap = [ - { - on = ""; - run = "escape"; - desc = "Clear the filter, or hide the help"; - } - { - on = ""; - run = "escape"; - desc = "Clear the filter, or hide the help"; - } - { - on = ""; - run = "close"; - desc = "Hide the help"; - } - { - on = "k"; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = "j"; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = ""; - run = "arrow -1"; - desc = "Move cursor up"; - } - { - on = ""; - run = "arrow 1"; - desc = "Move cursor down"; - } - { - on = "f"; - run = "filter"; - desc = "Apply a filter for the help items"; - } - ]; - }; -} diff --git a/modules/home/yazi/theme.nix b/modules/home/yazi/theme.nix deleted file mode 100644 index 77bee22..0000000 --- a/modules/home/yazi/theme.nix +++ /dev/null @@ -1,3404 +0,0 @@ -{ - flavor = { - dark = ""; - light = ""; - }; - mgr = { - marker_marked = { - fg = "lightcyan"; - bg = "lightcyan"; - }; - tab_width = 1; - border_symbol = "│"; - }; - mode = { }; - status = { - overall = { bold = true; }; - sep_left = [ "░▒▓" "▓▒░" ]; - sep_right = [ "░▒▓" "▓▒░" ]; - }; - which = { - cols = 3; - separator = "  "; - }; - confirm = { - border = { fg = "gray"; }; - title = { - fg = "blue"; - bold = true; - }; - content = { }; - list = { }; - btn_yes = { - bg = "green"; - fg = "black"; - bold = true; - }; - btn_no = { - bg = "red"; - fg = "black"; - bold = true; - }; - btn_labels = [ " [Y]es " " (N)o " ]; - }; - spot = { - border = { fg = "blue"; }; - title = { fg = "blue"; }; - tbl_col = { fg = "blue"; }; - tbl_cell = { - fg = "yellow"; - reversed = true; - }; - }; - notify = { - title_info = { fg = "green"; }; - title_warn = { fg = "yellow"; }; - title_error = { fg = "red"; }; - icon_info = ""; - icon_warn = ""; - icon_error = ""; - }; - pick = { }; - input = { }; - cmp = { - active = { reversed = true; }; - inactive = { }; - icon_file = ""; - icon_folder = ""; - icon_command = ""; - }; - tasks = { }; - help = { }; - filetype = { }; - icon = { - globs = [ ]; - dirs = [ - { - name = ".config"; - text = ""; - } - { - name = ".git"; - text = ""; - } - { - name = ".github"; - text = ""; - } - { - name = ".npm"; - text = ""; - } - { - name = "Desktop"; - text = ""; - } - { - name = "Development"; - text = ""; - } - { - name = "Documents"; - text = ""; - } - { - name = "Downloads"; - text = ""; - } - { - name = "Library"; - text = ""; - } - { - name = "Movies"; - text = ""; - } - { - name = "Music"; - text = ""; - } - { - name = "Pictures"; - text = ""; - } - { - name = "Public"; - text = ""; - } - { - name = "Videos"; - text = ""; - } - ]; - files = [ - { - name = ".babelrc"; - text = ""; - fg = "#cbcb41"; - } - { - name = ".bash_profile"; - text = ""; - fg = "#89e051"; - } - { - name = ".bashrc"; - text = ""; - fg = "#89e051"; - } - { - name = ".clang-format"; - text = ""; - fg = "#6d8086"; - } - { - name = ".clang-tidy"; - text = ""; - fg = "#6d8086"; - } - { - name = ".codespellrc"; - text = "󰓆"; - fg = "#35da60"; - } - { - name = ".condarc"; - text = ""; - fg = "#43b02a"; - } - { - name = ".dockerignore"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = ".ds_store"; - text = ""; - fg = "#41535b"; - } - { - name = ".editorconfig"; - text = ""; - fg = "#fff2f2"; - } - { - name = ".env"; - text = ""; - fg = "#faf743"; - } - { - name = ".eslintignore"; - text = ""; - fg = "#4b32c3"; - } - { - name = ".eslintrc"; - text = ""; - fg = "#4b32c3"; - } - { - name = ".git-blame-ignore-revs"; - text = ""; - fg = "#f54d27"; - } - { - name = ".gitattributes"; - text = ""; - fg = "#f54d27"; - } - { - name = ".gitconfig"; - text = ""; - fg = "#f54d27"; - } - { - name = ".gitignore"; - text = ""; - fg = "#f54d27"; - } - { - name = ".gitlab-ci.yml"; - text = ""; - fg = "#e24329"; - } - { - name = ".gitmodules"; - text = ""; - fg = "#f54d27"; - } - { - name = ".gtkrc-2.0"; - text = ""; - fg = "#ffffff"; - } - { - name = ".gvimrc"; - text = ""; - fg = "#019833"; - } - { - name = ".justfile"; - text = ""; - fg = "#6d8086"; - } - { - name = ".luacheckrc"; - text = ""; - fg = "#00a2ff"; - } - { - name = ".luaurc"; - text = ""; - fg = "#00a2ff"; - } - { - name = ".mailmap"; - text = "󰊢"; - fg = "#f54d27"; - } - { - name = ".nanorc"; - text = ""; - fg = "#440077"; - } - { - name = ".npmignore"; - text = ""; - fg = "#e8274b"; - } - { - name = ".npmrc"; - text = ""; - fg = "#e8274b"; - } - { - name = ".nuxtrc"; - text = "󱄆"; - fg = "#00c58e"; - } - { - name = ".nvmrc"; - text = ""; - fg = "#5fa04e"; - } - { - name = ".pre-commit-config.yaml"; - text = "󰛢"; - fg = "#f8b424"; - } - { - name = ".prettierignore"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.cjs"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.js"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.json"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.json5"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.mjs"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.toml"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.yaml"; - text = ""; - fg = "#4285f4"; - } - { - name = ".prettierrc.yml"; - text = ""; - fg = "#4285f4"; - } - { - name = ".pylintrc"; - text = ""; - fg = "#6d8086"; - } - { - name = ".settings.json"; - text = ""; - fg = "#854cc7"; - } - { - name = ".SRCINFO"; - text = "󰣇"; - fg = "#0f94d2"; - } - { - name = ".vimrc"; - text = ""; - fg = "#019833"; - } - { - name = ".Xauthority"; - text = ""; - fg = "#e54d18"; - } - { - name = ".xinitrc"; - text = ""; - fg = "#e54d18"; - } - { - name = ".Xresources"; - text = ""; - fg = "#e54d18"; - } - { - name = ".xsession"; - text = ""; - fg = "#e54d18"; - } - { - name = ".zprofile"; - text = ""; - fg = "#89e051"; - } - { - name = ".zshenv"; - text = ""; - fg = "#89e051"; - } - { - name = ".zshrc"; - text = ""; - fg = "#89e051"; - } - { - name = "_gvimrc"; - text = ""; - fg = "#019833"; - } - { - name = "_vimrc"; - text = ""; - fg = "#019833"; - } - { - name = "AUTHORS"; - text = ""; - fg = "#a172ff"; - } - { - name = "AUTHORS.txt"; - text = ""; - fg = "#a172ff"; - } - { - name = "brewfile"; - text = ""; - fg = "#701516"; - } - { - name = "bspwmrc"; - text = ""; - fg = "#2f2f2f"; - } - { - name = "build"; - text = ""; - fg = "#89e051"; - } - { - name = "build.gradle"; - text = ""; - fg = "#005f87"; - } - { - name = "build.zig.zon"; - text = ""; - fg = "#f69a1b"; - } - { - name = "bun.lockb"; - text = ""; - fg = "#eadcd1"; - } - { - name = "cantorrc"; - text = ""; - fg = "#1c99f3"; - } - { - name = "checkhealth"; - text = "󰓙"; - fg = "#75b4fb"; - } - { - name = "cmakelists.txt"; - text = ""; - fg = "#dce3eb"; - } - { - name = "code_of_conduct"; - text = ""; - fg = "#e41662"; - } - { - name = "code_of_conduct.md"; - text = ""; - fg = "#e41662"; - } - { - name = "commit_editmsg"; - text = ""; - fg = "#f54d27"; - } - { - name = "commitlint.config.js"; - text = "󰜘"; - fg = "#2b9689"; - } - { - name = "commitlint.config.ts"; - text = "󰜘"; - fg = "#2b9689"; - } - { - name = "compose.yaml"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "compose.yml"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "config"; - text = ""; - fg = "#6d8086"; - } - { - name = "containerfile"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "copying"; - text = ""; - fg = "#cbcb41"; - } - { - name = "copying.lesser"; - text = ""; - fg = "#cbcb41"; - } - { - name = "Directory.Build.props"; - text = ""; - fg = "#00a2ff"; - } - { - name = "Directory.Build.targets"; - text = ""; - fg = "#00a2ff"; - } - { - name = "Directory.Packages.props"; - text = ""; - fg = "#00a2ff"; - } - { - name = "docker-compose.yaml"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "docker-compose.yml"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "dockerfile"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "eslint.config.cjs"; - text = ""; - fg = "#4b32c3"; - } - { - name = "eslint.config.js"; - text = ""; - fg = "#4b32c3"; - } - { - name = "eslint.config.mjs"; - text = ""; - fg = "#4b32c3"; - } - { - name = "eslint.config.ts"; - text = ""; - fg = "#4b32c3"; - } - { - name = "ext_typoscript_setup.txt"; - text = ""; - fg = "#ff8700"; - } - { - name = "favicon.ico"; - text = ""; - fg = "#cbcb41"; - } - { - name = "fp-info-cache"; - text = ""; - fg = "#ffffff"; - } - { - name = "fp-lib-table"; - text = ""; - fg = "#ffffff"; - } - { - name = "FreeCAD.conf"; - text = ""; - fg = "#cb333b"; - } - { - name = "Gemfile"; - text = ""; - fg = "#701516"; - } - { - name = "gnumakefile"; - text = ""; - fg = "#6d8086"; - } - { - name = "go.mod"; - text = ""; - fg = "#519aba"; - } - { - name = "go.sum"; - text = ""; - fg = "#519aba"; - } - { - name = "go.work"; - text = ""; - fg = "#519aba"; - } - { - name = "gradle-wrapper.properties"; - text = ""; - fg = "#005f87"; - } - { - name = "gradle.properties"; - text = ""; - fg = "#005f87"; - } - { - name = "gradlew"; - text = ""; - fg = "#005f87"; - } - { - name = "groovy"; - text = ""; - fg = "#4a687c"; - } - { - name = "gruntfile.babel.js"; - text = ""; - fg = "#e37933"; - } - { - name = "gruntfile.coffee"; - text = ""; - fg = "#e37933"; - } - { - name = "gruntfile.js"; - text = ""; - fg = "#e37933"; - } - { - name = "gruntfile.ts"; - text = ""; - fg = "#e37933"; - } - { - name = "gtkrc"; - text = ""; - fg = "#ffffff"; - } - { - name = "gulpfile.babel.js"; - text = ""; - fg = "#cc3e44"; - } - { - name = "gulpfile.coffee"; - text = ""; - fg = "#cc3e44"; - } - { - name = "gulpfile.js"; - text = ""; - fg = "#cc3e44"; - } - { - name = "gulpfile.ts"; - text = ""; - fg = "#cc3e44"; - } - { - name = "hypridle.conf"; - text = ""; - fg = "#00aaae"; - } - { - name = "hyprland.conf"; - text = ""; - fg = "#00aaae"; - } - { - name = "hyprlock.conf"; - text = ""; - fg = "#00aaae"; - } - { - name = "hyprpaper.conf"; - text = ""; - fg = "#00aaae"; - } - { - name = "i18n.config.js"; - text = "󰗊"; - fg = "#7986cb"; - } - { - name = "i18n.config.ts"; - text = "󰗊"; - fg = "#7986cb"; - } - { - name = "i3blocks.conf"; - text = ""; - fg = "#e8ebee"; - } - { - name = "i3status.conf"; - text = ""; - fg = "#e8ebee"; - } - { - name = "index.theme"; - text = ""; - fg = "#2db96f"; - } - { - name = "ionic.config.json"; - text = ""; - fg = "#4f8ff7"; - } - { - name = "justfile"; - text = ""; - fg = "#6d8086"; - } - { - name = "kalgebrarc"; - text = ""; - fg = "#1c99f3"; - } - { - name = "kdeglobals"; - text = ""; - fg = "#1c99f3"; - } - { - name = "kdenlive-layoutsrc"; - text = ""; - fg = "#83b8f2"; - } - { - name = "kdenliverc"; - text = ""; - fg = "#83b8f2"; - } - { - name = "kritadisplayrc"; - text = ""; - fg = "#f245fb"; - } - { - name = "kritarc"; - text = ""; - fg = "#f245fb"; - } - { - name = "license"; - text = ""; - fg = "#d0bf41"; - } - { - name = "license.md"; - text = ""; - fg = "#d0bf41"; - } - { - name = "lxde-rc.xml"; - text = ""; - fg = "#909090"; - } - { - name = "lxqt.conf"; - text = ""; - fg = "#0192d3"; - } - { - name = "makefile"; - text = ""; - fg = "#6d8086"; - } - { - name = "mix.lock"; - text = ""; - fg = "#a074c4"; - } - { - name = "mpv.conf"; - text = ""; - fg = "#3b1342"; - } - { - name = "node_modules"; - text = ""; - fg = "#e8274b"; - } - { - name = "nuxt.config.cjs"; - text = "󱄆"; - fg = "#00c58e"; - } - { - name = "nuxt.config.js"; - text = "󱄆"; - fg = "#00c58e"; - } - { - name = "nuxt.config.mjs"; - text = "󱄆"; - fg = "#00c58e"; - } - { - name = "nuxt.config.ts"; - text = "󱄆"; - fg = "#00c58e"; - } - { - name = "package-lock.json"; - text = ""; - fg = "#7a0d21"; - } - { - name = "package.json"; - text = ""; - fg = "#e8274b"; - } - { - name = "PKGBUILD"; - text = ""; - fg = "#0f94d2"; - } - { - name = "platformio.ini"; - text = ""; - fg = "#f6822b"; - } - { - name = "pom.xml"; - text = ""; - fg = "#7a0d21"; - } - { - name = "prettier.config.cjs"; - text = ""; - fg = "#4285f4"; - } - { - name = "prettier.config.js"; - text = ""; - fg = "#4285f4"; - } - { - name = "prettier.config.mjs"; - text = ""; - fg = "#4285f4"; - } - { - name = "prettier.config.ts"; - text = ""; - fg = "#4285f4"; - } - { - name = "procfile"; - text = ""; - fg = "#a074c4"; - } - { - name = "PrusaSlicer.ini"; - text = ""; - fg = "#ec6b23"; - } - { - name = "PrusaSlicerGcodeViewer.ini"; - text = ""; - fg = "#ec6b23"; - } - { - name = "py.typed"; - text = ""; - fg = "#ffbc03"; - } - { - name = "QtProject.conf"; - text = ""; - fg = "#40cd52"; - } - { - name = "rakefile"; - text = ""; - fg = "#701516"; - } - { - name = "readme"; - text = "󰂺"; - fg = "#ededed"; - } - { - name = "readme.md"; - text = "󰂺"; - fg = "#ededed"; - } - { - name = "rmd"; - text = ""; - fg = "#519aba"; - } - { - name = "robots.txt"; - text = "󰚩"; - fg = "#5d7096"; - } - { - name = "security"; - text = "󰒃"; - fg = "#bec4c9"; - } - { - name = "security.md"; - text = "󰒃"; - fg = "#bec4c9"; - } - { - name = "settings.gradle"; - text = ""; - fg = "#005f87"; - } - { - name = "svelte.config.js"; - text = ""; - fg = "#ff3e00"; - } - { - name = "sxhkdrc"; - text = ""; - fg = "#2f2f2f"; - } - { - name = "sym-lib-table"; - text = ""; - fg = "#ffffff"; - } - { - name = "tailwind.config.js"; - text = "󱏿"; - fg = "#20c2e3"; - } - { - name = "tailwind.config.mjs"; - text = "󱏿"; - fg = "#20c2e3"; - } - { - name = "tailwind.config.ts"; - text = "󱏿"; - fg = "#20c2e3"; - } - { - name = "tmux.conf"; - text = ""; - fg = "#14ba19"; - } - { - name = "tmux.conf.local"; - text = ""; - fg = "#14ba19"; - } - { - name = "tsconfig.json"; - text = ""; - fg = "#519aba"; - } - { - name = "unlicense"; - text = ""; - fg = "#d0bf41"; - } - { - name = "vagrantfile"; - text = ""; - fg = "#1563ff"; - } - { - name = "vercel.json"; - text = ""; - fg = "#ffffff"; - } - { - name = "vlcrc"; - text = "󰕼"; - fg = "#ee7a00"; - } - { - name = "webpack"; - text = "󰜫"; - fg = "#519aba"; - } - { - name = "weston.ini"; - text = ""; - fg = "#ffbb01"; - } - { - name = "workspace"; - text = ""; - fg = "#89e051"; - } - { - name = "xmobarrc"; - text = ""; - fg = "#fd4d5d"; - } - { - name = "xmobarrc.hs"; - text = ""; - fg = "#fd4d5d"; - } - { - name = "xmonad.hs"; - text = ""; - fg = "#fd4d5d"; - } - { - name = "xorg.conf"; - text = ""; - fg = "#e54d18"; - } - { - name = "xsettingsd.conf"; - text = ""; - fg = "#e54d18"; - } - ]; - exts = [ - { - name = "3gp"; - text = ""; - fg = "#fd971f"; - } - { - name = "3mf"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "7z"; - text = ""; - fg = "#eca517"; - } - { - name = "a"; - text = ""; - fg = "#dcddd6"; - } - { - name = "aac"; - text = ""; - fg = "#00afff"; - } - { - name = "adb"; - text = ""; - fg = "#22ffff"; - } - { - name = "ads"; - text = ""; - fg = "#ffffff"; - } - { - name = "ai"; - text = ""; - fg = "#cbcb41"; - } - { - name = "aif"; - text = ""; - fg = "#00afff"; - } - { - name = "aiff"; - text = ""; - fg = "#00afff"; - } - { - name = "android"; - text = ""; - fg = "#34a853"; - } - { - name = "ape"; - text = ""; - fg = "#00afff"; - } - { - name = "apk"; - text = ""; - fg = "#34a853"; - } - { - name = "apl"; - text = ""; - fg = "#24a148"; - } - { - name = "app"; - text = ""; - fg = "#9f0500"; - } - { - name = "applescript"; - text = ""; - fg = "#6d8085"; - } - { - name = "asc"; - text = "󰦝"; - fg = "#576d7f"; - } - { - name = "asm"; - text = ""; - fg = "#0091bd"; - } - { - name = "ass"; - text = "󰨖"; - fg = "#ffb713"; - } - { - name = "astro"; - text = ""; - fg = "#e23f67"; - } - { - name = "avif"; - text = ""; - fg = "#a074c4"; - } - { - name = "awk"; - text = ""; - fg = "#4d5a5e"; - } - { - name = "azcli"; - text = ""; - fg = "#0078d4"; - } - { - name = "bak"; - text = "󰁯"; - fg = "#6d8086"; - } - { - name = "bash"; - text = ""; - fg = "#89e051"; - } - { - name = "bat"; - text = ""; - fg = "#c1f12e"; - } - { - name = "bazel"; - text = ""; - fg = "#89e051"; - } - { - name = "bib"; - text = "󱉟"; - fg = "#cbcb41"; - } - { - name = "bicep"; - text = ""; - fg = "#519aba"; - } - { - name = "bicepparam"; - text = ""; - fg = "#9f74b3"; - } - { - name = "bin"; - text = ""; - fg = "#9f0500"; - } - { - name = "blade.php"; - text = ""; - fg = "#f05340"; - } - { - name = "blend"; - text = "󰂫"; - fg = "#ea7600"; - } - { - name = "blp"; - text = "󰺾"; - fg = "#5796e2"; - } - { - name = "bmp"; - text = ""; - fg = "#a074c4"; - } - { - name = "bqn"; - text = ""; - fg = "#24a148"; - } - { - name = "brep"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "bz"; - text = ""; - fg = "#eca517"; - } - { - name = "bz2"; - text = ""; - fg = "#eca517"; - } - { - name = "bz3"; - text = ""; - fg = "#eca517"; - } - { - name = "bzl"; - text = ""; - fg = "#89e051"; - } - { - name = "c"; - text = ""; - fg = "#599eff"; - } - { - name = "c++"; - text = ""; - fg = "#f34b7d"; - } - { - name = "cache"; - text = ""; - fg = "#ffffff"; - } - { - name = "cast"; - text = ""; - fg = "#fd971f"; - } - { - name = "cbl"; - text = ""; - fg = "#005ca5"; - } - { - name = "cc"; - text = ""; - fg = "#f34b7d"; - } - { - name = "ccm"; - text = ""; - fg = "#f34b7d"; - } - { - name = "cfg"; - text = ""; - fg = "#6d8086"; - } - { - name = "cjs"; - text = ""; - fg = "#cbcb41"; - } - { - name = "clj"; - text = ""; - fg = "#8dc149"; - } - { - name = "cljc"; - text = ""; - fg = "#8dc149"; - } - { - name = "cljd"; - text = ""; - fg = "#519aba"; - } - { - name = "cljs"; - text = ""; - fg = "#519aba"; - } - { - name = "cmake"; - text = ""; - fg = "#dce3eb"; - } - { - name = "cob"; - text = ""; - fg = "#005ca5"; - } - { - name = "cobol"; - text = ""; - fg = "#005ca5"; - } - { - name = "coffee"; - text = ""; - fg = "#cbcb41"; - } - { - name = "conda"; - text = ""; - fg = "#43b02a"; - } - { - name = "conf"; - text = ""; - fg = "#6d8086"; - } - { - name = "config.ru"; - text = ""; - fg = "#701516"; - } - { - name = "cow"; - text = "󰆚"; - fg = "#965824"; - } - { - name = "cp"; - text = ""; - fg = "#519aba"; - } - { - name = "cpp"; - text = ""; - fg = "#519aba"; - } - { - name = "cppm"; - text = ""; - fg = "#519aba"; - } - { - name = "cpy"; - text = ""; - fg = "#005ca5"; - } - { - name = "cr"; - text = ""; - fg = "#c8c8c8"; - } - { - name = "crdownload"; - text = ""; - fg = "#44cda8"; - } - { - name = "cs"; - text = "󰌛"; - fg = "#596706"; - } - { - name = "csh"; - text = ""; - fg = "#4d5a5e"; - } - { - name = "cshtml"; - text = "󱦗"; - fg = "#512bd4"; - } - { - name = "cson"; - text = ""; - fg = "#cbcb41"; - } - { - name = "csproj"; - text = "󰪮"; - fg = "#512bd4"; - } - { - name = "css"; - text = ""; - fg = "#42a5f5"; - } - { - name = "csv"; - text = ""; - fg = "#89e051"; - } - { - name = "cts"; - text = ""; - fg = "#519aba"; - } - { - name = "cu"; - text = ""; - fg = "#89e051"; - } - { - name = "cue"; - text = "󰲹"; - fg = "#ed95ae"; - } - { - name = "cuh"; - text = ""; - fg = "#a074c4"; - } - { - name = "cxx"; - text = ""; - fg = "#519aba"; - } - { - name = "cxxm"; - text = ""; - fg = "#519aba"; - } - { - name = "d"; - text = ""; - fg = "#b03931"; - } - { - name = "d.ts"; - text = ""; - fg = "#d59855"; - } - { - name = "dart"; - text = ""; - fg = "#03589c"; - } - { - name = "db"; - text = ""; - fg = "#dad8d8"; - } - { - name = "dconf"; - text = ""; - fg = "#ffffff"; - } - { - name = "desktop"; - text = ""; - fg = "#563d7c"; - } - { - name = "diff"; - text = ""; - fg = "#41535b"; - } - { - name = "dll"; - text = ""; - fg = "#4d2c0b"; - } - { - name = "doc"; - text = "󰈬"; - fg = "#185abd"; - } - { - name = "Dockerfile"; - text = "󰡨"; - fg = "#458ee6"; - } - { - name = "docx"; - text = "󰈬"; - fg = "#185abd"; - } - { - name = "dot"; - text = "󱁉"; - fg = "#30638e"; - } - { - name = "download"; - text = ""; - fg = "#44cda8"; - } - { - name = "drl"; - text = ""; - fg = "#ffafaf"; - } - { - name = "dropbox"; - text = ""; - fg = "#0061fe"; - } - { - name = "dump"; - text = ""; - fg = "#dad8d8"; - } - { - name = "dwg"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "dxf"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "ebook"; - text = ""; - fg = "#eab16d"; - } - { - name = "ebuild"; - text = ""; - fg = "#4c416e"; - } - { - name = "edn"; - text = ""; - fg = "#519aba"; - } - { - name = "eex"; - text = ""; - fg = "#a074c4"; - } - { - name = "ejs"; - text = ""; - fg = "#cbcb41"; - } - { - name = "el"; - text = ""; - fg = "#8172be"; - } - { - name = "elc"; - text = ""; - fg = "#8172be"; - } - { - name = "elf"; - text = ""; - fg = "#9f0500"; - } - { - name = "elm"; - text = ""; - fg = "#519aba"; - } - { - name = "eln"; - text = ""; - fg = "#8172be"; - } - { - name = "env"; - text = ""; - fg = "#faf743"; - } - { - name = "eot"; - text = ""; - fg = "#ececec"; - } - { - name = "epp"; - text = ""; - fg = "#ffa61a"; - } - { - name = "epub"; - text = ""; - fg = "#eab16d"; - } - { - name = "erb"; - text = ""; - fg = "#701516"; - } - { - name = "erl"; - text = ""; - fg = "#b83998"; - } - { - name = "ex"; - text = ""; - fg = "#a074c4"; - } - { - name = "exe"; - text = ""; - fg = "#9f0500"; - } - { - name = "exs"; - text = ""; - fg = "#a074c4"; - } - { - name = "f#"; - text = ""; - fg = "#519aba"; - } - { - name = "f3d"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "f90"; - text = "󱈚"; - fg = "#734f96"; - } - { - name = "fbx"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "fcbak"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcmacro"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcmat"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcparam"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcscript"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcstd"; - text = ""; - fg = "#cb333b"; - } - { - name = "fcstd1"; - text = ""; - fg = "#cb333b"; - } - { - name = "fctb"; - text = ""; - fg = "#cb333b"; - } - { - name = "fctl"; - text = ""; - fg = "#cb333b"; - } - { - name = "fdmdownload"; - text = ""; - fg = "#44cda8"; - } - { - name = "fish"; - text = ""; - fg = "#4d5a5e"; - } - { - name = "flac"; - text = ""; - fg = "#0075aa"; - } - { - name = "flc"; - text = ""; - fg = "#ececec"; - } - { - name = "flf"; - text = ""; - fg = "#ececec"; - } - { - name = "fnl"; - text = ""; - fg = "#fff3d7"; - } - { - name = "fodg"; - text = ""; - fg = "#fffb57"; - } - { - name = "fodp"; - text = ""; - fg = "#fe9c45"; - } - { - name = "fods"; - text = ""; - fg = "#78fc4e"; - } - { - name = "fodt"; - text = ""; - fg = "#2dcbfd"; - } - { - name = "fs"; - text = ""; - fg = "#519aba"; - } - { - name = "fsi"; - text = ""; - fg = "#519aba"; - } - { - name = "fsscript"; - text = ""; - fg = "#519aba"; - } - { - name = "fsx"; - text = ""; - fg = "#519aba"; - } - { - name = "gcode"; - text = "󰐫"; - fg = "#1471ad"; - } - { - name = "gd"; - text = ""; - fg = "#6d8086"; - } - { - name = "gemspec"; - text = ""; - fg = "#701516"; - } - { - name = "gif"; - text = ""; - fg = "#a074c4"; - } - { - name = "git"; - text = ""; - fg = "#f14c28"; - } - { - name = "glb"; - text = ""; - fg = "#ffb13b"; - } - { - name = "gleam"; - text = ""; - fg = "#ffaff3"; - } - { - name = "gnumakefile"; - text = ""; - fg = "#6d8086"; - } - { - name = "go"; - text = ""; - fg = "#519aba"; - } - { - name = "godot"; - text = ""; - fg = "#6d8086"; - } - { - name = "gpr"; - text = ""; - fg = "#ff33ff"; - } - { - name = "gql"; - text = ""; - fg = "#e535ab"; - } - { - name = "gradle"; - text = ""; - fg = "#005f87"; - } - { - name = "graphql"; - text = ""; - fg = "#e535ab"; - } - { - name = "gresource"; - text = ""; - fg = "#ffffff"; - } - { - name = "gv"; - text = "󱁉"; - fg = "#30638e"; - } - { - name = "gz"; - text = ""; - fg = "#eca517"; - } - { - name = "h"; - text = ""; - fg = "#a074c4"; - } - { - name = "haml"; - text = ""; - fg = "#eaeae1"; - } - { - name = "hbs"; - text = ""; - fg = "#f0772b"; - } - { - name = "heex"; - text = ""; - fg = "#a074c4"; - } - { - name = "hex"; - text = ""; - fg = "#2e63ff"; - } - { - name = "hh"; - text = ""; - fg = "#a074c4"; - } - { - name = "hpp"; - text = ""; - fg = "#a074c4"; - } - { - name = "hrl"; - text = ""; - fg = "#b83998"; - } - { - name = "hs"; - text = ""; - fg = "#a074c4"; - } - { - name = "htm"; - text = ""; - fg = "#e34c26"; - } - { - name = "html"; - text = ""; - fg = "#e44d26"; - } - { - name = "http"; - text = ""; - fg = "#008ec7"; - } - { - name = "huff"; - text = "󰡘"; - fg = "#4242c7"; - } - { - name = "hurl"; - text = ""; - fg = "#ff0288"; - } - { - name = "hx"; - text = ""; - fg = "#ea8220"; - } - { - name = "hxx"; - text = ""; - fg = "#a074c4"; - } - { - name = "ical"; - text = ""; - fg = "#2b2e83"; - } - { - name = "icalendar"; - text = ""; - fg = "#2b2e83"; - } - { - name = "ico"; - text = ""; - fg = "#cbcb41"; - } - { - name = "ics"; - text = ""; - fg = "#2b2e83"; - } - { - name = "ifb"; - text = ""; - fg = "#2b2e83"; - } - { - name = "ifc"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "ige"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "iges"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "igs"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "image"; - text = ""; - fg = "#d0bec8"; - } - { - name = "img"; - text = ""; - fg = "#d0bec8"; - } - { - name = "import"; - text = ""; - fg = "#ececec"; - } - { - name = "info"; - text = ""; - fg = "#ffffcd"; - } - { - name = "ini"; - text = ""; - fg = "#6d8086"; - } - { - name = "ino"; - text = ""; - fg = "#56b6c2"; - } - { - name = "ipynb"; - text = ""; - fg = "#f57d01"; - } - { - name = "iso"; - text = ""; - fg = "#d0bec8"; - } - { - name = "ixx"; - text = ""; - fg = "#519aba"; - } - { - name = "java"; - text = ""; - fg = "#cc3e44"; - } - { - name = "jl"; - text = ""; - fg = "#a270ba"; - } - { - name = "jpeg"; - text = ""; - fg = "#a074c4"; - } - { - name = "jpg"; - text = ""; - fg = "#a074c4"; - } - { - name = "js"; - text = ""; - fg = "#cbcb41"; - } - { - name = "json"; - text = ""; - fg = "#cbcb41"; - } - { - name = "json5"; - text = ""; - fg = "#cbcb41"; - } - { - name = "jsonc"; - text = ""; - fg = "#cbcb41"; - } - { - name = "jsx"; - text = ""; - fg = "#20c2e3"; - } - { - name = "jwmrc"; - text = ""; - fg = "#0078cd"; - } - { - name = "jxl"; - text = ""; - fg = "#a074c4"; - } - { - name = "kbx"; - text = "󰯄"; - fg = "#737672"; - } - { - name = "kdb"; - text = ""; - fg = "#529b34"; - } - { - name = "kdbx"; - text = ""; - fg = "#529b34"; - } - { - name = "kdenlive"; - text = ""; - fg = "#83b8f2"; - } - { - name = "kdenlivetitle"; - text = ""; - fg = "#83b8f2"; - } - { - name = "kicad_dru"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_mod"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_pcb"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_prl"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_pro"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_sch"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_sym"; - text = ""; - fg = "#ffffff"; - } - { - name = "kicad_wks"; - text = ""; - fg = "#ffffff"; - } - { - name = "ko"; - text = ""; - fg = "#dcddd6"; - } - { - name = "kpp"; - text = ""; - fg = "#f245fb"; - } - { - name = "kra"; - text = ""; - fg = "#f245fb"; - } - { - name = "krz"; - text = ""; - fg = "#f245fb"; - } - { - name = "ksh"; - text = ""; - fg = "#4d5a5e"; - } - { - name = "kt"; - text = ""; - fg = "#7f52ff"; - } - { - name = "kts"; - text = ""; - fg = "#7f52ff"; - } - { - name = "lck"; - text = ""; - fg = "#bbbbbb"; - } - { - name = "leex"; - text = ""; - fg = "#a074c4"; - } - { - name = "less"; - text = ""; - fg = "#563d7c"; - } - { - name = "lff"; - text = ""; - fg = "#ececec"; - } - { - name = "lhs"; - text = ""; - fg = "#a074c4"; - } - { - name = "lib"; - text = ""; - fg = "#4d2c0b"; - } - { - name = "license"; - text = ""; - fg = "#cbcb41"; - } - { - name = "liquid"; - text = ""; - fg = "#95bf47"; - } - { - name = "lock"; - text = ""; - fg = "#bbbbbb"; - } - { - name = "log"; - text = "󰌱"; - fg = "#dddddd"; - } - { - name = "lrc"; - text = "󰨖"; - fg = "#ffb713"; - } - { - name = "lua"; - text = ""; - fg = "#51a0cf"; - } - { - name = "luac"; - text = ""; - fg = "#51a0cf"; - } - { - name = "luau"; - text = ""; - fg = "#00a2ff"; - } - { - name = "m"; - text = ""; - fg = "#599eff"; - } - { - name = "m3u"; - text = "󰲹"; - fg = "#ed95ae"; - } - { - name = "m3u8"; - text = "󰲹"; - fg = "#ed95ae"; - } - { - name = "m4a"; - text = ""; - fg = "#00afff"; - } - { - name = "m4v"; - text = ""; - fg = "#fd971f"; - } - { - name = "magnet"; - text = ""; - fg = "#a51b16"; - } - { - name = "makefile"; - text = ""; - fg = "#6d8086"; - } - { - name = "markdown"; - text = ""; - fg = "#dddddd"; - } - { - name = "material"; - text = ""; - fg = "#b83998"; - } - { - name = "md"; - text = ""; - fg = "#dddddd"; - } - { - name = "md5"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "mdx"; - text = ""; - fg = "#519aba"; - } - { - name = "mint"; - text = "󰌪"; - fg = "#87c095"; - } - { - name = "mjs"; - text = ""; - fg = "#f1e05a"; - } - { - name = "mk"; - text = ""; - fg = "#6d8086"; - } - { - name = "mkv"; - text = ""; - fg = "#fd971f"; - } - { - name = "ml"; - text = ""; - fg = "#e37933"; - } - { - name = "mli"; - text = ""; - fg = "#e37933"; - } - { - name = "mm"; - text = ""; - fg = "#519aba"; - } - { - name = "mo"; - text = ""; - fg = "#9772fb"; - } - { - name = "mobi"; - text = ""; - fg = "#eab16d"; - } - { - name = "mojo"; - text = ""; - fg = "#ff4c1f"; - } - { - name = "mov"; - text = ""; - fg = "#fd971f"; - } - { - name = "mp3"; - text = ""; - fg = "#00afff"; - } - { - name = "mp4"; - text = ""; - fg = "#fd971f"; - } - { - name = "mpp"; - text = ""; - fg = "#519aba"; - } - { - name = "msf"; - text = ""; - fg = "#137be1"; - } - { - name = "mts"; - text = ""; - fg = "#519aba"; - } - { - name = "mustache"; - text = ""; - fg = "#e37933"; - } - { - name = "nfo"; - text = ""; - fg = "#ffffcd"; - } - { - name = "nim"; - text = ""; - fg = "#f3d400"; - } - { - name = "nix"; - text = ""; - fg = "#7ebae4"; - } - { - name = "norg"; - text = ""; - fg = "#4878be"; - } - { - name = "nswag"; - text = ""; - fg = "#85ea2d"; - } - { - name = "nu"; - text = ""; - fg = "#3aa675"; - } - { - name = "o"; - text = ""; - fg = "#9f0500"; - } - { - name = "obj"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "odf"; - text = ""; - fg = "#ff5a96"; - } - { - name = "odg"; - text = ""; - fg = "#fffb57"; - } - { - name = "odin"; - text = "󰟢"; - fg = "#3882d2"; - } - { - name = "odp"; - text = ""; - fg = "#fe9c45"; - } - { - name = "ods"; - text = ""; - fg = "#78fc4e"; - } - { - name = "odt"; - text = ""; - fg = "#2dcbfd"; - } - { - name = "oga"; - text = ""; - fg = "#0075aa"; - } - { - name = "ogg"; - text = ""; - fg = "#0075aa"; - } - { - name = "ogv"; - text = ""; - fg = "#fd971f"; - } - { - name = "ogx"; - text = ""; - fg = "#fd971f"; - } - { - name = "opus"; - text = ""; - fg = "#0075aa"; - } - { - name = "org"; - text = ""; - fg = "#77aa99"; - } - { - name = "otf"; - text = ""; - fg = "#ececec"; - } - { - name = "out"; - text = ""; - fg = "#9f0500"; - } - { - name = "part"; - text = ""; - fg = "#44cda8"; - } - { - name = "patch"; - text = ""; - fg = "#41535b"; - } - { - name = "pck"; - text = ""; - fg = "#6d8086"; - } - { - name = "pcm"; - text = ""; - fg = "#0075aa"; - } - { - name = "pdf"; - text = ""; - fg = "#b30b00"; - } - { - name = "php"; - text = ""; - fg = "#a074c4"; - } - { - name = "pl"; - text = ""; - fg = "#519aba"; - } - { - name = "pls"; - text = "󰲹"; - fg = "#ed95ae"; - } - { - name = "ply"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "pm"; - text = ""; - fg = "#519aba"; - } - { - name = "png"; - text = ""; - fg = "#a074c4"; - } - { - name = "po"; - text = ""; - fg = "#2596be"; - } - { - name = "pot"; - text = ""; - fg = "#2596be"; - } - { - name = "pp"; - text = ""; - fg = "#ffa61a"; - } - { - name = "ppt"; - text = "󰈧"; - fg = "#cb4a32"; - } - { - name = "pptx"; - text = "󰈧"; - fg = "#cb4a32"; - } - { - name = "prisma"; - text = ""; - fg = "#5a67d8"; - } - { - name = "pro"; - text = ""; - fg = "#e4b854"; - } - { - name = "ps1"; - text = "󰨊"; - fg = "#4273ca"; - } - { - name = "psb"; - text = ""; - fg = "#519aba"; - } - { - name = "psd"; - text = ""; - fg = "#519aba"; - } - { - name = "psd1"; - text = "󰨊"; - fg = "#6975c4"; - } - { - name = "psm1"; - text = "󰨊"; - fg = "#6975c4"; - } - { - name = "pub"; - text = "󰷖"; - fg = "#e3c58e"; - } - { - name = "pxd"; - text = ""; - fg = "#5aa7e4"; - } - { - name = "pxi"; - text = ""; - fg = "#5aa7e4"; - } - { - name = "py"; - text = ""; - fg = "#ffbc03"; - } - { - name = "pyc"; - text = ""; - fg = "#ffe291"; - } - { - name = "pyd"; - text = ""; - fg = "#ffe291"; - } - { - name = "pyi"; - text = ""; - fg = "#ffbc03"; - } - { - name = "pyo"; - text = ""; - fg = "#ffe291"; - } - { - name = "pyw"; - text = ""; - fg = "#5aa7e4"; - } - { - name = "pyx"; - text = ""; - fg = "#5aa7e4"; - } - { - name = "qm"; - text = ""; - fg = "#2596be"; - } - { - name = "qml"; - text = ""; - fg = "#40cd52"; - } - { - name = "qrc"; - text = ""; - fg = "#40cd52"; - } - { - name = "qss"; - text = ""; - fg = "#40cd52"; - } - { - name = "query"; - text = ""; - fg = "#90a850"; - } - { - name = "r"; - text = "󰟔"; - fg = "#2266ba"; - } - { - name = "R"; - text = "󰟔"; - fg = "#2266ba"; - } - { - name = "rake"; - text = ""; - fg = "#701516"; - } - { - name = "rar"; - text = ""; - fg = "#eca517"; - } - { - name = "razor"; - text = "󱦘"; - fg = "#512bd4"; - } - { - name = "rb"; - text = ""; - fg = "#701516"; - } - { - name = "res"; - text = ""; - fg = "#cc3e44"; - } - { - name = "resi"; - text = ""; - fg = "#f55385"; - } - { - name = "rlib"; - text = ""; - fg = "#dea584"; - } - { - name = "rmd"; - text = ""; - fg = "#519aba"; - } - { - name = "rproj"; - text = "󰗆"; - fg = "#358a5b"; - } - { - name = "rs"; - text = ""; - fg = "#dea584"; - } - { - name = "rss"; - text = ""; - fg = "#fb9d3b"; - } - { - name = "s"; - text = ""; - fg = "#0071c5"; - } - { - name = "sass"; - text = ""; - fg = "#f55385"; - } - { - name = "sbt"; - text = ""; - fg = "#cc3e44"; - } - { - name = "sc"; - text = ""; - fg = "#cc3e44"; - } - { - name = "scad"; - text = ""; - fg = "#f9d72c"; - } - { - name = "scala"; - text = ""; - fg = "#cc3e44"; - } - { - name = "scm"; - text = "󰘧"; - fg = "#eeeeee"; - } - { - name = "scss"; - text = ""; - fg = "#f55385"; - } - { - name = "sh"; - text = ""; - fg = "#4d5a5e"; - } - { - name = "sha1"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "sha224"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "sha256"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "sha384"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "sha512"; - text = "󰕥"; - fg = "#8c86af"; - } - { - name = "sig"; - text = "󰘧"; - fg = "#e37933"; - } - { - name = "signature"; - text = "󰘧"; - fg = "#e37933"; - } - { - name = "skp"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "sldasm"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "sldprt"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "slim"; - text = ""; - fg = "#e34c26"; - } - { - name = "sln"; - text = ""; - fg = "#854cc7"; - } - { - name = "slnx"; - text = ""; - fg = "#854cc7"; - } - { - name = "slvs"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "sml"; - text = "󰘧"; - fg = "#e37933"; - } - { - name = "so"; - text = ""; - fg = "#dcddd6"; - } - { - name = "sol"; - text = ""; - fg = "#519aba"; - } - { - name = "spec.js"; - text = ""; - fg = "#cbcb41"; - } - { - name = "spec.jsx"; - text = ""; - fg = "#20c2e3"; - } - { - name = "spec.ts"; - text = ""; - fg = "#519aba"; - } - { - name = "spec.tsx"; - text = ""; - fg = "#1354bf"; - } - { - name = "spx"; - text = ""; - fg = "#0075aa"; - } - { - name = "sql"; - text = ""; - fg = "#dad8d8"; - } - { - name = "sqlite"; - text = ""; - fg = "#dad8d8"; - } - { - name = "sqlite3"; - text = ""; - fg = "#dad8d8"; - } - { - name = "srt"; - text = "󰨖"; - fg = "#ffb713"; - } - { - name = "ssa"; - text = "󰨖"; - fg = "#ffb713"; - } - { - name = "ste"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "step"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "stl"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "stp"; - text = "󰻫"; - fg = "#839463"; - } - { - name = "strings"; - text = ""; - fg = "#2596be"; - } - { - name = "styl"; - text = ""; - fg = "#8dc149"; - } - { - name = "sub"; - text = "󰨖"; - fg = "#ffb713"; - } - { - name = "sublime"; - text = ""; - fg = "#e37933"; - } - { - name = "suo"; - text = ""; - fg = "#854cc7"; - } - { - name = "sv"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "svelte"; - text = ""; - fg = "#ff3e00"; - } - { - name = "svg"; - text = "󰜡"; - fg = "#ffb13b"; - } - { - name = "svh"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "swift"; - text = ""; - fg = "#e37933"; - } - { - name = "t"; - text = ""; - fg = "#519aba"; - } - { - name = "tbc"; - text = "󰛓"; - fg = "#1e5cb3"; - } - { - name = "tcl"; - text = "󰛓"; - fg = "#1e5cb3"; - } - { - name = "templ"; - text = ""; - fg = "#dbbd30"; - } - { - name = "terminal"; - text = ""; - fg = "#31b53e"; - } - { - name = "test.js"; - text = ""; - fg = "#cbcb41"; - } - { - name = "test.jsx"; - text = ""; - fg = "#20c2e3"; - } - { - name = "test.ts"; - text = ""; - fg = "#519aba"; - } - { - name = "test.tsx"; - text = ""; - fg = "#1354bf"; - } - { - name = "tex"; - text = ""; - fg = "#3d6117"; - } - { - name = "tf"; - text = ""; - fg = "#5f43e9"; - } - { - name = "tfvars"; - text = ""; - fg = "#5f43e9"; - } - { - name = "tgz"; - text = ""; - fg = "#eca517"; - } - { - name = "tmux"; - text = ""; - fg = "#14ba19"; - } - { - name = "toml"; - text = ""; - fg = "#9c4221"; - } - { - name = "torrent"; - text = ""; - fg = "#44cda8"; - } - { - name = "tres"; - text = ""; - fg = "#6d8086"; - } - { - name = "ts"; - text = ""; - fg = "#519aba"; - } - { - name = "tscn"; - text = ""; - fg = "#6d8086"; - } - { - name = "tsconfig"; - text = ""; - fg = "#ff8700"; - } - { - name = "tsx"; - text = ""; - fg = "#1354bf"; - } - { - name = "ttf"; - text = ""; - fg = "#ececec"; - } - { - name = "twig"; - text = ""; - fg = "#8dc149"; - } - { - name = "txt"; - text = "󰈙"; - fg = "#89e051"; - } - { - name = "txz"; - text = ""; - fg = "#eca517"; - } - { - name = "typ"; - text = ""; - fg = "#0dbcc0"; - } - { - name = "typoscript"; - text = ""; - fg = "#ff8700"; - } - { - name = "ui"; - text = ""; - fg = "#015bf0"; - } - { - name = "v"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "vala"; - text = ""; - fg = "#7b3db9"; - } - { - name = "vh"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "vhd"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "vhdl"; - text = "󰍛"; - fg = "#019833"; - } - { - name = "vi"; - text = ""; - fg = "#fec60a"; - } - { - name = "vim"; - text = ""; - fg = "#019833"; - } - { - name = "vsh"; - text = ""; - fg = "#5d87bf"; - } - { - name = "vsix"; - text = ""; - fg = "#854cc7"; - } - { - name = "vue"; - text = ""; - fg = "#8dc149"; - } - { - name = "wasm"; - text = ""; - fg = "#5c4cdb"; - } - { - name = "wav"; - text = ""; - fg = "#00afff"; - } - { - name = "webm"; - text = ""; - fg = "#fd971f"; - } - { - name = "webmanifest"; - text = ""; - fg = "#f1e05a"; - } - { - name = "webp"; - text = ""; - fg = "#a074c4"; - } - { - name = "webpack"; - text = "󰜫"; - fg = "#519aba"; - } - { - name = "wma"; - text = ""; - fg = "#00afff"; - } - { - name = "woff"; - text = ""; - fg = "#ececec"; - } - { - name = "woff2"; - text = ""; - fg = "#ececec"; - } - { - name = "wrl"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "wrz"; - text = "󰆧"; - fg = "#888888"; - } - { - name = "wv"; - text = ""; - fg = "#00afff"; - } - { - name = "wvc"; - text = ""; - fg = "#00afff"; - } - { - name = "x"; - text = ""; - fg = "#599eff"; - } - { - name = "xaml"; - text = "󰙳"; - fg = "#512bd4"; - } - { - name = "xcf"; - text = ""; - fg = "#635b46"; - } - { - name = "xcplayground"; - text = ""; - fg = "#e37933"; - } - { - name = "xcstrings"; - text = ""; - fg = "#2596be"; - } - { - name = "xls"; - text = "󰈛"; - fg = "#207245"; - } - { - name = "xlsx"; - text = "󰈛"; - fg = "#207245"; - } - { - name = "xm"; - text = ""; - fg = "#519aba"; - } - { - name = "xml"; - text = "󰗀"; - fg = "#e37933"; - } - { - name = "xpi"; - text = ""; - fg = "#ff1b01"; - } - { - name = "xul"; - text = ""; - fg = "#e37933"; - } - { - name = "xz"; - text = ""; - fg = "#eca517"; - } - { - name = "yaml"; - text = ""; - fg = "#6d8086"; - } - { - name = "yml"; - text = ""; - fg = "#6d8086"; - } - { - name = "zig"; - text = ""; - fg = "#f69a1b"; - } - { - name = "zip"; - text = ""; - fg = "#eca517"; - } - { - name = "zsh"; - text = ""; - fg = "#89e051"; - } - { - name = "zst"; - text = ""; - fg = "#eca517"; - } - { - name = "🔥"; - text = ""; - fg = "#ff4c1f"; - } - ]; - conds = [ - { - "if" = "orphan"; - text = ""; - } - { - "if" = "link"; - text = ""; - } - { - "if" = "block"; - text = ""; - } - { - "if" = "char"; - text = ""; - } - { - "if" = "fifo"; - text = ""; - } - { - "if" = "sock"; - text = ""; - } - { - "if" = "sticky"; - text = ""; - } - { - "if" = "dummy"; - text = ""; - } - { - "if" = "dir"; - text = ""; - } - { - "if" = "exec"; - text = ""; - } - { - "if" = "!dir"; - text = ""; - } - ]; - }; -} diff --git a/modules/home/yazi/yazi.nix b/modules/home/yazi/yazi.nix deleted file mode 100644 index 1fe053b..0000000 --- a/modules/home/yazi/yazi.nix +++ /dev/null @@ -1,389 +0,0 @@ -{ - settings = { - manager = { - ratio = [ 1 4 3 ]; - sort_by = "alphabetical"; - sort_sensitive = false; - sort_reverse = false; - sort_dir_first = true; - sort_translit = false; - linemode = "none"; - show_hidden = false; - show_symlink = true; - scrolloff = 5; - mouse_events = [ "click" "scroll" ]; - title_format = "Yazi: {cwd}"; - }; - preview = { - wrap = "no"; - tab_size = 2; - max_width = 600; - max_height = 900; - cache_dir = ""; - image_delay = 30; - image_filter = "triangle"; - image_quality = 75; - sixel_fraction = 15; - ueberzug_scale = 1; - ueberzug_offset = [ 0 0 0 0 ]; - }; - opener = { - edit = [ - { - run = ''${"EDITOR:-vi"} "$@"''; - desc = "$EDITOR"; - block = true; - for = "unix"; - } - { - run = "code %*"; - orphan = true; - desc = "code"; - for = "windows"; - } - { - run = "code -w %*"; - block = true; - desc = "code (block)"; - for = "windows"; - } - ]; - open = [ - { - run = ''xdg-open "$1"''; - desc = "Open"; - for = "linux"; - } - { - run = ''open "$@"''; - desc = "Open"; - for = "macos"; - } - { - run = ''start "" "%1"''; - orphan = true; - desc = "Open"; - for = "windows"; - } - { - run = ''termux-open "$1"''; - desc = "Open"; - for = "android"; - } - ]; - reveal = [ - { - run = ''xdg-open "$(dirname "$1")"''; - desc = "Reveal"; - for = "linux"; - } - { - run = ''open -R "$1"''; - desc = "Reveal"; - for = "macos"; - } - { - run = ''explorer /select,"%1"''; - orphan = true; - desc = "Reveal"; - for = "windows"; - } - { - run = ''termux-open "$(dirname "$1")"''; - desc = "Reveal"; - for = "android"; - } - { - run = ''exiftool "$1"; echo "Press enter to exit"; read _''; - block = true; - desc = "Show EXIF"; - for = "unix"; - } - ]; - extract = [ - { - run = ''ya pub extract --list "$@"''; - desc = "Extract here"; - for = "unix"; - } - { - run = "ya pub extract --list %*"; - desc = "Extract here"; - for = "windows"; - } - ]; - play = [ - { - run = ''mpv --force-window "$@"''; - orphan = true; - for = "unix"; - } - { - run = "mpv --force-window %*"; - orphan = true; - for = "windows"; - } - { - run = ''mediainfo "$1"; echo "Press enter to exit"; read _''; - block = true; - desc = "Show media info"; - for = "unix"; - } - ]; - }; - open = { - rules = [ - { - name = "*/"; - use = [ "edit" "open" "reveal" ]; - } - { - mime = "text/*"; - use = [ "edit" "reveal" ]; - } - { - mime = "image/*"; - use = [ "open" "reveal" ]; - } - { - mime = "{audio,video}/*"; - use = [ "play" "reveal" ]; - } - { - mime = - "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}"; - use = [ "extract" "reveal" ]; - } - { - mime = "application/{json,ndjson}"; - use = [ "edit" "reveal" ]; - } - { - mime = "*/javascript"; - use = [ "edit" "reveal" ]; - } - { - mime = "inode/empty"; - use = [ "edit" "reveal" ]; - } - { - name = "*"; - use = [ "open" "reveal" ]; - } - ]; - }; - tasks = { - micro_workers = 10; - macro_workers = 10; - bizarre_retry = 3; - image_alloc = 536870912; - image_bound = [ 0 0 ]; - suppress_preload = false; - }; - plugin = { - fetchers = [{ - id = "mime"; - name = "*"; - run = "mime"; - prio = "high"; - }]; - spotters = [ - { - name = "*/"; - run = "folder"; - } - { - mime = "text/*"; - run = "code"; - } - { - mime = "application/{mbox,javascript,wine-extension-ini}"; - run = "code"; - } - { - mime = "image/{avif,hei?,jxl,svg+xml}"; - run = "magick"; - } - { - mime = "image/*"; - run = "image"; - } - { - mime = "video/*"; - run = "video"; - } - { - name = "*"; - run = "file"; - } - ]; - preloaders = [ - { - mime = "image/{avif,hei?,jxl,svg+xml}"; - run = "magick"; - } - { - mime = "image/*"; - run = "image"; - } - { - mime = "video/*"; - run = "video"; - } - { - mime = "application/pdf"; - run = "pdf"; - } - { - mime = "font/*"; - run = "font"; - } - { - mime = "application/ms-opentype"; - run = "font"; - } - ]; - previewers = [ - { - name = "*/"; - run = "folder"; - sync = true; - } - { - mime = "text/*"; - run = "code"; - } - { - mime = "application/{mbox,javascript,wine-extension-ini}"; - run = "code"; - } - { - mime = "application/{json,ndjson}"; - run = "json"; - } - { - mime = "image/{avif,hei?,jxl,svg+xml}"; - run = "magick"; - } - { - mime = "image/*"; - run = "image"; - } - { - mime = "video/*"; - run = "video"; - } - { - mime = "application/pdf"; - run = "pdf"; - } - { - mime = - "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}"; - run = "archive"; - } - { - mime = - "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}"; - run = "archive"; - } - { - name = "*.{AppImage,appimage}"; - run = "archive"; - } - { - mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}"; - run = "archive"; - } - { - mime = "application/virtualbox-{vhd,vhdx}"; - run = "archive"; - } - { - name = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}"; - run = "archive"; - } - { - mime = "font/*"; - run = "font"; - } - { - mime = "application/ms-opentype"; - run = "font"; - } - { - mime = "inode/empty"; - run = "empty"; - } - { - name = "*"; - run = "file"; - } - ]; - prepend_fetchers = [ - { - id = "git"; - name = "*"; - run = "git"; - } - { - id = "git"; - name = "*/"; - run = "git"; - } - ]; - }; - input = { - cursor_blink = false; - cd_title = "Change directory:"; - cd_origin = "top-center"; - cd_offset = [ 0 2 50 3 ]; - create_title = [ "Create:" "Create (dir):" ]; - create_origin = "top-center"; - create_offset = [ 0 2 50 3 ]; - rename_title = "Rename:"; - rename_origin = "hovered"; - rename_offset = [ 0 1 50 3 ]; - filter_title = "Filter:"; - filter_origin = "top-center"; - filter_offset = [ 0 2 50 3 ]; - find_title = [ "Find next:" "Find previous:" ]; - find_origin = "top-center"; - find_offset = [ 0 2 50 3 ]; - search_title = "Search via {n}:"; - search_origin = "top-center"; - search_offset = [ 0 2 50 3 ]; - shell_title = [ "Shell:" "Shell (block):" ]; - shell_origin = "top-center"; - shell_offset = [ 0 2 50 3 ]; - }; - confirm = { - trash_title = "Trash {n} selected file{s}?"; - trash_origin = "center"; - trash_offset = [ 0 0 70 20 ]; - delete_title = "Permanently delete {n} selected file{s}?"; - delete_origin = "center"; - delete_offset = [ 0 0 70 20 ]; - overwrite_title = "Overwrite file?"; - overwrite_content = "Will overwrite the following file:"; - overwrite_origin = "center"; - overwrite_offset = [ 0 0 50 15 ]; - quit_title = "Quit?"; - quit_content = - "The following tasks are still running, are you sure you want to quit?"; - quit_origin = "center"; - quit_offset = [ 0 0 50 15 ]; - }; - pick = { - open_title = "Open with:"; - open_origin = "hovered"; - open_offset = [ 0 1 50 7 ]; - }; - which = { - sort_by = "none"; - sort_sensitive = false; - sort_reverse = false; - sort_translit = false; - }; - }; -} diff --git a/modules/home/zed.nix b/modules/home/zed.nix new file mode 100644 index 0000000..0f23040 --- /dev/null +++ b/modules/home/zed.nix @@ -0,0 +1,124 @@ +{ pkgs, lib, ... }: +{ + programs.zed-editor = { + enable = true; + + extensions = [ + "nix" + "one-dark-pro-monokai-darker" + "toml" + "superhtml" + "dockerfile" + "docker-compose" + "vue" + "vscode-icons" + ]; + + userSettings = { + assistant = { + enabled = true; + version = "2"; + default_open_ai_model = null; + ### PROVIDER OPTIONS + ### zed.dev models { claude-3-5-sonnet-latest } requires github connected + ### anthropic models { claude-3-5-sonnet-latest claude-3-haiku-latest claude-3-opus-latest } requires API_KEY + ### copilot_chat models { gpt-4o gpt-4 gpt-3.5-turbo o1-preview } requires github connected + default_model = { + provider = "zed.dev"; + model = "claude-3-5-sonnet-latest"; + }; + + # inline_alternatives = [ + # { + # provider = "copilot_chat"; + # model = "gpt-3.5-turbo"; + # } + # ]; + }; + + node = { + path = lib.getExe pkgs.nodejs; + npm_path = lib.getExe' pkgs.nodejs "npm"; + }; + + hour_format = "hour24"; + auto_update = false; + terminal = { + alternate_scroll = "off"; + blinking = "off"; + copy_on_select = false; + dock = "bottom"; + detect_venv = { + on = { + directories = [ + ".env" + "env" + ".venv" + "venv" + ]; + activate_script = "default"; + }; + }; + # env = { + # TERM = "alacritty"; + # }; + font_family = "FiraCode Nerd Font"; + font_features = null; + font_size = null; + line_height = "comfortable"; + option_as_meta = false; + button = false; + shell = "system"; + #{ + # program = "zsh"; + #}; + toolbar = { + title = true; + }; + working_directory = "current_project_directory"; + }; + + # lsp = { + # rust-analyzer = { + # binary = { + # path = lib.getExe pkgs.rust-analyzer; + # path_lookup = true; + # }; + # }; + # nix = { + # binary = { + # path_lookup = true; + # }; + # }; + # }; + + languages = { + "HTML" = { + "language_servers" = [ + "vscode-html-language-server" + "superhtml" + ]; + "formatter" = { + "language_server" = { + "name" = "superhtml"; + }; + }; + }; + }; + + vim_mode = false; + load_direnv = "shell_hook"; + base_keymap = "VSCode"; + theme = { + mode = "system"; + light = "One Dark Pro Monokai Darker Theme"; + dark = "One Dark Pro Monokai Darker Theme"; + }; + show_whitespaces = "all"; + ui_font_size = 16; + buffer_font_size = 16; + + }; + + }; +} diff --git a/modules/home/zoxide.nix b/modules/home/zoxide.nix index 9ab1845..5c55c2d 100644 --- a/modules/home/zoxide.nix +++ b/modules/home/zoxide.nix @@ -2,7 +2,6 @@ _: { programs = { zoxide = { enable = true; - enableZshIntegration = true; enableBashIntegration = true; options = [ "--cmd cd" @@ -10,4 +9,3 @@ _: { }; }; } - diff --git a/modules/home/zsh/default.nix b/modules/home/zsh/default.nix deleted file mode 100644 index 50e0f7d..0000000 --- a/modules/home/zsh/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ profile -, pkgs -, lib -, ... -}: { - imports = [ - ./zshrc-personal.nix - ]; - - programs.zsh = { - enable = true; - autosuggestion.enable = true; - syntaxHighlighting = { - enable = true; - highlighters = [ "main" "brackets" "pattern" "regexp" "root" "line" ]; - }; - historySubstringSearch.enable = true; - - history = { - ignoreDups = true; - save = 10000; - size = 10000; - }; - - oh-my-zsh = { - enable = true; - }; - - plugins = [ - { - name = "powerlevel10k"; - src = pkgs.zsh-powerlevel10k; - file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; - } - { - name = "powerlevel10k-config"; - src = lib.cleanSource ./p10k-config; - file = "p10k.zsh"; - } - ]; - - initContent = '' - bindkey "\eh" backward-word - bindkey "\ej" down-line-or-history - bindkey "\ek" up-line-or-history - bindkey "\el" forward-word - if [ -f $HOME/.zshrc-personal ]; then - source $HOME/.zshrc-personal - fi - ''; - - shellAliases = { - sv = "sudo nvim"; - v = "nvim"; - c = "clear"; - 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"; - cat = "bat"; - man = "batman"; - }; - }; -} diff --git a/modules/home/zsh/p10k-config/p10k.zsh b/modules/home/zsh/p10k-config/p10k.zsh deleted file mode 100644 index a3958bf..0000000 --- a/modules/home/zsh/p10k-config/p10k.zsh +++ /dev/null @@ -1,1827 +0,0 @@ -# Generated by Powerlevel10k configuration wizard on 2025-03-18 at 20:56 CDT. -# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh. -# Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, -# angled separators, sharp heads, round tails, 1 line, sparse, many icons, concise, -# transient_prompt, instant_prompt=verbose. -# Type `p10k configure` to generate another config. -# -# Config for Powerlevel10k with powerline prompt style with colorful background. -# Type `p10k configure` to generate your own config based on it. -# -# Tip: Looking for a nice color? Here's a one-liner to print colormap. -# -# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done - -# Temporarily change options. -'builtin' 'local' '-a' 'p10k_config_opts' -[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') -[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') -[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') -'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' - -() { - emulate -L zsh -o extended_glob - - # Unset all configuration options. This allows you to apply configuration changes without - # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. - unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' - - # Zsh >= 5.1 is required. - [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return - - # The list of segments shown on the left. Fill it with the most important segments. - typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( - os_icon # os identifier - dir # current directory - vcs # git status - hostname # show hostname when not on local host - # prompt_char # prompt symbol - ) - - # The list of segments shown on the right. Fill it with less important segments. - # Right prompt on the last prompt line (where you are typing your commands) gets - # automatically hidden when the input line reaches it. Right prompt above the - # last prompt line gets hidden if it would overlap with left prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( - status # exit code of the last command - command_execution_time # duration of the last command - background_jobs # presence of background jobs - direnv # direnv status (https://direnv.net/) - asdf # asdf version manager (https://github.com/asdf-vm/asdf) - virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) - anaconda # conda environment (https://conda.io/) - pyenv # python environment (https://github.com/pyenv/pyenv) - goenv # go environment (https://github.com/syndbg/goenv) - nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) - nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) - nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version - # go_version # go version (https://golang.org) - # rust_version # rustc version (https://www.rust-lang.org) - # dotnet_version # .NET version (https://dotnet.microsoft.com) - # php_version # php version (https://www.php.net/) - # laravel_version # laravel php framework version (https://laravel.com/) - # java_version # java version (https://www.java.com/) - # package # name@version from package.json (https://docs.npmjs.com/files/package.json) - rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) - rvm # ruby version from rvm (https://rvm.io) - fvm # flutter version management (https://github.com/leoafarias/fvm) - luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) - jenv # java version from jenv (https://github.com/jenv/jenv) - plenv # perl version from plenv (https://github.com/tokuhirom/plenv) - perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) - phpenv # php version from phpenv (https://github.com/phpenv/phpenv) - scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) - haskell_stack # haskell version from stack (https://haskellstack.org/) - kubecontext # current kubernetes context (https://kubernetes.io/) - terraform # terraform workspace (https://www.terraform.io) - # terraform_version # terraform version (https://www.terraform.io) - aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) - aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) - azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) - gcloud # google cloud cli account and project (https://cloud.google.com/) - google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) - toolbox # toolbox name (https://github.com/containers/toolbox) - context # user@hostname - nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) - ranger # ranger shell (https://github.com/ranger/ranger) - nnn # nnn shell (https://github.com/jarun/nnn) - lf # lf shell (https://github.com/gokcehan/lf) - xplr # xplr shell (https://github.com/sayanarijit/xplr) - vim_shell # vim shell indicator (:sh) - midnight_commander # midnight commander shell (https://midnight-commander.org/) - nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) - chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) - vi_mode # vi mode (you don't need this if you've enabled prompt_char) - # vpn_ip # virtual private network indicator - # load # CPU load - # disk_usage # disk usage - # ram # free RAM - # swap # used swap - todo # todo items (https://github.com/todotxt/todo.txt-cli) - timewarrior # timewarrior tracking status (https://timewarrior.net/) - taskwarrior # taskwarrior task count (https://taskwarrior.org/) - per_directory_history # Oh My Zsh per-directory-history local/global indicator - # cpu_arch # CPU architecture - # time # current time - # ip # ip address and bandwidth usage for a specified network interface - # public_ip # public IP address - # proxy # system-wide http/https/ftp proxy - # battery # internal battery - # wifi # wifi speed - # example # example user-defined segment (see prompt_example function below) - ) - - # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. - typeset -g POWERLEVEL9K_MODE=nerdfont-v3 - # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid - # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. - typeset -g POWERLEVEL9K_ICON_PADDING=none - - # When set to true, icons appear before content on both sides of the prompt. When set - # to false, icons go after content. If empty or not set, icons go before content in the left - # prompt and after content in the right prompt. - # - # You can also override it for a specific segment: - # - # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false - # - # Or for a specific segment in specific state: - # - # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false - typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= - - # Add an empty line before each prompt. - typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true - - # Connect left prompt lines with these symbols. You'll probably want to use the same color - # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─' - # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯' - - # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or - # '─'. The last two make it easier to see the alignment between left and right prompt and to - # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - # for more compact prompt if using this option. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= - if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then - # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE - # ornaments defined above. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 - # Start filler from the edge of the screen if there are no left segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' - # End filler on the edge of the screen if there are no right segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' - fi - - # Separator between same-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' - # Separator between same-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' - # Separator between different-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' - # Separator between different-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' - # To remove a separator between two segments, add "_joined" to the second segment name. - # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined) - - # The right end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' - # The left end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' - # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B6' - # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B4' - # Left prompt terminator for lines without any segments. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - - #################################[ os_icon: os identifier ]################################## - # OS identifier color. - typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232 - typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7 - # Custom icon. - # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' - - ################################[ prompt_char: prompt symbol ]################################ - # Transparent background. - typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND= - # Green prompt symbol if the last command succeeded. - typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 - # Red prompt symbol if the last command failed. - typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 - # Default prompt symbol. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' - # Prompt symbol in command vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' - # Prompt symbol in visual vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' - # Prompt symbol in overwrite vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' - typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true - # No line terminator if prompt_char is the last segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= - # No line introducer if prompt_char is the first segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - # No surrounding whitespace. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= - - ##################################[ dir: current directory ]################################## - # Current directory background color. - typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 - # Default current directory foreground color. - typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 - # If directory is too long, shorten some of its segments to the shortest possible unique - # prefix. The shortened directory can be tab-completed to the original. - typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique - # Replace removed segment suffixes with this symbol. - typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= - # Color of the shortened directory segments. - typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 - # Color of the anchor directory segments. Anchor segments are never shortened. The first - # segment is always an anchor. - typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 - # Display anchor directory segments in bold. - typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true - # Don't shorten directories that contain any of these files. They are anchors. - local anchor_files=( - .bzr - .citc - .git - .hg - .node-version - .python-version - .go-version - .ruby-version - .lua-version - .java-version - .perl-version - .php-version - .tool-versions - .shorten_folder_marker - .svn - .terraform - CVS - Cargo.toml - composer.json - go.mod - package.json - stack.yaml - ) - typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" - # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains - # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is - # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) - # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers - # and other directories don't. - # - # Optionally, "first" and "last" can be followed by ":" where is an integer. - # This moves the truncation point to the right (positive offset) or to the left (negative offset) - # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" - # respectively. - typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false - # Don't shorten this many last directory segments. They are anchors. - typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 - # Shorten directory if it's longer than this even if there is space for it. The value can - # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, - # directory will be shortened only when prompt doesn't fit or when other parameters demand it - # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). - # If set to `0`, directory will always be shortened to its minimum length. - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this - # many columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least - # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 - # If set to true, embed a hyperlink into the directory. Useful for quickly - # opening a directory in the file manager simply by clicking the link. - # Can also be handy when the directory is shortened, as it allows you to see - # the full directory that was used in previous commands. - typeset -g POWERLEVEL9K_DIR_HYPERLINK=false - - # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON - # and POWERLEVEL9K_DIR_CLASSES below. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 - - # The default icon shown next to non-writable and non-existent directories when - # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. - # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' - - # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different - # directories. It must be an array with 3 * N elements. Each triplet consists of: - # - # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with - # extended_glob option enabled. - # 2. Directory class for the purpose of styling. - # 3. An empty string. - # - # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. - # - # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories - # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=( - # '~/work(|/*)' WORK '' - # '~(|/*)' HOME '' - # '*' DEFAULT '') - # - # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one - # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or - # WORK_NON_EXISTENT. - # - # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an - # option to define custom colors and icons for different directory classes. - # - # # Styling for WORK. - # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 - # - # # Styling for WORK_NOT_WRITABLE. - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255 - # - # # Styling for WORK_NON_EXISTENT. - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255 - # - # If a styling parameter isn't explicitly defined for some class, it falls back to the classless - # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls - # back to POWERLEVEL9K_DIR_FOREGROUND. - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=() - - # Custom prefix. - # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' - - #####################################[ vcs: git status ]###################################### - # Version control background colors. - typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 - typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 - typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 - typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 - typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 - - # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' - - # Untracked files icon. It's really a question mark, your font isn't broken. - # Change the value of this parameter to show a different icon. - typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' - - # Formatter for Git status. - # - # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. - # - # You can edit the function to customize how Git status looks. - # - # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: - # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. - function my_git_formatter() { - emulate -L zsh - - if [[ -n $P9K_CONTENT ]]; then - # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from - # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. - typeset -g my_git_format=$P9K_CONTENT - return - fi - - # Styling for different parts of Git status. - local meta='%7F' # white foreground - local clean='%0F' # black foreground - local modified='%0F' # black foreground - local untracked='%0F' # black foreground - local conflicted='%1F' # red foreground - - local res - - if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then - local branch=${(V)VCS_STATUS_LOCAL_BRANCH} - # If local branch name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show local branch name in full without truncation, delete the next line. - (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line - res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" - fi - - if [[ -n $VCS_STATUS_TAG - # Show tag only if not on a branch. - # Tip: To always show tag, delete the next line. - && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line - ]]; then - local tag=${(V)VCS_STATUS_TAG} - # If tag name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show tag name in full without truncation, delete the next line. - (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line - res+="${meta}#${clean}${tag//\%/%%}" - fi - - # Display the current Git commit if there is no branch and no tag. - # Tip: To always display the current Git commit, delete the next line. - [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line - res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" - - # Show tracking branch name if it differs from local branch. - if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then - res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" - fi - - # Display "wip" if the latest commit's summary contains "wip" or "WIP". - if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then - res+=" ${modified}wip" - fi - - if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then - # ⇣42 if behind the remote. - (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" - # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. - (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " - (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" - elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then - # Tip: Uncomment the next line to display '=' if up to date with the remote. - # res+=" ${clean}=" - fi - - # ⇠42 if behind the push remote. - (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" - (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " - # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. - (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" - # *42 if have stashes. - (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" - # 'merge' if the repo is in an unusual state. - [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" - # ~42 if have merge conflicts. - (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" - # +42 if have staged changes. - (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" - # !42 if have unstaged changes. - (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" - # ?42 if have untracked files. It's really a question mark, your font isn't broken. - # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. - # Remove the next line if you don't want to see untracked files at all. - (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" - # "─" if the number of unstaged files is unknown. This can happen due to - # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower - # than the number of files in the Git index, or due to bash.showDirtyState being set to false - # in the repository config. The number of staged and untracked files may also be unknown - # in this case. - (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" - - typeset -g my_git_format=$res - } - functions -M my_git_formatter 2>/dev/null - - # Don't count the number of unstaged, untracked and conflicted files in Git repositories with - # more than this many files in the index. Negative value means infinity. - # - # If you are working in Git repositories with tens of millions of files and seeing performance - # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output - # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's - # config: `git config bash.showDirtyState false`. - typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 - - # Don't show Git status in prompt for repositories whose workdir matches this pattern. - # For example, if set to '~', the Git repository at $HOME/.git will be ignored. - # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. - typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' - - # Disable the default Git status formatting. - typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true - # Install our own Git status formatter. - typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Custom icon. - # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_VCS_PREFIX='on ' - - # Show status of repositories of these types. You can add svn and/or hg if you are - # using them. If you do, your prompt may become slow even when your current directory - # isn't in an svn or hg repository. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - ##########################[ status: exit code of the last command ]########################### - # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and - # style them independently from the regular OK and ERROR state. - typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true - - # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as - # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=true - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 - - # Status when some part of a pipe command fails but the overall exit status is zero. It may look - # like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 - - # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as - # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=true - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - # Use terse signal names: "INT" instead of "SIGINT(2)". - typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 - - # Status when some part of a pipe command fails and the overall exit status is also non-zero. - # It may look like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 - - ###################[ command_execution_time: duration of the last command ]################### - # Execution time color. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 - # Show duration of the last command if takes at least this many seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 - # Show this many fractional digits. Zero means round to seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 - # Duration format: 1d 2h 3m 4s. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' - # Custom icon. - # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' - - #######################[ background_jobs: presence of background jobs ]####################### - # Background jobs color. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 - # Don't show the number of background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false - # Custom icon. - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ direnv: direnv status (https://direnv.net/) ]######################## - # Direnv color. - typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 - typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### - # Default asdf color. Only used to display tools for which there is no color override (see below). - # Tip: Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and - # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND. - typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7 - - # There are four parameters that can be used to hide asdf tools. Each parameter describes - # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at - # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to - # hide a tool, it gets shown. - # - # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and - # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: - # - # asdf local python 3.8.1 - # asdf global python 3.8.1 - # - # After running both commands the current python version is 3.8.1 and its source is "local" as - # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, - # it'll hide python version in this case because 3.8.1 is the same as the global version. - # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't - # contain "local". - - # Hide tool versions that don't come from one of these sources. - # - # Available sources: - # - # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" - # - local `asdf current` says "set by /some/not/home/directory/file" - # - global `asdf current` says "set by /home/username/file" - # - # Note: If this parameter is set to (shell local global), it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. - typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) - - # If set to false, hide tool versions that are the same as global. - # - # Note: The name of this parameter doesn't reflect its meaning at all. - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. - typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false - - # If set to false, hide tool versions that are equal to "system". - # - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. - typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true - - # If set to non-empty value, hide tools unless there is a file matching the specified file pattern - # in the current directory, or its parent directory, or its grandparent directory, and so on. - # - # Note: If this parameter is set to empty value, it won't hide tools. - # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. - # - # Example: Hide nodejs version when there is no package.json and no *.js files in the current - # directory, in `..`, in `../..` and so on. - # - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' - typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= - - # Ruby version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1 - # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Python version from asdf. - typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Go version from asdf. - typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Node.js version from asdf. - typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2 - # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Rust version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208 - # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' - - # .NET Core version from asdf. - typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Flutter version from asdf. - typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Lua version from asdf. - typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Java version from asdf. - typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1 - typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7 - # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Perl version from asdf. - typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4 - # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Erlang version from asdf. - typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1 - # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Elixir version from asdf. - typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Postgres version from asdf. - typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6 - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' - - # PHP version from asdf. - typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5 - # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Haskell version from asdf. - typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3 - # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Julia version from asdf. - typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2 - # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' - - ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### - # NordVPN connection indicator color. - typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 - typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 - # Hide NordVPN connection indicator when not connected. - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= - # Custom icon. - # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## - # Ranger shell color. - typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 - typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### - # Nnn shell color. - typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 - typeset -g POWERLEVEL9K_NNN_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### - # lf shell color. - typeset -g POWERLEVEL9K_LF_FOREGROUND=0 - typeset -g POWERLEVEL9K_LF_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## - # xplr shell color. - typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 - typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6 - # Custom icon. - # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########################[ vim_shell: vim shell indicator (:sh) ]########################### - # Vim shell indicator color. - typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2 - # Custom icon. - # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### - # Midnight Commander shell color. - typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3 - typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## - # Nix shell color. - typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 - - # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. - # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false - - # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. - # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## - # chezmoi shell color. - typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=0 - typeset -g POWERLEVEL9K_CHEZMOI_SHELL_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ disk_usage: disk usage ]################################## - # Colors for different levels of disk usage. - typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 - typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0 - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0 - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1 - # Thresholds for different levels of disk usage (percentage points). - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 - # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. - typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false - # Custom icon. - # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]########### - # Foreground color. - typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0 - # Text and color for normal (a.k.a. command) vi mode. - typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL - typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2 - # Text and color for visual vi mode. - typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL - typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4 - # Text and color for overtype (a.k.a. overwrite and replace) vi mode. - typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE - typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3 - # Text and color for insert vi mode. - typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= - typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 - - ######################################[ ram: free RAM ]####################################### - # RAM color. - typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 - typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################################[ swap: used swap ]###################################### - # Swap color. - typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0 - typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3 - # Custom icon. - # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ load: CPU load ]###################################### - # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. - typeset -g POWERLEVEL9K_LOAD_WHICH=5 - # Load color when load is under 50%. - typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 - # Load color when load is between 50% and 70%. - typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 - # Load color when load is over 70%. - typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 - # Custom icon. - # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ - # Todo color. - typeset -g POWERLEVEL9K_TODO_FOREGROUND=0 - typeset -g POWERLEVEL9K_TODO_BACKGROUND=8 - # Hide todo when the total number of tasks is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true - # Hide todo when the number of tasks after filtering is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false - - # Todo format. The following parameters are available within the expansion. - # - # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. - # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. - # - # These variables correspond to the last line of the output of `todo.sh -p ls`: - # - # TODO: 24 of 42 tasks shown - # - # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. - # - # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ - # Timewarrior color. - typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255 - typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8 - - # If the tracked task is longer than 24 characters, truncate and append "…". - # Tip: To always display tasks without truncation, delete the following parameter. - # Tip: To hide task names and display just the icon when time tracking is enabled, set the - # value of the following parameter to "". - typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' - - # Custom icon. - # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## - # Taskwarrior color. - typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0 - typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6 - - # Taskwarrior segment format. The following parameters are available within the expansion. - # - # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. - # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. - # - # Zero values are represented as empty parameters. - # - # The default format: - # - # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' - # - # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### - # Color when using local/global history. - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_BACKGROUND=5 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=0 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_BACKGROUND=3 - - # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' - - # Custom icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ cpu_arch: CPU architecture ]################################ - # CPU architecture color. - typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=0 - typeset -g POWERLEVEL9K_CPU_ARCH_BACKGROUND=3 - - # Hide the segment when on a specific CPU architecture. - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ context: user@hostname ]################################## - # Context color when running with privileges. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 - typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 - # Context color in SSH without privileges. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3 - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0 - # Default context color (no privileges, no SSH). - typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 - typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 - - # Context format when running with privileges: user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' - # Context format when in SSH without privileges: user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' - # Default context format (no privileges, no SSH): user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' - - # Don't show context unless running with privileges or in SSH. - # Tip: Remove the next line to always show context. - typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' - - ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### - # Python virtual environment color. - typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 - # Don't show Python version next to the virtual environment name. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false - # If set to "false", won't show virtualenv if pyenv is already shown. - # If set to "if-different", won't show virtualenv if it's the same as pyenv. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false - # Separate environment name from Python version only with a space. - typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ anaconda: conda environment (https://conda.io/) ]###################### - # Anaconda environment color. - typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 - typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 - - # Anaconda segment format. The following parameters are available within the expansion. - # - # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. - # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. - # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). - # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). - # - # CONDA_PROMPT_MODIFIER can be configured with the following command: - # - # conda config --set env_prompt '({default_env}) ' - # - # The last argument is a Python format string that can use the following variables: - # - # - prefix The same as CONDA_PREFIX. - # - default_env The same as CONDA_DEFAULT_ENV. - # - name The last segment of CONDA_PREFIX. - # - stacked_env Comma-separated list of names in the environment stack. The first element is - # always the same as default_env. - # - # Note: '({default_env}) ' is the default value of env_prompt. - # - # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER - # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former - # is empty. - typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' - - # Custom icon. - # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ - # Pyenv color. - typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 - # Hide python version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) - # If set to false, hide python version if it's the same as global: - # $(pyenv version-name) == $(pyenv global). - typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide python version if it's equal to "system". - typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true - - # Pyenv segment format. The following parameters are available within the expansion. - # - # - P9K_CONTENT Current pyenv environment (pyenv version-name). - # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). - # - # The default format has the following logic: - # - # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or - # starts with "$P9K_PYENV_PYTHON_VERSION/". - # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". - typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' - - # Custom icon. - # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ - # Goenv color. - typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4 - # Hide go version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) - # If set to false, hide go version if it's the same as global: - # $(goenv version-name) == $(goenv global). - typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide go version if it's equal to "system". - typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## - # Nodenv color. - typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 - # Hide node version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) - # If set to false, hide node version if it's the same as global: - # $(nodenv version-name) == $(nodenv global). - typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### - # Nvm color. - typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 - # If set to false, hide node version if it's the same as default: - # $(nvm version current) == $(nvm version default). - typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ - # Nodeenv color. - typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 - # Don't show Node version next to the environment name. - typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false - # Separate environment name from Node version only with a space. - typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############################[ node_version: node.js version ]############################### - # Node version color. - typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 - typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 - # Show node version only when in a directory tree containing package.json. - typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ go_version: go version (https://golang.org) ]######################## - # Go version color. - typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 - typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 - # Show go version only when in a go project subdirectory. - typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## - # Rust version color. - typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 - typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 - # Show rust version only when in a rust project subdirectory. - typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ - # .NET version color. - typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 - typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 - # Show .NET version only when in a .NET project subdirectory. - typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ php_version: php version (https://www.php.net/) ]###################### - # PHP version color. - typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0 - typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5 - # Show PHP version only when in a PHP project subdirectory. - typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### - # Laravel version color. - typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1 - typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7 - # Custom icon. - # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## - # Rbenv color. - typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 - # Hide ruby version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) - # If set to false, hide ruby version if it's the same as global: - # $(rbenv version-name) == $(rbenv global). - typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide ruby version if it's equal to "system". - typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ####################[ java_version: java version (https://www.java.com/) ]#################### - # Java version color. - typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1 - typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7 - # Show java version only when in a java project subdirectory. - typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true - # Show brief version. - typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false - # Custom icon. - # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### - # Package color. - typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0 - typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6 - - # Package format. The following parameters are available within the expansion. - # - # - P9K_PACKAGE_NAME The value of `name` field in package.json. - # - P9K_PACKAGE_VERSION The value of `version` field in package.json. - # - # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' - - # Custom icon. - # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## - # Rvm color. - typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 - # Don't show @gemset at the end. - typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false - # Don't show ruby- at the front. - typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ - # Fvm color. - typeset -g POWERLEVEL9K_FVM_FOREGROUND=0 - typeset -g POWERLEVEL9K_FVM_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### - # Lua color. - typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4 - # Hide lua version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) - # If set to false, hide lua version if it's the same as global: - # $(luaenv version-name) == $(luaenv global). - typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide lua version if it's equal to "system". - typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ - # Java color. - typeset -g POWERLEVEL9K_JENV_FOREGROUND=1 - typeset -g POWERLEVEL9K_JENV_BACKGROUND=7 - # Hide java version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) - # If set to false, hide java version if it's the same as global: - # $(jenv version-name) == $(jenv global). - typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide java version if it's equal to "system". - typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ - # Perl color. - typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4 - # Hide perl version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) - # If set to false, hide perl version if it's the same as global: - # $(plenv version-name) == $(plenv global). - typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide perl version if it's equal to "system". - typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ - # Perlbrew color. - typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 - # Show perlbrew version only when in a perl project subdirectory. - typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true - # Don't show "perl-" at the front. - typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ - # PHP color. - typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5 - # Hide php version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) - # If set to false, hide php version if it's the same as global: - # $(phpenv version-name) == $(phpenv global). - typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide PHP version if it's equal to "system". - typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### - # Scala color. - typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0 - typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1 - # Hide scala version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) - # If set to false, hide scala version if it's the same as global: - # $(scalaenv version-name) == $(scalaenv global). - typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide scala version if it's equal to "system". - typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### - # Haskell color. - typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0 - typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3 - - # Hide haskell version if it doesn't come from one of these sources. - # - # shell: version is set by STACK_YAML - # local: version is set by stack.yaml up the directory tree - # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) - typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) - # If set to false, hide haskell version if it's the same as in the implicit global project. - typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true - # Custom icon. - # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ terraform: terraform workspace (https://www.terraform.io) ]################# - # Don't show terraform workspace if it's literally "default". - typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false - # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current terraform workspace gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current terraform workspace is "project_test", its class is TEST because "project_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2 - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0 - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4 - typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0 - # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ terraform_version: terraform version (https://www.terraform.io) ]############## - # Terraform version color. - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]################# - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf' - - #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# - # Show kubecontext only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show kubecontext. - typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' - - # Kubernetes context classes for the purpose of using different colors, icons and expansions with - # different contexts. - # - # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current kubernetes context gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current kubernetes context is "deathray-testing/default", its class is TEST - # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 - # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext - # segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # Within the expansion the following parameters are always available: - # - # - P9K_CONTENT The content that would've been displayed if there was no content - # expansion defined. - # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE - # in the output of `kubectl config get-contexts`. If there is no - # namespace, the parameter is set to "default". - # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the - # output of `kubectl config get-contexts`. - # - # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), - # the following extra parameters are available: - # - # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. - # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. - # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. - # - # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, - # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=gke - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - # - # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=eks - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= - # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' - # Append the current context's namespace if it's not "default". - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' - - # Custom prefix. - # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' - - #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# - # Show aws only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show aws. - typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt' - - # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current AWS profile gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current AWS profile is "company_test", its class is TEST - # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1 - # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # AWS segment format. The following parameters are available within the expansion. - # - # - P9K_AWS_PROFILE The name of the current AWS profile. - # - P9K_AWS_REGION The region associated with the current AWS profile. - typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' - - #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# - # AWS Elastic Beanstalk environment color. - typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 - typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## - # Show azure only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show azure. - typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' - - # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current azure account name gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current azure account is "company_test", its class is TEST because "company_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2 - # typeset -g POWERLEVEL9K_AZURE_TEST_BACKGROUND=0 - # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - - # Azure account name color. - typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7 - typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### - # Show gcloud only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show gcloud. - typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' - # Google cloud color. - typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7 - typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4 - - # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or - # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative - # enough. You can use the following parameters in the expansions. Each of them corresponds to the - # output of `gcloud` tool. - # - # Parameter | Source - # -------------------------|-------------------------------------------------------------------- - # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' - # P9K_GCLOUD_ACCOUNT | gcloud config get-value account - # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project - # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. - # - # Obtaining project name requires sending a request to Google servers. This can take a long time - # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud - # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets - # set and gcloud prompt segment transitions to state COMPLETE. - # - # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL - # and COMPLETE. You can also hide gcloud in state PARTIAL by setting - # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and - # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. - typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' - typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' - - # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name - # this often. Negative value disables periodic polling. In this mode project name is retrieved - # only when the current configuration, account or project id changes. - typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 - - # Custom icon. - # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# - # Show google_app_cred only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show google_app_cred. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' - - # Google application credentials classes for the purpose of using different colors, icons and - # expansions with different credentials. - # - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first - # element in each pair defines a pattern against which the current kubernetes context gets - # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion - # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION - # parameters, you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. - # The first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD - # '*:*test*:*' TEST - # '*' DEFAULT) - # - # If your current Google application credentials is "service_account deathray-testing x@y.com", - # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD # These values are examples that are unlikely - # '*:*test*:*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7 - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by - # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # You can use the following parameters in the expansion. Each of them corresponds to one of the - # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. - # - # Parameter | JSON key file field - # ---------------------------------+--------------- - # P9K_GOOGLE_APP_CRED_TYPE | type - # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id - # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' - - ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### - # Toolbox color. - typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0 - typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3 - # Don't display the name of the toolbox if it matches fedora-toolbox-*. - typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' - # Custom icon. - # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' - - ###############################[ public_ip: public IP address ]############################### - # Public IP color. - typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 - typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ########################[ vpn_ip: virtual private network indicator ]######################### - # VPN IP color. - typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 - typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 - # When on VPN, show just an icon without the IP address. - # Tip: To display the private IP address when on VPN, remove the next line. - typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= - # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN - # to see the name of the interface. - typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' - # If set to true, show one segment per matching network interface. If set to false, show only - # one segment corresponding to the first matching network interface. - # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. - typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false - # Custom icon. - # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### - # IP color. - typeset -g POWERLEVEL9K_IP_BACKGROUND=4 - typeset -g POWERLEVEL9K_IP_FOREGROUND=0 - # The following parameters are accessible within the expansion: - # - # Parameter | Meaning - # ----------------------+------------------------------------------- - # P9K_IP_IP | IP address - # P9K_IP_INTERFACE | network interface - # P9K_IP_RX_BYTES | total number of bytes received - # P9K_IP_TX_BYTES | total number of bytes sent - # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt - # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt - # P9K_IP_RX_RATE | receive rate (since last prompt) - # P9K_IP_TX_RATE | send rate (since last prompt) - typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP' - # Show information for the first network interface whose name matches this regular expression. - # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. - typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' - # Custom icon. - # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #########################[ proxy: system-wide http/https/ftp proxy ]########################## - # Proxy color. - typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 - typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 - # Custom icon. - # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ battery: internal battery ]################################# - # Show battery in red when it's below this level and not connected to power supply. - typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 - typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 - # Show battery in green when it's charging or fully charged. - typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 - # Show battery in yellow when it's discharging. - typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 - # Battery pictograms going from low to high level of charge. - typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079' - # Don't show the remaining time to charge/discharge. - typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false - typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 - - #####################################[ wifi: wifi speed ]##################################### - # WiFi color. - typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0 - typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4 - # Custom icon. - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). - # - # # Wifi colors and icons for different signal strength levels (low to high). - # typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values - # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values - # - # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' - # - # The following parameters are accessible within the expansions: - # - # Parameter | Meaning - # ----------------------+--------------- - # P9K_WIFI_SSID | service set identifier, a.k.a. network name - # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown - # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second - # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 - # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 - # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) - - ####################################[ time: current time ]#################################### - # Current time color. - typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 - typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 - # Format for the current time: 09:51:02. See `man 3 strftime`. - typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' - # If set to true, time will update when you hit enter. This way prompts for the past - # commands will contain the start times of their commands as opposed to the default - # behavior where they contain the end times of their preceding commands. - typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false - # Custom icon. - # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - # typeset -g POWERLEVEL9K_TIME_PREFIX='at ' - - # Example of a user-defined prompt segment. Function prompt_example will be called on every - # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or - # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background - # greeting the user. - # - # Type `p10k help segment` for documentation and a more sophisticated example. - function prompt_example() { - p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n' - } - - # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job - # is to generate the prompt segment for display in instant prompt. See - # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. - # - # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function - # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k - # will replay these calls without actually calling instant_prompt_*. It is imperative that - # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this - # rule is not observed, the content of instant prompt will be incorrect. - # - # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If - # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. - function instant_prompt_example() { - # Since prompt_example always makes the same `p10k segment` calls, we can call it from - # instant_prompt_example. This will give us the same `example` prompt segment in the instant - # and regular prompts. - prompt_example - } - - # User-defined prompt segments can be customized the same way as built-in segments. - typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3 - typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1 - # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt - # when accepting a command line. Supported values: - # - # - off: Don't change prompt when accepting a command line. - # - always: Trim down prompt when accepting a command line. - # - same-dir: Trim down prompt when accepting a command line unless this is the first command - # typed after changing current working directory. - typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always - - # Instant prompt mode. - # - # - off: Disable instant prompt. Choose this if you've tried instant prompt and found - # it incompatible with your zsh configuration files. - # - quiet: Enable instant prompt and don't print warnings when detecting console output - # during zsh initialization. Choose this if you've read and understood - # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. - # - verbose: Enable instant prompt and print a warning when detecting console output during - # zsh initialization. Choose this if you've never tried instant prompt, haven't - # seen the warning, or if you are unsure what this all means. - typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose - - # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. - # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload - # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you - # really need it. - typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true - - # If p10k is already loaded, reload configuration. - # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. - (( ! $+functions[p10k] )) || p10k reload -} - -# Tell `p10k configure` which file it should overwrite. -typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} - -(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} -'builtin' 'unset' 'p10k_config_opts' diff --git a/modules/home/zsh/zshrc-personal.nix b/modules/home/zsh/zshrc-personal.nix deleted file mode 100644 index 545cfd2..0000000 --- a/modules/home/zsh/zshrc-personal.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ zsh ]; - - home.file."./.zshrc-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 zsh - # Set defaults - # - #export EDITOR="nvim" - #export VISUAL="nvim" - - #alias c="clear" - - - ''; -} - diff --git a/profiles/amd/default.nix b/profiles/amd/default.nix index 9c1d8ce..19a9cba 100644 --- a/profiles/amd/default.nix +++ b/profiles/amd/default.nix @@ -1,4 +1,5 @@ -{ host, ... }: { +{ host, ... }: +{ imports = [ ../../hosts/${host} ../../modules/drivers diff --git a/profiles/intel/default.nix b/profiles/intel/default.nix index cc0d3d6..45a4e5b 100644 --- a/profiles/intel/default.nix +++ b/profiles/intel/default.nix @@ -1,4 +1,5 @@ -{ host, ... }: { +{ host, ... }: +{ imports = [ ../../hosts/${host} ../../modules/drivers diff --git a/profiles/nvidia/default.nix b/profiles/nvidia/default.nix index 6beee5f..c10098e 100644 --- a/profiles/nvidia/default.nix +++ b/profiles/nvidia/default.nix @@ -1,4 +1,5 @@ -{ host, ... }: { +{ host, ... }: +{ imports = [ ../../hosts/${host} ../../modules/drivers diff --git a/profiles/vm/default.nix b/profiles/vm/default.nix index cf51f94..b227ae9 100644 --- a/profiles/vm/default.nix +++ b/profiles/vm/default.nix @@ -1,4 +1,5 @@ -{ host, ... }: { +{ host, ... }: +{ imports = [ ../../hosts/${host} ../../modules/drivers diff --git a/wallpapers/Anime-Purple-eyes.png b/wallpapers/Anime-Purple-eyes.png deleted file mode 100644 index 1cfd093..0000000 Binary files a/wallpapers/Anime-Purple-eyes.png and /dev/null differ diff --git a/wallpapers/AnimeGirlNightSky.jpg b/wallpapers/AnimeGirlNightSky.jpg deleted file mode 100644 index 5552326..0000000 Binary files a/wallpapers/AnimeGirlNightSky.jpg and /dev/null differ diff --git a/wallpapers/DW_Pacts.jpg b/wallpapers/DW_Pacts.jpg new file mode 100644 index 0000000..047d11c Binary files /dev/null and b/wallpapers/DW_Pacts.jpg differ diff --git a/wallpapers/Grounded_Wallpaper_4K.jpg b/wallpapers/Grounded_Wallpaper_4K.jpg new file mode 100644 index 0000000..16d5a97 Binary files /dev/null and b/wallpapers/Grounded_Wallpaper_4K.jpg differ diff --git a/wallpapers/Rainnight.jpg b/wallpapers/Rainnight.jpg deleted file mode 100644 index ffa2dc9..0000000 Binary files a/wallpapers/Rainnight.jpg and /dev/null differ diff --git a/wallpapers/beautifulmountainscape.jpg b/wallpapers/beautifulmountainscape.jpg deleted file mode 100644 index f98608c..0000000 Binary files a/wallpapers/beautifulmountainscape.jpg and /dev/null differ diff --git a/wallpapers/edward-elric-fullmetal-alchemist.jpg b/wallpapers/edward-elric-fullmetal-alchemist.jpg new file mode 100644 index 0000000..a7dc3da Binary files /dev/null and b/wallpapers/edward-elric-fullmetal-alchemist.jpg differ diff --git a/wallpapers/fire-nation.jpg b/wallpapers/fire-nation.jpg new file mode 100644 index 0000000..18023d0 Binary files /dev/null and b/wallpapers/fire-nation.jpg differ diff --git a/wallpapers/four-elements.jpg b/wallpapers/four-elements.jpg new file mode 100644 index 0000000..e0003c9 Binary files /dev/null and b/wallpapers/four-elements.jpg differ diff --git a/wallpapers/jablon.png b/wallpapers/jablon.png new file mode 100644 index 0000000..0eeadef Binary files /dev/null and b/wallpapers/jablon.png differ diff --git a/wallpapers/mountainscapedark.jpg b/wallpapers/mountainscapedark.jpg deleted file mode 100644 index c3259d8..0000000 Binary files a/wallpapers/mountainscapedark.jpg and /dev/null differ diff --git a/wallpapers/nix-wallpaper-stripes-logo.png b/wallpapers/nix-wallpaper-stripes-logo.png deleted file mode 100644 index b223bfa..0000000 Binary files a/wallpapers/nix-wallpaper-stripes-logo.png and /dev/null differ diff --git a/wallpapers/rammstein-log-two.jpg b/wallpapers/rammstein-log-two.jpg new file mode 100644 index 0000000..9d076ce Binary files /dev/null and b/wallpapers/rammstein-log-two.jpg differ diff --git a/wallpapers/rammstein-logo-one.jpg b/wallpapers/rammstein-logo-one.jpg new file mode 100644 index 0000000..a05708b Binary files /dev/null and b/wallpapers/rammstein-logo-one.jpg differ diff --git a/wallpapers/rammstein-logo-three.jpg b/wallpapers/rammstein-logo-three.jpg new file mode 100644 index 0000000..8d37315 Binary files /dev/null and b/wallpapers/rammstein-logo-three.jpg differ diff --git a/wallpapers/rammstein-one.jpg b/wallpapers/rammstein-one.jpg new file mode 100644 index 0000000..acb21aa Binary files /dev/null and b/wallpapers/rammstein-one.jpg differ diff --git a/wallpapers/zaney-wallpaper.jpg b/wallpapers/zaney-wallpaper.jpg deleted file mode 100644 index b1f40db..0000000 Binary files a/wallpapers/zaney-wallpaper.jpg and /dev/null differ