These are my personal dotfiles which I desided to publish.
Install chezmoi.
Clone the contents of this repository in ~/.Dots/chezmoi
(NB: specifying this directory is a must):
chezmoi init vbrand1984 --source ~/.Dots/chezmoi
See what files are going to be changed upon applying this configuration:
chezmoi status --exclude=encrypted
See detailed differences in the files managed by this configuration (there will be a lot):
chezmoi diff --exclude=encrypted
Apply the configuration:
chezmoi apply --exclude=encrypted
Expand
Applications and utilities | |
---|---|
Dotfiles manager | chezmoi |
Window manager | Openbox |
Panel | Tint2 |
X Compositor | picom |
Wallpaper manager | nitrogen |
System monitor | Conky |
Openbox menus | obmenu-generator |
Application launcher | rofi |
Text processors | Vim, Emacs |
Terminal emulator | LXTerminal, Alacritty |
File managers | mc, PCManFM or caja |
Sound volume | volumeicon |
Clipboard manager | ClipIt |
Screensaver | XScreensaver |
X settings daemon | XSettingsD |
Calendar | Gsimplecal |
Screenshots | Scrot |
Miscellania | Caffeine-ng, Redshift |
Theming | |
GTK and Openbox theme | Greylooks |
Icons | Papirus-Light |
Mouse cursor | DMZ-White a.k.a. Vanilla-DMZ |
System font | Roboto Regular 11 |
Monospace font | JetBrains Mono Medium |
Other fonts used | Ubuntu, DejaVu |
Expand
Application launchers | |
---|---|
Super-Ctrl-B | Web Browser |
Super-Ctrl-C | LibreOffice Calc |
Super-Ctrl-E | Emacs client |
Super-Ctrl-F | File manager |
Super-Ctrl-I | LibreOffice Impress |
Super-Ctrl-O | Obconf |
Super-Ctrl-P | Pavucontrol |
Super-Ctrl-Q | Qalculate! |
Super-Ctrl-R | Tor Browser launcher |
Super-Ctrl-S | OBS-Studio |
Super-Ctrl-T | Terminal emulator |
Super-Ctrl-W | LibreOffice Writer |
Ctrl-Alt-Del | System monitor |
rofi | |
Super-Enter | run module (run a command) |
Super-Shift-Enter | drun module (run desktop application) |
Super-F1 | calc module (not working in Debian-based installs) |
Super-Tab | window switching module |
Screenshots | |
PrtScr | Take a screenshot (fullscreen) |
Alt-PrtScr | Screenshot of the current window |
Ctrl-PrtScr | Screenshot of selection |
Super-PrtScr | Fullscreen screenshot with a 5 sec delay |
Super-Alt-PrtScr | Screenshot of the current window with a 5 sec delay |
Inherent Openbox stuff | |
Super-Shift-A | Reconfigure whole appearance |
Super-Shift-C | Reconfigure Openbox |
Super-Esc | Show Openbox menu |
Super-D | Show/hide desktop |
Session management | |
Super-Ctrl-L | Lock screen |
Super-Ctrl-Esc | Shutdown dialogue |
Super-Shift-Esc | Exit Openbox |
Navigating between desktops | |
Super-[1..4] | Go to desktop 1, 2, 3 or 4 |
Super-Ctrl-Left | Go to the desktop to the left |
Super-Ctrl-Right | Go to the desktop to the right |
Super-Ctrl-Up | Go to the desktop above |
Super-Ctrl-Down | Go to the desktop below |
Moving windows between desktops | |
Super-Shift-[1..4] | Move current window to desktop 1, 2, 3 or 4 |
Super-Shift-Left | Move current window to the desktop to the left |
Super-Shift-Right | Move current window to the desktop to the right |
Super-Shift-Up | Move current window to the desktop above |
Super-Shift-Down | Move current window to the desktop below |
Window handling | |
Alt-F4, Super-Q | Close current window |
Alt-Esc | Drown the window into the bottom of the stack |
Alt-Space | Show window's context menu |
Super-F | Toggle fullscreen |
Super-I | Iconify current window |
Super-M | Toggle maximize |
Super-O | Toggle omnipresent |
Alt-Tab | Switch to the next window |
Ctrl-Alt-Tab | Switch to the previous window |
(Semi)-Tiling | |
Super-Left | Shift current window to the left half of the screen |
Super-Right | Shift current window to the right half of the screen |
Super-Up | Shift current window to the top half of the screen |
Super-Down | Shift current window to the bottom half of the screen |
Super-Home | Shift current window to the upper-left corner of the screen |
Super-PageUp | Shift current window to the upper-right corner of the screen |
Super-PageDown | Shift current window to the bottom-right corner of the screen |
Super-End | Shift current window to the bottom-left corner of the screen |
Expand
- Left click: Open context menu for actions and URLs.
- Right click: Close current notification.
- Middle click: Close all notifications.
These dotfiles are tested in Gentoo, Debian/Devuan and Void Linux. Theoretically, this config should also work in other Debian-based distros (non-systemd ones included), and in Ubuntu and Ubuntu-based distributions as well, but not all features may be supported.
The dotfiles are managed by chezmoi. In Void Linux, the package for chezmoi is in the official repository; in Gentoo, there is an ebuild in the guru overlay. There is no official support for chezmoi in Debian though. One can install chezmoi in Debian and Debian-based distros in different ways. Personally, I prefer manual installation of the prebuilt .deb
package (link). After that it is possible to update chezmoi by running chezmoi upgrade
(see the docs).
In Debian-based distros, this config will automatically install needed packages using aptitude
. The list of the packages to install is stored in the $CHEZMOI_SOURCE_DIR/.chezmoidata/packages-debian.yaml
file. Further package installation and configuration is performed by my ansible playbook (WIP).
~/.Dots/bin
is added in $PATH
after everything else. This directory contains several scripts which have executable bit on.
~/.Dots/bin
has the exact_
chezmoi's prefix in the config** (see the docs) which means that anything not managed by chezmoi in this directory will be deleted upon executing chezmoi init --apply
, chezmoi update
or chezmoi apply
. If this behaviour is undesirable, rename the directory in the chezmoi source directory and wipe off the exact_
prefix before applying the configuration.
The name ~/.Dots/bin
was chosen deliberately because this path does not belong to any known to me standard, so that this config doesn't touch the ~/bin
and ~/.local/bin
directories.
Utility scripts without executable flag are stored in the ~/.Dots/scripts
directory. Openbox pipemenu scripts are stored in ~/.Dots/scripts/openbox-pipemenus
. All these scripts are invoked from other scripts directly, so that there is no need to either add them in $PATH
or enable executable bit at all.
These directories both have the exact_
prefix in the config as well.
Most of the configuration files managed by chezmoi here are private_
and readonly_
. The reason for that is not only security, but also convenience. This prevents user from accidently editing a config file which is managed by chezmoi. Instead, the chedit
alias is defined in bash
for the chezmoi edit --apply
command. This command is also available via the mc
user menu: just navigate your cursor over the desired file, press F2
and e
.
This config excessively abuses templating features of chezmoi. Many settings are stored in the main configuration file of chezmoi, ~/.config/chezmoi/chezmoi.toml
(see the docs), which is defined by $CHEZMOI_SOURCE_DIR/.chezmoi.toml.tmpl
(see the docs).
GTK options like theme, system font, mouse cursor theme, as well as fontconfig options like DPI, antialias and hinting are kept on a centralized basis in the ~/.config/chezmoi/chezmoi.toml
file in the gtk<whatever>
and fc<whatever>
variables. One should not use programs like lxappearance
in order to adjust these settings. Instead, edit the ~/.config/chezmoi/chezmoi.toml
file, run chezmoi apply
and reconfigure-appearance.sh
(or just press Super-Shift-A
in order to invoke this script).
The default Greylooks GTK and Openbox theme is downloaded and installed in the ~/.local/share/themes
directory automatically upon applying the configuration.
- This config may delete several config files in
$HOME
, see the$CHEZMOI_SOURCE_DIR/.chezmoiremove
file for more details. The reason for that is, configuration files for these programs are stored inside the~/.config
directory instead (and Vim config is stored in~/.vim
). - Git configuration is also affected. The
~/.gitconfig
and./git-credentials
files are deleted, and the~/.config/git/config
file is created according to its template. Thus, be sure you've backed up your git configuration before applying these dotfiles! - The
~/.config/autostart
directory has theexact_
chezmoi's prefix in the config which means that anything not managed by chezmoi in it will be deleted upon executingchezmoi init --apply
,chezmoi update
orchezmoi apply
(this is done partly for security, partly for convenience reasons). You have been warned.
This project is free software and is published under the terms of the GPL-2.0 license.
The project is provided AS IS and WITHOUT ANY WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.