Browse Source

A variety of accumulated changes/fixes

Notable changes include:
  * .Xdefaults:
    - added comments
    - switched from url-select to url-picker (for urxvt)
  * .bashrc: added some alias' and changed PATH
  * .bin/vol.sh: *depreciated*
  * .bin/xmonadClose.sh: added experimental timed-action support
  * .config/dunst/dunstrc:
    - changed transparency to 15%
    - issue with getting "follow = v" to work; where v = mouse or keyboard
  * .config/systemd/user/emacs.service:
     - added a Environment property because it is required with a recent(ish?) update of systemd
  * .config/systemd/user/xbindkeys.service:
    - added Environment property
    - made ExecStart more specific
  * .conkerorrc:
    - added support for magnet urls
    - added firebug-lite support
  * .emacs:
    - disabled tabs
    - enabled column-number-mode
  * .ghci: added ghci config file
  * .gnus: Many changes to make gnus more usable as a email client (multiple
email support)
  * .mpdconf: added password for admin and control access
  * .ncmpcpp/config: use new mpd password
  * .screenrc: use weechat in place of irssi
  * .xbindkeysrc:
    - use new mpd password
    - pulseaudio_ctl merged with pulseaudio-ctl in AUR. Now using the new version *BROKEN*
  * .xinitrc: running "systemd --user" is depreciated (automatically run by logind)
  * .xmobarrc: use DynNetwork in place of Network
  * .xmonad/xmonad.hs: code clean-up
  * .zshrc:
    - added new function 'disable_unit_run' which can be used to run a program temporarily
      disabling a systemd user unit file
    - added alias'
    - changed PATH
master
23 changed files with 540 additions and 270 deletions
  1. +15
    -7
      .Xdefaults
  2. +3
    -3
      .bashrc
  3. +6
    -3
      .bin/vol.sh
  4. +18
    -7
      .bin/xmonadClose.sh
  5. +2
    -3
      .config/dunst/dunstrc
  6. +12
    -3
      .config/mc/hotlist
  7. +6
    -2
      .config/mc/ini
  8. +1
    -0
      .config/systemd/user/emacs.service
  9. +2
    -1
      .config/systemd/user/xbindkeys.service
  10. +21
    -1
      .conkerorrc
  11. +273
    -103
      .emacs
  12. +5
    -0
      .emacs.d/templates/php-template.php
  13. +4
    -4
      .eshell/alias
  14. +10
    -0
      .ghci
  15. +28
    -3
      .gnus
  16. +37
    -33
      .mpdconf
  17. +6
    -5
      .ncmpcpp/config
  18. +4
    -3
      .screenrc
  19. +18
    -12
      .xbindkeysrc
  20. +1
    -1
      .xinitrc
  21. +3
    -2
      .xmobarrc
  22. +50
    -65
      .xmonad/xmonad.hs
  23. +15
    -9
      .zshrc

+ 15
- 7
.Xdefaults View File

@@ -1,24 +1,32 @@
! General URxvt visual options
URxvt.buffered: true
URxvt.foreground: white
URxvt.cursorColor: green
URxvt.underlineColor: yellow
URxvt.font: xft:Bitstream Vera Sans Mono:pixelsize=12:antialias=false
URxvt.boldFont: xft:Bitstream Vera Sans Mono:bold:pixelsize=13:antialias=false
URxvt.matcher.button: 1
URxvt.scrollstyle: plain
URxvt.depth: 32
URxvt.background: rgba:0000/0000/0000/cccc
urxvt.urgentOnBell: true
URxvt.underlineURLs: true

URxvt.perl-ext-common: default,clipboard,tabbedex,url-select,keyboard-select,matcher
! Perl-exts to use
URxvt.perl-ext-common: default,clipboard,tabbedex,url-picker,keyboard-select,matcher

URxvt.keysym.M-u: perl:url-select:select_next
! Setup matcher perl-ext
URxvt.keysym.M-u: perl:url-picker
URxvt.urlLauncher: /usr/bin/conkeror
URxvt.underlineURLs: true
URxvt.matcher.button: 1

URxvt.keysym.M-Escape: perl:keyboard-select:activate
URxvt.keysym.M-s: perl:keyboard-select:search

URxvt.depth: 32
URxvt.background: rgba:0000/0000/0000/cccc
! Setup tabbedex perl-ext
URxvt.tabbed.tabbar-bg: -1
urxvt.urgentOnBell: true

! Force vncviewer to show a password dialog
vncviewer.passwordDialog: true

! Set default emacs font
Emacs.font: Terminus-12

+ 3
- 3
.bashrc View File

@@ -8,12 +8,12 @@ alias grep='grep --color=auto'
alias fgrep='fgrep --color-auto'
alias egrep='egrep --color-auto'
alias ncmpc='ncmpc -c'
alias pacman='pacman-color'
alias spacman='sudo pacman-color'
alias spacman='sudo pacman'

# Alias' to make some commands a little less terse
alias skreen='screen -c /dev/null'
alias tranr='transmission-remote'
alias ctl='systemctl'
alias ctlu='systemctl --user'
alias sctl='sudo systemctl'
alias qemu='qemu-system-x86_64 -enable-kvm'
@@ -47,7 +47,7 @@ stty stop undef
# * mathematica / tools
# * nxclient / associated tools
# * maven tools
export PATH=${PATH}:/usr/local/bin:/opt/maven/bin:/opt/NX/bin:/home/collin/.cabal/bin:/home/collin/.bin
export PATH=${PATH}:/opt/maven/bin:/opt/NX/bin:/home/collin/.cabal/bin:/home/collin/.gem/ruby/2.0.0/bin:/home/collin/.bin

# start keychain
eval `keychain --eval --timeout 10 --quiet --agents ssh id_rsa`


+ 6
- 3
.bin/vol.sh View File

@@ -21,9 +21,12 @@

#TODO: fix this horrible code..the obvious issues being multiple calls to amixer..have the needed data stored in VOL_DATA and then further parse the needed data from there

#VOL_DATA="$(amixer get Master | sed -n '5p')"
VOLUME="$(amixer get Master | sed -n '5p' | cut -f6 -d' ' | sed 's/^.\(.*\).$/\1/')"
VOL_STATUS="$(amixer get Master | sed -n '5p' | cut -f8 -d' ' | sed 's/^.\(.*\).$/\1/')"
# VOL_DATA="$(amixer get Master | sed -n '6p')"
# VOLUME="$(echo $VOL_DATA | cut -f7 -d' ' | sed 's/^.\(.*\).$/\1/')" # assumes left and right are tied together
# VOL_STATUS="$(echo $VOL_DATA | cut -f8 -d' ' | sed 's/^.\(.*\).$/\1/')"

VOLUME="$(amixer get Master | sed -n '6p' | cut -f7 -d' ' | sed 's/^.\(.*\).$/\1/')"
VOL_STATUS="$(amixer get Master | sed -n '6p' | cut -f8 -d' ' | sed 's/^.\(.*\).$/\1/')"

if [ "$VOL_STATUS" == "off" ]; then
echo "Vol: Mute"


+ 18
- 7
.bin/xmonadClose.sh View File

@@ -24,7 +24,7 @@
# * Needs to check whether a reboot/shutdown is allowed (user must be in the group
# 'power' and must be the only user logged in or they will be prompted for sudo's
# password to override)
# * Add support for the user to specify a timer
# * Add support for the user to specify a timer *needs some work yet*
# - Needs to provide a way to cancel the time
# - Would be nice if there was some notification when there's n min left in the timer
# * re-write in haskell direct into ~/.xmonad/xmonad.hs using the dmenu extension(?)
@@ -33,9 +33,8 @@
# so that the second argument could be used as a 'logout command' and thus
# this script could be used with any wm

actionNames=(cancel logout suspend hibernate hybrid-sleep shutdown restart)
actionExecs=(""
"xdotool key super+control+shift+End"
actionNames=(logout suspend hibernate hybrid-sleep shutdown restart)
actionExecs=("xdotool key super+control+shift+End"
"xscreensaver-command -lock && systemctl suspend"
"xscreensaver-command -lock && systemctl hibernate"
"xscreensaver-command -lock && systemctl hybrid-sleep"
@@ -43,11 +42,20 @@ actionExecs=(""
"reboot")

# Ask the user whether they want to logout, cancel, suspend, hibernate, hybrid-sleep, shutdown
ask=`echo ${actionNames[*]} | tr ' ' '\n' | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000'`
ask=`echo "cancel ${actionNames[*]} timed-action" | tr ' ' '\n' | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000'`

case "$ask" in
logout|suspend|hibernate|hybrid-sleep|shutdown)
if [[ `echo "" | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000' -p "Are you sure you want to $ask? [yes/no] "` == 'yes' ]]; then
logout|suspend|hibernate|hybrid-sleep|shutdown|restart|timed-action)
if [[ "$ask" == "timed-action" ]]; then
time=`echo "1m 3m 5m 10m 15m 20m 30m 45m 1h 1.5h 2h 3h" | tr ' ' '\n' | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000' -p "How long?"`
# TODO: validate input to ensure form: <digit>+(s|m|h|d)?
for ((i=0; i < ${#actionNames[*]}; i++)); do
actionExecs[$i]="sleep $time && notify-send 'WARNING! Computer set to ${actionNames[$i]} in 15 seconds!' -u critical && sleep 15s && ${actionExecs[$i]}"
done
ask=`echo "cancel ${actionNames[*]}" | tr ' ' '\n' | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000'`
fi
if [[ "$ask" != "cancel" && `echo "" | dmenu -b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000' -p "Are you sure you want to $ask? [yes/no] "` == 'yes' ]]; then
for ((i=0; i < ${#actionNames[*]}; i++)); do
if [[ "$ask" == "${actionNames[$i]}" ]]; then
sh -c "${actionExecs[$i]}"
@@ -60,3 +68,6 @@ case "$ask" in
# Do nothing; the user entered cancel or a invalid input
;;
esac

# Exit successfully
exit 0

+ 2
- 3
.config/dunst/dunstrc View File

@@ -36,7 +36,6 @@
# ignore newlines '\n' in notifications
ignore_newline = no


# the geometry of the window
# geometry [{width}]x{height}][+/-{x}+/-{y}]
# The geometry of the message window.
@@ -52,7 +51,7 @@

# The transparency of the window. range: [0; 100]
# This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
transparency = 35
transparency = 15

# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
@@ -72,7 +71,7 @@
#
# If this option is set to mouse or keyboard, the monitor option will be
# ignored.
follow = keyboard
follow = none

# should a notification popped up from history be sticky or
# timeout as if it would normally do.


+ 12
- 3
.config/mc/hotlist View File

@@ -1,5 +1,14 @@
ENTRY "/home/collin" URL "/home/collin"
ENTRY "~/" URL "/home/collin"
ENTRY "/media" URL "/media"
ENTRY "/media/dm" URL "/media/dm"
GROUP "Local Network"
ENTRY "sh:alpha/~" URL "/home/collin/#sh:alpha/~"
ENTRY "/media/dm/Downloads" URL "/media/dm/Downloads"
ENTRY "/home/collin/.code" URL "/home/collin/.code"
ENTRY "/home/collin/.scratch" URL "/home/collin/.scratch"
GROUP "Network"
ENTRY "/sh://omicron/home/collin" URL "/sh://omicron/home/collin"
ENTRY "/sftp://rekah742@ftp.rekahsoft.ca:22/home/rekah742" URL "/sftp://rekah742@ftp.rekahsoft.ca:22/home/rekah742"
GROUP "Local Network"
ENTRY "sh:alpha/~" URL "/home/collin/#sh:alpha/~"
ENTRY "/ftp://rekah742@ftp.rekahsoft.ca/" URL "/ftp://rekah742@ftp.rekahsoft.ca/"
ENDGROUP
ENDGROUP

+ 6
- 2
.config/mc/ini View File

@@ -99,6 +99,10 @@ preallocate_space=0
editor_cursor_after_inserted_block=0
editor_group_undo=0

editor_ask_filename_before_edit=0

editor_filesize_threshold=64M

[Layout]
message_visible=1
keybar_visible=1
@@ -111,9 +115,9 @@ free_space=1

horizontal_split=0
vertical_equal=1
left_panel_size=122
left_panel_size=81
horizontal_equal=1
top_panel_size=113
top_panel_size=20

[Misc]
timeformat_recent=%b %e %H:%M


+ 1
- 0
.config/systemd/user/emacs.service View File

@@ -5,6 +5,7 @@ Description = Emacs: the extensible, self-documenting text editor
Type = forking
ExecStart = /usr/bin/emacs --daemon
ExecStop = /usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook 'nil) (kill-emacs))"
Environment = PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/smlnj/bin:/opt/maven/bin:/opt/NX/bin:/home/collin/.cabal/bin:/home/collin/.bin
Restart = always

[Install]


+ 2
- 1
.config/systemd/user/xbindkeys.service View File

@@ -2,7 +2,8 @@
Description = A grabbing keys program for X

[Service]
ExecStart = /usr/bin/xbindkeys -n
ExecStart = /usr/bin/xbindkeys -n -f %h/.xbindkeysrc
Environment=DISPLAY=:0
Restart = always

[Install]


+ 21
- 1
.conkerorrc View File

@@ -47,6 +47,8 @@ external_content_handlers.set("application/pdf", "zathura");
external_content_handlers.set("video/*", "urxvtc -e mplayer");
external_content_handlers.set("application/x-bittorrent", "transmission-remote -a");

set_protocol_handler("magnet", find_file_in_path("transmission-remote -a"));

// use emacsclient as external editor.
editor_shell_command = "emacsclient";

@@ -158,6 +160,11 @@ define_key(content_buffer_normal_keymap, "k", "cmd_scrollLineUp");
define_key(content_buffer_normal_keymap, "J", "follow-new-buffer-background");
define_key(default_global_keymap, "C-x C-b", "switch-to-buffer");

// TODO: fix a bug in conkeror-git 120527.1.100.g7994dfa-1 where M-< is bound to scroll-top-left which is either
// broken or is being depreciated? M-> uses cmd_scrollBottom and internally scroll-top-left uses cmd_scrollTop (then scrolls left).
// Until this issue is fixed just use cmd_scrollTop for M-<
define_key(content_buffer_normal_keymap, "M-<", "cmd_scrollTop");

// Some code thanks to retroj on #conkeror@irc.freenode.net
define_browser_object_class(
"history-url", null,
@@ -188,5 +195,18 @@ interactive("history-clear",
"Clear the history.",
history_clear);

define_variable("firebug_url",
"http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js");

function firebug (I) {
var doc = I.buffer.document;
var script = doc.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', firebug_url);
script.setAttribute('onload', 'firebug.init();');
doc.body.appendChild(script);
}
interactive("firebug", "open firebug lite", firebug);

// Disable whitelist (Causes extensions from unknown/unsigned sites to silently fail if not enabled!)
session_pref("xpinstall.whitelist.required", false);
//session_pref("xpinstall.whitelist.required", false);

+ 273
- 103
.emacs View File

@@ -12,6 +12,7 @@
;; the package

;; ELPA packages that do not require modification of this file other then Customize
;; * psgml
;; * caml (required by tuareg)
;; * tuareg
;; * project-mode
@@ -51,6 +52,12 @@
;; stop renaming of saved files to filename~ which ends up breaking hardlinks
(setq backup-by-copying-when-linked t)

;; Turn off indentation (use spaces instead)
(setq-default indent-tabs-mode nil)

;; Show column number in status bar
(column-number-mode)

;; fixes color output issues; see: http://wiki.archlinux.org/index.php/Emacs#Colored_output_issues
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

@@ -58,10 +65,14 @@
;; Note: regexp's used to match buffer filenames are intentionally left
;; unbounded (without '$') to catch cases where the filename may
;; take the format: filename~
(add-to-list 'auto-mode-alist '("\\.conkerorrc" . javascript-mode))
(add-to-list 'auto-mode-alist '("\\.conkerorrc" . js-mode))
(add-to-list 'auto-mode-alist '("\\.xmobarrc" . haskell-mode))
(add-to-list 'auto-mode-alist '("\\.screenrc" . conf-mode))
(add-to-list 'auto-mode-alist '("\\.stumpwmrc" . lisp-mode))
(add-to-list 'auto-mode-alist '("\w*\\.service" . conf-mode))
(add-to-list 'auto-mode-alist '("\w*\\.socket" . conf-mode))
(add-to-list 'auto-mode-alist '("\\.mpdconf" . conf-mode))
(add-to-list 'auto-mode-alist '("dunstrc" . conf-mode))

;; bind M-g to M-x goto-line
(global-set-key "\M-g" 'goto-line)
@@ -71,6 +82,10 @@
(interactive)
(other-window -1)))

;; Setup browse-key-ring
(require 'browse-kill-ring) ;; ELPA
(global-set-key "\C-cy" 'browse-kill-ring)

;; adds the given function mode to each element of the given-hooks
(defun activate-mode-with-hooks (mode given-hooks)
(while given-hooks
@@ -92,7 +107,7 @@
'face 'linum)))

;; code-modes is a list of mode hooks (for programming langs only)
(defvar code-modes '(sml-mode-hook scheme-mode-hook emacs-lisp-mode-hook c-mode-hook c++-mode-hook python-mode-hook lua-mode-hook python-mode-hook haskell-mode-hook php-mode-hook perl-mode-hook lisp-mode-hook clojure-mode-hook ruby-mode-hook erlang-mode-hook sh-mode-hook))
(defvar code-modes '(sml-mode-hook scheme-mode-hook emacs-lisp-mode-hook c-mode-hook c++-mode-hook python-mode-hook lua-mode-hook python-mode-hook haskell-mode-hook php-mode-hook perl-mode-hook lisp-mode-hook clojure-mode-hook ruby-mode-hook erlang-mode-hook sh-mode-hook java-mode-hook scala-mode-hook js-mode-hook))

;; activate linum-mode in all buffers used for programming
(activate-mode-with-hooks (lambda () (linum-mode 1)) code-modes)
@@ -127,6 +142,9 @@
;; Set default tramp method to ssh (for security purposes)
(setq tramp-default-method "ssh")

;; Set the prompt pattern tramp searches for in order to send commands to the remote shell
(setq tramp-shell-prompt-pattern "^[^$>\n]*[#$%>] *\\(\[[0-9;]*[a-zA-Z] *\\)*")

;; Setup ibuffer (interactive buffer)
(global-set-key "\C-x\C-b" 'ibuffer)
(autoload 'ibuffer "ibuffer" "List buffers." t)
@@ -137,77 +155,100 @@
(add-to-list 'ibuffer-never-show-predicates "^\\*Completions\\*$")
(add-to-list 'ibuffer-never-show-predicates "^\\*tramp/.*\\*$")

;; Enable ibuffer-vc extension
;; TODO: enable along side my pre existing filter groups using (ibuffer-vc-generate-filter-groups-by-vc-root).
;; This cannot be done in the ibuffer-saved-filters because ibuffer-vc-generate... returns a list of cons
;; cells but we need this to be dynamic (use a hook like ibuffer-load-hook)
(require 'ibuffer-vc)

;; Filter ibuffers (similar to gnus)
(setq ibuffer-saved-filter-groups
(quote (("default"
("dired" (mode . dired-mode))
("config" (or
(name . "^\\.xinitrc$")
(name . "^\\.bashrc$")
(name . "^\\.bash_profile$")
(name . "^\\.zshrc$")
(name . "^xmonad\\.hs$")
(name . "^\\.emacs$")
(name . "^\\.gnus$")
(name . "^\\.xmobarrc")
(name . "^\\.Xdefaults$")
(name . "^\\.screenrc$")
(name . "^\\.xbindkeysrc$")
(name . "^\\.racketrc$")
(name . "^\\.ghci")))
("code" (or
(mode . c-mode)
(mode . c++-mode)
(mode . perl-mode)
(mode . lua-mode)
(mode . clojure-mode)
(mode . java-mode)
(mode . python-mode)
(mode . ruby-mode)
(mode . emacs-lisp-mode)
(mode . lisp-mode)
(mode . sh-mode)
(mode . scheme-mode)
(mode . haskell-mode)
(mode . php-mode)
(mode . xml-mode)))
("REPL" (or
(mode . geiser-mode)
(mode . slime-repl-mode)
(mode . inferior-python-mode)
(mode . ipython-mode)
(mode . inferior-haskell-mode)
(mode . inferior-lisp-mode)
(mode . eshell-mode)
(mode . inferior-scheme-mode)
(mode . inferior-tcl)
(mode . erlang-shell-mode)
(name . "^\\*inferior-lisp\\*$")
(name . "^\\* Racket REPL \\*$")))
("git" (or
(name . "^\\*magit: ") ;; this regxp could be better
(mode . magit-mode)
(mode . magit-log-mode)))
("planner" (or
(name . "^\\*Calendar\\*$")
(name . "^diary$")
(mode . muse-mode)))
("emacs" (or
(name . "^\\*scratch\\*$")
(name . "^\\*Messages\\*$")))
("org" (or
(mode . org-mode)
(name . "^\\.org$")
(name . "^\\.org.gpg$")))
("gnus" (or
(mode . message-mode)
(mode . bbdb-mode)
(mode . mail-mode)
(mode . gnus-group-mode)
(mode . gnus-summary-mode)
(mode . gnus-article-mode)
(name . "^\\.bbdb$")
(name . "^\\.newsrc-dribble")))))))
'(("default"
("dired" (mode . dired-mode))
("config" (or
(name . "^\\.xinitrc")
(name . "^\\.bashrc")
(name . "^\\.bash_profile")
(name . "^\\.zshrc")
(name . "^xmonad\\.hs")
(name . "^\\.emacs")
(name . "^\\.gnus")
(name . "^\\.xmobarrc")
(name . "^\\.Xdefaults")
(name . "^\\.screenrc")
(name . "^\\.xbindkeysrc")
(name . "^\\.racketrc")
(name . "^\\.ghci")
(name . "\w*\\.service")
(name . "\w*\\.socket")
(name . "^dunstrc")
(name . "^\\.mpdconf")
(name . "^\\.conkerorrc")))
("code" (or
(mode . c-mode)
(mode . c++-mode)
(mode . perl-mode)
(mode . lua-mode)
(mode . clojure-mode)
(mode . java-mode)
(mode . python-mode)
(mode . ruby-mode)
(mode . emacs-lisp-mode)
(mode . lisp-mode)
(mode . sh-mode)
(mode . scheme-mode)
(mode . haskell-mode)
(mode . scala-mode)
(mode . php-mode)
(mode . xml-mode)
(mode . html-mode)
(mode . js-mode)))
("REPL" (or
(mode . geiser-mode)
(mode . slime-repl-mode)
(mode . inferior-python-mode)
(mode . ipython-mode)
(mode . inferior-haskell-mode)
(mode . inferior-lisp-mode)
(mode . eshell-mode)
(mode . inferior-scheme-mode)
(mode . inferior-tcl)
(mode . erlang-shell-mode)
(name . "^\\*inferior-lisp\\*$")
(name . "^\\* Racket REPL \\*$")))
("git" (or
(name . "^\\*magit: ") ;; this regxp could be better
(mode . magit-mode)
(mode . magit-diff-mode)
(mode . magit-log-mode)
(mode . magit-commit-mode)
(mode . magit-log-mode)))
("planner" (or
(name . "^\\*Calendar\\*$")
(name . "^diary$")
(mode . muse-mode)))
("emacs" (or
(name . "^\\*scratch\\*$")
(name . "^\\*Messages\\*$")
(name . "^\\*Backtrace\\*$")
(mode . package-menu-mode)
(mode . compilation-mode)))
("weechat" (or
(name . "^\\*weechat.*\\*$")
(mode . weechat-mode)))
("org" (or
(mode . org-mode)
(name . "^\\.org$")
(name . "^\\.org.gpg$")))
("gnus" (or
(mode . message-mode)
(mode . bbdb-mode)
(mode . mail-mode)
(mode . gnus-group-mode)
(mode . gnus-summary-mode)
(mode . gnus-article-mode)
(name . "^\\.bbdb$")
(name . "^\\.newsrc-dribble"))))))

(add-hook 'ibuffer-mode-hook
(lambda ()
@@ -220,6 +261,11 @@
(require 'google-contacts) ;; AUR: emacs-google-contacts
(require 'google-contacts-gnus) ;; AUR: emacs-google-contacts

;; Setup nav
(require 'nav) ;; ELPA
(nav-disable-overeager-window-splitting)
(global-set-key "\C-cn" 'nav-toggle)

;; setup html renderer w3m and external browser conkeror
(require 'w3m-load) ;; AUR: emacs-w3m-cvs
(setq browse-url-browser-function 'w3m-browse-url
@@ -230,8 +276,14 @@
;; setup magit for git (being used though elpa [auto-loaded])
;;(require 'magit) ;; ELPA
(global-set-key "\C-xS" 'magit-status)
(setq magit-commit-signoff t)

;;setup vc-darcs ;; ELPA
(add-to-list 'vc-handled-backends 'DARCS)
(autoload 'vc-darcs-find-file-hook "vc-darcs")
(add-hook 'find-file-hooks 'vc-darcs-find-file-hook)

;; Setup PKGBUILD mode
;; Setup PKGBUILD mode ;; Community (archlinux)
(autoload 'pkgbuild-mode "pkgbuild-mode.el" "PKGBUILD mode." t)
(setq auto-mode-alist (append '(("/PKGBUILD$" . pkgbuild-mode)) auto-mode-alist))

@@ -239,6 +291,22 @@
(autoload 'php-mode "php-mode.el" "Php mode." t) ;; ELPA
(setq auto-mode-alist (append '(("/*.\.php[345]?$" . php-mode)) auto-mode-alist))

;; Setup zencoding-mode
(require 'emmet-mode)

;; Disable C-j keybinding set by zencoding-mode and replace it with 'C-c j'
(define-key emmet-mode-keymap "\C-j" nil)
(define-key emmet-mode-keymap "\C-cj" 'emmet-expand-line)

;; Add appropriate hooks to sgml-mode
(add-hook 'sgml-mode-hook 'emmet-mode) ;; Auto-start on any markup modes
(add-hook 'css-mode-hook 'emmet-mode) ;; enable Emmet's css abbreviation.
(add-hook 'emmet-mode-hook (lambda () (setq emmet-indentation 2))) ;; indent 2 spaces.

;; Setup mmm-mode for multiple mode regions in the same buffer
;;(require 'mmm-mode)
;;(setq mmm-global-mode 'maybe)

;; Set default lisp program
(setq inferior-lisp-program "/usr/bin/sbcl")

@@ -276,21 +344,24 @@
(define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp)
(define-key clojure-mode-map "\C-x\C-e" 'lisp-eval-last-sexp)))

(eval-after-load "slime"
`(progn
(require 'assoc) ;; Built-in
(setq swank-clojure-classpath
(list "/usr/share/clojure/clojure.jar"
"/usr/share/clojure/clojure-contrib.jar"
"/usr/share/emacs/site-lisp/swank-clojure/src"))
(aput 'slime-lisp-implementations 'clojure
(list (swank-clojure-cmd) :init 'swank-clojure-init))))
;; TODO: functionality needs to be re-written; assoc library obsolete
;; (eval-after-load "slime"
;; `(progn
;; (require 'assoc) ;; Built-in (OBSOLETE)
;; (setq swank-clojure-classpath
;; (list "/usr/share/clojure/clojure.jar"
;; "/usr/share/clojure/clojure-contrib.jar"
;; "/usr/share/emacs/site-lisp/swank-clojure/src"))
;; (aput 'slime-lisp-implementations 'clojure
;; (list (swank-clojure-cmd) :init 'swank-clojure-init))))

;; Setup emacs-org-mode
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when global-font-lock-mode is on
(setq org-return-follows-link t)
(setq org-log-done 'time)
(setq org-return-follows-link t
org-log-done 'time
org-src-fontify-natively t
org-enforce-todo-dependencies t)

;; Add additional languages for org-babel (now part of org-mode)
(org-babel-do-load-languages
@@ -302,6 +373,9 @@
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)

;; Setup coq-mode ;; AUR: coq
(require 'coq)

;; Setup haskell-mode ;; ELPA
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
@@ -311,6 +385,20 @@
;; Set inferior haskell default executable
(setq haskell-program-name "/usr/bin/ghci")

;; Setup hlint ;; ELPA
;; (require 'flymake-hlint)
;; (add-hook 'haskell-mode-hook 'flymake-hlint-load)

;; Setup ghc (requires ghc-mod from cabal) ;; ELPA
(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))

;; Setup ensime ;; AUR
(add-to-list 'load-path "/usr/share/ensime/elisp")
(add-to-list 'exec-path "/usr/share/ensime")
(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

;; Setup python-mode auto-required by package.el (ELPA)
(setq auto-mode-alist (append '(("/*.\.py$" . python-mode)) auto-mode-alist))

@@ -334,15 +422,22 @@
;; Setup geiser
(require 'geiser) ;; ELPA

;; Setup quack
;; Setup auto-completion for geiser (ELPA)
(require 'ac-geiser)
(add-hook 'geiser-mode-hook 'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook 'ac-geiser-setup)
(eval-after-load "auto-complete"
'(add-to-list 'ac-modes 'geiser-repl-mode))

;; Setup quack
(require 'quack) ;; ELPA

;; Setup paredit
(require 'paredit) ;; ELPA
(defvar paredit-hooks '(lisp-mode-hook lisp-interaction-mode-hook emacs-lisp-mode-hook scheme-mode-hook c-mode-hook c++-mode-hook python-mode-hook))
(defvar lispy-langs-hooks '(lisp-mode-hook lisp-interaction-mode-hook emacs-lisp-mode-hook scheme-mode-hook c-mode-hook c++-mode-hook python-mode-hook))

;; Apply paredit-mode to modes listed in paredit-hooks
(activate-mode-with-hooks (lambda () (paredit-mode 1)) paredit-hooks)
;; Apply paredit-mode to modes listed in lispy-langs-hooks
(activate-mode-with-hooks (lambda () (paredit-mode 1)) lispy-langs-hooks)

;; Paredit binds to C-j globally and thus disables the binding to
;; eval-print-last-sexp in emacs-lisp-mode (e.g *scratch*, etc..)
@@ -351,7 +446,15 @@
(define-key emacs-lisp-mode-map "\C-xj" 'eval-print-last-sexp)))

;; Highlight paren's in given modes [to apply globally do (show-paren-mode 1)]
(activate-mode-with-hooks (lambda () (show-paren-mode 1)) paredit-hooks)
(activate-mode-with-hooks (lambda () (show-paren-mode)) lispy-langs-hooks)

;; Setup rainbow-delimiters *BROKEN*
(require 'rainbow-delimiters) ;; ELPA
;;(activate-mode-with-hooks (lambda () (with-current-buffer buf (rainbow-delimiters-mode))) lispy-langs-hooks)

;; Setup rainbow-mode ;; ELPA
(require 'rainbow-mode)
(add-hook 'css-mode-hook 'rainbow-mode)

;; upcomming functionallity: toggle paredit-mode due to annoying things like wrapping parens when a mistake is made
;; known issue..if paredit-mode is turned on when there are unbalanced parens an error is reported
@@ -388,6 +491,28 @@
;; (add-hook 'python-mode-hook 'hs-org/minor-mode)
;; (add-hook 'scheme-mode-hook 'hs-org/minor-mode)

;; Setup isearch+
(require 'isearch+)

;; Setup ace-jump-mode
(autoload
'ace-jump-mode
"ace-jump-mode"
"Emacs quick move minor mode"
t)
(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)

;; Setup expand-region ;; ELPA
(require 'expand-region)
(global-set-key (kbd "C-=") 'er/expand-region)

;; Setup multiple-cursons ;; ELPA
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)

;; Setup fancy auto-complete
(require 'auto-complete-config) ;; ELPA
;;(add-to-list 'ac-dictionary-directories "/usr/share/emacs/site-lisp/auto-complete/ac-dict")
@@ -396,7 +521,7 @@
;; Setup yasnippet-mode (not yasnippet-bundle)
(require 'yasnippet) ;; ELPA
;;(yas/initialize)
(yas/load-directory "~/.emacs.d/elpa/yasnippet-20120718/snippets")
(yas/load-directory "~/.emacs.d/elpa/yasnippet-20131026.1440/snippets")

;; Enable flyspell-mode
(ac-flyspell-workaround)
@@ -414,7 +539,7 @@
(setq auto-insert-directory (concat (getenv "HOME") "/.emacs.d/templates/"))
(setq auto-insert-alist
'(("\\.c$" . ["c-template.c" auto-update-generic-template])
("\\.\(cc\|cpp\)$" . ["cpp-template.c" auto-update-generic-template])
("\\.cc\\|cpp$" . ["cpp-template.c" auto-update-generic-template])
("\\.php$" . ["php-template.php" auto-update-generic-template])
("\\.rb$" . ["ruby-template.rb" auto-update-generic-template])
("\\.lua$" . ["lua-template.lua" auto-update-generic-template])
@@ -428,7 +553,12 @@
("\\.hs$" . ["haskell-template.hs" auto-update-generic-template])
("\\.ml$" . ["ocaml-template.ml" auto-update-generic-template])
("\\.sml$" . ["sml-template.sml" auto-update-generic-template])
("\\.py$" . ["python-template.py" auto-update-generic-template])))
("\\.py$" . ["python-template.py" auto-update-generic-template])
("\\.java$" . ["java-template.java" auto-update-generic-template])
("\\.scala$" . ["scala-template.scala" auto-update-generic-template])
("\\.htm\\|html$" . ["html-template.html" auto-update-generic-template])
("\\.js$" . ["java-script-template.js" auto-update-generic-template])
("\\.css$" . ["css-template.css" auto-update-generic-template])))
(setq auto-insert 'other)

(defun auto-update-generic-template ()
@@ -464,20 +594,45 @@
(interactive)
(insert (format-time-string "%b %e, %Y" (current-time))))

(defun open-scratch-buffer ()
"Opens the scratch buffer; if none exists creates one."
(interactive)
(let ((scratch-buffer (get-buffer "*scratch*")))
(if (null scratch-buffer) (progn (get-buffer-create "*scratch*")
(insert initial-scratch-message)
(lisp-interaction-mode)))
(switch-to-buffer "*scratch*")))
;; (defun open-scratch-buffer ()
;; "Opens the scratch buffer; if none exists creates one."
;; (interactive)
;; (let ((scratch-buffer (get-buffer "*scratch*")))
;; (if (null scratch-buffer) (with-current-buffer (get-buffer-create "*scratch*")
;; (insert initial-scratch-message)
;; (lisp-interaction-mode)))
;; (switch-to-buffer "*scratch*")))

(defvar scratch-buffer-alist '((python-mode . "# This buffer is for notes you don't want to save, and for Lisp evaluation.\n# If you want to create a file, visit that file with C-x C-f,\n# then enter the text in that file's own buffer.")))

(defun open-scratch-buffer (&optional buf-mode buf-name msg)
"Opens a scratch buffer; if none exists creates one. When called with the universal argument (C-u) will ask what mode to use for the scratch buffer."
(interactive
(cond ((equal current-prefix-arg nil) ;; universal argument not called
(list initial-major-mode "*scratch*" initial-scratch-message))
((equal current-prefix-arg '(4)) ;; Universal argument called (C-u)
(let* ((buf-mode (read-command "Mode: " initial-major-mode))
(buf-name (if (equal buf-mode initial-major-mode)
"*scratch*"
(concat "*scratch:" (symbol-name buf-mode) "*")))
(msg ""))
(list buf-mode buf-name msg)))))
(let* ((scratch-buffer (get-buffer buf-name)))
;; check if the scratchpad is open. If not create it, change its mode and insert message text at the top of the buffer
(if (null scratch-buffer)
(with-current-buffer (get-buffer-create buf-name)
(funcall buf-mode)
(insert msg)))
(switch-to-buffer buf-name)))

;; Bind a key to grab a scratchpad
(global-set-key "\C-x4s" 'open-scratch-buffer)
(define-key ctl-x-4-map "s" 'open-scratch-buffer)

;; TODO: make a function to toggle the eshell; given a the universal argument the following can occur:
;; - if numerical then opens the nth scratch buffer "*eshell*<n>"
;; - if no args then open a new eshell
;; Bind a key to switch to eshell
(global-set-key "\C-x4e" 'eshell)
(define-key ctl-x-4-map "e" 'eshell)

;; Toggles windows split orientation of 2 adjecent windows
;; Thanks to http://www.emacswiki.org/cgi-bin/wiki?ToggleWindowSplit
@@ -532,9 +687,17 @@
;; Commands that require a little more then a dumb-term
(setq eshell-visual-commands '("vi" "screen" "top" "less" "more" "lynx" "ncftp" "vim" "ncmpcpp" "irssi" "mc" "alsamixer" "/usr/bin/sudo"))

(defun eshell/catbuf (buffer-name)
"Given a buffer-name returns the contents of said buffer"
(interactive "bBuffer: ")
(save-excursion
(let ((code-buf (get-buffer buffer-name)))
(if (null code-buf) (concat "The buffer given \"" buffer-name "\" does not exist")
(set-buffer code-buf)
(buffer-string)))))

(defun eshell/find-file-ext (fp)
"Finds a single file or a list of files and returns a list of their respective buffers"
"Finds a single file or a list of files matching a regxp and returns a list of their respective buffers"
(interactive)
(if (listp fp) (mapcar #'find-file fp)
(list (find-file fp))))
@@ -555,6 +718,12 @@ consisting of lists of buffers opened by each respective FP argument."

;; (add-to-list 'load-path "~/.emacs.d/el-get/el-get")

;; *TODO*: PLAIN TEXT PASSWORD === BAD
;; Setup weechat client (note requires weechat relay (port 9000)
(require 'weechat)
(if (daemonp)
(weechat-connect "localhost" 9000 "linux:netbeans" nil))

;; *BROKEN*..can't connect to dbus for some reason?
;; ;; Setup el-get
;; (unless (require 'el-get nil t)
@@ -574,9 +743,10 @@ consisting of lists of buffers opened by each respective FP argument."
;; If there is more than one, they won't work right.
'(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95" "#34cae2" "#008b8b" "#00ede1" "#e1e1e0"])
'(custom-safe-themes (quote ("36a309985a0f9ed1a0c3a69625802f87dee940767c9e200b89cdebdb737e5b29" "dc8693659115ea453f849f47509b903da3801b5f1521a73fa31556a9a3558517" default)))
'(fill-column 95)
'(highlight-current-line-globally t nil (highlight-current-line))
'(highlight-current-line-ignore-regexp "Faces\\|Colors\\| \\*Mini\\|\\**\\*")
'(magit-commit-signoff t)
'(magit-commit-signoff t t)
'(org-agenda-files (quote ("~/.org/tech/notes.org" "~/.org/todo/rekahsoft-mini-todo.org" "~/.org/todo/rekahsoft-todo.org" "~/.org/todo/general.org" "~/.org/todo/work.org")))
'(quack-default-program "racket")
'(quack-fontify-style (quote plt))


+ 5
- 0
.emacs.d/templates/php-template.php View File

@@ -1,3 +1,5 @@
<?php

/**
* (C) Copyright Collin Doering @!@YEAR@!@
*
@@ -21,3 +23,6 @@
* Date: @!@DATE@!@
*/



?>

+ 4
- 4
.eshell/alias View File

@@ -1,5 +1,5 @@
alias ms magit-status $1
alias mss magit-status .
alias ssudo /usr/bin/sudo
alias d dired $1
alias ffo find-file-other-window $1
alias d dired $1
alias ssudo /usr/bin/sudo
alias mss magit-status .
alias ms magit-status $1

+ 10
- 0
.ghci View File

@@ -1 +1,11 @@
-- Setup prompt
:set prompt "ghci> "

-- Setup use of hoogle through ghci
:def hoogle \str -> return $ ":! hoogle --count=15 \"" ++ str ++ "\""

-- Enable almost all warnings by default
:set -Wall

-- Enable multi-line mode; shortform for -{ ... }-
:set +m

+ 28
- 3
.gnus View File

@@ -18,7 +18,7 @@

(setq smtpmail-debug-info t)

(setq smtpmail-stream-type nil) ;; If using TLS/SSL. Use C-h v smtpmail-stream-type RET to see possible values
(setq smtpmail-stream-type 'starttls) ;; If using TLS/SSL. Use C-h v smtpmail-stream-type RET to see possible values
(setq smtp-accounts
'(("collin.doering@gmail.com" "Collin J. Doering" "smtp.gmail.com")
("rekahsoft@gmail.com" "rekahsoft" "smtp.gmail.com")))
@@ -32,10 +32,11 @@
when (string-match addr from)
do (setq user-mail-address addr
user-full-name fname
smtpmail-smtp-server server))))
smtpmail-smtp-server server
smtpmail-smtp-user addr))))

(defadvice smtpmail-via-smtp
(before change-smtp-by-message-from-field (recipient buffer))
(before change-smtp-by-message-from-field (recipient buffer &optional ask) activate)
(with-current-buffer buffer (my-change-smtp)))

(ad-activate 'smtpmail-via-smtp)
@@ -51,6 +52,15 @@
("rekahsoft.mail@gmail.com"
(address "rekahsoft.mail@gmail.com")
(name "RekahSoft"))
("collin.doering@rekahsoft.ca"
(address "collin.doering@rekahsoft.ca")
(name "Collin J. Doering"))
("support@rekahsoft.ca"
(address "support@rekahsoft.ca")
(name "Rekahsoft Support"))
("info@rekahsoft.ca"
(address "info@rekahsoft.ca")
(name "RekahSoft Info"))
))

;; set primary select method..
@@ -68,6 +78,21 @@
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.authinfo.gpg"))
(nnimap "collin.doering"
(nnimap-address "hp131.hostpapa.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.authinfo.gpg"))
(nnimap "info"
(nnimap-address "hp131.hostpapa.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.authinfo.gpg"))
(nnimap "support"
(nnimap-address "hp131.hostpapa.com")
(nnimap-server-port 993)
(nnimap-stream ssl)
(nnimap-authinfo-file "~/.authinfo.gpg"))))

;; (nnimap "rekahsoft.mail"


+ 37
- 33
.mpdconf View File

@@ -169,11 +169,11 @@ auto_update "yes"
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
password "patchMeIn@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read"
default_permissions "read,add"
#
###############################################################################

@@ -225,29 +225,31 @@ input {
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}

#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoding "ogg" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
# audio_output {
# type "shout"
# # encoding "ogg" # optional
# name "RekahSoft Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password ""
# quality "5.0"
# # bitrate "128"
# format "44100:16:1"
# # protocol "icecast2" # optional
# # user "source" # optional
# # description "My Stream Description" # optional
# # url "http://example.com" # optional
# # genre "jazz" # optional
# # public "no" # optional
# # timeout "2" # optional
# # mixer_type "software" # optional
# }

#
# An example of a recorder output:
#
@@ -260,20 +262,22 @@ input {
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}

#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
audio_output {
type "httpd"
name "RekahSoft HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
# quality "5.0" # do not define if bitrate is defined
bitrate "128" # do not define if quality is defined
format "44100:16:1"
max_clients "5" # optional 0=no limit
}

#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#


+ 6
- 5
.ncmpcpp/config View File

@@ -7,21 +7,22 @@
#
## set it in order to make tag editor and renaming files work properly
#
mpd_host = "localhost"
mpd_host = "patchMeIn@localhost"
#
mpd_port = "6600"
#
mpd_music_dir = "/media/md-isk/Music"
mpd_music_dir = "/media/dm/Music"
#
#mpd_connection_timeout = "5"

execute_on_song_change = "notify-send -t 3000 -i \"/usr/share/icons/gnome/scalable/mimetypes/audio-x-generic-symbolic.svg\" \"$(ncmpcpp --now-playing %t)\" \"$(ncmpcpp --now-playing '%b - %a')\""
execute_on_song_change = "notify-send -t 3000 -i \"/usr/share/icons/gnome/scalable/mimetypes/audio-x-generic-symbolic.svg\" \"$(ncmpcpp --now-playing '{%t\n%b - %a}|{%f}')\""
playlist_display_mode = "columns"
browser_display_mode = "columns"
search_engine_display_mode = "columns"
fancy_scrolling = "yes"
user_interface = "alternative"

visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_fifo_path = "/home/collin/.mpd/mpd.fifo"
visualizer_output_name = "RekahSoft FIFO"
visualizer_sync_interval = "30"
visualizer_type = "spectrum" (spectrum/wave)
visualizer_type = "wave" # (spectrum/wave)

+ 4
- 3
.screenrc View File

@@ -1,8 +1,9 @@
# Open several named screens at startup and run different commands in each
screen -t zsh 0 zsh
screen -t irssi 1 irssi
screen -t ncmpcpp 2 ncmpcpp
screen -t alsamixer 3 alsamixer
screen -t weechat 1 weechat-curses

#screen -t ncmpcpp 2 ncmpcpp
#screen -t alsamixer 3 alsamixer
#screen -t mc 4 mc
#screen -t cmus 5 cmus
#screen -t nvlc 5 nvlc


+ 18
- 12
.xbindkeysrc View File

@@ -15,55 +15,61 @@
# play/pause key = toggle play pause
#"~/.bin/toggle-pp.py"
#"cmus-remote --pause"
"mpc toggle"
"mpc -h patchMeIn@localhost toggle"
m:0x10 + c:172
XF86AudioPlay
#"cmus-remote --pause"
"mpc toggle"
"mpc -h patchMeIn@localhost toggle"
m:0x58 + c:33
Alt+Mod2+Mod4 + p

# next key = next song
#"cmus-remote --next"
"mpc next"
"mpc -h patchMeIn@localhost next"
m:0x10 + c:171
XF86AudioNext
#"cmus-remote --next"
"mpc next"
"mpc -h patchMeIn@localhost next"
m:0x58 + c:60
Alt+Mod2+Mod4 + period

# prev key = previous song
#"cmus-remote --prev"
"mpc prev"
"mpc -h patchMeIn@localhost prev"
m:0x10 + c:173
XF86AudioPrev
#"cmus-remote --prev"
"mpc prev"
"mpc -h patchMeIn@localhost prev"
m:0x58 + c:59
Alt+Mod2+Mod4 + comma

# volume up key = Master volume up 1
"amixer set Master 1+"
#"amixer set Master 1+"
"pulseaudio-ctl up"
m:0x10 + c:123
XF86AudioRaiseVolume
"amixer set Master 1+"
#"amixer set Master 1+"
"pulseaudio-ctl up"
m:0x58 + c:30
Alt+Mod2+Mod4 + u

# volume down key = Master volume down 1
"amixer set Master 1-"
#"amixer set Master 1-"
"pulseaudio-ctl down"
m:0x10 + c:122
XF86AudioLowerVolume
"amixer set Master 1-"
#"amixer set Master 1-"
"pulseaudio-ctl down"
m:0x58 + c:40
Alt+Mod2+Mod4 + d

# mute volume key = mute alsa Master channel
"amixer set Master toggle"
#"amixer set Master toggle"
"pulseaudio-ctl mute"
m:0x10 + c:121
XF86AudioMute
"amixer set Master toggle"
#"amixer set Master toggle"
"mute_toggle"
m:0x58 + c:58
Alt+Mod2+Mod4 + m



+ 1
- 1
.xinitrc View File

@@ -32,7 +32,7 @@ function init_local_session() {
# * emacsd
# * trayer *disabled* ..
# * udiskie
systemd --user &
#systemd --user & #DEPRECIATED..logind calls systemd --user automatically

# Set a desktop background
nitrogen --restore &


+ 3
- 2
.xmobarrc View File

@@ -22,8 +22,8 @@ Config { font = "-*-terminus-*-*-*-*-35-*-*-*-*-*-*-u"
, fgColor = "#00FFFF"
, position = TopW L 100
, lowerOnStart = True
, commands = [ Run Network "eno1" ["-L","0","-H","32","-l","green","--normal","orange","--high","red"] 40
, commands = [ Run DynNetwork ["-L","0","-H","32","-l","green","--normal","orange","--high","red"] 40
, Run Com "/home/collin/.bin/vol.sh" [] "vol" 10
, Run MultiCpu ["-t","Cpu <total> | cpu0: <total0> | cpu1: <total1> | cpu2: <total2> | cpu3: <total3>","-L","3","-H","50","--high","#f0c040"] 10
, Run Memory ["-t","Mem: <usedratio>%","-l","green","--normal","orange","--high","red"] 40
, Run Swap ["-t","Swap: <usedratio>%","-l","green","--normal","orange","--high","red"] 60
@@ -35,5 +35,5 @@ Config { font = "-*-terminus-*-*-*-*-35-*-*-*-*-*-*-u"
]
, sepChar = "%"
, alignSep = "}{"
, template = " %StdinReader% }{ %multicpu% %memory% <fc=#0033FF>|</fc> %swap% <fc=#0033FF>|</fc> %eno1% <fc=#0033FF>|</fc> %uptime% <fc=#0033FF>|</fc> %CYKF% <fc=#0033FF>|</fc> %date% <fc=#0033FF>|</fc> "
, template = " %StdinReader% }{ %multicpu% %memory% <fc=#0033FF>|</fc> %swap% <fc=#0033FF>|</fc> %dynnetwork% <fc=#0033FF>|</fc> %vol% <fc=#0033FF>|</fc> %uptime% <fc=#0033FF>|</fc> %CYKF% <fc=#0033FF>|</fc> %date% <fc=#0033FF>|</fc> "
}

+ 50
- 65
.xmonad/xmonad.hs View File

@@ -22,12 +22,22 @@
-- http://www.haskell.org/haskellwiki/Xmonad/Notable_changes_since_0.8
--


import System.IO
import System.Exit
import Data.Monoid
import qualified Data.Map as M

import XMonad
import XMonad.Actions.UpdatePointer
import XMonad.Actions.WindowBringer
import Data.Monoid
import System.Exit
import XMonad.Actions.GridSelect
import XMonad.Actions.FloatKeys

import XMonad.Util.Run(spawnPipe)
import XMonad.Util.Dmenu
import XMonad.Util.NamedScratchpad

import XMonad.Layout.NoBorders(noBorders,smartBorders)
import XMonad.Layout.ResizableTile
import XMonad.Layout.Grid
@@ -35,20 +45,16 @@ import XMonad.Layout.ToggleLayouts
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowNavigation
import XMonad.Layout.BoringWindows
import XMonad.Util.NamedScratchpad
import XMonad.Actions.GridSelect
import XMonad.Actions.FloatKeys
import XMonad.Util.Dmenu
import XMonad.Layout.Tabbed

import XMonad.Hooks.ManageDocks
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.FadeInactive (setOpacity)
import System.IO

import qualified XMonad.StackSet as W
import qualified Data.Map as M
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
@@ -172,7 +178,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
-- , ((modm , xK_b ), sendMessage ToggleStruts)
, ((modm , xK_b ), sendMessage ToggleStruts)

-- Quit xmonad (no questions)
, ((modm .|. shiftMask .|. controlMask, xK_End), io (exitWith ExitSuccess))
@@ -181,7 +187,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
, ((modm .|. shiftMask, xK_q), spawn "~/.bin/xmonadClose.sh")
-- Unmount automounted disks by udiskie
, ((modm .|. shiftMask .|. controlMask, xK_u), spawn "udiskie-umount -as")
, ((modm .|. shiftMask .|. controlMask, xK_u), spawn "udiskie-umount -as && notify-send 'External media safely disconnected!'")
--, ((modm .|. shiftMask, xK_w ), if (dmenu "-b -i -nb '#040404' -nf '#525252' -sf '#ffa0ff' -sb '#000000' -p \"Do you really want to close XMonad? [yes/no]: \"") == "yes" then (sendMessage Expand) else (sendMessage Shrink))
@@ -214,9 +220,6 @@ myGenericKeys =

-- Lock the screen using xscreensaver
[ ((modm .|. shiftMask, xK_v), spawn "xscreensaver-command -lock")
-- Key binding to toggle the gap for the bar.
, ((modm, xK_b), sendMessage ToggleStruts)

-- Toggle full-screen mode
, ((modm .|. controlMask, xK_space), sendMessage (Toggle "Full"))
@@ -257,8 +260,8 @@ myGenericKeys =
-- Launch MC scratchpad
, ((modm .|. controlMask, xK_3), namedScratchpadAction scratchpads "mc-scratch")

-- Launch MC scratchpad
, ((modm .|. controlMask, xK_4), namedScratchpadAction scratchpads "pavucontrol-scratch")
-- Launch ncmpcpp scratchpad
, ((modm .|. controlMask, xK_4), namedScratchpadAction scratchpads "ncmpcpp-scratch")

-- Select window from dmenu and go to the workspace its on
, ((modm .|. shiftMask, xK_g), gotoMenuArgs ["-i","-nb", "#040404","-nf","#00FFFF","-sf","#ffa0ff","-sb","#000000"])
@@ -393,63 +396,45 @@ myManageHook = composeAll
, resource =? "Steam" --> doCenterFloat
, title =? "Xnest" --> doCenterFloat
, resource =? "pavucontrol" --> doMaxFloat
, resource =? "emacs-scratch" --> doMaxFloat
, resource =? "mc-scratch" --> doMaxFloat
, resource =? "qemu-system-x86_64" --> doFullFloat
, resource =? "hl2_linux" --> doFullFloat
, resource =? "Halo.exe" --> doCenterFloat
-- , resource =? "UnrealTournament.exe" --> doCenterFloat
-- , resource =? "hl2_linux" --> doFullFloat
, isFullscreen --> (doF W.focusDown <+> doFullFloat)
, resourceIsOneOf ["emacs","gvim"] --> ask >>= (liftX . flip setOpacity (13/16)) >> idHook
, resource =? "desktop_window" --> doIgnore ] <+> namedScratchpadManageHook scratchpads <+> manageDocks

-- NamedScratchPad Hook
scratchpads = [ NS "emacs-scratch" spawnEmacsScratch findEmacsScratch manageEmacsScratch
, NS "maintenance-terminal" spawnMaintenanceTerminal findMaintenanceTerminal manageMaintenanceTerminal
, NS "screen-terminal" spawnScreenTerminal findScreenTerminal manageScreenTerminal
, NS "mc-scratch" spawnMcScratch findMcScratch manageMcScratch
, NS "pavucontrol-scratch" spawnPavucontrolScratch findPavucontrolScratch managePavucontrolScratch]
where
findEmacsScratch = resource =? "emacs-scratch"
findMaintenanceTerminal = resource =? "scratchpad"
findScreenTerminal = resource =? "screen-scratch"
findMcScratch = resource =? "mc-scratch"
findPavucontrolScratch = resource =? "pavucontrol"

spawnEmacsScratch = myTerminal ++ " -name emacs-scratch +tr -pe -tabbedex -e emacsclient -nw"
spawnMaintenanceTerminal = myTerminal ++ " -name scratchpad"
spawnScreenTerminal = myTerminal ++ " -name screen-scratch -bg black"
spawnMcScratch = myTerminal ++ " -name mc-scratch +tr -pe -tabbedex -e mc"
spawnPavucontrolScratch = "pavucontrol"

manageEmacsScratch = customFloating $ W.RationalRect l t w h
where
h = 0.65 -- terminal height (%)
w = 0.55 -- terminal width (%)
t = 1 - h -- distance from top edge (%)
l = 1 - w -- distance from left edge (%)
manageMaintenanceTerminal = customFloating $ W.RationalRect l t w h
where
h = 0.33 -- terminal height (%)
w = 1 -- terminal width (%)
t = 1 - h -- distance from top edge (%)
l = 1 - w -- distance from left edge (%)
manageScreenTerminal = customFloating $ W.RationalRect l t w h
where
h = 0.98 -- terminal height (%)
w = 1 -- terminal width (%)
t = 1 - h -- distance from top edge (%)
l = 1 - w -- distance from left edge (%)
manageMcScratch = customFloating $ W.RationalRect l t w h
where
h = 0.65 -- terminal height (%)
w = 0.55 -- terminal width (%)
t = 1 - h -- distance from top edge (%)
l = 1 - w -- distance from left edge (%)
managePavucontrolScratch = customFloating $ W.RationalRect l t w h
where
h = 0.80 -- terminal height (%)
w = 0.55 -- terminal width (%)
t = 1 - h -- distance from top edge (%)
l = 1 - w -- distance from left edge (%)
, NS "maintenance-terminal" spawnMaintenanceTerminal findMaintenanceTerminal manageMaintenanceTerminal
, NS "screen-terminal" spawnScreenTerminal findScreenTerminal manageScreenTerminal
, NS "mc-scratch" spawnMcScratch findMcScratch manageMcScratch
, NS "ncmpcpp-scratch" spawnNcmpcppScratch findNcmpcppScratch manageNcmpcppScratch]
where
findEmacsScratch = resource =? "emacs-scratch"
findMaintenanceTerminal = resource =? "scratchpad"
findScreenTerminal = resource =? "screen-scratch"
findMcScratch = resource =? "mc-scratch"
findNcmpcppScratch = resource =? "ncmpcpp-scratch"

spawnEmacsScratch = myTerminal ++ " -name emacs-scratch +tr -pe -tabbedex -e emacsclient -nw"
spawnMaintenanceTerminal = myTerminal ++ " -name scratchpad"
spawnScreenTerminal = myTerminal ++ " -name screen-scratch -bg black"
spawnMcScratch = myTerminal ++ " -name mc-scratch +tr -pe -tabbedex -e mc"
spawnNcmpcppScratch = myTerminal ++ " -name ncmpcpp-scratch +tr -pe -tabbedex -e ncmpcpp"

manageEmacsScratch = customFloating $ W.RationalRect 0.10 0.10 0.80 0.80
manageMaintenanceTerminal = customFloating $ W.RationalRect 0 0.66 1 0.34
manageScreenTerminal = customFloating $ W.RationalRect 0 0.015 1 0.985
manageMcScratch = customFloating $ W.RationalRect 0.20 0.15 0.60 0.70
manageNcmpcppScratch = customFloating $ W.RationalRect 0.225 0.10 0.55 0.80

-- manageScreenTerminal = customFloating $ W.RationalRect l t w h
-- where
-- h = 1 -- terminal height (%)
-- w = 1 -- terminal width (%)
-- t = 1 - h -- distance from top edge (%)
-- l = 1 - w -- distance from left edge (%)

------------------------------------------------------------------------
-- Event handling


+ 15
- 9
.zshrc View File

@@ -20,11 +20,17 @@ bindkey -e
# Check for an interactive session
[ -z "$PS1" ] && return

# A small helper function to disable unclutter before running a command
function disable_unclutter_run() {
systemctl --user stop unclutter
eval "$*"
systemctl --user start unclutter
# A function that given a unit (run under the systemd user instance) and a command runs the command while temporarily suspending the given unit (service)
function disable_unit_run() {
unit="$1"
shift
if [ "$(systemctl --user is-enabled $unit)" = "enabled" ]; then
systemctl --user disable "$unit" >> /dev/null
eval "$*"
systemctl --user enable "$unit" >> /dev/null
else
eval "$*"
fi
}

# Alias' to make command output prettier (use color with some commands by default)
@@ -33,15 +39,15 @@ alias grep='grep --color=auto'
alias fgrep='fgrep --color-auto'
alias egrep='egrep --color-auto'
alias ncmpc='ncmpc -c'
alias pacman='pacman-color'
alias spacman='sudo pacman-color'
alias spacman='sudo pacman'

# Alias' to make some commands a little less terse
alias skreen='screen -c /dev/null'
alias tranr='transmission-remote'
alias ctl='systemctl'
alias ctlu='systemctl --user'
alias sctl='sudo systemctl'
alias qemu='disable_unclutter_run qemu-system-x86_64 -enable-kvm'
alias qemu='disable_unit_run unclutter qemu-system-x86_64 -enable-kvm'
alias s='sudo'

# Shortcuts for port-knocking on rekahsoft-mini *DEPRECIATED*
@@ -74,7 +80,7 @@ stty stop undef
# * mathematica / tools
# * nxclient / associated tools
# * maven tools
export PATH=${PATH}:/usr/local/bin:/opt/maven/bin:/opt/NX/bin:/home/collin/.cabal/bin:/home/collin/.bin
export PATH=${PATH}:/opt/maven/bin:/opt/NX/bin:$HOME/.cabal/bin:$HOME/.gem/ruby/2.0.0/bin:$HOME/.bin

# start keychain
eval `keychain --eval --timeout 10 --quiet --agents ssh id_rsa`


Loading…
Cancel
Save