This is the place where I keep the dotfiles that I use daily.
So yeah, it will definitely change from time to time :D
| hyprland | neovim |
|---|---|
![]() |
![]() |
Each module in this repo is self-contained.
You can install one or multiple modules using the provided dot.sh script:
./dot.sh <module>For example, let's say that I'm going to install my zsh and neovim config:
git clone https://github.com/nullxception/dotfiles
cd dotfiles
./dot.sh zsh nvimThatβs it! :)
Files inside the nvim and zsh dir will be copied to the location defined in respective <module>/.install:
nvim/*to~/.config/nvim/zsh/*to~/
dot.sh is a minimal Bash script that automates installation by reading the module_target variable inside each moduleβs .install file and copying files to that target path.
Example:
module_target="$HOME/.config/nvim"
You can take a look and refer to:
Windows support is available through dot.ps1 PowerShell script.
It mirrors similar behavior as dot.sh, except it reads Windows-specific variable instead:
module_target="$HOME/.config/nvim" # this will read by dot.sh
module_target_win32="$env:LOCALAPPDATA/nvim" # and this is for dot.ps1
To use it, you can just do pretty much similar way:
./dot.ps1 nvimThis lets me sync cross-platform configs (like Neovim or WezTerm) seamlessly between Linux and Windows.
My Neovim config leverages mason.nvim, nvim-treesitter, telescope.nvim, conform.nvim, blink.cmp, and some other plugins for a cohesive development experience, or just configuring things to justify my boredom :D
- Neovim >= 0.12 (for built-in
vim.packpackage manager)
Because this setup relies on mason.nvim, nvim-treesitter, and telescope.nvim, you may need a few external tools to ensure everything runs smoothly :
On Windows, I typically use
scooporwingetto install the required tools.
For the tree-sitter compiler on Windows, I personally recommend using gcc on mingw for simplicity
(and also because I don't want to pull 7GB of Visual Studio C++ Build Tools π
)
# using scoop
scoop install mingw
# or alternatively
# using BrechtSanders's standalone build of GCC and MinGW-w64 on winget
winget install BrechtSanders.WinLibs.POSIX.UCRTYou can use the dot.sh or dot.ps1 script to set it up automatically:
./dot.sh nvim./dot.ps1 nvimIt's a pretty simple hyprland setup that utilize waybar, rofi, and some other programs to help my regular desktop usage.
My Hyprland setup is configured for my dual monitor setup, including but not limited to workspace binding. So make sure you check and adjust the config accordingly.
Below are the list of programs and scripts that currently used on this setup:
| Program/script | Description | config |
|---|---|---|
| hypridle | Idle daemon | hypridle.conf |
| hyprlock | Lock Screen | hyprlock.conf |
| wezterm | Terminal emulator | wezterm |
| cliphist + wl-clip-persist | Clipboard manager | -- |
| swww | Wallpaper daemon | -- |
| waybar | Panel | waybar |
| mako | Notification daemon | mako |
| subs-volume | Volume notifier | -- |
| grimblast | Screenshot script | -- |
| rofi | App launcher | rofi |
| rofi-session | Session menu | rofi/rofi-session.conf |
| rofi-polkit-agent | Polkit agent | -- |
| rofimoji | Rofi Emoji Picker | -- |
| wtype | Used by rofimoji to simulate keyboard input | -- |
You can copy the necessary files into your own config dirs, or deploy the configs with dot.sh:
# Deploy hyprland and other configs
./dot.sh waybar mako rofi hypr
Unless otherwise noted, all code and configuration files are licensed under the BSD 3-Clause License.
Made with β€οΈ, β, and too much neovim sessions.

