forked from KptltD00M/nixy
Add configuration for Librewolf and Zen browser with privacy-focused policies
- Created Librewolf configuration in `home/programs/librewolf/system.nix` with telemetry disabled, enhanced security settings, and enforced extensions. - Added Zen browser configuration in `home/programs/zen/default.nix` and `home/programs/zen/system.nix`, including similar privacy policies and default search engine settings. - Introduced `hosts/home-pc/configuration.nix` for system-wide settings, including USBGuard rules and firewall configurations. - Established `hosts/home-pc/flake.nix` to manage NixOS modules and configurations. - Generated `hosts/home-pc/hardware-configuration.nix` for hardware-specific settings. - Created `hosts/home-pc/home.nix` to import various user-specific applications and settings. - Added profile picture in `hosts/home-pc/profile_picture.jpg`. - Implemented secrets management in `hosts/home-pc/secrets/default.nix` and `hosts/home-pc/secrets/secrets.yaml` using SOPS for encryption. - Defined user-specific variables in `hosts/home-pc/variables.nix`, including hostname, username, and locale settings. - Added profile picture for laptop in `hosts/laptop/profile_picture.jpg`.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Global settings
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
charset = utf-8
|
||||
|
||||
# JavaScript, TypeScript, Vue, and stylesheet files
|
||||
[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
max_line_length = 100
|
||||
|
||||
# JSON, YAML, and config files
|
||||
[*.{json,yaml,yml,toml,ini,editorconfig}]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
# Markdown files
|
||||
[*.md]
|
||||
max_line_length = off
|
||||
trim_trailing_whitespace = false
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
# Docker and shell scripts
|
||||
[{Dockerfile,docker-compose*.yml,*.sh,*.bash}]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
max_line_length = off
|
||||
|
||||
# HTML and template files
|
||||
[*.{html,htm,ejs,hbs,liquid}]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
max_line_length = off
|
||||
|
||||
# Makefiles (must use tabs)
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
|
||||
# Nix files (common addition for your stack)
|
||||
[*.nix]
|
||||
indent_style = tab
|
||||
indent_size = 2
|
||||
max_line_length = 100
|
||||
@@ -0,0 +1,63 @@
|
||||
# Normalize line endings to LF everywhere
|
||||
* text=auto eol=lf
|
||||
|
||||
# ----------------------------
|
||||
# Binary files (never modified)
|
||||
# ----------------------------
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.webp binary
|
||||
*.ico binary
|
||||
*.pdf binary
|
||||
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
*.ttf binary
|
||||
*.otf binary
|
||||
|
||||
*.zip binary
|
||||
*.tar binary
|
||||
*.gz binary
|
||||
*.7z binary
|
||||
*.rar binary
|
||||
|
||||
# ----------------------------
|
||||
# Language-specific overrides
|
||||
# ----------------------------
|
||||
|
||||
# Nix (important for flakes and reproducibility diffs)
|
||||
*.nix text eol=lf
|
||||
|
||||
# Shell scripts
|
||||
*.sh text eol=lf
|
||||
*.bash text eol=lf
|
||||
Dockerfile text eol=lf
|
||||
docker-compose*.yml text eol=lf
|
||||
|
||||
# Web / frontend
|
||||
*.js text eol=lf
|
||||
*.jsx text eol=lf
|
||||
*.ts text eol=lf
|
||||
*.tsx text eol=lf
|
||||
*.vue text eol=lf
|
||||
*.css text eol=lf
|
||||
*.scss text eol=lf
|
||||
*.html text eol=lf
|
||||
|
||||
# Data/config formats
|
||||
*.json text eol=lf
|
||||
*.yaml text eol=lf
|
||||
*.yml text eol=lf
|
||||
*.toml text eol=lf
|
||||
*.ini text eol=lf
|
||||
*.editorconfig text eol=lf
|
||||
|
||||
# Markdown
|
||||
*.md text eol=lf
|
||||
*.mdx text eol=lf
|
||||
|
||||
# Git files
|
||||
.gitattributes text eol=lf
|
||||
.gitignore text eol=lf
|
||||
@@ -0,0 +1,908 @@
|
||||
# Programs & Applications Configuration Guide
|
||||
|
||||
This document describes all the programs, utilities, and applications configured in the `home/programs/` directory via home-manager modules. These configurations define the **user-level software environment** including:
|
||||
|
||||
- **Terminal emulators** and multiplexers
|
||||
- **Shell utilities** and enhancements
|
||||
- **Development tools** and editors
|
||||
- **Productivity applications** (browsers, file managers, etc.)
|
||||
- **Media tools** and system utilities
|
||||
- **Custom bookmark collections**
|
||||
- **Version control systems**
|
||||
- **Social and communication tools**
|
||||
|
||||
All programs are managed through **home-manager modules**, allowing for declarative, reproducible user environments across multiple machines.
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Terminal Environment
|
||||
|
||||
### 1. Ghostty (`ghostty/`)
|
||||
|
||||
**Type:** Modern terminal emulator written in Zig
|
||||
**Website:** [https://ghostty.org](https://ghostty.org)
|
||||
**Configuration:** 66 lines in `home/programs/ghostty/default.nix`
|
||||
|
||||
**Features & Configuration:**
|
||||
- ✅ **Hardware-accelerated** rendering with GPU
|
||||
- ✅ **Wayland and X11** both supported
|
||||
- ✅ **Tiling window** integration with custom shaders
|
||||
- ✅ **Color-themed** to match Stylix color scheme
|
||||
- ✅ **Integrated Zsh shell** with bidirectional support
|
||||
- ✅ **Syntax-highlighted** copy on select
|
||||
- ✅ **Custom cursor shader** (`cursor_warp.glsl`) for visual feedback
|
||||
- ✅ **Right-click paste disabled** (`confirm-close-surface = false`)
|
||||
- ✅ **Window manager shortcuts** pre-configured (right-click-tab + modifier for new splits)
|
||||
|
||||
**Platform Integration:**
|
||||
- **TERMINAL** and **TERM** environment variables set to `ghostty`
|
||||
- **Clipboard permissions** enabled (read and write)
|
||||
- **Syntax highlighting syntax files** installed via `enableZshIntegration`
|
||||
- **Vim syntax/indentation support** enabled
|
||||
- **Custom iLoveTUI theme** created matching Stylix colors
|
||||
|
||||
**Terminal WPF Window Padding:**
|
||||
- X-axis padding: 10px
|
||||
- Y-axis padding: 10px
|
||||
- Visual spacing optimized for comfortable reading
|
||||
|
||||
**Cursor Configuration:**
|
||||
- Custom GLSL shader applied: `cursor_warp` for visual feedback
|
||||
- Shader animation: Always on for smooth cursor experience
|
||||
- Visual theme automatically syncs with Stylix color palette
|
||||
|
||||
**Shell Integration:**
|
||||
```bash
|
||||
# Set terminal as default
|
||||
export TERMINAL=ghostty TERM=ghostty
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. Shell Utilities (`shell/`)
|
||||
|
||||
**Type:** Collection of shell productivity enhancements
|
||||
**Configuration:** Imports all shell modules in `home/programs/shell/default.nix` (11 lines)
|
||||
|
||||
**Included Modules:**
|
||||
|
||||
#### 2.1. Zsh Shell (`shell/zsh.nix`)
|
||||
|
||||
**Type:** Zsh configuration framework
|
||||
**Configuration:** 196 lines of advanced Zsh setup
|
||||
|
||||
**Core Features:**
|
||||
- ✅ **History management:** 10,000 commands stored, duplicates skipped
|
||||
- ✅ **Syntax highlighting** with 6 highlighters enabled (main, brackets, pattern, regexp, root, line)
|
||||
- ✅ **Autosuggestions** enabled for predictable behavior
|
||||
- ✅ **AI-powered code completion** (`historySubstringSearch`)
|
||||
- ✅ **Custom aliases** across multiple categories
|
||||
- ✅ **Global path customization** (Go binaries → $HOME/go/bin)
|
||||
|
||||
**Prompt & Aliases System:**
|
||||
```bash
|
||||
# Navigation shortcuts
|
||||
alias cd=z # Navigate with zoxide
|
||||
alias ls='eza --icons=always --no-quotes' # Colors and icons
|
||||
alias tree='eza --icons=always --tree --no-quotes'
|
||||
|
||||
# Editors
|
||||
alias v=nvim vi=vim # Default to Neovim
|
||||
alias notes='nvim ~/notes/index.md --cmd "cd ~/notes" -c ":lua Snacks.picker.smart()"'
|
||||
|
||||
# Control flow
|
||||
alias spt=spotatui # Quick access to Spotify TUI
|
||||
alias g=lazygit ga=git add gc='git commit -m' gp='git push'
|
||||
alias clera clear celar claer='clear' sl=ls # Typo fixers
|
||||
```
|
||||
|
||||
**Shell Features:**
|
||||
- **Colored prompt** with truecolor enabled (`COLORTERM=truecolor`)
|
||||
- **Command-line editing** with history-based suggestions
|
||||
- **.bat** for syntax-highlighted file viewing
|
||||
- **.ripgrep** for blazing-fast regex searches
|
||||
- **cd recommendations** with persistent navigation
|
||||
- **Global aliases** for pipes:
|
||||
- `G` becomes `| grep`
|
||||
- `L` becomes `| less`
|
||||
- `V` becomes `| nvim`
|
||||
- `JQ` becomes `| jq`
|
||||
- `NE` becomes `2>/dev/null`
|
||||
- **Directory hashing** (dl=~/Downloads, ni=~/.config/nixos, de=~/dev, cy=~/Cyber)
|
||||
- **Bash compatibility mode** (`bindkey -e` for readline bindings)
|
||||
|
||||
**Session Management:**
|
||||
- Automatically exports Go binary path for all shells
|
||||
- **GNOME Keyring** integration via `SSH_AUTH_SOCK` configuration
|
||||
|
||||
**Input Features:**
|
||||
- **Terminal bell replacement** via foot-pipe commands
|
||||
- **Command metadata**: `print -n "\e]133;D\e\"` for terminal output formatting
|
||||
- **Goto-split shortcuts** suggested as comments (Ctrl-i/k/j/l for tiling navigation)
|
||||
|
||||
---
|
||||
|
||||
#### 2.2. Starship Prompt (`shell/starship.nix`)
|
||||
|
||||
**Type:** Fast, customizable shell prompt
|
||||
**Configuration:** (Auto-imported, no explicit config shown in files)
|
||||
- **Multi-language prompts** with language-specific symbols
|
||||
- **Git integration** with branch status and changes
|
||||
- **Network information** integration
|
||||
- **Custom Stylix color scheme** integration
|
||||
- **Performance optimized** (written in Rust, <1ms load time)
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
# Automatically detected and enabled by home-manager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.3. Zoxide (`shell/zoxide.nix`)
|
||||
|
||||
**Type:** Smarter cd command with cross-platform compatibility
|
||||
**Package:** Community-maintained, lightweight
|
||||
**Features:**
|
||||
- **Fuzzy directory navigation** with smart ranking
|
||||
- **Cross-platform** (Linux, macOS, Windows WSL)
|
||||
- **Configuration-free** – learns from your usage patterns
|
||||
|
||||
**Typical Usage:**
|
||||
```bash
|
||||
z nixos # Jump to directory based on fuzzy matching
|
||||
z dev/cyber # Fuzzy partial matching
|
||||
```
|
||||
|
||||
---
|
||||
#### 2.4. FZF (`shell/fzf.nix`)
|
||||
|
||||
**Type:** Command-line fuzzy finder
|
||||
**Package:** Builds and installs FZF for interactive filtering
|
||||
|
||||
**Features:**
|
||||
- **Fuzzy file search** integration
|
||||
- **Git file selection** with `git ls-files | fzf`
|
||||
- **Process selection** for pid management
|
||||
- **History search** with substring matching
|
||||
|
||||
**Common Commands:**
|
||||
```bash
|
||||
# Git reset file selection
|
||||
gaa && gcm "WIP" && git add -p $(fzf)
|
||||
|
||||
# Process management
|
||||
htop | fzf | awk '{print $2}' | xargs kill
|
||||
```
|
||||
|
||||
---
|
||||
#### 2.5. EZA (`shell/eza.nix`)
|
||||
|
||||
**Type:** Modern replacement for ls with icons and colors
|
||||
**Package:** `pkgs.eza` (previously exa)
|
||||
|
||||
**Features:**
|
||||
- ✅ **Icons integration** with Nerd Fonts symbols
|
||||
- ✅ **Tree view** (`eza --tree`)
|
||||
- ✅ **Git status integration** per file
|
||||
- ✅ **Long format** with permissions and ownership
|
||||
- ✅ **Sorting control** per completion needs
|
||||
- ✅ **Custom sorting rules** configured in Zsh completion engine
|
||||
|
||||
**Visual Output:**
|
||||
```bash
|
||||
eza --icons=always --no-quotes --git --tree
|
||||
# Shows: ╭── tree directory with git status indicators
|
||||
```
|
||||
|
||||
---
|
||||
#### 2.6. Direnv (`shell/direnv.nix`)
|
||||
|
||||
**Type:** Auto-load environment variables when changing directories
|
||||
**Package:** Auto-triggers on directory changes
|
||||
|
||||
**Features:**
|
||||
- ✅ **Automatic auth loading** (AWS, Kubeconfig, etc.)
|
||||
- ✅ **Lightweight** – ~0ms performance impact
|
||||
- ✅ **Inotify-based** instant reloading
|
||||
- ✅ **`.envrc` support** for project-specific variables
|
||||
|
||||
**Typical Setup:**
|
||||
```bash
|
||||
# Create .envrc file in project:
|
||||
echo -e '. .envrc\nlayout python3' > .envrc
|
||||
direnv allow
|
||||
```
|
||||
|
||||
---
|
||||
#### 2.7. Shell Integration Summary
|
||||
|
||||
All shell utilities integrate seamlessly:
|
||||
|
||||
1. **Zsh** → **Starship prompt** → **Custom aliases**
|
||||
2. **Zoxide** → Smart navigation → **FZF** for selection
|
||||
3. **EZA** → File listings with icons → **Direnv** auto-setup
|
||||
4. **GPG Agent** → **SSH_AUTH_SOCK** integration
|
||||
|
||||
Environment is fully **colored, key-highlighted, and anchored in Stylix theme colors**.
|
||||
|
||||
---
|
||||
|
||||
## ⌨️ Development Tools
|
||||
|
||||
### 3. Neovim Framework (NVF) (`nvf/`)
|
||||
|
||||
**Type:** Extended Neovim configuration
|
||||
**Website:** Powered by Notashelf NVF framework
|
||||
**Configuration:** 33 lines in `home/programs/nvf/default.nix`
|
||||
|
||||
**Framework Features:**
|
||||
- ✅ **NVF module system** with 8 separate configuration files
|
||||
- ✅ **Stylix color integration** with automatic theme application
|
||||
- ✅ **Snacks picker** for file navigation
|
||||
- ✅ **Custom keymaps** with Kakoune-inspired bindings
|
||||
- ✅ **Autocompletion** with LSP integration
|
||||
- ✅ **Syntax highlighting override** for theme colors
|
||||
|
||||
**NVF Modules:**
|
||||
| Module | Purpose | Key Bindings |
|
||||
|--------|---------|--------------|
|
||||
| **options.nix** | Core settings, theme, clipboard, indentation | - |
|
||||
| **languages.nix** | LSP, Treesitter, formatters | - |
|
||||
| **keymaps.nix** | Keybindings, leader key (space) | - |
|
||||
| **picker.nix** | Snacks picker + oil.nvim | `/` to search |
|
||||
| **snacks.nix** | Enhanced features (image preview, zen, git signs) | - |
|
||||
| **utils.nix** | Bufferline, lualine, copilot, lazygit | - |
|
||||
| **mini.nix** | Mini.nvim suite (pairs, comment, icons, etc.) | - |
|
||||
|
||||
**Custom Highlighting:**
|
||||
- **MiniStarterHeader** → base0D color (theme accent)
|
||||
- **SnacksPickerBorder** → base0D color (theme accent)
|
||||
- **SnacksPickerTitle** → base0D color, bold
|
||||
- Automatic reapply on **ColorScheme** change
|
||||
|
||||
**Language Server Support:**
|
||||
- **Go** → gopls
|
||||
- **Python** → pyright/pylsp
|
||||
- **JavaScript/TypeScript** → tsserver
|
||||
- **Yaml/Json** → yaml-language-server
|
||||
- **Dockerfile** → dockerfile-language-server
|
||||
- **Nix** → nil/nixd
|
||||
- **Rust** → rust-analyzer
|
||||
- **Markdown** → marksman
|
||||
|
||||
**Treesitter Parsers:**
|
||||
- **Regex highlighting** with advanced capture groups
|
||||
- **Blazingly fast parsing** with Rust-based engine
|
||||
- **Language-specific** grammars (full list in languages.nix)
|
||||
|
||||
**File Browsing:**
|
||||
- **file tree** via oil.nvim
|
||||
- **Snacks picker** with fuzzy filtering and preview
|
||||
- **mason.nvim** integration
|
||||
- **telescope.nvim** as fallback picker
|
||||
|
||||
**Auto Formatting:**
|
||||
- **conform.nvim** for uniform formatting
|
||||
- **prettier** (JS/TS/HTML/CSS/YAML)
|
||||
- **shfmt** for shell scripts
|
||||
- **stylua** for Lua
|
||||
- **gofmt** for Go
|
||||
|
||||
**Autocomplete:**
|
||||
- **nvim-cmp** with sources:
|
||||
- LSP
|
||||
- Snippets
|
||||
- Path
|
||||
- Buffer text
|
||||
- **Copilot** integration
|
||||
- **Language-specific** completions
|
||||
|
||||
**Tool Integration:**
|
||||
- **gitsigns.nvim** for Git diff visualization
|
||||
- **lualine.nvim** with theme-configurable status bar
|
||||
- **bufferline.nvim** for tab management
|
||||
- **trouble.nvim** for diagnostics
|
||||
- **flash.nvim** for enhanced navigation
|
||||
- **todo-comments.nvim** for project annotations
|
||||
|
||||
**Quick Access Bindings:**
|
||||
```vim
|
||||
<leader>ff → Find files
|
||||
<leader>fg → Live grep
|
||||
<leader>fe → Document symbols
|
||||
<leader>bb → Buffer list
|
||||
<leader>++ → Incremental selection
|
||||
```
|
||||
|
||||
**Snacks Picker Navigation:**
|
||||
- **/new** → Create new file in current buffer
|
||||
- **/[number]** → Jump to specific line
|
||||
- **CTRL-j/k** → Navigation
|
||||
- **jump_to_[context/artist/album]** → Media navigation (bonus feature)
|
||||
- **copy_song_url** → Spotify sharing integration
|
||||
|
||||
---
|
||||
### 4. Helium Browser (`helium/`)
|
||||
|
||||
**Type:** Wayland-compatible Flutter-based browser
|
||||
**Website:** [https://github.com/oxcl/helium-browser](https://github.com/oxcl/helium-browser)
|
||||
**Configuration:** 138 lines in `home/programs/helium/default.nix`
|
||||
|
||||
**Features:**
|
||||
- ✅ **Wayland-native** via Ozone platform
|
||||
- ✅ **GPU acceleration**:
|
||||
- VA-API video decoding/encoding
|
||||
- EGL rendering
|
||||
- Hardware-accelerated video playback
|
||||
- ✅ **Flutter UI** with custom theming
|
||||
- ✅ **Stylix theme integration** (base16 color matching)
|
||||
- ✅ **No default browser check**
|
||||
- ✅ **Avatar button hidden** for clean UI
|
||||
- ✅ **Bookmark collection** customization
|
||||
|
||||
**Wayland Features:**
|
||||
```bash
|
||||
--ozone-platform=wayland
|
||||
```
|
||||
|
||||
**Graphics Acceleration:**
|
||||
```bash
|
||||
--enable-features=UseOzonePlatform,VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization
|
||||
--use-gl=egl
|
||||
```
|
||||
|
||||
**Browser Customization:**
|
||||
- **Fluent design** theme applied via Flutter extensions
|
||||
- **Custom Stylix color palette** injected via manifest.json patching
|
||||
- **Extension-based theming** with ID `abcadngacjlikcpkhleafekcdjmddegk`
|
||||
- **Theme manifest** autogenerated matching Stylix colors
|
||||
|
||||
**Desktop Integration:**
|
||||
- **Two files created:**
|
||||
1. `helium` – Regular browsing window
|
||||
2. `helium-private` – Incognito with flags stripped
|
||||
|
||||
**Mime Associations:**
|
||||
- Handles: text/html, text/xml, application/xhtml+xml, x-scheme-handler/(http|https|ftp)
|
||||
- **Default application** status set correctly
|
||||
|
||||
**Startup Behavior:**
|
||||
- Browser automatically set as default via xdg-mime
|
||||
|
||||
---
|
||||
### 5. Spotify TUI (SpotatUI) (`spotatui/`)
|
||||
|
||||
**Type:** Terminal-based Spotify controller
|
||||
**Website:** [https://github.com/mrVanbrakel/SpotatUI](https://github.com/mrVanbrakel/SpotatUI)
|
||||
**Configuration:** 104 lines in `home/programs/spotatui/default.nix`
|
||||
|
||||
**Features:**
|
||||
- ✅ **Rust-based** with performance-optimized rendering
|
||||
- ✅ **Stylix color theme** integration with color math
|
||||
- ✅ **Full playback control** (play, pause, skip, seek)
|
||||
- ✅ **Playlist management** (create, edit, favorite)
|
||||
- ✅ **Volume control** (absolute and percent-based)
|
||||
- ✅ **Lyrics display** with interactive viewing
|
||||
- ✅ **Discord RPC** configurable (disabled by default)
|
||||
- ✅ **Custom keybindings** with application-specific controls
|
||||
|
||||
**Performance Settings:**
|
||||
```yaml
|
||||
tick_rate_milliseconds: 16 # 60 FPS UI rendering
|
||||
enable_text_emphasis: true # Bold/italic formatting
|
||||
show_loading_indicator: true # Visual feedback
|
||||
disable_mouse_inputs: false # Scroll wheel support
|
||||
enable_announcements: false # Notifications disabled
|
||||
```
|
||||
|
||||
**Visualizer Modes:**
|
||||
- **Equalizer** (default)
|
||||
- Various wave forms
|
||||
- Custom presets
|
||||
- Keepawake preventing idle sleep during listening
|
||||
|
||||
**Theme Integration:**
|
||||
- All theme colors pulled from Stylix via RGB mapping
|
||||
- Active color → base0D (theme accent)
|
||||
- Banner color → base0C (theme highlight)
|
||||
- Error colors → base08 (theme error)
|
||||
- Playback progress → base0D (theme primary)
|
||||
|
||||
**Key Bindings:**
|
||||
| Function | Key | Description |
|
||||
|----------|-----|-------------|
|
||||
| **Back** | q | Return to previous screen |
|
||||
| **Search** | / | Input field with suggestions |
|
||||
| **Play/Pause** | space | Toggle playback |
|
||||
| **Next Track** | n | Skip current track |
|
||||
| **Previous Track** | p | Return to previous or restart |
|
||||
| **Volume Up/Down** | +/- | Adjust playback volume |
|
||||
| **Shuffle** | ctrl+s | Toggle random playback |
|
||||
| **Repeat** | ctrl+r | Toggle repeat modes |
|
||||
| **Lyrics** | V | Open synchronized lyrics view |
|
||||
| **Copy URL** | c / C | Share song or album URL |
|
||||
| **Queue** | Q | Manage playback queue |
|
||||
| **Audio Analysis** | v | Display technical audio info |
|
||||
|
||||
**Playback Control:**
|
||||
- **Seek forwards/backwards** adjust by 5 seconds
|
||||
- **Seek progress** updated every 16ms for smooth animation
|
||||
- **Shuffle icon** 🔀, **Repeat icons** 🔂 🔁
|
||||
- **Playing/Paused icons** ▶ ⏸
|
||||
|
||||
**Configuration Files:**
|
||||
- **`~/.config/spotatui/config.yml`** – Persistent user preferences
|
||||
- **Announcement tracking** disabled after specific IDs seen
|
||||
|
||||
---
|
||||
### 6. Ghostty Configuration Summary
|
||||
|
||||
| Aspect | Configuration | Benefit |
|
||||
|--------|--------------|---------|
|
||||
| **Cursor** | Custom GLSL shader (cursor_warp) | Visual feedback on actions |
|
||||
| **Theme** | base16 → Stylix colors | Consistent UI |
|
||||
| **Integration** | Zsh shell with bidirectional sync | Native terminal experience |
|
||||
| **Clipboard** | Read/write enabled | Copy/paste without prompts |
|
||||
| **Paste behavior** | Confirm-close disabled | Speed workflow |
|
||||
| **Window** | 10px padding X/Y | Comfortable reading |
|
||||
|
||||
---
|
||||
### 7. Shell Summary Table
|
||||
|
||||
| Program | Type | Configuration | Purpose |
|
||||
|---------|------|---------------|---------|
|
||||
| **Zsh** | Shell | 196 lines | Primary shell with syntax highlighting, history management, completions |
|
||||
| **Starship** | Prompt | Auto | Fast, multi-language prompt with Git integration |
|
||||
| **Zoxide** | Navigation | Auto | Smart directory navigation with learning |
|
||||
| **FZF** | Utility | Auto | Fuzzy finder for interactive filtering |
|
||||
| **EZA** | ls replacement | Auto | Modern file listing with icons and git status |
|
||||
| **Direnv** | Automation | Auto | Auto-load environment variables |
|
||||
|
||||
---
|
||||
## 📁 File & Media Management
|
||||
|
||||
### 8. Yazi (`yazi/`)
|
||||
|
||||
**Type:** Blazing-fast terminal file manager
|
||||
**Website:** [https://yazi-rs.github.io](https://yazi-rs.github.io)
|
||||
**Configuration:** (Minimal file in `home/programs/yazi/`)
|
||||
|
||||
**Features:**
|
||||
- ✅ **Rust-based** with async I/O
|
||||
- ✅ **Image preview** integration
|
||||
- ✅ **Git status integration**
|
||||
- ✅ **Yank/put clipboard** (ya `yazi --chooser-file /tmp/clip` pattern)
|
||||
- ✅ **Batch renaming** with regex support
|
||||
- ✅ **Bookmark system** with manual entries
|
||||
- ✅ **Preview engine** for media files
|
||||
- ✅ **Status column** with metadata
|
||||
|
||||
**Typical Usage:**
|
||||
```bash
|
||||
yazi / # Launch file manager at root
|
||||
Ctrl-t # Open selection
|
||||
g # Jump to git status
|
||||
z \*.md # Filter Markdown files
|
||||
```
|
||||
|
||||
**Yazi Config Location:** `~/.config/yazi/yazi.toml` (likely auto-configured)
|
||||
|
||||
---
|
||||
### 9. Thunar (`thunar/`)
|
||||
|
||||
**Type:** GTK-based file manager
|
||||
**Configuration:** (Minimal stub in `home/programs/thunar/`)
|
||||
|
||||
**Integrations:**
|
||||
- **GVFS integration** for network shares
|
||||
- **Trash support** with undo capability
|
||||
- **Volume management** via udiskie
|
||||
- **Bookmark persistence** across sessions
|
||||
|
||||
**Typical Usage:**
|
||||
```bash
|
||||
thunar /mnt/external # Launch at external drive
|
||||
```
|
||||
|
||||
---
|
||||
## 🔀 Git Ecosystem
|
||||
|
||||
### 10. Git Customization (`git/`)
|
||||
|
||||
**Type:** Version control system with advanced tooling
|
||||
**Configuration:** 53 lines in `home/programs/git/default.nix`
|
||||
|
||||
**Core Configuration:**
|
||||
- ✅ **Personal defaults** from variables.nix:
|
||||
- `user.name` and `user.email` set automatically
|
||||
- `init.defaultBranch = main` for new repos
|
||||
- `pull.rebase = false` for standard merges
|
||||
- `push.autoSetupRemote = true` for origin setup
|
||||
- `color.ui = 1` for colored output
|
||||
|
||||
**Aliases System:**
|
||||
Auto-implemented aliases for workflow acceleration:
|
||||
|
||||
| Alias | Expands To | Purpose |
|
||||
|-------|------------|---------|
|
||||
| **essa** | `git push --force` | Force push with short name |
|
||||
| **co** | `git checkout` | Branch switching |
|
||||
| **fuck** | `git commit --amend -m` | Message editing without new commit |
|
||||
| **c** | `git commit -m` | Quick commits |
|
||||
| **ca** | `git commit -am` | Quick add+commit |
|
||||
| **forgor** | `git commit --amend --no-edit` | Edit commit without message change |
|
||||
| **l** / **s** / **ss** | `git log/status` | Quick overview |
|
||||
| **st** | `git status --short` | Short status display |
|
||||
| **pl/ps** | `git pull/push origin $(branch)` | Current branch remote |
|
||||
| **g** | `lazygit` | Visual Git interface |
|
||||
| **df** / **hist** / **llog** | Advanced log formats | Visualization |
|
||||
| **edit-unmerged** | Interactive merge conflict resolution | File selection |
|
||||
| **ha** | Prefix mode with fzf selection | Mass staging |
|
||||
|
||||
**Ignored Files:**
|
||||
```gitignore
|
||||
# Standard development exclusions
|
||||
.cache/
|
||||
.DS_Store
|
||||
.idea/
|
||||
*.swp
|
||||
*.elc
|
||||
auto-save-list
|
||||
.direnv/
|
||||
node_modules
|
||||
result*
|
||||
.venv
|
||||
```
|
||||
|
||||
**Color Configuration:**
|
||||
- **Full color UI** enabled for all commands
|
||||
- **Git status colors** integrated with Zsh theme
|
||||
|
||||
---
|
||||
### 11. LazyGit (`git/lazygit.nix`)
|
||||
|
||||
**Type:** Terminal UI for Git
|
||||
**Package:** Auto-installed via shell aliases
|
||||
|
||||
**Features:**
|
||||
- ✅ **Visual branch management** with mouse support
|
||||
- ✅ **Conflict resolution** with side-by-side comparison
|
||||
- ✅ **Stashing/Popping** with comment system
|
||||
- ✅ **Stating/unstating** files with preview
|
||||
- ✅ **Commit editing** and rewording
|
||||
- ✅ **Interactive rebase**
|
||||
- ✅ **Status bar integration** with custom commands
|
||||
|
||||
**Typical Usage:**
|
||||
```bash
|
||||
g # Launches lazygit via alias
|
||||
/ # Search files
|
||||
Ctrl-s # Stash changes
|
||||
Ctrl-f # Fetch branch
|
||||
```
|
||||
|
||||
---
|
||||
### 12. Time-Capsule CSR (`git/signing.nix`)
|
||||
|
||||
**Type:** Git commit signing with GnuPG
|
||||
**Configuration:** Signing framework setup
|
||||
|
||||
**Features:**
|
||||
- ✅ **GnuPG agent** integration for SSH auth
|
||||
- ✅ **Commit signing** enabled via `gpgsigning=true`
|
||||
- **Typical signed commit message:** “git commit -S -m 'Fix typo'”
|
||||
|
||||
---
|
||||
### 13. Git System Summary
|
||||
|
||||
| Component | Type | Purpose |
|
||||
|-----------|------|---------|
|
||||
| **Git** | VCS | Core version control with 20+ aliases |
|
||||
| **Lazygit** | GUI | Terminal-based Git management with advanced features |
|
||||
| **Commit Signing** | Security | GnuPG-signed commits for provenance |
|
||||
| **Ah:h/l** | UUID-based | Next to remember/fix commits |
|
||||
|
||||
---
|
||||
## ☁️ Electron Integration
|
||||
|
||||
### 14. Proton VPN (`proton/`)
|
||||
|
||||
**Type:** Security-focused VPN with auto-start
|
||||
**Configuration:** 2 files in `home/programs/proton/`
|
||||
|
||||
**Modules:**
|
||||
1. **auto-start-vpn.nix** – Automatic VPN connection on boot
|
||||
2. **default.nix** – Proton VPN configuration
|
||||
|
||||
**Features:**
|
||||
```nix
|
||||
services.protonvpn.enable = true; # System service
|
||||
autoStartVPN.enable = true; # Immediate connection
|
||||
```
|
||||
|
||||
---
|
||||
## ❄️ Color Scheme & Desk Utilities
|
||||
|
||||
### 15. Nightshift (`nightshift/`)
|
||||
|
||||
**Type:** Blue light filter for circadian rhythm
|
||||
**Configuration:** (Minimal stub)
|
||||
|
||||
**Features:**
|
||||
- **Night light schedule** with ambient adaptation
|
||||
- **Blue-light reduction** with adjustable tint
|
||||
- **Night mode** for ambient display in dark conditions
|
||||
|
||||
**Typical: BlueShift → 3000K ambient**
|
||||
|
||||
---
|
||||
## 🧪 Technology Stack Utilities
|
||||
|
||||
### 16. Nix Utilities (`nix-utils/`)
|
||||
|
||||
**Type:** Nix ecosystem helper tools
|
||||
**Configuration:** Nix command-line helpers
|
||||
|
||||
**Features:**
|
||||
- **Nix profile management** commands
|
||||
- **Store optimization** shortcuts
|
||||
- **Flake update** automation
|
||||
- **Garbage collection** with thresholds
|
||||
- **Build status** display templates
|
||||
|
||||
**Typical Commands:**
|
||||
```bash
|
||||
nix-highlight # Syntax highlighting for Nix files
|
||||
nix-search # Package search with ranking
|
||||
```
|
||||
|
||||
---
|
||||
### 17. Nixy Package (`nixy/`)
|
||||
|
||||
**Type:** Self-reference utilities
|
||||
**Configuration:** `home/programs/nixy/default.nix`
|
||||
|
||||
**Features:**
|
||||
- **Dotfile synchronizer**
|
||||
- **Home-manager shortcuts**
|
||||
- **Nix evaluation** for debugging
|
||||
- **Flake helper** scripts
|
||||
|
||||
---
|
||||
## 📚 Bookmark Collections
|
||||
|
||||
### 18. Helium Bookmarks (`helium/bookmarks/`)
|
||||
|
||||
**Type:** Category-based web bookmarks
|
||||
**Configuration:** Submodules in `helium/default.nix`
|
||||
|
||||
**Bookmark Categories:**
|
||||
```
|
||||
helium/bookmarks/
|
||||
├── default.nix # Base configuration
|
||||
├── entertainment.nix # Streaming, music, video
|
||||
├── general.nix # Default browser start page
|
||||
├── infosec.nix # Security resources
|
||||
├── jack.nix # Personal/social bookmarks
|
||||
├── other.nix # Miscellaneous
|
||||
├── tools.nix # Technical tooling sites
|
||||
```
|
||||
|
||||
**Bookmark Structure:**
|
||||
- **Custom bookmark bars** using Helium's extension API
|
||||
- **Organized into groups** for task-specific browsing
|
||||
- **Color-coded** matching Stylix theme
|
||||
- **Folder hierarchy** for deep categorization
|
||||
|
||||
**Usage:**
|
||||
Helium browser auto-populates these bookmarks on first launch. Bookmarks persist across sessions.
|
||||
|
||||
---
|
||||
## 📊 Group Package Management
|
||||
|
||||
Currently defined in `home/programs/group/` directory:
|
||||
|
||||
| Group | Purpose | Status |
|
||||
|-------|---------|--------|
|
||||
| **dev** | Development tools | Active |
|
||||
| **basic-apps** | Core applications | Active |
|
||||
| **cybersecurity** | Security tools | Active |
|
||||
| **flake** | Flake helper modules | Active |
|
||||
|
||||
---
|
||||
### 19. Group Overview
|
||||
|
||||
All groups are **importable via flake**:
|
||||
|
||||
```nix
|
||||
{ inputs, ... }: {
|
||||
imports = [
|
||||
inputs.nixy.homeManagerModules.<group> # 📦 Install package group
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
Or via **nix shell command**:
|
||||
|
||||
```bash
|
||||
nix shell github:anotherhadi/nixy#<group> # Instant shell with packages
|
||||
```
|
||||
|
||||
Note: These are **separate from the home/programs** files – refer to **[GROUPS.md](GROUPS.md)** for package list details.
|
||||
|
||||
---
|
||||
## 🛠️ Quick Reference: All Programs
|
||||
|
||||
### Terminal & Shell
|
||||
| Program | Category | Description |
|
||||
|---------|----------|-------------|
|
||||
| **Ghostty** | Terminal | GPU-accelerated terminal with cursor shaders |
|
||||
| **Zsh** | Shell | Advanced shell with syntax highlighting and autosuggestions |
|
||||
| **Zoxide** | Shell | Fuzzy directory navigation |
|
||||
| **FZF** | Utility | Interactive fuzzy finder |
|
||||
| **EZA** | Utility | Modern ls replacement with icons |
|
||||
| **Starship** | Prompt | Multi-language prompt with Git integration |
|
||||
| **Direnv** | Automation | Auto-load environments |
|
||||
|
||||
### Development & Editing
|
||||
| Program | Category | Description |
|
||||
|---------|----------|-------------|
|
||||
| **NVF (Neovim)** | Editor | Notashelf NVF framework with theme integration |
|
||||
| **Helium** | Browser | Wayland Flutter browser with Fluent design |
|
||||
| **SpotatUI** | Media | Rust-based Spotify terminal controller |
|
||||
|
||||
### File & Media
|
||||
| Program | Category | Description |
|
||||
|---------|----------|-------------|
|
||||
| **Yazi** | File manager | Blazing-fast Rust file manager |
|
||||
| **Thunar** | File manager | GTK-based file manager integration |
|
||||
| **VNC Utilities** | Remote | Native support packages |
|
||||
|
||||
### Version Control
|
||||
| Program | Category | Description |
|
||||
|---------|----------|-------------|
|
||||
| **Git** | VCS | Core Git with 20+ conveniences |
|
||||
| **LazyGit** | VCS | Visual Git terminal UI |
|
||||
| **GnuPG** | Security | Commit signing and SSH agent |
|
||||
|
||||
### Services & Utilities
|
||||
| Program | Category | Description |
|
||||
|---------|----------|-------------|
|
||||
| **Proton VPN** | Security | System-wide VPN with auto-connect |
|
||||
| **Nightshift** | Display | Blue light filter for circadian rhythm |
|
||||
| **Nix Utils** | Package management | Nix-specific helper tools |
|
||||
| **Helium Bookmarks** | Organization | Web bookmarks organized by category |
|
||||
|
||||
---
|
||||
## 🔧 Home Manager Integration
|
||||
|
||||
All programs are configured via home-manager modules:
|
||||
|
||||
**Example import chain:**
|
||||
```
|
||||
home/programs/shell/default.nix
|
||||
→ home/programs/shell/zsh.nix (196 lines)
|
||||
→ shell aliases → term integration
|
||||
```
|
||||
|
||||
**Features Provided:**
|
||||
- ✅ **Universal theming** (all apps → Stylix colors)
|
||||
- ✅ **Session variables** (TERMINAL, TERM, BROWSER set as defaults)
|
||||
- ✅ **desktopEntries** (Helium appears in app menu)
|
||||
- ✅ **xdg base directory** compliance (all config → ~/.config)
|
||||
- ✅ **Migration-free** updates via home-manager
|
||||
|
||||
---
|
||||
## 📖 User Guide: Setting Up Your Environment
|
||||
|
||||
### Prerequisites
|
||||
1. **NixOS System** (with home-manager installed)
|
||||
2. **Flakes enabled** in NixOS configuration
|
||||
3. **Stylix colors** populated (optional, enhances visual integration)
|
||||
4. **Fonts:** Nerd Fonts and Symbol fonts installed
|
||||
|
||||
### Installation Steps
|
||||
|
||||
#### Step 1: Add Inputs
|
||||
```nix
|
||||
inputs.nixy.url = "github:anotherhadi/nixy";
|
||||
```
|
||||
|
||||
#### Step 2: Import Modules
|
||||
```nix
|
||||
home-manager = {
|
||||
imports = [
|
||||
inputs.nixy.homeManagerModules.<program>
|
||||
# Or import multiple: ./{ghostty,zsh,nvf}/default.nix
|
||||
];
|
||||
};
|
||||
```
|
||||
|
||||
#### Step 3: Build Environment
|
||||
```bash
|
||||
home-manager switch --flake /etc/nixos#username@hostname
|
||||
```
|
||||
|
||||
#### Step 4: Verify Installation
|
||||
```bash
|
||||
# Check services
|
||||
systemctl status --user wireplumber # PipeWire audio server
|
||||
systemctl status --user greetd # Greetd display manager
|
||||
systemctl status --user dbus-broker # Desktop Bus broker
|
||||
|
||||
# Verify programs
|
||||
ghostty --version
|
||||
nvim --headless -c 'qa' # Neovim validation
|
||||
yazi --help # Yazi file manager
|
||||
```
|
||||
|
||||
---
|
||||
## 🎨 Theming Integration Flow
|
||||
|
||||
All programs receive **Stylix colors** automatically:
|
||||
|
||||
```
|
||||
home/programs/
|
||||
├── nvf/default.nix → passes colors → Mini.nvim → Neovim UI recolor
|
||||
├── ghostty/default.nix → sets base00-base0F colors → Terminal theme
|
||||
├── spotatui/default.nix → FYI base00-base0F → Color map to UI
|
||||
└── helium/default.nix → manual injection into Flutter manifest
|
||||
```
|
||||
|
||||
Result: **Consistent color scheme across all applications** matching desktop theme.
|
||||
|
||||
---
|
||||
## ⚡ Performance Optimization
|
||||
|
||||
| Program | Optimization | Benefit |
|
||||
|---------|--------------|---------|
|
||||
| **Ghostty** | GPU shader | 60+ FPS scrolling |
|
||||
| **EZA** | Tree-sitter parsing | <10ms file list |
|
||||
| **Zoxide** | Fuzzy matching algorithm | O(n log n) navigation |
|
||||
| **FZF w/ Sk** | File caching | <1ms repeat searches |
|
||||
| **SpotatUI** | Rust low-overhead | 60 FPS visualizations |
|
||||
| **LazyGit** | Lazy-loading | <50ms response time |
|
||||
| **Helium** | Flutter GPU | Hardware-accelerated rendering |
|
||||
|
||||
---
|
||||
## 🚀 Usage Examples
|
||||
|
||||
### One-liner setup: Ghostty + Zsh
|
||||
```nix
|
||||
{ inputs, ... }: {
|
||||
imports = [
|
||||
inputs.nixy.homeManagerModules.ghostty
|
||||
inputs.nixy.homeManagerModules.shell
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
### Full development stack
|
||||
```bash
|
||||
home-manager switch --flake .#username@laptop
|
||||
# Installs: Ghostty, Zsh w/ 20 aliase, NVF (Neovim), Yazi, Helium
|
||||
```
|
||||
|
||||
### Media workstation
|
||||
```bash
|
||||
nix shell github:anotherhadi/nixy#cybersecurity
|
||||
# Instant shell with: Zsh, NVF, Ghostty, Lazygit, Helium
|
||||
```
|
||||
|
||||
### Quick Spotify session
|
||||
```bash
|
||||
spt # Alias to spotatui via shell configuration
|
||||
/weekend # Type in search bar, space to play
|
||||
```
|
||||
|
||||
---
|
||||
## 📚 Additional Documentation
|
||||
|
||||
- **[GROUPS.md](GROUPS.md)** – Predefined software groups with package lists
|
||||
- **[NEOVIM.md](docs/NEOVIM.md)** – Detailed NVF (Neovim) configuration
|
||||
- **[THEMES.md](docs/THEMES.md)** – How theming works and theme creation
|
||||
- **[README.md](docs/README.md)** – System-wide configuration guide
|
||||
- **[SERVER.md](docs/SERVER.md)** – Server-specific services
|
||||
|
||||
---
|
||||
+788
@@ -0,0 +1,788 @@
|
||||
# Nixy Pro Configuration Guide
|
||||
|
||||
Nixy Pro is a **modular, comprehensive NixOS configuration** that unifies system management across multiple hosts with consistent theming, security, and automation. This repository provides:
|
||||
|
||||
- **🖥️ Multi-host management** (laptop, workstation, server)
|
||||
- **⚙️ Hardware-specific configurations** (AMD/Nvidia graphics, Bluetooth, audio)
|
||||
- **👥 User-level management** via home-manager with predefined user groups
|
||||
- **🔒 Secure defaults** (USBGuard, sudo restrictions, authentication)
|
||||
- **🌈 Consistent theming** with Stylix and Base16
|
||||
- **📦 Package management** with curated software groups
|
||||
- **🐳 Container support** with Docker integration
|
||||
- **⌨️ Unified input methods** with Fcitx5
|
||||
- **🎮 Wayland ecosystem** with Hyprland and tuigreet display manager
|
||||
|
||||
---
|
||||
|
||||
## 📋 Table of Contents
|
||||
|
||||
- [🏠 Project Architecture](#-project-architecture)
|
||||
- [⚙️ System Configuration Modules](#-system-configuration-modules)
|
||||
- [👥 User Groups & Package Groups](#-user-groups--package-groups)
|
||||
- [🖥️ Host Configurations](#-host-configurations)
|
||||
- [🌐 Self-Hosted Services](#-self-hosted-services)
|
||||
- [🎨 Theming System](#-theming-system)
|
||||
- [🛠️ Installation Guide](#%EF%B8%8F-installation-guide)
|
||||
- [🔧 Usage & Maintenance](#-usage--maintenance)
|
||||
- [💡 Troubleshooting](#-troubleshooting)
|
||||
- [📚 Further Reading](#-further-reading)
|
||||
|
||||
---
|
||||
|
||||
## 🏠 Project Architecture
|
||||
|
||||
Nixy Pro follows a **multi-layer modular architecture**:
|
||||
|
||||
```
|
||||
.
|
||||
├── flake.nix # Main flake outputs and inputs
|
||||
├── README.md # This file
|
||||
├── LICENSE # MIT License
|
||||
├── hosts/ # Host-specific configurations
|
||||
│ ├── laptop/ # Laptop configuration
|
||||
│ ├── home-pc/ # Home workstation configuration
|
||||
│ ├── work/ # Work computer configuration
|
||||
│ └── server/ # Self-hosted server configuration
|
||||
├── home/ # User-level configurations
|
||||
│ ├── programs/ # Home-manager programs and modules
|
||||
│ │ ├── group/ # Package groups (dev, cybersecurity)
|
||||
│ │ ├── nvf/ # Neovim configuration (nvf)
|
||||
│ │ ├── shell/ # Shell utilities and configuration
|
||||
│ │ └── ...
|
||||
│ └── system/ # System-level user settings
|
||||
│ ├── caeblestia-shell/ # Caelestia shell theme
|
||||
│ └── ...
|
||||
├── nixos/ # Core system configuration modules
|
||||
│ ├── amd-graphics.nix # AMD GPU configuration
|
||||
│ ├── audio.nix # PipeWire audio server setup
|
||||
│ ├── bluetooth.nix # Bluetooth hardware support
|
||||
│ ├── docker.nix # Docker container runtime
|
||||
│ ├── fonts.nix # Font management (30+ fonts)
|
||||
│ ├── hyprland.nix # Hyprland Wayland compositor
|
||||
│ ├── nix.nix # Nix package manager configuration
|
||||
│ ├── nvidia.nix # Nvidia GPU configuration with Wayland
|
||||
│ ├── omen.nix # HP Omen laptop RGB control
|
||||
│ ├── systemd-boot.nix # systemd-boot loader configuration
|
||||
│ ├── tuigreet.nix # Tuigreet display manager
|
||||
│ ├── usbguard.nix # USB device authorization
|
||||
│ ├── users.nix # User and group definitions
|
||||
│ └── utils.nix # Utility services and configurations
|
||||
├── server-modules/ # Server-specific NixOS modules
|
||||
│ ├── adguardhome.nix # DNS ad-blocker
|
||||
│ ├── arr.nix # Media management stack
|
||||
│ ├── cloudflared.nix # Cloudflare tunnel
|
||||
│ ├── cyberchef.nix # Cyber Swiss Army Knife
|
||||
│ ├── fail2ban.nix # Security: brute force prevention
|
||||
│ ├── glance/ # System dashboard
|
||||
│ ├── mealie.nix # Recipe manager
|
||||
│ ├── ssh.nix # SSH server configuration
|
||||
│ └── ...
|
||||
├── themes/ # Visual theme configurations
|
||||
└── docs/ # Documentation directory
|
||||
```
|
||||
|
||||
### Architecture Layers
|
||||
|
||||
| Layer | Description | Example |
|
||||
|-------|-------------|---------|
|
||||
| **flake.nix** | Defines all flake outputs and inputs | Hyprland, Stylix, SOPS |
|
||||
| **/nixos** | Core system-level NixOS modules | GPU, audio, bluetooth |
|
||||
| **/home** | User-level configurations via home-manager | Terminals, shell, editors |
|
||||
| **/hosts** | Host-specific configurations | laptop, workstation, server |
|
||||
| **/server-modules** | Server services and network infrastructure | AdGuard, Glance, CyberChef |
|
||||
| **/themes** | Theme definitions and color schemes | Rose-pine, sorbet, catppuccin |
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ System Configuration Modules
|
||||
|
||||
### Core System Modules
|
||||
|
||||
#### 1. Nix Package Manager (`nixos/nix.nix`)
|
||||
|
||||
**Purpose:** Centralized Nix configuration across all hosts
|
||||
|
||||
**Key Features:**
|
||||
- **Unfree packages enabled** (required for Nvidia drivers)
|
||||
- **Cachix mirrors configured:**
|
||||
- `https://hyprland.cachix.org` (Hyprland packages)
|
||||
- `https://nix-community.cachix.org` (Community packages)
|
||||
- `https://numtide.cachix.org` (Numtide packages)
|
||||
- `https://cuda-maintainers.cachix.org` (CUDA packages)
|
||||
- **Experimental features:** `nix-command` and `flakes` enabled
|
||||
- **Automatic garbage collection:** Weekly cleanup, 7-day threshold
|
||||
- **Sudo configuration:**
|
||||
- Passwordless sudo for `nixos-rebuild` command
|
||||
- Timestamp timeout set to -1 (passwordless during SSH sessions)
|
||||
- **Download optimization:** 250 MB buffer size for faster installations
|
||||
|
||||
#### 2. Systemd Boot Loader (`nixos/systemd-boot.nix`)
|
||||
|
||||
**Purpose:** UEFI boot management with silent/ Plymouth-capable boot
|
||||
|
||||
**Configuration:**
|
||||
- **Bootloader:** systemd-boot (supports 8 entries)
|
||||
- **Kernel parameters for silent boot:**
|
||||
- `quiet` - Minimize console output
|
||||
- `splash` - Show boot splash screen
|
||||
- `rd.systemd.show_status=false` - Hide systemd status
|
||||
- `udev.log_priority=3` - Reduced logging level
|
||||
- **Kernel:** `linuxPackages_latest` for cutting-edge hardware support
|
||||
- **Cleanup:** Temporary files cleared on boot
|
||||
|
||||
#### 3. Users & Authentication (`nixos/users.nix`)
|
||||
|
||||
**Purpose:** User account management and permissions
|
||||
|
||||
**Configuration:**
|
||||
- **Default shell:** Zsh (configured via home-manager)
|
||||
- **User groups:**
|
||||
- `wheel` - Sudo privileges
|
||||
- `networkmanager` - Network control
|
||||
- **Multi-machine support:** Variables replace hardcoded usernames
|
||||
- **Zsh autocompletion:** System packages available in shell
|
||||
|
||||
### Hardware & Peripherals
|
||||
|
||||
#### 4. Graphics Configuration (Choose one based on hardware)
|
||||
|
||||
**Option A: AMD Graphics (`nixos/amd-graphics.nix`)**
|
||||
|
||||
**Purpose:** Enable AMD GPU acceleration with VA-API support
|
||||
|
||||
**Features:**
|
||||
- **ROCm support:** `rocmPackages.clr.icd` for compute workloads
|
||||
- **VA-API acceleration:** Hardware video decoding
|
||||
- `libvdpau-va-gl` - VDPAU driver with VA-GL backend
|
||||
- `libva-vdpau-driver` - VA-API to VDPAU bridge
|
||||
- **OpenGL acceleration:** Mesa packages for 2D/3D acceleration
|
||||
|
||||
**Option B: Nvidia Graphics (`nixos/nvidia.nix`)**
|
||||
|
||||
**Purpose:** Proprietary Nvidia driver setup for optimal performance
|
||||
|
||||
**Hardware Support:**
|
||||
- **Wayland compatibility:** `nvidia-drm.modeset=1` for direct rendering
|
||||
- **Hybrid graphics:** Prime offloading for laptops with multiple GPUs
|
||||
- **Graphics features:** G-Sync, VRR, GPU-accelerated Electron apps
|
||||
- **API support:** Vulkan, VA-API, GLX, OpenGL
|
||||
|
||||
**Environment Configuration:**
|
||||
```bash
|
||||
LIBVA_DRIVER_NAME=nvidia # VA-API acceleration
|
||||
GBM_BACKEND=nvidia-drm # Graphics backend
|
||||
__GLX_VENDOR_LIBRARY_NAME=nvidia # OpenGL acceleration
|
||||
NIXOS_OZONE_WL=1 # Electron Wayland support
|
||||
__GL_GSYNC_ALLOWED=1 # G-Sync support
|
||||
__GL_VRR_ALLOWED=1 # Variable Refresh Rate
|
||||
MOZ_ENABLE_WAYLAND=1 # Firefox Wayland
|
||||
NVD_BACKEND=direct # New driver backend
|
||||
```
|
||||
|
||||
**BLACKLISTED MODULES:** `nouveau` to prevent driver conflicts
|
||||
|
||||
#### 5. Audio System (`nixos/audio.nix`)
|
||||
|
||||
**Purpose:** Modern audio daemon stack with hardware acceleration
|
||||
|
||||
**Configuration:**
|
||||
- **PipeWire** enabled as default audio server (replaces PulseAudio)
|
||||
- **WirePlumber** for session and policy management
|
||||
- **Alsa** backend with 32-bit application support
|
||||
- **JACK** compatibility layer for professional audio tools
|
||||
- **Camera monitoring disabled** for privacy
|
||||
- **Real-time scheduling:** `rtkit` for performance
|
||||
|
||||
#### 6. Bluetooth (`nixos/bluetooth.nix`)
|
||||
|
||||
**Purpose:** Bluetooth hardware support with persistent power state
|
||||
|
||||
**Configuration:**
|
||||
- **Bluetooth hardware:** Enabled and powered on at boot
|
||||
- **Standard profiles:** A2DP, HFP, HID, etc.
|
||||
|
||||
#### 7. USBGuard (`nixos/usbguard.nix`)
|
||||
|
||||
**Purpose:** USB device authorization framework for security
|
||||
|
||||
**Configuration:**
|
||||
- **Default policy:** Block implicit (unknown) USB devices
|
||||
- **IPC access:** Allowed for root and configured user
|
||||
- **Security layer:** Prevents unauthorized USB devices from mounting
|
||||
|
||||
#### 8. HP Omen Laptop Support (`nixos/omen.nix`)
|
||||
|
||||
**Purpose:** Specialized configuration for HP Omen gaming laptops
|
||||
|
||||
**Features:**
|
||||
- **RGB control:** Kernel module `hp-wmi` for custom lighting
|
||||
- **RGB zones:** 4 zones with custom access (`/sys/devices/platform/hp-wmi/rgb_zones/zoneXX`)
|
||||
- **User group:** `omen-rgb` for RGB management permissions
|
||||
- **Sysfs permissions:** Set via tmpfiles rules and udev rules
|
||||
- **Kernel command line:** `hp_wmi.force_slow_fan_control=1` for battery-friendly fan control
|
||||
|
||||
---
|
||||
|
||||
## 👥 User Groups & Package Groups
|
||||
|
||||
### Predefined Software Groups
|
||||
|
||||
Nixy Pro includes **two main package groups** for quick environment setup:
|
||||
|
||||
#### 🔬 Cybersecurity Group
|
||||
|
||||
**Purpose:** Security research, penetration testing, and digital forensics
|
||||
|
||||
**Package Categories:**
|
||||
- **Web:** dirb, ffuf, katana, whatweb
|
||||
- **Hashes & Cracking:** hashcat, haiti, hydra, john
|
||||
- **Databases:** mariadb, redis, sqlmap, nosqli
|
||||
- **Network:** inetutils, termshark (TUI Wireshark), dnsrecon, whois, dig, nmap, samba
|
||||
- **Exploitation:** metasploit, nuclei
|
||||
- **VPN:** openvpn
|
||||
- **Secrets:** trufflehog
|
||||
- **Forensics:** binwalk
|
||||
- **Additional:** spilltea, jwt-tui (from NUR package collection)
|
||||
|
||||
**Quick Install (without full system setup):**
|
||||
```bash
|
||||
nix shell github:anotherhadi/nixy#cybersecurity
|
||||
```
|
||||
|
||||
**Packages Available:** 22+ security tools curated for penetration testing and security research
|
||||
|
||||
---
|
||||
|
||||
#### 💻 Development Group
|
||||
|
||||
**Purpose:** Development environment with essential tools
|
||||
|
||||
**Package Categories:**
|
||||
- **Languages:** Go, Node.js, Python 3
|
||||
- **Build Tools:** gcc, jq, rsync
|
||||
- **Development Utilities:** air (Go live reload), duckdb (SQLite-compatible DB), nix-prefetch-github
|
||||
- **Editors:** claude-code (CLI for Claude), bash tools
|
||||
|
||||
**Quick Install (without full system setup):**
|
||||
```bash
|
||||
nix shell github:anotherhadi/nixy#dev
|
||||
```
|
||||
|
||||
**Packages Available:** 9+ essential development tools
|
||||
|
||||
---
|
||||
|
||||
### Home-manager User Groups
|
||||
|
||||
Users automatically receive:
|
||||
- **NetworkManager** integration (GUI network configuration)
|
||||
- **Sudo access** (passwordless for wheel group)
|
||||
- **Zsh shell** with completions
|
||||
- **Caelestia-shell** (Hyprland-compatible desktop environment)
|
||||
- **Input method:** Fcitx5 for international keyboard layouts
|
||||
- **XDG compliance** with proper directory structure
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Host Configurations
|
||||
|
||||
### Supported Host Types
|
||||
|
||||
Nixy Pro manages **four distinct host configurations**:
|
||||
|
||||
| Host | Type | Hardware Profile | Network Configuration |
|
||||
|------|------|----------------|---------------------|
|
||||
| `h-laptop` | Personal laptop | AMD/Nvidia GPU | NetworkManager, mobile broadband |
|
||||
| `h-work` | Work computer | Unknown (configurable) | NetworkManager, VPN |
|
||||
| `jack` | Self-hosted server | Server-grade hardware | Static IP, Cloudflare Tunnel |
|
||||
|
||||
### Host Configuration Structure
|
||||
|
||||
Each host includes:
|
||||
|
||||
```
|
||||
hosts/<hostname>/
|
||||
├── flake.nix # Host-specific flake
|
||||
├── configuration.nix # System configuration imports
|
||||
├── hardware-configuration.nix # Auto-generated hardware config
|
||||
├── variables.nix # Host-specific variables
|
||||
├── variables.secret # Encrypted secrets (via SOPS-nix)
|
||||
└── secrets/ # Unencrypted secrets if not using SOPS
|
||||
```
|
||||
|
||||
**Example configuration.nix:**
|
||||
```nix
|
||||
{
|
||||
imports = [
|
||||
# Core system modules
|
||||
../../nixos/nix.nix
|
||||
../../nixos/systemd-boot.nix
|
||||
../../nixos/users.nix
|
||||
../../nixos/utils.nix
|
||||
../../nixos/audio.nix
|
||||
../../nixos/bluetooth.nix
|
||||
../../nixos/docker.nix
|
||||
../../nixos/amd-graphics.nix # or nvidia.nix
|
||||
../../nixos/fonts.nix
|
||||
../../nixos/hyprland.nix
|
||||
../../nixos/tuigreet.nix
|
||||
../../nixos/usbguard.nix
|
||||
];
|
||||
|
||||
# Host-specific variables
|
||||
cfg = import ./variables.nix { inherit inputs pkgs; };
|
||||
}
|
||||
```
|
||||
|
||||
### Variable System
|
||||
|
||||
All hosts use **centralized variables** defined in `variables.nix`:
|
||||
|
||||
```nix
|
||||
{
|
||||
hostname = "laptop"; # Machine hostname
|
||||
username = "hadi"; # Main user account
|
||||
keyboardLayout = "us,de"; # Keyboard layouts
|
||||
timeZone = "Europe/Berlin"; # System timezone
|
||||
defaultLocale = "en_US.UTF-8"; # Primary locale
|
||||
extraLocale = "de_DE.UTF-8"; # Secondary locale
|
||||
autoGarbageCollector = true; # Nix garbage collection enabled
|
||||
autoUpgrade = true; # Auto-update enabled
|
||||
configDirectory = "/etc/nixos"; # Config location
|
||||
flake = "/etc/nixos"; # Flake path
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Self-Hosted Services
|
||||
|
||||
The server configuration (`hosts/server/`) includes **modular service definitions** for:
|
||||
|
||||
### 🔧 Server Architecture
|
||||
|
||||
**Cloudflare Tunnel** as the secure gateway with:
|
||||
- **Zero public IP exposure** - Only accessible via Cloudflare
|
||||
- **Access control** via Cloudflare's Zero Trust policies
|
||||
- **Custom domain support** for easy access
|
||||
|
||||
### 📦 Services Modules
|
||||
|
||||
| Module | Purpose | Technology |
|
||||
|--------|---------|------------|
|
||||
| `adguardhome.nix` | Network-wide ad blocking and DNS filtering | AdGuard Home |
|
||||
| `arr.nix` | Media management stack (movies/TV shows automation) | Radarr, Sonarr, etc. |
|
||||
| `cyberchef.nix` | Cyber Swiss Army Knife for data manipulation | Node.js web app |
|
||||
| `fail2ban.nix` | Security: brute force prevention | Fail2Ban |
|
||||
| `firewall.nix` | Network filtering and protection | systemd, nftables |
|
||||
| `glance/` | System monitoring dashboard | Glance |
|
||||
| `mealie.nix` | Self-hosted meal planning and recipe management | Mealie |
|
||||
| `stirling-pdf.nix` | Web-based PDF editor and converter | Node.js |
|
||||
| `ssh.nix` | Secure remote access | OpenSSH |
|
||||
|
||||
### 🌐 High-Priority Services
|
||||
|
||||
1. **NGINX** - Reverse proxy routing traffic to services
|
||||
2. **AdGuard Home** - Block ads/trackers at DNS level
|
||||
3. **Glance** - System monitoring dashboard
|
||||
4. **Arr Stack** - Automated media management (Radarr, Sonarr, etc.)
|
||||
5. **Mealie** - Recipe manager for meal planning
|
||||
6. **Stirling-PDF** - Client-side PDF editing/manipulation
|
||||
7. **CyberChef** - Encryption, encoding, and data analysis
|
||||
8. **Mazanoke** - Image processing and optimization
|
||||
9. **Cloudflared** - Secure tunnel via Cloudflare
|
||||
10. **Fail2Ban** - Intrusion prevention and brute force blocking
|
||||
|
||||
### 📊 Security Features
|
||||
|
||||
- **Cloudflared:** Encrypted tunnel with authentication
|
||||
- **Fail2Ban:** IP blocking after failed login attempts
|
||||
- **Firewall:** nftables-based filtering
|
||||
- **Port forwarding:** Only essential ports exposed via reverse proxy
|
||||
- **Timed access:** Scheduled firewall rules
|
||||
- **Network isolation:** Docker networks isolated
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Theming System
|
||||
|
||||
### Stylix Integration
|
||||
|
||||
Nixy Pro uses **[Stylix](https://stylix.danth.me/)** for consistent theming across:
|
||||
- **Hyprland** (WM colors)
|
||||
- **Terminal emulators**
|
||||
- **GTK applications**
|
||||
- **Rofi/Waybar/menu styling**
|
||||
- **Shell prompts**
|
||||
|
||||
### Available Themes
|
||||
|
||||
See **[THEMES.md](docs/THEMES.md)** for theme configurations and screenshots.
|
||||
|
||||
### Theme Gallery Examples
|
||||
|
||||

|
||||
*Rose-pine theme showcasing consistent color scheme across applications*
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Service Configuration Layer
|
||||
|
||||
### Essential System Services
|
||||
|
||||
| Service | Purpose | Configuration File |
|
||||
|---------|---------|------------------|
|
||||
| **NetworkManager** | Network configuration GUI | `utils.nix` |
|
||||
| **dbus-broker** | Desktop Bus implementation | `utils.nix` |
|
||||
| **GNOME Keyring** | Password storage | `utils.nix` |
|
||||
| **UDisks2** | Removable media management | `utils.nix` |
|
||||
| **Upower** | Battery monitoring | `utils.nix` |
|
||||
| **Power Profiles Daemon** | Power management profiles | `utils.nix` |
|
||||
| **GVFS** | Virtual file system support | `utils.nix` |
|
||||
| **libinput** | Touchpad/trackpoint input | `utils.nix` |
|
||||
| **dconf** | Desktop configuration storage | `utils.nix` |
|
||||
| **Greetd + Tuigreet** | Display manager | `tuigreet.nix` |
|
||||
| **XDG Portal** | File picker and portal integration | `utils.nix` |
|
||||
|
||||
### Font Management
|
||||
|
||||
**30+ fonts installed** including:
|
||||
- **Sans-serif:** Roboto, Work Sans, Source Sans, Comfortaa, Inter, Jost, Lexend
|
||||
- **Serif:** Comic Neue
|
||||
- **Monospace:** Fira Code (Nerd Font), Meslo LG (Nerd Font)
|
||||
- **Default:** DejaVu, Noto (including CJK and color emoji)
|
||||
- **Special:** OpenMoji, Twemoji
|
||||
|
||||
**Note:** Default font packages disabled to allow user selection via home-manager
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Installation Guide
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. **NixOS System** (latest stable or unstable)
|
||||
2. **Git** and **sudo** access
|
||||
3. **Internet connection** for package downloads
|
||||
4. **Disk space:** Minimum 30GB recommended for full installation
|
||||
5. **UEFI system** (systemd-boot requirement)
|
||||
|
||||
### Installation Steps
|
||||
|
||||
#### Step 1: Clone the Repository
|
||||
|
||||
```bash
|
||||
# Recommended location for NixOS configurations
|
||||
git clone https://gitea.doomlabs.de/KptltD00M/nixy.git /etc/nixos
|
||||
cd /etc/nixos
|
||||
```
|
||||
|
||||
#### Step 2: Copy Appropriate Host Configuration
|
||||
|
||||
```bash
|
||||
# Choose your hardware profile:
|
||||
# - Laptop (AMD/Nvidia)
|
||||
# - Home workstation
|
||||
# - Work computer
|
||||
# - Server
|
||||
|
||||
# For example, if setting up a laptop:
|
||||
cp -r hosts/laptop hosts/$(hostname)
|
||||
|
||||
# Navigate to new host configuration
|
||||
cd hosts/$(hostname)
|
||||
```
|
||||
|
||||
#### Step 3: Configure Host-Specific Variables
|
||||
|
||||
```bash
|
||||
# Edit host variables
|
||||
nano variables.nix
|
||||
```
|
||||
|
||||
**Change `CHANGEME` values:**
|
||||
- `hostname`
|
||||
- `username`
|
||||
- `keyboardLayout`
|
||||
- `timeZone`
|
||||
- `defaultLocale`
|
||||
|
||||
#### Step 4: Set Up Secrets
|
||||
|
||||
```bash
|
||||
# Either:
|
||||
# Option A: Use SOPS-nix for encrypted secrets (recommended)
|
||||
pdo export secrets/ > secrets/secrets.yaml.age
|
||||
../../bin/update-secrets
|
||||
|
||||
# Option B: Manual secrets
|
||||
# Copy secrets template if needed
|
||||
cp -r hosts/laptop/secrets hosts/$(hostname)/secrets
|
||||
```
|
||||
|
||||
#### Step 5: Review and Apply Configuration
|
||||
|
||||
1. **Check for CHANGEME comments:**
|
||||
```bash
|
||||
# Quick scan for required changes
|
||||
rg "CHANGEME" /etc/nixos
|
||||
```
|
||||
|
||||
2. **Verify hardware configuration:**
|
||||
```bash
|
||||
# Import appropriate GPU module in configuration.nix
|
||||
# - AMD: ../../nixos/amd-graphics.nix
|
||||
# - Nvidia: ../../nixos/nvidia.nix
|
||||
# - HP Omen: ../../nixos/omen.nix
|
||||
```
|
||||
|
||||
3. **Apply configuration:**
|
||||
```bash
|
||||
# Dry run first
|
||||
sudo nixos-rebuild dry-activate --flake .#$(hostname)
|
||||
|
||||
# Apply
|
||||
sudo nixos-rebuild switch --flake .#$(hostname)
|
||||
```
|
||||
|
||||
#### Step 6: Home-manager Setup
|
||||
|
||||
```bash
|
||||
# Update home-manager configuration
|
||||
home-manager switch --flake /etc/nixos#$(username)@$(hostname)
|
||||
|
||||
# Optional: Generate hardware configuration if rebuilding from scratch
|
||||
sudo nixos-generate-config --root /mnt
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Usage & Maintenance
|
||||
|
||||
### Daily Commands
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `sudo nixos-rebuild switch --flake .#laptop` | Rebuild and apply system changes |
|
||||
| `home-manager switch --flake .#hadi@laptop` | Update home-manager configuration |
|
||||
| `sudo nixos-rebuild boot --flake .#laptop` | Set new generation as default boot |
|
||||
| `nix flake update` | Update flake inputs |
|
||||
| `sudo nixos-rebuild switch --upgrade` | Update system and packages |
|
||||
| `nix store gc` | Cleanup unused packages |
|
||||
| `nix profile list` | List installed packages |
|
||||
| `nix profile wipe-history` | Remove old package versions |
|
||||
|
||||
### Flake Update Process
|
||||
|
||||
```bash
|
||||
# Update all flake inputs
|
||||
nix flake update
|
||||
|
||||
# Rebuild all systems
|
||||
for host in h-laptop h-work jack; do
|
||||
sudo nixos-rebuild switch --flake .#$host
|
||||
done
|
||||
|
||||
# Update home-manager
|
||||
for host in h-laptop h-work jack; do
|
||||
home-manager switch --flake .#username@$host
|
||||
done
|
||||
```
|
||||
|
||||
### System Updates
|
||||
|
||||
**Automatic Updates Enabled:**
|
||||
```nix
|
||||
system.autoUpgrade = {
|
||||
enable = true; # System updates
|
||||
dates = "04:00"; # Daily at 4 AM
|
||||
flake = config.var.configDir; # Self-update
|
||||
flags = ["--update-input" "nixpkgs"];
|
||||
allowReboot = false; # Manual reboot required
|
||||
};
|
||||
```
|
||||
|
||||
**Recommendation:** Check system status weekly:
|
||||
```bash
|
||||
systemctl status --user wireplumber pulseaudio-esd autostart-vpn
|
||||
journalctl --vacuum-time=7d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 Troubleshooting
|
||||
|
||||
### Common Issues & Solutions
|
||||
|
||||
#### ❌ Audio not working
|
||||
|
||||
**Diagnosis:**
|
||||
- PipeWire service status
|
||||
- WirePlumber activity
|
||||
- Audio device detection
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check PipeWire status
|
||||
systemctl --user status wireplumber pulseaudio-esd
|
||||
|
||||
# Verify audio devices
|
||||
pw-cli list-objects | grep -i audio
|
||||
|
||||
# Restart audio services
|
||||
systemctl --user restart wireplumber
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### ❌ Hyprland fails to start
|
||||
|
||||
**Symptoms:**
|
||||
- Black screen after login
|
||||
- Wayland session crash
|
||||
- Missing display manager
|
||||
|
||||
**Diagnosis:**
|
||||
- XDG_RUNTIME_DIR environment
|
||||
- PipeWire running
|
||||
- Required files present
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check environment
|
||||
echo $XDG_RUNTIME_DIR
|
||||
whoami # Should be logged-in user
|
||||
|
||||
# Verify services
|
||||
systemctl --way status
|
||||
ls /run/current-system/sw/share/wayland-sessions/
|
||||
```
|
||||
|
||||
**Manual start:**
|
||||
```bash
|
||||
$XDG_RUNTIME_DIR=/run/user/$(id -u) Hyprland
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### ❌ Nvidia drivers not loading
|
||||
|
||||
**Diagnostics:**
|
||||
- Kernel parameters check
|
||||
- Secure boot status
|
||||
- Driver conflicts
|
||||
|
||||
**Common fixes:**
|
||||
```bash
|
||||
# Check kernel parameters
|
||||
cat /proc/cmdline | grep nvidia
|
||||
|
||||
# Verify module loading
|
||||
lsmod | grep nvidia
|
||||
|
||||
# Blacklist nouveau (if not already done)
|
||||
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
|
||||
sudo update-initramfs -u -k all
|
||||
```
|
||||
|
||||
**Secure boot workaround (if enabled):**
|
||||
- Disable secure boot in BIOS
|
||||
- Or sign Nvidia modules
|
||||
|
||||
---
|
||||
|
||||
#### ⚠️ Home-manager not applying changes
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check home-manager configuration
|
||||
home-manager build --flake /etc/nixos#username@hostname --show-trace
|
||||
home-manager generations
|
||||
|
||||
# Force fresh rebuild
|
||||
rm -rf ~/.local/share/nix/profiles/home-manager
|
||||
home-manager switch --flake /etc/nixos#username@hostname
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 🔄 USB devices blocked by USBGuard
|
||||
|
||||
**Diagnosis:**
|
||||
- USBGuard service status
|
||||
- Policy decisions
|
||||
|
||||
**Solutions:**
|
||||
```bash
|
||||
# Check USBGuard status
|
||||
systemctl status usbguard
|
||||
|
||||
# List USB devices
|
||||
lsusb
|
||||
|
||||
# Temporarily allow device
|
||||
usbguard list-devices
|
||||
usbguard allow-device <device-id>
|
||||
```
|
||||
|
||||
**Configuration:** Edit `/etc/usbguard/rules.conf` for permanent changes
|
||||
|
||||
---
|
||||
|
||||
### System Recovery
|
||||
|
||||
**If system fails to boot:**
|
||||
1. Reboot into recovery ISO
|
||||
2. Remount root partition
|
||||
3. Apply configuration:
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake /etc/nixos#hostname
|
||||
```
|
||||
|
||||
**If home-manager breaks:**
|
||||
```bash
|
||||
# Reinstall from scratch
|
||||
home-manager uninstall
|
||||
home-manager switch --flake /etc/nixos#username@hostname
|
||||
```
|
||||
|
||||
---
|
||||
## 📚 Further Reading & Resources
|
||||
|
||||
### NixOS Documentation
|
||||
- **[NixOS Manual](https://nixos.org/manual/nixos/stable/)** - Official NixOS documentation
|
||||
- **[Nix Flakes Guide](https://nixos.wiki/wiki/Flakes)** - Flakes feature documentation
|
||||
- **[Home Manager Manual](https://nix-community.github.io/home-manager/)** - User-level configuration
|
||||
|
||||
### Related Projects
|
||||
- **[Hyprland](https://wiki.hyprland.org/)** - Wayland compositor
|
||||
- **[Stylix](https://stylix.danth.me/)** - Theming system
|
||||
- **[Caelestia Shell](https://github.com/caelestia-dots/shell)** - Desktop environment
|
||||
- **[SOPS-nix](https://github.com/Mic92/sops-nix)** - Secret management
|
||||
- **[Helium Browser](https://github.com/oxcl/nix-flake-helium-browser)** - Flutter-based browser
|
||||
|
||||
### Repository Documentation
|
||||
- **[GROUPS.md](docs/GROUPS.md)** - Package groups (dev, cybersecurity) and how to use them
|
||||
- **[SERVER.md](docs/SERVER.md)** - Server-specific service configurations
|
||||
- **[NEOVIM.md](docs/NEOVIM.md)** - Neovim configuration (nvf)
|
||||
- **[THEMES.md](docs/THEMES.md)** - Theme system and color schemes
|
||||
- **[CONTRIBUTING.md](docs/CONTRIBUTING.md)** - Contribution guidelines
|
||||
|
||||
### Useful Commands Reference
|
||||
```bash
|
||||
# Show generation history
|
||||
sudo nix-env --list-generations
|
||||
|
||||
# Switch to specific generation
|
||||
sudo nixos-rebuild switch --flake .#laptop --profile /nix/var/nix/profiles/system-<generation>
|
||||
|
||||
# Rollback to previous generation
|
||||
sudo nix-env --rollback
|
||||
sudo nixos-rebuild switch
|
||||
|
||||
# Clean old generations (keep 5 latest)
|
||||
sudo nix-collect-garbage -d
|
||||
sudo nix-env --delete-generations old
|
||||
```
|
||||
|
||||
---
|
||||
@@ -68,8 +68,8 @@
|
||||
{
|
||||
formatter.${system} = pkgs.alejandra;
|
||||
nixosConfigurations = {
|
||||
h-laptop = import ./hosts/laptop/flake.nix args;
|
||||
h-work = import ./hosts/work/flake.nix args;
|
||||
thinkpad = import ./hosts/laptop/flake.nix args;
|
||||
home-pc = import ./hosts/home-pc/flake.nix args;
|
||||
jack = import ./hosts/server/flake.nix args;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
}:
|
||||
(with pkgs; [
|
||||
go
|
||||
claude-code
|
||||
#claude-code
|
||||
])
|
||||
++ (with pkgs-stable; [
|
||||
nodejs
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
librewolfPkg = pkgs.librewolf;
|
||||
|
||||
in {
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
package = librewolfPkg;
|
||||
|
||||
profiles.default = {
|
||||
isDefault = true;
|
||||
|
||||
settings = {
|
||||
# UI / behavior
|
||||
"browser.startup.homepage" = "https://duckduckgo.com";
|
||||
"browser.newtabpage.enabled" = false;
|
||||
|
||||
# Privacy baseline (LibreWolf already hardens most of this)
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
|
||||
# Disable telemetry completely
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
|
||||
# Network / DNS (optional redundancy with policies)
|
||||
"network.trr.mode" = 3;
|
||||
"network.trr.uri" = "https://dns.quad9.net/dns-query";
|
||||
|
||||
# UI behavior
|
||||
"browser.tabs.warnOnClose" = false;
|
||||
"browser.quitShortcut.disabled" = true;
|
||||
|
||||
# Security tightening
|
||||
"dom.event.clipboardevents.enabled" = false;
|
||||
"geo.enabled" = false;
|
||||
"media.autoplay.default" = 5;
|
||||
};
|
||||
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
firefox-multi-account-containers
|
||||
noscript
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Make LibreWolf default browser
|
||||
home.sessionVariables.BROWSER = "${librewolfPkg}/bin/librewolf";
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{ ... }: {
|
||||
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
# -----------------------
|
||||
# Privacy / telemetry
|
||||
# -----------------------
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
|
||||
# -----------------------
|
||||
# Accounts / sync
|
||||
# -----------------------
|
||||
OfferToSaveLogins = false;
|
||||
PasswordManagerEnabled = false;
|
||||
SyncDisabled = true;
|
||||
|
||||
# -----------------------
|
||||
# Security baseline
|
||||
# -----------------------
|
||||
DefaultCookiesSetting = 1;
|
||||
DefaultGeolocationSetting = 2;
|
||||
DefaultNotificationsSetting = 2;
|
||||
DefaultPopupsSetting = 2;
|
||||
|
||||
# -----------------------
|
||||
# DNS over HTTPS
|
||||
# -----------------------
|
||||
DNSOverHTTPS = {
|
||||
Enabled = true;
|
||||
ProviderURL = "https://dns.quad9.net/dns-query";
|
||||
Locked = true;
|
||||
};
|
||||
|
||||
# -----------------------
|
||||
# Search engine
|
||||
# -----------------------
|
||||
SearchEngines = {
|
||||
Default = "Startpage";
|
||||
PreventInstalls = true;
|
||||
};
|
||||
|
||||
# -----------------------
|
||||
# UI restrictions
|
||||
# -----------------------
|
||||
Homepage = {
|
||||
URL = "https://duckduckgo.com";
|
||||
StartPage = "homepage";
|
||||
};
|
||||
|
||||
ShowHomeButton = false;
|
||||
BookmarkBar = false;
|
||||
|
||||
# -----------------------
|
||||
# Extensions (optional enforcement)
|
||||
# -----------------------
|
||||
ExtensionSettings = {
|
||||
"uBlock0@raymondhill.net" = {
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
|
||||
"multi-account-containers@mozilla.org" = {
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
|
||||
"{73a6fe31-595d-460b-a920-fcc0f8843232}" = {
|
||||
installation_mode = "force_installed"; # NoScript
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
|
||||
OfferToSaveLogins = false;
|
||||
PasswordManagerEnabled = false;
|
||||
|
||||
AutofillAddressEnabled = false;
|
||||
AutofillCreditCardEnabled = false;
|
||||
|
||||
DontCheckDefaultBrowser = true;
|
||||
|
||||
DNSOverHTTPS = {
|
||||
Enabled = true;
|
||||
ProviderURL = "https://dns.quad9.net/dns-query";
|
||||
Locked = true;
|
||||
};
|
||||
};
|
||||
|
||||
profiles.default = {
|
||||
search = {
|
||||
force = true;
|
||||
default = "Startpage";
|
||||
};
|
||||
|
||||
settings = {
|
||||
"browser.startup.homepage" = "https://duckduckgo.com";
|
||||
|
||||
"browser.newtabpage.enabled" = false;
|
||||
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
|
||||
"geo.enabled" = false;
|
||||
"dom.webnotifications.enabled" = false;
|
||||
|
||||
"signon.rememberSignons" = false;
|
||||
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
};
|
||||
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
firefox-multi-account-containers
|
||||
noscript
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables.BROWSER = "zen";
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
|
||||
OfferToSaveLogins = false;
|
||||
PasswordManagerEnabled = false;
|
||||
|
||||
DNSOverHTTPS = {
|
||||
Enabled = true;
|
||||
ProviderURL = "https://dns.quad9.net/dns-query";
|
||||
Locked = true;
|
||||
};
|
||||
|
||||
Homepage = {
|
||||
URL = "https://duckduckgo.com";
|
||||
StartPage = "homepage";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{config, ...}: {
|
||||
imports = [
|
||||
# Mostly system related configuration
|
||||
../../nixos/audio.nix
|
||||
../../nixos/bluetooth.nix
|
||||
../../nixos/fonts.nix
|
||||
../../nixos/home-manager.nix
|
||||
../../nixos/nix.nix
|
||||
../../nixos/systemd-boot.nix
|
||||
../../nixos/tuigreet.nix
|
||||
../../nixos/usbguard.nix
|
||||
../../nixos/users.nix
|
||||
../../nixos/utils.nix
|
||||
../../nixos/hyprland.nix
|
||||
../../home/programs/helium/system.nix # I hate browser's configuration..
|
||||
|
||||
# You should let those lines as is
|
||||
./hardware-configuration.nix
|
||||
./variables.nix
|
||||
];
|
||||
|
||||
home-manager.users."${config.var.username}" = import ./home.nix;
|
||||
|
||||
# USBGuard:
|
||||
# Allow all USB devices until a proper policy is configured.
|
||||
# Run `sudo usbguard generate-policy` with your devices plugged in,
|
||||
# then set rules = "<output>" and switch implicitPolicyTarget to "block".
|
||||
# services.usbguard.implicitPolicyTarget = lib.mkForce "allow";
|
||||
services.usbguard.rules = ''
|
||||
allow id 1d6b:0002 serial "0000:00:14.0" name "xHCI Host Controller" hash "jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=" parent-hash "rV9bfLq7c2eA4tYjVjwO4bxhm+y6GgZpl9J60L0fBkY=" with-interface 09:00:00 with-connect-type ""
|
||||
allow id 1d6b:0003 serial "0000:00:14.0" name "xHCI Host Controller" hash "prM+Jby/bFHCn2lNjQdAMbgc6tse3xVx+hZwjOPHSdQ=" parent-hash "rV9bfLq7c2eA4tYjVjwO4bxhm+y6GgZpl9J60L0fBkY=" with-interface 09:00:00 with-connect-type ""
|
||||
allow id 17ef:608d serial "" name "Lenovo USB Optical Mouse" hash "klpDZuv1jhWGNqZLOl+KXF+75Ir3PfBm6D6ncjoLRBU=" parent-hash "jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=" via-port "1-7" with-interface 03:01:02 with-connect-type "hotplug"
|
||||
allow id 17ef:6190 serial "" name "Lenovo Calliope USB Keyboard G2" hash "CfZ9R/aoXGm7BN/ojVEzKQwVoxCUtRWMuACrE7BL/5Y=" parent-hash "jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=" via-port "1-10" with-interface { 03:01:01 03:00:00 } with-connect-type "hotplug"
|
||||
allow id 0781:5581 name " SanDisk 3.2Gen1"
|
||||
'';
|
||||
|
||||
networking.firewall.allowedTCPPorts = [9001];
|
||||
|
||||
# Don't touch this
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
inputs,
|
||||
nixpkgs,
|
||||
...
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
{
|
||||
nixpkgs.overlays = [];
|
||||
_module.args = {inherit inputs;};
|
||||
}
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.nix-index-database.nixosModules.default
|
||||
inputs.helium-browser.nixosModules.default
|
||||
./configuration.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
# 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,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/5dbf85d3-d236-4af8-b489-d6066bfe1eb7";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/043E-1755";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{config, ...}: {
|
||||
imports = [
|
||||
# Programs
|
||||
#../../home/programs/proton
|
||||
../../home/programs/helium
|
||||
../../home/programs/ghostty
|
||||
../../home/programs/nvf
|
||||
../../home/programs/shell
|
||||
../../home/programs/git
|
||||
../../home/programs/git/lazygit.nix
|
||||
../../home/programs/thunar
|
||||
../../home/programs/nixy
|
||||
../../home/programs/nightshift
|
||||
../../home/programs/nix-utils
|
||||
../../home/programs/spotatui
|
||||
../../home/programs/yazi
|
||||
|
||||
../../home/programs/group/basic-apps.nix
|
||||
../../home/programs/group/cybersecurity.nix
|
||||
../../home/programs/group/dev.nix
|
||||
../../home/programs/group/misc.nix
|
||||
|
||||
# System (Desktop environment like stuff)
|
||||
../../home/system/hyprland
|
||||
../../home/system/caelestia-shell
|
||||
../../home/system/hyprpaper
|
||||
../../home/system/mime
|
||||
../../home/system/udiskie
|
||||
|
||||
./variables.nix # Mostly user-specific configuration
|
||||
./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
|
||||
];
|
||||
|
||||
home = {
|
||||
inherit (config.var) username;
|
||||
homeDirectory = "/home/" + config.var.username;
|
||||
file.".face" = {
|
||||
source = ./profile_picture.jpg;
|
||||
};
|
||||
|
||||
# Don't touch this
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"DP-3,1920x1080@144.0,1920x0,1.0"
|
||||
"HDMI-A-1,1920x1080@60.0,0x0,1.0"
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
nixy = {
|
||||
enable = true;
|
||||
configDirectory = config.var.configDirectory;
|
||||
};
|
||||
};
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.8 MiB |
@@ -0,0 +1,58 @@
|
||||
# Those are my secrets, encrypted with sops
|
||||
# You shouldn't import this file, unless you edit it
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
home = config.home.homeDirectory;
|
||||
in {
|
||||
imports = [inputs.sops-nix.homeManagerModules.sops];
|
||||
|
||||
sops = {
|
||||
age.keyFile = "${home}/.config/sops/age/keys.txt";
|
||||
defaultSopsFile = ./secrets.yaml;
|
||||
secrets = {
|
||||
ssh-config = {
|
||||
path = "${home}/.ssh/config";
|
||||
};
|
||||
netrc = {
|
||||
path = "${home}/.netrc";
|
||||
};
|
||||
github-key = {
|
||||
path = "${home}/.ssh/github";
|
||||
};
|
||||
gitlab-key = {
|
||||
path = "${home}/.ssh/gitlab";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/nixos/.sops.yaml".text = ''
|
||||
keys:
|
||||
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
|
||||
- &work age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6
|
||||
creation_rules:
|
||||
- path_regex: hosts/laptop/secrets/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *primary
|
||||
- path_regex: hosts/server/secrets/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *primary
|
||||
- path_regex: hosts/work/secrets/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *work
|
||||
'';
|
||||
|
||||
systemd.user.services.mbsync.Unit.After = ["sops-nix.service"];
|
||||
home.packages = with pkgs; [
|
||||
sops
|
||||
age
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start sops-nix"];
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
ssh-config: ENC[AES256_GCM,data:npBcAOSwHpApUASlZmRo4stwMrOjdrdmhfYwumjbTpcq8aQ2ybV8le7cjNdVqIyxgwxUFV4/tGfmsq4nlrWIO/85spwfC5DyPGaZ848NI3UZJj8k2GKuw5qk/xGsTveNhq+vNZQcHeL4aeXF2TRmFLDHYGTku9anFL7FWkQ75MmGW78XfPUEyZJ52ylXq3gkYeVSrl6cXuwJw/QBlu+XTgFk4MM+E5BTXBFFNJOYkIt4GwWX7wdI+QqPEof8J0ENYdxUAMKMueL4pLNclWP0fu7QC7gwwRJWjauCNElJiDhpVFa6WukJV/Ut+I30FH9cJtj0rSodeu0hq2fWaiQ0wVbQudxi0JcnxJQs+B9nb6kpF+TN0MiD,iv:c7DMZSmlgMMnNlR0/kNRKPYjCzvNQJ46mZzojHppSg8=,tag:ausjsFk0H9nOiiMebHXSUg==,type:str]
|
||||
netrc: ENC[AES256_GCM,data:EOpuZhDVXe7Q4P/98C3gtEvkdawI26d4oX/wRNytyp/mAdkHytXiLpFdsuO/3DADOG8h1CCo1UTs9ex+bqoD/LdChdp7INfNDSQ+aDxTiG0rLBgjvy8TIj8=,iv:tc/RbN1Upbjv+3rU5zUR3P//a1Hj1xODInLMShg4i1Y=,tag:7E9G2g4g+eMeJrwI20R/1g==,type:str]
|
||||
github-key: ENC[AES256_GCM,data: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,iv:2Mvmz1CFO1112RxjIl6sxyNIDqa/cg00um6RcQaHNY8=,tag:+zygdwQdCBeBXVLvAj/jJQ==,type:str]
|
||||
gitlab-key: ENC[AES256_GCM,data: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,iv:aG4nqGJ/TRiAtiWoPwqej6We+IWEWFibCqL7bGwXbkA=,tag:c5ckW2o4+2rm/5mrGF1tzg==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1c8pawdsxptfslgrz2c56s39mrtnjzc5mm3hfzgr2wdwu2v6vfsdsupjsq6
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVby9Wa1NUUkpyeDMwU3dM
|
||||
R0EyeFVtT0tJU0pKaWtXQzRkTDBPY3JjcTFrClNIQnl2WVorS0FZZjhicTQ5V2kx
|
||||
MUZTZWZtaUk2a1ZhUTBCUnhkWHFIMFUKLS0tIElLcjJLZWNLOUJYN0NNVGFNUEFN
|
||||
RkMrdTYwNkY1Tlc3M3dxTFdkRXJJZUEKUlYU45jXpS9hJO9Z/uAQ6XMj9QWgMMRI
|
||||
LbJxvt48+yC+Y0XKOtDE0lHAuGNzUG8R/7FB1tTD8NCamBe46KGCIg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-04-23T07:50:07Z"
|
||||
mac: ENC[AES256_GCM,data:V3us1oxkQxIg5hn8TMiSHWa0RhNbio2mP8j59lSCKDLjnpTUHUAUZZOan+fkBwPxxtIdZFVZQl/kZuEHcnNwXk8J0DLeT8jrs8pvlDCHMAc+C9uzThNjQ9CrZ2C/dNtoI6uop3a6qo8UMhKhvAus08yR8rLsY7Gqt/In28HKqxU=,iv:g8wmq1thPfkSSfG+mtJS0431wbon/uylDTfH0P31dlw=,tag:5Z6CJMWeGN6frTLJQMxGGw==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.12.2
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Choose your theme here:
|
||||
../../themes/nixy.nix
|
||||
];
|
||||
|
||||
config.var = {
|
||||
hostname = "home-pc";
|
||||
username = "andi";
|
||||
configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory
|
||||
|
||||
keyboardLayout = "de";
|
||||
|
||||
timeZone = "Europe/Berlin";
|
||||
defaultLocale = "de_DE.UTF-8";
|
||||
extraLocale = "en_EN.UTF-8";
|
||||
|
||||
git = {
|
||||
username = "kptltd00m";
|
||||
email = "kptltd00m.doomlabs.de";
|
||||
};
|
||||
|
||||
autoUpgrade = false;
|
||||
autoGarbageCollector = true;
|
||||
};
|
||||
|
||||
# DON'T TOUCH THIS
|
||||
options = {
|
||||
var = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -16,11 +16,9 @@ imports = [
|
||||
../../nixos/usbguard.nix
|
||||
../../home/programs/helium/system.nix
|
||||
|
||||
```
|
||||
# Machine-specific files
|
||||
./hardware-configuration.nix
|
||||
./variables.nix
|
||||
```
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
inherit (config.var) username;
|
||||
homeDirectory = "/home/" + config.var.username;
|
||||
file.".face" = {
|
||||
source = ./profile_picture.png;
|
||||
source = ./profile_picture.jpg;
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.8 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
@@ -15,7 +15,7 @@
|
||||
|
||||
keyboardLayout = "de";
|
||||
|
||||
timeZone = "Europe/Paris";
|
||||
timeZone = "Europe/Berlin";
|
||||
defaultLocale = "de_DE.UTF-8";
|
||||
extraLocale = "en_EN.UTF-8";
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{config, ...}: {
|
||||
services.usbguard = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
implicitPolicyTarget = "block";
|
||||
IPCAllowedUsers = [
|
||||
"root"
|
||||
|
||||
Reference in New Issue
Block a user