Commit graph

1358 commits

Author SHA1 Message Date
Yan Lin
1efe49e659 Simplify project lanucher display format 2025-07-27 22:00:11 +02:00
Yan Lin
6d7fc7184f Configure nvim-tree to hide macOS system files
- Add custom filter patterns for common macOS system files
- Hide .DS_Store, .AppleDouble, .LSOverride, and other system files
- Include resource forks (._*), Spotlight, and Time Machine files
- Keep existing dotfiles and git_ignored filter settings
- Maintain clean file explorer interface without system clutter

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 20:10:08 +02:00
Yan Lin
00eaf0a8b5 Document all git aliases in comprehensive table
- Replace brief aliases section with complete reference table
- List all 18 git aliases with commands and descriptions
- Organize by functionality (basic, commit, diff, log, stash, utility)
- Provide clear descriptions for each alias use case
- Improve documentation completeness and usability

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 20:00:06 +02:00
Yan Lin
42af3047b2 Add comprehensive global gitignore configuration
- Add global gitignore with 50+ common patterns
- Include macOS files (.DS_Store, .AppleDouble, etc.)
- Cover editor files (.vscode/, .idea/, *.swp, etc.)
- Handle development files (node_modules/, .env, *.log, etc.)
- Add Python build artifacts and cache files
- Include temporary and backup file patterns
- Add Claude Code settings ignore pattern
- Manage OS-specific files (Windows/macOS)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 19:54:34 +02:00
Yan Lin
ca1e620f5d Fix the bug in readme (again) 2025-07-27 19:33:00 +02:00
Yan Lin
8a1c4daff2 Fix a bug in readme 2025-07-27 19:22:16 +02:00
Yan Lin
0485c3cc41 Document Git configuration management in README
- Add Git configuration section with feature overview
- Document git aliases and configuration management workflow
- Update file structure to include git.nix module
- Highlight SSH integration and reproducible benefits

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 19:05:10 +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
b50b44bd2f Minor update to ssh config 2025-07-27 18:57:45 +02:00
Yan Lin
4c89cfe42e Add github remote config 2025-07-27 18:50:53 +02:00
Yan Lin
492d63ad85 Document SSH configuration management in README
- Add SSH configuration section with feature overview
- Document host management workflow and security practices
- Update file structure to include ssh.nix module
- Clarify separation between tracked config and local keys

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 18:33:42 +02:00
Yan Lin
12806c6489 Remove (more) unused remotes 2025-07-27 18:27:16 +02:00
Yan Lin
4bbeda2157 Remove unused remotes 2025-07-27 18:25:33 +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
cfc978c267 Remove auto-generated projects.json from git tracking
- Add config/projects.json to .gitignore
- Remove from git tracking while preserving local file
- projects.json is auto-generated by Home Manager from projects.nix
- Prevents merge conflicts and version control noise from machine-specific paths

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 18:08:00 +02:00
Yan Lin
5b2d62ffa6 Add remote server support to research template
- Add server and remoteDir fields to research projects configuration
- Update project launcher to handle remote server parameters
- Enhance research template with remote server window (window 7)
- Add dual-pane remote SSH connections with auto-reconnect aliases
- Document remote server features in README with configuration examples

Features:
- Type 'r' in any remote pane to reconnect after network drops
- Automatic SSH connection and directory navigation
- Parallel remote work with dual panes
- Backwards compatible - optional server configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 18:01:20 +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
c66c5ed416 Update projects.json symlink to new nix store path
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 00:19:26 +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
94547defc5 Add git windows to research template for better workflow
- Add code-git window (window 3) with gitui in CODE_PATH
- Add paper-git window (window 6) with gitui in PAPER_PATH
- Adjust window numbering: paper windows moved from 3,4 to 4,5
- Brings research template in line with basic and content templates
- Provides dedicated git management for both code and paper repositories

New window layout:
1. code (nvim)
2. code-ai (claude + splits)
3. code-git (gitui) ← NEW
4. paper (nvim)
5. paper-ai (claude + splits)
6. paper-git (gitui) ← NEW

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:36:26 +02:00
Yan Lin
800ac5c4ab Add homelab project and reorganize project configuration
- Add homelab project for Homelab Deployment with basic template
- Reorganize projects.nix with better grouping:
  - Configuration projects first (nix-config, homelab)
  - Development projects (blog, homepage)
  - Research projects (mdshortcut, daki3)
- Update generated projects.json with new structure

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:31:16 +02:00
Yan Lin
2d80c0e50f Add DAKI3 project configuration
- Add daki3 project with basic template
- Points to AI systems & infrastructure course demo code
- Updates generated projects.json with new project entry

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:20:49 +02:00
Yan Lin
cf177c060e Enhance project list display with descriptions and visual formatting
- Add colorful header with 📋 icon and cyan title
- Display project descriptions (previously unused)
- Add template-based icons: 🚀 content, 🔬 research, ⚙️ basic
- Format output in aligned columns with colors
- Include template type indicators in brackets
- Add usage hint for better user experience
- Improve error handling for missing jq

The 'proj' command now provides rich, informative output instead of
just listing project names.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:11:13 +02:00
Yan Lin
17f7812011 Update project configuration and remove deprecated tmux.sh
- Add homepage project with basic template configuration
- Update README to reflect current project examples
- Remove root tmux.sh (replaced by template system)
- Update generated projects.json with new homepage project

The centralized project system now fully replaces individual tmux scripts.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 23:03:01 +02:00
Yan Lin
fce0729d48 Fix basic.sh template working directory robustness
- Add -c "$CODE_PATH" to all tmux new-window and split-window commands
- Ensures all windows and panes start in correct project directory
- Fixes issue where only first window was in correct location
- content.sh and research.sh templates were already robust

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:57:11 +02:00
Yan Lin
ceef6ab641 Fix project launcher path resolution for shell aliases
- Change projectLauncher from relative to absolute path
- Fixes issue where proj alias was not being created
- Enables project shortcuts: proj, blog, mdshortcut, nix-config

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:46:25 +02:00
Yan Lin
c3c4b060fc Add jq package for project shortcuts JSON parsing
- Add jq to home.packages in zsh.nix
- Required for project-launcher.sh to parse projects.json
- Fixes 'No projects configured' error

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:43:30 +02:00
Yan Lin
5408703026 Add project config 2025-07-26 22:41:47 +02:00
Yan Lin
af7b855faf Add comprehensive project shortcuts system
- Create config/projects.nix for project definitions with templates
- Add scripts/templates/ with basic, content, and research workflows
- Create universal project-launcher.sh for template execution
- Integrate project system into zsh with dynamic alias generation
- Generate projects.json config file for shell script consumption
- Update README.md with project shortcuts documentation

Projects supported:
- blog: Personal blog (content workflow)
- mdshortcut: Research project (research workflow)
- nix-config: Nix configuration (basic workflow)

Usage: proj, blog, mdshortcut, nix-config commands

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:38:23 +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
2295aa9131 Add markdown rendering to Neovim with render-markdown.nvim
- Add render-markdown plugin for in-buffer markdown preview
- Add <leader>md keybinding to toggle markdown rendering
- Update README documentation with markdown rendering features
- Uses existing treesitter and web-devicons dependencies

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 21:44:46 +02:00
Yan Lin
50a6a217e2 Add Finder integration to Neovim keybindings
- Add <leader>f keymap to show current file in Finder using 'open -R'
- Update README.md with new keybinding documentation
- Provides quick file location alongside existing <leader>o for opening

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 21:32:59 +02:00
Yan Lin
fe23254558 Add system default app integration to Neovim
- Add <leader>o keymap to open current file with system default application
- Uses ':silent \!open %' to prevent command output clutter
- Update README with new keymap documentation
- Enables quick preview of markdown, images, PDFs in native apps

Enhances workflow by bridging Neovim editing with system-level file viewing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 20:28:18 +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
f2c81c7a8d Enhance tmux session script with git visualization
- Add dedicated gitui window for interactive git operations
- Rename bash window to shell for clarity
- Maintain existing nvim and claude-code windows

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 15:49:20 +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
303cf90e95 Add powerful tool combination examples to README
Shows how to use fd, fzf, and nvim together for interactive file selection workflows

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 13:46:26 +02:00
Yan Lin
af5add2783 Add fzf usage examples and keybindings to README
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 13:44:23 +02:00
Yan Lin
d92851d6ea Add fd usage examples to README
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 13:41:00 +02:00
Yan Lin
6e8fa29229 Remove redundant sections from README
Clean up duplicate workflow optimization and getting started sections that were redundant with earlier content.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 12:05:09 +02:00
Yan Lin
9f171de0cb Update README with comprehensive documentation
- Enhance overview with features and modern CLI highlights
- Add detailed configuration architecture documentation
- Document Neovim keybindings, plugins, and gruvbox theme
- Document Tmux prefix key, vim navigation, and copy mode
- Document Zsh with Powerlevel10k, vim mode indicators, and aliases
- Add workflow optimization and productivity features
- Include machine configurations and usage examples
- Organize content with clear sections and emoji headers

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 12:02:59 +02:00
Yan Lin
4098771120 Add vim mode indicators and enhanced keybindings to zsh
- Enable vim keybindings with defaultKeymap = "viins"
- Add cursor shape changes: line cursor for insert mode, block for normal mode
- Reduce mode switching delay from 400ms to 10ms for faster response
- Add vim-style history navigation with k/j in normal mode
- Add history search with / and ? in normal mode
- Add word movement with Ctrl+arrow keys in insert mode
- Integrate with Powerlevel10k prompt symbols for mode indication

Provides clear visual feedback for vim mode changes with multiple indicators.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 11:32:26 +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
950a276d44 Fix deprecated zsh configuration and remove vi keymapping
- Replace deprecated initExtra with initContent
- Remove defaultKeymap viins for standard emacs-style bindings

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 10:40:49 +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
b30b393541 Add tmux session script for nix configuration workspace
- Create automated tmux session setup with 3 windows: nvim, ai, and bash
- Auto-start nvim in first window and claude in ai window with split panes
- Provides quick workspace initialization for nix config development

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 09:37:30 +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
0c1d378d1b Add system clipboard keymaps to nvim configuration
- Add <leader>y for copying to system clipboard (normal/visual modes)
- Add <leader>p for pasting from system clipboard
- Preserves standard vim register behavior while providing convenient clipboard access

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 08:40:06 +02:00
Yan Lin
6994c0ea25 Change tmux prefix key from Ctrl+b to Ctrl+a
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 08:25:37 +02:00
Yan Lin
a926267b1f Enhance nvim configuration with improved UX settings
- Add vim-fugitive for git integration with leader key mappings
- Configure lualine to show relative file paths instead of filenames
- Set nvim-tree to hide dotfiles and show gitignored files by default
- Add linebreak and breakindent options for better word wrapping
- Remove vi keymapping from zsh for standard emacs-style bindings

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 08:24:53 +02:00