From 5014e72d7ef211ff295e3564dcdceb26162b1dcf Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 4 Jan 2013 01:33:09 +0100 Subject: Emacs: move some stuff to init.org --- .emacs.d/init.el | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index cd9c9b5..62d5b41 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -8,28 +8,6 @@ (load (concat user-emacs-directory "init2")) -(define-key key-translation-map (kbd "C-j") (kbd "C-l")) -(define-key key-translation-map (kbd "C-l") (kbd "C-j")) - -(defalias 'yes-or-no-p 'y-or-n-p) -(defalias 'list-buffers 'ibuffer) -(defalias 'dabbrev-expand 'hippie-expand) - -(defface git-commit-summary-face - '((t (:inherit org-level-1))) - "Face for the git title line." - :group 'local) - -(defface git-commit-overlong-summary-face - '((t (:background "#873732"))) - "Face for commit titles that are too long." - :group 'local) - -(defface git-commit-nonempty-second-line-face - '((t (:inherit git-commit-overlong-summary-face))) - "Face for the supposedly empty line in commit messages." - :group 'local) - (eval-after-load "eldoc" '(diminish 'eldoc-mode)) -- cgit v1.2.3-54-g00ecf From 4ce6139824acd22182317f1d2e299091558a2dbb Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 4 Jan 2013 01:33:31 +0100 Subject: Emacs: fix typo --- .emacs.d/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 62d5b41..8a59ddc 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -62,7 +62,7 @@ '(diminish 'pretty-symbols-mode)) (eval-after-load "rainbow-mode" - '(diminish 'rainbmow-mode)) + '(diminish 'rainbow-mode)) (eval-after-load "smex" '(progn -- cgit v1.2.3-54-g00ecf From 8e5daed796494e602423bdedb1902fb7519b522e Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 4 Jan 2013 01:34:02 +0100 Subject: Emacs: Cleanup the other sections --- .emacs.d/init.org | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 2041f5a..e21f45a 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -260,30 +260,56 @@ * Aliases - There are some functions that are just better than others, no - matter how politically incorrect it might be to admit. + I've never had any trouble with accidentally pressing ~y~ while being + asked a question, so I've never had any reason to prefer ~yes-or-no-p~ + over ~y-or-n-p~. - #+BEGIN_SRC emacs-lisp :tangle init2.el + #+begin_src emacs-lisp :tangle init2.el (defalias 'yes-or-no-p 'y-or-n-p) + #+end_src + + ~ibuffer~ is a drop-in replacement for ~list-buffers~, but with more + features. + + #+begin_src emacs-lisp :tangle init2.el (defalias 'list-buffers 'ibuffer) + #+end_src + + I don't know if replacing ~dabbrev-expand~ with ~hippie-expand~, but at + least ~hippie-expand~ doesn't use ~dabbrev-expand~, and I haven't + noticed anything wrong so far, and ~hippie-expand~ does so much more + than ~dabbrev-expand~. + + #+BEGIN_SRC emacs-lisp :tangle init2.el (defalias 'dabbrev-expand 'hippie-expand) #+END_SRC * Faces - Define faces for use with ~magit~ log edit mode. + Define a face to how the summary line of git commits as the first + headline of an ~org-mode~ file. - #+BEGIN_SRC emacs-lisp :tangle init2.el + #+begin_src emacs-lisp :tangle init2.el (defface git-commit-summary-face '((t (:inherit org-level-1))) "Face for the git title line." :group 'local) + #+end_src + Define a face to show characters that have been placed beyond the + maximum length of a summary line. + + #+begin_src emacs-lisp :tangle init2.el (defface git-commit-overlong-summary-face '((t (:background "#873732"))) "Face for commit titles that are too long." :group 'local) + #+end_src + + Define a face to show characters that have been placed on the second + line of a git commit. Those should always remain empty. + #+BEGIN_SRC emacs-lisp :tangle init2.el (defface git-commit-nonempty-second-line-face '((t (:inherit git-commit-overlong-summary-face))) "Face for the supposedly empty line in commit messages." @@ -292,19 +318,14 @@ * Keys - With the awesome power of Emacs comes the need for lots of - keybindings. - -** Translation - - Since the ~C-l~ combination is so much easier than ~C-j~ when using - the [[http://colemak.com][colemak]] keyboard layout and ~C-j~ is used so much more, switch - them. + Since the ~C-l~ combination is so much easier than ~C-j~ when using the + [[http://colemak.com][colemak]] keyboard layout and I use ~C-j~ much more, switch them. #+BEGIN_SRC emacs-lisp tangle init2.el (define-key key-translation-map (kbd "C-j") (kbd "C-l")) (define-key key-translation-map (kbd "C-l") (kbd "C-j")) #+END_SRC + * Footnotes [fn:1] Though it doesn't happen often that ~trunk~ is so messed up that -- cgit v1.2.3-54-g00ecf From f10f2a2382d66e1f8b365e4e59d516af04bc1f26 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 4 Jan 2013 02:08:31 +0100 Subject: Emacs: Move some more things to init.org --- .emacs.d/init.el | 6 ------ .emacs.d/init.org | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 8a59ddc..ebbb83d 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -8,12 +8,6 @@ (load (concat user-emacs-directory "init2")) -(eval-after-load "eldoc" - '(diminish 'eldoc-mode)) - -(eval-after-load "em-term" - '(add-to-list 'eshell-visual-commands "unison")) - (eval-after-load "emms-source-file" '(progn (require 'emms-setup) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index e21f45a..6e7ca46 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -326,6 +326,26 @@ (define-key key-translation-map (kbd "C-l") (kbd "C-j")) #+END_SRC +* eldoc + + Diminish ~eldoc~'s lighter to nothing after it loads to keep the + mode-line clean. + + #+begin_src emacs-lisp :tangle init2.el + (eval-after-load "eldoc" + '(diminish 'eldoc-mode)) + #+end_src + +* eshell + + After ~em-term.el~ loads add ~unison~ to the ~eshell-visual-commands~ to + make sure it gets unbuffered input. + + #+begin_src emacs-lisp :tangle init2.el + (eval-after-load "em-term" + '(add-to-list 'eshell-visual-commands "unison")) + #+end_src + * Footnotes [fn:1] Though it doesn't happen often that ~trunk~ is so messed up that -- cgit v1.2.3-54-g00ecf From e9fb14a9dc1ccaf13320b03a8aeca823db852cd9 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 11 Jan 2013 12:15:31 +0100 Subject: .ncmpcpp/config --- .ncmpcpp/config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.ncmpcpp/config b/.ncmpcpp/config index 289318d..c92a87d 100644 --- a/.ncmpcpp/config +++ b/.ncmpcpp/config @@ -24,3 +24,10 @@ fancy_scrolling = "yes" mpd_music_dir = "/mnt/music/mp3" search_engine_display_mode = "columns" # (classic/columns) user_interface = "alternative" # (classic/alternative) + +# Visualization +visualizer_fifo_path = "/tmp/mpd.fifo" +visualizer_output_name = "mpd_fifo" +visualizer_sync_interval = "1" +visualizer_type = "wave" +#visualizer_type = "spectrum" -- cgit v1.2.3-54-g00ecf From 25dcd4dd48b31a426a1e04204f0926567820ad59 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 15 Jan 2013 12:10:05 +0100 Subject: Xdefaults: Use consolas It has slanted script, I do miss the parentheses though. --- .Xdefaults | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.Xdefaults b/.Xdefaults index ebbbd9c..1dc05f0 100644 --- a/.Xdefaults +++ b/.Xdefaults @@ -1,4 +1,3 @@ - urxvt.internalBorder: 0 urxvt.loginShell: true @@ -21,9 +20,9 @@ urxvt.keysym.M-s: perl:keyboard-select:search urxvt.keysym.M-u: perl:url-select:select_next -urxvt.font: xft:Monaco:weight=medium:pixelsize=18 -urxvt.boldFont: xft:Monaco:weight=black:pixelsize=18 -! urxvt.italicFont: xft:Monaco:slant=italic:pixelsize=18 +urxvt.font: xft:Consolas:weight=medium:pixelsize=18 +urxvt.boldFont: xft:Consolas:weight=bold:pixelsize=18 +urxvt.italicFont: xft:Consolas:slant=italic:pixelsize=18 urxvt.background: #111113 urxvt.foreground: #eeeeec -- cgit v1.2.3-54-g00ecf From 7a5a232c27394a8afd87abc2f27b31f62cd91b59 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 15 Jan 2013 12:11:41 +0100 Subject: Emacs: Update some things --- .emacs.d/init.el | 26 ++++++++++----- .emacs.d/init.org | 14 +++++++-- .emacs.d/site-lisp/dzen.el | 4 ++- .emacs.d/site-lisp/oni.el | 34 +++++++++++--------- .emacs.d/site-lisp/org-init.el | 63 +++++++++++++++++++++++++++++++------ .emacs.d/snippets/org-mode/Makefile | 2 +- .emacs.d/snippets/org-mode/project | 51 ++++++++++++++++++++++++++++++ .emacs.d/snippets/org-mode/snippet | 14 +++++++++ 8 files changed, 172 insertions(+), 36 deletions(-) create mode 100644 .emacs.d/snippets/org-mode/project create mode 100644 .emacs.d/snippets/org-mode/snippet diff --git a/.emacs.d/init.el b/.emacs.d/init.el index ebbb83d..76ac42a 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -40,8 +40,16 @@ '("\\.go$" flymake-simple-make-init)))) (eval-after-load "ido" - '(setq ido-ignore-buffers `(,@ido-ignore-buffers - "^\\*.*\\*$" "^irc\\." "^\\#"))) + '(setq ido-ignore-buffers + (list "^\\` " "^irc\\." "^\\#" "^\\*Customize Option:" + (eval-when-compile + (regexp-opt + '("*-jabber-roster-*" + "*Messages*" + "*fsm-debug*" + "*magit-process*" + "*magit-edit-log*" + "*Backtrace*")))))) (eval-after-load "jabber" '(remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) @@ -113,10 +121,10 @@ (vertical-scroll-bars . nil) (menu-bar-lines . nil) (tool-bar-lines . nil) - (font . "monaco-12"))) + (font . "Consolas-14"))) (setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist - '(("freenode.net" "#ninthfloor" "#emacs" "#dispass"))) + '(("freenode.net" "#ninthfloor" "#emacs"))) (setq erc-hide-list '("JOIN" "PART" "QUIT")) (setq erc-insert-timestamp-function 'erc-insert-timestamp-left) (setq erc-nick "ryuslash") @@ -177,11 +185,14 @@ (setq gnus-init-file "~/.emacs.d/gnus") (setq gtags-auto-update t) (setq help-at-pt-display-when-idle t) +(setq highlight-80+-columns 72) +(setq identica-enable-striping t) (setq ido-auto-merge-delay-time 1000000) (setq ido-default-buffer-method 'selected-window) (setq ido-max-window-height 1) (setq ido-save-directory-list-file nil) -(setq ido-ubiquitous-command-exceptions '(org-refile)) +(setq ido-ubiquitous-command-exceptions + '(org-refile org-capture-refile)) (setq inferior-lisp-program "sbcl") (setq inhibit-default-init t) (setq inhibit-local-menu-bar-menus t) @@ -206,9 +217,8 @@ (setq message-sendmail-extra-arguments '("-a" "ryuslash")) (setq package-archives '(("melpa" . "http://melpa.milkbox.net/packages/") - ("ELPA" . "http://tromey.com/elpa/") - ("gnu" . "http://elpa.gnu.org/packages/") - ("marmalade" . "http://marmalade-repo.org/packages/"))) + ("marmalade" . "http://marmalade-repo.org/packages/") + ("gnu" . "http://elpa.gnu.org/packages/"))) (setq package-load-list '((htmlize "1.39") (lua-mode "20111107") all)) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 6e7ca46..86cafbc 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -1,6 +1,7 @@ #+TITLE: Emacs init #+STYLE: #+OPTIONS: author:nil +#+STARTUP: showall * Startup @@ -73,7 +74,8 @@ #+BEGIN_SRC emacs-lisp (mapc #'oni:add-to-load-path-maybe-load-defs '("~/projects/emacs/dispass.el" "~/var/src/emacs/mode-icons" - "~/.emacs.d/site-lisp")) + "~/.emacs.d/site-lisp" "~/projects/emacs/pony-mode/src" + "~/projects/emacs/php-mode")) #+END_SRC The =oni:add-to-load-path-maybe-load-defs= function just adds the @@ -321,7 +323,7 @@ Since the ~C-l~ combination is so much easier than ~C-j~ when using the [[http://colemak.com][colemak]] keyboard layout and I use ~C-j~ much more, switch them. - #+BEGIN_SRC emacs-lisp tangle init2.el + #+BEGIN_SRC emacs-lisp :tangle init2.el (define-key key-translation-map (kbd "C-j") (kbd "C-l")) (define-key key-translation-map (kbd "C-l") (kbd "C-j")) #+END_SRC @@ -346,6 +348,14 @@ '(add-to-list 'eshell-visual-commands "unison")) #+end_src +* Window movement + + Make it easier to move through windows by using ~windmove~. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (windmove-default-keybindings) + #+END_SRC + * Footnotes [fn:1] Though it doesn't happen often that ~trunk~ is so messed up that diff --git a/.emacs.d/site-lisp/dzen.el b/.emacs.d/site-lisp/dzen.el index 2d43f95..6cc3eae 100644 --- a/.emacs.d/site-lisp/dzen.el +++ b/.emacs.d/site-lisp/dzen.el @@ -39,7 +39,9 @@ (defun dzen-update () (let ((strl "") - (strc metal-express-radio-currently-playing) + (strc (if (boundp 'metal-express-radio-currently-playing) + metal-express-radio-currently-playing + "")) (strr (format "jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n" (oni:current-jabber-status) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 79b5f6e..0098ea2 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -61,7 +61,7 @@ DOT are intentionally being skipped." (defvar oni:required-packages '(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) + git-auto-commit-mode idomenu magit smex) "List of all the packages I have (want) installed.") (defun oni:after-save-func () @@ -81,7 +81,9 @@ DOT are intentionally being skipped." nil (format "%s%s (in %s minutes)" new-time appt-msg min-to-app) nil) (appt-disp-window min-to-app new-time appt-msg)) - +;; (jabber-send-message (car jabber-connections) +;; "aethon@muc.ryuslash.org" nil "Hi, I'm a programmatic message; this +;; upens up possibilities :)" "groupchat") (defun oni:before-save-func () "Function for `before-save-hook'." (if (eq major-mode 'html-mode) @@ -192,7 +194,8 @@ DOT are intentionally being skipped." (defun oni:html-mode-func () "Function for `html-mode-hook'." (yas-minor-mode) - (fci-mode)) + (highlight-80+-mode) + (flycheck-mode)) (defun oni:indent-shift-left (start end &optional count) "Rigidly indent region. @@ -258,8 +261,7 @@ If COUNT has been specified indent by that much, otherwise look at (defun oni:js-mode-func () "Function for `js-mode-hook'." (rainbow-delimiters-mode) - (local-set-key "\C-j" 'oni:newline-and-indent) - (pretty-symbols-mode -1)) + (local-set-key "\C-j" 'oni:newline-and-indent)) (defun oni:js2-mode-func () "Function for `js2-mode-hook'." @@ -293,7 +295,8 @@ If COUNT has been specified indent by that much, otherwise look at "Function for `lua-mode-hook'." (local-unset-key (kbd ")")) (local-unset-key (kbd "]")) - (local-unset-key (kbd "}"))) + (local-unset-key (kbd "}")) + (flycheck-mode)) (defun oni:magit-log-edit-mode-func () "Function for `magit-log-edit-mode-hook'." @@ -404,24 +407,25 @@ When dealing with braces, add another line and indent that too." (defun oni:php-mode-func () "Function for `php-mode-hook'." - (flymake-mode) (local-set-key "\C-j" 'oni:newline-and-indent) (c-set-offset 'arglist-intro '+) (c-set-offset 'arglist-close '0) (rainbow-delimiters-mode) - (setq fci-rule-column 80)) + (setq-local highlight-80+-columns 80) + (flycheck-mode)) (defun oni:pretty-control-l-function (win) - "Just make a string of either `fci-rule-colum' or `fill-column' -length -1. Use the `-' character. WIN is ignored." + "Just make a string of either `highlight-80+-columns' or +`fill-column' length -1. Use the `-' character. WIN is +ignored." (make-string - (1- (if (boundp 'fci-rule-column) fci-rule-column fill-column)) ?-)) + (1- (if (boundp 'highlight-80+-columns) + highlight-80+-columns fill-column)) ?-)) (defun oni:prog-mode-func () "Function for `prog-mode-hook'." (rainbow-delimiters-mode) - (fci-mode) - (pretty-symbols-mode) + (highlight-80+-mode) (yas-minor-mode) (auto-fill-mode)) @@ -432,10 +436,10 @@ length -1. Use the `-' character. WIN is ignored." (local-set-key (kbd "C-<") 'python-indent-shift-left) (set (make-local-variable 'electric-indent-chars) nil) (rainbow-delimiters-mode) - (setq fci-rule-column 79 + (setq highlight-80+-columns 79 fill-column 72) (setq-local whitespace-style '(tab-mark)) - (fci-mode) + (highlight-80+-mode) (whitespace-mode)) (defun oni:raise-ansi-term (arg) diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index 23ae6a5..b02f0cc 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -33,13 +33,60 @@ (eval-after-load "org-crypt" '(org-crypt-use-before-save-magic)) +(defun oni:org-maybe-outline-path () + (let ((outline-path (org-format-outline-path (org-get-outline-path)))) + (unless (string= outline-path "") + (setq outline-path (concat "[ " outline-path " ] "))) + outline-path)) + +(defun oni:set-org-agenda-files () + "Set `org-agenda-files` according to the current time." + (interactive) + (let* ((current-time (decode-time)) + (current-hour (nth 2 current-time)) + (current-dow (nth 6 current-time))) + (if (or (= current-dow 6) (= current-dow 0) ; Saturday or Sunday + (< current-hour 9) (>= current-hour 17)) + (setq org-agenda-files + (append oni:personal-agenda-files oni:common-agenda-files)) + (setq org-agenda-files + (append oni:work-agenda-files oni:common-agenda-files))))) + +(defvar oni:personal-agenda-files + (list (expand-file-name "~/documents/org/tasks")) + "My personal agenda, should only show up at times I don't have + to work.") + +(defvar oni:work-agenda-files + (list (expand-file-name "~/documents/org/aethon.org")) + "My work agenda, should only show up at times I work.") + +(defvar oni:common-agenda-files + (list (expand-file-name "~/documents/org/dailies") + (expand-file-name "~/documents/org/misc/contacts.org") + (expand-file-name "~/documents/org/misc/bookmarks.org")) + "Agenda files that are work-agnostic, should always show up.") + (setq org-agenda-custom-commands - '(("w" "Work todo." tags-todo "work"))) + '(("P" . "Personal only") + ("Pa" "Personal agenda" agenda "" + ((org-agenda-files (append oni:personal-agenda-files + oni:common-agenda-files)))) + ("Pt" "Personal todo" agenda "" + ((org-agenda-files (append oni:personal-agenda-files + oni:common-agenda-files)))) + ("W" . "Work only") + ("Wa" "Work agenda" agenda "" + ((org-agenda-files (append oni:work-agenda-files + oni:common-agenda-files)))) + ("Wt" "Work todo" todo "" + ((org-agenda-files (append oni:work-agenda-files + oni:common-agenda-files)))))) (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)) \" ]\") ") + (todo . " %i %-12:c %(oni:org-maybe-outline-path)") + (tags . " %i %-12:c %(oni:org-maybe-outline-path)") (search . " %i %-12:c"))) (setq org-agenda-sorting-strategy '((agenda habit-down time-up priority-down category-keep) @@ -54,12 +101,6 @@ "* 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 - (append - `(,(concat org-directory "/tasks") - ,(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) @@ -103,5 +144,9 @@ (org-agenda-to-appt) (ad-activate 'org-agenda-redo) +(oni:set-org-agenda-files) +(run-at-time "09:00" (* 60 60 24) 'oni:set-org-agenda-files) +(run-at-time "17:00" (* 60 60 24) 'oni:set-org-agenda-files) + (provide 'org-init) ;;; org-init.el ends here diff --git a/.emacs.d/snippets/org-mode/Makefile b/.emacs.d/snippets/org-mode/Makefile index e913708..34d4cd9 100644 --- a/.emacs.d/snippets/org-mode/Makefile +++ b/.emacs.d/snippets/org-mode/Makefile @@ -1,4 +1,4 @@ DESTDIR:=$(DESTDIR)/org-mode -objects=codeblock heading +objects=codeblock heading project snippet include ../../../dotfiles.mk diff --git a/.emacs.d/snippets/org-mode/project b/.emacs.d/snippets/org-mode/project new file mode 100644 index 0000000..269d655 --- /dev/null +++ b/.emacs.d/snippets/org-mode/project @@ -0,0 +1,51 @@ +# -*- mode: snippet -*- +# name: project +# key: project +# -- +#+TITLE: ${1:project_name} +#+LINK: src ${2:http://code.ryuslash.org/cgit.cgi/$3$1/} +#+LINK: tar_gz $2${4:snapshot/$1-master}.tar.gz +#+LINK: zip $2$4.zip +#+STARTUP: showall + +#+begin_html + + +#+end_html + +#+INCLUDE: "dlmenu.inc" + +* About + + ${5:A short description about $1} + + | $0Status | $6 | + | Language | $7 | + | License | ${8:GPLv3} | + +* Why? + + ${9:Why did you even think of writing $1?} + +* Features + + ${10:$1 does...} + +* Dependencies + + ${11:$1 needs to have...} + +* Download + + ${12:To download $1...} + +* Install + + ${13:To install $1...} + +* Usage + + ${14:Using $1...} \ No newline at end of file diff --git a/.emacs.d/snippets/org-mode/snippet b/.emacs.d/snippets/org-mode/snippet new file mode 100644 index 0000000..67f15d5 --- /dev/null +++ b/.emacs.d/snippets/org-mode/snippet @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: snippet +# key: snippet +# -- +#+TITLE: ${1:snippet-name} +#+OPTIONS: toc:nil + +* $1 + + ${2:A short description abount $1} + + #+BEGIN_SRC $3 :tangle yes +$0 + #+END_SRC \ No newline at end of file -- cgit v1.2.3-54-g00ecf From ab5a4d34b941231dd20f69b2798bbcfef71e9a8c Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 15 Jan 2013 12:12:00 +0100 Subject: ncmpcpp: Remove visualizer settings --- .ncmpcpp/config | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.ncmpcpp/config b/.ncmpcpp/config index c92a87d..6d8655f 100644 --- a/.ncmpcpp/config +++ b/.ncmpcpp/config @@ -1,4 +1,3 @@ -# -*- eval: (git-auto-commit-mode 1) -*- # Playlist autocenter_mode = "yes" centered_cursor = "yes" @@ -24,10 +23,3 @@ fancy_scrolling = "yes" mpd_music_dir = "/mnt/music/mp3" search_engine_display_mode = "columns" # (classic/columns) user_interface = "alternative" # (classic/alternative) - -# Visualization -visualizer_fifo_path = "/tmp/mpd.fifo" -visualizer_output_name = "mpd_fifo" -visualizer_sync_interval = "1" -visualizer_type = "wave" -#visualizer_type = "spectrum" -- cgit v1.2.3-54-g00ecf From 12b9beddbd5968a458d2a5c7b1490b8947df4a5a Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 15 Jan 2013 12:18:04 +0100 Subject: Conkeror: Use markam instead of linkwave --- .conkerorrc/init.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 6594523..2646f25 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -1,10 +1,10 @@ require("content-policy.js"); require("favicon"); -load_paths.push("file:///home/slash/var/src/linkwave/conkeror/"); +load_paths.push("file:///home/slash/projects/markam/conkeror/"); theme_load_paths.push("/home/slash/.conkerorrc/themes/"); -require("linkwave"); +require("markam"); define_browser_object_class( "history-url", null, @@ -118,6 +118,7 @@ hint_digits = "arstdhneio"; read_buffer_show_icons = true; title_format_fn = ext_title_format; url_remoting_fn = load_url_in_new_buffer; +markam_program = "/home/slash/projects/markam/src/markam"; define_key(content_buffer_normal_keymap, "h", "find-url-from-history-new-buffer"); -- cgit v1.2.3-54-g00ecf From 521ef4749f1e0a9fdfe35b07ee0ecc1ddd88ecff Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 16 Jan 2013 01:30:00 +0100 Subject: Emacs: Cleanup `eval-after-load's Also set `sentence-end-double-space' to nil so I don't have to use double spaces to end a sentence and keep the fill functions happy. --- .emacs.d/init.el | 75 +++++--------------------------------- .emacs.d/site-lisp/oni.el | 93 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 76ac42a..9228ec8 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -8,71 +8,15 @@ (load (concat user-emacs-directory "init2")) -(eval-after-load "emms-source-file" - '(progn - (require 'emms-setup) - (require 'emms-player-mpd) - - (emms-standard) - - (add-to-list 'emms-info-functions 'emms-info-mpd) - (add-to-list 'emms-player-list 'emms-player-mpd) - - (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 - (require 'flymake-cursor) - - (add-to-list ; Make sure pyflakes is loaded - 'flymake-allowed-file-name-masks ; for python files. - '("\\.py\\'" ext:flymake-pyflakes-init)) - - (add-to-list ; Error line repexp for go - 'flymake-err-line-patterns ; compilation. - '("^\\([a-zA-Z0-9_]+\\.go\\):\\([0-9]+\\):\\(.*\\)$" - 1 2 nil 3)) - - (add-to-list ; Go uses makefiles, makes - 'flymake-allowed-file-name-masks ; flymaking 'easy'. - '("\\.go$" flymake-simple-make-init)))) - -(eval-after-load "ido" - '(setq ido-ignore-buffers - (list "^\\` " "^irc\\." "^\\#" "^\\*Customize Option:" - (eval-when-compile - (regexp-opt - '("*-jabber-roster-*" - "*Messages*" - "*fsm-debug*" - "*magit-process*" - "*magit-edit-log*" - "*Backtrace*")))))) - -(eval-after-load "jabber" - '(remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) - -(eval-after-load "newst-treeview" - '(require 'newsticker-init)) - -(eval-after-load "org" - '(require 'org-init)) - -(eval-after-load "pretty-symbols-mode" - '(diminish 'pretty-symbols-mode)) - -(eval-after-load "rainbow-mode" - '(diminish 'rainbow-mode)) - -(eval-after-load "smex" - '(progn - (global-set-key (kbd "M-x") 'smex) - (global-set-key (kbd "C-M-x") 'smex-major-mode-commands))) - -(eval-after-load "yasnippet" - '(diminish 'yas-minor-mode)) +(eval-after-load "emms-source-file" '(oni:emms-init)) +(eval-after-load "flymake" '(oni:flymake-init)) +(eval-after-load "ido" '(oni:ido-init)) +(eval-after-load "jabber" '(oni:jabber-init)) +(eval-after-load "newst-treeview" '(require 'newsticker-init)) +(eval-after-load "org" '(require 'org-init)) +(eval-after-load "rainbow-mode" '(oni:rainbow-mode-init)) +(eval-after-load "smex" '(oni:smex-init)) +(eval-after-load "yasnippet" '(oni:yasnippet-init)) (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) @@ -231,6 +175,7 @@ (setq redisplay-dont-pause t) (setq send-mail-function 'smtpmail-send-it) (setq sendmail-program "/usr/bin/msmtp") +(setq sentence-end-double-space nil) (setq smex-key-advice-ignore-menu-bar t) (setq smex-save-file "~/.emacs.d/smex-items") (setq split-height-threshold 40) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 0098ea2..a8d36e9 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -50,20 +50,6 @@ DOT are intentionally being skipped." (concat (symbol-name user) "@" (symbol-name host) "." (symbol-name com))) -(defvar oni:mailbox-map - '("top" ("menu" - ("ryulash.org" . "ryuslash") - ("ninthfloor" . "ninthfloor") - ("gmail" . "gmail") - ("aethon" . "aethon"))) - "A mailbox map for use with `tmm-prompt'.") - -(defvar oni:required-packages - '(graphviz-dot-mode htmlize magit rainbow-delimiters rainbow-mode - yasnippet markdown-mode flymake flymake-cursor sauron expand-region - git-auto-commit-mode idomenu magit smex) - "List of all the packages I have (want) installed.") - (defun oni:after-save-func () "Function for `after-save-hook'." (oni:compile-el) @@ -130,6 +116,20 @@ DOT are intentionally being skipped." "Function for `emacs-lisp-mode-hook'." (eldoc-mode)) +(defun oni:emms-init () + "Initialization function for EMMS." + (require 'emms-setup) + (require 'emms-player-mpd) + + (emms-standard) + + (add-to-list 'emms-info-functions 'emms-info-mpd) + (add-to-list 'emms-player-list 'emms-player-mpd) + + (setq emms-player-mpd-server-name "localhost") + (setq emms-player-mpd-server-port "6600") + (setq emms-player-mpd-music-directory "/mnt/music/mp3")) + (defun oni:emms-toggle-playing () "Toggle between playing/paused states." (interactive) @@ -176,6 +176,23 @@ DOT are intentionally being skipped." 'face `(:foreground "blue")) "> "))) +(defun oni:flymake-init () + "Initialization function for flymake." + (require 'flymake-cursor) + + (add-to-list ; Make sure pyflakes is loaded + 'flymake-allowed-file-name-masks ; for python files. + '("\\.py\\'" ext:flymake-pyflakes-init)) + + (add-to-list ; Error line repexp for go + 'flymake-err-line-patterns ; compilation. + '("^\\([a-zA-Z0-9_]+\\.go\\):\\([0-9]+\\):\\(.*\\)$" + 1 2 nil 3)) + + (add-to-list ; Go uses makefiles, makes + 'flymake-allowed-file-name-masks ; flymaking 'easy'. + '("\\.go$" flymake-simple-make-init))) + (defun oni:flymake-mode-func () "Function for `flymake-mode-hook'." (local-set-key [M-P] 'flymake-goto-prev-error) @@ -197,6 +214,19 @@ DOT are intentionally being skipped." (highlight-80+-mode) (flycheck-mode)) +(defun oni:ido-init () + "Initialization functionn for ido." + (setq ido-ignore-buffers + (list "^\\` " "^irc\\." "^\\#" "^\\*Customize Option:" + (eval-when-compile + (regexp-opt + '("*-jabber-roster-*" + "*Messages*" + "*fsm-debug*" + "*magit-process*" + "*magit-edit-log*" + "*Backtrace*")))))) + (defun oni:indent-shift-left (start end &optional count) "Rigidly indent region. Region is from START to END. Move @@ -249,6 +279,10 @@ If COUNT has been specified indent by that much, otherwise look at '(global-mode-string)) header-line-format nil)) +(defun oni:jabber-init () + "Initialization function for jabber." + (remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) + (defun oni:jabber-roster-mode-func () "Function for `jabber-roster-mode-hook'." (setq mode-line-format @@ -442,6 +476,10 @@ ignored." (highlight-80+-mode) (whitespace-mode)) +(defun oni:rainbow-mode-init () + "Initialization function for rainbow-mode." + (diminish 'rainbow-mode)) + (defun oni:raise-ansi-term (arg) "Create or show an `ansi-term' buffer." (interactive "P") @@ -565,6 +603,11 @@ insert at the end of the region and at the beginning." (interactive) (message (format "%d:%d" (line-number-at-pos) (current-column)))) +(defun oni:smex-init () + "Initialization function for smex." + (global-set-key (kbd "M-x") 'smex) + (global-set-key (kbd "C-M-x") 'smex-major-mode-commands)) + (defun oni:split-window-interactive (dir) "Split windows in direction DIR. @@ -629,11 +672,23 @@ for easy selection." (define-key yas-minor-mode-map [(tab)] nil) (define-key yas-minor-mode-map (kbd "C-\\") 'yas-expand)) -(define-skeleton html-tag - "Testing creation of an html tag" - "Tagname:" - "<" str ("Attribute: " " " str "=\"" (skeleton-read "Value: ") "\"") ">\n" - "\n") +(defun oni:yasnippet-init () + "Initialization function for yasnippet." + (diminish 'yas-minor-mode)) + +(defvar oni:mailbox-map + '("top" ("menu" + ("ryulash.org" . "ryuslash") + ("ninthfloor" . "ninthfloor") + ("gmail" . "gmail") + ("aethon" . "aethon"))) + "A mailbox map for use with `tmm-prompt'.") + +(defvar oni:required-packages + '(graphviz-dot-mode htmlize magit rainbow-delimiters rainbow-mode + yasnippet markdown-mode flymake flymake-cursor sauron expand-region + git-auto-commit-mode idomenu magit smex) + "List of all the packages I have (want) installed.") (provide 'oni) ;;; oni.el ends here -- cgit v1.2.3-54-g00ecf From 777530f57a5c56af9687ce0eeffab4b6f8f70c46 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 16 Jan 2013 01:31:36 +0100 Subject: Conkeror: Allow location along with lh Let the `read_url_local_port_handler' accept an optional path parameter. --- .conkerorrc/init.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 2646f25..d7080de 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -228,13 +228,17 @@ function read_url_github_command_handler(input) function read_url_local_port_handler(input) { - var m = /^lh (\d{1,5})$/.exec(input); + var m = /^lh (\d{1,5})(?:\s+([a-zA-Z0-9%/]+))?$/.exec(input), + rv = null; if (m) { - return "http://localhost:" + m[1]; + rv = "http://localhost:" + m[1]; + + if (m[2]) + rv += "/" + m[2]; } - return null; + return rv; } read_url_handler_list = [read_url_local_port_handler, -- cgit v1.2.3-54-g00ecf From 2f27e1e3ac80564ba694de174f42a3922108f626 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 16 Jan 2013 01:31:55 +0100 Subject: Conkeror: Add chickadee webjump From the conkeror wiki --- .conkerorrc/init.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index d7080de..7821283 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -112,6 +112,31 @@ define_webjump("arch/packages", "https://www.archlinux.org/packages/?sort=&q=%s&limit=50", $alternative="https://packages.archlinux.org"); +/// Chickadee +// From http://conkeror.org/Webjumps +function chickadee_completer (input, cursor_position, conservative) { + var completions = []; + var content = yield send_http_request( + load_spec({uri: "http://api.call-cc.org/cdoc/ajax/prefix?q="+ + encodeURIComponent(input)})); + if (content.responseText) { + var parser = Cc["@mozilla.org/xmlextras/domparser;1"] + .createInstance(Ci.nsIDOMParser); + var doc = parser.parseFromString(content.responseText, "text/xml"); + var res = doc.getElementsByTagName("li"); + for (let i = 0, n = res.length; i < n; ++i) { + completions.push(res[i].textContent); + } + } + yield co_return(prefix_completer($completions = completions) + (input, cursor_position, conservative)); +} +define_webjump("chickadee", + "http://api.call-cc.org/cdoc?q=%s&query-name=Lookup", + $alternative = "http://api.call-cc.org/doc/", + $completer = chickadee_completer); +/// /Chickadee + // content_policy_bytype_table.object = oni_block_flash; cwd = make_file("/home/slash/downloads/"); hint_digits = "arstdhneio"; -- cgit v1.2.3-54-g00ecf From cfc60ae6dc3296aa0b1b87d1f9543749f2e41768 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 16 Jan 2013 04:13:12 +0100 Subject: Conkeror: Add github dashboard style I don't like it when it's so bright. --- .conkerorrc/Makefile | 2 +- .conkerorrc/init.js | 7 ++ .conkerorrc/styles/Makefile | 4 ++ .conkerorrc/styles/github.css | 160 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 .conkerorrc/styles/Makefile create mode 100644 .conkerorrc/styles/github.css diff --git a/.conkerorrc/Makefile b/.conkerorrc/Makefile index d2bc0db..12ed611 100644 --- a/.conkerorrc/Makefile +++ b/.conkerorrc/Makefile @@ -1,5 +1,5 @@ DESTDIR:=$(DESTDIR)/.conkerorrc -modules=themes +modules=themes styles objects=gtk2rc init.js include ../dotfiles.mk diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 7821283..811142a 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -268,3 +268,10 @@ function read_url_local_port_handler(input) read_url_handler_list = [read_url_local_port_handler, read_url_github_command_handler]; + +let (sheet = get_home_directory()) { + sheet.append(".conkerorrc"); + sheet.append("styles"); + sheet.append("github.css"); + register_user_stylesheet(make_uri(sheet)); +}; diff --git a/.conkerorrc/styles/Makefile b/.conkerorrc/styles/Makefile new file mode 100644 index 0000000..db06cf3 --- /dev/null +++ b/.conkerorrc/styles/Makefile @@ -0,0 +1,4 @@ +DESTDIR:=$(DESTDIR)/styles +objects=github.css + +include ../../dotfiles.mk diff --git a/.conkerorrc/styles/github.css b/.conkerorrc/styles/github.css new file mode 100644 index 0000000..7fdc415 --- /dev/null +++ b/.conkerorrc/styles/github.css @@ -0,0 +1,160 @@ +@-moz-document url(https://github.com/), url(https://github.com/dashboard) { + #dashboard .filter-bar { + background: #222224 !important; + border-bottom: none !important; + } + + #dashboard .filter-bar li a.filter_selected { + color: #eeeeec !important; + } + + #dashboard .repos { + border: none !important; + background-color: #171719 !important; + } + + #dashboard .repos .bottom-bar { + background-color: #222224 !important; + } + + #dashboard .repos .top-bar { + background: #222224 !important; + border-bottom: none !important; + } + + #dashboard .repos h2 { + color: inherit !important; + } + + #dashboard ul.repo_list li.private { + background: #222224 !important; + } + + #dashboard ul.repo_list li a { + border-width: 0 !important; + } + + #footer { + text-shadow: none !important; + } + + .button .minibutton { + background: #171719 !important; + } + + .header { + background: #222224 !important; + color: #eeeeec !important; + border-bottom: none !important; + text-shadow: none !important; + } + + .header .divider-vertical { + background: #222224 !important; + border-right: none !important; + } + + .header .top-nav a { + color: #eeeeec !important; + } + + .header .topsearch a#advanced_search { + color: #eeeeec !important; + } + + .header #user-links a { + color: #eeeeec !important; + } + + .markdown-body code, + .markdown-body tt{ + background-color: #222224 !important; + border: none !important; + color: #eeeeec !important; + } + + .minibutton.dark-grey { + background: #171719 !important;o + } + + .news .alert { + border-top: none !important; + } + + .news .alert .branch-link, + .news .alert .pull-info { + background: #222224 !important; + color: #eeeeec !important; + } + + .news .alert .gravatar { + background: none !important; + } + + .news .alert .simple .title { + color: #eeeeec !important; + } + + .news .commits li img { + background: none !important; + } + + .news blockquote { + color: #eeeeec !important; + } + + .pagehead .container > ul.tabs { + background: #171719 !important; + border: none !important; + } + + .pagehead .container > ul.tabs li a { + text-shadow: none !important; + border: none !important; + } + + .pagehead .container > ul.tabs li a:hover { + background: #222224 !important; + } + + .pagehead .container > ul.tabs li a.selected { + background: #222224 !important; + } + + .pagehead-actions a.feed { + background: #222224 !important; + border: none !important; + } + + .pagination { + background: #171719 !important; + border: none !important; + } + + .pagination a { + text-shadow: none !important; + border-bottom: none !important; + } + + .pagination a:hover { + background: #222224 !important; + } + + a { + color: #ffbb56 !important; + } + + a:visited { + color: #ee82ee !important; + } + + a.header-logo-blacktocat, + a.header-logo-blacktocat:visited { + color: #eeeeec !important; + } + + body { + background-color: #111113 !important; + color: #eeeeec !important; + } +} -- cgit v1.2.3-54-g00ecf From 454fe03fdcedef5b48b050696098820de29bc654 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 17 Jan 2013 14:51:20 +0100 Subject: Emacs, Xdefaults: Change font back to Monaco Consolas may have cursive script, but it also has crazy changing letters for each scrept (bold, cursive). And Monaco still has the better parentheses. --- .Xdefaults | 6 +++--- .emacs.d/init.el | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.Xdefaults b/.Xdefaults index 1dc05f0..6e32381 100644 --- a/.Xdefaults +++ b/.Xdefaults @@ -20,9 +20,9 @@ urxvt.keysym.M-s: perl:keyboard-select:search urxvt.keysym.M-u: perl:url-select:select_next -urxvt.font: xft:Consolas:weight=medium:pixelsize=18 -urxvt.boldFont: xft:Consolas:weight=bold:pixelsize=18 -urxvt.italicFont: xft:Consolas:slant=italic:pixelsize=18 +urxvt.font: xft:Monaco:weight=medium:pixelsize=18 +urxvt.boldFont: xft:Monaco:weight=bold:pixelsize=18 +! urxvt.italicFont: xft:Consolas:slant=italic:pixelsize=18 urxvt.background: #111113 urxvt.foreground: #eeeeec diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 9228ec8..b4b6b73 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -65,7 +65,7 @@ (vertical-scroll-bars . nil) (menu-bar-lines . nil) (tool-bar-lines . nil) - (font . "Consolas-14"))) + (font . "Monaco-12"))) (setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist '(("freenode.net" "#ninthfloor" "#emacs"))) -- cgit v1.2.3-54-g00ecf From 2bf4d69583718b2b79a6dbaa41ac8104c5a7878a Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:26:21 +0100 Subject: Conkeror: Have C-y open URLs in a new buffer --- .conkerorrc/init.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 811142a..96b5dde 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -145,11 +145,10 @@ title_format_fn = ext_title_format; url_remoting_fn = load_url_in_new_buffer; markam_program = "/home/slash/projects/markam/src/markam"; -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(content_buffer_normal_keymap, "C-y", "paste-url-new-buffer"); +define_key(content_buffer_normal_keymap, "H", "find-url-from-history"); +define_key(content_buffer_normal_keymap, "h", "find-url-from-history-new-buffer"); define_key(default_base_keymap, "C-x f", "follow-new-buffer"); add_hook("before_quit_hook", oni_before_quit_func); -- cgit v1.2.3-54-g00ecf From 2979194f54b3af2840cf9e5a906390408cd1c3bd Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:27:30 +0100 Subject: Emacs: Change second agenda files check To 17:01, because technically, I'm still working at 17:00. --- .emacs.d/site-lisp/org-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index b02f0cc..437b477 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -146,7 +146,7 @@ (oni:set-org-agenda-files) (run-at-time "09:00" (* 60 60 24) 'oni:set-org-agenda-files) -(run-at-time "17:00" (* 60 60 24) 'oni:set-org-agenda-files) +(run-at-time "17:01" (* 60 60 24) 'oni:set-org-agenda-files) (provide 'org-init) ;;; org-init.el ends here -- cgit v1.2.3-54-g00ecf From 4dd14f6b18e683a95da4024175c857ef49b467e6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:32:42 +0100 Subject: Stumpwm: Change some UI settings - Change the font used. - Use the `:thin' border style to hide windows behind certain other windows. For example: When using Emacs and conkeror, if conkeror is placed behind emacs and the border is `:tight' I will see a tiny portion of the conkeror window on my screen (due to emacs' size hints). On the other hand if I use `:thick', it will use the border color to fill it up, with `:thin' it uses the unfocus-color. --- .stumpwmrc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.stumpwmrc b/.stumpwmrc index 8c258e7..91cddf0 100644 --- a/.stumpwmrc +++ b/.stumpwmrc @@ -97,7 +97,7 @@ (set-float-focus-color (colour :black)) (set-float-unfocus-color (colour :aluminium-6)) (set-focus-color (colour :black)) -(set-font "-*-dejavu sans mono-medium-r-*-*-15-*-*-*-*-*-iso10646-*") +(set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1") (set-unfocus-color (colour :aluminium-6)) (set-win-bg-color (colour :background)) @@ -105,16 +105,14 @@ :butter-1 :sky-blue-1 :plum-1 :cyan :aluminium-1))) (setf *input-window-gravity* :bottom-left) -(setf *maxsize-border-width* 1) (setf *message-window-gravity* :top-right) (setf *mode-line-background-color* (colour :background)) (setf *mode-line-border-color* (colour :aluminium-6)) (setf *mode-line-foreground-color* (colour :aluminium-1)) -(setf *normal-border-width* 1) (setf *shell-program* (getenv "SHELL")) (setf *transient-border-width* 1) -(setf *window-border-style* :tight) (setf *window-format* "%m%50t") +(setf *window-boder-style* :thin) (setf *screen-mode-line-format* (list "[%n]" '(:eval -- cgit v1.2.3-54-g00ecf From 7d7c224a4bd9b4a728262aff542db6aea9a7ad4a Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:33:45 +0100 Subject: Stumpwm: Remove some unused keybindings Since I don't have a keypad on either my PC or laptop anymore, binding them is useless. --- .stumpwmrc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.stumpwmrc b/.stumpwmrc index 91cddf0..627d2b5 100644 --- a/.stumpwmrc +++ b/.stumpwmrc @@ -128,12 +128,6 @@ (set-prefix-key (kbd "C-i")) (define-key *top-map* (kbd "C-M-l") "run-i3lock") -(define-key *top-map* (kbd "KP_Begin") "vsplit") -(define-key *top-map* (kbd "KP_Divide") "remove") -(define-key *top-map* (kbd "KP_Left") "only") -(define-key *top-map* (kbd "KP_Multiply") "fnext") -(define-key *top-map* (kbd "KP_Right") "hsplit") -(define-key *top-map* (kbd "KP_End") "pull-hidden-next") (define-key *root-map* (kbd "c") "raise-urxvt") (define-key *root-map* (kbd "C") "run-urxvt") -- cgit v1.2.3-54-g00ecf From f6a096435cfbbabfc9648e6dc58ffcba169587e6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:34:05 +0100 Subject: Xinit: Use stumpwm --- .xinitrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.xinitrc b/.xinitrc index 9684c80..980efb6 100755 --- a/.xinitrc +++ b/.xinitrc @@ -12,5 +12,5 @@ fi emacs --daemon & fehlstart & -test -n "$1" && wm=$1 || wm="sawfish" +test -n "$1" && wm=$1 || wm="stumpwm" exec $wm -- cgit v1.2.3-54-g00ecf From 29189b9cbcb49e41386447d2ed7022021c00d218 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 18 Jan 2013 23:37:05 +0100 Subject: Emacs: Move mode-icons to ~/projects/emacs From ~/var/src/emacs --- .emacs.d/init.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 86cafbc..b3f3c31 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -73,7 +73,7 @@ #+NAME: load-projects #+BEGIN_SRC emacs-lisp (mapc #'oni:add-to-load-path-maybe-load-defs - '("~/projects/emacs/dispass.el" "~/var/src/emacs/mode-icons" + '("~/projects/emacs/dispass.el" "~/projects/emacs/mode-icons" "~/.emacs.d/site-lisp" "~/projects/emacs/pony-mode/src" "~/projects/emacs/php-mode")) #+END_SRC -- cgit v1.2.3-54-g00ecf From 117003cefa16a9db1d4c87654f385131b6885d63 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 21 Jan 2013 01:34:03 +0100 Subject: Fix zsh history --- .zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zshrc b/.zshrc index bc94c2e..6a885ef 100644 --- a/.zshrc +++ b/.zshrc @@ -9,7 +9,7 @@ fpath=($HOME/.zsh/functions $fpath) autoload -U $HOME/.zsh/functions/*(:t) # Setup variables -HISTFILE=$ZDOTDIR/histfile +HISTFILE=$HOME/.zsh/histfile HISTSIZE=1000 SAVEHIST=1000 LESSCMD="/usr/bin/less -FXRS" -- cgit v1.2.3-54-g00ecf From 35fc2e3378a3b91547b43b2d0fef28f8d88c1e37 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 25 Jan 2013 00:32:30 +0100 Subject: emacs: Redo again --- .emacs.d/init.el | 66 +++++--- .emacs.d/init.org | 392 ++++++---------------------------------------- .emacs.d/site-lisp/oni.el | 39 +++-- 3 files changed, 121 insertions(+), 376 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index b4b6b73..dddef30 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -8,6 +8,23 @@ (load (concat user-emacs-directory "init2")) +(defface git-commit-summary-face + '((t (:inherit org-level-1))) + "Face for the git title line." + :group 'local) + +(defface git-commit-overlong-summary-face + '((t (:background "#873732"))) + "Face for commit titles that are too long." + :group 'local) + +(defface git-commit-nonempty-second-line-face + '((t (:inherit git-commit-overlong-summary-face))) + "Face for the supposedly empty line in commit messages." + :group 'local) + +(eval-after-load "eldoc" '(diminish 'eldoc-mode)) +(eval-after-load "em-term" '(add-to-list 'eshell-visual-commands "unison")) (eval-after-load "emms-source-file" '(oni:emms-init)) (eval-after-load "flymake" '(oni:flymake-init)) (eval-after-load "ido" '(oni:ido-init)) @@ -18,6 +35,24 @@ (eval-after-load "smex" '(oni:smex-init)) (eval-after-load "yasnippet" '(oni:yasnippet-init)) +(autoload 'define-slime-contrib "slime") +(autoload 'gtags-mode "gtags" nil t) +(autoload 'jabber-connect "jabber" nil t) +(autoload 'php-mode "php-mode" nil t) +(autoload 'po-mode "po-mode" nil t) +(autoload 'pony-mode "pony-mode" nil t) +(autoload 'sawfish-mode "sawfish" nil t) +(autoload 'server-running-p "server") +(autoload 'slime-js-minor-mode "slime-js" nil t) +(autoload 'xmodmap-mode "xmodmap-mode" nil t) +(autoload 'w3m-bookmark-view "w3m" nil t) +(autoload 'w3m-goto-url "w3m" nil t) + +(require 'geiser-install) +(require 'uniquify) +(require 'ext) +(require 'oni) + (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) (put 'narrow-to-region 'disabled nil) @@ -36,11 +71,9 @@ (setq appt-disp-window-function #'oni:appt-display-window-and-jabber) (setq appt-display-diary nil) (setq auto-mode-case-fold nil) -(setq auto-save-file-name-transforms - `((".*" ,temporary-file-directory t))) +(setq auto-save-file-name-transforms oni:auto-save-name-transforms) (setq avandu-article-render-function #'avandu-view-w3m) -(setq backup-directory-alist - `((".*" . ,temporary-file-directory))) +(setq backup-directory-alist oni:backup-directory-alist) (setq browse-url-browser-function 'browse-url-generic) (setq browse-url-generic-program (getenv "BROWSER")) (setq c-offsets-alist '((statement-block-intro . +) @@ -66,6 +99,7 @@ (menu-bar-lines . nil) (tool-bar-lines . nil) (font . "Monaco-12"))) +(setq elnode-do-init nil) (setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist '(("freenode.net" "#ninthfloor" "#emacs"))) @@ -153,6 +187,7 @@ (setq jabber-chat-local-prompt-format "%t >\n") (setq jabber-chatstates-confirm nil) (setq jabber-history-dir "~/.emacs.d/jabber") +(setq jabber-muc-autojoin '("aethon@muc.ryuslash.org")) (setq jabber-roster-show-bindings nil) (setq jit-lock-defer-time 0.2) (setq magit-repo-dirs '("~/projects/" "~/var/src/")) @@ -226,6 +261,9 @@ (add-hook 'write-file-hooks 'oni:write-file-func) (add-hook 'yas-minor-mode-hook 'oni:yas-minor-mode-func) +(define-key key-translation-map (kbd "C-j") (kbd "C-l")) +(define-key key-translation-map (kbd "C-l") (kbd "C-j")) + (global-set-key (kbd "'") 'oni:self-insert-dwim) (global-set-key (kbd "") 'emms-next) (global-set-key (kbd "") 'oni:emms-toggle-playing) @@ -293,24 +331,15 @@ 'display-buffer-alist '("^\\*magit: .*\\*$" . ((display-buffer-same-window . nil)))) -(unless (oni:required-packages-installed-p) - (message "%s" "Refreshing package database...") - (package-refresh-contents) - (message "%s" " done.") - (mapc #'(lambda (package) - (when (not (package-installed-p package)) - (package-install package))) - oni:required-packages)) - (blink-cursor-mode -1) (column-number-mode -1) (line-number-mode -1) -(menu-bar-mode -1) -(scroll-bar-mode -1) -(tool-bar-mode -1) (tooltip-mode -1) +(package-initialize) + (auto-insert-mode) +(cua-selection-mode t) (electric-indent-mode) (electric-pair-mode) (ido-mode) @@ -321,8 +350,8 @@ (smex-initialize) (help-at-pt-set-timer) - -(load-theme 'yoshi t) +(windmove-default-keybindings) +(global-diff-hl-mode) (load custom-file) ;; (load "rudel-loaddefs.el") @@ -335,7 +364,6 @@ (server-start)) (diminish 'auto-fill-function "_") -(ac-config-default) (provide 'init) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index b3f3c31..ac7f7c1 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -2,365 +2,75 @@ #+STYLE: #+OPTIONS: author:nil #+STARTUP: showall +#+LINK: yoshi-theme http://ryuslash.org/projects/yoshi-theme.html -* Startup +* Emacs init - Startup requires a bit of customization to handle all my - customizations. - -** Load paths - - I have two versions of Emacs installed on my main computer. I have - a daily build of Emacs's ~trunk~ (or currently ~emacs-24~) branch from - bazaar and I have the official ~emacs~ package from archlinux - installed. I keep that second one around so that the occasional - emacs package that I install using ~pacman~ will recognize it as a - dependency and so that if there has been some horrible mistake in - the ~trunk~ branch I still have a stable version to fall back - on[fn:1]. - -*** Package initialization - - In order for packages installed through ELPA to be included - without having to mess with load paths and such, use: - - #+NAME: package-initialize - #+BEGIN_SRC emacs-lisp - (package-initialize) - #+END_SRC - -*** site-lisp - - Because of the setup I wrote about I need to have both the - self-built ~site-lisp~ directory in my load path *and* the "official" - one. - - #+NAME: load-site-lisps - #+BEGIN_SRC emacs-lisp - (mapc #'oni:add-all-to-load-path - '("/usr/share/emacs/site-lisp" - "/usr/local/emacs/share/emacs/site-lisp")) - #+END_SRC - - The =oni:add-all-to-load-path= function just binds =default-directory= - to the given directory and calls - =normal-top-level-add-subdirs-to-load-path= to add it and all its - subdirectories to the load path. - - #+NAME: add-all - #+BEGIN_SRC emacs-lisp - (defun oni:add-all-to-load-path (dir) - (add-to-list 'load-path dir) - (let ((default-directory dir)) - (normal-top-level-add-subdirs-to-load-path))) - #+END_SRC - -**** TODO Add load paths in different order depending on version - - The officially installed version should load - =/usr/share/emacs/site-lisp= before - =/usr/local/emacs/share/emacs/sit-lisp= and the bzr version should - do the reversed. - -*** Projects - - Then there are some projects I'm working on, which I use on a - daily basis, these should also be added so I don't have to - constantly remove and re-install them through ~package.el~ when - working on them. And there is the ~load-defs.el~ in my personal - ~site-lisp~ directory of course. - - #+NAME: load-projects - #+BEGIN_SRC emacs-lisp - (mapc #'oni:add-to-load-path-maybe-load-defs - '("~/projects/emacs/dispass.el" "~/projects/emacs/mode-icons" - "~/.emacs.d/site-lisp" "~/projects/emacs/pony-mode/src" - "~/projects/emacs/php-mode")) - #+END_SRC - - The =oni:add-to-load-path-maybe-load-defs= function just adds the - given directory to the load path and then looks for a file named - ~loaddefs.el~ within that directory, if it exists it loads it. - - #+NAME: add-with-loaddefs - #+BEGIN_SRC emacs-lisp - (defun oni:add-to-load-path-maybe-load-defs (dir) - (add-to-list 'load-path dir) - (let ((loaddefs (concat dir "/loaddefs.el"))) - (when (file-exists-p loaddefs) - (load loaddefs)))) - #+END_SRC - -*** Themes - - And, finally, I'm also working on a color theme for emacs, this - should be added to ~custom-theme-load-path~. By using =mapc= here as - well I'm keeping in mind that this isn't the first theme I've - worked on and it might not be the last either. - - #+NAME: load-themes - #+BEGIN_SRC emacs-lisp - (mapc #'oni:add-to-custom-theme-load-path - '("~/projects/emacs/yoshi-theme")) - #+END_SRC - - The =oni:add-to-custom-theme-load-path= just adds the given - directory to the cutom theme load path. - - #+NAME: add-themes - #+BEGIN_SRC emacs-lisp - (defun oni:add-to-custom-theme-load-path (dir) - (add-to-list 'custom-theme-load-path dir)) - #+END_SRC - -*** Evaluation - - Because during byte-compilation certain parts loaded so far might - also be required I put it in an =eval-and-compile= form, so that all - components are loaded with ~emacs -Q~ as well. Without this - compilation might fail at certain points. - - #+BEGIN_SRC emacs-lisp :tangle init2.el :noweb yes - (eval-and-compile - <> - - <> - - <> - - <> - <> - <> - <>) - #+END_SRC - -** Modules - - While I try to use =eval-after-load= and =autoload= as much as - possible, some things require direct =require='ing to be of use. - -*** Require - - - ~auto-complete-config~ :: This sets up some default settings to - make ~auto-complete~ work for most[fn:2] of the modes it - supports. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (require 'auto-complete-config) - #+END_SRC - - - ~geiser-install~ :: Sets up geiser autoloads and such. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (require 'geiser-install) - #+END_SRC - - - ~uniquify~ :: Provides more helpful buffer name uniquification. - The default of using ~buffer-name<2>~ is boring and - uninformative, ~uniquify~ fixes this. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (require 'uniquify) - #+END_SRC - - - ~ext~ :: Functions from external sources. - - ~oni~ :: Functions written personally. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (require 'ext) - (require 'oni) - #+END_SRC - -*** Autoload - - These might not be used at all in a session, so they should only - be loaded when necessary. - - =define-slime-contrib= was used by some module that didn't autoload - or require it[fn:3]. But since I don't use whichever model it - was every day, it is of no use to load it every single time. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'define-slime-contrib "slime") - #+END_SRC - - I installed ~global~ with ~pacman~, but this doesn't add anything to - any =loaddefs.el=, so doesn't create any autoloads. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'gtags-mode "gtags" nil t) - #+END_SRC - - ~jabber.el~ does create ~jabber-autoloads.el~, but I only ever start - using it through ~jabber-connect~, so anything else isn't really - necessary. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'jabber-connect "jabber" nil t) - #+END_SRC - - I used to work a bit on ~php-mode~, but that was a while ago, so - it's still in my ~site-lisp~ directory. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'php-mode "php-mode" nil t) - #+END_SRC - - The same that goes for ~gtags.el~ also goes for ~po-mode.el~. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'po-mode "po-mode" nil t) - #+END_SRC - - And the same that went for ~php-mode~ also goes for ~pony-mode~, - except I'm still working on it and I was too lazy to put it with - my other projects. I should still do that. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'pony-mode "pony-mode" nil t) - #+END_SRC - - ~sawfish.el~ has the same problem that ~gtags.el~ and ~po-mode.el~ have. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'sawfish-mode "sawfish" nil t) - #+END_SRC - - I use =server-running-p= to check whether or not I should start a - new server, but this function isn't autoloaded by default. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'server-running-p "server") - #+END_SRC - - I was starting to try ~slime-js~ to make JavaScript programming - more interesting, but I haven't gotten around to trying it out - fully, yet. It shares issues with ~gtags.el~, ~po-mode.el~ and - ~sawfish.el~. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'slime-js-minor-mode "slime-js" nil t) - #+END_SRC - - I found ~xmodmap-mode~ on the [[http://emacswiki.org][EmacsWiki]] some time ago, it was - simple and a good example of how to use ~define-generic-mode~, but - since it's not really my project and it's really small it just - sits in my ~site-lisp~ directory. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'xmodmap-mode "xmodmap-mode" nil t) - #+END_SRC - - ~w3m~ also has a setup module like ~geiser-install~, but since I only - ever use these two functions to start it, there is no real need - for anything else. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (autoload 'w3m-bookmark-view "w3m" nil t) - (autoload 'w3m-goto-url "w3m" nil t) - #+END_SRC - -* Aliases - - I've never had any trouble with accidentally pressing ~y~ while being - asked a question, so I've never had any reason to prefer ~yes-or-no-p~ - over ~y-or-n-p~. - - #+begin_src emacs-lisp :tangle init2.el - (defalias 'yes-or-no-p 'y-or-n-p) - #+end_src - - ~ibuffer~ is a drop-in replacement for ~list-buffers~, but with more - features. - - #+begin_src emacs-lisp :tangle init2.el - (defalias 'list-buffers 'ibuffer) - #+end_src - - I don't know if replacing ~dabbrev-expand~ with ~hippie-expand~, but at - least ~hippie-expand~ doesn't use ~dabbrev-expand~, and I haven't - noticed anything wrong so far, and ~hippie-expand~ does so much more - than ~dabbrev-expand~. + Before doing anything else I should make sure that both the + directories ~/usr/local/emacs/share/emacs/site-lisp~ and + ~/usr/share/emacs/site-list~ are included in =load-path=, along with + their subdirectories, but only if they haven't already been added + and exist. Place them at the end of =load-path= so they don't mess up + package precedence. #+BEGIN_SRC emacs-lisp :tangle init2.el - (defalias 'dabbrev-expand 'hippie-expand) + (eval-and-compile + (defun oni:path-init (dir) + "Add DIR to `load-path' and all its subdirectories, unless + DIR is already in `load-path'." + (unless (or (member dir load-path) (not (file-exists-p dir))) + (let ((default-directory dir)) + (add-to-list 'load-path dir t) + (normal-top-level-add-subdirs-to-load-path)))) + (oni:path-init "/usr/share/emacs/site-lisp") + (oni:path-init "/usr/local/emacs/share/emacs/site-lisp")) #+END_SRC -* Faces - - Define a face to how the summary line of git commits as the first - headline of an ~org-mode~ file. - - #+begin_src emacs-lisp :tangle init2.el - (defface git-commit-summary-face - '((t (:inherit org-level-1))) - "Face for the git title line." - :group 'local) - #+end_src - - Define a face to show characters that have been placed beyond the - maximum length of a summary line. - - #+begin_src emacs-lisp :tangle init2.el - (defface git-commit-overlong-summary-face - '((t (:background "#873732"))) - "Face for commit titles that are too long." - :group 'local) - #+end_src - - Define a face to show characters that have been placed on the second - line of a git commit. Those should always remain empty. + Add my project [[yoshi-theme]] to =custom-theme-load-path= and load it. #+BEGIN_SRC emacs-lisp :tangle init2.el - (defface git-commit-nonempty-second-line-face - '((t (:inherit git-commit-overlong-summary-face))) - "Face for the supposedly empty line in commit messages." - :group 'local) + (add-to-list 'custom-theme-load-path "~/projects/emacs/yoshi-theme/") + (load-theme 'yoshi t) #+END_SRC -* Keys - - Since the ~C-l~ combination is so much easier than ~C-j~ when using the - [[http://colemak.com][colemak]] keyboard layout and I use ~C-j~ much more, switch them. - - #+BEGIN_SRC emacs-lisp :tangle init2.el - (define-key key-translation-map (kbd "C-j") (kbd "C-l")) - (define-key key-translation-map (kbd "C-l") (kbd "C-j")) - #+END_SRC - -* eldoc - - Diminish ~eldoc~'s lighter to nothing after it loads to keep the - mode-line clean. - - #+begin_src emacs-lisp :tangle init2.el - (eval-after-load "eldoc" - '(diminish 'eldoc-mode)) - #+end_src - -* eshell + Remove the ~menu-bar~, ~tool-bar~ and ~scroll-bar~ from the UI since I + don't use them at all. - After ~em-term.el~ loads add ~unison~ to the ~eshell-visual-commands~ to - make sure it gets unbuffered input. + #+BEGIN_SRC emacs-lisp :tangle init2.el + (menu-bar-mode -1) + (scroll-bar-mode -1) + (tool-bar-mode -1) + #+END_SRC - #+begin_src emacs-lisp :tangle init2.el - (eval-after-load "em-term" - '(add-to-list 'eshell-visual-commands "unison")) - #+end_src + Add any other interesting paths to =load-path= and, if it exists, + load the ~loaddefs.el~ file from these directories. -* Window movement + #+BEGIN_SRC emacs-lisp :tangle init2.el + (mapc #'(lambda (dir) + (add-to-list 'load-path dir) + (let ((loaddefs (concat dir "/loaddefs.el"))) + (when (file-exists-p loaddefs) + (load loaddefs)))) + '("~/projects/emacs/mode-icons" "~/.emacs.d/site-lisp" + "~/projects/emacs/pony-mode/src" "~/projects/emacs/php-mode")) + #+END_SRC - Make it easier to move through windows by using ~windmove~. + Don't ask ~yes~ or ~no~, ask ~y~ or ~n~, I've never had an accidental ~y~ so + far. #+BEGIN_SRC emacs-lisp :tangle init2.el - (windmove-default-keybindings) + (defalias 'yes-or-no-p 'y-or-n-p) #+END_SRC -* Footnotes + Use =ibuffer= instead of the default =list-buffers= because it has many + more features. -[fn:1] Though it doesn't happen often that ~trunk~ is so messed up that -I can't use it. + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defalias 'list-buffers 'ibuffer) + #+END_SRC -[fn:2] Or perhaps all. + Do the same with =hippie-expand= and =dabbrev-expand=. -[fn:3] I think it was ~slime-js-minor-mode~, but I'm not sure. + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defalias 'dabbrev-expand 'hippie-expand) + #+END_SRC diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index a8d36e9..91c4e27 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -87,6 +87,10 @@ DOT are intentionally being skipped." (interactive) (server-save-buffers-kill-terminal nil)) +(defun oni:color-for (object) + "Generate a hex color by taking the first 6 characters of OBJECT's MD5 sum." + (format "#%s" (substring (md5 object) 0 6))) + (defun oni:compile-el () "Compile the current buffer file if it is an .el file." (let* ((full-file-name (buffer-file-name)) @@ -563,16 +567,6 @@ use. If MODE is not nil, open a new buffer with the name default-directory "' request-pull " (when patchp "-p ") from " " url " " to)))))) -(defun oni:required-packages-installed-p () - "Check if all the packages I need are installed." - (let ((tmp-packages oni:required-packages) - (result t)) - (while (and tmp-packages result) - (if (not (package-installed-p (car tmp-packages))) - (setq result nil)) - (setq tmp-packages (cdr tmp-packages))) - result)) - (defun oni:rst-mode-func () "Function for `rst-mode-hook'." (auto-fill-mode)) @@ -639,6 +633,17 @@ If no direction is given, don't split." (emms-player-mpd-connect)) (emms)) +(defun oni:start-python-test-mail-server () + "Run the python test mailserver." + (interactive) + (start-process "python-test-mail-server" "*py-mail-server*" "python" "-m" + "smtpd" "-n" "-c" "DebuggingServer" "localhost:1025")) + +(defun oni:stop-python-test-mail-server () + "Stop the python test mailserver." + (interactive) + (kill-process "python-test-mail-server")) + (defun oni:term-mode-func () "Function for `term-mode-hook'." (setq truncate-lines nil)) @@ -676,6 +681,14 @@ for easy selection." "Initialization function for yasnippet." (diminish 'yas-minor-mode)) +(defvar oni:auto-save-name-transforms + `((".*" ,temporary-file-directory t)) + "Place all auto-save files in `temporary-file-directory'.") + +(defvar oni:backup-directory-alist + `((".*" . ,temporary-file-directory)) + "Palce all backup files in `temporary-file-directory'.") + (defvar oni:mailbox-map '("top" ("menu" ("ryulash.org" . "ryuslash") @@ -684,11 +697,5 @@ for easy selection." ("aethon" . "aethon"))) "A mailbox map for use with `tmm-prompt'.") -(defvar oni:required-packages - '(graphviz-dot-mode htmlize magit rainbow-delimiters rainbow-mode - yasnippet markdown-mode flymake flymake-cursor sauron expand-region - git-auto-commit-mode idomenu magit smex) - "List of all the packages I have (want) installed.") - (provide 'oni) ;;; oni.el ends here -- cgit v1.2.3-54-g00ecf From 5a1e9f2ea8ec2b7e625539ee2bd4006dce269eb2 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 28 Jan 2013 00:18:29 +0100 Subject: Move eldoc settings to org --- .emacs.d/init.el | 1 - .emacs.d/init.org | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index dddef30..ac10520 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -23,7 +23,6 @@ "Face for the supposedly empty line in commit messages." :group 'local) -(eval-after-load "eldoc" '(diminish 'eldoc-mode)) (eval-after-load "em-term" '(add-to-list 'eshell-visual-commands "unison")) (eval-after-load "emms-source-file" '(oni:emms-init)) (eval-after-load "flymake" '(oni:flymake-init)) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index ac7f7c1..d46e722 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -74,3 +74,11 @@ #+BEGIN_SRC emacs-lisp :tangle init2.el (defalias 'dabbrev-expand 'hippie-expand) #+END_SRC + + Don't show it when ~eldoc~ is running, I almost assume that it is + whenever I'm working in a mode that supports it anyway. This should + only execute once ~eldoc~ has been loaded. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (eval-after-load "eldoc" '(diminish 'eldoc-mode)) + #+END_SRC -- cgit v1.2.3-54-g00ecf From 7d719f694b745151093db7da3ad9ee9c63483368 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 28 Jan 2013 00:43:57 +0100 Subject: Move eshell settings to org --- .emacs.d/init.el | 6 --- .emacs.d/init.org | 93 +++++++++++++++++++++++++++++++++++++++++++++++ .emacs.d/site-lisp/oni.el | 46 ----------------------- 3 files changed, 93 insertions(+), 52 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index ac10520..979c0f5 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -23,7 +23,6 @@ "Face for the supposedly empty line in commit messages." :group 'local) -(eval-after-load "em-term" '(add-to-list 'eshell-visual-commands "unison")) (eval-after-load "emms-source-file" '(oni:emms-init)) (eval-after-load "flymake" '(oni:flymake-init)) (eval-after-load "ido" '(oni:ido-init)) @@ -107,9 +106,6 @@ (setq erc-nick "ryuslash") (setq erc-timestamp-format "[%H:%M] ") (setq erc-timestamp-only-if-changed-flag nil) -(setq eshell-highlight-prompt nil) -(setq eshell-prompt-function 'oni:eshell-prompt-function) -(setq eshell-prompt-regexp "^[#$]> ") (setq fci-rule-color "darkred") (setq flymake-gui-warnings-enabled nil) (setq flymake-info-line-regexp @@ -235,7 +231,6 @@ (add-hook 'diary-display-hook 'oni:diary-display-func) (add-hook 'emacs-lisp-mode-hook 'oni:emacs-lisp-mode-func) (add-hook 'erc-mode-hook 'oni:erc-mode-func) -(add-hook 'eshell-mode-hook 'oni:eshell-mode-func) (add-hook 'flymake-mode-hook 'oni:flymake-mode-func) (add-hook 'go-mode-hook 'oni:go-mode-func) (add-hook 'gtags-mode-hook 'oni:gtags-mode-func) @@ -275,7 +270,6 @@ (global-set-key (kbd "") 'ext:reload-buffer) (global-set-key (kbd "") 'jabber-switch-to-roster-buffer) (global-set-key (kbd "") 'magit-status) -(global-set-key (kbd "") 'oni:raise-eshell) (global-set-key (kbd "C-<") 'oni:indent-shift-left) (global-set-key (kbd "C->") 'oni:indent-shift-right) (global-set-key (kbd "C-M-4") 'split-window-vertically) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index d46e722..9caead5 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -82,3 +82,96 @@ #+BEGIN_SRC emacs-lisp :tangle init2.el (eval-after-load "eldoc" '(diminish 'eldoc-mode)) #+END_SRC + +** Eshell + + Add ~unison~ to the list of =eshell-visual-commands= because it + expects unbuffered input and eshell just doesn't give that. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (eval-after-load "em-term" + '(add-to-list 'eshell-visual-commands "unison")) + #+END_SRC + + Don't let eshell highlight it's prompt, this way I can decide the + colors for it myself. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (setq eshell-highlight-prompt nil) + #+END_SRC + + In the prompt: + + - Show the exit status of the last program/command run represented + by a green ~+~ and a red ~-~ sign. + - Show the current hostname with the =mode-line-buffer-id= face. + - Show an abbreviation of the current directory (as seen in ~fish~) + using the =font-lock-string-face= face. + - If we're in a git repository, show the current branch with the + =font-lock-function-name-face= face. + - Show the status of priviledges in blue. + + And set the =eshell-prompt-regexp= to + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:eshell-prompt-function () + "Show a pretty shell prompt." + (let ((status (if (zerop eshell-last-command-status) ?+ ?-)) + (hostname (shell-command-to-string "hostname")) + (dir (abbreviate-file-name (eshell/pwd))) + (branch + (shell-command-to-string + "git branch --contains HEAD 2>/dev/null | sed -e '/^[^*]/d'")) + (userstatus (if (zerop (user-uid)) ?# ?$))) + (concat + (propertize (char-to-string status) + 'face `(:foreground ,(if (= status ?+) + "green" + "red"))) + " " + (propertize (substring hostname 0 -1) 'face 'mode-line-buffer-id) + " " + (propertize (oni:shorten-dir dir) 'face 'font-lock-string-face) + " " + (when (not (string= branch "")) + (propertize + ;; Cut off "* " and "\n" + (substring branch 2 -1) + 'face 'font-lock-function-name-face)) + " \n" + (propertize (char-to-string userstatus) + 'face `(:foreground "blue")) + "> "))) + + (setq eshell-prompt-function 'oni:eshell-prompt-function + eshell-prompt-regexp "^[#$]> ") + #+END_SRC + + Don't truncate lines in eshell, wrap them. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:eshell-mode-func () + "Function for `eshell-mode-hook'." + (setq truncate-lines nil)) + + (add-hook 'eshell-mode-hook 'oni:eshell-mode-func) + #+END_SRC + + Bind the ~f8~ key to easily show eshell. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:raise-eshell () + "Start or switch back to `eshell'. + Also change directories to current working directory." + (interactive) + (let ((dir (file-name-directory + (or (buffer-file-name) "~/"))) + (hasfile (not (eq (buffer-file-name) nil)))) + (eshell) + (if (and hasfile (eq eshell-process-list nil)) + (progn + (eshell/cd dir) + (eshell-reset))))) + + (global-set-key (kbd "") 'oni:raise-eshell) + #+END_SRC diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 91c4e27..d6aae02 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -147,39 +147,6 @@ DOT are intentionally being skipped." (visual-line-mode) (setq truncate-lines nil)) -(defun oni:eshell-mode-func () - "Function for `eshell-mode-hook'." - (setq truncate-lines nil)) - -(defun oni:eshell-prompt-function () - "Show a pretty shell prompt." - (let ((status (if (zerop eshell-last-command-status) ?+ ?-)) - (hostname (shell-command-to-string "hostname")) - (dir (abbreviate-file-name (eshell/pwd))) - (branch - (shell-command-to-string - "git branch --contains HEAD 2>/dev/null | sed -e '/^[^*]/d'")) - (userstatus (if (zerop (user-uid)) ?# ?$))) - (concat - (propertize (char-to-string status) - 'face `(:foreground ,(if (= status ?+) - "green" - "red"))) - " " - (propertize (substring hostname 0 -1) 'face 'mode-line-buffer-id) - " " - (propertize (oni:shorten-dir dir) 'face 'font-lock-string-face) - " " - (when (not (string= branch "")) - (propertize - ;; Cut off "* " and "\n" - (substring branch 2 -1) - 'face 'font-lock-function-name-face)) - " \n" - (propertize (char-to-string userstatus) - 'face `(:foreground "blue")) - "> "))) - (defun oni:flymake-init () "Initialization function for flymake." (require 'flymake-cursor) @@ -492,19 +459,6 @@ ignored." (switch-to-buffer buffer) (call-interactively 'ansi-term)))) -(defun oni:raise-eshell () - "Start or switch back to `eshell'. -Also change directories to current working directory." - (interactive) - (let ((dir (file-name-directory - (or (buffer-file-name) "~/"))) - (hasfile (not (eq (buffer-file-name) nil)))) - (eshell) - (if (and hasfile (eq eshell-process-list nil)) - (progn - (eshell/cd dir) - (eshell-reset))))) - (defun oni:raise-scratch (&optional mode) "Show the *scratch* buffer. If called with a universal argument, ask the user which mode to -- cgit v1.2.3-54-g00ecf From 6d8ad04933b072124f62920a510f135c94dd7ab6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 00:54:40 +0100 Subject: New awesome rc.lua --- .config/awesome/rc.lua | 615 +++++++++++++++++++++++++------------------------ 1 file changed, 313 insertions(+), 302 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 6132386..23d7210 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -1,16 +1,21 @@ -require("awful") +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +-- Notification library +local naughty = require("naughty") +local menubar = require("menubar") + +awful.rules = require("awful.rules") require("awful.autofocus") -require("awful.rules") -require("beautiful") -require("bowl") -require("keychain") -require("naughty") -require("ext") -require("oni") - ---- Error handling --- Check if awesome encountered an error during startup and fell back to --- another config (This code will only ever execute for the fallback config) + +----- Error handling +-- Check if awesome encountered an error during startup and fell back +-- to another config (This code will only ever execute for the +-- fallback config) if awesome.startup_errors then naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, there were errors during startup!", @@ -20,7 +25,7 @@ end -- Handle runtime errors after startup do local in_error = false - awesome.add_signal("debug::error", function (err) + awesome.connect_signal("debug::error", function (err) -- Make sure we don't go into an endless error loop if in_error then return end in_error = true @@ -31,33 +36,26 @@ do in_error = false end) end - --- {{{ Variable definitions + +----- Variable definitions -- Themes define colours, icons, and wallpapers -beautiful.init("/home/slash/.config/awesome/themes/custom/theme.lua") - -bowl.init({ use_timers = true, timeout = 1 }) -bowl.default_setup() - -keychain.init({ escapes = { - keychain.keystroke ({ }, "Escape"), - keychain.keystroke ({ "Control", }, "g") -} }) +beautiful.init("/usr/share/awesome/themes/default/theme.lua") -- This is used later as the default terminal and editor to run. terminal = "urxvt" editor = os.getenv("EDITOR") or "nano" editor_cmd = terminal .. " -e " .. editor --- Default modkey. --- Usually, Mod4 is the key with a logo between Control and Alt. --- If you do not like this or do not have such a key, --- I suggest you to remap Mod4 to another key using xmodmap or other tools. --- However, you can use another modifier like Mod1, but it may interact with others. +----- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. If +-- you do not like this or do not have such a key, I suggest you to +-- remap Mod4 to another key using xmodmap or other tools. However, +-- you can use another modifier like Mod1, but it may interact with +-- others. modkey = "Mod4" -- Table of layouts to cover with awful.layout.inc, order matters. -layouts = +local layouts = { awful.layout.suit.tile, awful.layout.suit.tile.left, @@ -65,23 +63,30 @@ layouts = awful.layout.suit.tile.top, awful.layout.suit.fair, awful.layout.suit.fair.horizontal, + awful.layout.suit.spiral, + awful.layout.suit.spiral.dwindle, awful.layout.suit.max, awful.layout.suit.max.fullscreen, awful.layout.suit.magnifier, awful.layout.suit.floating } --- }}} - --- {{{ Tags + +----- Wallpaper +if beautiful.wallpaper then + for s = 1, screen.count() do + gears.wallpaper.maximized(beautiful.wallpaper, s, true) + end +end + +----- Tags -- Define a tag table which hold all screen tags. tags = {} for s = 1, screen.count() do -- Each screen has its own tag table. tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1]) end --- }}} - --- {{{ Menu + +----- Menu -- Create a laucher widget and a main menu myawesomemenu = { { "manual", terminal .. " -e man awesome" }, @@ -90,38 +95,20 @@ myawesomemenu = { { "quit", awesome.quit } } -mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "open terminal", terminal } - } - }) +mymainmenu = awful.menu( + { items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, + { "open terminal", terminal } } }) -mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon), +mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu }) --- }}} --- {{{ Wibox +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications + -- that require it + +----- Wibox -- Create a textclock widget -mytextclock = awful.widget.textclock({ align = "right" }) - --- Create a systray -mysystray = widget({ type = "systray" }) - --- Create a mailbox widget -myryumailbox = oni.mailcount_widgets("ryu", "ryuslash.org", "ryuslash") -myaethonmailbox = oni.mailcount_widgets("aet", "aethon", "aethon") -mygmailmailbox = oni.mailcount_widgets("gmail", "gmail", "gmail") -my9fmailbox = oni.mailcount_widgets("9f", "ninthfloor", "ninthfloor") - -mymailboxtimer = timer({ timeout = 60 }) -mymailboxtimer:add_signal( - "timeout", - function () - myryumailbox.count.text = string.format(" %d ", oni.mailcount("ryuslash.org")) - myaethonmailbox.count.text = string.format(" %d ", oni.mailcount("aethon")) - mygmailmailbox.count.text = string.format(" %d ", oni.mailcount("gmail")) - my9fmailbox.count.text = string.format(" %d ", oni.mailcount("ninthfloor")) - end) -mymailboxtimer:start() +mytextclock = awful.widget.textclock() -- Create a wibox for each screen and add it mywibox = {} @@ -129,286 +116,310 @@ mypromptbox = {} mylayoutbox = {} mytaglist = {} mytaglist.buttons = awful.util.table.join( - awful.button({ }, 1, awful.tag.viewonly), - awful.button({ modkey }, 1, awful.client.movetotag), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, awful.client.toggletag), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) - ) + awful.button({ }, 1, awful.tag.viewonly), + awful.button({ modkey }, 1, awful.client.movetotag), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, awful.client.toggletag), + awful.button({ }, 4, + function(t) + awful.tag.viewnext(awful.tag.getscreen(t)) + end), + awful.button({ }, 5, + function(t) + awful.tag.viewprev(awful.tag.getscreen(t)) + end)) mytasklist = {} -mytasklist.buttons = awful.util.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - if not c:isvisible() then - awful.tag.viewonly(c:tags()[1]) - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), - awful.button({ }, 3, function () - if instance then - instance:hide() - instance = nil - else - instance = awful.menu.clients({ width=250 }) - end - end), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - if client.focus then client.focus:raise() end - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end)) for s = 1, screen.count() do -- Create a promptbox for each screen - mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright }) + mypromptbox[s] = awful.widget.prompt() -- Create an imagebox widget which will contains an icon indicating which layout we're using. -- We need one layoutbox per screen. mylayoutbox[s] = awful.widget.layoutbox(s) - mylayoutbox[s]:buttons(awful.util.table.join( - awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end), - awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end))) + mylayoutbox[s]:buttons( + awful.util.table.join( + awful.button({ }, 1, + function () awful.layout.inc(layouts, 1) end), + awful.button({ }, 3, + function () awful.layout.inc(layouts, -1) end), + awful.button({ }, 4, + function () awful.layout.inc(layouts, 1) end), + awful.button({ }, 5, + function () awful.layout.inc(layouts, -1) end))) -- Create a taglist widget - mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons) + mytaglist[s] = awful.widget.taglist( + s, awful.widget.taglist.filter.all, mytaglist.buttons) -- Create a tasklist widget - mytasklist[s] = awful.widget.tasklist(function(c) - return awful.widget.tasklist.label.currenttags(c, s) - end, mytasklist.buttons) + mytasklist[s] = awful.widget.tasklist( + s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons) -- Create the wibox mywibox[s] = awful.wibox({ position = "top", screen = s }) - -- Add widgets to the wibox - order matters - mywibox[s].widgets = { - { - mylauncher, - mytaglist[s], - mypromptbox[s], - layout = awful.widget.layout.horizontal.leftright - }, - mylayoutbox[s], - mytextclock, - s == 1 and mysystray or nil, - s == 1 and my9fmailbox.count or nil, - s == 1 and my9fmailbox.label or nil, - s == 1 and mygmailmailbox.count or nil, - s == 1 and mygmailmailbox.label or nil, - s == 1 and myaethonmailbox.count or nil, - s == 1 and myaethonmailbox.label or nil, - s == 1 and myryumailbox.count or nil, - s == 1 and myryumailbox.label or nil, - mytasklist[s], - layout = awful.widget.layout.horizontal.rightleft - } + + -- Widgets that are aligned to the left + local left_layout = wibox.layout.fixed.horizontal() + left_layout:add(mylauncher) + left_layout:add(mytaglist[s]) + left_layout:add(mypromptbox[s]) + + -- Widgets that are aligned to the right + local right_layout = wibox.layout.fixed.horizontal() + if s == 1 then right_layout:add(wibox.widget.systray()) end + right_layout:add(mytextclock) + right_layout:add(mylayoutbox[s]) + + -- Now bring it all together (with the tasklist in the middle) + local layout = wibox.layout.align.horizontal() + layout:set_left(left_layout) + layout:set_middle(mytasklist[s]) + layout:set_right(right_layout) + + mywibox[s]:set_widget(layout) end --- }}} - --- {{{ Mouse bindings -root.buttons(awful.util.table.join( - awful.button({ }, 3, function () mymainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) -)) --- }}} - --- {{{ Key bindings -local bind = keychain -local sub = keychain.sub + +------ Mouse bindings +root.buttons( + awful.util.table.join( + awful.button({ }, 3, function () mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewnext), + awful.button({ }, 5, awful.tag.viewprev))) + +----- Key bindings globalkeys = awful.util.table.join( - bind({ "Control", }, "i", - { sub({ }, "space", ext.next_client), - sub({ }, ",", - function () awful.screen.focus_relative(1) end), - sub({ }, ".", - function () awful.screen.focus_relative(-1) end), - sub({ "Shift", }, "1", - function () mypromptbox[mouse.screen]:run() end), - sub({ }, "f", function () oni.focus_raise("right") end), - sub({ }, "b", function () oni.focus_raise("left") end), - sub({ }, "n", function () oni.focus_raise("down") end), - sub({ }, "p", function () oni.focus_raise("up") end), - sub({ }, "c", oni.ror_term), - sub({ "Shift", }, "c", oni.run_term), - sub({ }, "e", oni.ror_editor), - sub({ "Shift", }, "e", oni.run_editor), - sub({ }, "w", oni.ror_browser), - sub({ "Shift", }, "w", oni.run_browser), - sub({ "Control", }, "i", ext.prev_client) }), - awful.key({ "Control", "Mod1" }, "l", - function () awful.util.spawn("i3lock -c 000000") end), - awful.key({ modkey, }, "Left", awful.tag.viewprev ), - awful.key({ modkey, }, "Right", awful.tag.viewnext ), - awful.key({ modkey, }, "Escape", awful.tag.history.restore), - - -- awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end), + awful.key({ modkey, }, "Left", awful.tag.viewprev), + awful.key({ modkey, }, "Right", awful.tag.viewnext), + awful.key({ modkey, }, "Escape", awful.tag.history.restore), + + awful.key({ modkey, }, "n", + function () + awful.client.focus.byidx(1) + if client.focus then client.focus:raise() end + end), + awful.key({ modkey, }, "p", + function () + awful.client.focus.byidx(-1) + if client.focus then client.focus:raise() end + end), + awful.key({ modkey, }, "w", function () mymainmenu:show() end), -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto), + awful.key({ modkey, "Shift" }, "n", + function () awful.client.swap.byidx(1) end), + awful.key({ modkey, "Shift" }, "p", + function () awful.client.swap.byidx(-1) end), + awful.key({ modkey, "Control" }, "n", + function () awful.screen.focus_relative(1) end), + awful.key({ modkey, "Control" }, "p", + function () awful.screen.focus_relative(-1) end), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto), + awful.key({ modkey, }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end), -- Standard program - awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end), + awful.key({ modkey, }, "Return", + function () awful.util.spawn(terminal) end), awful.key({ modkey, "Control" }, "r", awesome.restart), - awful.key({ modkey, "Shift" }, "q", awesome.quit), - - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end), - awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end), - - awful.key({ modkey, "Control" }, "n", awful.client.restore), + awful.key({ modkey, "Shift" }, "q", awesome.quit), + + awful.key({ modkey, }, "l", + function () awful.tag.incmwfact( 0.05) end), + awful.key({ modkey, }, "h", + function () awful.tag.incmwfact(-0.05) end), + awful.key({ modkey, "Shift" }, "h", + function () awful.tag.incnmaster(1) end), + awful.key({ modkey, "Shift" }, "l", + function () awful.tag.incnmaster(-1) end), + awful.key({ modkey, "Control" }, "h", + function () awful.tag.incncol(1) end), + awful.key({ modkey, "Control" }, "l", + function () awful.tag.incncol(-1) end), + awful.key({ modkey, }, "space", + function () awful.layout.inc(layouts, 1) end), + awful.key({ modkey, "Shift" }, "space", + function () awful.layout.inc(layouts, -1) end), + + awful.key({ modkey, "Control" }, "j", awful.client.restore), -- Prompt - awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end), + awful.key({ modkey }, "r", + function () mypromptbox[mouse.screen]:run() end), awful.key({ modkey }, "x", function () - awful.prompt.run({ prompt = "Run Lua code: " }, - mypromptbox[mouse.screen].widget, - awful.util.eval, nil, - awful.util.getdir("cache") .. "/history_eval") - end) -) + awful.prompt.run( + { prompt = "Run Lua code: " }, + mypromptbox[mouse.screen].widget, + awful.util.eval, nil, + awful.util.getdir("cache") .. "/history_eval") + end)) + -- Menubar + -- awful.key({ modkey }, "p", function() menubar.show() end)) clientkeys = awful.util.table.join( - awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), - awful.key({ modkey, }, "o", awful.client.movetoscreen ), - awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), - awful.key({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end), - awful.key({ modkey, }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c.maximized_vertical = not c.maximized_vertical - end) -) + awful.key({ modkey, }, "f", + function (c) c.fullscreen = not c.fullscreen end), + awful.key({ modkey, "Shift" }, "c", + function (c) c:kill() end), + awful.key({ modkey, "Control" }, "space", + awful.client.floating.toggle), + awful.key({ modkey, "Control" }, "Return", + function (c) c:swap(awful.client.getmaster()) end), + awful.key({ modkey, }, "o", awful.client.movetoscreen), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), + awful.key({ modkey, }, "m", + function (c) + c.maximized_horizontal = not c.maximized_horizontal + c.maximized_vertical = not c.maximized_vertical + end)) -- Compute the maximum number of digit we need, limited to 9 keynumber = 0 for s = 1, screen.count() do - keynumber = math.min(9, math.max(#tags[s], keynumber)); + keynumber = math.min(9, math.max(#tags[s], keynumber)) end --- Bind all key numbers to tags. --- Be careful: we use keycodes to make it works on any keyboard layout. --- This should map on the top row of your keyboard, usually 1 to 9. +-- Bind all key numbers to tags. Be careful: we use keycodes to make +-- it works on any keyboard layout. This should map on the top row of +-- your keyboard, usually 1 to 9. for i = 1, keynumber do - globalkeys = awful.util.table.join(globalkeys, - awful.key({ modkey }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewonly(tags[screen][i]) - end - end), - awful.key({ modkey, "Control" }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewtoggle(tags[screen][i]) - end - end), - awful.key({ modkey, "Shift" }, "#" .. i + 9, - function () - if client.focus and tags[client.focus.screen][i] then - awful.client.movetotag(tags[client.focus.screen][i]) - end - end), - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function () - if client.focus and tags[client.focus.screen][i] then - awful.client.toggletag(tags[client.focus.screen][i]) - end - end)) + globalkeys = awful.util.table.join( + globalkeys, + awful.key({ modkey }, "#" .. i + 9, + function () + local screen = mouse.screen + if tags[screen][i] then + awful.tag.viewonly(tags[screen][i]) + end + end), + awful.key({ modkey, "Control" }, "#" .. i + 9, + function () + local screen = mouse.screen + if tags[screen][i] then + awful.tag.viewtoggle(tags[screen][i]) + end + end), + awful.key({ modkey, "Shift" }, "#" .. i + 9, + function () + if client.focus and tags[client.focus.screen][i] then + awful.client.movetotag(tags[client.focus.screen][i]) + end + end), + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, + function () + if client.focus and tags[client.focus.screen][i] then + awful.client.toggletag(tags[client.focus.screen][i]) + end + end)) end clientbuttons = awful.util.table.join( - awful.button({ }, 1, function (c) client.focus = c; c:raise() end), - awful.button({ modkey }, 1, awful.mouse.client.move), - awful.button({ modkey }, 3, awful.mouse.client.resize)) + awful.button({ }, 1, function (c) client.focus = c; c:raise() end), + awful.button({ modkey }, 1, awful.mouse.client.move), + awful.button({ modkey }, 3, awful.mouse.client.resize)) -- Set keys root.keys(globalkeys) --- }}} - --- {{{ Rules + +----- Rules awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = true, - keys = clientkeys, - buttons = clientbuttons } }, - { rule = { class = "MPlayer" }, - properties = { floating = true } }, - { rule = { class = "pinentry" }, - properties = { floating = true } }, - { rule = { class = "gimp" }, - properties = { floating = true } }, - { rule = { class = "Emacs" }, - properties = { tag = tags[1][1] } }, - -- Set Firefox to always map on tags number 2 of screen 1. - { rule = { class = "Firefox" }, - properties = { tag = tags[2][1] } }, - { rule = { class = "Conkeror" }, - properties = { tag = tags[2][1] } }, - { rule = { class = "URxvt" }, - properties = { tag = tags[2][1] } }, + -- All clients will match this rule. + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + keys = clientkeys, + buttons = clientbuttons } }, + { rule = { class = "MPlayer" }, + properties = { floating = true } }, + { rule = { class = "pinentry" }, + properties = { floating = true } }, + { rule = { class = "gimp" }, + properties = { floating = true } }, + { rule = { class = "Conkeror" }, + properties = { floating = false, + tag = tags[2][1] } }, + -- Set Firefox to always map on tags number 2 of screen 1. + -- { rule = { class = "Firefox" }, + -- properties = { tag = tags[1][2] } }, } --- }}} - --- {{{ Signals + +----- Signals -- Signal function to execute when a new client appears. -client.add_signal("manage", function (c, startup) - -- Add a titlebar - -- awful.titlebar.add(c, { modkey = modkey }) - - -- Enable sloppy focus - c:add_signal("mouse::enter", function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier - and awful.client.focus.filter(c) then +client.connect_signal( + "manage", + function (c, startup) + -- Enable sloppy focus + c:connect_signal( + "mouse::enter", + function(c) + if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier + and awful.client.focus.filter(c) then client.focus = c - end - end) - - if not startup then - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - -- awful.client.setslave(c) - - -- Put windows in a smart way, only if they does not set an initial position. - if not c.size_hints.user_position and not c.size_hints.program_position then - awful.placement.no_overlap(c) - awful.placement.no_offscreen(c) - end - end -end) + end + end) + + if not startup then + -- Set the windows at the slave, i.e. put it at the end of + -- others instead of setting it master. + -- awful.client.setslave(c) + + -- Put windows in a smart way, only if they does not set an + -- initial position. + if not c.size_hints.user_position + and not c.size_hints.program_position then + awful.placement.no_overlap(c) + awful.placement.no_offscreen(c) + end + end + + local titlebars_enabled = false + if titlebars_enabled + and (c.type == "normal" or c.type == "dialog") then + -- Widgets that are aligned to the left + local left_layout = wibox.layout.fixed.horizontal() + left_layout:add(awful.titlebar.widget.iconwidget(c)) + + -- Widgets that are aligned to the right + local right_layout = wibox.layout.fixed.horizontal() + right_layout:add(awful.titlebar.widget.floatingbutton(c)) + right_layout:add(awful.titlebar.widget.maximizedbutton(c)) + right_layout:add(awful.titlebar.widget.stickybutton(c)) + right_layout:add(awful.titlebar.widget.ontopbutton(c)) + right_layout:add(awful.titlebar.widget.closebutton(c)) + + -- The title goes in the middle + local title = awful.titlebar.widget.titlewidget(c) + title:buttons(awful.util.table.join( + awful.button({ }, 1, + function() + client.focus = c + c:raise() + awful.mouse.client.move(c) + end), + awful.button({ }, 3, + function() + client.focus = c + c:raise() + awful.mouse.client.resize(c) + end))) + + -- Now bring it all together + local layout = wibox.layout.align.horizontal() + layout:set_left(left_layout) + layout:set_right(right_layout) + layout:set_middle(title) + + awful.titlebar(c):set_widget(layout) + end + end) -client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end) -client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) --- }}} +client.connect_signal( + "focus", function(c) c.border_color = beautiful.border_focus end) +client.connect_signal( + "unfocus", function(c) c.border_color = beautiful.border_normal end) -- cgit v1.2.3-54-g00ecf From 8e4b7f0f1676b187fc620abc0646728b6d3442ed Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 00:59:21 +0100 Subject: awesome: remove mouse bindings --- .config/awesome/rc.lua | 56 +------------------------------------------------- 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 23d7210..645b1f7 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -115,19 +115,6 @@ mywibox = {} mypromptbox = {} mylayoutbox = {} mytaglist = {} -mytaglist.buttons = awful.util.table.join( - awful.button({ }, 1, awful.tag.viewonly), - awful.button({ modkey }, 1, awful.client.movetotag), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, awful.client.toggletag), - awful.button({ }, 4, - function(t) - awful.tag.viewnext(awful.tag.getscreen(t)) - end), - awful.button({ }, 5, - function(t) - awful.tag.viewprev(awful.tag.getscreen(t)) - end)) mytasklist = {} for s = 1, screen.count() do @@ -136,16 +123,6 @@ for s = 1, screen.count() do -- Create an imagebox widget which will contains an icon indicating which layout we're using. -- We need one layoutbox per screen. mylayoutbox[s] = awful.widget.layoutbox(s) - mylayoutbox[s]:buttons( - awful.util.table.join( - awful.button({ }, 1, - function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 3, - function () awful.layout.inc(layouts, -1) end), - awful.button({ }, 4, - function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 5, - function () awful.layout.inc(layouts, -1) end))) -- Create a taglist widget mytaglist[s] = awful.widget.taglist( s, awful.widget.taglist.filter.all, mytaglist.buttons) @@ -178,13 +155,6 @@ for s = 1, screen.count() do mywibox[s]:set_widget(layout) end ------- Mouse bindings -root.buttons( - awful.util.table.join( - awful.button({ }, 3, function () mymainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev))) - ----- Key bindings globalkeys = awful.util.table.join( awful.key({ modkey, }, "Left", awful.tag.viewprev), @@ -318,11 +288,6 @@ for i = 1, keynumber do end)) end -clientbuttons = awful.util.table.join( - awful.button({ }, 1, function (c) client.focus = c; c:raise() end), - awful.button({ modkey }, 1, awful.mouse.client.move), - awful.button({ modkey }, 3, awful.mouse.client.resize)) - -- Set keys root.keys(globalkeys) @@ -333,8 +298,7 @@ awful.rules.rules = { properties = { border_width = beautiful.border_width, border_color = beautiful.border_normal, focus = awful.client.focus.filter, - keys = clientkeys, - buttons = clientbuttons } }, + keys = clientkeys } }, { rule = { class = "MPlayer" }, properties = { floating = true } }, { rule = { class = "pinentry" }, @@ -387,27 +351,9 @@ client.connect_signal( -- Widgets that are aligned to the right local right_layout = wibox.layout.fixed.horizontal() - right_layout:add(awful.titlebar.widget.floatingbutton(c)) - right_layout:add(awful.titlebar.widget.maximizedbutton(c)) - right_layout:add(awful.titlebar.widget.stickybutton(c)) - right_layout:add(awful.titlebar.widget.ontopbutton(c)) - right_layout:add(awful.titlebar.widget.closebutton(c)) -- The title goes in the middle local title = awful.titlebar.widget.titlewidget(c) - title:buttons(awful.util.table.join( - awful.button({ }, 1, - function() - client.focus = c - c:raise() - awful.mouse.client.move(c) - end), - awful.button({ }, 3, - function() - client.focus = c - c:raise() - awful.mouse.client.resize(c) - end))) -- Now bring it all together local layout = wibox.layout.align.horizontal() -- cgit v1.2.3-54-g00ecf From 566344ffba82d219237893902474bec1644ad083 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:05:12 +0100 Subject: awesome: add run_or_raises --- .config/awesome/rc.lua | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 645b1f7..1ba9689 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -12,6 +12,25 @@ local menubar = require("menubar") awful.rules = require("awful.rules") require("awful.autofocus") +function ror(program, cls) + local rorfunc = function () + local matcher = function (c) + return awful.rules.match(c, { class = cls }) + end + + awful.client.run_or_raise(program, matcher) + end + + return rorfunc +end + +function ror_combo(mod, key, program, class) + return awful.util.table.join( + awful.key(mod, key, ror(program, class)), + awful.key(awful.util.table.join(mod, { "Shift" }), key, + function () awful.util.spawn(program) end)) +end + ----- Error handling -- Check if awesome encountered an error during startup and fell back -- to another config (This code will only ever execute for the @@ -171,7 +190,6 @@ globalkeys = awful.util.table.join( awful.client.focus.byidx(-1) if client.focus then client.focus:raise() end end), - awful.key({ modkey, }, "w", function () mymainmenu:show() end), -- Layout manipulation awful.key({ modkey, "Shift" }, "n", @@ -227,9 +245,11 @@ globalkeys = awful.util.table.join( mypromptbox[mouse.screen].widget, awful.util.eval, nil, awful.util.getdir("cache") .. "/history_eval") - end)) - -- Menubar - -- awful.key({ modkey }, "p", function() menubar.show() end)) + end), + + ror_combo({ modkey }, "e", 'emacsclient -ca emacs', 'Emacs'), + ror_combo({ modkey }, "c", 'urxvt', 'URxvt'), + ror_combo({ modkey }, "w", 'conkeror', 'Conkeror')) clientkeys = awful.util.table.join( awful.key({ modkey, }, "f", -- cgit v1.2.3-54-g00ecf From 99bc512747947b196ed42dd284999304052bba99 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:33:36 +0100 Subject: Xinit: Start xflux, awesome, not fehlstart --- .xinitrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.xinitrc b/.xinitrc index 980efb6..0db20a6 100755 --- a/.xinitrc +++ b/.xinitrc @@ -10,7 +10,7 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then fi emacs --daemon & -fehlstart & +xflux -l 51.1180 -g 4.0012 -test -n "$1" && wm=$1 || wm="stumpwm" +test -n "$1" && wm=$1 || wm="awesome" exec $wm -- cgit v1.2.3-54-g00ecf From a2d298d3ab1c0df575ab70b145f5e965a867db6b Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:33:57 +0100 Subject: stumpwm: fix type --- .stumpwmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stumpwmrc b/.stumpwmrc index 627d2b5..d2a8d9e 100644 --- a/.stumpwmrc +++ b/.stumpwmrc @@ -112,7 +112,7 @@ (setf *shell-program* (getenv "SHELL")) (setf *transient-border-width* 1) (setf *window-format* "%m%50t") -(setf *window-boder-style* :thin) +(setf *window-border-style* :thin) (setf *screen-mode-line-format* (list "[%n]" '(:eval -- cgit v1.2.3-54-g00ecf From 999a9ab971afafad721ae2859ccaa5b12efb58cb Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:34:28 +0100 Subject: stumpwm: Use C-z for prefix, not C-i I seem to use C-z less than C-i in other programs. --- .stumpwmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stumpwmrc b/.stumpwmrc index d2a8d9e..bdc7395 100644 --- a/.stumpwmrc +++ b/.stumpwmrc @@ -125,7 +125,7 @@ (format-expand *window-formatters* *window-format* (current-window))))) -(set-prefix-key (kbd "C-i")) +(set-prefix-key (kbd "C-z")) (define-key *top-map* (kbd "C-M-l") "run-i3lock") -- cgit v1.2.3-54-g00ecf From a89de59d033161bdb24f0688002c6cc35a87c8e6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:36:09 +0100 Subject: Emacs: increase font size --- .emacs.d/init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 979c0f5..94e2ad3 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -96,7 +96,7 @@ (vertical-scroll-bars . nil) (menu-bar-lines . nil) (tool-bar-lines . nil) - (font . "Monaco-12"))) + (font . "Monaco:pixelsize=18"))) (setq elnode-do-init nil) (setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist -- cgit v1.2.3-54-g00ecf From 3eb70ea08594a6759becfefd868c18296fab1689 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 02:39:38 +0100 Subject: awesome: Add keybinding for i3lock --- .config/awesome/rc.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 1ba9689..30ec573 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -249,7 +249,9 @@ globalkeys = awful.util.table.join( ror_combo({ modkey }, "e", 'emacsclient -ca emacs', 'Emacs'), ror_combo({ modkey }, "c", 'urxvt', 'URxvt'), - ror_combo({ modkey }, "w", 'conkeror', 'Conkeror')) + ror_combo({ modkey }, "w", 'conkeror', 'Conkeror'), + awful.key({ "Control", "Mod1" }, "l", + function () awful.util.spawn('i3lock -c 000000') end)) clientkeys = awful.util.table.join( awful.key({ modkey, }, "f", -- cgit v1.2.3-54-g00ecf From 9b4a888206ed83db7739883ce7ec242633131b4c Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 16:59:06 +0100 Subject: awesome: reomve sloppy focus --- .config/awesome/rc.lua | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 30ec573..d218821 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -340,16 +340,6 @@ awful.rules.rules = { client.connect_signal( "manage", function (c, startup) - -- Enable sloppy focus - c:connect_signal( - "mouse::enter", - function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier - and awful.client.focus.filter(c) then - client.focus = c - end - end) - if not startup then -- Set the windows at the slave, i.e. put it at the end of -- others instead of setting it master. -- cgit v1.2.3-54-g00ecf From 582e8221770ea5514dc04055d5ef4530e9bd4fc2 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Tue, 29 Jan 2013 17:01:56 +0100 Subject: awesome: remove titlebars code --- .config/awesome/rc.lua | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index d218821..565023c 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -353,28 +353,6 @@ client.connect_signal( awful.placement.no_offscreen(c) end end - - local titlebars_enabled = false - if titlebars_enabled - and (c.type == "normal" or c.type == "dialog") then - -- Widgets that are aligned to the left - local left_layout = wibox.layout.fixed.horizontal() - left_layout:add(awful.titlebar.widget.iconwidget(c)) - - -- Widgets that are aligned to the right - local right_layout = wibox.layout.fixed.horizontal() - - -- The title goes in the middle - local title = awful.titlebar.widget.titlewidget(c) - - -- Now bring it all together - local layout = wibox.layout.align.horizontal() - layout:set_left(left_layout) - layout:set_right(right_layout) - layout:set_middle(title) - - awful.titlebar(c):set_widget(layout) - end end) client.connect_signal( -- cgit v1.2.3-54-g00ecf From 44a9da16e7c52f64cf2a073011905734f9cde5c0 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:18:26 +0100 Subject: awesome: Show email counts in first wibox --- .config/awesome/rc.lua | 53 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 565023c..d09593f 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -8,10 +8,13 @@ local beautiful = require("beautiful") -- Notification library local naughty = require("naughty") local menubar = require("menubar") +local lfs = require("lfs") awful.rules = require("awful.rules") require("awful.autofocus") +local maildir_base = os.getenv("HOME") .. "/documents/mail/" + function ror(program, cls) local rorfunc = function () local matcher = function (c) @@ -31,6 +34,25 @@ function ror_combo(mod, key, program, class) function () awful.util.spawn(program) end)) end +function new_mail(maildir) + local count = 0 + + for file in lfs.dir(maildir_base .. maildir .. "/new") do + if file ~= "." and file ~= ".." then + count = count + 1 + end + end + + for file in lfs.dir(maildir_base .. maildir .. "/cur") do + if string.sub(file, -1) ~= "S" and file ~= "." + and file ~= ".." then + count = count + 1 + end + end + + return count +end + ----- Error handling -- Check if awesome encountered an error during startup and fell back -- to another config (This code will only ever execute for the @@ -135,12 +157,32 @@ mypromptbox = {} mylayoutbox = {} mytaglist = {} mytasklist = {} +mymaillist = wibox.widget.textbox() +mymaillist:set_text( + string.format(" ryu: %d gmail: %d aethon: %d 9f: %d", + new_mail('ryuslash.org/inbox'), + new_mail('gmail/inbox'), + new_mail('aethon/inbox'), + new_mail('ninthfloor/inbox'))) +mymaillisttimer = timer({ timeout = 60 }) +mymaillisttimer:connect_signal( + "timeout", + function () + mymaillist:set_text( + string.format(" ryu: %d gmail: %d aethon: %d 9f: %d", + new_mail('ryuslash.org/inbox'), + new_mail('gmail/inbox'), + new_mail('aethon/inbox'), + new_mail('ninthfloor/inbox'))) + end) +mymaillisttimer:start() for s = 1, screen.count() do -- Create a promptbox for each screen mypromptbox[s] = awful.widget.prompt() - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. + -- Create an imagebox widget which will contains an icon + -- indicating which layout we're using. We need one layoutbox per + -- screen. mylayoutbox[s] = awful.widget.layoutbox(s) -- Create a taglist widget mytaglist[s] = awful.widget.taglist( @@ -161,7 +203,10 @@ for s = 1, screen.count() do -- Widgets that are aligned to the right local right_layout = wibox.layout.fixed.horizontal() - if s == 1 then right_layout:add(wibox.widget.systray()) end + if s == 1 then + right_layout:add(mymaillist) + right_layout:add(wibox.widget.systray()) + end right_layout:add(mytextclock) right_layout:add(mylayoutbox[s]) @@ -251,7 +296,7 @@ globalkeys = awful.util.table.join( ror_combo({ modkey }, "c", 'urxvt', 'URxvt'), ror_combo({ modkey }, "w", 'conkeror', 'Conkeror'), awful.key({ "Control", "Mod1" }, "l", - function () awful.util.spawn('i3lock -c 000000') end)) + function () awful.util.spawn('i3lock -c 000000') end)) clientkeys = awful.util.table.join( awful.key({ modkey, }, "f", -- cgit v1.2.3-54-g00ecf From c8f930e4c9c43ae6d9fbcd421bf8ca1ba7db79ed Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:22:13 +0100 Subject: Change font to Envy Code R --- .Xdefaults | 6 +++--- .emacs.d/init.el | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.Xdefaults b/.Xdefaults index 6e32381..dbc251a 100644 --- a/.Xdefaults +++ b/.Xdefaults @@ -20,9 +20,9 @@ urxvt.keysym.M-s: perl:keyboard-select:search urxvt.keysym.M-u: perl:url-select:select_next -urxvt.font: xft:Monaco:weight=medium:pixelsize=18 -urxvt.boldFont: xft:Monaco:weight=bold:pixelsize=18 -! urxvt.italicFont: xft:Consolas:slant=italic:pixelsize=18 +urxvt.font: xft:Envy Code R:weight=medium:pixelsize=18 +urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=18 +urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=18 urxvt.background: #111113 urxvt.foreground: #eeeeec diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 94e2ad3..93b75a2 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -96,7 +96,7 @@ (vertical-scroll-bars . nil) (menu-bar-lines . nil) (tool-bar-lines . nil) - (font . "Monaco:pixelsize=18"))) + (font . "Envy Code R:pixelsize=18"))) (setq elnode-do-init nil) (setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist -- cgit v1.2.3-54-g00ecf From 930e307a41e9be9e54d30b63760578792438f9d4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:23:16 +0100 Subject: emacs: Change some jabber settings --- .emacs.d/init.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 93b75a2..d84d73e 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -173,13 +173,13 @@ (setq initial-major-mode 'emacs-lisp-mode) (setq initial-scratch-message nil) (setq jabber-account-list '(("ryuslash@jabber.org") - ("tom@ryuslash.org" + ("tom@ryuslash.org/Emacs" (:connection-type . ssl)))) -(setq jabber-chat-buffer-format "*jabber:%n*") +(setq jabber-chat-buffer-format "*jab:%n*") (setq jabber-chat-buffer-show-avatar nil) (setq jabber-chat-fill-long-lines nil) -(setq jabber-chat-foreign-prompt-format "%t <\n") -(setq jabber-chat-local-prompt-format "%t >\n") +(setq jabber-chat-foreign-prompt-format "%t %u/%r <\n") +(setq jabber-chat-local-prompt-format "%t %u/%r >\n") (setq jabber-chatstates-confirm nil) (setq jabber-history-dir "~/.emacs.d/jabber") (setq jabber-muc-autojoin '("aethon@muc.ryuslash.org")) -- cgit v1.2.3-54-g00ecf From 7c3a7312326ed6d702a154d4fa84cdb2eb967ea4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:25:18 +0100 Subject: emacs: Rearrange some keybindings I used sort-lines on them --- .emacs.d/init.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index d84d73e..b9f6d8e 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -287,14 +287,14 @@ (global-set-key (kbd "C-e") 'oni:move-end-of-dwim) (global-set-key (kbd "C-k") 'oni:kill-region-or-line) (global-set-key (kbd "C-w") 'oni:kill-region-or-backward-char) -(global-set-key (kbd "M-4") 'split-window-horizontally) -(global-set-key (kbd "M-n") 'idomenu) -(global-set-key (kbd "\"") 'oni:self-insert-dwim) -(global-set-key (kbd "M-o") 'other-window) +(global-set-key (kbd "M-0") 'delete-window) (global-set-key (kbd "M-1") 'delete-other-windows) (global-set-key (kbd "M-2") 'split-window-below) (global-set-key (kbd "M-3") 'split-window-right) -(global-set-key (kbd "M-0") 'delete-window) +(global-set-key (kbd "M-4") 'split-window-horizontally) +(global-set-key (kbd "M-n") 'idomenu) +(global-set-key (kbd "M-o") 'other-window) +(global-set-key (kbd "\"") 'oni:self-insert-dwim) (if (daemonp) (global-set-key "\C-x\C-c" 'oni:close-client-window)) -- cgit v1.2.3-54-g00ecf From cf22ea29f2a53d92b1cb6c20a3997e89e735eff5 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:25:36 +0100 Subject: emacs: remove quick-edit-mode Haven't been using it --- .emacs.d/init.el | 3 --- 1 file changed, 3 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index b9f6d8e..61e0f96 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -350,9 +350,6 @@ ;; (load "rudel-loaddefs.el") (load (expand-file-name "~/quicklisp/slime-helper.el")) -(load "quick-edit-mode") -(global-set-key (kbd "C-z") 'quick-edit-mode) - (unless (server-running-p) (server-start)) -- cgit v1.2.3-54-g00ecf From d93fdf847067197ab482c28503f71f1bf1bb8e70 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:26:09 +0100 Subject: emacs: The return of fill-column-indicator --- .emacs.d/site-lisp/oni.el | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index d6aae02..3fcbcd1 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -182,7 +182,7 @@ DOT are intentionally being skipped." (defun oni:html-mode-func () "Function for `html-mode-hook'." (yas-minor-mode) - (highlight-80+-mode) + (fci-mode) (flycheck-mode)) (defun oni:ido-init () @@ -416,21 +416,20 @@ When dealing with braces, add another line and indent that too." (c-set-offset 'arglist-intro '+) (c-set-offset 'arglist-close '0) (rainbow-delimiters-mode) - (setq-local highlight-80+-columns 80) + (setq-local fci-rule-column 80) (flycheck-mode)) (defun oni:pretty-control-l-function (win) - "Just make a string of either `highlight-80+-columns' or -`fill-column' length -1. Use the `-' character. WIN is -ignored." + "Just make a string of either `fci-rule-column' or +`fill-column' length -1. Use the `-' character. WIN is ignored." (make-string - (1- (if (boundp 'highlight-80+-columns) - highlight-80+-columns fill-column)) ?-)) + (1- (if (boundp 'fci-rule-column) + fci-rule-column fill-column)) ?-)) (defun oni:prog-mode-func () "Function for `prog-mode-hook'." (rainbow-delimiters-mode) - (highlight-80+-mode) + (fci-mode) (yas-minor-mode) (auto-fill-mode)) @@ -441,10 +440,10 @@ ignored." (local-set-key (kbd "C-<") 'python-indent-shift-left) (set (make-local-variable 'electric-indent-chars) nil) (rainbow-delimiters-mode) - (setq highlight-80+-columns 79 + (setq fci-rule-column 79 fill-column 72) (setq-local whitespace-style '(tab-mark)) - (highlight-80+-mode) + (fci-mode) (whitespace-mode)) (defun oni:rainbow-mode-init () -- cgit v1.2.3-54-g00ecf From 9223d0e998953f12631a7c9dd42fd5e052eadc23 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 1 Feb 2013 12:27:26 +0100 Subject: emacs: Remove some mu4e settings --- .emacs.d/site-lisp/oni.el | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 3fcbcd1..453c01a 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -27,22 +27,6 @@ (autoload 'notifications-notify "notifications") (autoload 'jabber-send-message "jabber-chat") -(defmacro oni:define-mailbox (name email &optional signature longname) - "Define a mailbox function for mailbox NAME with address EMAIL. -Optionally set signature to SIGNATURE and use LONGNAME as the -actual account name." - `(defun ,(make-symbol (concat "oni:" name "-mailbox")) () - ,(concat "Settings for " name " mailbox") - (setq mu4e-mu-home ,(expand-file-name (concat "~/.mu/" name)) - mu4e-maildir ,(expand-file-name (concat "~/documents/mail/" - (or longname name))) - mu4e-get-mail-command ,(concat "offlineimap -oa " (or longname - name)) - mu4e~main-buffer-name ,(concat "*mu4e-" name "*") - user-mail-address ,email - message-sendmail-extra-arguments '("-a" ,name) - message-signature-file ,signature))) - (defmacro oni:email (user at host dot com) "Turn arguments into an email address. The resulting email address will look like: USER@HOST.COM, AT and @@ -606,20 +590,6 @@ If no direction is given, don't split." (setq-local comment-auto-fill-only-comments nil) (auto-fill-mode)) -(defun oni:view-mail (inbox) - "Show a menu with all mailbox options from `oni:mailbox-map' -for easy selection." - (interactive - (list (progn - (require 'tmm) - (let ((tmm-completion-prompt "Choose a mailbox\n")) - (tmm-prompt oni:mailbox-map))))) - (if inbox - (progn - (require 'mu4e) - (funcall (intern (concat "oni:" inbox "-mailbox"))) - (mu4e)))) - (defun oni:write-file-func () "Function for `write-file-hooks'." (time-stamp)) -- cgit v1.2.3-54-g00ecf From 8fddc0d0a741ca8b77c08a6c8f33ce1ee6a5925e Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sat, 2 Feb 2013 00:56:15 +0100 Subject: emacs: Move EMMS settings to init.org --- .emacs.d/init.el | 7 ------- .emacs.d/init.org | 46 ++++++++++++++++++++++++++++++++++++++++++++++ .emacs.d/site-lisp/oni.el | 29 ----------------------------- 3 files changed, 46 insertions(+), 36 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 61e0f96..5d6a328 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -23,7 +23,6 @@ "Face for the supposedly empty line in commit messages." :group 'local) -(eval-after-load "emms-source-file" '(oni:emms-init)) (eval-after-load "flymake" '(oni:flymake-init)) (eval-after-load "ido" '(oni:ido-init)) (eval-after-load "jabber" '(oni:jabber-init)) @@ -98,7 +97,6 @@ (tool-bar-lines . nil) (font . "Envy Code R:pixelsize=18"))) (setq elnode-do-init nil) -(setq emms-source-file-default-directory "/mnt/music/") (setq erc-autojoin-channels-alist '(("freenode.net" "#ninthfloor" "#emacs"))) (setq erc-hide-list '("JOIN" "PART" "QUIT")) @@ -259,13 +257,8 @@ (define-key key-translation-map (kbd "C-l") (kbd "C-j")) (global-set-key (kbd "'") 'oni:self-insert-dwim) -(global-set-key (kbd "") 'emms-next) -(global-set-key (kbd "") 'oni:emms-toggle-playing) -(global-set-key (kbd "") 'emms-previous) -(global-set-key (kbd "") 'emms-stop) (global-set-key (kbd "") 'oni:raise-scratch) (global-set-key (kbd "") 'oni:view-mail) -(global-set-key (kbd "") 'oni:start-emms) (global-set-key (kbd "") 'git-project-show-files) (global-set-key (kbd "") 'ext:reload-buffer) (global-set-key (kbd "") 'jabber-switch-to-roster-buffer) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 9caead5..50a4161 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -83,6 +83,52 @@ (eval-after-load "eldoc" '(diminish 'eldoc-mode)) #+END_SRC + Use the standard EMMS configuration and add some MPD settings. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:emms-init () + "Initialization function for EMMS." + (require 'emms-setup) + (require 'emms-player-mpd) + + (emms-standard) + + (add-to-list 'emms-info-functions 'emms-info-mpd) + (add-to-list 'emms-player-list 'emms-player-mpd) + + (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 "emms-source-file" '(oni:emms-init)) + (setq emms-source-file-default-directory "/mnt/music/") + #+END_SRC + + Add some keybindings for EMMS. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:emms-toggle-playing () + "Toggle between playing/paused states." + (interactive) + (if (eq emms-player-playing-p nil) + (emms-start) + (emms-pause))) + + (defun oni:start-emms () + "Check to see if the function `emms' exists, if not call + `emms-player-mpd-connect' and assume that will have loaded it." + (interactive) + (unless (fboundp 'emms) + (emms-player-mpd-connect)) + (emms)) + + (global-set-key (kbd "") 'emms-next) + (global-set-key (kbd "") 'oni:emms-toggle-playing) + (global-set-key (kbd "") 'emms-previous) + (global-set-key (kbd "") 'emms-stop) + (global-set-key (kbd "") 'oni:start-emms) + #+END_SRC + ** Eshell Add ~unison~ to the list of =eshell-visual-commands= because it diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 453c01a..78dcb8f 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -104,27 +104,6 @@ DOT are intentionally being skipped." "Function for `emacs-lisp-mode-hook'." (eldoc-mode)) -(defun oni:emms-init () - "Initialization function for EMMS." - (require 'emms-setup) - (require 'emms-player-mpd) - - (emms-standard) - - (add-to-list 'emms-info-functions 'emms-info-mpd) - (add-to-list 'emms-player-list 'emms-player-mpd) - - (setq emms-player-mpd-server-name "localhost") - (setq emms-player-mpd-server-port "6600") - (setq emms-player-mpd-music-directory "/mnt/music/mp3")) - -(defun oni:emms-toggle-playing () - "Toggle between playing/paused states." - (interactive) - (if (eq emms-player-playing-p nil) - (emms-start) - (emms-pause))) - (defun oni:erc-mode-func () "Function for `erc-mode-hook'." (erc-fill-mode -1) @@ -562,14 +541,6 @@ If no direction is given, don't split." ((?h) (split-window-horizontally)) (t window)))) -(defun oni:start-emms () - "Check to see if the function `emms' exists, if not call -`emms-player-mpd-connect' and assume that will have loaded it." - (interactive) - (unless (fboundp 'emms) - (emms-player-mpd-connect)) - (emms)) - (defun oni:start-python-test-mail-server () "Run the python test mailserver." (interactive) -- cgit v1.2.3-54-g00ecf From 9cd4c8ed8ca61df9a2839cb3b151b71f15c5e0a6 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sat, 2 Feb 2013 01:08:59 +0100 Subject: emacs: Move flymake settings to init.org --- .emacs.d/init.el | 48 ----------------------------- .emacs.d/init.org | 77 +++++++++++++++++++++++++++++++++++++++++++++++ .emacs.d/site-lisp/oni.el | 22 -------------- 3 files changed, 77 insertions(+), 70 deletions(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 5d6a328..4f109f6 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -23,7 +23,6 @@ "Face for the supposedly empty line in commit messages." :group 'local) -(eval-after-load "flymake" '(oni:flymake-init)) (eval-after-load "ido" '(oni:ido-init)) (eval-after-load "jabber" '(oni:jabber-init)) (eval-after-load "newst-treeview" '(require 'newsticker-init)) @@ -105,52 +104,6 @@ (setq erc-timestamp-format "[%H:%M] ") (setq erc-timestamp-only-if-changed-flag nil) (setq fci-rule-color "darkred") -(setq flymake-gui-warnings-enabled nil) -(setq flymake-info-line-regexp - (eval-when-compile - (regexp-opt - '("Invalid name" - "String statement has no effect" - "Missing docstring" - "Empty docstring" - "multiple imports on one line" - "expected 2 blank lines, found 1" - "expected 2 blank lines, found 0" - "TODO:" - "whitespace after '{'" - "whitespace before '}'" - "whitespace before ':'" - "whitespace after '('" - "whitespace before ')'" - "whitespace after '['" - "whitespace before ']'" - "the backslash is redundant between brackets" - "continuation line over-indented for visual indent" - "continuation line under-indented for visual indent" - "Too many statements" - "comparison to None should be" - "missing whitespace around operator" - "missing whitespace after ','" - "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) -(setq flymake-warn-line-regexp - (eval-when-compile - (regexp-opt '("warning" - "Warning" - "redefinition of unused" - "Redefining built-in" - "Redefining name" - "Unused argument" - "Unused variable" - "Dangerous default value {} as argument" - "no newline at end of file" - "Access to a protected member")))) (setq frame-title-format '(:eval (concat "emacs: " (buffer-name)))) (setq geiser-repl-history-filename "~/.emacs.d/geiser-history") (setq gnus-init-file "~/.emacs.d/gnus") @@ -229,7 +182,6 @@ (add-hook 'diary-display-hook 'oni:diary-display-func) (add-hook 'emacs-lisp-mode-hook 'oni:emacs-lisp-mode-func) (add-hook 'erc-mode-hook 'oni:erc-mode-func) -(add-hook 'flymake-mode-hook 'oni:flymake-mode-func) (add-hook 'go-mode-hook 'oni:go-mode-func) (add-hook 'gtags-mode-hook 'oni:gtags-mode-func) (add-hook 'html-mode-hook 'oni:html-mode-func) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 50a4161..5edf00e 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -129,6 +129,83 @@ (global-set-key (kbd "") 'oni:start-emms) #+END_SRC + Load ~flymake-cursor~ after loading ~flymake~, add Python and Go to + "allowed" files and add go error output to error patterns. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (defun oni:flymake-init () + "Initialization function for flymake." + (require 'flymake-cursor) + + (add-to-list ; Make sure pyflakes is loaded + 'flymake-allowed-file-name-masks ; for python files. + '("\\.py\\'" ext:flymake-pyflakes-init)) + + (add-to-list ; Error line repexp for go + 'flymake-err-line-patterns ; compilation. + '("^\\([a-zA-Z0-9_]+\\.go\\):\\([0-9]+\\):\\(.*\\)$" + 1 2 nil 3)) + + (add-to-list ; Go uses makefiles, makes + 'flymake-allowed-file-name-masks ; flymaking 'easy'. + '("\\.go$" flymake-simple-make-init))) + + (eval-after-load "flymake" '(oni:flymake-init)) + #+END_SRC + + Disable the GUI for flymake errors, add a bunch of pep8, flymake + and pyflakes messages to warning and info patterns, set the log + file to somewhere in my home directory and set logging level to 0. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (setq flymake-gui-warnings-enabled nil) + (setq flymake-info-line-regexp + (eval-when-compile + (regexp-opt + '("Invalid name" + "String statement has no effect" + "Missing docstring" + "Empty docstring" + "multiple imports on one line" + "expected 2 blank lines, found 1" + "expected 2 blank lines, found 0" + "TODO:" + "whitespace after '{'" + "whitespace before '}'" + "whitespace before ':'" + "whitespace after '('" + "whitespace before ')'" + "whitespace after '['" + "whitespace before ']'" + "the backslash is redundant between brackets" + "continuation line over-indented for visual indent" + "continuation line under-indented for visual indent" + "Too many statements" + "comparison to None should be" + "missing whitespace around operator" + "missing whitespace after ','" + "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) + (setq flymake-warn-line-regexp + (eval-when-compile + (regexp-opt '("warning" + "Warning" + "redefinition of unused" + "Redefining built-in" + "Redefining name" + "Unused argument" + "Unused variable" + "Dangerous default value {} as argument" + "no newline at end of file" + "Access to a protected member")))) + #+END_SRC + ** Eshell Add ~unison~ to the list of =eshell-visual-commands= because it diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 78dcb8f..b1c8b14 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -110,28 +110,6 @@ DOT are intentionally being skipped." (visual-line-mode) (setq truncate-lines nil)) -(defun oni:flymake-init () - "Initialization function for flymake." - (require 'flymake-cursor) - - (add-to-list ; Make sure pyflakes is loaded - 'flymake-allowed-file-name-masks ; for python files. - '("\\.py\\'" ext:flymake-pyflakes-init)) - - (add-to-list ; Error line repexp for go - 'flymake-err-line-patterns ; compilation. - '("^\\([a-zA-Z0-9_]+\\.go\\):\\([0-9]+\\):\\(.*\\)$" - 1 2 nil 3)) - - (add-to-list ; Go uses makefiles, makes - 'flymake-allowed-file-name-masks ; flymaking 'easy'. - '("\\.go$" flymake-simple-make-init))) - -(defun oni:flymake-mode-func () - "Function for `flymake-mode-hook'." - (local-set-key [M-P] 'flymake-goto-prev-error) - (local-set-key [M-N] 'flymake-goto-next-error)) - (defun oni:go-mode-func () "Function for `go-mode-hook'." (setq indent-tabs-mode nil) -- cgit v1.2.3-54-g00ecf From 14a7381aa82dacf8c93e0fa33d0d035b4f633d9b Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 4 Feb 2013 20:27:24 +0100 Subject: conkeror: Add style for conkeror start page --- .conkerorrc/init.js | 17 +++++++++++------ .conkerorrc/styles/Makefile | 2 +- .conkerorrc/styles/help.css | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 .conkerorrc/styles/help.css diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 96b5dde..6957245 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -23,6 +23,15 @@ function ext_title_format(window) { + window.buffers.current.description; } +function oni_add_sheet(css) { + let (sheet = get_home_directory()) { + sheet.append(".conkerorrc"); + sheet.append("styles"); + sheet.append(css); + register_user_stylesheet(make_uri(sheet)); + }; +} + function oni_before_quit_func() { var w = get_recent_conkeror_window(); var result = (w == null) || @@ -268,9 +277,5 @@ function read_url_local_port_handler(input) read_url_handler_list = [read_url_local_port_handler, read_url_github_command_handler]; -let (sheet = get_home_directory()) { - sheet.append(".conkerorrc"); - sheet.append("styles"); - sheet.append("github.css"); - register_user_stylesheet(make_uri(sheet)); -}; +oni_add_sheet("github.css"); +oni_add_sheet("help.css"); diff --git a/.conkerorrc/styles/Makefile b/.conkerorrc/styles/Makefile index db06cf3..fb44500 100644 --- a/.conkerorrc/styles/Makefile +++ b/.conkerorrc/styles/Makefile @@ -1,4 +1,4 @@ DESTDIR:=$(DESTDIR)/styles -objects=github.css +objects=github.css help.css include ../../dotfiles.mk diff --git a/.conkerorrc/styles/help.css b/.conkerorrc/styles/help.css new file mode 100644 index 0000000..03888b6 --- /dev/null +++ b/.conkerorrc/styles/help.css @@ -0,0 +1,19 @@ +@-moz-document url(chrome://conkeror-help/content/help.html) { + body { + background: #111113 !important; + color: #eeeeec !important; + } + + a { + color: #ffbb56 !important; + } + + a:visited { + color: #ee82ee !important; + } + + pre, .key { + background: #222224 !important; + font-family: "Envy Code R" !important; + } +} -- cgit v1.2.3-54-g00ecf From 64a11cb9fcacea50354ae3bba7aa269ff1e73901 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 4 Feb 2013 20:28:06 +0100 Subject: conkeror: Change code font for github --- .conkerorrc/styles/github.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.conkerorrc/styles/github.css b/.conkerorrc/styles/github.css index 7fdc415..ff3a643 100644 --- a/.conkerorrc/styles/github.css +++ b/.conkerorrc/styles/github.css @@ -67,10 +67,11 @@ } .markdown-body code, - .markdown-body tt{ + .markdown-body tt { background-color: #222224 !important; border: none !important; color: #eeeeec !important; + font-family: "Envy Code R" !important; } .minibutton.dark-grey { -- cgit v1.2.3-54-g00ecf From 8987ba818ac6fe53cc214c4359943e717f7113c4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 4 Feb 2013 20:29:08 +0100 Subject: emacs: Add general note capture template This note tries to collect as much context data as possible, even though it isn't much at the moment. --- .emacs.d/site-lisp/org-init.el | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index 437b477..6ddb1a4 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -30,9 +30,19 @@ (require 'org-habit) (require 'org-protocol) +(autoload 'org-clocking-p "org-clock") + (eval-after-load "org-crypt" '(org-crypt-use-before-save-magic)) +(defun oni:note-template () + (concat + "* %<%c>\n" + " :DIRECTORY: =" default-directory "=\n" + (when (buffer-file-name) " :FILE: [[file:%F][%F]]\n") + (when (org-clocking-p) " :TASK: %K\n") + "\n %?")) + (defun oni:org-maybe-outline-path () (let ((outline-path (org-format-outline-path (org-get-outline-path)))) (unless (string= outline-path "") @@ -58,7 +68,7 @@ to work.") (defvar oni:work-agenda-files - (list (expand-file-name "~/documents/org/aethon.org")) + (list (expand-file-name "~/documents/org/aethon")) "My work agenda, should only show up at times I work.") (defvar oni:common-agenda-files @@ -94,17 +104,19 @@ (tags priority-down category-keep) (search category-keep))) (setq org-agenda-tags-column -101) +(setq org-directory (expand-file-name "~/documents/org")) +(setq org-default-notes-file (concat org-directory "/org")) (setq org-capture-templates - '(("t" "Task" entry (file "~/documents/org/tasks") + `(("t" "Task" entry (file "~/documents/org/tasks") "* TODO %?") ("T" "Linked task" entry (file "~/documents/org/tasks") - "* TODO %?\n\n %a"))) + "* TODO %?\n\n %a") + ("n" "General note" entry (file ,org-default-notes-file) + (function oni:note-template)))) (setq org-contacts-files '("~/documents/org/misc/contacts.org")) -(setq org-directory (expand-file-name "~/documents/org")) (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")) (setq org-export-htmlize-output-type 'css) (setq org-feed-alist '(("MyEpisodes" @@ -145,7 +157,7 @@ (ad-activate 'org-agenda-redo) (oni:set-org-agenda-files) -(run-at-time "09:00" (* 60 60 24) 'oni:set-org-agenda-files) +(run-at-time "09:01" (* 60 60 24) 'oni:set-org-agenda-files) (run-at-time "17:01" (* 60 60 24) 'oni:set-org-agenda-files) (provide 'org-init) -- cgit v1.2.3-54-g00ecf From dca5bacd6c50a2b1d3929fd1480a1836f5dc7e13 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 4 Feb 2013 20:30:06 +0100 Subject: Xinit: don't start emacs daemon most of the time I recompile it before starting it --- .xinitrc | 1 - 1 file changed, 1 deletion(-) diff --git a/.xinitrc b/.xinitrc index 0db20a6..861a0d6 100755 --- a/.xinitrc +++ b/.xinitrc @@ -9,7 +9,6 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then unset f fi -emacs --daemon & xflux -l 51.1180 -g 4.0012 test -n "$1" && wm=$1 || wm="awesome" -- cgit v1.2.3-54-g00ecf From 0445ad9f57b2402bb0030046c96dce6a3745d989 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 6 Feb 2013 11:44:04 +0100 Subject: zsh: Add venv function This enables or lists virtual environments --- .zsh/functions/Makefile | 2 +- .zsh/functions/venv | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .zsh/functions/venv diff --git a/.zsh/functions/Makefile b/.zsh/functions/Makefile index 670c57c..baf5c6b 100644 --- a/.zsh/functions/Makefile +++ b/.zsh/functions/Makefile @@ -2,6 +2,6 @@ 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 + update_current_git_vars welcome venv include ../../dotfiles.mk diff --git a/.zsh/functions/venv b/.zsh/functions/venv new file mode 100644 index 0000000..49564ac --- /dev/null +++ b/.zsh/functions/venv @@ -0,0 +1,15 @@ +# -*- mode: sh; -*- +if [ "${#}" -eq 1 ]; then + venv_activate="$HOME/.virtualenv/$1/bin/activate" + + if [ -r "$venv_activate" ]; then + source $venv_activate + else + echo "$1 is not a know virtual environment" + fi +else + echo "Virtual environments: " + for itm in ~/.virtualenv/*; do + echo " $(basename $itm)" + done +fi -- cgit v1.2.3-54-g00ecf From ec68e364d98302344fcf1f4f574519a6dfe86678 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 6 Feb 2013 11:45:16 +0100 Subject: zsh: Remove reboot, shutdown aliases These work better as scripts, that way I can run them from my window manager as well, not just from a shell. --- .zshrc | 2 -- 1 file changed, 2 deletions(-) diff --git a/.zshrc b/.zshrc index 6a885ef..a25a331 100644 --- a/.zshrc +++ b/.zshrc @@ -30,8 +30,6 @@ alias grep="grep --color=always" alias less=$LESSCMD alias ls="ls -F --color=always" alias mysql="mysql --pager" -alias reboot="systemctl reboot" -alias poweroff="systemctl poweroff" setopt notify setopt PROMPT_SUBST # Allow for functions in the prompt -- cgit v1.2.3-54-g00ecf From c3aa5bb8b4b3e900037ac31a0c8006147ea68f10 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 6 Feb 2013 11:48:18 +0100 Subject: emacs: Use flycheck for python --- .emacs.d/init.org | 23 +++++++++++++++++++++++ .emacs.d/site-lisp/oni.el | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 5edf00e..9070798 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -206,6 +206,29 @@ "Access to a protected member")))) #+END_SRC + After loading ~flycheck~ Remove the default python checkers and + replace them with my own, which tries both ~flake8~ and ~pylint~. + + #+BEGIN_SRC emacs-lisp :tangle init2.el + (eval-after-load "flycheck" + '(progn + (flycheck-declare-checker python-pycheck + "Uses pycheck.sh to check for errors/warnings." + :command '("pycheck.sh" source-inplace) + :error-patterns + '(("^\\(?1:.*\\):\\(?2:[0-9]+\\): Warning (W.*): \\(?4:.*\\)$" warning) + ("^\\(?1:.*\\):\\(?2:[0-9]+\\): Error (E.*): \\(?4:.*\\)$" error) + ("^\\(?1:.*\\):\\(?2:[0-9]+\\): \\[F\\] \\(?4:.*\\)$" error) + ("^\\(?1:.*?\\):\\(?2:[0-9]+\\):\\(?:\\(?3:[0-9]+\\):\\)? \\(?4:E[0-9]+.*\\)$" error) + ("^\\(?1:.*?\\):\\(?2:[0-9]+\\):\\(?:\\(?3:[0-9]+\\):\\)? \\(?4:W[0-9]+.*\\)$" warning) + ("^\\(?1:.*\\):\\(?2:[0-9]+\\): \\(?4:.*\\)$" error)) + :modes 'python-mode) + + (mapc (lambda (c) (delete c flycheck-checkers)) + '(python-flake8 python-pylint python-pyflakes)) + (add-to-list 'flycheck-checkers 'python-pycheck))) + #+END_SRC + ** Eshell Add ~unison~ to the list of =eshell-visual-commands= because it diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index b1c8b14..09a9d79 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -376,7 +376,7 @@ When dealing with braces, add another line and indent that too." (defun oni:python-mode-func () "Function for `python-mode-hook'." - (flymake-mode) + (flycheck-mode) (local-set-key (kbd "C->") 'python-indent-shift-right) (local-set-key (kbd "C-<") 'python-indent-shift-left) (set (make-local-variable 'electric-indent-chars) nil) -- cgit v1.2.3-54-g00ecf From 6081884b9f565b6c5e251ecfa27f4362a9790d99 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Wed, 6 Feb 2013 13:09:05 +0100 Subject: zsh: Make venv_activate a local variable --- .zsh/functions/venv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zsh/functions/venv b/.zsh/functions/venv index 49564ac..03ec83d 100644 --- a/.zsh/functions/venv +++ b/.zsh/functions/venv @@ -1,6 +1,6 @@ # -*- mode: sh; -*- if [ "${#}" -eq 1 ]; then - venv_activate="$HOME/.virtualenv/$1/bin/activate" + local venv_activate="$HOME/.virtualenv/$1/bin/activate" if [ -r "$venv_activate" ]; then source $venv_activate -- cgit v1.2.3-54-g00ecf From 86e131b856366a0770053d2cdb258435eb233afa Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 08:55:01 +0100 Subject: conkeror: Add restore_killed_buffer_url --- .conkerorrc/Makefile | 2 +- .conkerorrc/ext_restore.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .conkerorrc/ext_restore.js diff --git a/.conkerorrc/Makefile b/.conkerorrc/Makefile index 12ed611..8161f39 100644 --- a/.conkerorrc/Makefile +++ b/.conkerorrc/Makefile @@ -1,5 +1,5 @@ DESTDIR:=$(DESTDIR)/.conkerorrc modules=themes styles -objects=gtk2rc init.js +objects=gtk2rc init.js ext_restore.js include ../dotfiles.mk diff --git a/.conkerorrc/ext_restore.js b/.conkerorrc/ext_restore.js new file mode 100644 index 0000000..39b125e --- /dev/null +++ b/.conkerorrc/ext_restore.js @@ -0,0 +1,33 @@ +/// From http://conkeror.org/Tips#Restore_Killed_Buffer_Url +// I think by the time kill_buffer_hook runs the buffer is gone so I +// patch kill_buffer + +var kill_buffer_original = kill_buffer_original || kill_buffer; + +var killed_buffer_urls = []; + +kill_buffer = function (buffer, force) { + if (buffer.display_uri_string) { + killed_buffer_urls.push(buffer.display_uri_string); + } + + kill_buffer_original(buffer,force); +}; + +interactive("restore-killed-buffer-url", "Loads url from a previously killed buffer", + function restore_killed_buffer_url (I) { + if (killed_buffer_urls.length !== 0) { + var url = yield I.minibuffer.read( + $prompt = "Restore killed url:", + $completer = all_word_completer($completions = killed_buffer_urls), + $default_completion = killed_buffer_urls[killed_buffer_urls.length - 1], + $auto_complete = "url", + $auto_complete_initial = true, + $auto_complete_delay = 0, + $match_required); + + load_url_in_new_buffer(url); + } else { + I.window.minibuffer.message("No killed buffer urls"); + } + }); -- cgit v1.2.3-54-g00ecf From 11183df0170ce9a9aa6ec8daae32bc3ad628b2a4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 08:55:43 +0100 Subject: conkeror: Change hints font --- .conkerorrc/init.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 6957245..4658eaa 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -277,5 +277,18 @@ function read_url_local_port_handler(input) read_url_handler_list = [read_url_local_port_handler, read_url_github_command_handler]; +register_user_stylesheet( + "data:text/css," + + escape( + "@namespace url(\"http://www.w3.org/1999/xhtml\");\n" + + "span.__conkeror_hint {\n" + + " font-family: \"Envy Code R\" !important;\n" + + " font-size: 12px !important;\n" + + " line-height: 12px !important;\n" + + " padding: 0 2px !important;\n" + + "}" + ) +); + oni_add_sheet("github.css"); oni_add_sheet("help.css"); -- cgit v1.2.3-54-g00ecf From fdb9679e2ddff78f4e737d519c20c944d78088ac Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 09:29:24 +0100 Subject: awesome: Add org todo counts to wibox --- .config/awesome/rc.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index d09593f..3fb0d1f 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -157,6 +157,7 @@ mypromptbox = {} mylayoutbox = {} mytaglist = {} mytasklist = {} + mymaillist = wibox.widget.textbox() mymaillist:set_text( string.format(" ryu: %d gmail: %d aethon: %d 9f: %d", @@ -177,6 +178,22 @@ mymaillisttimer:connect_signal( end) mymaillisttimer:start() +mytodolist = wibox.widget.textbox() +mytodolist:set_text( + string.format(" ptodo: %d wtodo: %d", + awful.util.pread("todo-count t"), + awful.util.pread("todo-count w"))) +mytodolisttimer = timer({ timeout = 60 * 60 }) +mytodolisttimer:connect_signal( + "timeout", + function () + mytodolist:set_text( + string.format(" pers: %d work: %d", + awful.util.pread("todo-count t"), + awful.util.pread("todo-count w"))) + end) +mytodolisttimer:start() + for s = 1, screen.count() do -- Create a promptbox for each screen mypromptbox[s] = awful.widget.prompt() @@ -204,6 +221,7 @@ for s = 1, screen.count() do -- Widgets that are aligned to the right local right_layout = wibox.layout.fixed.horizontal() if s == 1 then + right_layout:add(mytodolist) right_layout:add(mymaillist) right_layout:add(wibox.widget.systray()) end -- cgit v1.2.3-54-g00ecf From 7f8b8daf4bb2736e240c9b7d2b619ec136f6c4d8 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 10:03:30 +0100 Subject: Emacs: remove my checker I don't like the way epylint works... --- .emacs.d/init.org | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/.emacs.d/init.org b/.emacs.d/init.org index 9070798..f4acfca 100644 --- a/.emacs.d/init.org +++ b/.emacs.d/init.org @@ -212,21 +212,8 @@ #+BEGIN_SRC emacs-lisp :tangle init2.el (eval-after-load "flycheck" '(progn - (flycheck-declare-checker python-pycheck - "Uses pycheck.sh to check for errors/warnings." - :command '("pycheck.sh" source-inplace) - :error-patterns - '(("^\\(?1:.*\\):\\(?2:[0-9]+\\): Warning (W.*): \\(?4:.*\\)$" warning) - ("^\\(?1:.*\\):\\(?2:[0-9]+\\): Error (E.*): \\(?4:.*\\)$" error) - ("^\\(?1:.*\\):\\(?2:[0-9]+\\): \\[F\\] \\(?4:.*\\)$" error) - ("^\\(?1:.*?\\):\\(?2:[0-9]+\\):\\(?:\\(?3:[0-9]+\\):\\)? \\(?4:E[0-9]+.*\\)$" error) - ("^\\(?1:.*?\\):\\(?2:[0-9]+\\):\\(?:\\(?3:[0-9]+\\):\\)? \\(?4:W[0-9]+.*\\)$" warning) - ("^\\(?1:.*\\):\\(?2:[0-9]+\\): \\(?4:.*\\)$" error)) - :modes 'python-mode) - (mapc (lambda (c) (delete c flycheck-checkers)) - '(python-flake8 python-pylint python-pyflakes)) - (add-to-list 'flycheck-checkers 'python-pycheck))) + '(python-pylint python-pyflakes)))) #+END_SRC ** Eshell -- cgit v1.2.3-54-g00ecf From 703fffdc46a1177fd156583b5af472d00fb9b9c9 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 10:03:52 +0100 Subject: emacs: rename aethon org file to work --- .emacs.d/site-lisp/org-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index 6ddb1a4..bb55aca 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -68,7 +68,7 @@ to work.") (defvar oni:work-agenda-files - (list (expand-file-name "~/documents/org/aethon")) + (list (expand-file-name "~/documents/org/work")) "My work agenda, should only show up at times I work.") (defvar oni:common-agenda-files -- cgit v1.2.3-54-g00ecf From bbde295be61e19c9742a7a76557492962da19efc Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 7 Feb 2013 10:04:08 +0100 Subject: emacs: Pt should show todo list, not agenda --- .emacs.d/site-lisp/org-init.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.emacs.d/site-lisp/org-init.el b/.emacs.d/site-lisp/org-init.el index bb55aca..4033c30 100644 --- a/.emacs.d/site-lisp/org-init.el +++ b/.emacs.d/site-lisp/org-init.el @@ -82,7 +82,7 @@ ("Pa" "Personal agenda" agenda "" ((org-agenda-files (append oni:personal-agenda-files oni:common-agenda-files)))) - ("Pt" "Personal todo" agenda "" + ("Pt" "Personal todo" todo "" ((org-agenda-files (append oni:personal-agenda-files oni:common-agenda-files)))) ("W" . "Work only") -- cgit v1.2.3-54-g00ecf From b9e64b75ee744f951dbaa04974515850882418de Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 8 Feb 2013 10:00:11 +0100 Subject: awesome: Make modkey+o focus the "next" screen Have modkey+shift+o replace the old modkey+o functionality --- .config/awesome/rc.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 3fb0d1f..91cbd3d 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -325,7 +325,9 @@ clientkeys = awful.util.table.join( awful.client.floating.toggle), awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), - awful.key({ modkey, }, "o", awful.client.movetoscreen), + awful.key({ modkey, }, "o", + function () awful.screen.focus_relative(1) end), + awful.key({ modkey, "Shift" }, "o", awful.client.movetoscreen), awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), awful.key({ modkey, }, "m", function (c) -- cgit v1.2.3-54-g00ecf From a1808fd44e44160545d120c3eafcf790320ce003 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sun, 10 Feb 2013 22:08:44 +0100 Subject: conkeror: Add mozrepl initialization --- .conkerorrc/init.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.conkerorrc/init.js b/.conkerorrc/init.js index 4658eaa..157f125 100644 --- a/.conkerorrc/init.js +++ b/.conkerorrc/init.js @@ -277,6 +277,19 @@ function read_url_local_port_handler(input) read_url_handler_list = [read_url_local_port_handler, read_url_github_command_handler]; +// Mozrepl +let (mozrepl_init = get_home_directory()) { + mozrepl_init.appendRelativePath(".mozrepl-conkeror.js"); + session_pref('extensions.mozrepl.initUrl', make_uri(mozrepl_init).spec); +}; + +if ('@hyperstruct.net/mozlab/mozrepl;1' in Cc) { + let mozrepl = Cc['@hyperstruct.net/mozlab/mozrepl;1'] + .getService(Ci.nsIMozRepl); + if (!mozrepl.isActive()) + mozrepl.start(4242); +} + register_user_stylesheet( "data:text/css," + escape( -- cgit v1.2.3-54-g00ecf From f6598f546995b025349702b0572d0308e45e78a4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:11:23 +0100 Subject: Make install, uninstall, check work from subdirs By going up to the above level if needed and having the top-level define a special variable this works. --- Makefile | 2 ++ dotfiles.mk | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e032b22..2c76217 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,8 @@ objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \ .slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \ .xinitrc .Xmodmap .xsession .zprofile .zshrc +export MAKEROOT=y + include dotfiles.mk install-.xinitrc: MODE=744 diff --git a/dotfiles.mk b/dotfiles.mk index 77afcee..6018dd2 100644 --- a/dotfiles.mk +++ b/dotfiles.mk @@ -28,9 +28,19 @@ check-modules=$(addprefix check-,$(modules)) $(install-objects) $(uninstall-objects) $(check-objects) \ $(install-modules) $(uninstall-modules) $(check-modules) all: $(modules) $(objects) -install: $(install-modules) $(install-objects) + +ifeq ($(MAKEROOT),y) check: $(check-modules) $(check-objects) +install: $(install-modules) $(install-objects) uninstall: $(uninstall-modules) $(uninstall-objects) +else +check: + $(MAKE) -s -C ../ check +install: + $(MAKE) -C ../ install +uninstall: + $(MAKE) -C ../ uninstall +endif $(modules): %: @echo $(MAKEFILES) @@ -56,7 +66,7 @@ $(check-objects): check-%: echo -e "$(FG_YEL)$* $(FG_RED)older$(CLR_RE).")) $(check-modules): check-%: - @$(MAKE) -C $* check + @$(MAKE) -s -C $* check $(filter %.elc,$(objects)): %.elc: %.el $(call compile,$^) -- cgit v1.2.3-54-g00ecf From 978b30e663f735176d55370b7924370ae063fa56 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:31:34 +0100 Subject: Customize output Don't show any output from make itself (almost), just show what we're actually doing, and use color. --- dotfiles.mk | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/dotfiles.mk b/dotfiles.mk index 6018dd2..aaabad3 100644 --- a/dotfiles.mk +++ b/dotfiles.mk @@ -35,11 +35,11 @@ install: $(install-modules) $(install-objects) uninstall: $(uninstall-modules) $(uninstall-objects) else check: - $(MAKE) -s -C ../ check + @$(MAKE) -s -C ../ check install: - $(MAKE) -C ../ install + @$(MAKE) -s -C ../ install uninstall: - $(MAKE) -C ../ uninstall + @$(MAKE) -C ../ uninstall endif $(modules): %: @@ -47,23 +47,29 @@ $(modules): %: @$(MAKE) -C $* $(install-objects): install-%: % - $(if $(call newer,$*), \ - install -pDm $(MODE) "$*" "$(DESTDIR)/$*") + @$(if $(call newer,$*), \ + echo -e "$(FG_GRE)installing $(FG_YEL)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \ + install -pDm $(MODE) "$*" "$(DESTDIR)/$*", \ + echo -e "$(FG_RED)not installing $(FG_YEL)$*$(CLR_RE)") $(install-modules): install-%: - @$(MAKE) -C $* install + @$(MAKE) -s -C $* install $(uninstall-objects): uninstall-%: - $(if $(call newer,$*),rm -f "$(DESTDIR)/$*") + @$(if $(call older,$*), \ + echo -e "$(FG_RED)not uninstalling $(FG_YEL)$*$(CLR_RE)", \ + echo -e "$(FG_GRE)uninstalling $(FG_YEL)$*$(CLR_RE)"; \ + 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_GRE)newer$(CLR_RE) than $(DESTDIR)$*!", \ $(if $(call older,$*), \ - echo -e "$(FG_YEL)$* $(FG_RED)older$(CLR_RE).")) + echo -e "$(FG_YEL)$* $(FG_RED)older$(CLR_RE) than $(DESTDIR)$*.", \ + echo -e "$(FG_YEL)$* $(FG_BLU)up to date$(CLR_RE) with $(DESTDIR)$*.")) $(check-modules): check-%: @$(MAKE) -s -C $* check -- cgit v1.2.3-54-g00ecf From 2c5099ea7bbdc6899166e564b39862ed5af6fdc4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:31:56 +0100 Subject: zsh: open any PDF with zathura --- .zshrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.zshrc b/.zshrc index a25a331..1d167ee 100644 --- a/.zshrc +++ b/.zshrc @@ -31,6 +31,9 @@ alias less=$LESSCMD alias ls="ls -F --color=always" alias mysql="mysql --pager" +# Suffix aliases +alias -s pdf="zathura" + setopt notify setopt PROMPT_SUBST # Allow for functions in the prompt setopt EXTENDED_GLOB -- cgit v1.2.3-54-g00ecf From 111e229676e5aaf2dceecc7002a9a7020e3d5ad4 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:32:41 +0100 Subject: emacs: Use modern indentation for Haskell code --- .emacs.d/init.el | 1 + .emacs.d/site-lisp/oni.el | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 4f109f6..4921dee 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -184,6 +184,7 @@ (add-hook 'erc-mode-hook 'oni:erc-mode-func) (add-hook 'go-mode-hook 'oni:go-mode-func) (add-hook 'gtags-mode-hook 'oni:gtags-mode-func) +(add-hook 'haskell-mode-hook 'oni:haskell-mode-func) (add-hook 'html-mode-hook 'oni:html-mode-func) (add-hook 'jabber-alert-message-hooks 'oni:jabber-alert-message-func) (add-hook 'jabber-chat-mode-hook 'oni:jabber-chat-mode-func) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 09a9d79..a2dbea0 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -120,6 +120,10 @@ DOT are intentionally being skipped." (local-set-key "\M-," 'gtags-find-tag) (local-set-key "\M-." 'gtags-find-rtag)) +(defun oni:haskell-mode-func () + "Function for `haskell-mode-hook'." + (turn-on-haskell-indentation)) + (defun oni:html-mode-func () "Function for `html-mode-hook'." (yas-minor-mode) -- cgit v1.2.3-54-g00ecf From 214e1ed72b4dfdbcea6ccfc9a338b13e921bd1dd Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:33:57 +0100 Subject: emacs: Start auto-complete after init Since the load paths for ELPA-installed packages doesn't get set-up until after the init file has loaded, defer loading and enabling of auto-complete to after initializations. --- .emacs.d/init.el | 1 + .emacs.d/site-lisp/oni.el | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 4921dee..cc6528c 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -180,6 +180,7 @@ (add-hook 'c-mode-hook 'oni:c-mode-func) (add-hook 'css-mode-hook 'oni:css-mode-func) (add-hook 'diary-display-hook 'oni:diary-display-func) +(add-hook 'emacs-startup-hook 'oni:emacs-startup-func) (add-hook 'emacs-lisp-mode-hook 'oni:emacs-lisp-mode-func) (add-hook 'erc-mode-hook 'oni:erc-mode-func) (add-hook 'go-mode-hook 'oni:go-mode-func) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index a2dbea0..2729474 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -104,6 +104,11 @@ DOT are intentionally being skipped." "Function for `emacs-lisp-mode-hook'." (eldoc-mode)) +(defun oni:emacs-startup-func () + "Function for `emacs-init-hook'." + (require 'auto-complete-config) + (ac-config-default)) + (defun oni:erc-mode-func () "Function for `erc-mode-hook'." (erc-fill-mode -1) -- cgit v1.2.3-54-g00ecf From acdee386125b60813e3e88b737129606f705ca9d Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:34:38 +0100 Subject: Xdefaults: make urxvt transparent --- .Xdefaults | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.Xdefaults b/.Xdefaults index dbc251a..ebe9d51 100644 --- a/.Xdefaults +++ b/.Xdefaults @@ -24,7 +24,8 @@ urxvt.font: xft:Envy Code R:weight=medium:pixelsize=18 urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=18 urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=18 -urxvt.background: #111113 +urxvt.depth: 32 +urxvt.background: [90]#111113 urxvt.foreground: #eeeeec urxvt.color0: #171719 -- cgit v1.2.3-54-g00ecf From ba12781a863032199196b4b6dcc8472d92b6a10a Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:34:54 +0100 Subject: emacs: Make frames transparent --- .emacs.d/init.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index cc6528c..e30c13e 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -94,7 +94,8 @@ (vertical-scroll-bars . nil) (menu-bar-lines . nil) (tool-bar-lines . nil) - (font . "Envy Code R:pixelsize=18"))) + (font . "Envy Code R:pixelsize=18") + (alpha 90 90))) (setq elnode-do-init nil) (setq erc-autojoin-channels-alist '(("freenode.net" "#ninthfloor" "#emacs"))) -- cgit v1.2.3-54-g00ecf From de0ac7e06e82aecb9a3c79dbb0a60adeec544b2e Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:35:52 +0100 Subject: Add XMonad config --- Makefile | 2 +- xmonad/.gitignore | 3 +++ xmonad/Makefile | 10 ++++++++++ xmonad/xmonad.hs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 xmonad/.gitignore create mode 100644 xmonad/Makefile create mode 100644 xmonad/xmonad.hs diff --git a/Makefile b/Makefile index 2c76217..ffcb9cb 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ export DESTDIR:=$(HOME) modules=.emacs.d .config .conkerorrc .local .moc .mutt .ncmpcpp \ - .pentadactyl .sawfish .ssh .w3m .weechat .zsh + .pentadactyl .sawfish .ssh .w3m .weechat .zsh xmonad objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \ .guile .hgrc .offlineimap.py .offlineimaprc .screenrc .scwmrc \ .slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \ diff --git a/xmonad/.gitignore b/xmonad/.gitignore new file mode 100644 index 0000000..11a024e --- /dev/null +++ b/xmonad/.gitignore @@ -0,0 +1,3 @@ +*.o +xmonad-x86_64-linux +xmonad.hi diff --git a/xmonad/Makefile b/xmonad/Makefile new file mode 100644 index 0000000..9b8d3c3 --- /dev/null +++ b/xmonad/Makefile @@ -0,0 +1,10 @@ +DESTDIR := $(DESTDIR)/.xmonad +objects=xmonad-x86_64-linux xmonad.hs + +GHC := ghc + +include ../dotfiles.mk + +xmonad-x86_64-linux: xmonad.hs + $(GHC) --make $^ -i -ilib -fforce-recomp -main-is main -v0 -o $@ +install-xmonad-x86_64-linux: MODE=744 diff --git a/xmonad/xmonad.hs b/xmonad/xmonad.hs new file mode 100644 index 0000000..40ec269 --- /dev/null +++ b/xmonad/xmonad.hs @@ -0,0 +1,48 @@ +-- +-- It overrides a few basic settings, reusing all other defaults. +-- + +import XMonad +import XMonad.Actions.WindowGo +import XMonad.Hooks.FadeInactive +import XMonad.Hooks.ManageDocks +import XMonad.Hooks.ManageHelpers +import XMonad.Util.EZConfig + +import qualified XMonad.StackSet as W + +myLogHook :: X () +myLogHook = fadeOutLogHook fadeRules + +fadeRules :: Query Rational +fadeRules = do + fullscreen <- isFullscreen + conkeror <- className =? "Conkeror" + return $ case () of _ | fullscreen -> 1 + | conkeror -> 0.95 + | otherwise -> 0.9 + +main = xmonad $ defaultConfig + { terminal = "urxvt" + , focusFollowsMouse = False + , clickJustFocuses = False + , modMask = mod4Mask + , layoutHook = avoidStruts $ layoutHook defaultConfig + , logHook = myLogHook + , manageHook = manageHook defaultConfig <+> manageDocks } + `additionalKeysP` + [ + ("C-z ,", screenWorkspace 0 >>= flip whenJust (windows . W.view)), + ("C-z .", screenWorkspace 1 >>= flip whenJust (windows . W.view)), + ("C-z S-c", spawn "urxvt"), + ("C-z S-e", spawn "emacsclient -ca emacs"), + ("C-z c", runOrRaiseNext "urxvt" (className =? "URxvt")), + ("C-z e", runOrRaiseNext "emacsclient -ca emacs" (className =? "Emacs")), + ("C-z w", runOrRaiseNext "conkeror" (className =? "Conkeror")), + ("M-S-1", spawn "dmenu_run"), + ("M-n", windows W.focusDown), + ("M-p", windows W.focusUp), + ("M1-C-l", spawn "i3lock -c 000000") + ] + `removeKeysP` + [ ("M-j"), ("M-k") ] -- cgit v1.2.3-54-g00ecf From 1d1f51db6986d319712818c77d26bcb52df26eaa Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:36:22 +0100 Subject: emacs: Add button to show special org file --- .emacs.d/init.el | 1 + .emacs.d/site-lisp/oni.el | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index e30c13e..232f9cf 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -218,6 +218,7 @@ (global-set-key (kbd "") 'ext:reload-buffer) (global-set-key (kbd "") 'jabber-switch-to-roster-buffer) (global-set-key (kbd "") 'magit-status) +(global-set-key (kbd "") 'oni:show-org-index) (global-set-key (kbd "C-<") 'oni:indent-shift-left) (global-set-key (kbd "C->") 'oni:indent-shift-right) (global-set-key (kbd "C-M-4") 'split-window-vertically) diff --git a/.emacs.d/site-lisp/oni.el b/.emacs.d/site-lisp/oni.el index 2729474..1afe1d6 100644 --- a/.emacs.d/site-lisp/oni.el +++ b/.emacs.d/site-lisp/oni.el @@ -500,6 +500,11 @@ insert at the end of the region and at the beginning." (interactive) (message (format "%d:%d" (line-number-at-pos) (current-column)))) +(defun oni:show-org-index () + "Show the index of my org files." + (interactive) + (find-file "~/documents/org/index.org")) + (defun oni:smex-init () "Initialization function for smex." (global-set-key (kbd "M-x") 'smex) -- cgit v1.2.3-54-g00ecf From f85643301d86821c721dd067f86c858917545f99 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:36:40 +0100 Subject: awesome: stop mplayer from floating --- .config/awesome/rc.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 91cbd3d..745721d 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -386,8 +386,6 @@ awful.rules.rules = { border_color = beautiful.border_normal, focus = awful.client.focus.filter, keys = clientkeys } }, - { rule = { class = "MPlayer" }, - properties = { floating = true } }, { rule = { class = "pinentry" }, properties = { floating = true } }, { rule = { class = "gimp" }, -- cgit v1.2.3-54-g00ecf From 55e386bf0c0b6a98ce295366bb4f31c00f048e16 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:47:01 +0100 Subject: Add reverse target This target takes files whose installed versions are newer than those in the current working directory and copies them there. --- dotfiles.mk | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/dotfiles.mk b/dotfiles.mk index aaabad3..92e35a1 100644 --- a/dotfiles.mk +++ b/dotfiles.mk @@ -16,28 +16,34 @@ define older = $(shell if [ "$(1)" -ot "$(DESTDIR)/$(1)" ]; then echo "older"; fi) endef +check-objects=$(addprefix check-,$(objects)) install-objects=$(addprefix install-,$(objects)) +reverse-objects=$(addprefix reverse-,$(objects)) uninstall-objects=$(addprefix uninstall-,$(objects)) -check-objects=$(addprefix check-,$(objects)) +check-modules=$(addprefix check-,$(modules)) install-modules=$(addprefix install-,$(modules)) +reverse-modules=$(addprefix reverse-,$(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) + $(install-modules) $(uninstall-modules) $(check-modules) \ + $(reverse) $(reverse-objects) $(reverse-modules) all: $(modules) $(objects) ifeq ($(MAKEROOT),y) check: $(check-modules) $(check-objects) install: $(install-modules) $(install-objects) +reverse: $(reverse-modules) $(reverse-objects) uninstall: $(uninstall-modules) $(uninstall-objects) else check: @$(MAKE) -s -C ../ check install: @$(MAKE) -s -C ../ install +reverse: + @$(MAKE) -s -C ../ reverse uninstall: @$(MAKE) -C ../ uninstall endif @@ -55,6 +61,15 @@ $(install-objects): install-%: % $(install-modules): install-%: @$(MAKE) -s -C $* install +$(reverse-objects): reverse-%: + @$(if $(call older,$*), \ + echo -e "$(FG_GRE)reversing $(FG_YEL)$(DESTDIR)/$* $(CLR_RE)"; \ + cp -a "$(DESTDIR)/$*" "$*", \ + echo -e "$(FG_RED)not reversing $(FG_YEL)$*$(CLR_RE)") + +$(reverse-modules): reverse-%: + @$(MAKE) -s -C $* reverse + $(uninstall-objects): uninstall-%: @$(if $(call older,$*), \ echo -e "$(FG_RED)not uninstalling $(FG_YEL)$*$(CLR_RE)", \ -- cgit v1.2.3-54-g00ecf From 4aff54995ea1e0238f8af20ca1320a568e683f2f Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 00:49:00 +0100 Subject: xinit: xmonad, xcompmgr, feh, unclutter, mowedline I'm making some changes to my desktop --- .xinitrc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.xinitrc b/.xinitrc index 861a0d6..66b10f0 100755 --- a/.xinitrc +++ b/.xinitrc @@ -10,6 +10,10 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then fi xflux -l 51.1180 -g 4.0012 +unclutter & +mowedline & +xcompmgr -n -r 0 & +feh --bg-tile ~/pictures/wallpapers/wallpaper-864137.jpg -test -n "$1" && wm=$1 || wm="awesome" +test -n "$1" && wm=$1 || wm="xmonad" exec $wm -- cgit v1.2.3-54-g00ecf From db63635d096c5696ce608b77d935364267ecf123 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 01:05:06 +0100 Subject: Show subdirectories When checking, reversing, installing or uninstalling be sure to show the subdirectories. --- dotfiles.mk | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/dotfiles.mk b/dotfiles.mk index 92e35a1..94db45e 100644 --- a/dotfiles.mk +++ b/dotfiles.mk @@ -45,21 +45,20 @@ install: reverse: @$(MAKE) -s -C ../ reverse uninstall: - @$(MAKE) -C ../ uninstall + @$(MAKE) -s -C ../ uninstall endif $(modules): %: - @echo $(MAKEFILES) - @$(MAKE) -C $* + $(MAKE) -C $* $(install-objects): install-%: % @$(if $(call newer,$*), \ - echo -e "$(FG_GRE)installing $(FG_YEL)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \ + echo -e "$(FG_GRE)installing $(FG_YEL)$(MKDPREFIX)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \ install -pDm $(MODE) "$*" "$(DESTDIR)/$*", \ - echo -e "$(FG_RED)not installing $(FG_YEL)$*$(CLR_RE)") + echo -e "$(FG_RED)not installing $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)") $(install-modules): install-%: - @$(MAKE) -s -C $* install + @$(MAKE) -s -C $* install MKDPREFIX=$(MKDPREFIX)$*/ $(reverse-objects): reverse-%: @$(if $(call older,$*), \ @@ -68,26 +67,26 @@ $(reverse-objects): reverse-%: echo -e "$(FG_RED)not reversing $(FG_YEL)$*$(CLR_RE)") $(reverse-modules): reverse-%: - @$(MAKE) -s -C $* reverse + @$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/ $(uninstall-objects): uninstall-%: @$(if $(call older,$*), \ - echo -e "$(FG_RED)not uninstalling $(FG_YEL)$*$(CLR_RE)", \ - echo -e "$(FG_GRE)uninstalling $(FG_YEL)$*$(CLR_RE)"; \ + echo -e "$(FG_RED)not uninstalling $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \ + echo -e "$(FG_GRE)uninstalling $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \ rm -f "$(DESTDIR)/$*") $(uninstall-modules): uninstall-%: - @$(MAKE) -C $* uninstall + @$(MAKE) -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/ $(check-objects): check-%: @$(if $(call newer,$*), \ - echo -e "$(FG_YEL)$* $(FG_GRE)newer$(CLR_RE) than $(DESTDIR)$*!", \ + echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_GRE)newer$(CLR_RE) than $(DESTDIR)$*!", \ $(if $(call older,$*), \ - echo -e "$(FG_YEL)$* $(FG_RED)older$(CLR_RE) than $(DESTDIR)$*.", \ - echo -e "$(FG_YEL)$* $(FG_BLU)up to date$(CLR_RE) with $(DESTDIR)$*.")) + echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_RED)older$(CLR_RE) than $(DESTDIR)$*.", \ + echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_BLU)up to date$(CLR_RE) with $(DESTDIR)$*.")) $(check-modules): check-%: - @$(MAKE) -s -C $* check + @$(MAKE) -s -C $* check MKDPREFIX=$(MKDPREFIX)$*/ $(filter %.elc,$(objects)): %.elc: %.el $(call compile,$^) -- cgit v1.2.3-54-g00ecf From d7b662715d3b7fb6ee99d1c8ba66a2a36086391b Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 01:10:51 +0100 Subject: Simplify log --- dotfiles.mk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dotfiles.mk b/dotfiles.mk index 94db45e..0d1e70b 100644 --- a/dotfiles.mk +++ b/dotfiles.mk @@ -53,26 +53,26 @@ $(modules): %: $(install-objects): install-%: % @$(if $(call newer,$*), \ - echo -e "$(FG_GRE)installing $(FG_YEL)$(MKDPREFIX)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \ + echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \ install -pDm $(MODE) "$*" "$(DESTDIR)/$*", \ - echo -e "$(FG_RED)not installing $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)") + echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)") $(install-modules): install-%: @$(MAKE) -s -C $* install MKDPREFIX=$(MKDPREFIX)$*/ $(reverse-objects): reverse-%: @$(if $(call older,$*), \ - echo -e "$(FG_GRE)reversing $(FG_YEL)$(DESTDIR)/$* $(CLR_RE)"; \ + echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \ cp -a "$(DESTDIR)/$*" "$*", \ - echo -e "$(FG_RED)not reversing $(FG_YEL)$*$(CLR_RE)") + echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)") $(reverse-modules): reverse-%: @$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/ $(uninstall-objects): uninstall-%: @$(if $(call older,$*), \ - echo -e "$(FG_RED)not uninstalling $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \ - echo -e "$(FG_GRE)uninstalling $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \ + echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \ + echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \ rm -f "$(DESTDIR)/$*") $(uninstall-modules): uninstall-%: @@ -80,10 +80,10 @@ $(uninstall-modules): uninstall-%: $(check-objects): check-%: @$(if $(call newer,$*), \ - echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_GRE)newer$(CLR_RE) than $(DESTDIR)$*!", \ + echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \ $(if $(call older,$*), \ - echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_RED)older$(CLR_RE) than $(DESTDIR)$*.", \ - echo -e "$(FG_YEL)$(MKDPREFIX)$* $(FG_BLU)up to date$(CLR_RE) with $(DESTDIR)$*.")) + echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \ + echo -e "$(FG_BLU)= $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)")) $(check-modules): check-%: @$(MAKE) -s -C $* check MKDPREFIX=$(MKDPREFIX)$*/ -- cgit v1.2.3-54-g00ecf From ee34dfcc2c2fec53731b64afca03bb34dd80b2ba Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Fri, 15 Feb 2013 15:17:46 +0100 Subject: Add zile config --- .zile | 5 +++++ Makefile | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .zile diff --git a/.zile b/.zile new file mode 100644 index 0000000..76abb70 --- /dev/null +++ b/.zile @@ -0,0 +1,5 @@ +;; -*- mode: lisp; -*- +(setq inhibit-splash-screen t) +(setq tab-width 4) +(setq indent-tabs-mode nil) +(setq backup-directory "/tmp") diff --git a/Makefile b/Makefile index ffcb9cb..d0deef8 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ modules=.emacs.d .config .conkerorrc .local .moc .mutt .ncmpcpp \ 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 + .xinitrc .Xmodmap .xsession .zprofile .zshrc .zile export MAKEROOT=y -- cgit v1.2.3-54-g00ecf