All Projects → aiguofer → dotfiles

aiguofer / dotfiles

Licence: other
Config files and scripts for emacs, i3, polybar, zsh, systemd, udev, and more...

Programming Languages

shell
77523 projects
python
139335 projects - #7 most used programming language
emacs lisp
2029 projects
lua
6591 projects

dotfiles

I've organized my dotfiles into 2 directores user and system. Under each, I keep the same structure as they go on the home directory and root respectively. These get set up using symlinks to make sure I remember to check-in any changes.

These dotfiles are mainly focused around using systemd to manage user processes and using the following tools:

Linux:

i3 (gaps) - Tiling window manager
polybar - Status bar for i3
picom - Compositor for i3
rofi - Application opener for i3
dunst - Notifications daemon for i3

MacOS

yabai - Tiling window manager
skhd - Keybinding manager for yabai (and other WM stuff)


Both

emacs - Editor/IDE
alacritty - Terminal (previously terminator)
pyenv - Python version/virtualenv/project manager
zsh - Shell
tmux - Shell multiplexer (and shell session manager)
Google Play Media Desktop Player - Media player
git - Source control
powerline - Shell font
pipx - Python cli tool installer/manager
homebrew (and linuxbrew) - package manager
nix - package manager/system config

I also use a variety of tools, scripts, etc to make things work the way I want to. Some scripts I have here:

# systemd related (most of these have a corresponding .service file)
start_systemd    # ensures necessary ENV vars are set and starts my main user target to which everything is bound
watch_battery    # notify me when battery drops too low
watch_fullscreen # start a fullscreen.target when a window is full screen (used to prevent xautolock)
watch_sleep      # used to start a user level sleep.target (used to lock screen on suspend)
watch_unlock     # used to start a user level target to know if the system is unlocked or not (not currently used)
lock_screen      # used to actually lock screen. gives me a centralized location to change the locking app
set_wallpaper    # set the wallpaper for i3 sessions

# headset/bluetooth related
connect_headset  # currently hardcoded since I only use 1 headset
disconnect_headset # same as above
reset_bluetooth  # re-set bluetooth when things act up
switch_headset   # switch the headset between a2dp and heaset modes (useful for taking video calls)
a2dp-fix         # script to make sure headset works with a2dp when I connect it
a2dp-fix-wrapper # accompanies above script so it can be called by udev rule

# media related
volume           # changes volume only for the currently active pulseaudio sinks
songliker        # like the currently playing song on GPMDP
raiseplayer      # raise the GPMDP player (no longer used since I switched to i3)
now_playing_gpmdp/lastfm # scripts to print out the currently playing song to polybar

# emacs
editor           # start emacsclient using the currently running emacs server. use terminal or X depending on env
sudo_editor      # same as above, but for files that need sudo to edit

# android
enable_helium_carbon # self explanatory
fix_airplane_mode    # make airplane mode only deactivate cell signal (why disable bluetooth and wifi?)

# other
focuswindow      # script to focus a specific window given a name. was used to setting key shortucts, but not used since i3
flip_text        # flip a string of text upside down... because, why not?
todoist_task     # raise a little GTK window with a text prompt to add a new task to my Todoist inbox, used with key shortcut
battery-combined-udev.sh # script to combine battery percentage for polybar when multiple batteries are present (no longer used)

# MacOS
yabaictl         # a wrapper around yabai to implement complex workflows with multiple steps and dependency on state
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].