Myriad configuration files for frequently used applications.
The files are packaged for installation with GNU stow
(documentation). Each package can be installed individually, or
install.sh
can be used to install all packages at once.
If stow
tries to install a file that already exists, it will fail. Remove or
backup any existing files before installing.
The desktop names and status indicators used on the panel are unicode characters from some special icon fonts. Install them according to your distribution's instructions.
The following environment variables are used in some sxhkd
bindings and
scripts. They should be set in .profile
or similar to ensure all bindings
work correctly. Refer to the Customization section for more.
BROWSER
- Web browser:chromium
,google-chrome
,firefox
, etc.EDITOR
- Terminal based text editor:vim
,vim
,emacs
, orvim
.VISUAL
- GUI text editor:gvim
,gvim -f
,xemacs
, etc.FILE_BROWSER
- File explorer:thunar
,nautilus
,pcmanfm
, etc.SXHKD_SHELL
- A shell through which to runsxhkd
bindings. My bindings are currently compatibile withbash
.TERMINAL
- Terminal emulator:urxvtc
,urxvt256c-mlc
,termite
,terminator
, etc.MAIL_CLIENT
- Mail reader:thunderbird
,mutt
, etc.CALCULATOR
- Calculator:gnome-calculator
,calc
, etc.IM_CLIENT
- Chat program:pidgin
,google-hangouts.sh
,facebook-messenger.sh
, etc.IRC_CLIENT
- IRC client:irssi
,hexchat
,xchat
, etc..MUSIC_PLAYER
- Music player:google-music.sh
,ncmpcpp
,cmus
,banshee
, etc.VIRTUALIZATION
- Virtualization hypervisor:virt-manager
,VirtualBox
, etc.
Not all applications use the environment variables, but rather rely on XDG (and
xdg-open
). See the Arch Wiki page on Default Applications
for a detailed explanation and examples.
$ xdg-mime default <browser>.desktop x-scheme-handler/http
$ xdg-mime default <browser>.desktop x-scheme-handler/https
$ xdg-mime default <torrent-client>.desktop x-scheme-handler/magnet
$ xdg-mime default <torrent-client>.desktop application/x-bittorrent
bash
-.bashrc
and aliases.bin
- Scripts for polybar and application launchers.bspwm
- Configuration files for the binary space partitioning window manager, bspwm.dunst
- Configuration files for the dunst notification daemon.fish
- Configuration files and custom functions for the fish shell.sxhkd
- Configuration for the simple X hotkey daemon, sxhkd.Templates
- Skeleton files for several programming languages.vim
-.vimrc
.misc
-.Xresources
,.profile
, and other configuration options which are less strictly bound to a single application.
I work on a few different systems that sometimes have similar, but slightly different environments. I want my settings to be as portable as possible, but I require some local customizations which differ from system to system. Presumably, other users will also want/require some slightly different settings. The two simplest ways to tweak these settings and still be able to get updates from this repository are branching and forking.
The included .profile
and panel_options
files will almost certainly need to
be edited.
Additionally, .profile
will source .profile.local
if it exists. This file
is not part of this repository, but can be used to set environment variables
which are unique to the workstation and too sensitive to place in version
control.
Create a new branch for each system running these settings. Merge the master
branch into your custom branch as changes are pushed.
git checkout -b $(hostname)
- Edit files to your liking.
git add -u
git commit
After I push changes to this repository, you can merge them with your own customizations.
git checkout master
git pull
git checkout $(hostname)
git merge master
- Resolve any merge conflicts and follow
git
instructions.
- Fork this repo.
- Edit files to your liking.
- Sync this repo with your fork.
- Resolve any merge conflicts and follow
git
instructions.
Depending on how the $PATH
is setup for your session, it may not include
~/.local/bin/
. This will cause the bspwm scripts to fail to load (as
they won't be found).
Manually create symlinks to these files in a location that will be in your
$PATH
when your session launches, such as /usr/local/bin/
, or ensure
~/.local/bin/
is added to the global $PATH
.
# ln -s ~/.local/bin/panel /usr/local/bin/panel
, etc.