Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Miika's Dotfiles Header

My Dotfiles

Desktop screenshot

This is my personal configuration for a custom Debian Desktop Environment, including useful scripts, a list of all the programs I use and installation instructions. This mainly works as a reference for myself, but anyone else is also welcome to enjoy and extend upon my configurations.

Here are the details of my setup:

  • Distro: Debian - Stable and reliable
  • WM: BSPWM - A tiling window manager
  • DM: LightDM - A simple and beautiful display/login manager
  • Shell: Bash
  • Terminal: Alacritty - A fast terminal emulator
  • Bar: Polybar - A fast and easy-to-use status bar
  • Compositor: Picom - Helps remove screen tearing
  • Notifications: Dunst - A simple notification manager
  • Launcher: Rofi - An application launcher used for many of my scripts
  • File Manager: PCManFM - A basic graphical file manager
  • Hotkeys: SXHKD
  • Text Editors: Neovim, Vim, Emacs - Programming and text editing
  • Music Player: MPD, NCMPCPP - Polybar integration


Most of my useful shell scripts are included in .local/bin/.

Here are some example scripts:

  • is a script to manage devices with rofi/dmenu. Features include mounting, unmounting, ejecting and listing devices.
  • is a script that uses FZF to find files by name, file type and/or content.
  • is a script that allows hot plugging external monitors for BSPWM and Polybar.
  • is a script to kill running processes with rofi/dmenu.


Modus Themes

Modus Operandi

Modus Operandi

Modus Vivendi

Modus Vivendi


To install and integrate with your system, you need to checkout the master branch and initialize included submodules.

git --work-tree $HOME --git-dir $HOME/dotfiles init
git --work-tree $HOME --git-dir $HOME/dotfiles remote add -t \* -f origin
git --work-tree $HOME --git-dir $HOME/dotfiles checkout master
git --work-tree $HOME --git-dir $HOME/dotfiles submodule update --init
git --work-tree $HOME --git-dir $HOME/dotfiles config --local status.showUntrackedFiles no

Alternatively, you can clone the repository with submodules and move the files manually.

To install all of my packages, you can run my installation script:


I use Ubuntu Mono Nerd Font as my main font. You can use my script to download and install it for your system:

chmod +x ~/.local/bin/

Elementary cursor theme requires moving icons to their correct location:

cp -R ~/.icons/elementary-cursors/elementary/ ~/.icons/

Suckless program installation:

sudo echo "[Desktop Entry]
Comment=Dynamic window manager
Type=XSession" > /usr/share/xsessions/dwm.desktop
cd .local/src/suckless/dwm && sudo make clean install
cd .local/src/suckless/dmenu && sudo make clean install
cd .local/src/suckless/dwmblocks && sudo make clean install
cd .local/src/suckless/st && sudo make clean install

To automatically run my keyboard setup script when keyboard is attached, we need to create a udev rule in /etc/udev/rules.d/99-keyboard.rules. You can find the vendor and model ID for all USB devices by running the command lsusb:

ACTION=="bind", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04b4", ENV{ID_MODEL_ID}=="0510" RUN+="/bin/su m --command='/home/m/.local/bin/'"

Text Editors

Currently, I have configurations for Neovim (~/.config/nvim/), Vim (~/.vim/) and Emacs (~/.emacs.d/). At this moment I am only using Neovim and that is the only configuration I am maintaining. My Emacs configuration is written as a self documenting Org file for easier understanding.

Light / Dark Mode Toggle

I switch between dark and light mode depending on the ambient light conditions. In order to do that conveniently I have created a script, which automatically changes the color theme on my most used applications (i.e. Neovim, Alacritty, Polybar, GTK).

Dark and Light Mode Comparison

To stay up to date with me, visit my website.

Useful Links:

  • Arch Wiki — A great Linux resource for almost anything
  • kickstart.nvim — A great starting point for a Neovim "IDE" configuration
  • Uncle Dave — Great YouTube series on configuring Emacs from scratch
  • Protesilaos Stavrou — In-depth Emacs content, awesome color themes modus-operandi & modus-vivendi