Tom Flucke 8 lat temu
commit
fafd78ab03
15 zmienionych plików z 1083 dodań i 0 usunięć
  1. 7 0
      .Xresources
  2. 89 0
      .bashrc
  3. 4 0
      .config/env/monitors.sh
  4. 50 0
      .config/env/psCodes.sh
  5. 21 0
      .config/env/silent.sh
  6. 16 0
      .config/env/verbose.sh
  7. 56 0
      .emacs.d/init.el
  8. 402 0
      .i3/config
  9. 1 0
      .i3/i3cat.0.conf
  10. 2 0
      .i3/i3cat.1.conf
  11. 1 0
      .i3/i3cat.conf
  12. 28 0
      .i3/mpdFunctions.sh
  13. 201 0
      .i3/status.0.conf
  14. 196 0
      .i3/status.1.conf
  15. 9 0
      .xinitrc

+ 7 - 0
.Xresources

@@ -0,0 +1,7 @@
+*mon1: DVI-D-0
+*mon2: VGA-0
+
+XTerm*metaSendsEscape: true
+XTerm*eightBitInput: false
+XTerm*Background: black
+XTerm*Foreground: green

+ 89 - 0
.bashrc

@@ -0,0 +1,89 @@
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+MUSIC_DIR="/media/music"
+MTG_DIR="~/.local/share/data/Cockatrice/Cockatrice/decks"
+SH_DIR="~/.config/env"
+
+export EDITOR="/usr/bin/emacs -nw"
+export BROWSER=/usr/bin/firefox
+export TERM=xterm-256color
+
+shopt -s checkwinsize
+shopt -s autocd
+shopt -s dirspell
+shopt -s xpg_echo
+
+# Set up history search
+bind '"\e[A": history-search-backward'
+bind '"\e[B": history-search-forward'
+export HISTCONTROL=ignoredups
+
+# Set up left/right word skipping
+bind '"\e[1;5D": backward-word'
+bind '"\e[1;5C": forward-word'
+
+source /usr/share/git/completion/git-completion.bash
+
+#for script in "$SH_DIR"/*.sh ; do # Does not work.  Don't know why.
+#for script in ~/.config/env/*.sh; do
+#    source "$script"
+#done
+
+getLyricalSongs()
+{
+  mpc list album | grep -v '\(Portal 2.*\)\|\(Avatar.*\)\|\(Frozen.*\)' | while read -r line; do
+    printf "$(mpc find album "$line" | grep -v 'Instrumental')\n"
+  done
+}
+
+# echo exec
+# Print command and execute ala make
+#if type -t ecex; then
+ecex()
+{
+    echo "$@"
+    $@
+    
+}
+
+#alias xterm='echo "xterm -rv" && xterm -rv'
+alias xterm='ecex xterm -rv'
+alias decks='ecex "$MTG_DIR" && ecex mv /tmp/*.dec "$MTG_DIR"'
+alias newMusic='ecex sudo chown media /tmp/*.mp3 && ecex sudo -u media mv -v /tmp/*.mp3 /media/music && ecex mpc update'
+alias playMusic='ecex mpc clear && ecex getLyricalSongs | ecex mpc add && ecex mpc shuffle && ecex mpc play'
+alias conServer='ecex ssh tflucke@63.246.2.164'
+alias packageSize="pacman -Qi | gawk '/^Name/ { x = $3 }; /^Installed Size/ { sub(/Installed Size  *:/, ""); print x":" $0 }' | sort -k2,3nr"
+
+#[ $exitCode -eq 0 ] && color=$FGRN || color=$FRED
+PS1="[\u@\h->$BLD\w$RS]
+$BLD$([ $? -ne 0 ] && echo '\[$FRED')(\$?)$RS \$ "
+
+# Auto mount
+# Mounts or unmounts intelligently.  Useful for keyboard bindings
+amount () {
+    if mount | grep -q "/dev/$1"; then
+	udevil umount -l "/dev/$1"
+    else
+	udevil mount "/dev/$1"
+    fi	
+} 
+
+mysqlpermissions()
+{
+  mysql -B -N $@ -e "SELECT DISTINCT CONCAT(
+    'SHOW GRANTS FOR \'', user, '\'@\'', host, '\';'
+    ) AS query FROM mysql.user" | \
+  mysql $@ | \
+  sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/## \1 ##/;/##/{x;p;x;}'
+}
+
+# Syncs music dir to dir.  Useful for syncing phone music.
+syncMusic()
+{
+    ecex rsync -ruh --progress "$MUSIC_DIR" "$1"
+}

+ 4 - 0
.config/env/monitors.sh

@@ -0,0 +1,4 @@
+#!/usr/bin/sh
+
+export mon1="DVI-D-0"
+export mon2="VGA-0"

+ 50 - 0
.config/env/psCodes.sh

@@ -0,0 +1,50 @@
+#!/usr/bin/sh
+
+#\h = hostname
+#\u = user
+#\n = new line
+#\r = carriage return
+#\w = path
+#\W = directory
+#\t = time+secconds (24h)
+#\T = time+seconds (12h)
+#\@ = time+AM/PM (12h)
+#\A = time (24h)
+#\d = Date
+#\D{format} = prints date in format
+#\$? = error of last command
+#\j = jobs on this terminal
+#\l = shell's device base name
+#\s = shell's name
+#\v = bash version
+#\V = bash version + release
+#\! = command history number
+#\# = command number
+#\$ = # for root, $ for everyone else
+#\number = ascii octal character
+#\\ = \
+#\[ = open non-printed characters
+#\] = close non-printed characters
+#\e = excape
+
+RS="\[\033[0m\]"	# reset
+BLD="\[\033[1m\]"	# bold
+UL="\[\033[4m\]"	# underline
+INV="\[\033[7m\]"	# inverse background and foreground
+FBLK="\[\033[30m\]"	# foreground black
+FRED="\[\033[31m\]"	# foreground red
+FGRN="\[\033[32m\]"	# foreground green
+FYEL="\[\033[33m\]"	# foreground yellow
+FBLE="\[\033[34m\]"	# foreground blue
+FMAG="\[\033[35m\]"	# foreground magenta
+FCYN="\[\033[36m\]"	# foreground cyan
+FWHT="\[\033[37m\]"	# foreground white
+BBLK="\[\033[40m\]"	# background black
+BRED="\[\033[41m\]"	# background red
+BGRN="\[\033[42m\]"	# background green
+BYEL="\[\033[43m\]"	# background yellow
+BBLE="\[\033[44m\]"	# background blue
+BMAG="\[\033[45m\]"	# background magenta
+BCYN="\[\033[46m\]"	# background cyan
+BWHT="\[\033[47m\]"	# background white
+

+ 21 - 0
.config/env/silent.sh

@@ -0,0 +1,21 @@
+#!/usr/bin/sh
+
+if type -t silent > /dev/null; then
+    return
+fi
+
+# Do not print stdout.  Removes ugly redirect syntax
+silent()
+{
+    $@ > /dev/null
+}
+
+if type -t noError > /dev/null; then
+    return
+fi
+
+# Do not print stderr.  Removes ugly redirect syntax
+noError()
+{
+    $@ 2> /dev/null
+}

+ 16 - 0
.config/env/verbose.sh

@@ -0,0 +1,16 @@
+#!/usr/bin/sh
+
+alias emacs='emacs -nw'
+alias ls='ls --color=auto'
+alias mv='mv -v'
+alias cp='cp -v'
+alias rm='rm -v'
+alias rmdir='rmdir -v'
+alias mkdir='mkdir -v'
+alias tar='tar -v'
+alias chown='chown -v'
+alias chgrp='chgrp -v'
+alias chmod='chmod -v'
+alias ln='ln -v'
+alias locate='locate -v'
+alias sudo='sudo '

+ 56 - 0
.emacs.d/init.el

@@ -0,0 +1,56 @@
+;; ----------- Default Variables -----------
+;; Global variables
+(setq
+ inhibit-startup-screen t
+ column-number-mode t
+ scroll-error-top-bottom t
+ show-paren-delay 0.25)
+
+;; Tab Config
+(setq tab-width 2)
+(setq-default indent-tabs-mode t)
+
+;; ----------- Package Managing -----------
+;; The package manager
+(require 'package)
+
+;; Add package sources
+(setq
+ package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
+                    ("org" . "https://orgmode.org/elpa/")
+                    ("melpa" . "https://melpa.org/packages/")
+                    ("melpa-stable" . "https://stable.melpa.org/packages/"))
+ package-archive-priorities '(("melpa-stable" . 1)))
+(package-initialize)
+(unless (package-installed-p 'use-package)
+  (package-refresh-contents)
+  (package-install 'use-package))
+(require 'use-package)
+
+;; ----------- Ensime -----------
+;; Java/Scala featues.  Includes:
+;; * Inferred types
+;; * Autocomplete
+;; * Syntax highlighting
+;; * Jump to source/docs
+;; * Refactoring
+;; * Error detection
+(use-package ensime
+  :ensure t
+  :pin melpa-stable)
+
+;; xTerm mouse support
+;; Disable because it became annoying, sounds cool though.
+;;
+;(require 'mouse)
+;(xterm-mouse-mode t)
+
+;; ---------- Color Themes ----------
+(use-package color-theme
+  :ensure t
+  :config
+  (color-theme-initialize)
+  (use-package base16-theme
+    :ensure t
+    :config (load-theme 'base16-tomorrow-night t))
+  )

+ 402 - 0
.i3/config

@@ -0,0 +1,402 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout somewhen, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+# Mod1 = Alt
+# Mod4 = Window
+
+# TODO:
+# Borders
+# Window-specific commands
+# Colors
+# Interprocess Communication
+# Tab-Through Workspaces
+# i3bar
+
+###BEGIN USER DEFINED
+
+##Begin Definitions
+# Monitor Names
+set_from_resource $Mon1		mon1 "HDMI-0"
+set_from_resource $Mon2		mon2 "VGA-0"
+
+# Main control Key
+set $mod			Mod4
+set $win			Mod4
+set $alt			Mod1
+
+#Set some windows to float by default
+for_window [class="Wine"] floating enable
+for_window [class="RPG"] floating enable
+for_window [class="Dragon"] floating enable
+for_window [window_role="Msgcompose"] floating enable
+for_window [title="Eclipse Marketplace "] floating enable
+for_window [title="Friends"] floating enable
+for_window [class=".*Preferences.*"] floating enable
+
+# Focus ignores mouse
+focus_follows_mouse		no
+
+# Only show pop-ups in fullscreen if it belongs to the window
+popup_during_fullscreen		smart
+
+# Wrap if focus shifts off-screen
+force_focus_wrapping		no
+
+# Disable mouse following screen focus
+mouse_warping			none
+
+#Font
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+##End Definitions
+
+##Begin Mount/Eject Mode Decerlation
+mode "mount"
+{
+	bindsym c		exec "udevil mount /dev/sdc1"; mode "default"
+	bindsym d		exec "udevil mount /dev/sdd1"; mode "default"
+	bindsym e		exec "udevil mount /dev/sde1"; mode "default"
+	bindsym f		exec "udevil mount /dev/sdf1"; mode "default"
+	bindsym g		exec "udevil mount /dev/sdg1"; mode "default"
+	bindsym p		exec "go-mtpfs /mnt/phone"; mode "default"
+	bindsym XF86Eject	exec "eject --traytoggle"; mode "default"
+
+	bindsym u		mode "eject"
+
+	bindsym space		mode "default"
+	bindsym Return		mode "default"
+	bindsym Escape		mode "default"
+}
+
+mode "eject"
+{
+	bindsym c		exec "udevil umount -l /dev/sdc1"; mode "default"
+	bindsym d		exec "udevil umount -l /dev/sdd1"; mode "default"
+	bindsym e		exec "udevil umount -l /dev/sde1"; mode "default"
+	bindsym f		exec "udevil umount -l /dev/sdf1"; mode "default"
+	bindsym g		exec "udevil umount -l /dev/sdg1"; mode "default"
+	bindsym p		exec "fusermount -u /mnt/phone"; mode "default"
+	bindsym XF86Eject	exec "eject --traytoggle"; mode "default"
+
+	bindsym m		mode "mount"
+
+	bindsym space		mode "default"
+	bindsym Return		mode "default"
+	bindsym Escape		mode "default"
+}
+##End Mount/Eject Mode
+
+##Begin MPC Mode Decleration
+mode "mpc"
+{
+	bindsym space		mode "default"
+	bindsym Return		mode "default"
+	bindsym Escape		mode "default"
+}
+##End Eject Mode
+
+##Begin Quick-Key
+bindsym $mod+Return			exec "xterm"
+bindsym $mod+d				exec --no-startup-id "j4-dmenu-desktop --dmenu='dmenu -i -b'"
+bindsym $mod+Shift+q			kill
+bindsym $mod+XF86Sleep			exec "i3lock && sudo systemctl suspend"; reload
+bindsym $mod+Shift+XF86Sleep		exec 'checkHibernate.sh'; reload
+# bindsym XF86Search			
+bindsym XF86Go				exec $BROWSER #internet button
+bindsym Shift+XF86Go			exec "chromium --incognito"
+# bindcode 221				#info button
+bindsym XF86Mail			exec thunderbird
+bindsym XF86Eject			mode "mount"
+bindsym Shift+XF86Eject			mode "eject"
+bindsym XF86AudioPrev			exec "mpc prev"
+bindsym XF86AudioPlay			exec "mpc toggle"
+bindsym XF86AudioNext			exec "mpc next"
+bindsym Shift+XF86AudioPrev		exec "mpc seek -00:01"
+bindsym Shift+XF86AudioNext		exec "mpc seek +00:01"
+bindsym XF86AudioStop			exec "mpc stop"
+bindsym XF86AudioLowerVolume		exec "amixer sset Master 5%-"
+bindsym XF86AudioRaiseVolume		exec "amixer sset Master 5%+"
+bindsym Shift+XF86AudioLowerVolume	exec "amixer sset Master 2%-"
+bindsym Shift+XF86AudioRaiseVolume	exec "amixer sset Master 2%+"
+bindsym $alt+Shift+XF86AudioLowerVolume	exec "mpc volume -2"
+bindsym $alt+Shift+XF86AudioRaiseVolume	exec "mpc volume +2"
+bindsym $alt+XF86AudioLowerVolume	exec "mpc volume -5"
+bindsym $alt+XF86AudioRaiseVolume	exec "mpc volume +5"
+bindsym XF86AudioMute			exec "amixer sset Master toggle"
+bindsym F12				exec "scrot -s ~/screenshot.png"
+bindsym Shift+F12			exec "scrot -s ~/x.png && xclip ~/x.png && rm ~/x.png"
+##End Quick-Key
+
+##Begin Select
+bindsym $mod+Left			focus left
+bindsym $mod+Down			focus down
+bindsym $mod+Up				focus up
+bindsym $mod+Right			focus right
+bindsym $mod+p				focus parent
+bindsym $mod+k				focus child
+bindsym $mod+space			focus mode_toggle
+##End Select
+
+##Begin Move
+bindsym $mod+Shift+Left			move left
+bindsym $mod+Shift+Down			move down
+bindsym $mod+Shift+Up			move up
+bindsym $mod+Shift+Right		move right
+bindsym $mod+Shift+space		floating toggle
+##End Move
+
+##Begin Resize-Keys
+bindsym $mod+Control+Left		resize grow   left  2px or 2 ppt
+bindsym $mod+Control+Up			resize grow   up    2px or 2 ppt
+bindsym $mod+Control+Right		resize grow   right 2px or 2 ppt
+bindsym $mod+Control+Down		resize grow   down  2px or 2 ppt
+
+bindsym $mod+Mod1+Left			resize shrink right 2px or 2 ppt
+bindsym $mod+Mod1+Up			resize shrink down  2px or 2 ppt
+bindsym $mod+Mod1+Right			resize shrink left  2px or 2 ppt
+bindsym $mod+Mod1+Down			resize shrink up    2px or 2 ppt
+##End Resize-Keys
+
+##Begin Switch to Workspace
+bindsym $mod+1				workspace 1
+bindsym $mod+2				workspace 2
+bindsym $mod+3				workspace 3
+bindsym $mod+4				workspace 4
+bindsym $mod+5				workspace 5
+bindsym $mod+6				workspace 6
+bindsym $mod+7				workspace 7
+bindsym $mod+8				workspace 8
+bindsym $mod+9				workspace 9
+bindsym $mod+0				workspace 10
+bindsym $mod+Control+1			workspace 11
+bindsym $mod+Control+2			workspace 12
+bindsym $mod+Control+3			workspace 13
+bindsym $mod+Control+4			workspace 14
+bindsym $mod+Control+5			workspace 15
+bindsym $mod+Control+6			workspace 16
+bindsym $mod+Control+7			workspace 17
+bindsym $mod+Control+8			workspace 18
+bindsym $mod+Control+9			workspace 19
+bindsym $mod+Control+0			workspace 20
+bindsym $mod+Mod1+1			workspace 21
+bindsym $mod+Mod1+2			workspace 22
+bindsym $mod+Mod1+3			workspace 23
+bindsym $mod+Mod1+4			workspace 24
+bindsym $mod+Mod1+5			workspace 25
+bindsym $mod+Mod1+6			workspace 26
+bindsym $mod+Mod1+7			workspace 27
+bindsym $mod+Mod1+8			workspace 28
+bindsym $mod+Mod1+9			workspace 29
+bindsym $mod+Mod1+0			workspace 30
+
+bindsym $mod+Mod2+KP_1			workspace 1
+bindsym $mod+Mod2+KP_2			workspace 2
+bindsym $mod+Mod2+KP_3			workspace 3
+bindsym $mod+Mod2+KP_4			workspace 4
+bindsym $mod+Mod2+KP_5			workspace 5
+bindsym $mod+Mod2+KP_6			workspace 6
+bindsym $mod+Mod2+KP_7			workspace 7
+bindsym $mod+Mod2+KP_8			workspace 8
+bindsym $mod+Mod2+KP_9			workspace 9
+bindsym $mod+Mod2+KP_0			workspace 10
+bindsym $mod+Control+Mod2+KP_1		workspace 11
+bindsym $mod+Control+Mod2+KP_2		workspace 12
+bindsym $mod+Control+Mod2+KP_3		workspace 13
+bindsym $mod+Control+Mod2+KP_4		workspace 14
+bindsym $mod+Control+Mod2+KP_5		workspace 15
+bindsym $mod+Control+Mod2+KP_6		workspace 16
+bindsym $mod+Control+Mod2+KP_7		workspace 17
+bindsym $mod+Control+Mod2+KP_8		workspace 18
+bindsym $mod+Control+Mod2+KP_9		workspace 19
+bindsym $mod+Control+Mod2+KP_0		workspace 20
+bindsym $mod+Mod1+Mod2+KP_1		workspace 21
+bindsym $mod+Mod1+Mod2+KP_2		workspace 22
+bindsym $mod+Mod1+Mod2+KP_3		workspace 23
+bindsym $mod+Mod1+Mod2+KP_4		workspace 24
+bindsym $mod+Mod1+Mod2+KP_5		workspace 25
+bindsym $mod+Mod1+Mod2+KP_6		workspace 26
+bindsym $mod+Mod1+Mod2+KP_7		workspace 27
+bindsym $mod+Mod1+Mod2+KP_8		workspace 28
+bindsym $mod+Mod1+Mod2+KP_9		workspace 29
+bindsym $mod+Mod1+Mod2+KP_0		workspace 30
+
+bindsym $mod+w			workspace Wine
+##End Switch to Workspace
+
+##Being Workspace Shift
+bindsym $mod+Shift+1			move container to workspace 1
+bindsym $mod+Shift+2			move container to workspace 2
+bindsym $mod+Shift+3			move container to workspace 3
+bindsym $mod+Shift+4			move container to workspace 4
+bindsym $mod+Shift+5			move container to workspace 5
+bindsym $mod+Shift+6			move container to workspace 6
+bindsym $mod+Shift+7			move container to workspace 7
+bindsym $mod+Shift+8			move container to workspace 8
+bindsym $mod+Shift+9			move container to workspace 9
+bindsym $mod+Shift+0			move container to workspace 10
+bindsym $mod+Shift+Control+1		move container to workspace 11
+bindsym $mod+Shift+Control+2		move container to workspace 12
+bindsym $mod+Shift+Control+3		move container to workspace 13
+bindsym $mod+Shift+Control+4		move container to workspace 14
+bindsym $mod+Shift+Control+5		move container to workspace 15
+bindsym $mod+Shift+Control+6		move container to workspace 16
+bindsym $mod+Shift+Control+7		move container to workspace 17
+bindsym $mod+Shift+Control+8		move container to workspace 18
+bindsym $mod+Shift+Control+9		move container to workspace 19
+bindsym $mod+Shift+Control+0		move container to workspace 20
+bindsym $mod+Shift+Mod1+1		move container to workspace 21
+bindsym $mod+Shift+Mod1+2		move container to workspace 22
+bindsym $mod+Shift+Mod1+3		move container to workspace 23
+bindsym $mod+Shift+Mod1+4		move container to workspace 24
+bindsym $mod+Shift+Mod1+5		move container to workspace 25
+bindsym $mod+Shift+Mod1+6		move container to workspace 26
+bindsym $mod+Shift+Mod1+7		move container to workspace 27
+bindsym $mod+Shift+Mod1+8		move container to workspace 28
+bindsym $mod+Shift+Mod1+9		move container to workspace 29
+bindsym $mod+Shift+Mod1+0		move container to workspace 30
+
+bindsym $mod+Shift+Mod2+KP_End			move container to workspace 1
+bindsym $mod+Shift+Mod2+KP_Down			move container to workspace 2
+bindsym $mod+Shift+Mod2+KP_Next			move container to workspace 3
+bindsym $mod+Shift+Mod2+KP_Left			move container to workspace 4
+bindsym $mod+Shift+Mod2+KP_Begin		move container to workspace 5
+bindsym $mod+Shift+Mod2+KP_Right		move container to workspace 6
+bindsym $mod+Shift+Mod2+KP_Home			move container to workspace 7
+bindsym $mod+Shift+Mod2+KP_Up			move container to workspace 8
+bindsym $mod+Shift+Mod2+KP_Prior		move container to workspace 9
+bindsym $mod+Shift+Mod2+KP_Insert		move container to workspace 10
+bindsym $mod+Shift+Control+Mod2+KP_End		move container to workspace 11
+bindsym $mod+Shift+Control+Mod2+KP_Down		move container to workspace 12
+bindsym $mod+Shift+Control+Mod2+KP_Next		move container to workspace 13
+bindsym $mod+Shift+Control+Mod2+KP_Left		move container to workspace 14
+bindsym $mod+Shift+Control+Mod2+KP_Begin	move container to workspace 15
+bindsym $mod+Shift+Control+Mod2+KP_Right	move container to workspace 16
+bindsym $mod+Shift+Control+Mod2+KP_Home		move container to workspace 17
+bindsym $mod+Shift+Control+Mod2+KP_Up		move container to workspace 18
+bindsym $mod+Shift+Control+Mod2+KP_Prior	move container to workspace 19
+bindsym $mod+Shift+Control+Mod2+KP_Insert	move container to workspace 20
+bindsym $mod+Shift+Mod1+Mod2+KP_End		move container to workspace 21
+bindsym $mod+Shift+Mod1+Mod2+KP_Down		move container to workspace 22
+bindsym $mod+Shift+Mod1+Mod2+KP_Next		move container to workspace 23
+bindsym $mod+Shift+Mod1+Mod2+KP_Left		move container to workspace 24
+bindsym $mod+Shift+Mod1+Mod2+KP_Begin		move container to workspace 25
+bindsym $mod+Shift+Mod1+Mod2+KP_Right		move container to workspace 26
+bindsym $mod+Shift+Mod1+Mod2+KP_Home		move container to workspace 27
+bindsym $mod+Shift+Mod1+Mod2+KP_Up		move container to workspace 28
+bindsym $mod+Shift+Mod1+Mod2+KP_Prior		move container to workspace 29
+bindsym $mod+Shift+Mod1+Mod2+KP_Insert		move container to workspace 30
+##End Workspace Shift
+
+##Begin Workspace-Monitor-Associations
+workspace 1			output $Mon1
+workspace 2			output $Mon2
+workspace 3			output $Mon1
+workspace 4			output $Mon2
+workspace 5			output $Mon1
+workspace 6			output $Mon2
+workspace 7			output $Mon1
+workspace 8			output $Mon2
+workspace 9			output $Mon1
+workspace 10			output $Mon2
+workspace 11			output $Mon1
+workspace 12			output $Mon2
+workspace 13			output $Mon1
+workspace 14			output $Mon2
+workspace 15			output $Mon1
+workspace 16			output $Mon2
+workspace 17			output $Mon1
+workspace 18			output $Mon2
+workspace 19			output $Mon1
+workspace 20			output $Mon2
+workspace 21			output $Mon1
+workspace 22			output $Mon2
+workspace 23			output $Mon1
+workspace 24			output $Mon2
+workspace 25			output $Mon1
+workspace 26			output $Mon2
+workspace 27			output $Mon1
+workspace 28			output $Mon2
+workspace 29			output $Mon1
+workspace 30			output $Mon2
+
+workspace Wine			output $Mon1
+##End Workspace-Monitor-Associations
+
+##Begin Program-Workspace-Associations
+#assign [class="^Wine$"] → Wine
+##End Program-Workspace-Associations
+
+##Begin Screen Management
+bindsym $mod+h			split h
+bindsym $mod+v			split v
+bindsym $mod+f			fullscreen
+##End Screen Management
+
+##Begin Layouts
+bindsym $mod+s			layout stacking
+bindsym $mod+t			layout tabbed
+bindsym $mod+u			layout default
+##End Layouts
+
+##Begin i3 Controls
+bindsym $mod+Shift+c		reload
+bindsym $mod+Shift+r		restart
+bindsym $mod+Shift+e		exit
+##End i3 Controls
+
+##Begin i3status
+bar {
+	output			$Mon1
+	position		top
+	mode			dock
+#	hidden_state		show
+#	modifier		Mod1
+	tray_output		primary
+#	font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+#	font pango:DejaVu Sans Mono 10
+	workspace_buttons	yes
+	colors {
+		separator	#BBFF00
+		statusline	#FFFFFF
+		background	#000033
+#					Border	Background	Text
+		focused_workspace	#4c7899	#285577		#ffffff
+		active_workspace	#333333	#5f676a		#ffffff
+		inactive_workspace	#333333	#222222		#888888
+		urgent_workspace	#2f343a	#900000		#ffffff
+	}
+	status_command		i3cat --cmd-file="/home/tom/.i3/i3cat.0.conf"
+}
+
+bar {
+	output			$Mon2
+	position		top
+	mode			dock
+#	hidden_state		show
+#	modifier		Mod1
+	tray_output		none
+#	font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+#	font pango:DejaVu Sans Mono 10
+	workspace_buttons	yes
+	colors {
+		separator	#BBFF00
+		statusline	#FFFFFF
+		background	#000044
+#					Border	Background	Text
+		focused_workspace	#4c7899	#285577		#ffffff
+		active_workspace	#333333	#5f676a		#ffffff
+		inactive_workspace	#333333	#222222		#888888
+		urgent_workspace	#2f343a	#900000		#ffffff
+	}
+	status_command		i3cat --cmd-file="/home/tom/.i3/i3cat.1.conf"
+}
+##End i3status
+
+###END USER DEFINED

+ 1 - 0
.i3/i3cat.0.conf

@@ -0,0 +1 @@
+i3status -c ~/.i3/status.0.conf

+ 2 - 0
.i3/i3cat.1.conf

@@ -0,0 +1,2 @@
+~/.i3/mpdFunctions.sh
+i3status -c ~/.i3/status.1.conf

+ 1 - 0
.i3/i3cat.conf

@@ -0,0 +1 @@
+i3status -c ~/.i3/status.1.conf

+ 28 - 0
.i3/mpdFunctions.sh

@@ -0,0 +1,28 @@
+#!/bin/bash
+display_song() {
+	status=
+	color=
+#	mpcOut = "$(mpc status | sed 1d | head -n1)"
+#	case $(echo $mpcOut | awk '{ print $1 }') in
+	case $(mpc status | sed 1d | head -n1 | awk '{ print $1 }') in
+		'[playing]')
+		status=♪
+		color="#FFFFFF"
+		;;
+	'[paused]')
+		status=X
+		color="#FF0000"
+		;;
+	esac
+#	time = $(mpc status | sed 1d | head -n1 | awk '{ print $3 }')
+	echo '[{"name": "mpd", "instance": "now playing", "full_text": "'${status}' '$1'", "color": "'${color}'"}]'
+}
+
+(while :; do
+    display_song "$(mpc current --wait)"
+done) &
+
+while :; do
+    display_song "$(mpc current)"
+    mpc idle player > /dev/null
+done

+ 201 - 0
.i3/status.0.conf

@@ -0,0 +1,201 @@
+# i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+        colors =			true
+	color_good =			"#00FF00"
+	color_degraded =		"#0000FF"
+	color_bad =			"#FF0000"
+	color_separator =		"#000000"
+        interval =			3
+	output_format =			i3bar
+}
+
+# order +=				"ipv6"
+order +=				"disk /"
+order +=				"disk /var"
+order +=				"disk /home"
+order +=				"disk /boot"
+order +=				"disk /media"
+# order +=				"run_watch DHCP"
+# order +=				"run_watch VPN"
+# order +=				"wireless wlan0"
+# order +=				"ethernet enp4s0"
+# order +=				"battery 0"
+order +=				"cpu_temperature 0"
+order +=				"cpu_usage"
+order +=				"load"
+# order +=				"tztime local"
+# order +=				"volume master"
+
+ipv6 {
+	# %ip =				the current ipv6 address
+	# format_up =			when an ip is avaliable
+	# format_down =			when an ip is not avaliable
+
+	format_up =			"ipV6: %ip"
+	format_down =			"ipV6: none"
+}
+
+disk "/" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			" /: %used/%total "
+}
+
+disk "/var" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			" /var: %used/%total "
+}
+
+disk "/home" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			" /home: %used/%total "
+}
+
+disk "/boot" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			" /boot: %used/%total "
+}
+
+disk "/media" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			" /media: %used/%total "
+}
+
+run_watch DHCP {
+	# %title =			Title of process to watch
+	# %status =			status of process being watched
+	# pidfile =			file containing the pid to watch
+
+	pidfile =			"/var/run/dhcpcd*.pid"
+}
+
+run_watch VPN {
+        pidfile = "/var/run/vpnc/pid"
+}
+
+wireless wlan0 {
+	# %ip =				the current ip address
+	# %quality =			the quality of the current network connection
+	# %essid =			the name of the current network connection
+	# %bitrate =			the bitrate of the current network connection
+	# format_up =			when connected to a wireless network
+	# format_down =			when not connected to a wireless network
+
+	format_up =			"W: %ip@%essid (%speed)"
+	format_down =			"W: down"
+}
+
+ethernet enp4s0 {
+	# %ip =				the current ip address
+	# %speed =			the speed of the current network connection
+	# %quality =			the quality of the current network connection
+	# format_up =			when connected to a wireless network
+	# format_down =			when not connected to a wireless network
+
+	format_up =			"E: %ip - %speed"
+	format_down =			"E: down"
+}
+
+battery 0 {
+	# last_full_capacity =		use the actual maximum capacity or the design capacity (true|false)
+	# integer_battery_capacity =	round charge to nearest integer (true|false)
+	# low_threshold =		The point at which the battery is considered "bad" (changes color)
+	# threshold_type =		The mesure of the threshold (time|percentage)
+	# %status =			What the battery is doing (charging|discharging|running)
+	# %remaining =			Remaining time
+	# %percentage =			Percent full
+	# %emptytime =			Estemated time untill empty
+	# %consumption =		Power consumption in Watts
+
+	last_full_capacity =		true
+	integer_battery_capacity =	false
+	threshold_type =		time
+	low_threshold =			7
+	format =			"B: %status %percentage %remaining"
+}
+
+cpu_temperature 0 {
+	# max_threshold =               The point at which the cpu temperature is considered "bad" (changes color)
+	# %degrees =			Tempeture in Celcius
+
+	max_threshold =			35
+	format =			"CPU T: %degrees°C"
+}
+
+cpu_usage {
+	# %usage =			Percent usage
+
+	format =			"CPU U: %usage"
+}
+
+load {
+	# max_threshold =               The point at which the queue is considered "bad" (changes color)
+	# %1min/%5min/%15min =		The number of tasks in the CPU queue for the last minute/5 minutes/15 minutes
+
+	format =			"CPU L: %1min"
+}
+
+tztime local {
+	# %Y =				Current year at the timezone
+	# %m =				Current month at the timezone
+	# %d =				Current day at the timezone
+	# %H =				Current hour at the timezone
+	# %M =				Current minute at the timezone
+	# %S =				Current second at the timezone
+	# %Z =				The selected timezone
+
+	format = "D: %Y/%m/%d - T: %H:%M @%Z"
+}
+
+volume master {
+	# %volume =			The selected timezone
+	# device =			Specify the device
+	# mixer =			Specify the mixer
+	# mixer_idx =			
+
+	device = "default"
+	mixer = "Master"
+	mixer_idx = 0
+	format = "♪: %volume"
+}

+ 196 - 0
.i3/status.1.conf

@@ -0,0 +1,196 @@
+# i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+        colors =			true
+	color_good =			"#00FF00"
+	color_degraded =		"#0000FF"
+	color_bad =			"#FF0000"
+	color_separator =		"#000000"
+        interval =			3
+	output_format =			i3bar
+}
+
+# order +=				"ipv6"
+# order +=				"disk /"
+# order +=				"disk /var"
+# order +=				"disk /home"
+# order +=				"disk /boot"
+order +=				"run_watch MPD"
+# order +=				"run_watch VPN"
+# order +=				"wireless wlan0"
+order +=				"run_watch DHCP"
+order +=				"ethernet enp4s0"
+# order +=				"battery 0"
+# order +=				"cpu_temperature 0"
+# order +=				"cpu_usage"
+# order +=				"load"
+order +=				"tztime local"
+order +=				"volume master"
+
+ipv6 {
+	# %ip =				the current ipv6 address
+	# format_up =			when an ip is avaliable
+	# format_down =			when an ip is not avaliable
+
+	format_up =			"ipV6: %ip"
+	format_down =			"ipV6: none"
+}
+
+disk "/" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			"/: %used/%total"
+}
+
+disk "/var" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			"/var: %used/%total"
+}
+
+disk "/home" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			"/home: %used/%total"
+}
+
+disk "/boot" {
+	# %free =			Unused disk space on partition
+	# %avail =			Avalible disk space on partition
+	# %used =			Used disk space on partition
+	# %total =			Disk space on partition
+	# %percentage_free =		Percentage of unused disk space on partition
+	# %percentage_avail =		Percentage of avalible disk space on partition
+	# %percentage_used =		Percentage of used disk space on partition
+
+	format =			"/boot: %used/%total"
+}
+
+run_watch DHCP {
+	# %title =			Title of process to watch
+	# %status =			status of process being watched
+	# pidfile =			file containing the pid to watch
+
+	pidfile =			"/var/run/dhcpcd*.pid"
+}
+
+run_watch MPD {
+	# %title =			Title of process to watch
+	# %status =			status of process being watched
+	# pidfile =			file containing the pid to watch
+
+	pidfile =			"/run/mpd/mpd.pid"
+}
+
+run_watch VPN {
+        pidfile = "/var/run/vpnc/pid"
+}
+
+wireless wlan0 {
+	# %ip =				the current ip address
+	# %quality =			the quality of the current network connection
+	# %essid =			the name of the current network connection
+	# %bitrate =			the bitrate of the current network connection
+	# format_up =			when connected to a wireless network
+	# format_down =			when not connected to a wireless network
+
+	format_up =			"W: %ip@%essid (%speed)"
+	format_down =			"W: down"
+}
+
+ethernet enp4s0 {
+	# %ip =				the current ip address
+	# %speed =			the speed of the current network connection
+	# format_up =			when connected to a wireless network
+	# format_down =			when not connected to a wireless network
+
+	format_up =			"E: %ip - %speed"
+	format_down =			"E: down"
+}
+
+battery 0 {
+	# last_full_capacity =		use the actual maximum capacity or the design capacity (true|false)
+	# integer_battery_capacity =	round charge to nearest integer (true|false)
+	# low_threshold =		The point at which the battery is considered "bad" (changes color)
+	# threshold_type =		The mesure of the threshold (time|percentage)
+	# %status =			What the battery is doing (charging|discharging|running)
+	# %remaining =			Remaining time
+	# %percentage =			Percent full
+	# %emptytime =			Estemated time untill empty
+	# %consumption =		Power consumption in Watts
+
+	last_full_capacity =		true
+	integer_battery_capacity =	false
+	threshold_type =		time
+	low_threshold =			7
+	format =			"B: %status %percentage %remaining"
+}
+
+cpu_temperature 0 {
+	# max_threshold =               The point at which the cpu temperature is considered "bad" (changes color)
+	# %degrees =			Tempeture in Celcius
+
+	max_threshold =			40
+	format =			"CPU T: %degrees°C"
+}
+
+cpu_usage {
+	# %usage =			Percent usage
+
+	format =			"CPU U: %usage"
+}
+
+load {
+	# max_threshold =               The point at which the queue is considered "bad" (changes color)
+	# %1min/%5min/%15min =		The number of tasks in the CPU queue for the last minute/5 minutes/15 minutes
+
+	format =			"CPU L: %1min"
+}
+
+tztime local {
+	# %Y =				Current year at the timezone
+	# %m =				Current month at the timezone
+	# %d =				Current day at the timezone
+	# %H =				Current hour at the timezone
+	# %M =				Current minute at the timezone
+	# %S =				Current second at the timezone
+	# %Z =				The selected timezone
+
+	format = "D: %Y/%m/%d - T: %H:%M @%Z"
+}
+
+volume master {
+	# %volume =			The selected timezone
+	# device =			Specify the device
+	# mixer =			Specify the mixer
+	# mixer_idx =			
+
+	device = "default"
+	mixer = "Master"
+	mixer_idx = 0
+	format = "♪: %volume"
+}

+ 9 - 0
.xinitrc

@@ -0,0 +1,9 @@
+[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
+
+source ~/.config/env/*.sh
+
+numlockx &
+
+xrandr --output $mon1 --auto --primary --pos 1280x290 --output $mon2 --auto --left-of $mon1
+#exec xautolock -time 15 -locker '/usr/local/bin/suspend' &
+exec /usr/bin/i3