Skip to content

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

Notifications You must be signed in to change notification settings

aiguofer/dotfiles

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published