Commit graph

153 commits

Author SHA1 Message Date
Yan Lin
c9abc7871c Fix gap color between session name and window tags
- Explicitly set gap background to main status bar color (#282828)
- Prevents gap from inheriting session section's background color
- Now properly matches the main status bar background

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:53:27 +02:00
Yan Lin
83f79484b9 Add gap between tmux session name and window tags
- Adds space after session name to match window tag spacing
- Creates consistent visual separation in status bar
- Improves overall status bar readability

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:51:33 +02:00
Yan Lin
b096984394 Update tmux indicator colors for better visibility
- Change prefix indicator from purple to bright red (#fb4934)
- Change copy mode position indicator from purple to bright yellow (#fabd2f)
- Both colors match existing gruvbox theme palette
- Improves visibility and consistency with nvim WIN indicator

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:47:41 +02:00
Yan Lin
0acbb7fca2 Simplify activity monitoring by disabling it in lazygit project templates
Replace complex tmux hooks with targeted solution:
- Disable activity monitoring in basic.sh for git window (lazygit)
- Disable activity monitoring in research.sh for both code-git and paper-git windows
- Remove unreliable program detection hooks from tmux config
- Keep manual toggle (Ctrl+a A) for user control

This approach is simpler, more reliable, and directly addresses the root
cause of noisy activity notifications from project templates.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:32:01 +02:00
Yan Lin
8a5e66848e Add smart activity monitoring to silence noisy programs
Automatically disable activity monitoring for constantly-updating programs:
- lazygit: Git TUI with frequent display updates
- btop: System monitor with continuous refreshing
- htop: Process monitor
- watch: Repetitive command execution
- tail: Log file following

Features:
- Auto-detection via tmux hooks (after-new-window, window-pane-changed, pane-exited)
- Re-enables monitoring when switching to normal programs
- Manual toggle with Ctrl+a A
- Eliminates false activity notifications while preserving useful ones

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:25:06 +02:00
Yan Lin
701df4d95a Add copy mode indicator styling with bright purple theme
- Add mode-style with bright purple background (#d3869b) matching prefix indicator
- Style search matches with yellow and current match with red
- Add [COPY] indicator to status bar when in copy mode
- Provides consistent visual feedback across tmux modes

Copy mode now shows:
- Bright purple position indicator in pane
- [COPY] text in status bar alongside time
- Themed search highlighting for better visibility

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:15:27 +02:00
Yan Lin
41070ab41b Use brighter gruvbox purple for better prefix visibility
Change prefix indicator from muted purple (#b16286) to bright purple
(#d3869b) for much more noticeable visual feedback when prefix key
is pressed. Maintains gruvbox color harmony while providing clear
distinction from all other tmux theme elements.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:11:40 +02:00
Yan Lin
282e957913 Use gruvbox purple for prefix indicator to improve visibility
Change prefix session name background from yellow (#fabd2f) to purple
(#b16286) to avoid confusion with active window color. Purple provides
better visual distinction and is not used elsewhere in the tmux theme.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:09:56 +02:00
Yan Lin
a2088ce19f Replace text-based prefix indicator with session name color change
- Remove asymmetric <Prefix> text indicator from status-right
- Change session name background color when prefix is active:
  - Normal: gray background (#a89984)
  - Prefix active: yellow background (#fabd2f)
- Simplify time display to consistent ' %H:%M ' format
- Provides cleaner, more elegant visual prefix indication

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:07:42 +02:00
Yan Lin
b701e4d326 Fix tmux status bar time display symmetry
Add leading space before time format to ensure symmetric display.
Now shows [ 23:02 ] when prefix is inactive and <Prefix>[ 23:02 ]
when prefix is active, both properly centered in the status bar.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:04:36 +02:00
Yan Lin
4dffd92c1d Add time display to tmux status bar
Add %H:%M time format to the right side of the tmux status bar alongside
the existing prefix indicator. Increased status-right-length to 30 to
accommodate the time display.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 23:01:07 +02:00
Yan Lin
eae6150553 Add btop config 2025-07-30 22:34:32 +02:00
Yan Lin
f12ae20f05 Add dictionary autocompletion to neovim without spell checking
- Add cmp-dictionary plugin to extraPlugins for English word completion
- Configure dictionary source in nvim-cmp with keyword_length = 2
- Set up dictionary paths pointing to /usr/share/dict/words
- Enable case-insensitive matching for better user experience
- Completion triggers after 2+ characters for performance optimization

This provides English word autocompletion without enabling vim's spell
checking features, keeping the interface clean without visual indicators.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 18:57:50 +02:00
Yan Lin
d63a0e1e78 Merge branch 'nightly' 2025-07-30 18:37:43 +02:00
Yan Lin
1b9cb26015 Fix nvim shortcuts for files with non-English characters
- Add Unicode-safe Lua functions for file operations
- Replace shell commands with proper escaping using vim.fn.shellescape()
- Update <leader>o and <leader>f keymaps to use new Lua functions
- Fixes issues with Chinese and other Unicode characters in filenames

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 18:36:36 +02:00
Yan Lin
b481ad12e0 Add imac ssh config 2025-07-30 09:58:20 +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
a7164a0ff3 Fix Shift+A autocomplete interference with refined approach
- Replace single key sequence binding with multiple potential Shift+A sequences
- Add explicit self-insert bindings for 'A', '^[[1;2A', and '^[[65;2u' to cover different terminals
- Configure ZSH_AUTOSUGGEST_CLEAR_WIDGETS to prevent autosuggestion interference with vim modes
- Add vi-add-eol and vi-add-next to clear widgets to ensure proper vim behavior
- Set ZSH_AUTOSUGGEST_ACCEPT_WIDGETS to handle vim end-of-line operations correctly

This should prevent Shift+A from triggering autocomplete while preserving vim functionality.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 23:58:40 +02:00
Yan Lin
107b668e3a Fix zsh vim mode backspace and Shift+A autocomplete issues
- Add explicit backspace bindings for ^? and ^H to fix backspace in vim insert mode
- Add Shift+A binding to vi-add-eol to prevent autocomplete interference and enable proper vim append-insert behavior
- These fixes ensure backspace works properly and Shift+A functions as vim append-insert instead of triggering autocompletion

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 23:54:44 +02:00
Yan Lin
aad84a4c69 Add pareset alias for papis cache reset
- Added 'pareset' shell alias that runs 'papis cache reset'
- Placed in the cache management section of shell aliases
- Provides quick access to reset papis database cache

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 23:46:16 +02:00
Yan Lin
a061ecbdf2 Fix patag function to rewrite tags instead of adding
- Changed patag function to drop existing tags before adding new ones
- Fixed tag parsing to properly split on '#' separator using tr command
- Tags are now stored as individual entries instead of single string
- Function now properly rewrites tags instead of adding to existing ones

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 23:36:28 +02:00
Yan Lin
2b47bfba47 Add patag alias 2025-07-29 23:27:43 +02:00
Yan Lin
048804048f Improve papis workflow with enhanced functions and aliases
- Convert pafile and pafinder aliases to shell functions with better parameter handling
- Make pafile query parameter optional for interactive document selection
- Add patag function for hash-separated multi-tag addition (e.g., patag "tag1#tag2" query)
- Add paopen alias for quick document opening
- Update README to document all papis workflow shortcuts and functions
- Fix deprecated zsh initExtra to initContent

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 23:14:40 +02:00
Yan Lin
f9e8eff265 Update papis alias 2025-07-29 23:04:39 +02:00
Yan Lin
976a6267d2 Replace deprecated initExtra with initContent in papis.nix 2025-07-29 22:00:26 +02:00
Yan Lin
e97279e5a4 Revise papis alias 2025-07-29 21:59:01 +02:00
Yan Lin
687d5b52cc Simplify papis aliases 2025-07-29 20:48:22 +02:00
Yan Lin
dea62d5ab8 Remove papis custom folder and file names 2025-07-29 18:14:31 +02:00
Yan Lin
59cd92a8fd Add a few aliases to papis 2025-07-29 17:16:49 +02:00
Yan Lin
a45117a755 Update papis default template 2025-07-29 17:06:38 +02:00
Yan Lin
e7cb1502e3 Add papis to main config 2025-07-29 15:55:15 +02:00
Yan Lin
0da9c3b3cb Add papis reference manager configuration
- Add papis.nix module with embedded configuration
- Configure library at ~/Documents/Library/papis
- Set up nvim editor and fzf picker integration
- Add comprehensive papis documentation to README

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 15:49:49 +02:00
Yan Lin
302307f978 Add autoread to neovim 2025-07-29 10:46:48 +02:00
Yan Lin
3e938daef8 Add basic auto-completion to Neovim and comprehensive documentation
- Add nvim-cmp plugin with buffer and path completion sources
- Configure intuitive keybindings for completion navigation:
  * Ctrl+Space to trigger completion manually
  * Tab/Shift+Tab for menu navigation
  * Enter to accept completion, Ctrl+e to close menu
- Enable autoEnableSources for automatic plugin management

- Add comprehensive "Code Editing & Auto-completion" section to README:
  * Document all key features: Gruvbox theme, Tree-sitter, file explorer
  * Provide complete auto-completion usage guide with keybindings
  * Include essential keybinding reference for file operations, clipboard, git
  * Explain completion sources: buffer words and file path suggestions

Benefits:
- Simple, non-intrusive auto-completion without language servers
- Word completion from open buffers for faster typing
- Path completion for file navigation and imports
- Clear documentation for all Neovim features and keybindings
- Follows standard completion UI patterns users expect

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 20:36:45 +02:00
Yan Lin
f7f6d117c7 Minor update of nvim hidden list 2025-07-28 19:23:47 +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
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
49a06d6491 Update termscp config 2025-07-28 00:27:02 +02:00
Yan Lin
63402edd8f Manage termscp config with nix 2025-07-28 00:16:21 +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
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
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
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
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
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