Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vbrand1984/dotfiles
Linux dotfiles for openbox/tint2/conky. Managed with chezmoi and ansible. Used on Gentoo, Debian/Devuan and Void.
https://github.com/vbrand1984/dotfiles
ansible-playbook bash chezmoi conky dotfiles dotfiles-linux dunstrc emacs-config fontconfig lua obmenu-generator openbox openbox-configuration picom-config python tint2rc vimrc
Last synced: about 15 hours ago
JSON representation
Linux dotfiles for openbox/tint2/conky. Managed with chezmoi and ansible. Used on Gentoo, Debian/Devuan and Void.
- Host: GitHub
- URL: https://github.com/vbrand1984/dotfiles
- Owner: vbrand1984
- License: gpl-2.0
- Created: 2024-04-16T16:09:44.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-08-03T11:41:59.000Z (3 months ago)
- Last Synced: 2024-08-04T03:56:56.699Z (3 months ago)
- Topics: ansible-playbook, bash, chezmoi, conky, dotfiles, dotfiles-linux, dunstrc, emacs-config, fontconfig, lua, obmenu-generator, openbox, openbox-configuration, picom-config, python, tint2rc, vimrc
- Language: Lua
- Homepage:
- Size: 4.81 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Dotfiles
These are my personal dotfiles which I desided to publish.
## Installation
Install [chezmoi](https://www.chezmoi.io/install/).
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
```## Screenshot(s)
![A screenshot](../assets/screenshots/screenshot01-gentoo.png?raw=true)
## List of Used Programs and Theming Packages
Expand
Applications and utilities
Dotfiles managerchezmoi
Window managerOpenbox
PanelTint2
X Compositorpicom
Wallpaper managernitrogen
System monitorConky
Openbox menusobmenu-generator
Application launcherrofi
Text processorsVim, Emacs
Terminal emulatorLXTerminal, Alacritty
File managersmc, PCManFM or caja
Sound volumevolumeicon
Clipboard managerClipIt
ScreensaverXScreensaver
X settings daemonXSettingsD
CalendarGsimplecal
ScreenshotsScrot
MiscellaniaCaffeine-ng, Redshift
Theming
GTK and Openbox themeGreylooks
IconsPapirus-Light
Mouse cursorDMZ-White a.k.a. Vanilla-DMZ
System fontRoboto Regular 11
Monospace fontJetBrains Mono Medium
Other fonts usedUbuntu, DejaVu## Cheatsheet
### Openbox keybindings
Expand
Application launchers
Super-Ctrl-BWeb Browser
Super-Ctrl-CLibreOffice Calc
Super-Ctrl-EEmacs client
Super-Ctrl-FFile manager
Super-Ctrl-ILibreOffice Impress
Super-Ctrl-OObconf
Super-Ctrl-PPavucontrol
Super-Ctrl-QQalculate!
Super-Ctrl-RTor Browser launcher
Super-Ctrl-SOBS-Studio
Super-Ctrl-TTerminal emulator
Super-Ctrl-WLibreOffice Writer
Ctrl-Alt-DelSystem monitor
rofi
Super-Enterrun module (run a command)
Super-Shift-Enterdrun module (run desktop application)
Super-F1calc module (not working in Debian-based installs)
Super-Tabwindow switching module
Screenshots
PrtScrTake a screenshot (fullscreen)
Alt-PrtScrScreenshot of the current window
Ctrl-PrtScrScreenshot of selection
Super-PrtScrFullscreen screenshot with a 5 sec delay
Super-Alt-PrtScrScreenshot of the current window with a 5 sec delay
Inherent Openbox stuff
Super-Shift-AReconfigure whole appearance
Super-Shift-CReconfigure Openbox
Super-EscShow Openbox menu
Super-DShow/hide desktop
Session management
Super-Ctrl-LLock screen
Super-Ctrl-EscShutdown dialogue
Super-Shift-EscExit Openbox
Navigating between desktops
Super-[1..4]Go to desktop 1, 2, 3 or 4
Super-Ctrl-LeftGo to the desktop to the left
Super-Ctrl-RightGo to the desktop to the right
Super-Ctrl-UpGo to the desktop above
Super-Ctrl-DownGo to the desktop below
Moving windows between desktops
Super-Shift-[1..4]Move current window to desktop 1, 2, 3 or 4
Super-Shift-LeftMove current window to the desktop to the left
Super-Shift-RightMove current window to the desktop to the right
Super-Shift-UpMove current window to the desktop above
Super-Shift-DownMove current window to the desktop below
Window handling
Alt-F4, Super-QClose current window
Alt-EscDrown the window into the bottom of the stack
Alt-SpaceShow window's context menu
Super-FToggle fullscreen
Super-IIconify current window
Super-MToggle maximize
Super-OToggle omnipresent
Alt-TabSwitch to the next window
Ctrl-Alt-TabSwitch to the previous window
(Semi)-Tiling
Super-LeftShift current window to the left half of the screen
Super-RightShift current window to the right half of the screen
Super-UpShift current window to the top half of the screen
Super-DownShift current window to the bottom half of the screen
Super-HomeShift current window to the upper-left corner of the screen
Super-PageUpShift current window to the upper-right corner of the screen
Super-PageDownShift current window to the bottom-right corner of the screen
Super-EndShift 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](https://www.chezmoi.io/). 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](https://www.chezmoi.io/install/#download-a-pre-built-linux-package)). After that it is possible to update chezmoi by running `chezmoi upgrade` (see the [docs](https://www.chezmoi.io/reference/commands/upgrade/)).
### 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-debian.yaml`](home/.chezmoidata/packages-deb.yaml) file. Further package installation and configuration is performed by my ansible playbook (WIP).### Local bin directory
`~/.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](https://www.chezmoi.io/reference/source-state-attributes/)) 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.
### Local scripts directories
Utility scripts without executable flag are stored in the [`~/.Dots/scripts`](home/exact_private_dot_Dots/exact_private_dot_scripts) directory. Openbox pipemenu scripts are stored in [`~/.Dots/scripts/openbox-pipemenus`](home/exact_private_dot_Dots/exact_private_dot_scripts/exact_private_openbox-menus). 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 main configuration file of chezmoi, `~/.config/chezmoi/chezmoi.toml` (see the [docs](https://www.chezmoi.io/reference/configuration-file/)), which is defined by [`$CHEZMOI_SOURCE_DIR/.chezmoi.toml.tmpl`](home/.chezmoi.toml.tmpl) (see the [docs](https://www.chezmoi.io/reference/special-files-and-directories/chezmoi-format-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 `gtk` and `fc` 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`](home/private_dot_Dots/exact_private_bin/private_readonly_executable_reconfigure-appearance.sh.tmpl) (or just press `Super-Shift-A` in order to invoke this script).The default [Greylooks](https://github.com/vbrand1984/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`](home/.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 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.## License
This project is free software and is published under the terms of the [GPL-2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) license.The project is provided AS IS and WITHOUT ANY WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.