Skip to content

ttybitnik/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ttybitnik/dotfiles

This repository contains my personal collection of scripts and configuration files.

The description is structured around the custom environments I run, including a FreeBSD headless laptop (tty environment), a Fedora desktop with Sway (wayland environment), and a Debian desktop with Dwm (xorg environment). It is worth noting that the TTY tools are employed across all environments.

Table of contents

Requirements

  • GNU Make
  • GNU Stow

Suggestions

GeneralGNU Emacs (my config), GNU Image Manipulation Program, Inkscape, Ffmpeg, Pandoc, Imv, Fzf, Ytfzf, Yt-dlp, Shotcut, Mpv, Nautilus
TTY EnvironmentGNU Emacs (ditto), GNU Midnight Commander, GNU Lynx, GNU Parallel, GNU Privacy Guard, GNU Stow, GNU Make, ClamAV, Tmux, Git, Htop, Powertop, Hyperfine, Tree, Nmcli, Yq, Pulsemixer, Spotify-tui
Wayland EnvironmentFoot, Sway, Swaylock, Waybar, Rofi, Dunst, Kanshi, Gammastep, Wl-clipboard
Xorg EnvironmentUrxvt, Suckless tools (my builds), Redshift, Nitrogen, Sxhkd, Xclip, Xsettingsd

Configurations

This repository includes configuration files for the following applications:

  • TTY environment
    • Bash
    • Readline
    • Git
    • Tmux
    • Curl
    • GNU Lynx
    • GNU Midnight Commander
    • Kmonad
    • Systemd
    • Xdg
  • Wayland environment
    • Foot
    • Sway
    • Waybar
    • Swaylock
    • Rofi
    • Dunst
  • Xorg environment
    • Urxvt
    • Sxhkd
    • Xresources
    • Xsettingsd

The configuration files are located in the following repository paths: ./${environment}/.config/, ./${environment}/.local/share/.

Scripts

The following scripts are included in this repository:

  • switcher: global dark/light mode switcher
  • omni: universal update automation
  • hermes: custom motd
  • euterpe: audio and music management
  • ttylog: logging for commands
  • ttybkp: backup naming standard
  • ttyeod: end of day wrapper
  • ttygpg: encryption automation
  • ttymnt: luks devices management
  • ttypas: env and secrets security
  • ttyimg: image privacy and filtering
  • autostart: sway/dwm autostart
  • vpn_bar: vpn status and city
  • net_bar: network status
  • ram_bar: ram usage
  • cpu_bar: cpu usage
  • battery_bar: battery status
  • volume_bar: volume status
    • volume_up: raise volume
    • volume_down: lower volume
  • media_bar: media status
  • clock_bar: date and time
  • weather: weather status
  • qbit: qbittorrent secure launcher
  • power_menu: logout screen options
  • cronbib: calibre to bibtex cron job
  • crondrive: bisync drives cron job
  • crongit: commit local repos cron job

The scripts are located in the following repository path: ./tty/.local/bin/.

Usage

Before using my dotfiles, change the personal environment values in ./tty/.bash_profile accordingly.

Symbolic links

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.

TTY environment

make tty

Wayland environment

make wayland

Xorg environment

make xorg

Switcher

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.

Omni

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.

Hermes

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.

Euterpe

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.

Miscellaneous

This section contains additional fine-tuning configurations for the packages and projects that I use in conjunction with my dotfiles.

Ytfzf and yt-dlp

To improve the performance of ytfzf, I recommend creating a symbolic link from /usr/local/bin/yt-dlp to /usr/bin/youtube-dl. This makes ytfzf work through yt-dlp instead of the hard-coded youtube-dl. Additionally, make sure to install ffmpeg for the highest video quality.

GTK Emacs-like key bindings

To enable Emacs-style key bindings within the GTK-based applications, make the following changes to the ~/.config/gtk-3.0/settings.ini file:

~/.config/gtk-3.0/settings.ini
[Settings]
gtk-key-theme-name = Emacs

TTY environment

Wayland environment

Xorg environment

Mouse speed

To adjust the mouse speed in Xorg, create the file /etc/X11/xorg.conf.d/50-mouse-acceleration.conf with the following content:

Section "InputClass"
	Identifier "My Mouse"
	Driver "libinput"
	MatchIsPointer "yes"
	Option "AccelProfile" "flat"
	Option "AccelSpeed" "0"
EndSection

After saving the file, restart Xorg.

License

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 the 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 of GPL-licensed software also be licensed under the GPL, the license ensures that the freedoms it provides are extended to future generations of users and developers.

See the COPYING file for more information.