Skip to content

Linux dotfiles for openbox/tint2/conky. Managed with chezmoi. Used on Gentoo, Debian/Devuan and Void.

License

Notifications You must be signed in to change notification settings

vbrand1984/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Dotfiles

A screenshot

What's Inside

Expand
Applications and utilities
Dotfiles manager chezmoi
Window manager Openbox
Panel tint2
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

Cheatsheet

Openbox keybindings

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

Dunst mouse bindings

Expand
  • Left click: Open context menu for actions and URLs.
  • Right click: Close current notification.
  • Middle click: Close all notifications.

Features

Supported distributions

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). There is no support for automated chezmoi tracking and updating in Debian installs by this setup so far.

Automated installation of packages

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-deb.yaml file. Installation is performed by this script.

Local bin directory

~/.local/Bin is added in $PATH after everything else. This directory contains several scripts which have executable bit on.

~/.local/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 ~/.local/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.

Local scripts directories

Utility scripts without executable flag are stored in the ~/.local/Scripti directory. Openbox pipemenu scripts are stored in ~/.local/Scripti/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 config files are readonly

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.

The chezmoi.toml file

This config excessively abuses templating features of chezmoi. Many settings are stored in the ~/.config/chezmoi/chezmoi.toml file which is defined by $CHEZMOI_SOURCE_DIR/.chezmoi.toml.tmpl.

Theming and fontconfig options

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 data.gtk and data.fontConfig sections. 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.

Caveats

  • 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).
  • The ~/.config/autostart directory has the exact_ chezmoi's prefix in the config which means that anything not managed by chezmoi in it will be deleted upon executing chezmoi init --apply, chezmoi update or chezmoi apply (this is done partly for security, partly for convenience reasons). You have been warned.
  • ~/.local/Bin and ~/.local/Scripti directories both have the same exact_ prefix in the config, as well. Though these are just my personal directories, and they are not included in any standards.
  • Among all icon themes, only Papirus set is fully supported by this config, due to the templating limitations (absolute paths to certain icons are specified in some dotfiles for Openbox and Dunst; see the dunstIcons and obmenuIcons templates). Using other icon themes may render some icons in Openbox menu and Dunst invisible.
  • Debian no longer supports clipit for whatever reason. As of now, I solve this issue by manually installing this package from Debian 10 (link) and holding it (aptitude hold command). There is no automatic installation and support for this package in my dotfiles so far.

License

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.