My UN*X environment setup, including automation scripts and configuration files for a variety of tools.
The repository is structured around the custom environments I run, including:
- a FreeBSD headless laptop (
ttyenvironment) - a Fedora desktop with Sway (
waylandenvironment) - a Debian desktop with Dwm (
xorgenvironment).
Note that the TTY tools are employed across all environments.
- GNU Make
- GNU Stow
| General | GNU Emacs (my config), GNU Image Manipulation Program, Blender, Inkscape, Ffmpeg, Pandoc, Imv, Fzf, Ytfzf, Yt-dlp, Shotcut, Mpv, Thunar, Podman, Ansible |
| TTY Environment | GNU Bourne-Again SHell, GNU Emacs (ditto), GNU Midnight Commander, GNU Lynx, GNU Parallel, GNU Privacy Guard, GNU Stow, GNU Make, Bash-completion, ClamAV, Tmux, Git, Htop, Powertop, Hyperfine, Tree, Nmcli, Yq, Pulsemixer, Spotify-tui, Rsync, Rclone, Restic |
| Wayland Environment | Foot, Sway, Swaylock, Waybar, Rofi, Dunst, Kanshi, Gammastep, Wl-clipboard, SDDM |
| Xorg Environment | Urxvt, Suckless tools (my builds), Redshift, Nitrogen, Sxhkd, Xclip, Xsettingsd |
Before using my dotfiles, change the personal environment values in ./tty/.bash_profile accordingly.
To automate the process of creating symbolic links from the repository files to their respective locations, use one of the following commands in the dotfiles’ root directory .:
ℹ️ The TTY environment is automatically installed when choosing any of the graphical environment options.
make ttymake waylandmake xorgTo create paper-based backups of important files, run papyrus. This script handles compression, chunking, and QR code generation while preserving file metadata and integrity through SHA-256 for physical printing and storage. It provides a long-term cold backup for critical/small files.
To switch between light and dark modes globally, just run switcher. This custom script sends SIGHUP signals to the respective programs, making it easy to adapt to changes in ambient light without having to manually adjust each program’s settings.
To automate system updates, run omni. This script checks for the availability of various package managers and executes the corresponding update commands. It ensures that every manager present in the enviroment update its packages.
To display a MOTD with a log of last logins and a custom fortune, run hermes. This script is designed to be executed automatically in every interactive login shell through hermes.service and .bash_profile. For more details, check the script comments.
To streamline the music experience, just run euterpe. This script leverages tmux to attach to a session with windows related to managing system sound and media.
- 0x0st: share ephemeral files and snippets
- autostart: sway/dwm autostart
- battery_bar: battery status
- clock_bar: date and time
- cpu_bar: cpu usage
- cronaide: aide checks
- cronaudit: audit summaries
- cronbib: calibre to bibtex
- cronbkp: backup automation
- crondrive: bisync drives
- cronemacs: emacs packages updates
- crongit: commit local repos
- euterpe: audio and music management
- hermes: custom motd
- lan_bar: lan status
- media_bar: media status
- mpvf: mpv and firefox wrapper
- net_bar: network status
- omni: universal update automation
- papyrus: paper-based backups
- power_menu: logout screen options
- qbit: qbittorrent secure launcher
- ram_bar: ram usage
- switcher: global dark/light mode switcher
- ttybkp: backup naming standard
- ttyeod: end of day wrapper
- ttygpg: encryption automation
- ttyimg: image privacy and filtering
- ttylog: logging for commands
- ttymnt: luks devices management
- ttypas: env and secrets security
- ttysha: file enumeration prevention
- ttysync: safe rsync directories
- ttyt00: tmux wrapper
- ttyt01: tmux wrapper
- ttyt02: tmux wrapper
- ttytrack: track current state and upload log
- volume_bar: volume status
- volume_down: lower volume
- volume_up: raise volume
- vpn_bar: vpn status
- weather: weather status
- wlan_bar: wlan status
The scripts are located in the following repository path: ./tty/.local/bin/.
- TTY environment
- Ansible
- Bash
- Curl
- Fzf
- Git
- GNU Lynx
- GNU Midnight Commander
- Kmonad
- Readline
- Ripgrep
- Systemd
- Tmux
- Xdg
- Wayland environment
- Dunst
- Foot
- GTK
- Mpv
- Rofi
- Sway
- Swaylock
- Waybar
- Yt-dlp
- Xorg environment
- Sxhkd
- Urxvt
- Xresources
- Xsettingsd
The configuration files are located in the following repository paths: ./${environment}/.config/, ./${environment}/.local/share/.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0), unless an exception is made explicit in context. The GPL is a copyleft license that guarantees freedom to use, modify, and distribute software. It ensures that users have control over the software they use and promotes collaboration and sharing of knowledge. By requiring that derivative works also be licensed under the GPL, the freedoms it provides are extended to future generations of users and developers.
See the COPYING file for more information.
The source code for this project is available at https://github.com/ttybitnik/dotfiles.