This commit is contained in:
2013-09-19 17:19:57 +02:00
13 changed files with 320 additions and 118 deletions

View File

@@ -1,4 +0,0 @@
dotfiles
========
My configuration files.

47
README.rst Normal file
View File

@@ -0,0 +1,47 @@
dotfiles
========
My configuration files.
Installation
------------
1. ``git clone git://github.com:whatevsz/dotfiles ~/dotfiles``
2. ``bash ~/dotfiles/scripts/makesymlinks.bash``
``makesymlinks,bash`` will back up all configuration files that would otherwise
be overridden and then symlink the content of all folders specified in $symlink_folders
into $HOME or the desired destination given in MAPPING, if present.
If you want to use a different directory instead of ``~/dotfiles``, just alter the first
line and replace ``~/dotfiles`` with the desired destination, and change the line
``config_dir="$HOME/dotfiles/"`` in ``scripts/makesymlinks.bash`` accordingly. You can
also choose a different folder for the backup of old files (default being ``~/.dotfiles,bak``
by altering ``backup_dir`` in ``scripts/makesymlinks.bash`` to your needs.
Structure
---------
- ``scripts/`` - Scripts for setting up the configuration.
- ``MAPPING`` - File that contains mapping directives.
- All other folders - These are the folders that contain the configuration files.
Mapping
-------
If you have configuration folder that is not located directly in $HOME,
but some subfolder (~/.config being a popular example), you
can tell the setup script to place the contents of that folder into an
arbitrary subfolder of $HOME. To do so, place an entry into ``MAPPING``. It has
the following format::
<name of the configuration folder>::<root for that folder relative to $HOME>
Example::
terminator::.config/
This will place the contents of the folder ``dotfiles/terminator`` into ``~/.config/``
When you provide multiple lines for the same folder, the first one that matches
will be used.

1
i3/i3/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
session.config

View File

@@ -15,14 +15,6 @@ set $mod Mod4
# The default terminal # The default terminal
set $terminal terminator set $terminal terminator
# Keyboard options
set $keyboard_layout de
set $keyboard_options nodeadkeys
# Mouse options
set $mouse_repeat_delay 150
set $mouse_repeat_speed 25
# Path to the exit script # Path to the exit script
set $path_i3exit ~/.i3/scripts/i3exit.bash set $path_i3exit ~/.i3/scripts/i3exit.bash
@@ -222,45 +214,17 @@ for_window [class="^Xfce4-notifyd$"] floating enable
for_window [class="^Conky$" ] floating enable for_window [class="^Conky$" ] floating enable
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
mode dock
position bottom
tray_output primary
font pango:DejaVu Sans Mono 8
workspace_buttons yes
colors {
background #000000
statusline #ffffff
separator #666666
focused_workspace #4c7899 #285577 #ffffff
active_workspace #333333 #5f676a #ffffff
inactive_workspace #333333 #222222 #888888
urgent_workspace #2f343a #900000 #ffffff
}
status_command i3status --config $path_i3status_config
}
# Start the wallpaper changer. # Start the wallpaper changer.
exec --no-startup-id $path_wallchanger $wallpaper_directory $wallpaper_interval > $wallpaper_logfile exec --no-startup-id $path_wallchanger $wallpaper_directory $wallpaper_interval > $wallpaper_logfile
# Set keyboard layout
exec --no-startup-id setxkbmap $keyboard_layout $keyboard_options
# Set key repeat delay
exec --no-startup-id xset r rate $mouse_repeat_delay $mouse_repeat_speed
# Start wicd in tray # Start wicd in tray
exec --no-startup-id wicd-gtk --tray exec --no-startup-id wicd-gtk --tray
# Start conky # Start conky
exec --no-startup-id conky #exec --no-startup-id conky
# Enabling a mode to shutdown, reboot, lock screen and so on # Enabling a mode to shutdown, reboot, lock screen and so on
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
@@ -278,10 +242,3 @@ mode "$mode_system" {
} }
bindsym $mod+Pause mode "$mode_system" bindsym $mod+Pause mode "$mode_system"
bindsym $mod+Shift+Pause exec --no-startup-id $path_i3exit lock bindsym $mod+Shift+Pause exec --no-startup-id $path_i3exit lock
bindsym XF86Sleep exec --no-startup-id $path_i3exit suspend
bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master %5+
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master %5-

3
i3/i3/config.d/default Normal file
View File

@@ -0,0 +1,3 @@
bar {
status_command i3status
}

38
i3/i3/config.d/netbook Normal file
View File

@@ -0,0 +1,38 @@
# bind some keys
bindsym XF86Sleep exec --no-startup-id $path_i3exit suspend
bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master %5+
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master %5-
# start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
# always show at the bottom of the screen
mode dock
position bottom
# show a tray area
tray_output primary
# show workspace buttons
workspace_buttons yes
id bar-1
font pango:DejaVu Sans Mono 8
colors {
background #000000
statusline #ffffff
separator #666666
focused_workspace #4c7899 #285577 #ffffff
active_workspace #333333 #5f676a #ffffff
inactive_workspace #333333 #222222 #888888
urgent_workspace #2f343a #900000 #ffffff
}
i3bar_command i3bar
status_command i3status --config $path_i3status_config
}

31
i3/i3/genconfig.bash Normal file
View File

@@ -0,0 +1,31 @@
#!/bin/bash
# main configuration file that is always used
MAIN_CONF="$HOME/.i3/config"
# temporary configuration file used for this session
SESSION_CONF="$HOME/.i3/session.config"
# directory that contains host specific configuration
CONF_DIR="$HOME/.i3/config.d"
# file that should be used when no host specific configuration present
DEFAULT_CONF="$CONF_DIR/default"
host_specific_conf="$CONF_DIR/$(hostname).config"
# if it's a symlink to $MAIN_CONF, cat will fail
[[ -f "$SESSION_CONF" ]] && rm "$SESSION_CONF"
if [[ ! -f "$host_specific_conf" ]] && [[ ! -f "$DEFAULT_CONF" ]]; then
# if there is no host-specific configuration and no default one, just use
# the main config
ln -sf "$MAIN_CONF" "$SESSION_CONF"
else
# either use the host specific config if present, or the default if not
if [[ -f "$host_specific_conf" ]]; then
conf_to_use="$host_specific_conf"
else
conf_to_use="$DEFAULT_CONF"
fi
cat "$MAIN_CONF" "$conf_to_use" > "$SESSION_CONF"
fi
echo "$SESSION_CONF"

View File

@@ -54,7 +54,7 @@ run_watch VPN {
} }
tztime local { tztime local {
format = "%Y-%m-%d %H:%M:%S" format = "%a %Y-%m-%d %H:%M:%S"
} }
load { load {

View File

@@ -6,12 +6,13 @@ config_dir="$HOME/dotfiles/"
mapping_file="$config_dir/MAPPING" mapping_file="$config_dir/MAPPING"
# backup directory, files that would otherwise be overwritten go there # backup directory, files that would otherwise be overwritten go there
backup_dir="$HOME/dotfiles.bak/" backup_dir="$HOME/.dotfiles.bak/"
# the following folders inside $config_dir will be inspected and the # the following folders inside $config_dir will be inspected and the
# contents symlinked: # contents symlinked:
symlink_folders="bash git i3 vim zsh conky terminator" symlink_folders='bash git i3 vim zsh conky terminator x'
MAPPING_SEPARATOR='::'
path_combine() path_combine()
{ {
@@ -24,7 +25,7 @@ DEFAULT_ROOT="$HOME"
# folder::root # folder::root
get_mapping() get_mapping()
{ {
entry="$(grep -E "^$1::.+$" "$mapping_file" | head -n1 | grep -Eo "::.+$" | cut -c 3-)" entry="$(grep -E "^$1$MAPPING_SEPARATOR.+$" "$mapping_file" | head -n1 | grep -Eo "$MAPPING_SEPARATOR.+$" | cut -c 3-)"
echo "$entry" echo "$entry"
} }

View File

@@ -1,13 +1,24 @@
[global_config] [global_config]
enabled_plugins = ,
[keybindings] [keybindings]
[profiles] [profiles]
[[default]] [[default]]
palette = "#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3"
font = Deja Vu Sans Mono 10
background_image = None
urgent_bell = True
use_system_font = False
foreground_color = "#839496"
show_titlebar = False show_titlebar = False
antialias = True
copy_on_selection = True
background_color = "#002b36"
[layouts] [layouts]
[[default]] [[default]]
[[[child1]]] [[[child1]]]
type = Terminal type = Terminal
parent = window0 parent = window0
profile = default
[[[window0]]] [[[window0]]]
type = Window type = Window
parent = "" parent = ""

209
vim/vimrc
View File

@@ -1,81 +1,158 @@
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 01 important
" Filename: .vimrc " " 02 moving around, searching and patterns
" Maintainer: Michael J. Smalley <michaeljsmalley@gmail.com> " " 03 tags
" URL: http://github.com/michaeljsmalley/dotfiles " " 04 displaying text
" " " 05 syntax, highlighting and spelling
" " " 06 multiple windows
" Sections: " " 07 multiple tab pages
" 01. General ................. General Vim behavior " " 08 terminal
" 02. Events .................. General autocmd events " " 09 using the mouse
" 03. Theme/Colors ............ Colors, fonts, etc. " " 10 printing
" 04. Vim UI .................. User interface behavior " " 11 messages and info
" 05. Text Formatting/Layout .. Text, tab, indentation related " " 12 selecting text
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 13 editing text
" 14 tabs and indenting
" 15 folding
" 16 diff mode
" 17 mapping
" 18 reading and writing files
" 19 the swap file
" 20 command line editing
" 21 executing external commands
" 22 running make and jumping to errors
" 23 language specific
" 24 multi-byte characters
" 25 various
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible
" 01. General "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " get rid of Vi compatibility mode. SET FIRST!
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " setup of vundle
" 02. Events " filetype off
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set rtp+=~/.vim/bundle/vundle/
filetype plugin indent on " filetype detection[ON] plugin[ON] indent[ON] call vundle#rc()
Bundle 'gmarik/vundle'
" In Makefiles DO NOT use spaces instead of tabs filetype plugin indent on
autocmd FileType make setlocal noexpandtab
" In Ruby files, use 2 spaces instead of 4 for tabs
autocmd FileType ruby setlocal sw=2 ts=2 sts=2
" Enable omnicompletion (to use, hold Ctrl+X then Ctrl+O while in Insert mode. " solarized color theme
set ofu=syntaxcomplete#Complete Bundle 'altercation/vim-colors-solarized'
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " setup for the solarized color theme
" 03. Theme/Colors " set background=dark
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:solarized_termcolors=16
set t_Co=256 " enable 256-color mode. let g:solarized_termtrans=1
syntax enable " enable syntax highlighting (previously syntax on). let g:solarized_contrase="normal"
"colorscheme molokai " set colorscheme let g:solarized_visibility="normal"
syntax enable
colorscheme solarized
" Prettify JSON files set mouse=a " enable mouse support
autocmd BufRead,BufNewFile *.json set filetype=json set mousehide " hide the mouse when typing
autocmd Syntax json sou ~/.vim/syntax/json.vim
" Prettify Vagrantfile set history=1000 " history length for commands, defaults to
autocmd BufRead,BufNewFile Vagrantfile set filetype=ruby " 20
" Highlight characters that go over 80 columns set nobackup " do not create a backup
highlight OverLength ctermbg=red ctermfg=white guibg=#592929 set nowritebackup
match OverLength /\%81v.\+/
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 04. Vim UI "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set number " show line numbers
set cul " highlight current line
set laststatus=2 " last window always has a statusline
set nohlsearch " Don't continue to highlight searched phrases.
set incsearch " But do highlight as you type your search.
set ignorecase " Make searches case-insensitive.
set ruler " Always show info along bottom.
set showmatch
set statusline=%<%f\%h%m%r%=%-20.(line=%l\ \ col=%c%V\ \ totlin=%L%)\ \ \%h%m%r%=%-40(bytval=0x%B,%n%Y%)\%P
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set showmode " show the current mode
" 05. Text Formatting/Layout " set cursorline " highlight the current line
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set number " enable linenumbers
set autoindent " auto-indent set numberwidth=2 " only use as many columns for the line
set tabstop=4 " tab spacing " numbers as necessary
set softtabstop=4 " unify set relativenumber " show file numbers relative to the current
set shiftwidth=4 " indent/outdent by 4 columns " line instead of absolute ones, but still
set shiftround " always indent/outdent to the nearest tabstop " the absolute linenumber on the current
set expandtab " use spaces instead of tabs " line due to 'number' being set
set smarttab " use tabs at the start of a line, spaces elsewhere set showmatch " show matching brackets/parentheses
set nowrap " don't wrap text set incsearch " show matches while typing in a search
set hlsearch " highlight matches in a search
match ErrorMsg '\s\+$' " mark trailing whitespace set ignorecase " ignore case when only searching for
" lowercase
set smartcase " letters, case sensitive otherwis
set foldenable " auto-fold code
set wrap " wrap text
set linebreak
set backspace=indent,eol,start " allowing backspacing over autoindent,
" line breaks and start of insert
set encoding=utf-8 " set the encoding
set showmode " show current mode in the status line
set swapfile " use a swapfile
set updatecount=200 " default, number of characters that have
" to be typed before the swapfile is
" written to disk
set updatetime=10000 " time in milliseconds after the swapfile
" is written to disk
set title " let vim set the title of the window
set titlestring="" " use default titlestring
set autoread " automatically reload a file when it was
" changed outside of vim
set gdefault " apply replace patterns to the whole line
" by default
set tabstop=4 " one tab equals 4 spaces
set softtabstop=4 " makes the spaces feel like real tabs
set shiftwidth=4 " one indent level equals 4 spaces
set expandtab " expand tabs to spaces
set autoindent " copy indent from current line when
" starting a new one
set smartindent " smart indenting for C-like languages
set smarttab " use shiftwidth when tabbing in front of
" a line instead of tabsstop/softtabstop
set undofile " use an undo file
set undodir=~/.vim/backups " store undo files in a fixed directory
" instead of the current directory
set undolevels=1000 " undo a maximum of 1000 changes
set undoreload=10000 " save the whole buffer for undo when
" reloading it
set foldmethod=indent " fold according to indet
set foldnestmax=2 " fold a maximum of 2 levels
set nofoldenable " unfold everything by default
set scrolloff=4 " show context at the screen edges
set showcmd " show (partial) command in the command line
set hidden " buffers can exist without a window
set ttyfast " enhance smoothness
set ruler " show position in status line
set wildmenu " show a menu when autocompleting
set wildmode=list:longest " automatically complete up to the level
" of ambiguity
set autochdir " automatically change to the directory that
" contains the file that is edited
let mapleader = ","
nnoremap / /\v
vnoremap / /\v
nnoremap <leader><space> :noh<cr>
nnoremap <tab> %
vnoremap <tab> %
nnoremap j gj
nnoremap k gk
" Removes trailing spaces
function! TrimWhiteSpace() function! TrimWhiteSpace()
%s/\s\+$//e %s/\s\+$//e
endfunction endfunction

36
x/xinitrc Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
[ -f /etc/xprofile ] && source /etc/xprofile
[ -f ~/.xprofile ] && source ~/.xprofile
# keyboard options
keyboard_layout=de
keyboard_options= nodeadkeys
keyboard_repeat_delay=150
keyboard_repeat_speed=30
# execute the host-specific .xinitrc-addition
hostfile="$HOME/.xinitrc.d/$(hostname).xinitrc"
[[ -f "$hostfile" ]] && bash "$hostfile" &
# set keyboard layout
setxkbmap $keyboard_layout $keyboard_options
# set key repeat delay
xset r rate $keyboard_repeat_delay $keyboard_repeat_speed
case $1 in
*)
SESSION_CONF=$( bash "$HOME/.i3/genconfig.bash")
exec i3 -c "$SESSION_CONF"
;;
esac

4
x/xinitrc.d/netbook.xinitrc Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
# enable vertical edge scrolling
synclient VertEdgeScroll=1