~/.dotfiles
Cross-platform, cross-shell configuration
This repository provides a unified development environment across Linux, Windows, and WSL, with version-controlled configuration for editors, terminals, shells, and CLI tools.
This repo manages:
- shell, terminal, editor, file manager, prompt, and Git configuration
- bundled fonts and platform-specific config linking
- optional Kanata keyboard remapping
- optional Niri desktop configuration on supported Linux installs
- package installs for the tools used by the dotfiles
See apps.md for the package inventory and platform-specific package names.
git clone https://github.com/lindestad/dotfiles ~/dev/dotfiles
cd ~/dev/dotfiles
./install.shinstall.sh detects Arch-based, Debian/Ubuntu-based, Fedora, and WSL installs, then dispatches to the matching platform installer.
The installer prompts for optional components when no flags are provided. Use flags for repeatable installs:
./install.sh --niri --kanata
./install.sh --no-niri --no-kanata --yesOptional components:
--niriinstalls and links the Niri desktop stack: niri, waybar, fuzzel, swaylock/swayidle, and related Wayland utilities.--kanatainstalls or links Kanata keyboard remapping config where supported.
git clone https://github.com/lindestad/dotfiles $HOME\dev\dotfiles
cd $HOME\dev\dotfiles
.\install.ps1The platform-specific scripts are still available for direct use when needed: install-arch.sh, install-ubuntu.sh, install-fedora.sh, install-wsl.sh, and install-windows.ps1.
This dotfiles setup is designed to support:
- Linux: Arch-based, Debian/Ubuntu-based, and Fedora
- WSL2
- Windows
Kanata is an optional install. Use --kanata, or answer the installer prompt when running interactively.
Standard binds:
Caps Lock→LeftCtrlLeftCtrl→EscapeRightCtrl→Caps LockRightAlt+;/'/[→ø/æ/å
Optional binds:
These binds are only enabled if selected during install. Warning: Enter is rebound
- ISO to ANSI-like feel:
<key (BetweenLeftShiftandZ) →LeftShift-- Emulates long left shift keyEnter→\-- RemapEnterto the key that resides aboveEnteron ANSI.\key (between'andEnter) →Enter-- Emulates long enter key, shorter stroke
Force exit Kanata:
LeftCtrl + Space + Esc (Ignores rebinds).
This project is licensed under the MIT License. See LICENSE for details.