IrishPrime / dotfiles

Myriad configuration files for frequently used applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dotfiles

Myriad configuration files for frequently used applications.

Installation

Requirements

GNU Stow

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.

Caveats

If stow tries to install a file that already exists, it will fail. Remove or backup any existing files before installing.

Fonts

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.

Environment Variables

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, or vim.
  • VISUAL - GUI text editor: gvim, gvim -f, xemacs, etc.
  • FILE_BROWSER - File explorer: thunar, nautilus, pcmanfm, etc.
  • SXHKD_SHELL - A shell through which to run sxhkd bindings. My bindings are currently compatibile with bash.
  • 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.

XDG Default Applications

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.

Web Browser

$ xdg-mime default <browser>.desktop x-scheme-handler/http
$ xdg-mime default <browser>.desktop x-scheme-handler/https

Bittorrent

$ xdg-mime default <torrent-client>.desktop x-scheme-handler/magnet
$ xdg-mime default <torrent-client>.desktop application/x-bittorrent

Packages

  • 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.

Screenshot

screenshot

Customization

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.

Branching

Create a new branch for each system running these settings. Merge the master branch into your custom branch as changes are pushed.

  1. git checkout -b $(hostname)
  2. Edit files to your liking.
  3. git add -u
  4. git commit

After I push changes to this repository, you can merge them with your own customizations.

  1. git checkout master
  2. git pull
  3. git checkout $(hostname)
  4. git merge master
  5. Resolve any merge conflicts and follow git instructions.

Forking

  1. Fork this repo.
  2. Edit files to your liking.
  3. Sync this repo with your fork.
  4. Resolve any merge conflicts and follow git instructions.

Troubleshooting

Scripts Not Executing

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.

About

Myriad configuration files for frequently used applications.


Languages

Language:Shell 90.0%Language:Vim Script 8.5%Language:Perl 0.4%Language:HTML 0.4%Language:Makefile 0.3%Language:Python 0.2%Language:Java 0.1%Language:C 0.1%Language:PHP 0.0%