Commit graph

48 commits

Author SHA1 Message Date
Yan Lin
aafa5da904 Add NixOS home manager config and fix flake warnings
- Add hosts/nixos/home-default.nix with nvim, ssh, and other modules
- Add hosts/nixos/hs/home.nix importing home-default
- Fix nixpkgs.config conflict by moving allowUnfree to system level
- Fix root user password conflicts by explicitly clearing all options
- Add home-manager integration to hs system configuration
- Update hostId from placeholder to actual value (8425e349)
- Add claude-code support for x86_64-linux architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 23:25:59 +02:00
Yan Lin
70485c0bc4 Update hs hardware configuration with actual detected hardware
- Intel CPU with KVM support
- Detected kernel modules: xhci_pci, ahci, usb_storage, sd_mod, sdhci_pci
- Remove filesystem declarations (managed by disko)
- Intel microcode updates enabled

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 22:07:48 +02:00
Yan Lin
fc0e5e8c97 Rename macbook-air to mba 2025-09-03 22:34:44 +02:00
Yan Lin
530274e081 Rearrange file structure 2025-09-02 23:26:46 +02:00
Yan Lin
db6dd6076e Further file arrangement 2025-08-30 17:36:51 +02:00
Yan Lin
ad5598e202 Minor changes 2025-08-30 09:43:38 +02:00
Yan Lin
6368fe594a Use host-specific home configuration 2025-08-29 23:16:24 +02:00
Yan Lin
2a3a4aece9 Rearrange files 2025-08-29 21:59:11 +02:00
Yan Lin
4689a4f69c Rearrange the config structure 2025-08-28 20:25:28 +02:00
Yan Lin
913d876113 Separate package list 2025-08-28 17:34:35 +02:00
Yan Lin
2a2e053d62 Add homebrew 2025-08-28 17:01:11 +02:00
Yan Lin
0fc12a626a Add tailscale module 2025-08-26 19:58:38 +02:00
Yan Lin
6e154b7299 Add hidden-bar 2025-08-16 22:12:50 +09:00
Yan Lin
ad3c49cb5f Add a few macOS software 2025-08-16 21:52:07 +09:00
Yan Lin
61205c381d Add maccy 2025-08-16 18:06:51 +09:00
Yan Lin
649760cea5 Fix lazygit config 2025-08-16 01:37:03 +09:00
Yan Lin
934513d9f3 Add lazygit config 2025-08-16 01:30:04 +09:00
Yan Lin
77a02b1312 Add ghostty config 2025-08-16 01:05:47 +09:00
Yan Lin
d2ffc2610a Remove duplicates 2025-08-04 13:34:15 +08:00
Yan Lin
36907155b0 Add dejavu fonts 2025-08-03 16:49:34 +08:00
Yan Lin
df277a62f7 Initial commit of firefox modules with basic configs 2025-07-31 23:41:05 +02:00
Yan Lin
76a8fdeff8 Remove explicit btop package 2025-07-30 22:48:08 +02:00
Yan Lin
6a999b947d Add btop module to home-manager imports
The btop configuration module was not being imported, causing the settings
to not be applied. Added ./modules/btop.nix to the imports list to enable
the custom btop configuration with gruvbox theme and vim-style navigation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 22:39:15 +02:00
Yan Lin
eae6150553 Add btop config 2025-07-30 22:34:32 +02:00
Yan Lin
052a8d74e6 Add macOS menu bar spacing configuration
- Create system/ directory for system-level nix-darwin configurations
- Add system/macos-defaults.nix with NSStatusItemSpacing and NSStatusItemSelectionPadding settings
- Configure optimal spacing (6) and padding (12) values for menu bar items
- Use CustomUserPreferences to support options not yet in nix-darwin main
- Set system.primaryUser to support user-specific preferences

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 14:00:40 +02:00
Yan Lin
73d425d2bf Add zoxide integration for smart directory navigation
- Add zoxide package to flake.nix
- Enable zoxide with zsh integration in modules/zsh.nix
- Configure zoxide to replace cd command with smart frecency-based navigation
- Add zi alias for interactive directory selection with fzf

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 00:07:48 +02:00
Yan Lin
33a7645970 Use nix to install openssh 2025-07-29 22:11:02 +02:00
Yan Lin
e7cb1502e3 Add papis to main config 2025-07-29 15:55:15 +02:00
Yan Lin
6b46eb93bf Replace pip and virtualenv with uv for modern Python development
- Replace python312Packages.pip and python312Packages.virtualenv with uv package
- Update README.md to document uv as the Python package manager
- Add comprehensive uv documentation section with usage examples:
  * Project initialization and dependency management
  * Virtual environment creation and management
  * Package installation and upgrades
  * Tool usage (pipx replacement)
  * Migration guidance from pip/virtualenv workflows

Benefits of uv over traditional tools:
- 10-100x faster package installation and dependency resolution
- Unified toolchain replacing pip, virtualenv, pip-tools, poetry, and more
- Global caching for efficient disk usage and faster installs
- Better dependency resolution and conflict handling
- Drop-in compatibility with existing requirements.txt and PyPI packages
- Modern project management with pyproject.toml and lock files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 18:23:43 +02:00
Yan Lin
9e603d1e39 Add make tool 2025-07-28 18:19:11 +02:00
Yan Lin
0a9fa669f0 Add comprehensive rsync configuration and management
- Add rsync package to home.packages for Nix-managed installation
- Create modules/rsync.nix with comprehensive configuration:
  * ~/.rsync-exclude with macOS and development exclusion patterns
  * ~/.rsync-backup.conf with standard backup options and safety features
  * ~/.local/bin/rsync-backup executable wrapper script for easy backups
  * ~/.rsync-aliases with convenient shell aliases for common operations
- Add detailed rsync documentation to README with usage examples
- Switch from macOS built-in rsync to declarative Nix management

Features:
- Comprehensive exclude patterns for macOS metadata and temp files
- Progress indication, compression, and network optimization
- Safety options including dry-run capability and partial transfers
- Extended attributes and ACL preservation for macOS
- Multiple usage patterns: wrapper script, aliases, and manual configuration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 17:26:39 +02:00
Yan Lin
a6162712e3 Replace gitui with lazygit for better git TUI experience
- Replace gitui package with lazygit in flake.nix
- Update all project templates to launch lazygit instead of gitui
- Update README documentation with lazygit features and capabilities
- Maintain same tmux workflow and window layouts

Benefits of lazygit:
- More intuitive and user-friendly interface
- Better performance and responsiveness
- Enhanced file tree navigation with git status
- Comprehensive keyboard shortcuts and help system
- Active development with regular feature updates

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 16:18:49 +02:00
Yan Lin
ea6c7c815b Add multi-platform git credential management
- Add git-credential-oauth package for OAuth authentication
- Configure OAuth helpers for GitHub, GitLab, BitBucket
- Add token-based authentication for Overleaf
- Remove disabled credential helper configuration
- Support secure browser-based OAuth flows and token storage

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 13:50:46 +02:00
Yan Lin
63402edd8f Manage termscp config with nix 2025-07-28 00:16:21 +02:00
Yan Lin
9e408bc65a Add ncdu for size analysis 2025-07-27 23:24:41 +02:00
Yan Lin
4f4e566c06 Add Git configuration management via nix
- Create modules/git.nix with user info and useful settings
- Configure git to use SSH (disable credential helper)
- Add comprehensive git aliases and sensible defaults
- Import git module in flake.nix homeConfiguration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 19:03:52 +02:00
Yan Lin
2f096d9935 Add SSH configuration management via nix
- Create modules/ssh.nix with all host configurations
- Import SSH module in flake.nix homeConfiguration
- Manage SSH config declaratively through home-manager

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 18:18:02 +02:00
Yan Lin
c3872475b5 Add database tools and improve tmux copy mode
Database Tools:
- Add lazysql: LazyGit-style TUI database management tool
- Add sqlite3: Official SQLite CLI for scripting and automation
- Comprehensive usage documentation for both tools
- Support for MySQL, PostgreSQL, and SQLite databases

Tmux Improvements:
- Fix copy mode to not exit after copying (copy-pipe vs copy-pipe-and-cancel)
- Allows multiple text selections without re-entering copy mode
- Manual exit control with q/Escape/Ctrl+c

System Optimizations:
- Add trusted binary caches for faster Nix builds
- Include nix-community and devenv cachix for improved performance

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 17:17:03 +02:00
Yan Lin
d074f7c981 Add termscp - comprehensive CLI-UI FTP tool
- Add termscp package to home.packages in flake.nix
- Add 'ftp' alias pointing to termscp in zsh.nix
- Update README.md with termscp documentation and usage examples
- Provides rich TUI for FTP/SFTP/SCP/S3/WebDAV file transfers
- Complements existing lftp for scripting vs interactive use

Key features:
- Multi-protocol support (FTP, SFTP, SCP, S3, WebDAV)
- Interactive dual-pane file browser
- Bookmarks and connection management
- File synchronization capabilities
- Customizable themes and interface

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:59:08 +02:00
Yan Lin
539ba9fef7 Reorganize configuration into modular directory structure
- Create modules/ directory for Nix configuration modules
- Create config/ directory for configuration files
- Move nvim.nix, tmux.nix, zsh.nix to modules/
- Move p10k.zsh to config/
- Update flake.nix import paths to reference new structure
- Update zsh.nix p10k.zsh path reference
- Update README.md architecture documentation
- Keep tmux.sh at root for easy accessibility

This provides better separation between Nix modules and config files
while maintaining a clean, scalable structure.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:07:28 +02:00
Yan Lin
bdbf7a090c Add HTTPie for API testing with comprehensive usage guide
- Add httpie package to home.packages for modern HTTP client capabilities
- Include comprehensive usage examples in README covering:
  * Basic HTTP methods (GET, POST, PUT, DELETE)
  * Authentication with Bearer tokens and API keys
  * File uploads (form and multipart)
  * JSON data handling with type coercion
  * Session management for persistent authentication
  * File downloads and response filtering

HTTPie provides a user-friendly alternative to curl for API testing and development workflows.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 20:06:12 +02:00
Yan Lin
dd5753a87d Migrate from home-manager neovim to NixVim
Major configuration migration following 2025 best practices:

- Add nixvim flake input with proper nixpkgs following
- Import nixvim.homeManagerModules.nixvim in home configuration
- Convert nvim.nix from programs.neovim to programs.nixvim
- Migrate all settings to declarative NixVim syntax:
  * vim.opt.* → opts.*
  * vim.g.mapleader → globals.mapleader
  * Raw Lua keymaps → structured keymaps array
  * Plugin configs → declarative plugin options
- Preserve all functionality:
  * Gruvbox hard contrast colorscheme
  * nvim-tree with dotfile/gitignore filters
  * Treesitter with all grammars
  * Lualine with relative paths and gruvbox theme
  * Fugitive git integration
  * System clipboard keybindings
  * All leader key mappings

Benefits: Type safety, better documentation, cleaner code structure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:48:38 +02:00
Yan Lin
f121e81c8d Fix darwin configuration name case mismatch
- Change darwinConfigurations."Macbook-Air" to "MacBook-Air"
- Fixes `sudo darwin-rebuild switch --flake .` command
- Ensures configuration name matches system hostname

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 10:49:43 +02:00
Yan Lin
c0bba829c2 Add comprehensive zsh configuration with Powerlevel10k
- Create separate zsh.nix module for enhanced shell experience
- Add Powerlevel10k theme with custom configuration from wizard
- Include useful aliases for git, nix, and navigation commands
- Add modern CLI tools: fzf, fd, ripgrep, bat for better productivity
- Enable autosuggestions, syntax highlighting, and completion
- Add portable p10k.zsh configuration for consistent prompt across machines
- Update flake.nix to import zsh module and remove inline config
- Update tmux.nix with prefix indicator and datetime removal

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 10:36:08 +02:00
Yan Lin
d2d1d7fd6f Add gitui for beautiful CLI git graph visualization
- Add gitui package to home.packages for enhanced git repository browsing
- Provides interactive TUI with beautiful branching visualization
- Supports diff viewing, staging, and vim-like navigation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 09:02:11 +02:00
Yan Lin
99da37d060 Fix tmux and nvim color display issues
- Add COLORTERM=truecolor to zsh session variables for 24-bit color support
- Update tmux terminal overrides to match xterm-256color terminal type
- Add gruvbox-nvim plugin and set explicit background=dark in nvim config
- Replace default colorscheme with gruvbox to match lualine theme

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 00:14:34 +02:00
Yan Lin
25898527a7 Add MacBook Air (mba) darwin configuration
- Add darwinConfigurations."mba" entry using same config as iMac
- Both machines now use identical system configuration
- Ready for machine-specific customizations in the future

Usage:
- iMac: darwin-rebuild switch --flake .#iMac
- MacBook Air: darwin-rebuild switch --flake .#mba
2025-07-25 23:31:09 +02:00
Yan Lin
d15473aa17 Initial Nix configuration setup
- Add nix-darwin and home-manager flake configuration
- Include modular neovim setup with plugins and keybinds
- Add tmux configuration with gruvbox theme and vim-like bindings
- Set up .gitignore for nix build outputs and temporary files

Ready for multi-machine deployment across macOS systems.
2025-07-25 23:25:21 +02:00