Your dotfiles will most likely be the longest project you ever worked on.
Managing dotfiles without a version control system is a chore. That's why I created this GitHub repo :)
.
├── flake.lock
├── flake.nix
├── lib # utils for Nix
├── hosts # hosts (aka. machines) configurations
├── users # user-level configurations
├── hammerspoon # hammerspoon configurations
├── kitty # keymapping configurations
├── nvim # neovim configurations
├── README.md
└── windows-only # Windows configurations
My Personal Kitty Configurations
I use Hammerspoon to manage windows. The available key mappings are:
- Full screen - ⌘ Command + ⌥ Option + f
- Center - ⌘ Command + ⌥ Option + c
- Left half - ⌘ Command + ⌥ Option + ←
- Right half - ⌘ Command + ⌥ Option + →
- Top half - ⌘ Command + ⌥ Option + ↑
- Bottom half - ⌘ Command + ⌥ Option + ↓
- Top left - ⌘ Command + ⌥ Option + ⌃ Control + u
- Top right - ⌘ Command + ⌥ Option + ⌃ Control + i
- Bottom left - ⌘ Command + ⌥ Option + ⌃ Control + j
- Bottom right - ⌘ Command + ⌥ Option + ⌃ Control + k
- Hold to quit any app - ⌘ Command + q
My Go-to text editor with the following plugins:
- Package manager: lazy.nvim
- Auto-completion
- Completion sources: blink.cmp
- Vscode-like pictograms: lspkind.nvim
- LSP support:
- Git related
- Git integration: vim-fugitive
- Git decorations: gitsigns.nvim
- Typst tools: tinymist
- Markdown tools:
- Markdown: vim-markdown
- Markdown previewer (in browser): markdown-preview.nvim
- [arkdown previewer (within file): render-markdown.nvim
- Paste image : img-clip.nvim
- Stylish
- Colorscheme: tokyonight.nvim
- Better UI for messages/cmdline/popupmenu: noice.nvim
- TODO highlighting: todo-comments.nvim
- Code editing
- General capability
- Treesitter integration: nvim-treesitter
- Show context at the top: nvim-treesitter-context
- Syntax aware text-object: nvim-treesitter-textobjects
- A pretty list for showing diagnostics: trouble.nvim
- Autopairs: blink.pairs
- Indentation indicator: indent-blankline
- Easy motion: flash.nvim
- Surrounding: nvim-surround
- CodeCompanion: codecompanion.nvim
- Linter: nvim-lint
- Formatter: conform.nvim
- REPL-Driven Development: conjure
- Lisp kind
- nvim-parinfer: nvim-parinfer
- General capability
- Fuzzy finders: telescope.nvim
- File explorer: mini.files
- Status line: lualine.nvim
- Better terminal support: toggleterm.nvim
- Editor Performance: faster.nvim
I use Mac for personal business but use a Windows PC at work, so I wrote the keymappings.ahk
to map keys between Mac and Windows to keep a consistent muscle memory. To use this .ahk
script, you need to install the AutoHotKey tool and run keymappings.ahk
as administrator. Besides that, you should install a third-party Chinese IME and delete the built-in Microsoft Pinyin IME if you are also a Chinese user because there is an unfixed issue.
I have been gradually migrating to Nix flakes because I really appreciate the reproducibility they offer. My Nix configuration structure is largely inspired by mitchellh'nixos-config.