Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aiguofer/dotfiles

Config files and scripts for emacs, i3, polybar, zsh, systemd, udev, and more...
https://github.com/aiguofer/dotfiles

Last synced: 16 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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:

```shell
# 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

```