summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-12-05 00:44:09 +0100
committerGravatar Tom Willemsen2012-12-05 00:44:09 +0100
commit6278e2e634b05027d31220afd328a9f7fe77c6f1 (patch)
tree3dbec6a3880ca980694def0d737a477b68254691
parentfa717d86a07d009ab324a40cd8dbf539e61a9da3 (diff)
parent15adc911da3f5b527c74b6bb67d677898d6a173e (diff)
downloaddotfiles-6278e2e634b05027d31220afd328a9f7fe77c6f1.tar.gz
dotfiles-6278e2e634b05027d31220afd328a9f7fe77c6f1.zip
Merge remote-tracking branch 'origin/master' into phoenix
Conflicts: .emacs.d/site-lisp/oni.el
-rw-r--r--.Xdefaults22
-rw-r--r--.config/Makefile5
-rw-r--r--.config/awesome/Makefile5
-rw-r--r--.config/awesome/themes/Makefile4
-rw-r--r--.config/awesome/themes/custom/Makefile4
-rw-r--r--.config/clfswm/Makefile4
-rw-r--r--.config/cower/Makefile4
-rw-r--r--.config/dunst/Makefile4
-rw-r--r--.config/fehlstart/Makefile4
-rw-r--r--.config/fish/Makefile4
-rw-r--r--.config/herbstluftwm/Makefile4
-rw-r--r--.config/newsbeuter/Makefile4
-rw-r--r--.config/zathura/Makefile4
-rw-r--r--.conkerorrc/Makefile5
-rw-r--r--.conkerorrc/init.js55
-rw-r--r--.conkerorrc/themes/Makefile4
-rw-r--r--.conkerorrc/themes/naquadah/Makefile5
-rw-r--r--.emacs.d/Makefile5
-rw-r--r--.emacs.d/eshell/Makefile5
-rw-r--r--.emacs.d/eshell/alias15
-rw-r--r--.emacs.d/init.el72
-rw-r--r--.emacs.d/site-lisp/Makefile7
-rw-r--r--.emacs.d/site-lisp/dzen.el61
-rw-r--r--.emacs.d/site-lisp/metalexpress.el38
-rw-r--r--.emacs.d/site-lisp/newsticker-init.el101
-rw-r--r--.emacs.d/site-lisp/oni.el28
-rw-r--r--.emacs.d/site-lisp/org-init.el44
-rw-r--r--.emacs.d/snippets/Makefile4
-rw-r--r--.emacs.d/snippets/html-mode/Makefile4
-rw-r--r--.emacs.d/snippets/org-mode/Makefile4
-rw-r--r--.emacs.d/themes/yoshi-theme.el91
-rw-r--r--.gitignore118
-rw-r--r--.local/Makefile4
-rw-r--r--.local/share/Makefile4
-rw-r--r--.local/share/applications/Makefile4
-rw-r--r--.moc/Makefile5
-rw-r--r--.moc/themes/Makefile4
-rw-r--r--.mutt/Makefile6
-rw-r--r--.ncmpcpp/Makefile4
-rw-r--r--.pentadactyl/Makefile4
-rw-r--r--.pentadactyl/plugins/Makefile4
-rw-r--r--.sawfish/Makefile4
-rw-r--r--.sawfish/rc42
-rw-r--r--.ssh/.gitignore4
-rw-r--r--.ssh/Makefile4
-rw-r--r--.w3m/Makefile4
-rw-r--r--.weechat/Makefile4
-rw-r--r--.zsh/Makefile4
-rw-r--r--.zsh/functions/Makefile7
-rw-r--r--.zsh/functions/precmd_maybe_festival15
-rw-r--r--.zsh/functions/preexec_update_vars3
-rw-r--r--.zshrc49
-rw-r--r--Makefile9
-rw-r--r--dotfiles.mk55
54 files changed, 592 insertions, 389 deletions
diff --git a/.Xdefaults b/.Xdefaults
index 7678eaf..2ce94b9 100644
--- a/.Xdefaults
+++ b/.Xdefaults
@@ -29,27 +29,27 @@ urxvt.background: #111113
urxvt.foreground: #eeeeec
urxvt.color0: #171719
-urxvt.color8: #222224
+urxvt.color8: #999999
-urxvt.color1: #8b1a1a
-urxvt.color9: #ff5d55
+urxvt.color1: #973732
+urxvt.color9: #ff756e
-urxvt.color2: #4e9a06
+urxvt.color2: #405c2e
urxvt.color10: #9ad870
-urxvt.color3: #c4a000
-urxvt.color11: #cfce29
+urxvt.color3: #835c0e
+urxvt.color11: #ffbb56
urxvt.color4: #2729b6
urxvt.color12: #78a2c1
-urxvt.color5: #5c3566
-urxvt.color13: #ad7fa8
+urxvt.color5: #5c325d
+urxvt.color13: #c39cc3
-urxvt.color6: #9f5902
-urxvt.color14: #e9b96e
+urxvt.color6: #208181
+urxvt.color14: #93d8d8
-urxvt.color7: #999999
+urxvt.color7: #222224
urxvt.color15: #a9a9a9
Xft.antialias: true
diff --git a/.config/Makefile b/.config/Makefile
new file mode 100644
index 0000000..0d9939f
--- /dev/null
+++ b/.config/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/.config
+modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
+ newsbeuter zathura
+
+include ../dotfiles.mk
diff --git a/.config/awesome/Makefile b/.config/awesome/Makefile
new file mode 100644
index 0000000..bec3818
--- /dev/null
+++ b/.config/awesome/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/awesome
+modules=themes
+objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
+
+include ../../dotfiles.mk
diff --git a/.config/awesome/themes/Makefile b/.config/awesome/themes/Makefile
new file mode 100644
index 0000000..85298f3
--- /dev/null
+++ b/.config/awesome/themes/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/themes
+modules=custom
+
+include ../../../dotfiles.mk
diff --git a/.config/awesome/themes/custom/Makefile b/.config/awesome/themes/custom/Makefile
new file mode 100644
index 0000000..8cebe3d
--- /dev/null
+++ b/.config/awesome/themes/custom/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/custom
+objects=theme.lua
+
+include ../../../../dotfiles.mk
diff --git a/.config/clfswm/Makefile b/.config/clfswm/Makefile
new file mode 100644
index 0000000..d79241a
--- /dev/null
+++ b/.config/clfswm/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/clfswm
+objects=clfswmrc
+
+include ../../dotfiles.mk
diff --git a/.config/cower/Makefile b/.config/cower/Makefile
new file mode 100644
index 0000000..8828ad3
--- /dev/null
+++ b/.config/cower/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/cower
+objects=config
+
+include ../../dotfiles.mk
diff --git a/.config/dunst/Makefile b/.config/dunst/Makefile
new file mode 100644
index 0000000..4f8a4e5
--- /dev/null
+++ b/.config/dunst/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/dunst
+objects=dunstrc
+
+include ../../dotfiles.mk
diff --git a/.config/fehlstart/Makefile b/.config/fehlstart/Makefile
new file mode 100644
index 0000000..303a9ca
--- /dev/null
+++ b/.config/fehlstart/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/fehlstart
+objects=fehlstart.rc
+
+include ../../dotfiles.mk
diff --git a/.config/fish/Makefile b/.config/fish/Makefile
new file mode 100644
index 0000000..2b32c1b
--- /dev/null
+++ b/.config/fish/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/fish
+objects=config.fish
+
+include ../../dotfiles.mk
diff --git a/.config/herbstluftwm/Makefile b/.config/herbstluftwm/Makefile
new file mode 100644
index 0000000..f875c23
--- /dev/null
+++ b/.config/herbstluftwm/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/herbstluftwm
+objects=autostart panel.sh
+
+include ../../dotfiles.mk
diff --git a/.config/newsbeuter/Makefile b/.config/newsbeuter/Makefile
new file mode 100644
index 0000000..fbf22de
--- /dev/null
+++ b/.config/newsbeuter/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/newsbeuter
+objects=config urls
+
+include ../../dotfiles.mk
diff --git a/.config/zathura/Makefile b/.config/zathura/Makefile
new file mode 100644
index 0000000..c6c93c1
--- /dev/null
+++ b/.config/zathura/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/zathura
+objects=zathurarc
+
+include ../../dotfiles.mk
diff --git a/.conkerorrc/Makefile b/.conkerorrc/Makefile
new file mode 100644
index 0000000..d2bc0db
--- /dev/null
+++ b/.conkerorrc/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/.conkerorrc
+modules=themes
+objects=gtk2rc init.js
+
+include ../dotfiles.mk
diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js
index f4818d8..939d3a6 100644
--- a/.conkerorrc/init.js
+++ b/.conkerorrc/init.js
@@ -1,10 +1,11 @@
require("content-policy.js");
require("favicon");
-var linkwave_program = "/home/slash/var/src/linkwave/src/linkwave";
-
+load_paths.push("file:///home/slash/var/src/linkwave/conkeror/");
theme_load_paths.push("/home/slash/.conkerorrc/themes/");
+require("linkwave");
+
define_browser_object_class(
"history-url", null,
function (I, prompt) {
@@ -46,53 +47,6 @@ function oni_escape(str) {
return str.replace(/(["$`])/g, '\\$1');
}
-function oni_linkwave_add(I) {
- check_buffer(I.buffer, content_buffer);
- let url =
- load_spec_uri_string(load_spec(I.buffer.top_frame));
- let title = yield I.minibuffer.read(
- $prompt = "name (required): ",
- $initial_value = I.buffer.title);
- // let tags = escape(yield I.minibuffer.read(
- // $prompt = "tags (space delimited): "));
- let description = yield I.minibuffer.read(
- $prompt = "extended description: ");
- let command = linkwave_program + ' "' + url + '" "' + title + '" "'
- + description + '"';
- let result = yield shell_command(command);
-
- if (!result)
- I.window.minibuffer.message('Added to linkwave');
- else
- I.window.minibuffer.message('Couldn\'t add to linkwave');
-}
-interactive("linkwave-add", "Bookmark the page in linkwave",
- oni_linkwave_add);
-
-function oni_linkwave_add_link(I) {
- bo = yield read_browser_object(I);
- let url = load_spec_uri_string(
- load_spec(encodeURIComponent(bo)));
- check_buffer(I.buffer, content_buffer);
- let title = yield I.minibuffer.read(
- $prompt = "name (required): ",
- $initial_value = bo.textContent);
- // let tags = escape(yield I.minibuffer.read(
- // $prompt = "tags (space delimited): "));
- let description = yield I.minibuffer.read(
- $prompt = "extended description: ");
- let command = linkwave_program + ' "' + url + '" "' + title + '" "'
- + description + '"';
- let result = yield shell_command(command);
-
- if (!result)
- I.window.minibuffer.message('Added to linkwave');
- else
- I.window.minibuffer.message('Couldn\'t add to linkwave');
-}
-interactive("linkwave-add-link", "Bookmark the a link in linkwave",
- oni_linkwave_add_link);
-
function oni_org_store_link(I) {
var cmd_str = 'emacsclient \"org-protocol://store-link://'
+ encodeURIComponent(I.buffer.display_uri_string) + '/'
@@ -155,7 +109,7 @@ define_webjump("arch/packages",
"https://www.archlinux.org/packages/?sort=&q=%s&limit=50",
$alternative="https://packages.archlinux.org");
-content_policy_bytype_table.object = oni_block_flash;
+// content_policy_bytype_table.object = oni_block_flash;
cwd = make_file("/home/slash/downloads/");
hint_digits = "arstdhneio";
read_buffer_show_icons = true;
@@ -166,6 +120,7 @@ define_key(content_buffer_normal_keymap, "h",
"find-url-from-history-new-buffer");
define_key(content_buffer_normal_keymap, "H",
"find-url-from-history");
+define_key(content_buffer_normal_keymap, "C-x C-b", "switch-to-buffer");
define_key(default_base_keymap, "C-x f", "follow-new-buffer");
add_hook("before_quit_hook", oni_before_quit_func);
diff --git a/.conkerorrc/themes/Makefile b/.conkerorrc/themes/Makefile
new file mode 100644
index 0000000..a88d833
--- /dev/null
+++ b/.conkerorrc/themes/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/themes
+modules=naquadah
+
+include ../../dotfiles.mk
diff --git a/.conkerorrc/themes/naquadah/Makefile b/.conkerorrc/themes/naquadah/Makefile
new file mode 100644
index 0000000..0512339
--- /dev/null
+++ b/.conkerorrc/themes/naquadah/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/naquadah
+objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
+ mode-line.css new-tabs.css tab-bar.css theme.json
+
+include ../../../dotfiles.mk
diff --git a/.emacs.d/Makefile b/.emacs.d/Makefile
new file mode 100644
index 0000000..0c716a8
--- /dev/null
+++ b/.emacs.d/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/.emacs.d
+objects=init.elc init.el gnus.elc gnus.el
+modules=eshell site-lisp snippets
+
+include ../dotfiles.mk
diff --git a/.emacs.d/eshell/Makefile b/.emacs.d/eshell/Makefile
new file mode 100644
index 0000000..fd3b0f2
--- /dev/null
+++ b/.emacs.d/eshell/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/eshell
+objects=alias
+modules=
+
+include ../../dotfiles.mk
diff --git a/.emacs.d/eshell/alias b/.emacs.d/eshell/alias
index 940108a..d98e2f5 100644
--- a/.emacs.d/eshell/alias
+++ b/.emacs.d/eshell/alias
@@ -1,8 +1,9 @@
-alias git git --no-pager $*
-alias rm rm -v $*
-alias sudo *sudo $*
-alias ncmpcpp ansi-term ncmpcpp ncmpcpp
-alias listen eshell-exec-visual mplayer http://usa7-vn.mixstream.net/listen/8248.pls
-alias o find-file $1
-alias d dired $1
+alias hgit hgit --no-pager $*
alias newsbeuter ansi-term newsbeuter newsbeuter
+alias d dired $1
+alias o find-file $1
+alias listen eshell-exec-visual mplayer http://usa7-vn.mixstream.net/listen/8248.pls
+alias ncmpcpp ansi-term ncmpcpp ncmpcpp
+alias sudo *sudo $*
+alias rm rm -v $*
+alias git git --no-pager $*
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index b99ce68..d6ba9ac 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -3,11 +3,6 @@
;;; Commentary:
;; Does so much and changes so often
-(require 'geiser-install)
-(require 'iso-transl)
-(require 'newcomment)
-(require 'uniquify)
-(require 'w3m-load)
;;; Code:
@@ -18,8 +13,20 @@
(add-to-list 'load-path directory)
(let ((default-directory directory))
(normal-top-level-add-subdirs-to-load-path)))
- '("/usr/share/emacs/site-lisp" "~/.emacs.d/site-lisp")))
+ '("/usr/share/emacs/site-lisp" "~/.emacs.d/site-lisp"
+ "/usr/local/emacs/share/emacs/site-lisp"))
+ (mapc #'(lambda (directory)
+ (add-to-list 'load-path directory)
+ (let ((loaddefs (concat directory "/loaddefs.el")))
+ (when (file-exists-p loaddefs)
+ (load loaddefs))))
+ '("~/var/src/emacs/dispass.el" "~/var/src/emacs/mode-icons")))
+(require 'geiser-install)
+(require 'iso-transl)
+(require 'newcomment)
+(require 'uniquify)
+(require 'w3m-load)
(require 'ext)
(require 'oni)
@@ -59,27 +66,22 @@
"Face for the supposedly empty line in commit messages."
:group 'local)
-(eval-after-load "ebuff-menu"
- '(define-key electric-buffer-menu-mode-map
- (kbd "C-s") 'isearch-forward))
-
(eval-after-load "em-term"
- '(add-to-list 'eshell-visual-commands
- "unison"))
+ '(add-to-list 'eshell-visual-commands "unison"))
(eval-after-load "emms-source-file"
- '(progn
- (require 'emms-setup)
+ '(progn
+ (require 'emms-setup)
+ (require 'emms-player-mpd)
- (emms-standard)
- (require 'emms-player-mpd)
+ (emms-standard)
- (setq emms-player-mpd-server-name "localhost")
- (setq emms-player-mpd-server-port "6600")
+ (add-to-list 'emms-info-functions 'emms-info-mpd)
+ (add-to-list 'emms-player-list 'emms-player-mpd)
- (add-to-list 'emms-info-functions 'emms-info-mpd)
- (add-to-list 'emms-player-list 'emms-player-mpd)
- (setq emms-player-mpd-music-directory "/mnt/music/mp3")))
+ (setq emms-player-mpd-server-name "localhost")
+ (setq emms-player-mpd-server-port "6600")
+ (setq emms-player-mpd-music-directory "/mnt/music/mp3")))
(eval-after-load "flymake"
'(progn
@@ -108,8 +110,8 @@
(eval-after-load "jabber"
'(remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo))
-(eval-after-load "mu4e"
- '(require 'mu4e-init))
+(eval-after-load "newst-treeview"
+ '(require 'newsticker-init))
(eval-after-load "org"
'(require 'org-init))
@@ -157,7 +159,8 @@
(arglist-close . 0)
(inline-open . 0)
(brace-list-open . +)
- (topmost-intro-cont first c-lineup-topmost-intro-cont c-lineup-gnu-DEFUN-intro-cont)))
+ (topmost-intro-cont first c-lineup-topmost-intro-cont
+ c-lineup-gnu-DEFUN-intro-cont)))
(setq comment-auto-fill-only-comments t)
(setq custom-file "~/.emacs.d/custom.el")
(setq custom-theme-directory "~/.emacs.d/themes")
@@ -167,7 +170,7 @@
(vertical-scroll-bars . nil)
(menu-bar-lines . nil)
(tool-bar-lines . nil)
- (font . "Monaco:pixelsize=16")))
+ (font . "monaco-12")))
(setq emms-source-file-default-directory "/mnt/music/")
(setq erc-autojoin-channels-alist
'(("freenode.net" "#ninthfloor" "#emacs" "#dispass")))
@@ -209,6 +212,8 @@
"line too long"
"at least two spaces before inline comment"
"trailing whitespace"
+ "imported but unused"
+ "Unused import"
"too many blank lines"))))
(setq flymake-log-file-name (expand-file-name "~/.emacs.d/flymake.log"))
(setq flymake-log-level 0)
@@ -216,7 +221,6 @@
(eval-when-compile
(regexp-opt '("warning"
"Warning"
- "imported but unused"
"redefinition of unused"
"Redefining built-in"
"Redefining name"
@@ -284,8 +288,10 @@
(setq use-dialog-box nil)
(setq user-full-name "Tom Willemsen")
(setq user-mail-address "tom@ryuslash.org")
+(setq w3m-fill-column 72)
(setq window-combination-resize t)
+(add-hook 'after-change-major-mode-hook 'set-current-mode-icon)
(add-hook 'after-save-hook 'oni:after-save-func t)
(add-hook 'before-save-hook 'oni:before-save-func)
(add-hook 'c-mode-hook 'oni:c-mode-func)
@@ -316,6 +322,7 @@
(add-hook 'term-mode-hook 'oni:term-mode-func)
(add-hook 'texinfo-mode-hook 'oni:texinfo-mode-func)
(add-hook 'write-file-hooks 'oni:write-file-func)
+(add-hook 'yas-minor-mode-hook 'oni:yas-minor-mode-func)
(global-set-key (kbd "'") 'oni:self-insert-dwim)
(global-set-key (kbd "<XF86AudioNext>") 'emms-next)
@@ -359,7 +366,8 @@
(add-to-list 'auto-mode-alist '("\\.jl$" . sawfish-mode))
(add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . js2-mode))
-(add-to-list 'auto-mode-alist '("\\.m\\(ark\\)?d\\(?:o?wn\\)?$" . markdown-mode))
+(add-to-list 'auto-mode-alist
+ '("\\.m\\(ark\\)?d\\(?:o?wn\\)?$" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.php[345]?$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.po\\'\\|\\.po\\." . po-mode))
(add-to-list 'auto-mode-alist '("\\.tpl$" . html-mode))
@@ -371,10 +379,12 @@
(add-to-list 'debug-ignored-errors "^Can't shift all lines enough")
-(add-to-list 'display-buffer-alist
- '("^\\*magit: .*\\*$" . ((display-buffer-same-window . nil))))
-(add-to-list 'display-buffer-alist
- '("^\\*git-project-list\\*$" . ((git-project-show-window . nil))))
+(add-to-list
+ 'display-buffer-alist
+ '(".*" . ((display-buffer-same-window . nil))))
+(add-to-list
+ 'display-buffer-alist
+ '("^\\*git-project-list\\*$" . ((git-project-show-window . nil))))
(delete " " mode-line-format)
diff --git a/.emacs.d/site-lisp/Makefile b/.emacs.d/site-lisp/Makefile
new file mode 100644
index 0000000..bbccbb7
--- /dev/null
+++ b/.emacs.d/site-lisp/Makefile
@@ -0,0 +1,7 @@
+DESTDIR:=$(DESTDIR)/site-lisp
+objects=dzen.elc dzen.el eltuki.elc eltuki.el ext.elc ext.el \
+ metalexpress.elc metalexpress.el mu4e-init.elc mu4e-init.el \
+ newsticker-init.elc newsticker-init.el oni.elc oni.el org-init.elc \
+ org-init.el quick-edit-mode.elc quick-edit-mode.el
+
+include ../../dotfiles.mk
diff --git a/.emacs.d/site-lisp/dzen.el b/.emacs.d/site-lisp/dzen.el
new file mode 100644
index 0000000..a28418b
--- /dev/null
+++ b/.emacs.d/site-lisp/dzen.el
@@ -0,0 +1,61 @@
+;;; dzen.el --- Control DZEN2 from emacs
+
+;; Copyright (C) 2012 Tom Willemsen
+
+;; Author: Tom Willemsen <slash@drd>
+;; Keywords: convenience
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'newst-backend)
+(require 'sawfish)
+
+(defun get-mail-count (account)
+ (length (directory-files (concat "/home/slash/documents/mail/"
+ account "/inbox/new") nil "^[^.]")))
+
+(defun dzen-start ()
+ (interactive)
+ (let ((proc (start-process "dzen2" "*dzen2*" "dzen2"
+ "-w" "1920"
+ "-fn" "Monaco-12"
+ "-bg" "#222224"
+ "-fg" "#eeeeec"))
+ (strl (format
+ "%s"
+ (sawfish-eval-expression '(window-name (input-focus)))))
+ (strr (format
+ "jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n"
+ (oni:current-jabber-status)
+ (get-mail-count "ryuslash.org")
+ (get-mail-count "gmail")
+ (get-mail-count "aethon")
+ (get-mail-count "ninthfloor")
+ (newsticker--stat-num-items-total 'new))))
+ (process-send-string
+ proc (format "^p(_LEFT)%s^p(_RIGHT)^p(-%d)%s"
+ strl (+ 9 (* 9 (length strr))) strr))))
+
+(defun dzen-stop ()
+ (interactive)
+ (kill-process "dzen2"))
+
+(provide 'dzen)
+;;; dzen.el ends here
diff --git a/.emacs.d/site-lisp/metalexpress.el b/.emacs.d/site-lisp/metalexpress.el
index 9d57c19..2f77638 100644
--- a/.emacs.d/site-lisp/metalexpress.el
+++ b/.emacs.d/site-lisp/metalexpress.el
@@ -30,20 +30,50 @@
(defcustom metal-express-radio-playlist-url
"http://usa7-vn.mixstream.net/listen/8248.m3u"
- "The URL of the Metal Express Radio stream.")
+ "The URL of the Metal Express Radio stream."
+ :group 'metal-express-radio
+ :type 'string)
+
+(defcustom metal-express-radio-song-changed-hook nil
+ "Hook run when the currently playing song changes."
+ :type 'hook
+ :group 'metal-express-radio)
+
+(defvar metal-express-radio-currently-playing nil
+ "The currently playing song.")
+
+(defun mer-proc-filter (proc string)
+ (when (string-match "^ICY Info: StreamTitle='\\(.*\\)';StreamUrl='';"
+ string)
+ (setq metal-express-radio-currently-playing (match-string 1 string))
+ (apply 'run-hooks metal-express-radio-song-changed-hook)))
+
+(defun metal-express-radio-echo-currently-playing ()
+ (interactive)
+ (message metal-express-radio-currently-playing))
+
+(defun metal-express-radio-notify ()
+ (interactive)
+ (notifications-notify :title "Now playing:"
+ :body metal-express-radio-currently-playing))
;;;###autoload
(defun metal-express-radio-start ()
"Start listening to Metal Express Radio."
(interactive)
- (async-shell-command
- (concat "mplayer " metal-express-radio-playlist-url)
- "*Metal Express Radio*"))
+ (let ((proc (start-process "metalexpress" "*Metal Express Radio*"
+ "mplayer" metal-express-radio-playlist-url)))
+ (set-process-filter proc #'mer-proc-filter)))
(defun metal-express-radio-stop ()
"Stop listening to Metal Express Radio."
(interactive)
(kill-process (get-buffer-process "*Metal Express Radio*")))
+(add-hook 'metal-express-radio-song-changed-hook
+ 'metal-express-radio-echo-currently-playing)
+(add-hook 'metal-express-radio-song-changed-hook
+ 'metal-express-radio-notify)
+
(provide 'metalexpress)
;;; metalexpress.el ends here
diff --git a/.emacs.d/site-lisp/newsticker-init.el b/.emacs.d/site-lisp/newsticker-init.el
new file mode 100644
index 0000000..da166d1
--- /dev/null
+++ b/.emacs.d/site-lisp/newsticker-init.el
@@ -0,0 +1,101 @@
+(defmacro reddit-feed (name)
+ "Return a reddit feed url"
+ (concat "http://www.reddit.com/r/" name "/new/.rss?sort=new"))
+
+(setq newsticker-automatically-mark-items-as-old nil)
+(setq newsticker-html-renderer 'w3m-region)
+(setq newsticker-obsolete-item-max-age 604800)
+(setq newsticker-url-list
+ `(("Irreal"
+ "http://irreal.org/blog/?feed=rss2" nil nil nil)
+ ("Arch Linux - Keeping it Simple"
+ ,(reddit-feed "archlinux") nil nil nil)
+ ("The C programming language"
+ ,(reddit-feed "c_language") nil nil nil)
+ ("C"
+ ,(reddit-feed "C_Programming") nil nil nil)
+ ("coding"
+ ,(reddit-feed "coding") nil nil nil)
+ ("Command Line"
+ ,(reddit-feed "commandline") nil nil nil)
+ ("Django"
+ ,(reddit-feed "django") nil nil nil)
+ ("M-x emacs-reddit"
+ ,(reddit-feed "emacs") nil nil nil)
+ ("git"
+ ,(reddit-feed "git") nil nil nil)
+ ("JavaScript"
+ ,(reddit-feed "javascript") nil nil nil)
+ ("r/Linux"
+ ,(reddit-feed "linux") nil nil nil)
+ ("Linux Gaming on Reddit"
+ ,(reddit-feed "linux_gaming") nil nil nil)
+ ("Lisp"
+ ,(reddit-feed "lisp") nil nil nil)
+ ("Open Source on Reddit"
+ ,(reddit-feed "opensource") nil nil nil)
+ ("PHP: The latest news in the PHP world"
+ ,(reddit-feed "PHP") nil nil nil)
+ ("programming"
+ ,(reddit-feed "programming") nil nil nil)
+ ("Python"
+ ,(reddit-feed "Python") nil nil nil)
+ ("Scheme Programming Language articles"
+ ,(reddit-feed "scheme") nil nil nil)
+ ("The Wayland Display Server"
+ ,(reddit-feed "wayland") nil nil nil)
+ ("Identity at Mozilla"
+ "http://identity.mozilla.com/rss" nil nil nil)
+ ("jd:/dev/blog"
+ "http://julien.danjou.info/blog/index.xml" nil nil nil)
+ ("KaKaRoTo's Blog"
+ "http://kakaroto.homelinux.net/feed/" nil nil nil)
+ ("Awhan Patnaik"
+ "http://awhan.wordpress.com/feed/" nil nil nil)
+ ("The Gitorious Blog"
+ "http://blog.gitorious.org/feed/" nil nil nil)
+ ;; ("Dieter on the web"
+ ;; "http://dieter.plaetinck.be/index.rss" nil nil nil)
+ ("Public Git Hosting - conkeror.git/atom log"
+ "http://repo.or.cz/w/conkeror.git/atom" nil nil nil)
+ ("Stevey's Blog Rants"
+ "http://steve-yegge.blogspot.com/feeds/posts/default"
+ nil nil nil)
+ ("Script Tutorials"
+ "http://www.script-tutorials.com/feed/rss/" nil nil nil)
+ ("Hacker News"
+ "http://news.ycombinator.com/rss" nil nil nil)
+ ("HowtoForge - Linux Howtos and Tutorials -"
+ "http://www.howtoforge.com/node/feed" nil nil nil)
+ ("IBM developerWorks : Linux"
+ "http://www.ibm.com/developerworks/views/linux/rss/libraryview.jsp"
+ nil nil nil)
+ ("Linuxtoday.com"
+ "http://linuxtoday.com/backend/biglt.rss" nil nil nil)
+ ("Linux.com - Content Feed"
+ "http://linux.com/rss/feeds.php" nil nil nil)
+ ("TuxRadar feed"
+ "http://www.tuxradar.com/rss" nil nil nil)
+ ("Planet Emacsen"
+ "http://planet.emacsen.org/atom.xml" nil nil nil)
+ ("M-x all-things-emacs"
+ "http://emacsblog.org/feed/" nil nil nil)
+ ;; ("Xah Emacs Blog"
+ ;; "http://feeds.feedburner.com/XahsEmacsBlog" nil nil nil)
+ ;; ("Mastering Emacs"
+ ;; "http://www.masteringemacs.org/feed/" nil nil nil)
+ ("WikEmacs - Recent changes [en]"
+ "http://wikemacs.org/w/index.php?title=Special:RecentChanges&feed=atom"
+ nil nil nil)
+ ("newest questions tagged emacs - Stack Overflow"
+ "http://stackoverflow.com/feeds/tag?tagnames=emacs&sort=newest"
+ nil nil nil)
+ ("newest questions tagged elisp - Stack Overflow"
+ "http://stackoverflow.com/feeds/tag?tagnames=elisp&sort=newest"
+ nil nil nil)
+ ("Recent Commits to python-django.el:master"
+ "https://github.com/fgallina/python-django.el/commits/master.atom"
+ nil nil nil)))
+(setq newsticker-use-full-width nil)
+
+(provide 'newsticker-init)
diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el
index 251dca2..376c996 100644
--- a/.emacs.d/site-lisp/oni.el
+++ b/.emacs.d/site-lisp/oni.el
@@ -58,11 +58,9 @@ DOT are intentionally being skipped."
"A mailbox map for use with `tmm-prompt'.")
(defvar oni:required-packages
- '(graphviz-dot-mode htmlize magit rainbow-delimiters
- rainbow-mode markdown-mode flymake
- flymake-cursor pony-mode sauron dispass
- expand-region fill-column-indicator
- git-auto-commit-mode idomenu magit smex)
+ '(graphviz-dot-mode htmlize magit rainbow-delimiters rainbow-mode
+ yasnippet markdown-mode flymake flymake-cursor sauron expand-region
+ fill-column-indicator git-auto-commit-mode idomenu magit smex)
"List of all the packages I have (want) installed.")
(defun oni:after-save-func ()
@@ -71,7 +69,8 @@ DOT are intentionally being skipped."
(executable-make-buffer-file-executable-if-script-p)
(let ((dom-dir (locate-dominating-file (buffer-file-name) "Makefile")))
(when dom-dir
- (shell-command (concat "make -C " dom-dir " TAGS >/dev/null 2>&1")))))
+ (shell-command
+ (concat "make -C " dom-dir " TAGS >/dev/null 2>&1")))))
(defun oni:before-save-func ()
"Function for `before-save-hook'."
@@ -104,6 +103,13 @@ DOT are intentionally being skipped."
(local-set-key "\C-j" 'oni:newline-and-indent)
(rainbow-mode))
+(defun oni:current-jabber-status ()
+ "Return a string representing the current jabber status."
+ (or (and (not *jabber-connected*) "Offline")
+ (and (not (string= *jabber-current-status* ""))
+ *jabber-current-status*)
+ "Online"))
+
(defun oni:diary-display-func ()
"Function for `diary-display-hook'."
(diary-fancy-display))
@@ -227,7 +233,8 @@ If COUNT has been specified indent by that much, otherwise look at
(visual-line-mode)
(setq mode-line-format (append (cddr jabber-chat-header-line-format)
'(global-mode-string))
- header-line-format nil))
+ header-line-format nil
+ wrap-prefix (make-string 8 ?\ )))
(defun oni:jabber-roster-mode-func ()
"Function for `jabber-roster-mode-hook'."
@@ -277,7 +284,7 @@ If COUNT has been specified indent by that much, otherwise look at
to add yasnippet's expand function to hippie-expand."
(require other)
(add-to-list 'hippie-expand-try-functions-list
- 'yas/hippie-try-expand))
+ 'yas/hippie-try-expand t))
(defun oni:lua-mode-func()
"Function for `lua-mode-hook'."
@@ -607,6 +614,11 @@ for easy selection."
"Function for `write-file-hooks'."
(time-stamp))
+(defun oni:yas-minor-mode-func ()
+ "Function for `yas-minor-mode-hook'."
+ (define-key yas-minor-mode-map (kbd "TAB") nil)
+ (define-key yas-minor-mode-map [(tab)] nil))
+
(define-skeleton html-tag
"Testing creation of an html tag"
"Tagname:"
diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el
index 6f28432..3bacaad 100644
--- a/.emacs.d/site-lisp/org-init.el
+++ b/.emacs.d/site-lisp/org-init.el
@@ -34,24 +34,13 @@
'(org-crypt-use-before-save-magic))
(setq org-agenda-custom-commands
- '(("pa" "Avandu" tags-todo "slug=\"avandu\"")
- ("pb" "Blog" tags-todo "slug=\"blog\"")
- ("pc" "Configuration" tags-todo "slug=\"configuration\"")
- ("pd" "dispass.el" tags-todo "slug=\"dispass.el\"")
- ("pD" "DVDroid" tags-todo "slug=\"dvdroid\"")
- ("pe" "Eye on Manga" tags-todo "slug=\"eye-on-manga\"")
- ("pG" "gDisPass" tags-todo "slug=\"gdispass\"")
- ("pg" "gitto" tags-todo "slug=\"gitto\"")
- ("pi" "Ideas" tags-todo "slug=\"ideas\"")
- ("pM" "Maintenance" tags-todo "slug=\"maintenance\"")
- ("pme" "Metal Express Radio.el" tags-todo
- "slug=\"metal-express-radio.el\"")
- ("pmo" "Mode Icons" tags-todo "slug=\"mode-icons\"")
- ("pmy1" "myAethon" tags-todo "slug=\"myaethon\"")
- ("pmy2" "myAethon2" tags-todo "slug=\"myaethon2\"")
- ("ps" "Sawfish Naquadah theme" tags-todo
- "slug=\"sawfish-naquadah-theme\"")
- ("w" "Work todo." tags-todo "work")))
+ '(("w" "Work todo." tags-todo "work")))
+(setq org-agenda-prefix-format
+ '((agenda . " %i %-12:c%?-12t% s")
+ (timeline . " % s")
+ (todo . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ")
+ (tags . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ")
+ (search . " %i %-12:c")))
(setq org-agenda-sorting-strategy
'((agenda habit-down time-up priority-down category-keep)
(todo priority-down category-keep)
@@ -61,22 +50,8 @@
(setq org-capture-templates
'(("t" "Task" entry (file "~/documents/org/tasks")
"* TODO %?")
- ("h" "Habit" entry (file "")
- (concat "* TODO %^{Description}\n"
- " SCHEDULED: %^T\n"
- " :PROPERTIES:\n"
- " :STYLE: habit\n"
- " :END:")
- :immediate-finish t)
- ("l" "Log" entry (file+headline "" "notes")
- (concat "* %n %<%d-%m-%Y %H:%M:%S>\n"
- " %a\n\n"
- " %?")
- :prepend t :empty-lines 1)
- ("a" "Appointment" entry (file+headline "" "appointments")
- "* %^{Description} %^T" :immediate-finish t)
- ("b" "Bookmark" entry (file "~/documents/org/misc/bookmarks.org")
- "* %c\n\n %:initial")))
+ ("T" "Linked task" entry (file "~/documents/org/tasks")
+ "* TODO %?\n\n %a")))
(setq org-contacts-files '("~/documents/org/misc/contacts.org"))
(setq org-directory (expand-file-name "~/documents/org"))
(setq org-agenda-files
@@ -85,6 +60,7 @@
,(concat org-directory "/misc/contacts.org")
,(concat org-directory "/misc/bookmarks.org"))
org-agenda-files))
+(setq org-agenda-show-outline-path nil)
(setq org-agenda-todo-ignore-deadlines 'far)
(setq org-agenda-todo-ignore-scheduled t)
(setq org-default-notes-file (concat org-directory "/org"))
diff --git a/.emacs.d/snippets/Makefile b/.emacs.d/snippets/Makefile
new file mode 100644
index 0000000..20d79e0
--- /dev/null
+++ b/.emacs.d/snippets/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/snippets
+modules=html-mode org-mode
+
+include ../../dotfiles.mk
diff --git a/.emacs.d/snippets/html-mode/Makefile b/.emacs.d/snippets/html-mode/Makefile
new file mode 100644
index 0000000..b2dff78
--- /dev/null
+++ b/.emacs.d/snippets/html-mode/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/html-mode
+objects=for generic-block
+
+include ../../../dotfiles.mk
diff --git a/.emacs.d/snippets/org-mode/Makefile b/.emacs.d/snippets/org-mode/Makefile
new file mode 100644
index 0000000..e913708
--- /dev/null
+++ b/.emacs.d/snippets/org-mode/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/org-mode
+objects=codeblock heading
+
+include ../../../dotfiles.mk
diff --git a/.emacs.d/themes/yoshi-theme.el b/.emacs.d/themes/yoshi-theme.el
deleted file mode 100644
index 39f35f5..0000000
--- a/.emacs.d/themes/yoshi-theme.el
+++ /dev/null
@@ -1,91 +0,0 @@
-;;; yoshi-theme.el --- Theme named after my cat
-
-;; Copyright (C) 2012 Tom Willemsen
-
-;; Author: Tom Willemsen <slash@drd>
-;; Keywords: faces
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; Just a theme named after my cat. He doesn't actually look like
-;; this.
-
-;;; Code:
-
-(deftheme yoshi
- "Created 2012-09-24")
-
-(custom-theme-set-faces
- 'yoshi
- '(default ((t (:background "#111113" :foreground "#eeeeec"))))
- '(flymake-errline ((t (:background nil :underline (:color "#ff756e" :style wave)))))
- '(flymake-infoline ((t (:background nil :underline (:color "#78a2c1" :style wave)))))
- '(flymake-warnline ((t (:background nil :underline (:color "#ffbb56" :style wave)))))
- '(flyspell-duplicate ((t (:underline (:color "#ffbb56" :style wave)))))
- '(flyspell-incorrect ((t (:underline (:color "#ff756e" :style wave)))))
- '(font-lock-comment-delimiter-face ((t (:foreground "#a9a9a9" :slant italic :weight bold))))
- '(font-lock-comment-face ((t (:foreground "#a9a9a9" :slant italic))))
- '(font-lock-constant-face ((t (:foreground "#93d8d8"))))
- '(font-lock-doc-face ((t (:foreground "#9ad870"))))
- '(font-lock-function-name-face ((t (:foreground "#78a2c1"))))
- '(font-lock-keyword-face ((t (:foreground "#cfce29"))))
- '(font-lock-string-face ((t (:foreground "#ffbd5c"))))
- '(font-lock-type-face ((t (:foreground "#78a2c1" :bold t))))
- '(font-lock-variable-name-face ((t (:foreground "#c39cc3"))))
- '(highlight ((t (:background "#171719"))))
- '(ido-subdir ((t (:foreground "#ff756e"))))
- '(italic ((t (:slant italic))))
- '(jabber-chat-prompt-foreign ((t (:foreground "#ff756e"))))
- '(jabber-chat-prompt-local ((t (:foreground "#78a2c1"))))
- '(jabber-roster-user-online ((t (:foreground "#769ff2"))))
- '(link ((t (:foreground "#ffbb56" :underline t))))
- '(magit-item-highlight ((t (:weight bold))))
- '(markdown-header-face-1 ((t (:height 1.5 :foreground "#78a2c1"))))
- '(markdown-header-face-2 ((t (:height 1.4 :foreground "#93d8d8"))))
- '(markdown-header-face-3 ((t (:height 1.3 :foreground "#9ad870"))))
- '(markdown-header-face-4 ((t (:height 1.2 :foreground "#c39cc3"))))
- '(markdown-header-face-5 ((t (:height 1.1 :foreground "#ff756e"))))
- '(markdown-header-face-6 ((t (:height 1.0 :foreground "#a9a9a9"))))
- '(minibuffer-prompt ((t (:foreground "#78a2c1"))))
- '(mode-line ((t (:background "#222224" :foreground "#eeeeec" :box nil))))
- '(mode-line-inactive ((t (:background "#171719" :foreground "#999999" :box nil))))
- '(org-level-1 ((t (:height 1.5 :foreground "#78a2c1"))))
- '(org-level-2 ((t (:height 1.4 :foreground "#93d8d8"))))
- '(org-level-3 ((t (:height 1.3 :foreground "#9ad870"))))
- '(org-level-4 ((t (:height 1.2 :foreground "#c39cc3"))))
- '(org-level-5 ((t (:height 1.1 :foreground "#ff756e"))))
- '(org-level-6 ((t (:height 1.0 :foreground "#a9a9a9"))))
- '(org-level-7 ((t (:height 1.0 :foreground "#ffbb56"))))
- '(org-level-8 ((t (:height 1.0 :foreground "#999999"))))
- '(region ((t (:background "#2729b6"))))
- '(rst-level-1 ((t (:height 1.5 :background nil))))
- '(rst-level-2 ((t (:height 1.4 :background nil))))
- '(rst-level-3 ((t (:height 1.3 :background nil))))
- '(rst-level-4 ((t (:height 1.2 :background nil))))
- '(rst-level-5 ((t (:height 1.1 :background nil))))
- '(rst-level-6 ((t (:height 1.0 :background nil))))
- '(term-color-black ((t (:background "#171719" :foreground "#999999"))))
- '(term-color-blue ((t (:background "#2729b6" :foreground "#78a2c1"))))
- '(term-color-cyan ((t (:background "#208181" :foreground "#93d8d8"))))
- '(term-color-green ((t (:background "#405c2e" :foreground "#9ad870"))))
- '(term-color-magenta ((t (:background "#5e325d" :foreground "#c39cc3"))))
- '(term-color-red ((t (:background "#973732" :foreground "#ff756e"))))
- '(term-color-white ((t (:background "#222224" :foreground "#a9a9a9"))))
- '(term-color-yellow ((t (:background "#835c0e" :foreground "#ffbb56"))))
- )
-
-(provide-theme 'yoshi)
-;;; yoshi-theme.el ends here
diff --git a/.gitignore b/.gitignore
index 18ca469..e69de29 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,118 +0,0 @@
-# -*- eval: (git-auto-commit-mode 1) -*-
-*.dat
-*.elc
-*.gpg
-*.log
-*.png
-*.pyc
-*.xml
-*\#*
-*history*
-*session.*
-*~
-.VirtualBox/
-.Xauthority
-.aMule/
-.abook/
-.annot/
-.appcfg_nag
-.arch-params/
-.bbdb
-.cache/
-.commitmsg
-.commitmsg.texi
-.conkeror.mozdev.org/
-.cups/
-.dbus/
-.dia/
-.dmenu_cache
-.dvdcss/
-.easytag/
-.emacs-jabber/
-.face
-.filezilla/
-.fltk/
-.fontconfig/
-.fonts/
-.freedroid_rpg/
-.gconfd/
-.gimp*
-.gitk
-.gnash/
-.gnofract4d
-.gnupg
-.gnuzilla/
-.gstreamer-0.10/
-.gtk-bookmarks
-.gtkrc*
-.htoprc
-.icedteaplugin/
-.icons/
-.ido.last
-.jabber-avatars/
-.kobodlrc
-.lesshst
-.links/
-.local/
-.lyrics/
-.mozilla
-.mpdscribble
-.muttdebug?
-.netrc
-.offlineimap/
-.pki/
-.pulse-cookie
-.pulse/
-.purple/
-.recently-used
-.sane
-.scummvm*
-.slocdata/
-.subversion/
-.teamviewer/
-.themes
-.todo-*
-.toudou
-.tramp_history
-.type-break
-.viminfo
-.weechat/
-.xine/
-.zcompdump
-.zsnes/
-News/
-auto-save-list
-bin/
-code/
-documents/
-downloads/
-feeds
-fetchlog
-local_*
-log
-music/
-org/
-pictures/
-public_html
-tmp/
-usr/
-var/
-xhtml-loader.rnc
-.unison/
-.pencil/
-.cuyo
-.lgames
-.beetsmusic.blb
-.beetsstate
-.msmtprc
-.newsrc*
-.profile
-.xsession_errors
-Mail/
-.diaspora/
-.mu/
-.org-timestamps/
-.virtualenv/
-.PlaneShift/
-.android/
-.nv/
diff --git a/.local/Makefile b/.local/Makefile
new file mode 100644
index 0000000..4b1a1cf
--- /dev/null
+++ b/.local/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.local
+modules=share
+
+include ../dotfiles.mk
diff --git a/.local/share/Makefile b/.local/share/Makefile
new file mode 100644
index 0000000..c06880a
--- /dev/null
+++ b/.local/share/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/share
+modules=applications
+
+include ../../dotfiles.mk
diff --git a/.local/share/applications/Makefile b/.local/share/applications/Makefile
new file mode 100644
index 0000000..3d2ca22
--- /dev/null
+++ b/.local/share/applications/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/applications
+objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
+
+include ../../../dotfiles.mk
diff --git a/.moc/Makefile b/.moc/Makefile
new file mode 100644
index 0000000..5eb4fa2
--- /dev/null
+++ b/.moc/Makefile
@@ -0,0 +1,5 @@
+DESTDIR:=$(DESTDIR)/.moc
+modules=themes
+objects=config
+
+include ../dotfiles.mk
diff --git a/.moc/themes/Makefile b/.moc/themes/Makefile
new file mode 100644
index 0000000..fd61c62
--- /dev/null
+++ b/.moc/themes/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/themes
+objects=custom
+
+include ../../dotfiles.mk
diff --git a/.mutt/Makefile b/.mutt/Makefile
new file mode 100644
index 0000000..d1e65d1
--- /dev/null
+++ b/.mutt/Makefile
@@ -0,0 +1,6 @@
+DESTDIR:=$(DESTDIR)/.mutt
+objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
+ iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
+ ryuslash.org.muttrc sig
+
+include ../dotfiles.mk
diff --git a/.ncmpcpp/Makefile b/.ncmpcpp/Makefile
new file mode 100644
index 0000000..728f643
--- /dev/null
+++ b/.ncmpcpp/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.ncmpcpp
+objects=config
+
+include ../dotfiles.mk
diff --git a/.pentadactyl/Makefile b/.pentadactyl/Makefile
new file mode 100644
index 0000000..e0640d2
--- /dev/null
+++ b/.pentadactyl/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.pentadactyl
+modules=plugins
+
+include ../dotfiles.mk
diff --git a/.pentadactyl/plugins/Makefile b/.pentadactyl/plugins/Makefile
new file mode 100644
index 0000000..8ed9478
--- /dev/null
+++ b/.pentadactyl/plugins/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/plugins
+objects=emacs.penta
+
+include ../../dotfiles.mk
diff --git a/.sawfish/Makefile b/.sawfish/Makefile
new file mode 100644
index 0000000..b680366
--- /dev/null
+++ b/.sawfish/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.sawfish
+objects=rc
+
+include ../dotfiles.mk
diff --git a/.sawfish/rc b/.sawfish/rc
index 684ce1d..cfb3a16 100644
--- a/.sawfish/rc
+++ b/.sawfish/rc
@@ -2,11 +2,12 @@
(require 'rep.regexp)
(require 'sawfish.wm.commands.grow-pack)
(require 'sawfish.wm.commands.shrink-yank)
+(require 'sawfish.wm.commands.x-cycle)
(require 'sawfish.wm.ext.match-window)
(require 'sawfish.wm.util.display-window)
(require 'sawfish.wm.util.prompt)
(require 'sawfish.wm.util.window-order)
-(require 'sawfish.wm.commands.x-cycle)
+(require 'sawfish.wm.util.stacking)
(define oni:window-packing-keymap (make-keymap))
(define oni:window-growing-keymap (make-keymap))
@@ -60,7 +61,10 @@ raise it."
(if w (display-window w)
(call-command `(run-shell-command ,command)))))
+(setq custom-show-symbols t)
(setq default-frame-style 'naquadah)
+(setq default-font (get-font-typed "Xft" "Monaco-10"))
+(setq grow-is-maximize nil)
(setq prompt-color (cons (get-color "#eeeeec")
(get-color "#111113")))
(setq user-apps-menu
@@ -115,23 +119,39 @@ raise it."
;; (ungrab-keymap global-keymap)
(bind-keys
global-keymap
- "Super-!" '(run-shell-command (prompt-for-string "Run: "))
"C-M-l" '(run-shell-command "i3lock -c \"#000000\"")
- "Super-e" '(oni:run-or-raise (getenv "EDITOR") #:class "Emacs")
+ "C-Super-B" 'shrink-window-left
+ "C-Super-F" 'shrink-window-right
+ "C-Super-N" 'shrink-window-down
+ "C-Super-P" 'shrink-window-up
+ "C-Super-TAB" 'cycle-class
+ "C-Super-`" 'popup-window-menu
+ "C-Super-b" 'grow-window-left
+ "C-Super-f" 'grow-window-right
+ "C-Super-n" 'grow-window-down
+ "C-Super-p" 'grow-window-up
+ "Menu" 'popup-root-menu
+ "Super-!" '(run-shell-command (prompt-for-string "Run: "))
+ "Super-:" 'call-command
+ "Super-B" 'yank-window-left
+ "Super-C" '(run-shell-command "urxvt")
"Super-E" '(run-shell-command (getenv "EDITOR"))
- "Super-w" '(oni:run-or-raise (getenv "BROWSER") #:class "Conkeror")
+ "Super-F" 'yank-window-right
+ "Super-M" 'maximize-window-toggle
+ "Super-N" 'yank-window-down
+ "Super-P" 'yank-window-up
+ "Super-TAB" 'cycle-windows
"Super-W" '(run-shell-command (getenv "BROWSER"))
+ "Super-`" 'popup-root-menu
+ "Super-b" 'pack-window-left
"Super-c" '(oni:run-or-raise "urxvt" #:class "URxvt")
- "Super-C" '(run-shell-command "urxvt")
- "Super-TAB" 'cycle-windows
- "C-Super-TAB" 'cycle-class
- "Super-x" oni:extended-keymap
+ "Super-e" '(oni:run-or-raise (getenv "EDITOR") #:class "Emacs")
"Super-f" 'pack-window-right
- "Super-b" 'pack-window-left
"Super-n" 'pack-window-down
"Super-p" 'pack-window-up
- "Menu" 'popup-root-menu
- "Super-M" 'maximize-window-toggle)
+ "Super-w" '(oni:run-or-raise (getenv "BROWSER") #:class "Conkeror")
+ "Super-x" oni:extended-keymap
+ )
;; (grab-keymap global-keymap)
(add-window-matcher '((WM_CLASS . "^(Firefox|Conkeror)/Navigator$"))
diff --git a/.ssh/.gitignore b/.ssh/.gitignore
index f6b1e46..e69de29 100644
--- a/.ssh/.gitignore
+++ b/.ssh/.gitignore
@@ -1,4 +0,0 @@
-# -*- eval: (git-auto-commit-mode 1) -*-
-*
-!config
-!.gitignore
diff --git a/.ssh/Makefile b/.ssh/Makefile
new file mode 100644
index 0000000..2461e6c
--- /dev/null
+++ b/.ssh/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.ssh
+objects=config
+
+include ../dotfiles.mk
diff --git a/.w3m/Makefile b/.w3m/Makefile
new file mode 100644
index 0000000..85d09d5
--- /dev/null
+++ b/.w3m/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.w3m
+objects=config
+
+include ../dotfiles.mk
diff --git a/.weechat/Makefile b/.weechat/Makefile
new file mode 100644
index 0000000..8a0618a
--- /dev/null
+++ b/.weechat/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.weechat
+objects=alias.conf irc.conf weechat.conf
+
+include ../dotfiles.mk
diff --git a/.zsh/Makefile b/.zsh/Makefile
new file mode 100644
index 0000000..077367e
--- /dev/null
+++ b/.zsh/Makefile
@@ -0,0 +1,4 @@
+DESTDIR:=$(DESTDIR)/.zsh
+modules=functions
+
+include ../dotfiles.mk
diff --git a/.zsh/functions/Makefile b/.zsh/functions/Makefile
new file mode 100644
index 0000000..670c57c
--- /dev/null
+++ b/.zsh/functions/Makefile
@@ -0,0 +1,7 @@
+DESTDIR:=$(DESTDIR)/functions
+objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
+ precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
+ preexec_update_vars prompt prompt_git_info rprompt \
+ update_current_git_vars welcome
+
+include ../../dotfiles.mk
diff --git a/.zsh/functions/precmd_maybe_festival b/.zsh/functions/precmd_maybe_festival
new file mode 100644
index 0000000..3f8baa3
--- /dev/null
+++ b/.zsh/functions/precmd_maybe_festival
@@ -0,0 +1,15 @@
+cmdstatus=$?
+
+if [ -n "$__COMMAND_EXECUTING" -a $__COMMAND_EXECUTING -gt 0 \
+ -a -n "$__COMMAND_EXEC_TIME" ]; then
+ __COMMAND_EXECUTING=0
+ duration=$(expr $(date +%s) - $__COMMAND_EXEC_TIME)
+
+ if [ $duration -gt 30 ]; then
+ if [ $cmdstatus -eq 0 ]; then
+ echo "done" | festival --tts
+ else
+ echo "failed" | festival --tts
+ fi
+ fi
+fi
diff --git a/.zsh/functions/preexec_update_vars b/.zsh/functions/preexec_update_vars
index 105d240..f8c1b44 100644
--- a/.zsh/functions/preexec_update_vars
+++ b/.zsh/functions/preexec_update_vars
@@ -11,3 +11,6 @@ case "$1" in
__EXECUTED_PACMAN_COMMAND=1
;;
esac
+
+__COMMAND_EXEC_TIME=$(date +%s)
+__COMMAND_EXECUTING=1
diff --git a/.zshrc b/.zshrc
index 1a166e5..bc94c2e 100644
--- a/.zshrc
+++ b/.zshrc
@@ -1,4 +1,13 @@
# -*- Mode: shell-script; -*-
+autoload -Uz add-zsh-hook
+autoload -Uz compinit
+autoload -U colors
+autoload -Uz vcs_info
+
+# Autoload zsh functions.
+fpath=($HOME/.zsh/functions $fpath)
+autoload -U $HOME/.zsh/functions/*(:t)
+
# Setup variables
HISTFILE=$ZDOTDIR/histfile
HISTSIZE=1000
@@ -25,37 +34,34 @@ alias reboot="systemctl reboot"
alias poweroff="systemctl poweroff"
setopt notify
-# Allow for functions in the prompt
-setopt PROMPT_SUBST
+setopt PROMPT_SUBST # Allow for functions in the prompt
setopt EXTENDED_GLOB
zstyle :compinstall filename '$HOME/.zshrc'
-autoload -Uz compinit
-compinit
-
-# Initialize colors.
-autoload -U colors
-colors
-
-# Autoload zsh functions.
-fpath=($HOME/.zsh/functions $fpath)
-autoload -U $HOME/.zsh/functions/*(:t)
-
# Enable auto-execution of functions
typeset -ga preexec_functions
typeset -ga precmd_functions
typeset -ga chpwd_functions
-# Append git functions needed for prompt.
-preexec_functions+='preexec_update_vars'
-precmd_functions+='precmd_update_git_vars'
-precmd_functions+='precmd_update_updates'
-chpwd_functions+='chpwd_update_git_vars'
+add-zsh-hook preexec preexec_update_vars
+add-zsh-hook precmd precmd_update_git_vars
+add-zsh-hook precmd precmd_update_updates
+add-zsh-hook precmd precmd_maybe_festival
+add-zsh-hook precmd vcs_info
+add-zsh-hook chpwd chpwd_update_git_vars
+
+zstyle ':vcs_info:*' actionformats '%F{2}(%f%s %r %b%F{2})%f %a
+ %S'
+zstyle ':vcs_info:*' enable bzr git hg svn
+zstyle ':vcs_info:*' formats '%F{2}(%f%s %r %b%F{2})%f
+ %S'
+zstyle ':vcs_info:*' nvcsformats '
+ %~'
+zstyle ':vcs_info:bzr:*' branchformat '%b'
# Set the prompt.
-PROMPT='$(prompt)'
-RPROMPT='$(rprompt)'
+PROMPT='%F{1}(%F{2}(%f%m %l%F{2})%f ${vcs_info_msg_0_}%F{1})%f %# '
# Set terminal name to current running application
case $TERM in
@@ -97,3 +103,6 @@ if [ -z $EMACS ]; then
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
fi
+
+compinit
+colors # Initialize colors.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ec793cd
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,9 @@
+export DESTDIR:=$(HOME)
+modules=.emacs.d .config .conkerorrc .local .moc .mutt .ncmpcpp \
+ .pentadactyl .sawfish .ssh .w3m .weechat .zsh
+objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \
+ .guile .hgrc .offlineimap.py .offlineimaprc .screenrc .scwmrc \
+ .slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \
+ .xinitrc .Xmodmap .xsession .zprofile .zshrc
+
+include dotfiles.mk
diff --git a/dotfiles.mk b/dotfiles.mk
new file mode 100644
index 0000000..6d33f72
--- /dev/null
+++ b/dotfiles.mk
@@ -0,0 +1,55 @@
+LOAD_PATH=. /usr/share/emacs/site-lisp $(HOME)/.emacs.d/site-lisp
+EMACS=emacs $(addprefix -L ,$(LOAD_PATH))
+
+FG_YEL=\033[0;33m
+FG_GRE=\033[0;32m
+FG_RED=\033[0;31m
+CLR_RE=\033[0;00m
+
+compile = $(EMACS) -Q -batch -eval "(byte-compile-file \"$(1)\")"
+define newer =
+$(shell if [ "$(1)" -nt "$(DESTDIR)/$(1)" ]; then echo "newer"; fi)
+endef
+
+install-objects=$(addprefix install-,$(objects))
+uninstall-objects=$(addprefix uninstall-,$(objects))
+check-objects=$(addprefix check-,$(objects))
+
+install-modules=$(addprefix install-,$(modules))
+uninstall-modules=$(addprefix uninstall-,$(modules))
+check-modules=$(addprefix check-,$(modules))
+
+.PHONY: all install uninstall check uninstall $(modules) \
+ $(install-objects) $(uninstall-objects) $(check-objects) \
+ $(install-modules) $(uninstall-modules) $(check-modules)
+all: $(modules) $(objects)
+install: $(install-modules) $(install-objects)
+check: $(check-modules) $(check-objects)
+uninstall: $(uninstall-modules) $(uninstall-objects)
+
+$(modules): %:
+ @echo $(MAKEFILES)
+ @$(MAKE) -C $*
+
+$(install-objects): install-%: %
+ $(if $(call newer,$*),install -pDm 644 "$*" "$(DESTDIR)/$*")
+
+$(install-modules): install-%:
+ @$(MAKE) -C $* install
+
+$(uninstall-objects): uninstall-%:
+ $(if $(call newer,$*),rm -f "$(DESTDIR)/$*")
+
+$(uninstall-modules): uninstall-%:
+ @$(MAKE) -C $* uninstall
+
+$(check-objects): check-%:
+ @$(if $(call newer,$*), \
+ echo -e "$(FG_YEL)$* $(FG_GRE)newer$(CLR_RE)!", \
+ echo -e "$(FG_YEL)$* $(FG_RED)not newer$(CLR_RE).")
+
+$(check-modules): check-%:
+ @$(MAKE) -C $* check
+
+$(filter %.elc,$(objects)): %.elc: %.el
+ $(call compile,$^)