Commit graph

72 commits

Author SHA1 Message Date
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