/ .github / README.md
README.md
 1  # My ~
 2  
 3  Minimal, performance-focused dotfiles. Extremely snappy without sacrificing convenience.
 4  
 5  ![Screenshot](https://github.com/user-attachments/assets/baab84b5-d5cd-46a1-813a-8004a95d2ccf)
 6  
 7  ## Usage
 8  
 9  My `$HOME` directory is basically just a Git repository that ignores untracked files by default,
10  allowing me to manage my dotfiles like any other projects.
11  
12  ```ini
13  ; ~/.git/config
14  [status]
15      showUntrackedFiles = no
16  ```
17  
18  I also have an automated setup that can configure everything from scratch using Nix,
19  which is available at [khuedoan/nixos-setup](https://github.com/khuedoan/nixos-setup).
20  
21  My dotfiles are optimized for Linux, but since they are POSIX compliant, they should
22  work on macOS or BSD as well (as long as the necessary packages are available).
23  
24  Please feel free to copy bits and pieces that you like ;)
25  
26  ## Performance
27  
28  I always try to lazy load where possible.
29  This section attempts to demonstrate how snappy it is.
30  
31  > - Last updated: December 7, 2023
32  > - Hardware: Ryzen 5 5600X, 32GB of RAM, running NixOS 23.11
33  
34  Opening Zsh:
35  
36  `time zsh -i -c exit` (47ms)
37  
38  ```
39  zsh -i -c exit  0.04s user 0.01s system 100% cpu 0.047 total
40  ```
41  
42  Opening the terminal (including waiting for the shell):
43  
44  `time foot zsh -i -c exit` (67ms)
45  
46  ```
47  foot zsh -i -c exit  0.05s user 0.02s system 103% cpu 0.067 total
48  ```
49  
50  Opening Neovim with 32 plugins:
51  
52  `:Lazy profile` (15ms)
53  
54  ```
55  Startuptime: 15.46ms
56  
57  Based on the actual CPU time of the Neovim process till UIEnter.
58  This is more accurate than `nvim --startuptime`.
59    LazyStart 4.97ms
60    LazyDone  10.65ms (+5.68ms)
61    UIEnter   15.46ms (+4.81ms)
62  ```
63  
64  ## Acknowledgements
65  
66  - [LunarVim/LunarVim Neovim config](https://github.com/ChristianChiarulli/LunarVim)
67  - [LunarVim/nvim-basic-ide Neovim config](https://github.com/LunarVim/nvim-basic-ide)
68  - [siduck76/NvChad Neovim config](https://github.com/siduck76/NvChad)
69  - [nvim-lua/kickstart.nvim config](https://github.com/nvim-lua/kickstart.nvim)
70  - [mattydebie/bitwarden-rofi script](https://github.com/mattydebie/bitwarden-rofi)
71  - [LazyVim/LazyVim config and lazy loading](https://github.com/LazyVim/LazyVim)
72  - [Vim statusline without a plugin](https://shapeshed.com/vim-statuslines)
73  - [Microphone tuning guide by Paul W. Frields](https://fedoramagazine.org/tune-up-your-sound-with-pulseeffects-microphones), [EasyEffects preset by MateusRodCosta](https://gist.github.com/MateusRodCosta/a10225eb132cdcb97d7c458526f93085) and the [modified version by jtrv](https://github.com/jtrv/.cfg/blob/morpheus/.config/easyeffects/input/fifine_male_voice_noise_reduction.json)
74  - [Swap two containers in Sway](https://www.reddit.com/r/swaywm/comments/z6t24k/comment/iy6mqxs)
75  - [How core Git developers configure Git](https://blog.gitbutler.com/how-git-core-devs-configure-git)