To start, first ensure your user in in /etc/sudoers
:
su
# then in sudo shell
nano /etc/sudoers
Add your user to sudoers:
%sudo ALL=(ALL:ALL) ALL # append after this line yourusername ALL=(ALL) ALL # your line
Dependencies that are required to run the script:
sudo apt install curl git
Then run the installation:
bash <(curl -L https://raw.githubusercontent.com/vikdotdev/dotfiles/master/bin/install-debian)
Tested on Debian 13 Trixie.
In extension manager manually install kmonad-toggle
extension. In “Custom command” field put:
kmonad /home/<username>/.config/kmonad/config.kbd
That’s it, it’s already configured by build scripts.
After installation, use the dot
command to manage your dotfiles:
Shows help message with all available commands.
Install packages and applications. Without arguments, installs all modules.
dot install # Install all packages
dot install emacs # Install specific package
dot install tools/git # Install nested module
dot install --list # List available packages
Build and deploy configuration files. Without arguments, builds all modules.
dot build # Build all configurations
dot build shell # Build specific module
dot build --list # List available modules
Upgrade source-built packages. Without arguments, upgrades all modules that have upgrade scripts.
dot upgrade # Upgrade all packages
dot upgrade emacs # Upgrade specific package
dot upgrade --list # List available upgrades
Update the dotfiles repository from git. Checks for uncommitted changes before pulling.
dot pull # Pull latest changes
Update the repository and rebuild all configurations. Combines pull
and build all
in one command.
dot sync # Pull and rebuild everything
Print the dotfiles directory path.
dot pwd # Print dotfiles path
cd $(dot pwd) # Navigate to dotfiles directory
Check system health and requirements. Verifies installation status, directories, and dependencies.
dot doctor # Run system health check
Modules are organized by numbered directories for build order:
00-mise/
- Runs first (dependency for other tools)01-ghostty/
- Runs second (depends on mise)- Regular directories run in alphabetical order
Create a ~/.profile.local
file to store machine specific environment variables.
Emacs package uses DESKTOP
& LAPTOP
variables to define default font sizes.