Compare commits

...

914 commits
pegas ... drd

Author SHA1 Message Date
2db8023e8a Add simplistic readable-mode buffer mode 2016-07-03 17:03:18 +02:00
033a5fb2a0 Use use-package to configure cedit 2016-07-03 01:45:00 +02:00
9398c8e872 Use use-package to configure c-eldoc 2016-07-03 01:43:34 +02:00
cc3163bf03 Use use-package to configure buttercup 2016-07-03 01:42:14 +02:00
ac00e02c14 Use use-package to configure the bundler package 2016-07-03 01:40:24 +02:00
8a9cb2c991 Use use-package for boxquote configuration 2016-07-03 01:37:57 +02:00
3b55381ed6 Move beacon config to use-package 2016-07-03 01:34:50 +02:00
aedb8632ba Fix some widgets’ padding 2016-06-17 01:34:29 +02:00
4419b93f80 Decrease width of mowedline 2016-06-17 01:31:44 +02:00
2123187afa Remove spacers 2016-06-17 01:31:14 +02:00
ec21b78114 Add a hydra to manage chat clients 2016-06-10 15:18:00 +02:00
9a094e3eaf Add window managing hydra 2016-06-10 15:04:25 +02:00
158dee8be2 Use use-package to configure smex 2016-06-10 15:00:19 +02:00
d860ba44db Remove helm config 2016-06-10 14:52:22 +02:00
27c2242c52 Fix some compiler warnings about fci-mode 2016-06-10 14:46:54 +02:00
390d8b2cc8 Fix possible compiler warning when excluding modes 2016-06-10 14:46:24 +02:00
cb337a15d1 Fix compiler warnings about some Gnus functions 2016-06-10 14:45:57 +02:00
fddfa5114e Remove non-existent setting
This setting was removed from Emacs Slack.
2016-06-10 14:45:00 +02:00
5e1db34151 Show slack buffers in current window 2016-06-10 14:44:39 +02:00
8385c94fe8 Fix byte-compiler error about eap 2016-06-10 14:44:08 +02:00
8555351598 Store org feed templates in seperate files 2016-06-07 01:20:22 +02:00
a89c7128ce Add username/password to scuttle feed 2016-06-07 00:51:18 +02:00
69d68f772e Remove unused code 2016-06-06 00:13:03 +02:00
02fab2aa75 Remove habitrpg 2016-06-06 00:08:16 +02:00
4d27b95746 Add abcde config 2016-06-05 18:52:12 +02:00
f234c05559 Load org-checklist
This allows me to use checklists in repeating tasks by resetting them
after every switch to “DONE”.
2016-05-17 11:24:58 +02:00
c4f3f39ca9 Use use-package to configure circe 2016-05-17 11:24:40 +02:00
4f4fa43dbd Specify emacs-slack’s entrypoint slack-start
Since currently I’m using a manually checked-out version of slack for
which no autoloads are found, I must manually specify the entry points.
This implies the defer option.
2016-05-17 11:22:40 +02:00
2260dde68d Show appointment notifications as notifications 2016-05-17 02:00:38 +02:00
62a267f633 Remove persistent outline mode 2016-05-10 00:36:04 +02:00
e2d662cf64 Remove prodigy configuration
I haven’t used prodigy in a while
2016-05-10 00:34:43 +02:00
e1f2c22344 Configure eshell using use-package 2016-05-10 00:33:13 +02:00
3a586dd03f Fix helm compiler warning 2016-05-10 00:28:50 +02:00
1957ad0c44 Remove emms configuration
I haven’t used emms in a while.
2016-05-10 00:17:00 +02:00
4f2ae398cd Use use-package to configure helm 2016-05-09 23:46:16 +02:00
8ae958f2f6 Use use-package to configure slack 2016-05-09 23:19:36 +02:00
c721929078 Configure js2-mode with use-package 2016-05-09 21:54:10 +02:00
7c5344d179 Add apache-mode configuration 2016-05-09 21:52:36 +02:00
f4245d59af Update auto-connect channels for Circe 2016-05-09 21:51:59 +02:00
b243926a43 Add proper clean target for generated files 2016-05-09 21:51:41 +02:00
9f0fea5138 Add more cask dependencies 2016-05-09 21:51:24 +02:00
5d78874a92 Store org-id-locations in a special place 2016-04-13 15:34:29 +02:00
5ff58b1092 Add use-package dependency 2016-04-13 13:24:58 +02:00
93f498b528 Remove rvm config 2016-04-13 12:40:31 +02:00
d58a326ee5 Add elfeed package 2016-04-13 12:38:57 +02:00
3224f0021e Automatically reconnect to Slack 2016-04-13 12:38:26 +02:00
a65d332001 Fix Conkeror config for modern Firefox 2016-04-13 12:37:35 +02:00
6c3a9794ed Add Ruby mode do snippet 2016-04-05 14:06:43 +02:00
57d5a8363d Move Ruby mode configuration to literate init 2016-04-04 12:07:15 +02:00
26a6830956 Turn on abbrev-mode in Ruby buffers 2016-04-04 11:49:57 +02:00
04d02624b6 Remove lingering reference to auto-complete 2016-03-17 00:40:12 +01:00
853f902d6c Add comment 2016-03-17 00:39:57 +01:00
ec1a9aa30c Fix company in non-fci buffers 2016-03-17 00:39:42 +01:00
94aad9cdb4 Add Company mode 2016-03-15 01:16:54 +01:00
6c7958f1f2 Remove auto-complete 2016-03-15 00:33:11 +01:00
a53dec0664 Don’t hash-quote hydras 2016-03-14 12:30:10 +01:00
fe8a770097 Enable electric-quote-local-mode for git commits 2016-03-14 12:29:35 +01:00
6742cab104 Don’t show eshell in a side window 2016-03-14 12:29:24 +01:00
0427658756 Autojoin some more channels in Circe 2016-03-14 12:28:58 +01:00
ea5263a852 Add Twitch configuration to Circe 2016-03-14 12:28:21 +01:00
4d8b3559bb Add some eshell aliases 2016-03-14 12:25:22 +01:00
4d213914f2 Add Emacs packages 2016-03-14 12:24:23 +01:00
c78de4158e Disable wakatime mode 2016-03-14 12:24:09 +01:00
062e299071 Change Xcursor theme 2016-03-14 12:22:00 +01:00
1eb2864451 Set C-x b to change to the previous directory 2016-03-14 12:19:47 +01:00
6c37b01bcb Add completion for my send-pkg utility 2016-03-14 12:19:35 +01:00
48c765d8aa Update antigen config
Use manually-installed antigen (to use with antigen selfupdate) and add
zsh-autosuggestions bundle.
2016-03-14 12:18:55 +01:00
23d5e7ba6a Add alias for docker-compose 2016-03-14 12:18:33 +01:00
6c073d19b0 Update tracked buffers to mowedline in realtime 2016-03-04 12:18:00 +01:00
7ee6fd8ae5 Remove fiplr
I haven't used it in a long time.
2016-02-11 10:58:42 +01:00
1e10799313 Make rofi fit in the screen again 2016-02-10 12:10:04 +01:00
357d0cb5af Make text selection in URxvt blue 2016-02-10 11:52:15 +01:00
4a2e7b2d6d Revert "Vimify my herbstluftwm keybindings"
This reverts commit 5d42e4f0ac.
2016-02-10 11:23:24 +01:00
66889f1a96 Stop updating mowedline with tag status 2016-02-10 11:17:12 +01:00
e03ca9b25f Only use 2 tags (one for each screen) 2016-02-10 11:15:58 +01:00
5d42e4f0ac Vimify my herbstluftwm keybindings 2016-02-10 11:15:25 +01:00
e6a0ffc8d0 Revert "Revert "Remove evil settings""
This reverts commit db19187726.
2016-02-10 11:14:24 +01:00
30206cf80d Revert "Update evil settings"
This reverts commit 2d95e082f9.
2016-02-10 11:14:04 +01:00
2d95e082f9 Update evil settings 2016-02-10 11:13:12 +01:00
31809b70e7 Enable electric pairs for Python buffers 2016-02-09 11:03:40 +01:00
e44cd12861 Cleanup jabber-init
- Add proper requirements to fix compiler warnings.
- Remove old stumpwm notification functions.
- Add dukgo jabber account.
- Remove old work gmail account.
2016-02-09 11:00:18 +01:00
2a2255787c Remove old SSH config 2016-02-09 10:59:30 +01:00
db19187726 Revert "Remove evil settings"
This reverts commit c9cacdf23c.
2016-02-08 01:16:21 +01:00
ae51a8c1bc Add factory snippet for Ruby 2016-02-08 01:10:27 +01:00
f5121275b5 Use "official" emacs-slack 2016-02-08 01:10:02 +01:00
83bb90540a Fix keysnail init syntax 2016-02-08 01:06:40 +01:00
13e88c967c Increase window/frame gap size 2016-02-08 01:06:21 +01:00
e9f01d0755 Update alert settings 2016-02-08 01:03:52 +01:00
5edcccd611 Add hydras 2016-02-08 01:03:42 +01:00
013778f74a Refresh diff-hl buffers after committing in magit 2016-02-08 01:02:48 +01:00
20624e9171 Remove superfluous require
This is also done in init.org
2016-02-08 01:02:25 +01:00
840d1f06a3 Add color to nicknames in circe buffers 2016-02-08 01:02:00 +01:00
dc12ea13f6 Move some more settings to lui from circe 2016-02-08 01:01:11 +01:00
90b0f4e509 Fix my nickname color in Circe buffers 2016-02-08 01:00:04 +01:00
a7d9aa0191 Add color to Emacs Makefile 2016-02-08 00:59:02 +01:00
8d90ed3444 Add settings for Syncthing and Lollypop 2016-02-08 00:58:26 +01:00
ded4bfadc8 Add context-menu keybinding for dunst 2016-02-08 00:58:04 +01:00
2ed2206983 how dunst transparently 2016-02-08 00:57:52 +01:00
3e8fbbaf90 Show icons in dunst 2016-02-08 00:57:41 +01:00
6697d5af83 Dynamically generate keyword and tag faces 2016-01-28 02:08:38 +01:00
ca219e2293 Readline-wrap interactive chicken 2016-01-08 11:46:55 +01:00
8d41a391d1 Add some environment variables 2016-01-08 11:46:41 +01:00
61d000130a Drop deprecated prefix 2016-01-08 11:46:18 +01:00
f28e74b77b Update URxvt font 2016-01-08 11:45:56 +01:00
e6ba03c1c0 Decrease letter spacing in URxvt
This makes the letter spacing for URxvt and Emacs the same
2016-01-08 11:45:06 +01:00
f1f0ce2126 Update Rofi keys
Rofi no longer accepts Mod4
2016-01-08 11:44:45 +01:00
d20c20fa5e Update rofi font 2016-01-08 11:44:39 +01:00
1e35c5bca9 Update Emacs font 2016-01-08 11:44:24 +01:00
b69fd8cbf8 Update default Emacs/URxvt ratio 2016-01-08 11:43:58 +01:00
b2e45a35ee Focus firefox windows again 2016-01-08 11:43:40 +01:00
9cdb165d40 Update herbstluftwm style 2016-01-08 11:43:28 +01:00
d81f84faf9 Fix helm config autoload 2016-01-08 11:43:04 +01:00
4067ac11a3 Specify the -playlist option to mplayer
This keeps it from complaining about untrusted playlist sources.
2016-01-08 11:42:39 +01:00
9245b117e6 Use a different app name for MER 2016-01-08 11:42:31 +01:00
16133f11f0 Load lui init 2016-01-08 11:42:18 +01:00
23458e9515 Update Emacs font 2016-01-08 11:42:11 +01:00
534bf76e28 Put helm buffers in the "right" slot 2016-01-08 11:41:52 +01:00
fdaa9af8ad Don't show details in helm-buffers 2016-01-08 11:41:36 +01:00
639e7c8e37 Enable lexical binding in circe init 2016-01-08 11:41:15 +01:00
585fcf65f6 Separate lui config 2016-01-08 11:41:05 +01:00
e4637aa9f9 Update Emacs dependencies 2016-01-08 11:40:36 +01:00
d28f5117b0 Update dunst configuration 2016-01-08 11:39:36 +01:00
0992773f49 Pseudotile Space Cadet pinball 2016-01-02 01:08:05 +01:00
e80eb40091 Fix some compiler warnings 2016-01-01 15:45:56 +01:00
2b6bb95df5 Fix set-theme-graphically autoload 2016-01-01 15:44:35 +01:00
330a303289 Stop truncating lines in Helm buffers 2016-01-01 15:44:29 +01:00
3e082add99 Add Ruby library 2015-12-19 00:52:46 +01:00
5cc8fb03ab Remove unwanted function 2015-12-19 00:25:19 +01:00
d3b3c33753 Move outline-toggle-entry to outline library 2015-12-19 00:24:39 +01:00
1eb19ac1ad Add yasnippet library 2015-12-19 00:22:45 +01:00
7442449659 Move vala-mode-func to editing library 2015-12-18 21:36:56 +01:00
9f3b09b5b1 Move term-mode-func to display library 2015-12-18 21:28:31 +01:00
f0a28b3580 Remove unused functions 2015-12-18 21:12:21 +01:00
ea0343f069 Add org library 2015-12-18 21:08:49 +01:00
ee784fee36 Remove unwanted command 2015-12-18 21:05:48 +01:00
3dd258810e Add site-lisp to load-path during compilation 2015-12-18 21:04:12 +01:00
6671b88279 Add theme library 2015-12-18 21:03:50 +01:00
91f5c1e0f7 Add elnode library 2015-12-18 20:51:17 +01:00
36c7cec4d4 Add outline library 2015-12-18 20:48:59 +01:00
0258e9aa5a Move some functions to the Python library 2015-12-18 20:45:28 +01:00
5a9ed59195 Add tagedit library 2015-12-18 20:38:07 +01:00
c75739c406 Add jabber library 2015-12-18 20:33:37 +01:00
aff5b83554 Add Hy library 2015-12-18 20:26:13 +01:00
b64aaf4011 Add dired library 2015-12-18 20:24:40 +01:00
7f35ee8c71 Move set-ispell-local-en-dict to git library 2015-12-18 01:55:25 +01:00
ea6a2cea54 Move elisp functions to separate library 2015-12-18 01:51:42 +01:00
e2680b51cf Move some commands to editing library 2015-12-18 01:47:38 +01:00
8dcf6df105 Move reset-default-directory to separate library 2015-12-18 01:43:58 +01:00
1b942fbcf1 Move request pull to git library 2015-12-18 01:38:31 +01:00
636c985bdd Move reload-buffer to editing library 2015-12-18 01:17:59 +01:00
bcf5e2150d Move raise-scratch to separate library 2015-12-18 01:13:23 +01:00
a5ee08bef3 Move raise-eshell to eshell library 2015-12-18 01:09:53 +01:00
61d65e27c8 Move raise-ansi-term to separate library 2015-12-18 01:07:38 +01:00
86e8b03592 Move python-mode-func to Python library 2015-12-18 01:03:41 +01:00
9a626be7a4 Move prog-mode-func to separate library 2015-12-18 00:46:41 +01:00
d745aa5b37 Remove unused function 2015-12-18 00:40:08 +01:00
4558772743 Fix compiler warning 2015-12-18 00:39:29 +01:00
9d1b5e4849 Move display function to its own library 2015-12-18 00:37:49 +01:00
4a8201fc9a Move PHP commands to separate library 2015-12-18 00:31:39 +01:00
ab94c9ab96 Fix compiler warning 2015-12-18 00:17:05 +01:00
36eeed7e1c Remove unused function 2015-12-18 00:16:52 +01:00
a20808a596 Fix compile library 2015-12-18 00:13:30 +01:00
fa0b9c87eb Move some commands to editing library 2015-12-18 00:13:16 +01:00
355b452a4c Update Gnus customizations
Use fancy unicode characters to show threading.

Use a line-spacing of 0.1 instead of 0.2 in summary buffers so the
unicode characters connect.

Start a new thread when the subject changes.

Fix some compilation warnings.
2015-12-17 09:40:55 +01:00
cb56a7f260 Pretty-print yasnippet compilation 2015-12-17 09:39:17 +01:00
4a247afc22 Add compilation and alert customizations 2015-12-17 09:38:24 +01:00
ec6557cbd5 Fix twig-mode/ext snippet 2015-12-17 01:53:19 +01:00
999e50bb11 Don't show current song in modeline
Since SVG Modeline Themes don't use the same modeline elements it isn't
that useful right now.
2015-12-17 01:51:53 +01:00
fc977b29f0 Move some functions to org-init 2015-12-17 01:50:46 +01:00
bdf984607e Move some functions to viewing library 2015-12-17 01:46:54 +01:00
83b0c62b49 Fix warning 2015-12-17 01:42:46 +01:00
8420af7190 Move markdown-mode-func to viewing library 2015-12-17 01:41:58 +01:00
59743ffe50 Add viewing library 2015-12-17 01:38:11 +01:00
4d00b7c7c3 Add lua mode library 2015-12-17 01:33:52 +01:00
44a8d0139d Move locally-enable-double-spaces to editing lib 2015-12-17 01:27:39 +01:00
bc6c5394ac Remove unused functions 2015-12-17 01:26:04 +01:00
ea35825e1d Move eshell-C-d to eshell library 2015-12-17 01:24:36 +01:00
40b26e86cf Move indent-defun to editing library 2015-12-17 01:15:30 +01:00
7fde32a3c5 Simplify haskell-mode-hook 2015-12-17 01:11:33 +01:00
9393cae50d Don't change tabs usage in Go source code 2015-12-17 01:09:51 +01:00
bc52f75609 Move eshell-handle-url to eshell library 2015-12-17 01:07:45 +01:00
cc4b99f7fc Simplify display-diary-hook 2015-12-17 01:04:01 +01:00
b3a0345c7c Fix warning in oni-html 2015-12-17 00:59:32 +01:00
168bcf9c58 Move editing functions to separate library 2015-12-17 00:58:26 +01:00
f65c03208b Define <f9> in the c-mode-map directly 2015-12-17 00:50:21 +01:00
bb83279842 Colorize compilation buffers 2015-12-17 00:42:32 +01:00
4919464b23 Update display-buffer-alist 2015-12-17 00:41:16 +01:00
ba5f16be66 Show WoMan buffers in same buffer 2015-12-17 00:40:24 +01:00
61e526ff34 Fix switching rvm versions when switching projects 2015-12-17 00:39:51 +01:00
ab130bef51 Split HTML and Cleanup functions into libraries 2015-12-17 00:39:01 +01:00
a9b583bac0 Add mowedline functions 2015-12-16 22:56:38 +01:00
a9f0f63a43 Remove unused awesome functions 2015-12-16 22:49:29 +01:00
3c71390a26 Move SQL functions to separate library 2015-12-16 22:47:43 +01:00
7888c07c0a Stop trying to create TAGS after save 2015-12-16 22:38:30 +01:00
3f90dcdd7d Add some twig-mode snippets 2015-12-16 22:26:55 +01:00
00019a1e90 Move Python commands to separate library 2015-12-16 22:26:25 +01:00
82a7d84572 Add eshell commands 2015-12-16 22:09:03 +01:00
7bb2d1f065 Reword the lexical binding section 2015-12-16 21:51:41 +01:00
40d78b985d Don't remove the internal border 2015-12-16 21:48:34 +01:00
2729adda1d Reword the setup section 2015-12-16 21:48:15 +01:00
c96a147d8e Move all URxvt settings to their own config 2015-11-30 01:42:03 +01:00
692b58d031 Use a more consistent way to define URxvt's font 2015-11-30 00:34:37 +01:00
2186b26e8a Specify an internal border for Emacs 2015-11-30 00:34:19 +01:00
06acbed5a4 Remove Xft settings, should be set by infinality 2015-11-30 00:33:51 +01:00
e9865398f7 Give Rofi its own configuration file 2015-11-30 00:33:36 +01:00
8d4e5b3c89 Define color names for Xdefaults 2015-11-30 00:33:15 +01:00
e48fdb676d Add separate URxvt config file 2015-11-30 00:19:09 +01:00
3614c4581b Use compton.conf instead of CLI arguments 2015-11-21 23:42:41 +01:00
e45a66b6ff Use redshift-gtk now that I have a tray 2015-11-21 23:40:14 +01:00
e31cd3e064 Update rofi config 2015-11-21 23:39:47 +01:00
2dbacd8ff5 Update mowedline init 2015-11-21 23:39:24 +01:00
5f82d1e5dc Fix hrunorraise
Apparently window IDs can also be 6 characters long instead of 7.
2015-11-21 23:38:33 +01:00
311bbce4bf Start trayer after starting herbstluftwm 2015-11-21 23:38:06 +01:00
86f8212896 Pad the left side of the first monitor
To make room for the system tray
2015-11-21 23:37:44 +01:00
b9489f3159 Select a random wallpaper at startup 2015-11-21 23:37:29 +01:00
216f9da807 Add ruby module snippet 2015-11-21 23:34:48 +01:00
d311cffd16 Add twig-mode snippets 2015-11-21 23:34:32 +01:00
d41afa89fd Add emmet-mode configuration 2015-11-21 20:20:53 +01:00
f5ab56de77 Remove lisp-extra-font-lock
It's just too much.
2015-11-21 20:15:58 +01:00
3c69b707a6 Add some manually-selected Org keyword colors 2015-11-21 20:08:58 +01:00
d5d58ca19e Add highlight-numbers-mode configuration 2015-11-21 20:08:24 +01:00
cd286eb7ee Add Twig configuration 2015-11-21 20:08:08 +01:00
7dbde2b56d Update Emacs package dependencies 2015-11-21 20:07:46 +01:00
b980af6a77 Add remove and retag commands for keysnail bookmarks 2015-11-18 01:15:10 +01:00
0f5e07d009 Add bookmark command to Keysnail 2015-11-18 00:23:21 +01:00
80edf526d3 Update keysnail.js 2015-11-17 21:29:25 +01:00
03baab2134 Automatically authenticate with Circe 2015-11-15 16:41:29 +01:00
342bb78246 Add beacon and extra highlighting for lisp 2015-11-09 14:28:06 +01:00
d1bafaca61 Don't use highlight-defined-mode 2015-11-09 14:07:13 +01:00
f65c7ae64e Change expected magit buffer name 2015-11-09 14:06:49 +01:00
e4fcc932e8 Don't expand snippets when opening files 2015-11-09 14:04:31 +01:00
b06bc7628c Replace some more characters in HTML 2015-11-09 14:04:13 +01:00
acb703bfc0 Provide circe-init feature 2015-11-09 14:03:34 +01:00
af735619df Update Emacs packages 2015-11-09 14:03:01 +01:00
7a1418dd64 Move circe settings to separate Org file 2015-10-03 00:39:52 +02:00
71751ca88d Move Circe settings to literate init 2015-10-03 00:19:21 +02:00
168807b974 Add notes about settings in .Xdefaults 2015-10-02 22:46:01 +02:00
a75647fd4f Show circe chats in frames without a minibuffer
This only actually works when a circe chat is opened with something like
`switch-buffer-other-frame'. Just switching buffers normally doesn't
work. Which is actually pretty much how I want it to be.
2015-10-02 22:44:36 +02:00
7bbed85972 Add some Emacs settings
These settings were inspired by this Emacs config:
https://github.com/wasamasa/dotemacs/blob/master/init.org

Some existed already, but this was an opportune time to follow the
instructions on the r/unixporn wiki to split your Xresources and to use
variables: https://www.reddit.com/r/unixporn/wiki/organizing_xresources
2015-09-29 17:02:02 +02:00
39e3977cea Colorize keychain status widget 2015-09-28 23:17:07 +02:00
ab88d0336d Add webcam status widget 2015-09-28 23:15:35 +02:00
9456e865c7 Use helm-find-files 2015-09-28 23:13:17 +02:00
d2621b43ca Use hydra for projectile-rails 2015-09-28 23:12:50 +02:00
2ac78884b0 Add circe settings 2015-09-28 23:10:28 +02:00
5f94872d37 Only load cask at compile-time
As long as init.org doesn't contain everything in my init.el it's still
needed at compile-time.
2015-09-28 23:08:35 +02:00
2488743abd Finish re-organizing init.org 2015-09-28 23:03:06 +02:00
cb49188ed7 Add text about my use of the words major mode 2015-09-23 16:45:55 +02:00
242b8e8e2b Update structure some more 2015-09-23 16:41:27 +02:00
780bd0f3c4 Remove stumpwm integration
I don't currently use stumpwm
2015-09-23 15:15:33 +02:00
a25de0f817 Fix HTML export of init.org 2015-09-23 15:00:48 +02:00
bf66ba20e3 Fix warnings about undefined magit variables 2015-09-23 14:36:28 +02:00
c72168099b Add robe customizations 2015-09-23 14:36:13 +02:00
85fe9b1ab3 Start cleaning up basic structure 2015-09-23 14:24:02 +02:00
dea9949d4b Directly include the preparation chapter 2015-09-22 22:43:20 +02:00
bd95338b9d Include intro.org directly in init.org 2015-09-22 22:29:56 +02:00
46bda5a885 Add preparation chapter to Emacs initialization 2015-09-22 22:11:52 +02:00
e28a4eb2b0 Update the intro of my Emacs init 2015-09-22 21:48:02 +02:00
d64d0e84dc Add wasamasa's config to list of inspirations 2015-09-22 21:41:08 +02:00
bd62f24d8a Rename first chapter in Emacs init 2015-09-22 21:40:27 +02:00
1d766b5fb0 Update chickadee webjump 2015-09-13 23:28:26 +02:00
efe56412a6 Only show ‘*helm’ buffers to the right 2015-09-13 23:27:40 +02:00
5095638f2f Store Linked tasks in a headline 2015-09-13 23:27:23 +02:00
9160e39372 Remove some unnecessary code 2015-09-13 23:27:10 +02:00
b491df4af6 Update hrunorraise
- Move implementation to scsh
- Cycle through possible windows
2015-09-13 23:16:14 +02:00
1a2a7141ae Fix keysnail init 2015-09-03 16:04:29 +02:00
08b76487c6 Start rofi 2015-09-03 16:04:01 +02:00
4729f66526 Start compton 2015-09-03 16:03:51 +02:00
c644282478 Don't update the taglist from xinitrc 2015-09-03 16:03:24 +02:00
e6c92ddb92 Stop using kupfer
It was always crashing
2015-09-03 16:03:01 +02:00
28961df04b Merge .Xdefaults
For some reason rofi won't start without this.
2015-09-03 16:02:15 +02:00
148423527a Remove bad option 2015-09-03 16:02:02 +02:00
1fca0b9fa4 Add rofi settings to .Xdefaults 2015-09-03 16:01:50 +02:00
e6107a6aa8 Show active window title in mowedline 2015-09-03 16:01:25 +02:00
a867ea38e2 Stop using background colors in mowedline 2015-09-03 16:01:14 +02:00
261659cb0f Update the mowedline taglist 2015-09-03 16:00:11 +02:00
7fa022cde6 Pseudotile the Spacechem game 2015-09-03 15:59:54 +02:00
4d71be20ae Add Org mode view for my GTD inbox 2015-09-03 15:59:36 +02:00
7909c2a170 Remove unnecessary alias 2015-09-03 15:59:24 +02:00
3311bcd8e0 USe electric modes in sh-mode 2015-09-03 15:59:08 +02:00
184ec5d2fc Stop ignoring IRC buffers 2015-09-03 15:58:55 +02:00
6e0e3ee819 Use helm 2015-09-03 15:58:47 +02:00
d9b12dc272 Define some CSS alignment rules 2015-09-03 15:57:48 +02:00
191c4714f5 Add some colorful new minor modes 2015-09-03 15:57:33 +02:00
eda6e24036 Add grunt as dependency 2015-09-03 15:56:37 +02:00
805b2a8e92 Stop using ERC, use circe instead 2015-09-03 15:56:18 +02:00
443bada7b1 Stop using company, bring back autocomplete 2015-09-03 15:55:17 +02:00
11601a8c9e Pad screen bottom in herbstluftwm 2015-08-22 01:34:36 +02:00
ed8485591c Don't swap monitors to get tag in herbstluftwm 2015-08-22 01:34:13 +02:00
593ce4be23 Add full frame keybind 2015-08-22 01:32:45 +02:00
30a43cb421 Change browser keybinding 2015-08-22 01:32:28 +02:00
facd97ef8e Update herbstluftwm wallpaper 2015-08-22 01:31:54 +02:00
69fc35bec5 Move margin prompts to their own library
Eventually maybe this can be turned into a library on its own.
2015-08-22 01:28:44 +02:00
3062fcae60 Update mowedline background 2015-08-17 21:59:24 +02:00
f4f7f4fa3b Update mowedline look for transparent background 2015-07-31 16:36:18 +02:00
4236a07922 Add taglist to mowedline 2015-07-29 13:37:37 +02:00
8a0a2886c8 Remove old site lisps 2015-07-28 22:39:41 +02:00
dfb85ce38b Start pinentry server in emacs 2015-07-28 20:17:52 +02:00
acd8559406 Add wakatime mode dependency 2015-07-28 20:16:14 +02:00
757cfa5b97 Use better yoshi-theme-inspired terminal colors 2015-07-26 22:14:04 +02:00
8337bd8d44 Update herbstluftwm visuals 2015-07-26 22:13:45 +02:00
3cf3448434 Use mg as the git editor 2015-07-26 22:12:50 +02:00
474961355d Add overlay and background
These were heavily inspired by ocodo-svg-modelines
2015-07-26 22:11:23 +02:00
4884fe70e6 Change main mailbox name 2015-07-26 22:07:00 +02:00
77af1ea358 Fix dictionary name for hunspell 2015-07-26 22:06:17 +02:00
b0dcc251b6 Use ido-everywhere 2015-07-26 22:05:47 +02:00
1ae23363d6 Add wakatime 2015-07-26 22:05:35 +02:00
4affb84793 Enable primary selection for copy/paste 2015-07-26 22:05:12 +02:00
2e44872d59 Use ido for some more completions 2015-07-26 22:04:57 +02:00
cc20fc38d8 Use visual-regexp 2015-07-26 22:04:16 +02:00
8adbbed6c5 Add some minor modes for Ruby 2015-07-26 22:03:24 +02:00
a31e989a28 Require projectile during compilation 2015-07-26 22:02:54 +02:00
4130e90044 Automatically turn-on the correct ruby 2015-07-26 22:02:16 +02:00
c9cacdf23c Remove evil settings 2015-07-26 22:00:20 +02:00
08e079d384 Update Emacs packages 2015-07-26 21:52:57 +02:00
ceff401cc8 Stop using avandu
Last time I tried one of the dependencies couldn't be loaded.
2015-07-26 21:50:20 +02:00
38c9454e2b Remove obsolete init files 2015-07-08 15:28:17 +02:00
0976c73b7d Update ignores 2015-07-08 15:27:16 +02:00
668c80ccc7 Compile snippets and improve site-lisp compilation
Files can't be left out from being compiled anymore.

Even though the snippet rules depend on every
`.yas-compiled-snippets.el' separately, when the first is compiled, the
rest don't need to anymore.
2015-07-08 15:21:41 +02:00
dd58c6cf66 Add some snippets 2015-07-08 15:21:25 +02:00
f54d8a5930 Move my eshell prompt to separate module
To help with autoloading, also update the Makefile to create a
`site-lisp/site-autoloads.el' file which is loaded by emacs.
2015-07-08 12:38:23 +02:00
e390a5dae4 Enable tracking protection in Conkeror 2015-07-05 22:35:11 +02:00
3d1d07f7f7 Don't try to send appts to jabber 2015-07-05 22:34:20 +02:00
eca7f33d36 Update mowedline look 2015-07-05 22:33:59 +02:00
f9b4e7b407 Pseudotile some windows 2015-07-05 22:33:27 +02:00
d06e12d70d Update frame & window looks 2015-07-05 22:32:48 +02:00
99dcade3b7 Change the default layout for frames 2015-07-05 22:32:25 +02:00
280beaba2b Change wallpaper 2015-07-05 22:31:57 +02:00
0fa2c21ec8 Look for a literal ., not any character 2015-07-05 22:29:19 +02:00
d8a6c9640c Add hrunorraise script for herbstluftwm 2015-07-05 22:28:31 +02:00
40d9a1b3fe Add flycheck section to init.org 2015-06-30 15:25:57 +02:00
0f8c30d16e Add the pony settings to init.org
Oops
2015-06-29 15:46:39 +02:00
a0519f51c9 Don't align chained calls in Ruby
RuboCop complains about it and now that I see it it does look pretty
good.
2015-06-29 15:45:10 +02:00
cab9a4bcf3 Move pony settings to init.org 2015-06-29 13:29:28 +02:00
eb0dd10126 Fix warning about `in-string-p' 2015-06-29 13:16:38 +02:00
61976703e7 Move po-mode settings to init.org 2015-06-29 13:16:22 +02:00
c83c9fb28d Add some more TODO colors 2015-06-25 13:46:10 +02:00
c46b1097d4 Add some podcasts 2015-06-25 13:46:02 +02:00
56123da22c Use en_US for git commits
hunspell doesn't know about an "en" dictionary.
2015-06-21 12:47:30 +02:00
80b13a5786 Update requires to remove warnigns 2015-06-21 12:47:06 +02:00
4e74660f46 Remove dependency on taiga 2015-06-21 12:46:47 +02:00
caf5b50e0e Remove dependency on desktop-registry 2015-06-21 12:46:13 +02:00
143f86da3f Update htmlize CSS setting name 2015-06-21 12:45:37 +02:00
e23ff50a29 Remove org-mobile 2015-06-21 12:45:16 +02:00
c7ee21a46e Add/update some colors in org-mode 2015-06-21 12:43:39 +02:00
2ffb29b718 Use hunspell for spell-checking when available 2015-06-21 12:34:34 +02:00
56c22f90ef Add mg settings 2015-06-17 11:29:03 +02:00
e9f4e1297a Add MPD service file 2015-06-17 11:26:45 +02:00
472fc43adb Remove gimp script
It has been moved to a separate project
2015-06-17 11:25:24 +02:00
c057b45cbd Move hl-indent settings to init.org 2015-06-17 11:24:23 +02:00
ca31d59176 Add zsh function to go to a project's root dir 2015-06-17 11:02:14 +02:00
6d7bd71f13 Set cdpath 2015-06-17 11:02:04 +02:00
af7abe2db3 Add hc alias for herbstclient 2015-06-17 11:01:51 +02:00
2a705832f5 Use herbstluftwm and mowedline 2015-06-17 11:01:33 +02:00
7696ac3d7c Use the new mail update script for mowedline 2015-06-17 11:00:47 +02:00
353fe31aad Update mowedline contents 2015-06-17 11:00:28 +02:00
04f867ce39 Update visuals 2015-06-17 11:00:10 +02:00
609a0e2ddb Remove commented functions 2015-06-17 10:59:48 +02:00
a12a5ed261 Remove panel-config 2015-06-17 10:58:25 +02:00
6cb0641a18 Set-up monitors 2015-06-17 10:58:01 +02:00
811b1720d3 Update wm rules
- Always focus new windows.
- Put URxvt windows on tag 1 in frame 1 and switch to the tag if
  necessary.
- Put Emacs windows on tag 1 in frame 0.
- Put Conkeror winndows on tag 2 in frame 0.
- Turn on pseudotile for Pinentry windows.
- Don't focus Firefox windows.
- Do focus firefox-developer windows.
2015-06-17 10:55:09 +02:00
7762e3892d Update visual settings 2015-06-17 10:54:47 +02:00
e42c235cce Update keybindings 2015-06-17 10:54:11 +02:00
27eea21566 Add screen locker keybinding 2015-06-17 10:53:40 +02:00
999be753bd Add run-or-raise functions 2015-06-17 10:53:21 +02:00
227eab333e Use URxvt as terminal emulator 2015-06-17 10:52:17 +02:00
1d3aae3d05 Set wallpaper with feh 2015-06-17 10:51:22 +02:00
f06e2fb832 Truncate the path portion of org tasks 2015-06-17 10:50:16 +02:00
3933f42b39 Show ERC status in modeline 2015-06-17 10:49:43 +02:00
db423b3ce2 Stop using colemak-evil
To become more familiar with the physical placement of evil's
keybindings I've written a new layout. This is basically the same as the
default except that it's mapped out over a colemak layout and hjkl has
become jkl; and ; has become h. I did this because I feel jkl; is more
comfortable.
2015-06-17 10:44:59 +02:00
860962626b Add keybinging for org-store-link 2015-06-17 10:44:14 +02:00
5c05caf196 Add mail update routines for mowedline 2015-06-17 10:43:35 +02:00
739f89bace Move magit settings to init.org 2015-06-17 10:43:14 +02:00
26689b0eec Don't use emacs-lisp-mode as the initial mode
Using `emacs-lisp-mode' as the initial major-mode also runs `flycheck'.
Flycheck will constantly show warnings because "*scratch*" doesn't
contain the proper header or footer. The default initial major-mode is
`lisp-interaction-mode', which is basically the same as
`emacs-lisp-mode', with some extra (annoying) keybindings which get
overwritten by `paredit' anyway. Now I don't see any warnings.
2015-06-17 10:39:15 +02:00
32c9f20364 Manually set ,, to the comment operator 2015-06-17 10:38:51 +02:00
34aeb28dda Add mowedline to IRC autojoin channels 2015-06-17 10:38:26 +02:00
b0016760fe Include package.el when byte-compiling 2015-06-17 10:38:04 +02:00
2d9f023d14 Temporarily turn off Marmalade, it raises an error 2015-06-17 10:36:51 +02:00
b3bd639206 Add org-capture template for Conkeror 2015-06-17 10:36:20 +02:00
1e46767718 Login to scuttle automatically if possible 2015-06-17 10:35:01 +02:00
ec922b7be4 Use the brand-new mowedline config syntax 2015-06-01 21:20:54 +02:00
aabcb90780 Add mowedline configuration 2015-06-01 21:18:38 +02:00
30952ab6a5 Remove the first part in showing the outline
The first part is an artifact from the way I've been using GTD and the
other parts (if any) make the first implicit.
2015-05-25 20:06:11 +02:00
3eb9eb45f3 Skip next steps in org todo lists
Projects can fill up the task list quite easily, though actually only
the immediately next task is of real interest.
2015-05-25 19:26:51 +02:00
d25cc62263 Move browse-url settings to init.org 2015-05-09 20:41:53 +02:00
caf261a4cd Update URxvt settings 2015-05-09 19:17:49 +02:00
cfe36adc2e Give the right row a bit more space 2015-05-09 19:16:34 +02:00
5baead61e3 Take message inhibition out of init.el 2015-05-09 19:15:44 +02:00
16c5309394 Don't display flycheck errors in minibuffer 2015-05-09 19:15:06 +02:00
7cc7cb3eae Use company-mode 2015-05-09 19:14:56 +02:00
4d36ff9551 Update buffer display settings 2015-05-09 19:14:14 +02:00
96e30cf2a0 Cleanup auto-init function 2015-05-09 19:12:55 +02:00
1bda53e97d Start using urxvt again 2015-05-09 19:12:16 +02:00
bfcb68d21f Add nim programming mode dependency 2015-05-09 19:11:36 +02:00
a13ee49d90 Add company-mode dependency 2015-05-09 19:10:49 +02:00
a2ff0c0a78 Add web-mode dependency 2015-05-09 19:10:24 +02:00
5f55667a80 Run kupfer 2015-05-02 17:25:56 +02:00
9ebfbdd662 Notify me of new mails 2015-05-02 17:25:40 +02:00
cc2baa023e Stop using popwin 2015-05-02 17:24:52 +02:00
c5847bc02a Fix some warnings 2015-05-02 17:23:34 +02:00
3947734df1 Give the mail icon some more room 2015-05-02 17:21:44 +02:00
e8bce6760b Specify a default size for icons 2015-05-02 17:21:09 +02:00
0388b9eeaa Stop using hl-sexp-mode 2015-04-27 16:09:44 +02:00
22b7162988 Remove NNTP sources from GNUS 2015-04-27 16:05:53 +02:00
2aed414a95 Tweak some evil keys 2015-04-27 16:05:18 +02:00
779787d56c Set the fci rule column for ruby mode 2015-04-27 16:04:17 +02:00
6980dd5c32 Remove wakatime 2015-04-27 16:04:04 +02:00
733985953f Stop using mode-icons
With svg-mode-line-themes enabled this package doesn't do much of
anything anymore.
2015-04-27 16:03:16 +02:00
c278fb2684 Add Read/Write or Read-only indicator 2015-04-27 13:00:05 +02:00
c6d4ada60f Rename my-smt to oni-smt 2015-04-27 12:39:53 +02:00
1df8832757 Always compile from the top-level Makefile 2015-04-27 12:12:16 +02:00
7619a1b0d2 Add info count to flycheck indicators 2015-04-27 12:08:14 +02:00
8ea891aeb5 Add section on depends-on snippets 2015-04-21 22:18:01 +02:00
2fdc0fbf87 Add section on auto completion 2015-04-21 22:16:56 +02:00
22084f3d92 Use cask to compile .elc files 2015-04-21 22:16:09 +02:00
d49ecc62a7 Move and expand the switching newline keys section 2015-04-21 21:51:32 +02:00
4e6871d7ca Sort electric indent mode list 2015-04-21 21:40:54 +02:00
b28d3ff3f2 Add section about electric pairing 2015-04-21 21:40:14 +02:00
6f46220968 Give electric indent its own section 2015-04-21 21:27:47 +02:00
bf669027f7 Put the intro in a separate file 2015-04-21 21:11:48 +02:00
fea67ad3ee Change outline 2015-04-20 01:25:19 +02:00
9921e99df2 Require notifications for metalexpress 2015-04-20 01:12:15 +02:00
6e1dace32b Remove unnecessary custom minor mode 2015-04-20 01:03:18 +02:00
fd5b2c2cdf Use 'chomp instead of :chomp 2015-04-20 01:01:39 +02:00
8015a380be Add some stuff 2015-04-20 01:01:23 +02:00
9dbf7bedb2 Load Cask file as Emacs Lisp 2015-04-20 01:01:02 +02:00
7ec0b50211 Add new package.el code, commented 2015-04-20 00:53:05 +02:00
9537370590 Add mailbox 2015-04-20 00:51:32 +02:00
1b74abb05c Use quicklisp to load stumptray 2015-04-20 00:51:20 +02:00
b771f25f65 Add dormant stumpwm xinit 2015-04-19 23:32:34 +02:00
5b37bf8efb Update prompt VC info 2015-04-08 15:17:26 +02:00
677f124c94 Update mailwidget calls 2015-04-08 15:16:55 +02:00
3903832b34 Add diff for Dia files 2015-04-08 15:16:42 +02:00
3ccd481d04 Update org capture templates 2015-04-08 15:16:25 +02:00
689036a6b9 Move gnus data 2015-04-08 15:16:13 +02:00
319a3a85d2 Update font specification 2015-04-08 15:15:59 +02:00
01ab1c57bd Simplify output of make targets 2015-04-08 15:15:36 +02:00
9783c7a6c6 Change font 2015-04-08 15:15:13 +02:00
692389bf6b Fix width of default terminal window 2015-04-08 15:14:41 +02:00
5284bf07ef Add filezilla and gimp to fullscreen applications 2015-04-08 15:14:29 +02:00
9dcc9e0ca5 Update wibox widgets 2015-04-08 15:14:19 +02:00
fb1066f5e0 Focus screen relative to focused window, not mouse 2015-04-08 15:13:18 +02:00
41968ee029 Add space to dynamic group names 2015-04-08 15:12:32 +02:00
3440624c99 Use terminator as terminal emulator 2015-04-08 15:12:16 +02:00
8d67f0af8e Add programming modes 2015-04-08 15:06:35 +02:00
e4b9421f79 Add wakatime mode 2015-04-08 15:06:06 +02:00
a43b50504e Trucate lines in ERT results 2015-04-08 15:04:58 +02:00
062a4d7743 Use flycheck-cask 2015-04-08 15:04:39 +02:00
582d1cea19 Update mail widget after gnus exit 2015-04-08 15:03:49 +02:00
742577668a Update awesome mail widget 2015-04-08 15:02:08 +02:00
5d9ad8a032 Add electric indent mode to js2-mode 2015-03-24 11:22:04 +01:00
cd55a123e0 Add Pencil to the dynamically allocated programs 2015-02-26 09:40:21 +01:00
882ca4b99d Only create a single tag per screen to begin with 2015-02-26 09:39:38 +01:00
cd7bdc03cf Also dynamically create a tag for Firefox 2015-02-26 00:36:12 +01:00
9a4c2b5ea8 Show Dia in its own dynamic tag 2015-02-26 00:02:33 +01:00
72bba12f10 Remove unused section about titlebars 2015-02-25 13:14:47 +01:00
7091c6ec43 Set Dia windows to master as well 2015-02-25 13:12:04 +01:00
7926b846a7 Hide pagebreaks and connection points 2015-02-24 13:54:42 +01:00
d52a012c15 Turn Snap to Grid on in Dia 2015-02-24 13:50:26 +01:00
0f3c1ec155 Add dia settings 2015-02-24 13:49:41 +01:00
61f4611942 Set mailcounts in awesome 2015-01-20 14:38:58 +01:00
532caa4c29 Add some extra tag colors 2015-01-20 14:38:39 +01:00
1eee0de460 Properly show function arguments in the modeline
When one is working in the minibuffer, using eval, the function
arguments are shown in the modeline. This normally messes up the
modeline when using an SVG modeline, but with this function it should
show it properly.
2015-01-20 14:37:01 +01:00
6b25025611 Show some extra evil-state info in modeline 2015-01-20 14:36:41 +01:00
7de3d74dfa Use imenu in SCSS mode 2015-01-20 14:36:01 +01:00
d061d492a7 Use :chomp for whitespace instead of 'chomp
I wrote a patch that checks for `:chomp' instead of `'chomp' as the
value for `electric-pair-skip-whitespace' so that it can't possibly be
mistaken for a function, which would cause trouble.
2015-01-20 14:34:24 +01:00
a6481f8a6b Add feed that checks oldest bookmarks
Only the bookmarks tagged lookat.
2015-01-20 14:33:20 +01:00
58bc48d227 Use built-in electric-pair-local-mode
I wrote a patch to include it in Emacs itself.
2015-01-20 14:33:08 +01:00
b6fefcb3a5 Add elnode handler to get current conkeror URL
By running this in elnode, one can then point their browser to the
chosen port and server and they'll get 302-redirected to whichever URL
conkeror is showing at that moment.
2015-01-20 14:30:11 +01:00
9e31f7989a Bring back the SVG modeline 2015-01-20 14:29:29 +01:00
792dfe908d Reset mode-line-format in the *scratch* buffer
The first time `evil-mode' is run it sets the `mode-line-format'
buffer-local variable. This overrides the default value set later when
the theme and SVG modeline are loaded.
2015-01-20 14:27:34 +01:00
c778fb7a69 Enable projectile global mode 2015-01-20 14:27:24 +01:00
38f0edbfb1 Add dependency on projectile 2015-01-20 14:25:33 +01:00
4a1f8b915c Fix posting unicode characters to scuttle 2015-01-20 14:25:16 +01:00
fac5beab6b Ignore some more stuff 2015-01-07 02:49:26 +01:00
ecca1dcb62 Add some more tag faces 2015-01-07 02:39:18 +01:00
db1eea8e7a Use web-mode for *.html.erb 2015-01-07 02:38:48 +01:00
f1dc2d9b94 Enable hl-indent-mode for any prog-mode 2015-01-07 02:38:19 +01:00
74a8eadaba Update the awesome modeline after closing a group 2015-01-07 02:37:49 +01:00
c5844963d2 Autoload hl-indent-mode 2015-01-07 02:37:30 +01:00
9600b70377 Require rvm 2015-01-07 02:32:20 +01:00
00ba72f907 Require slim-mode 2015-01-07 02:32:02 +01:00
28d15764f3 Require hl-indent 2015-01-07 02:31:48 +01:00
28360d0a00 Require feature mode 2015-01-07 02:31:35 +01:00
7b7ebbbc7c Use passive widgets
This way awesome won't block when trying to get something and it takes a
long time (like getting number of unread RSS articles without an
internet connection).
2015-01-07 02:30:41 +01:00
cebd95b07a Set some initial states to insert 2014-12-28 01:28:36 +01:00
f227653717 Enable electric indent in ruby buffers 2014-12-28 01:25:07 +01:00
6a8d1ea37b Show loaded project when making a note 2014-12-27 21:32:11 +01:00
84b65d4e3b Revert "Remove evil"
This reverts commit 437292c927.
2014-12-27 21:32:00 +01:00
49af8ba479 Move lexical binding to top of output 2014-12-19 22:13:56 +01:00
9a4067a8c6 Add literate mailcap config 2014-12-19 22:13:32 +01:00
28aae66e28 Add mailcap settings 2014-12-19 20:38:04 +01:00
617e4a1c54 Add gimp scripts 2014-12-19 20:37:01 +01:00
529044dd00 Add HLA alias 2014-12-16 23:09:35 +01:00
437292c927 Remove evil 2014-12-16 23:09:12 +01:00
ac8b03776b Remove scss-mode dependency
There's a built-in SCSS mode now, and it appears to conflict with this
one. When both are installed, the built-in one is loaded but it shows
almost no fontification.
2014-12-16 15:03:16 +01:00
1b8244aac4 Add gitignore 2014-12-10 17:15:05 +01:00
567e133cf3 Add snippets 2014-12-10 17:14:27 +01:00
bea07604f2 Add myctl ZSH alias
Typing `systemctl --user restart emacs' at least once a day and often
also `systemctl --user start mpd' is annoying. `systemctl' is for
system-wide unit files, `myctl' just for my own.
2014-12-10 17:12:53 +01:00
240b9534df Update org capture templates
I'm trying out some GTD, which uses inbox rather than task queue.
2014-12-10 17:12:24 +01:00
4edb26c381 Update haml-mode functions 2014-12-10 17:12:10 +01:00
f5fbe7ed7e Update SCSS mode functions 2014-12-10 17:11:52 +01:00
0dc3fe0410 Add simple multiplication table function 2014-12-10 17:11:31 +01:00
d8eb322ca7 Add debbugs package 2014-12-10 17:11:02 +01:00
cbb7761b2a Add scuttle bookmarked widget
This widget shows whether or not the currently visited buffer is
bookmarked in scuttle. This function requires a patch to scuttle to
work.
2014-12-10 17:10:17 +01:00
fe2f5bd66a Change awesome theme colors 2014-12-10 17:09:43 +01:00
1164c1b297 Change color of naughty notifications 2014-12-10 17:09:27 +01:00
abd841042d Add emacs.socket
By starting Emacs on-demand rather than on login we can carry over the
environment variables available when the emacs daemon is actually
started. Provided they've been imported by systemd.
2014-11-24 23:03:54 +01:00
34c361cc66 Allow rails and ruby to be controlled from emacs 2014-11-24 23:03:38 +01:00
99ea6160f1 Increase scrollback in Screen 2014-11-23 14:26:54 +01:00
dcf69d2e3f Set eww-mode to default to emacs-state in evil 2014-11-23 14:26:30 +01:00
4ff72bdc0a Remove rbenv settings 2014-11-14 13:50:23 +01:00
cf47f738fa Add CSS settings to literate init 2014-11-14 13:49:44 +01:00
5a92369dc1 Add local .desktop files to menu 2014-11-12 16:14:37 +01:00
c0984eea1e Set whitespace-style locally 2014-11-12 14:32:32 +01:00
dd53dd1a11 Don't use display table to show tabs in PHP 2014-11-12 14:28:36 +01:00
10a1a0782e Add electric indent to javascript 2014-11-11 14:57:07 +01:00
269ad348ac Set some more web-mode settings 2014-11-11 11:14:42 +01:00
8e4cf56280 Add web-mode settings 2014-11-11 11:06:48 +01:00
4926ca5f08 Reinstate libnotify notifications 2014-11-10 20:53:56 +01:00
b0a9184283 Show tabs in PHP code 2014-11-10 20:52:17 +01:00
305e838383 Stop relying on fingerprints 2014-11-10 09:31:30 +01:00
2a899dddc2 Fix evil emacs state modes 2014-11-07 12:55:11 +01:00
118e9c4b99 Don't depend on slime-je 2014-11-07 12:52:36 +01:00
ce5d11ec37 Add msmtp config 2014-11-05 01:08:28 +01:00
229db6fc65 Change cert fingerprint 2014-11-05 00:55:27 +01:00
ac0084625a Change gnus startup file location 2014-11-05 00:54:45 +01:00
8215a31186 Export all variables from gnome-keyring-daemon 2014-11-04 10:26:23 +01:00
51e8f161e7 Use just the one account and use starttls to connect 2014-11-04 10:26:08 +01:00
11ed78d83a Enable electric-indent for php 2014-11-03 14:35:46 +01:00
67ca189890 Fix typo 2014-11-03 14:35:39 +01:00
7b2566e57b Update mwfact for even better fit 2014-11-02 15:41:39 +01:00
ddaf995a35 Change theme font 2014-11-02 15:41:30 +01:00
368a0bc422 Change font 2014-11-02 15:35:43 +01:00
aa7889378b Add RVM variables 2014-11-02 15:10:40 +01:00
7089660933 Make Conkeror init username-agnostic 2014-11-02 15:00:17 +01:00
e72f3c5810 Copy INFOPATH to systemd services 2014-11-02 14:02:43 +01:00
22c9168668 Copy PATH into systemd services 2014-11-02 14:00:32 +01:00
24306fc290 Update mwfact for new pixel-based Emacs size 2014-11-02 13:59:39 +01:00
3ac18ef802 Disable keyring 2014-11-02 13:59:32 +01:00
2c54c1b443 Remove clark 2014-11-02 01:07:04 +01:00
068bae02ba Use tilde to specify target dir 2014-11-01 23:36:27 +01:00
be9a3107d2 Speialize layouts only for phoenix 2014-11-01 23:21:32 +01:00
00f5f3ed9d Only use avandu on drd, add dependency file 2014-11-01 23:10:02 +01:00
df9f1f278b Don't use Liberation Mono, use Fantasque Sans Mono 2014-11-01 22:15:20 +01:00
3d1dfb5f40 Remove conditions, all PCs start the same wm 2014-11-01 20:47:18 +01:00
567b4c9cf4 Use ruby-mode, update settings 2014-10-31 15:19:04 +01:00
7296051d56 Reject invalid SSL/TLS certificates 2014-10-31 15:01:56 +01:00
ca2ce63ae0 Chomp whitespace when closing delimiters 2014-10-31 14:52:03 +01:00
f170652c77 Use pixels when resizing Emacs 2014-10-31 11:36:43 +01:00
bf05b1b11f Add function to shrink window to minimum pfx width
Useful for testing Firefox and Picturefix's minimum width.
2014-10-30 01:52:16 +01:00
c67d9dbec1 Add prodigy-view-mode to emacs-state modes 2014-10-29 11:03:10 +01:00
8320ecc9ab Require cask and htmlize when exporting init.org 2014-10-27 21:15:12 +01:00
44704e67ec Update cert fingerprint 2014-10-27 21:14:47 +01:00
cceea74f86 Fix org structure 2014-10-27 16:50:32 +01:00
3d8d38501f Add automatic pairing to coffee-mode 2014-10-27 16:49:53 +01:00
187e1d7174 Add automatic pairing to enh-ruby-mode 2014-10-27 16:47:42 +01:00
039e445452 Add section on programming mode customizations 2014-10-23 16:48:30 +02:00
4baea6bdac Add electric-indent and electric pair modes to init.org 2014-10-23 16:38:45 +02:00
05c68a9e2e Update cert fingerprint 2014-10-23 10:23:24 +02:00
dff0536e09 Enable eldoc during eval-expression 2014-10-23 10:22:44 +02:00
11449ca6eb Use org-plus-contrib 2014-10-23 10:21:35 +02:00
b8a9d602bd Enable electric-pair-mode for some modes 2014-10-23 10:21:18 +02:00
02871ce988 Add mailcatcher prodigy service 2014-10-15 09:13:55 +02:00
dafda8a9c4 Remove haskell-mode
It was causing an error in combination with yasnippet
2014-10-15 09:13:35 +02:00
fbf921ecb2 Use FontAwesome for RSS count 2014-10-15 09:13:14 +02:00
2b1913c65f Update cert_fingerprint 2014-10-09 23:33:41 +02:00
6825f7ed69 Add C-g keybinding to text keymap 2014-10-09 23:33:28 +02:00
6a19fa9ce6 Add webjump to &what 2014-10-09 23:33:18 +02:00
11862a9c80 Remove monokai-theme dependency 2014-10-09 23:33:04 +02:00
9879c4ab5f Remove w3m 2014-10-09 23:30:09 +02:00
98f38a25b8 Fix init for new Emacs version 2014-10-09 23:27:21 +02:00
d73129105b Remove unnecessary autoloads 2014-10-09 23:27:06 +02:00
26469170bf Add missing dependencies 2014-10-09 23:23:57 +02:00
182f3514e6 Use special character to represent locked/unlocked 2014-09-24 00:10:41 +02:00
a7a4c1dd35 Show keyring lock state in awesome 2014-09-23 19:59:04 +02:00
8ac24fb0eb Always start keyring 2014-09-23 17:07:48 +02:00
18018a7c16 Update unused account settings 2014-09-23 17:07:29 +02:00
75e148b29c Fix settings for pfx and 9f mail 2014-09-22 23:08:15 +02:00
0ed50b7edf Make jabber.el compile 2014-09-22 23:07:32 +02:00
931979b5c6 Use a keyring to store some credentials 2014-09-22 23:04:10 +02:00
9ccb99ee15 Reuse existing Emacs frame if possible 2014-09-22 21:50:21 +02:00
440c0cc3ca Add SBCL service using GNU Screen 2014-09-22 21:40:37 +02:00
f2dd6bbec2 Add Enhanced Ruby Mode 2014-09-22 21:39:59 +02:00
d7b2e88fdd Add drd.el to source files 2014-09-22 21:39:03 +02:00
95607444a0 Only call slime-setup after slime loads 2014-09-22 21:38:39 +02:00
c25684314b Stop filtering on loaded desktop 2014-09-22 21:37:47 +02:00
028582d634 Remove habitrpg settings 2014-09-22 21:36:26 +02:00
86f495e117 Update pivot.el 2014-09-22 21:34:35 +02:00
3dad71a9b7 Remove randr settings
My second graphics card stopped working, I can't use a third monitor
anymore.
2014-09-22 21:31:20 +02:00
ae72dd0343 Update certificate fingerprint 2014-09-19 11:59:46 +02:00
c02f09816d Handle docx documents with libreoffice 2014-09-19 11:58:45 +02:00
bf0d58ef40 Revert "Stop using Evil (for now)"
This reverts commit b03312fa44.
2014-09-19 11:58:26 +02:00
c487024e26 Add some pivotal functions 2014-09-01 12:46:08 +02:00
35b9c059eb Make org's day end at 4:00 AM 2014-09-01 12:45:42 +02:00
9cb6fa5093 Add keys to move windows to different screens 2014-09-01 12:45:22 +02:00
b03312fa44 Stop using Evil (for now)
It's a little too disruptive. Vim keybindings are awesome, but I just
can't seem to quite get used to them.
2014-08-27 11:21:06 +02:00
48238686d9 Add a useful function 2014-08-27 11:20:17 +02:00
b9f699ad07 Add explanation for master window factor setting 2014-08-26 15:37:17 +02:00
742b30a806 Change default master window factor
Change the default master window factor to make terminals appear with 80
columns on the main screen.
2014-08-26 15:35:00 +02:00
7d994c389a Fix placement of Conkeror on multi-head setups 2014-08-26 15:34:33 +02:00
4281a357f4 Update gmail SSL fingerprint 2014-08-26 11:27:29 +02:00
c278f6edb4 Add inactive alwaysdata account 2014-08-26 11:26:58 +02:00
b5ea7e05ea Properly set ispell language when sending mails 2014-08-26 11:23:39 +02:00
f719e35fbf Rename oni:evil-sort-operator 2014-08-26 11:21:29 +02:00
b3861837b0 Use URXVT daemon/client in awesome 2014-08-26 11:20:56 +02:00
bd6c4b409f Re-enable RSS feed count in awesome 2014-08-26 11:20:39 +02:00
16d15b2b21 Add picturefix mail settings
- Add a mail indicator to the Awesome wibox.
- Add a mailbox to Gnus
- Add account information to OfflineIMAP
2014-08-26 10:45:38 +02:00
62d9ac00b3 Only use colemak on drd 2014-08-24 14:48:35 +02:00
521f28dc36 Only show current layout if there are multiple 2014-08-21 20:19:31 +02:00
7db1ce9b0a Specify different layouts per machine 2014-08-21 20:13:58 +02:00
a3ecc8fd97 Skip checking mailboxes if they don't exist 2014-08-21 20:08:20 +02:00
3446c32bdb Pick the first wallpaper that exists 2014-08-21 20:06:39 +02:00
ed09461ee7 Only add rules for a second screen if there is one 2014-08-21 20:05:59 +02:00
b4c2657120 Add phoenix settings to X init 2014-08-21 11:04:25 +02:00
69daef5baa Add lua-mode to Emacs for Lua hacking 2014-08-21 11:03:07 +02:00
6c7f9ff34d Add missing dependencies for Emacs 2014-08-21 00:57:38 +02:00
c2778f0f71 Add Emacs config 2014-08-21 00:23:56 +02:00
05415b9b2c Add keysnail config 2014-08-21 00:22:25 +02:00
c7eef6ebcf Rename sysemd -> systemd 2014-08-21 00:20:30 +02:00
a817e7d55c Add systemd config 2014-08-21 00:19:38 +02:00
1774bb445d Add some function to sbcl 2014-08-21 00:16:31 +02:00
e53667c7ee Restore zsh config 2014-08-21 00:14:54 +02:00
98b55322b4 Add stow setting 2014-08-21 00:01:00 +02:00
a53e94848c Update Xdefaults 2014-08-20 23:58:30 +02:00
17f54b2193 Update stumpwm config 2014-08-20 23:58:15 +02:00
54d16f7f4a Remove aethon mail from screenrc 2014-08-20 23:57:38 +02:00
bf25df1d46 Update mutt config 2014-08-20 23:57:19 +02:00
66e6ded86f Update herbstluftwm config 2014-08-20 23:57:02 +02:00
46ba5c7a01 Update git config 2014-08-20 23:56:51 +02:00
8f7dd4a883 Turn of font autohinting 2014-08-20 23:56:16 +02:00
c4302483d2 Add alwaysdata mutt config 2014-08-20 23:55:49 +02:00
b833a5ce69 Update Conkeror config 2014-08-20 23:46:21 +02:00
f2fd5b1db1 Update Conkeror webjumps 2014-08-20 23:44:40 +02:00
9116ea1bb4 Reset awesome config 2014-08-20 23:42:09 +02:00
88997bfd63 Use XRandR to enable a third screen 2014-08-20 13:58:25 +02:00
7dd4d7ac23 Use awesome as WM and switch on host 2014-08-20 13:58:25 +02:00
0d70f1dc57 Update zsh 2014-07-01 22:53:27 +02:00
d494d318ce Rename .zsh 2014-07-01 22:52:29 +02:00
ff1b2cb762 Update zprofile 2014-07-01 22:50:15 +02:00
046de04b6e Rename .zprofile 2014-07-01 22:49:35 +02:00
909786b421 Update zshrc 2014-07-01 22:47:02 +02:00
ee2e701408 Rename .zshrc 2014-07-01 22:46:24 +02:00
b99b063219 Remove useless definitions 2014-01-26 12:38:10 +01:00
8e12944b02 Conkeror: return of the mozrepl 2014-01-26 12:37:59 +01:00
09f4c329af Conkeror: Open spreadsheets with libreoffice 2014-01-26 12:37:37 +01:00
a18052dc9c Conkeror: Add django 1.5 webjump 2014-01-26 12:37:15 +01:00
9b2b9b6305 Remove styles from conkeror 2013-11-04 10:43:18 +01:00
e6d82a5552 Update zsh config 2013-11-03 22:53:04 +01:00
40e4a1706c Update x11 config 2013-11-03 22:48:41 +01:00
f4574d968b Update stumpwm config 2013-11-03 22:45:45 +01:00
0d5831fa09 Update screen config 2013-11-03 22:43:45 +01:00
564cdf1c84 Update sbcl config 2013-11-03 22:13:10 +01:00
4a88081668 Remove old wallpaper 2013-11-03 22:06:56 +01:00
c88f001c3a Rename pentadactil -> pentadactyl; oops 2013-11-03 22:03:55 +01:00
03d42ef44f Update offlineimap config 2013-11-03 22:02:54 +01:00
d03583eaba Update moc config 2013-11-03 21:59:50 +01:00
f0c6e5e481 Update mercurial config 2013-11-03 21:59:09 +01:00
5dd5810f43 Update herbstluftwm config 2013-11-03 21:57:32 +01:00
1a924d9190 Update git config 2013-11-03 21:56:00 +01:00
3558131bc9 Update dunst config 2013-11-03 21:42:27 +01:00
c1623b38c2 Update conkeror config 2013-11-03 21:38:57 +01:00
48833ba0ac Update beets to new yaml config 2013-11-03 21:34:26 +01:00
071d5a9a68 Update awesome config 2013-11-03 21:26:20 +01:00
5c6cd059e8 New stow hierarchy 2013-11-03 21:21:21 +01:00
cca8771d85 Emacs config has moved on... 2013-07-03 00:44:10 +02:00
e718731f66 Add desktop-dirname to cleared variables
Remembering `desktop-dirname' after a desktop has been cleared gets
annoying when starting a new project.
2013-07-03 00:16:30 +02:00
2d9e5bd1f0 Add join and split sexp smartparens keybindings 2013-07-03 00:11:21 +02:00
7e1a58c7a0 Add some media key bindings 2013-06-29 21:25:55 +02:00
c81c7cae19 Don't literate-program Emacs init
It's too tiring...
2013-06-29 21:20:19 +02:00
8a488356b3 Specify my personal and work agendas for refile 2013-06-29 21:19:04 +02:00
5d72a0905e A bunch of changes... 2013-06-29 21:18:31 +02:00
eb06ac12c4 Automatically place Emacs and URxvt in my preferred places 2013-06-17 16:21:55 +02:00
916095eb4c Use C-z as prefix key for most-used commands 2013-06-17 16:21:28 +02:00
8fa2ae804b Don't ignore init.el 2013-06-13 23:22:10 +02:00
8e59c9d772 Don't generate init.el from init.org 2013-06-13 23:22:01 +02:00
e616e0a2d7 Add some extra commands
This allows me to publish articles more easily.
2013-06-13 23:21:45 +02:00
a134eef988 Use init.el directly again
I'm getting tired of maintaining a such a document...
2013-06-13 23:21:13 +02:00
28fcab6516 Don't diminish 2013-06-10 22:22:03 +02:00
0b1080da69 Skip any "migrations" dirs with rgrep 2013-06-10 22:21:56 +02:00
48387787cf Disable flycheck for CSS
The checker it uses causes my CPU consumption to jump to idiotic levels.
2013-06-10 22:21:39 +02:00
57cd16666b Use new mode-icons api 2013-06-05 01:40:29 +02:00
f41af450ab Add PKGBUILD and .install to sh-mode auto modes 2013-06-05 01:40:04 +02:00
b4f4dbc9be Add tag 2013-06-05 01:37:01 +02:00
c11ca7d966 Use C-c d d for desktop-registry, not desktop 2013-06-05 01:36:53 +02:00
e3a7efa79f Don't look at .emacs.desktop.lock files 2013-06-05 01:34:37 +02:00
a758a94f36 Try to delay loading quicklisp-helper 2013-06-05 01:32:43 +02:00
62eb85ccc0 Ask to correct typos when issuing commands 2013-06-05 01:30:51 +02:00
63c5d499ed Fix paths, remove clark path
I've created a pkgbuild for clark and it no longer needs its own path.
2013-06-05 01:30:36 +02:00
0341b79023 Remove reference to oni.el 2013-06-01 01:17:38 +02:00
e039765be1 Don't call package-initialize manually
It really isn't necessary if you just defer everything depending on it
until after emacs has started up.
2013-06-01 01:13:14 +02:00
0c91588eab Remove oni.el 2013-06-01 00:45:33 +02:00
c2bff71b96 Move the last parts of ext.el into init 2013-06-01 00:16:04 +02:00
6fba1713f8 Add cdispass settings 2013-05-31 18:07:44 +02:00
17d6f9622b Add session handling 2013-05-31 18:07:29 +02:00
7e2091503b Move path manipulation back to .zprofile 2013-05-31 18:06:15 +02:00
e68f45b48b Make init.elc from init.el 2013-05-31 17:58:38 +02:00
856660ebda Add enhanced eval-after-load 2013-05-31 17:58:07 +02:00
607cc269c5 Improve navigation in org-mode 2013-05-31 17:51:23 +02:00
8921d40bf6 Add some desktop.el settings 2013-05-31 12:00:34 +02:00
11f7eadc9f Don't hide compilation window
Now that I've got a different setup where I usually don't get more than
2 windows the compilation buffer pop-up isn't so annoying anymore.
2013-05-31 12:00:18 +02:00
4ed347264e Minor fixes 2013-05-29 01:07:50 +02:00
6e61c024e1 Move Emacs Alsa Player settings 2013-05-29 01:07:30 +02:00
ce6fa3c876 Remove skip equal chars
Caused more problems than it solved
2013-05-29 01:07:08 +02:00
d24bcb590a Don't use flycheck in js2-mode 2013-05-29 01:06:34 +02:00
aad709c4b4 Add notion config 2013-05-26 17:58:12 +02:00
7d94202351 Update Emacs config to use dotfiles2.mk 2013-05-26 17:57:28 +02:00
a3ee1cf373 Add dotfiles2.mk
This should replace dotfiles.mk soon
2013-05-26 17:55:03 +02:00
99b4ee7cd9 Update Emacswiki webjump 2013-05-25 14:46:18 +02:00
df4fa39ef3 Start dzen and use notion, not stumpwm 2013-05-25 00:27:13 +02:00
d86ee42c09 Skip over characters following point 2013-05-25 00:26:55 +02:00
9e78bdae06 Fix typo 2013-05-25 00:26:41 +02:00
eead1109c4 Fix eltuki for org 8.0 2013-05-25 00:26:32 +02:00
14adb384f1 Return of the Envy Code R 2013-05-25 00:26:18 +02:00
ab4fee09d3 Fix running of hook 2013-05-25 00:25:31 +02:00
e6ad9e20bb Move quicklisp 2013-05-23 02:45:40 +02:00
83adacdd58 Add face for COMMENT todo state 2013-05-23 02:45:33 +02:00
28a7dcdeb2 Improve oni:move-end-of-dwim 2013-05-23 02:45:19 +02:00
d68673f992 Move slime-helper and move-beginning-of-dwim functions 2013-05-23 02:44:38 +02:00
cbfaf91265 Enable auto cd and auto pushd 2013-05-23 02:43:31 +02:00
2ab08bd830 Add some highlighting options 2013-05-23 02:43:14 +02:00
0530c9ad54 Move fonts.conf 2013-05-23 02:42:47 +02:00
93d996f94c Various updates
The colours patch has not been applied yet to the current version of
stumpwm, but it should be so keep the code around.

Show a menu with some frequently used programs.

Include seen, but unread emails in `get-mail-count'.

Again put firefox and conkeror in the right-most frame.

Apparently the current version of stumpwm can't find swank, so
temporarily remove it.

Load a 3-frame desktop setup from a file.
2013-05-15 16:04:24 +02:00
08e5782f64 Remove some old custom functions
They get in the way more than they should.
2013-05-15 16:00:31 +02:00
cc4bdd72d7 Add some smartparens keys to python-mode 2013-05-15 15:59:45 +02:00
ea4b5f561f Add XDG variables 2013-05-15 15:59:14 +02:00
68cad4e971 Update URxvt colors 2013-05-15 15:57:49 +02:00
eaee297bd3 Cleanup ZSH config 2013-05-05 21:13:09 +02:00
4a2315fb3a Fix function name 2013-05-05 00:40:48 +02:00
4c2f293ba7 Add SBCL config 2013-05-04 18:25:25 +02:00
5824f11717 Markam is dead 2013-05-04 18:24:59 +02:00
88c1cf7415 Temporarily remove postsynchook 2013-05-04 18:24:23 +02:00
e53bd5e888 Revert "Move as much as possible to custom.el"
This reverts commit ca90f4623b.
2013-05-04 18:22:24 +02:00
9d1b8d2619 Add appointment capture template 2013-05-04 11:34:00 +02:00
b330329c72 Add function to skip all tasks with `ex' as tag 2013-05-04 11:33:47 +02:00
ca90f4623b Move as much as possible to custom.el 2013-05-02 21:26:36 +02:00
a5cea3ece7 Show emms playing title in the mode-line 2013-05-01 12:26:06 +02:00
e75266aad4 Remove some old stuff 2013-04-30 23:52:58 +02:00
3e63768e7b Add some smartparens customization 2013-04-30 20:06:29 +02:00
ba09f37955 Simplify PROMPT for zsh 2013-04-30 20:06:15 +02:00
1311fab884 Update Xdefaults colors and fonts 2013-04-30 20:05:05 +02:00
5f173b0d5e Update github style 2013-04-30 19:57:11 +02:00
4a5b5a31a6 Use compilation-shell-minor-mode for pony buffers
It still allows for shell use, like the `*ponysh*' python shell.
2013-04-30 17:57:56 +02:00
b7c74aded0 Disable undo in eshell buffers 2013-04-27 15:42:20 +02:00
d5dcfc5300 Sort todo lists on priority first 2013-04-25 01:09:33 +02:00
370726e0cc Move PATHS to .zshrc
And use a new function to make it clean
2013-04-24 02:43:56 +02:00
d9323f0c01 Use yoshi colors in style
Still in transition
2013-04-23 00:29:39 +02:00
6b5f3062e2 Literate init.el again 2013-04-23 00:27:45 +02:00
8384ba49a0 Turn window background "black" 2013-04-15 09:34:14 +02:00
0de90a0228 Move some minor-mode management from oni.el 2013-04-15 01:53:47 +02:00
a271d7d0fe Improve the custom scoll functions
This way they won't go to the next page if they can scroll enough,
only when the en of a page has been reached will they go to the next
one.
2013-04-15 00:14:28 +02:00
0e6eddf666 Enable narrow-to-page and sort list 2013-04-15 00:13:34 +02:00
d0de62ba20 Remove mode-icons from the load-path
I use a package for it now.
2013-04-15 00:12:34 +02:00
4e184a5d51 Improve some comments 2013-04-15 00:12:00 +02:00
881a2bb3e5 Enable flycheck for some more modes
Also put all the hook additions in a single place, instead of in each
special function. Both the advantages to this method are:

- Being able to see in a second where flycheck is enabled.
- If all minor modes are added separately it's easy to see exactly
  which are enabled for a specific mode, just by looking at its hook
  variable.
2013-04-15 00:11:37 +02:00
2f9e38cab2 Remove some files I haven't used in a while
Also set .xsession to install with mode 744, since it needs to be
executable.
2013-04-15 00:09:09 +02:00
d4c6742dc6 Change selected window border color
This should make it a little clearer which window currently has focus,
since the window title is no longer shown in the mode-line.
2013-04-15 00:08:34 +02:00
fd184f196e Don't show colors if they're not supported 2013-04-14 23:58:59 +02:00
ea413a5023 Add uninstall targets
These targets can be used to remove (parts of) the file installation.
They are also used by the cleanup targets to remove complete
submodules from the installation.
2013-04-14 23:58:45 +02:00
50c3f9ade9 Rename uninstall* to cleanup*
Since cleanup only removes that which will not be restored it makes no
sense to call it uninstall. Uninstall should remove everything
unconditionally.
2013-04-14 01:05:42 +02:00
d8aa1d0ed1 Have the install command uninstall first
The new uninstall functionality tries to remove any "orphan" files.
Files that were installed during the last install, but will not be
installed this time (because of removal, not necessity).
2013-04-14 01:03:11 +02:00
9ab70194a6 Emacs: Enable compilation-minor-mode for pony-mode comint buffers 2013-04-11 15:31:07 +02:00
a55c5dc580 zsh: Simplify prompt 2013-04-11 15:30:31 +02:00
f94bccb95b Stumpwm: Remove window title from mode-line
It makes stumpmw crash with certain window titles from conkeror
2013-04-11 15:29:59 +02:00
0a4dc20800 Mutt 2013-04-10 22:06:28 +02:00
d07f2eb138 More 2013-04-10 22:05:48 +02:00
35b47c5092 .mutt/muttrc 2013-04-10 21:38:20 +02:00
fb31196138 .mutt/muttrc 2013-04-10 21:38:19 +02:00
5a41774f82 Following in footsteps 2013-04-10 21:30:58 +02:00
bab8601a49 Emacs: Stop using org
I like literal programming, but I'm nog good at writing stories for
each change.
2013-04-09 16:53:19 +02:00
d90fe264ea Stumpwm: Use function instead of lambda 2013-04-09 16:51:39 +02:00
13b625585a Conkeror: set programs for pdf, xls
To zathura and libreoffice respectively
2013-04-09 16:50:58 +02:00
1687986cdc Conkeror: MozRepl doesn't work in FF 20 2013-04-03 09:59:07 +02:00
784f238fc1 Stumpwm: Change the colors 2013-04-03 01:55:55 +02:00
541dcb98c9 zsh: Add xls suffix alias 2013-04-03 01:55:21 +02:00
9786d89c93 Emacs: Add case functions, vala-mode change
Add some functions that may help me managing case for enums and such.

For some reason vala-mode really likes having indent-tabs-mode turned
on, but I prefer it off anyway.
2013-04-03 01:54:52 +02:00
cce4cd35ea Don't install Xmonad, I don't use it anymore 2013-03-31 01:54:30 +01:00
a416fe4650 Emacs: Automatically close ansi-term buffer 2013-03-31 01:53:06 +01:00
51d1211586 Don't show status for equals
If the installed and local file are the same, don't show that it's not
being installed, only show not installing older files during install.
2013-03-31 01:52:19 +01:00
752c0436b1 Emacs: speedup calling of ansi-term 2013-03-29 15:46:50 +01:00
56822a900c Emacs: Add indent-defun
Found at: http://emacsredux.com/blog/2013/03/28/indent-defun/
2013-03-28 12:20:42 +01:00
85100905e4 Emacs: Remove ~/var/src from magit-repo-dirs
Only old projects live there, if I still want to work on any of them
they should be moved to ~/projects/.
2013-03-28 01:55:12 +01:00
ba42d20b90 Emacs: Autoload some jabber functions and don't require geiser-install
These have just been installed through elpa.
2013-03-28 01:52:26 +01:00
547450d83f Emacs: Remove newsticker-init.el from Makefile 2013-03-28 01:44:32 +01:00
9b3b6503b8 Emacs: Add text about org-init 2013-03-28 01:43:02 +01:00
3104ad4735 Emacs: Remove emacs/site-lisp/newsticker-init.el
I haven't used newsticker in quite a while...
2013-03-28 01:41:09 +01:00
9defc70b3f Emacs: Add text about git-commit faces 2013-03-28 01:39:51 +01:00
8a5ee046a7 Emacs: Remove old org-mode location
I don't build org-mode from git sources anymore.
2013-03-28 01:23:36 +01:00
eface3a29f Emacs: Remove extraneous loadpath additions
I've stopped installing Emacs from the bzr sources and instead use a
package again.
2013-03-28 01:22:20 +01:00
bd575ffdcf Emacs: Update text about deferring execution macro 2013-03-28 01:21:05 +01:00
7a477eb803 Emacs: Don't generate init2.el, make init.el instead 2013-03-28 01:18:13 +01:00
01d77b518f Emacs: Move everything from init.el to init.org
I'll write stuff about it later, as long as it's in the org file for
now.
2013-03-28 01:15:03 +01:00
12ce6e7f75 Xdefaults: Use colors from yoshi-theme 2013-03-27 00:49:54 +01:00
1847e330d6 stumpwm: Add hooks for (un)locking the screen
When locked, these hooks set my jabber presence to "away" and pause
MPD if it's playing. When unlocked they set my jabber presence to
"online" and resume MPD if it was playing before.
2013-03-27 00:42:43 +01:00
6a6410492e conkeror: Add yoshi theme 2013-03-24 23:59:23 +01:00
4d40648588 conkeror: Change keybinding and mode-line widgets 2013-03-24 22:00:45 +01:00
8f8d687949 Conkeror: Replace markam with CLark 2013-03-23 14:05:17 +01:00
8c69461ebf xinit: Start emacs daemon 2013-03-23 14:05:00 +01:00
19f2259f1a zsh: Add /usr/local/clark to PATH and INFOPATH 2013-03-23 14:03:17 +01:00
d215db6c7b Emacs: Fix minor modes widget 2013-03-23 14:02:56 +01:00
534a2e1ab7 Emacs: Enable paredit for lisp-like languages 2013-03-23 14:02:16 +01:00
d9fec92e0b Emacs: Remove jabber-init from oni.el
It was moved to init.org some commits ago
2013-03-22 13:38:21 +01:00
afba3f97ae Emacs: Hide compilation window more consistently 2013-03-22 13:37:00 +01:00
161924268f Emacs: Add some mode-line, minibuffer and jedi settings 2013-03-22 13:36:15 +01:00
b7fd0e603b Emacs: Start ido-ubiquitous after init 2013-03-22 13:35:31 +01:00
d000ec7a4c Emacs: Ignore the ibuffer buffer in ido 2013-03-22 13:35:15 +01:00
7db1567d04 Emacs: Add jabber-activity widget to mode-line 2013-03-22 13:34:56 +01:00
9da019d7e8 Emacs: Rewrite part of index.org 2013-03-22 13:34:32 +01:00
a5c9f6c9c3 Emacs: Move some more jabber settings to org 2013-03-22 13:33:59 +01:00
e28ba29d84 Emacs: Remove transparency 2013-03-22 13:33:08 +01:00
628558a40c xinit: use stumpwm 2013-03-22 13:32:49 +01:00
806ec425bc xinit: Don't use xbindkeys for now 2013-03-22 13:32:42 +01:00
3a3286c83a herbstluftwm: Replace old config with fresh one 2013-03-22 13:22:36 +01:00
664df88e98 herbstluftwm: Make autostart executable when installing 2013-03-22 13:22:12 +01:00
4798970751 Emacs: move ido settings to org 2013-03-11 00:40:57 +01:00
07586eb43b Emacs: customize my svg-mode-line-theme 2013-03-11 00:33:42 +01:00
937e273292 Emacs: remove org ELPA repo 2013-03-11 00:32:53 +01:00
ed9106f857 Emacs: Reverse-sort org tasks 2013-03-10 13:36:55 +01:00
354fc51743 Emacs: Use yoshi-theme 2013-03-10 13:33:11 +01:00
8aad7173c4 xinit: Start MPD updater 2013-03-04 11:12:45 +01:00
b13108a005 conkeror: add style for Pro Git, use less 2013-03-03 16:28:29 +01:00
8593af7f3e xmonad: Add some extended key bindings 2013-03-03 14:47:37 +01:00
b7c89d708d emacs: Use naquadah theme 2013-03-03 14:47:18 +01:00
7856c94288 emacs: Move (some) jabber config to org 2013-03-03 14:47:01 +01:00
fea99289b6 emacs: Have the mail button open gnus 2013-03-03 14:46:31 +01:00
404cbbeaf1 emacs: Use topic-mode with gnus 2013-03-03 14:45:41 +01:00
5b07159547 zathura: Always show input bar
Makes it look more like emacs
2013-03-03 14:45:22 +01:00
f3c60acddb Replace xflux with redshift 2013-03-03 00:16:14 +01:00
f20965bd75 offlineimap: Update mowedline after sync 2013-02-21 15:10:03 +01:00
bfcd2d8f3b emacs: Use local hostname as jabber resource 2013-02-21 15:09:08 +01:00
df7fa2f1c4 emacs: do some stuff 2013-02-20 00:06:06 +01:00
0fb047ba98 emacs: Don't use avatars with jabber 2013-02-19 23:43:39 +01:00
2e1315b829 xmonad: show mplayer in full opacity 2013-02-19 00:53:13 +01:00
9262554c26 emacs: add custom org to load path 2013-02-19 00:52:53 +01:00
e8a16eb535 conkeror: set the b key to markam-add 2013-02-19 00:52:31 +01:00
48d11cb7c1 emacs: Specify the tangle for the entire file 2013-02-17 23:41:54 +01:00
091a42d916 emacs: Change some stuff 2013-02-17 23:09:46 +01:00
a281f040cd Move .emacs.d to emacs
Since it's no longer placed directly in the home directory it doesn't
need to be named exacly the same.
2013-02-17 23:09:33 +01:00
50ab6deeab emacs: Move ERC config to org 2013-02-17 22:53:36 +01:00
791d7fd3a2 emacs: Close compilation buffer on success 2013-02-17 22:23:36 +01:00
3e5421e79d emacs: Move pp^L configuration to org 2013-02-17 22:22:55 +01:00
b9c0e3838f emacs: Add org ELPA repository 2013-02-17 22:22:10 +01:00
3070f08c78 xmonad: Run script which runs emacs
Apparently the `runOrRaiseNext' function doesn't like programs with
arguments.
2013-02-17 10:39:02 +01:00
cfab9a2faa xmonad: Set chromium fully opaque 2013-02-15 23:08:59 +01:00
79b8394ba3 emacs: Don't auto push
When using git-auto-commit-mode, don't automatically push by default.
2013-02-15 23:08:41 +01:00
ee34dfcc2c Add zile config 2013-02-15 15:17:46 +01:00
d7b662715d Simplify log 2013-02-15 01:10:51 +01:00
db63635d09 Show subdirectories
When checking, reversing, installing or uninstalling be sure to show
the subdirectories.
2013-02-15 01:05:06 +01:00
4aff54995e xinit: xmonad, xcompmgr, feh, unclutter, mowedline
I'm making some changes to my desktop
2013-02-15 00:49:00 +01:00
55e386bf0c Add reverse target
This target takes files whose installed versions are newer than those
in the current working directory and copies them there.
2013-02-15 00:48:19 +01:00
f85643301d awesome: stop mplayer from floating 2013-02-15 00:36:40 +01:00
1d1f51db69 emacs: Add button to show special org file 2013-02-15 00:36:22 +01:00
de0ac7e06e Add XMonad config 2013-02-15 00:35:52 +01:00
ba12781a86 emacs: Make frames transparent 2013-02-15 00:34:54 +01:00
acdee38612 Xdefaults: make urxvt transparent 2013-02-15 00:34:38 +01:00
214e1ed72b 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.
2013-02-15 00:33:57 +01:00
111e229676 emacs: Use modern indentation for Haskell code 2013-02-15 00:32:41 +01:00
2c5099ea7b zsh: open any PDF with zathura 2013-02-15 00:31:56 +01:00
978b30e663 Customize output
Don't show any output from make itself (almost), just show what we're
actually doing, and use color.
2013-02-15 00:31:34 +01:00
f6598f5469 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.
2013-02-15 00:11:23 +01:00
a1808fd44e conkeror: Add mozrepl initialization 2013-02-10 22:08:44 +01:00
b9e64b75ee awesome: Make modkey+o focus the "next" screen
Have modkey+shift+o replace the old modkey+o functionality
2013-02-08 10:00:11 +01:00
bbde295be6 emacs: Pt should show todo list, not agenda 2013-02-07 10:04:08 +01:00
703fffdc46 emacs: rename aethon org file to work 2013-02-07 10:03:52 +01:00
7f8b8daf4b Emacs: remove my checker
I don't like the way epylint works...
2013-02-07 10:03:30 +01:00
fdb9679e2d awesome: Add org todo counts to wibox 2013-02-07 09:29:24 +01:00
11183df017 conkeror: Change hints font 2013-02-07 08:55:43 +01:00
86e131b856 conkeror: Add restore_killed_buffer_url 2013-02-07 08:55:01 +01:00
6081884b9f zsh: Make venv_activate a local variable 2013-02-06 13:09:11 +01:00
c3aa5bb8b4 emacs: Use flycheck for python 2013-02-06 11:48:25 +01:00
ec68e364d9 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.
2013-02-06 11:45:16 +01:00
0445ad9f57 zsh: Add venv function
This enables or lists virtual environments
2013-02-06 11:44:04 +01:00
dca5bacd6c Xinit: don't start emacs daemon
most of the time I recompile it before starting it
2013-02-04 20:30:06 +01:00
8987ba818a 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.
2013-02-04 20:29:08 +01:00
64a11cb9fc conkeror: Change code font for github 2013-02-04 20:28:06 +01:00
14a7381aa8 conkeror: Add style for conkeror start page 2013-02-04 20:27:51 +01:00
9cd4c8ed8c emacs: Move flymake settings to init.org 2013-02-02 01:08:59 +01:00
8fddc0d0a7 emacs: Move EMMS settings to init.org 2013-02-02 00:56:32 +01:00
9223d0e998 emacs: Remove some mu4e settings 2013-02-01 12:27:26 +01:00
d93fdf8470 emacs: The return of fill-column-indicator 2013-02-01 12:26:09 +01:00
cf22ea29f2 emacs: remove quick-edit-mode
Haven't been using it
2013-02-01 12:25:36 +01:00
7c3a731232 emacs: Rearrange some keybindings
I used sort-lines on them
2013-02-01 12:25:18 +01:00
930e307a41 emacs: Change some jabber settings 2013-02-01 12:23:16 +01:00
c8f930e4c9 Change font to Envy Code R 2013-02-01 12:22:13 +01:00
44a9da16e7 awesome: Show email counts in first wibox 2013-02-01 12:18:26 +01:00
582e822177 awesome: remove titlebars code 2013-01-29 17:01:56 +01:00
9b4a888206 awesome: reomve sloppy focus 2013-01-29 16:59:06 +01:00
3eb70ea085 awesome: Add keybinding for i3lock 2013-01-29 02:39:38 +01:00
a89de59d03 Emacs: increase font size 2013-01-29 02:36:09 +01:00
999a9ab971 stumpwm: Use C-z for prefix, not C-i
I seem to use C-z less than C-i in other programs.
2013-01-29 02:34:28 +01:00
a2d298d3ab stumpwm: fix type 2013-01-29 02:33:57 +01:00
99bc512747 Xinit: Start xflux, awesome, not fehlstart 2013-01-29 02:33:36 +01:00
566344ffba awesome: add run_or_raises 2013-01-29 02:05:12 +01:00
8e4b7f0f16 awesome: remove mouse bindings 2013-01-29 00:59:21 +01:00
6d8ad04933 New awesome rc.lua 2013-01-29 00:54:40 +01:00
7d719f694b Move eshell settings to org 2013-01-28 00:43:57 +01:00
5a1e9f2ea8 Move eldoc settings to org 2013-01-28 00:18:29 +01:00
35fc2e3378 emacs: Redo again 2013-01-25 00:32:30 +01:00
117003cefa Fix zsh history 2013-01-21 01:34:03 +01:00
29189b9cbc Emacs: Move mode-icons to ~/projects/emacs
From ~/var/src/emacs
2013-01-18 23:37:05 +01:00
f6a096435c Xinit: Use stumpwm 2013-01-18 23:34:05 +01:00
7d7c224a4b Stumpwm: Remove some unused keybindings
Since I don't have a keypad on either my PC or laptop anymore, binding
them is useless.
2013-01-18 23:33:45 +01:00
4dd14f6b18 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.
2013-01-18 23:32:42 +01:00
2979194f54 Emacs: Change second agenda files check
To 17:01, because technically, I'm still working at 17:00.
2013-01-18 23:27:30 +01:00
2bf4d69583 Conkeror: Have C-y open URLs in a new buffer 2013-01-18 23:26:21 +01:00
454fe03fdc 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.
2013-01-17 14:51:20 +01:00
cfc60ae6dc Conkeror: Add github dashboard style
I don't like it when it's so bright.
2013-01-16 04:13:12 +01:00
2f27e1e3ac Conkeror: Add chickadee webjump
From the conkeror wiki
2013-01-16 01:31:55 +01:00
777530f57a Conkeror: Allow location along with lh
Let the `read_url_local_port_handler' accept an optional path
parameter.
2013-01-16 01:31:36 +01:00
521ef4749f 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.
2013-01-16 01:30:00 +01:00
12b9beddbd Conkeror: Use markam instead of linkwave 2013-01-15 12:18:04 +01:00
ab5a4d34b9 ncmpcpp: Remove visualizer settings 2013-01-15 12:12:00 +01:00
7a5a232c27 Emacs: Update some things 2013-01-15 12:11:41 +01:00
25dcd4dd48 Xdefaults: Use consolas
It has slanted script, I do miss the parentheses though.
2013-01-15 12:10:05 +01:00
e9fb14a9dc .ncmpcpp/config 2013-01-11 12:15:31 +01:00
392 changed files with 11869 additions and 4214 deletions

View file

@ -1,79 +0,0 @@
urxvt.internalBorder: 0
urxvt.loginShell: true
urxvt.scrollBar: false
urxvt.secondaryScroll: true
urxvt.saveLines: 65535
urxvt.cursorBlink: false
urxvt.cursorUnderline: true
urxvt.urgentOnBell: true
urxvt.termName: rxvt-256color
urxvt.visualBell: false
urxvt.perl-lib: /usr/lib/urxvt/perl/
urxvt.perl-ext-common: default,url-select,keyboard-select
urxvt.urlLauncher: conkeror
urxvt.url-select.launcher: conkeror
urxvt.matcher.button: 1
urxvt.keysym.M-Escape: perl:keyboard-select:activate
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.background: #111113
urxvt.foreground: #eeeeec
urxvt.color0: #171719
urxvt.color8: #999999
urxvt.color1: #973732
urxvt.color9: #ff756e
urxvt.color2: #405c2e
urxvt.color10: #9ad870
urxvt.color3: #835c0e
urxvt.color11: #ffbb56
urxvt.color4: #2729b6
urxvt.color12: #78a2c1
urxvt.color5: #5c325d
urxvt.color13: #c39cc3
urxvt.color6: #208181
urxvt.color14: #93d8d8
urxvt.color7: #222224
urxvt.color15: #a9a9a9
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintslight
! Emacs.font: DejaVu Sans Mono:weight=medium:pixelsize=18
Emacs.menuBar: off
Emacs.toolbar: off
Emacs.useXIM: off
! Emacs.background: #252a2b
xfontsel.sampleText: \
static void print_sample_message(XWindow *win) {\n\
win.label->text = "Sample text 0123456789"\n\
}
xfontsel.sampleText16: \
static void print_sample_message(XWindow *win) {\n\
win.label->text = "Sample text 0123456789"\n\
}
xfontsel.sampleTextUCS: \
static void print_sample_message(XWindow *win) {\n\
win.label->text = "Sample text 0123456789"\n\
}

View file

@ -1,14 +0,0 @@
[beets]
library: ~/.local/share/beets/library.blb
directory: /mnt/music/lib/
plugins: mpdupdate embedart
[paths]
default: $albumartist/$year - $album/$track - $title
singleton: Non-Album/$artist - $title
comp: Compilations/$year - $album/$track - $artist - $title
[mpdupdate]
host: localhost
port: 6600

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/.config
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
newsbeuter zathura
include ../dotfiles.mk

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/awesome
modules=themes
objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
include ../../dotfiles.mk

View file

@ -1,205 +0,0 @@
-- -*- coding: utf-8 -*-
--------------------------------------------------------------------------------
-- @author Nicolas Berthier &lt;nberthier@gmail.com&gt;
-- @copyright 2010 Nicolas Berthier
--------------------------------------------------------------------------------
--
-- Bowls are kind of helpers that can be drawn (at the bottom --- for now) of an
-- area, and displaying the current key prefix. It is inspired by emacs'
-- behavior, that prints prefix keys in the minibuffer after a certain time.
--
-- I call it `bowl' as a reference to the bowl that one might have at home,
-- where one puts its actual keys... A more serious name would be `hint' or
-- `tooltip' (but they do not fit well for this usage).
--
-- Example usage: see `rc.lua' file.
--
--------------------------------------------------------------------------------
--{{{ Grab environment (mostly aliases)
local setmetatable = setmetatable
local ipairs = ipairs
local type = type
local pairs = pairs
local string = string
local print = print
local error = error
local capi = capi
local client = client
local awesome = awesome
local root = root
local timer = timer
local infoline = require ("infoline")
--}}}
module ("bowl")
-- Privata data: we use weak keys in order to allow collection of private data
-- if keys (clients) are collected (i.e., no longer used, after having been
-- killed for instance)
local data = setmetatable ({}, { __mode = 'k' })
--{{{ Default values
--- Default modifier filter
local modfilter = {
["Mod1"] = "M",
["Mod4"] = "S",
["Control"] = "C",
["Shift"] = string.upper,
}
-- Timers configuration
local use_timers = true
local timeout = 2.0
--}}}
--{{{ Keychain pretty-printing
function mod_to_string (mods, k)
local ret, k = "", k
for _, mod in ipairs (mods) do
if modfilter[mod] then
local t = type (modfilter[mod])
if t == "function" then
k = modfilter[mod](k)
elseif t == "string" then
ret = ret .. modfilter[mod] .. "-"
else
error ("Invalid modifier key filter: got a " .. t)
end
else
ret = ret .. mod .. "-"
end
end
return ret, k
end
function ks_to_string (m, k)
local m, k = mod_to_string (m, k)
return m .. k
end
--}}}
--{{{ Timer management
local function delete_timer_maybe (d)
if d.timer then -- stop and remove the timer
d.timer:remove_signal ("timeout", d.timer_function)
d.timer:stop ()
d.timer = nil
d.timer_expired = true
end
end
local function delayed_call_maybe (d, f)
if use_timers then
if not d.timer_expired and not d.timer then
-- create and start the timer
d.timer = timer ({ timeout = timeout })
d.timer_function = function () f (); delete_timer_maybe (d) end
d.timer:add_signal ("timeout", d.timer_function)
d.timer:start ()
d.timer_expired = false
elseif not d.timer_expired then
-- restart the timer...
-- XXX: What is the actual semantics of the call to `start' (ie,
-- does it restart the timer with the initial timeout)?
d.timer:stop ()
d.timer.timeout = timeout -- reset timeout
d.timer:start ()
end
else -- timers disabled
f () -- call the given function directly
end
end
--}}}
--{{{ Infoline management
function dispose (w)
local d = data[w]
if d.bowl then -- if bowl was enabled... (should always be true...)
infoline.dispose (d.bowl)
d.bowl = nil
end
delete_timer_maybe (d)
data[w] = nil
end
function append (w, m, k)
local d = data[w]
local pretty_ks = ks_to_string (m, k) .. " "
infoline.set_text (d.bowl, infoline.get_text (d.bowl) .. pretty_ks)
local function enable_bowl ()
-- XXX: is there a possible bad interleaving that could make
-- this function execute while the bowl has already been
-- disposed of? in which case the condition should be checked
-- first...
-- if d.bowl then
infoline.attach (d.bowl, w)
-- end
end
delayed_call_maybe (d, enable_bowl)
end
function create (w)
-- XXX: Note the prefix text could be customizable...
data[w] = { bowl = infoline.new (" ") }
end
--}}}
--- Initializes the bowl module, with given properties; should be called before
--- ANY other function of this module.
-- Configurations fields include:
--
-- `use_timers', `timeout': A boolean defining whether bowls drawing should be
-- delayed, along with a number being this time shift, in seconds (Default
-- values are `true' and `2').
--
-- `modfilter': A table associating modifiers (Mod1, Mod4, Control, Shift, etc.)
-- with either a string (in this case it will replace the modifier when printed
-- in heplers) or functions (in this case the key string will be repaced by a
-- call to this function with the key string as parameter). Default value is:
-- { ["Mod1"] = "M", ["Mod4"] = "S", ["Control"] = "C", ["Shift"] =
-- string.upper }
--
-- @param c The table of properties.
function init (c)
local c = c or { }
modfilter = c.modfilter and c.modfilter or modfilter
if c.use_timers ~= nil then use_timers = c.use_timers end
if use_timers then
timeout = c.timeout ~= nil and c.timeout or timeout
end
end
--- Setup signal listeners, that trigger appropriate functions for a default
--- behavior.
function default_setup ()
local function to_root (f) return function (...) f (root, ...) end end
client.add_signal ("keychain::enter", create)
client.add_signal ("keychain::append", append)
client.add_signal ("keychain::leave", dispose)
awesome.add_signal ("keychain::enter", to_root (create))
awesome.add_signal ("keychain::append", to_root (append))
awesome.add_signal ("keychain::leave", to_root (dispose))
end
-- Local variables:
-- indent-tabs-mode: nil
-- fill-column: 80
-- lua-indent-level: 4
-- End:
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80

View file

@ -1,81 +0,0 @@
local client=client
local awful=awful
local pairs=pairs
local table=table
module("ext")
-- Returns true if all pairs in table1 are present in table2
function match(table1, table2)
for k, v in pairs(table1) do
if table[k] ~= v and not table2[k]:find(v) then
return false
end
end
return true
end
--- Spawns cmd if no client can be found matching properties
-- If such a client can be found, pop to first tag where it is
-- visible, and give it focus
function run_or_raise(cmd, properties)
local clients = client.get()
local focused = awful.client.next(0)
local findex = 0
local matched_clients = { }
local n = 0
for i, c in pairs(clients) do
-- make an array of matched clients
if match(properties, c) then
n = n + 1
matched_clients[n] = c
if n == focused then
findex = n
end
end
end
if n > 0 then
local c = matched_clients[1]
-- if the focused window matched switch focus to next in list
if 0 < findex and findex < n then
c = matched_clients[findex + 1]
end
local ctags = c:tags()
if table.getn(ctags) == 0 then
-- ctags is empty, show client on current tag
local curtag = awful.tag.selected()
awful.client.movetotag(curtag, c)
else
-- Otherwise, pop to first tag client is visible on
awful.tag.viewonly(ctags[1])
end
-- And then focus the client
client.focus = c
c:raise()
awful.screen.focus(c.screen)
return
end
awful.util.spawn(cmd)
end
function prev_client()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end
function next_client()
awful.client.focus.byidx(1)
if client.focus then
client.focus:raise()
end
end

View file

@ -1,183 +0,0 @@
-- -*- coding: utf-8 -*-
--------------------------------------------------------------------------------
-- @author Nicolas Berthier &lt;nberthier@gmail.com&gt;
-- @copyright 2010 Nicolas Berthier
--------------------------------------------------------------------------------
--
-- This is a module for defining infolines in awesome. An infoline is a wibox
-- attached to a region (typically, a client or the root window).
--
-- Remarks:
--
-- - It has not been tested with multiple screens yet.
--
-- Example usage: (TODO --- read the comments for now, there are not many
-- functions)
--
--------------------------------------------------------------------------------
--{{{ Grab environment (mostly aliases)
local setmetatable = setmetatable
local ipairs = ipairs
local type = type
local pairs = pairs
local string = string
local print = print
local error = error
local io = io
local client = client
local awesome = awesome
local wibox = wibox
local widget = widget
local root = root
local screen = screen
local mouse = mouse
--}}}
module ("infoline")
-- Privata data: we use weak keys in order to allow collection of private data
-- if keys (clients) are collected (i.e., no longer used, after having been
-- killed for instance).
--
-- XXX: For now, we have at most one infoline per client, but it could be
-- interesting to create several types of infolines (identified by indexes to be
-- allocated by this module), and associated to, e.g., different configuration
-- flags and positioning routine...
local data = setmetatable ({}, { __mode = 'k' })
--{{{ Infoline positioning
-- XXX: this is a hack that positions an infoline at the bottom of a given area.
local function setup_position (wb, geom)
local b = wb:geometry ()
b.x = geom.x
b.width = geom.width
b.y = geom.y + geom.height - awesome.font_height
b.height = awesome.font_height
wb:geometry (b)
end
--}}}
--{{{ Configurations:
-- When true, this flag indicates that an infoline is hidden if its attached
-- client loses its focus. Otherwise, it remains always visible.
follow_focus = true
--}}}
--{{{ Infoline updates
function get_text (il) return il.wb.widgets[1].text end
function set_text (il, text) il.wb.widgets[1].text = text end
-- Forces a refresh of the given infoline.
function update (il)
local wb = il.wb
local c = il.cli
if il.enabled then
-- XXX: Note this could be much better if we had some sort of root and
-- client interface unification: the following involves a priori useless
-- code duplication...
if c == root then
wb.screen = mouse.screen -- XXX: is this the behavior we need?
wb.visible = true
setup_position (wb, screen[mouse.screen].workarea)
else
if c:isvisible () and (not follow_focus or client.focus == c) then
wb.screen = c.screen
wb.visible = true
setup_position (wb, c:geometry ())
else -- do we have to hide it?
wb.visible = false
end
end
elseif wb.visible then --otherwise we need to hide it.
wb.visible = false
end
end
local function update_from_client (c)
-- Note that we may not have an infoline for this client, hence the
-- conditional...
if data[c] then update (data[c]) end
end
-- Force execution of the above function on client state modification.
client.add_signal ("focus", update_from_client)
client.add_signal ("unfocus", update_from_client)
client.add_signal ("unmanage", update_from_client)
--}}}
--{{{ Infoline management
--- Creates a new infoline, with the given initial text. Note it is not visible
--- by default, and not attached to any client.
function new (text)
local il = {
wb = wibox ({
ontop = true, -- XXX: setting a depth when attaching to
--a client would be much better
widgets = {
widget ({ type = "textbox", align="left" })
},
})
}
-- these will remain false until the infoline is attached to a client.
il.wb.visible = false
il.enabled = false
set_text (il, text or "")
return il
end
-- Attached infolines will react to the following client-related signals, and
-- automatically setup their position according to the client's geometry.
local csignals = { "property::geometry", "property::minimized",
"property::visible", "property::focus", "property::screen", }
-- Attaches an infoline to a client. Note the infoline becomes visible at that
-- time, if the client is currently visible (and if it has focus, when
-- `follow_focus' holds).
function attach (il, c)
data[c] = il
il.cli = c
il.enabled = true
update (il)
if c ~= root then
-- subscribe to client-related signals
for _, s in ipairs (csignals) do
c:add_signal (s, update_from_client)
end
end
end
--- Detach the given infoline from its client, if any.
function dispose (il)
local c = il.cli
if c then -- note c can be nil here, if the given infoline has not been
--attached to any client...
il.enabled = false
update (il) -- a shortcut here would be: `il.wb.visible = false'
data[c] = nil
if c ~= root then
-- unsubscribe from client-related signals
for _, s in ipairs (csignals) do
c:remove_signal (s, update_from_client)
end
end
end
end
--}}}
-- Local variables:
-- indent-tabs-mode: nil
-- fill-column: 80
-- lua-indent-level: 4
-- End:
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80

View file

@ -1,334 +0,0 @@
-- -*- coding: utf-8 -*-
--------------------------------------------------------------------------------
-- @author Nicolas Berthier &lt;nberthier@gmail.com&gt;
-- @copyright 2010 Nicolas Berthier
--------------------------------------------------------------------------------
--
-- This is a module for defining keychains à la emacs in awesome. I was also
-- inspired by ion3 behavior when designing it.
--
-- Remarks:
--
-- - This module does not handle `release' key bindings, but is it useful for
-- keychains?
--
-- - It has not been tested with multiple screens yet.
--
-- - There might (... must) be incompatibilities with the shifty module. Also,
-- defining global and per-client keychains with the same prefix is not
-- allowed (or leads to unspecified behaviors... --- in practice: the
-- per-client ones are ignored). However, I do think separation of per-client
-- and global keys is a bad idea if client keys do not have a higher priority
-- than the global ones...
--
-- Example usage: see `rc.lua' file.
--
--------------------------------------------------------------------------------
--{{{ Grab environment (mostly aliases)
local setmetatable = setmetatable
local ipairs = ipairs
local type = type
local pairs = pairs
local string = string
local print = print
local error = error
local io = io
local capi = capi
local client = client
local awesome = awesome
local root = root
local akey = require ("awful.key")
local join = awful.util.table.join
local clone = awful.util.table.clone
--}}}
module ("keychain")
-- Privata data: we use weak keys in order to allow collection of private data
-- if keys (clients) are collected (i.e., no longer used, after having been
-- killed for instance)
local data = setmetatable ({}, { __mode = 'k' })
--{{{ Functional Tuples
-- see http://lua-users.org/wiki/FunctionalTuples for details
--- Creates a keystroke representation to fill the `escape' table configuration
--- property.
-- @param m Modifiers table.
-- @param k The key itself.
-- @return A keystroke representation (only for the escape sequence, for now?).
function keystroke (m, k)
if type (m) ~= "table" then
error ("Keystroke modifiers must be given a table (got a "..
type (m)..")")
end
if type (k) ~= "string" then
error ("Keystroke key must be given a string (got a "..
type (m)..")")
end
return function (fn) return fn (m, k) end
end
-- keystroke accessors
local function ks_mod (_m, _k) return _m end
local function ks_key (_m, _k) return _k end
-- ---
--- Creates a final keychain binding to fill the keychain binding tables,
--- meaning that the given function will be executed at the end of the keychain.
-- @param m Modifiers table.
-- @param k The key.
-- @param cont The function to be bound to the given keys.
-- @return A "final" key binding.
function key (m, k, cont)
if type (cont) ~= "function" then
error ("Final binding must be given a function (got a "..
type (cont)..")")
end
return function (fn) return fn (keystroke (m, k), cont, true) end
end
--- Creates an intermediate (prefix) keychain binding.
-- @param m Modifiers table.
-- @param k The key.
-- @param sub The subchain description table to be bound to the given keys.
-- @return An "intermediate" key binding.
function subchain (m, k, sub)
if type (sub) ~= "table" then
error ("Subchain binding must be given a table (got a "..
type (sub)..")")
end
return function (fn) return fn (keystroke (m, k), sub, false) end
end
-- key/subchain binding accessors
local function binding_ks (ks, cont, leaf) return ks end
local function binding_cont (ks, cont, leaf) return cont end
local function binding_leaf (ks, cont, leaf) return leaf end
--- Creates an intermediate keychain if sub is a table, or a final key binding
--- otherwise (and then sub must be a function).
-- @param m Modifiers table.
-- @param k The key.
-- @param sub Either the subchain description table, or the function, to be
-- bound to the given keys.
function sub (m, k, sub)
if type (sub) == "table" then
return subchain (m, k, sub)
else
return key (m, k, sub)
end
end
--}}}
--{{{ Default values
--- Default escape sequences (S-g is inspired by emacs...)
local escape_keystrokes = {
keystroke ( { }, "Escape" ),
keystroke ( { "Mod4" }, "g" ),
}
--}}}
--{{{ Key table management facilities
local function set_keys (c, k)
if c == root then root.keys (k) else c:keys (k) end
end
local function keys_of (c)
if c == root then return root.keys () else return c:keys () end
end
--}}}
--{{{ Signal emission helper
local function notif (sig, w, ...)
if w ~= root then
client.emit_signal (sig, w, ...)
else -- we use global signals otherwise
awesome.emit_signal (sig, ...)
end
end
--}}}
--{{{ Client/Root-related state management
local function init_client_state_maybe (w)
if data[w] == nil then
local d = { }
d.keys = keys_of (w) -- save client keys
data[w] = d -- register client
notif ("keychain::enter", w)
end
end
local function restore_client_state (c)
local w = c or root
local d = data[w]
-- XXX: Turns out that `d' can be nil already here, in case the keyboard has
-- been grabbed since the previous call to this funtion... (that also seems
-- to be called again upon release…)
if d then
set_keys (w, d.keys) -- restore client keys
data[w] = nil -- unregister client
end
end
local function leave (c)
local w = c or root
-- Destroy notifier structures if needed
if data[w] then -- XXX: necessary test?
notif ("keychain::leave", w)
end
end
-- force disposal of resources when clients are killed
client.add_signal ("unmanage", leave)
--}}}
--{{{ Key binding tree access helpers
local function make_on_entering (m, k, subchain) return
function (c)
local w = c or root
-- Register and initialize client state, if not already in a keychain
init_client_state_maybe (w)
-- Update notifier text, and trigger its drawing if necessary
notif ("keychain::append", w, m, k)
-- Setup subchain
set_keys (w, subchain)
end
end
local function on_leaving (c)
-- Trigger disposal routine
leave (c)
-- Restore initial key mapping of client
restore_client_state (c)
end
--}}}
--{{{ Configuration
-- Flag to detect late initialization error
local already_used = false
-- Escape binding table built once upon initialization
local escape_bindings = { }
--- Fills the escape bindings table with actual `awful.key' elements triggering
--- execution of `on_leaving'.
local function init_escape_bindings ()
escape_bindings = { }
for _, e in ipairs (escape_keystrokes) do
escape_bindings = join (escape_bindings,
akey (e (ks_mod), e (ks_key), on_leaving))
end
end
-- Call it once upon module loading to initialize escape_bindings (in case
-- `init' is not called).
init_escape_bindings ()
--- Initializes the keychain module, with given properties; to be called before
--- ANY other function of this module.
-- Configurations fields include:
--
-- `escapes': A table of keystrokes (@see keychain.keystroke) escaping keychains
-- (defaults are `Mod4-g' and `Escape').
--
-- @param c The table of properties.
function init (c)
local c = c or { }
if already_used then
-- heum... just signal the error: "print" or "error"?
return print ("E: keychain: Call to `init' AFTER having bound keys!")
end
escape_keystrokes = c.escapes and c.escapes or escape_keystrokes
-- Now, fill the escape bindings table again with actual `awful.key'
-- elements triggering `on_leaving' executions, in case escape keys has
-- changed.
init_escape_bindings ()
end
--}}}
--{{{ Keychain creation
--- Creates a new keychain binding.
-- @param m Modifiers table.
-- @param k The key.
-- @param chains A table of keychains, describing either final bindings (see
-- key constructor) or subchains (see subchain constructor). If arg is not a
-- table, then `awful.key' is called directly with the arguments.
-- @return A key binding for the `awful.key' module.
-- @see awful.key
function new (m, k, chains)
-- If the argument is a function, then we need to return an actual awful.key
-- directly.
if type (chains) ~= "table" then
return akey (m, k, chains)
end
-- This table will contain the keys to be mapped upon <m, k> keystroke. It
-- initially contains the escape bindings, so that one can still rebind them
-- differently in `chains'.
local subchain = clone (escape_bindings)
already_used = true -- subsequent init avoidance flag...
-- For each entry of the given chains, add a corresponding `awful.key'
-- element in the subchain
for _, e in ipairs (chains) do
local ks = e (binding_ks)
if e (binding_leaf) then
-- We encountered a leaf in the chains.
local function on_leaf (c) on_leaving (c); e (binding_cont) (c) end
subchain = join (subchain, akey (ks (ks_mod), ks (ks_key), on_leaf))
else
-- Recursively call subchain creation. "Funny" detail: I think there
-- is no way of creating ill-structured keychain descriptors that
-- would produce infinite recursive calls here, since we control
-- their creation with functional tuples, that cannot lead to cyclic
-- structures...
local subch = new (ks (ks_mod), ks (ks_key), e (binding_cont))
subchain = join (subchain, subch)
end
end
-- Then return an actual `awful.key', triggering the `on_entering' routine
return akey (m, k, make_on_entering (m, k, subchain))
end
--}}}
-- Setup `__call' entry in module's metatable so that we can create new prefix
-- binding using `keychain (m, k, ...)' directly.
setmetatable (_M, { __call = function (_, ...) return new (...) end })
-- Local variables:
-- indent-tabs-mode: nil
-- fill-column: 80
-- lua-indent-level: 4
-- End:
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80

View file

@ -1,73 +0,0 @@
local awful = awful
local beautiful = beautiful
local client = client
local ext = require("ext")
local lfs = require("lfs")
local pairs = pairs
local string = string
local table = table
local widget = widget
module("oni")
local maildirfmt = "/home/slash/documents/mail/%s/inbox/new/"
function mailcount(account)
local i = 0
local dir = string.format(maildirfmt, account)
for file in lfs.dir(dir) do
if file ~= "." and file ~= ".." then
i = i + 1
end
end
return i
end
local function showmail(name)
awful.util.spawn("emacsclient -e '(oni:view-mail \"" .. name .. "\")'")
end
function mailcount_widgets(label, account, name)
widgets = {}
widgets.label = widget({ type = "textbox" })
widgets.label.text = string.format(" %s: ", label)
widgets.count = widget({ type = "textbox" })
widgets.count.text = string.format(" %d ", mailcount(account))
widgets.count.bg = beautiful.bg_focus
widgets.count:buttons(
awful.util.table.join(
awful.button({ }, 1, function (c) showmail(name) end)))
return widgets
end
function focus_raise(direction)
awful.client.focus.bydirection(direction)
if client.focus then client.focus:raise() end
end
function ror_browser()
ext.run_or_raise("conkeror", { class = "Conkeror" })
end
function ror_editor()
ext.run_or_raise("emacsclient -c -a emacs", { class = "Emacs" })
end
function ror_term()
ext.run_or_raise("urxvt", { class = "URxvt" })
end
function run_browser()
awful.util.spawn("conkeror")
end
function run_editor()
awful.util.spawn("emacsclient -c -a emacs")
end
function run_term()
awful.util.spawn("urxvt")
end

View file

@ -1,414 +0,0 @@
require("awful")
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)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.add_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
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = err })
in_error = false
end)
end
-- {{{ 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")
} })
-- 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.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
layouts =
{
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.floating
}
-- }}}
-- {{{ 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
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- }}}
-- {{{ 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()
-- Create a wibox for each screen and add it
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, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
)
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 })
-- 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.label.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)
-- 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
}
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
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),
-- 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),
-- Standard program
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),
-- Prompt
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)
)
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)
)
-- 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));
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.
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))
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)
-- }}}
-- {{{ 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] } },
}
-- }}}
-- {{{ 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.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)
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)
-- }}}

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/themes
modules=custom
include ../../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/custom
objects=theme.lua
include ../../../../dotfiles.mk

View file

@ -1,96 +0,0 @@
---------------------------
-- Default awesome theme --
---------------------------
theme = {}
theme.font = "osaka_unicode 10"
theme.bg_normal = "#222222"
theme.bg_focus = "#535d6c"
theme.bg_urgent = "#ff0000"
theme.bg_minimize = "#444444"
theme.fg_normal = "#aaaaaa"
theme.fg_focus = "#ffffff"
theme.fg_urgent = "#ffffff"
theme.fg_minimize = "#ffffff"
theme.border_width = "1"
theme.border_normal = "#000000"
theme.border_focus = "#535d6c"
theme.border_marked = "#91231c"
-- There are other variable sets
-- overriding the default one when
-- defined, the sets are:
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
-- titlebar_[bg|fg]_[normal|focus]
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
-- Example:
--theme.taglist_bg_focus = "#ff0000"
-- Display the taglist squares
theme.taglist_squares_sel = "/home/slash/.config/awesome/themes/custom/taglist/squarefw.png"
theme.taglist_squares_unsel = "/home/slash/.config/awesome/themes/custom/taglist/squarew.png"
theme.tasklist_floating_icon = "/home/slash/.config/awesome/themes/custom/tasklist/floatingw.png"
-- Variables set for theming the menu:
-- menu_[bg|fg]_[normal|focus]
-- menu_[border_color|border_width]
theme.menu_submenu_icon = "/home/slash/.config/awesome/themes/custom/submenu.png"
theme.menu_height = "15"
theme.menu_width = "100"
-- You can add as many variables as
-- you wish and access them by using
-- beautiful.variable in your rc.lua
--theme.bg_widget = "#cc0000"
-- Define the image to load
theme.titlebar_close_button_normal = "/home/slash/.config/awesome/themes/custom/titlebar/close_normal.png"
theme.titlebar_close_button_focus = "/home/slash/.config/awesome/themes/custom/titlebar/close_focus.png"
theme.titlebar_ontop_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_normal_inactive.png"
theme.titlebar_ontop_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_focus_inactive.png"
theme.titlebar_ontop_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_normal_active.png"
theme.titlebar_ontop_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/ontop_focus_active.png"
theme.titlebar_sticky_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_normal_inactive.png"
theme.titlebar_sticky_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_focus_inactive.png"
theme.titlebar_sticky_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_normal_active.png"
theme.titlebar_sticky_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/sticky_focus_active.png"
theme.titlebar_floating_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/floating_normal_inactive.png"
theme.titlebar_floating_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/floating_focus_inactive.png"
theme.titlebar_floating_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/floating_normal_active.png"
theme.titlebar_floating_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/floating_focus_active.png"
theme.titlebar_maximized_button_normal_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_normal_inactive.png"
theme.titlebar_maximized_button_focus_inactive = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_focus_inactive.png"
theme.titlebar_maximized_button_normal_active = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_normal_active.png"
theme.titlebar_maximized_button_focus_active = "/home/slash/.config/awesome/themes/custom/titlebar/maximized_focus_active.png"
-- You can use your own command to set your wallpaper
theme.wallpaper_cmd = { "awsetbg -u feh -c /usr/share/archlinux/wallpaper/archlinux-simplyblack.png" }
-- You can use your own layout icons like this:
theme.layout_fairh = "/home/slash/.config/awesome/themes/custom/layouts/fairhw.png"
theme.layout_fairv = "/home/slash/.config/awesome/themes/custom/layouts/fairvw.png"
theme.layout_floating = "/home/slash/.config/awesome/themes/custom/layouts/floatingw.png"
theme.layout_magnifier = "/home/slash/.config/awesome/themes/custom/layouts/magnifierw.png"
theme.layout_max = "/home/slash/.config/awesome/themes/custom/layouts/maxw.png"
theme.layout_fullscreen = "/home/slash/.config/awesome/themes/custom/layouts/fullscreenw.png"
theme.layout_tilebottom = "/home/slash/.config/awesome/themes/custom/layouts/tilebottomw.png"
theme.layout_tileleft = "/home/slash/.config/awesome/themes/custom/layouts/tileleftw.png"
theme.layout_tile = "/home/slash/.config/awesome/themes/custom/layouts/tilew.png"
theme.layout_tiletop = "/home/slash/.config/awesome/themes/custom/layouts/tiletopw.png"
theme.layout_spiral = "/home/slash/.config/awesome/themes/custom/layouts/spiralw.png"
theme.layout_dwindle = "/home/slash/.config/awesome/themes/custom/layouts/dwindlew.png"
theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
return theme
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/clfswm
objects=clfswmrc
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/cower
objects=config
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/dunst
objects=dunstrc
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/fehlstart
objects=fehlstart.rc
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/fish
objects=config.fish
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/herbstluftwm
objects=autostart panel.sh
include ../../dotfiles.mk

View file

@ -1,77 +0,0 @@
#!/bin/zsh
function hc () {
herbstclient $@
}
modkey="Mod4"
hc keybind $modkey+Ctrl+b resize left +0.05
hc keybind $modkey+Ctrl+f resize right +0.05
hc keybind $modkey+Ctrl+n resize down +0.05
hc keybind $modkey+Ctrl+p resize up +0.05
hc keybind $modkey+Ctrl+q quit
hc keybind $modkey+Ctrl+r reload
hc keybind $modkey+Shift+1 spawn dmenu_run -p 'Run:' -b -nb '#111113' -nf '#eeeeec' -sb '#171719'
hc keybind $modkey+Shift+b shift left
hc keybind $modkey+Shift+f shift right
hc keybind $modkey+Shift+n shift down
hc keybind $modkey+Shift+p shift up
hc keybind $modkey+Shift+s split horizontal 0.5
hc keybind $modkey+b focus -i left
hc keybind $modkey+c spawn urxvt
hc keybind $modkey+comma cycle_monitor -1
hc keybind $modkey+e spawn emacsclient -ca emacs
hc keybind $modkey+f focus -i right
hc keybind $modkey+k close
hc keybind $modkey+n focus -i down
hc keybind $modkey+o cycle_all
hc keybind $modkey+p focus -i up
hc keybind $modkey+period cycle_monitor 1
hc keybind $modkey+q remove
hc keybind $modkey+s split vertical 0.5
hc keybind $modkey+space cycle_layout 1
hc keybind $modkey+w spawn conkeror
hc keybind Ctrl+Mod1+l spawn i3lock -c 000000
hc keybind XF86AudioNext spawn mpc next
hc keybind XF86AudioPlay spawn mpc toggle
hc keybind XF86AudioPrev spawn mpc prev
hc keybind XF86AudioStop spawn mpc stop
hc set default_frame_layout 2
hc set focus_stealing_prevention 0
hc set frame_bg_transparent 1
hc set frame_border_width 0
hc set raise_on_focus 1
hc set window_border_active_color "#999999"
hc set window_border_normal_color "#222224"
hc set window_border_width 1
hc set_layout max
hc add default2
hc remove_monitor 1
hc move_monitor 0 1920x1080+0+0
hc add_monitor 1680x1050+1920+0 default2
hc pad 0 20 -5 -5 -5
hc pad 1 -5 -5 -5 -5
hc mousebind $modkey-Button1 move
hc mousebind $modkey-Button2 resize
hc mousebind $modkey-Button3 zoom
hc unrule -F
hc rule focus=on
hc rule windowtype=_NET_WM_WINDOW_TYPE_DIALOG focus=on pseudotile=on
hc rule class=Xephyr pseudotile=on
hc rule instance=Xine\ Window pseudotile=on
hc rule class=Pinentry pseudotile=on
hc rule class=Dispass pseudotile=on
hc rule title="GIMP Startup" pseudotile=on
# xbindkeys
# ~/.config/herbstluftwm/panel.sh &
# hc load default "(split horizontal:0.550000:0 (split vertical:0.850000:0 (split horizontal:0.180000:1 (clients max:0) (clients max:0 0x140001a)) (clients max:0)) (clients max:0 0xc00077))"

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/newsbeuter
objects=config urls
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/zathura
objects=zathurarc
include ../../dotfiles.mk

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/.conkerorrc
modules=themes
objects=gtk2rc init.js
include ../dotfiles.mk

View file

@ -1,240 +0,0 @@
require("content-policy.js");
require("favicon");
load_paths.push("file:///home/slash/var/src/linkwave/conkeror/");
theme_load_paths.push("/home/slash/.conkerorrc/themes/");
require("linkwave");
define_browser_object_class(
"history-url", null,
function (I, prompt) {
check_buffer(I.buffer, content_buffer);
var result = yield I.buffer.window.minibuffer.read_url(
$prompt = prompt, $use_webjumps = false, $use_history = true,
$use_bookmarks = false, $sort_order = 'date_descending'
);
yield co_return(result);
}
);
function ext_title_format(window) {
return '(' + get_current_profile() +') '
+ window.buffers.current.description;
}
function oni_before_quit_func() {
var w = get_recent_conkeror_window();
var result = (w == null) ||
"y" == (yield w.minibuffer.read_single_character_option(
$prompt="Quit Conkeror? (y/n)",
$options=["y", "n"]));
yield co_return(result);
}
function oni_block_flash(content_type, content_location) {
var Y = content_policy_accept, N = content_policy_reject;
var action = ({ "youtube.com": Y }
[content_location.host] || N);
if (action == N)
dumpln("blocked flash: " + content_location.spec);
return action;
}
function oni_escape(str) {
return str.replace(/(["$`])/g, '\\$1');
}
function oni_org_store_link(I) {
var cmd_str = 'emacsclient \"org-protocol://store-link://'
+ encodeURIComponent(I.buffer.display_uri_string) + '/'
+ encodeURIComponent(I.buffer.document.title) + '\"';
if (I.window != null) {
window.minibuffer.message('Issuing ' + cmd_str);
}
shell_command_blind(cmd_str);
}
interactive("org-store-link",
"Stores [[url][title]] as org link and copies url to emacs "
+ "kill ring",
oni_org_store_link);
interactive("find-url-from-history",
"Find a page from history in the current buffer",
"find-url",
$browser_object = browser_object_history_url);
interactive("find-url-from-history-new-buffer",
"Find a page from history in a new buffer",
"find-url-new-buffer",
$browser_object = browser_object_history_url);
define_webjump("emacswiki",
"http://www.google.com/cse?cx=004774160799092323420%3A6-ff2s0o6yi&q=%s",
$alternative="http://www.emacswiki.org");
define_webjump("php",
"http://www.php.net/manual-lookup.php?pattern=%s&scope=quickref",
$alternative="http://www.php.net");
define_webjump("python",
"http://docs.python.org/search.html?q=%s&check_keywords=yes&area=default",
$alternative="http://www.python.org");
define_webjump("ddg",
"https://duckduckgo.com/?q=%s",
$alternative="https://duckduckgo.com");
define_webjump("metal-archives",
"http://www.metal-archives.com/search?searchString=%s&type=band_name",
$alternative="http://www.metal-archives.com");
define_webjump("djangodocs",
"https://docs.djangoproject.com/search/?q=%s&release=5",
$alternative="https://docs.djangoproject.com/");
define_webjump("google",
"https://duckduckgo.com?q=!google%%20%s");
define_webjump("github",
"https://github.com/search?q=%s&type=Everything&repo=&langOverride=&start_value=1",
$alternative="https://github.com");
define_webjump("mdn",
"https://developer.mozilla.org/en-US/search?q=%s",
$alternative="https://developer.mozilla.org/");
define_webjump("monsterhunter",
"http://monsterhunter.wikia.com/wiki/index.php?search=%s&fulltext=Search",
$alternative="http://monsterhunter.wikia.com/");
// Archlinux
define_webjump("arch/wiki",
"https://wiki.archlinux.org/index.php?search=%s",
$alternative="https://wiki.archlinux.org");
define_webjump("arch/aur",
"https://aur.archlinux.org/packages.php?O=0&K=%s&do_Search=Go",
$alternative="https://aur.archlinux.org");
define_webjump("arch/packages",
"https://www.archlinux.org/packages/?sort=&q=%s&limit=50",
$alternative="https://packages.archlinux.org");
// content_policy_bytype_table.object = oni_block_flash;
cwd = make_file("/home/slash/downloads/");
hint_digits = "arstdhneio";
read_buffer_show_icons = true;
title_format_fn = ext_title_format;
url_remoting_fn = load_url_in_new_buffer;
define_key(content_buffer_normal_keymap, "h",
"find-url-from-history-new-buffer");
define_key(content_buffer_normal_keymap, "H",
"find-url-from-history");
define_key(content_buffer_normal_keymap, "C-x C-b", "switch-to-buffer");
define_key(default_base_keymap, "C-x f", "follow-new-buffer");
add_hook("before_quit_hook", oni_before_quit_func);
add_hook("content_policy_hook", content_policy_bytype);
add_hook("mode_line_hook", mode_line_adder(buffer_count_widget, true));
add_hook("mode_line_hook", mode_line_adder(buffer_icon_widget, true));
add_hook("mode_line_hook", mode_line_adder(downloads_status_widget));
remove_hook("download_added_hook", open_download_buffer_automatically);
hints_minibuffer_annotation_mode(true);
theme_load("naquadah");
external_content_handlers.set("application/pdf", "xpdf");
var gh_url = "http://github.com/";
function read_url_github_ad_command_handler(input)
{
var m = /^gh\s+@(\S+)(?:\s+((?:un)?follow))?/.exec(input);
if (m) {
if (m[2])
return gh_url + "users/follow?target=";
return gh_url + m[1];
}
return null;
}
function read_url_github_my_command_handler(input)
{
var m = /^gh\s+my\s+(dashboard|issues|notifications|profile|pulls|stars)/.exec(input);
if (m) {
switch (m[1]) {
case "dashboard":
case "notifications":
case "stars":
return gh_url + m[1];
case "issues":
case "pulls":
return gh_url + "dashboard/" + m[1];
case "profile":
return gh_url + "settings/" + m[1];
}
}
return null;
}
function read_url_github_repo_command_handler(input)
{
var m = /^gh\s+(\S+\/\S+)(?:\s+(\#\d+|\@\S+|issues|pulls|wiki|graphs|network|admin)(?:\s+(\#\d+|new))?)?$/.exec(input);
if (m) {
repo_url = gh_url + m[1] + "/";
switch (m[2]) {
case "issues":
issues_url = repo_url + m[2] + "/";
if (m[3]) {
if (m[3][0] == '#')
return issues_url + m[3].substring(1);
else if (m[3] == "new")
return issues_url + m[3];
else
break;
}
return issues_url;
case "pulls":
case "wiki":
case "graphs":
case "network":
case "admin":
return repo_url + m[2];
default:
// Still need watch and unwatch
if (m[2]) {
if (m[2][0] == '#')
return repo_url + "issues/" + m[2].substring(1);
else if (m[2][0] == '@')
return repo_url + "tree/" + m[2].substring(1);
else
break;
}
return repo_url;
}
}
return null;
}
function read_url_github_command_handler(input)
{
return read_url_github_ad_command_handler(input)
|| read_url_github_my_command_handler(input)
|| read_url_github_repo_command_handler(input);
}
function read_url_local_port_handler(input)
{
var m = /^lh (\d{1,5})$/.exec(input);
if (m) {
return "http://localhost:" + m[1];
}
return null;
}
read_url_handler_list = [read_url_local_port_handler,
read_url_github_command_handler];

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/themes
modules=naquadah
include ../../dotfiles.mk

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/naquadah
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
mode-line.css new-tabs.css tab-bar.css theme.json
include ../../../dotfiles.mk

17
.emacs.d/.gitignore vendored
View file

@ -1,17 +0,0 @@
tramp
elpa
bookmarks
abbrev_defs
custom.el
*.elc
ac-comphist.dat
auto-save-list/
url/
packages/
newsticker/
templates/
rinit.*
!rinit.org
history
init2.el
*.html

View file

@ -1,11 +0,0 @@
DESTDIR:=$(DESTDIR)/.emacs.d
objects=init.elc init.el gnus.elc gnus.el init2.elc init2.el
modules=eshell site-lisp snippets
EMACS=emacs
include ../dotfiles.mk
init2.el: init.org
$(EMACS) -Q -batch \
-eval "(progn (require 'org) (require 'ob-tangle) (org-babel-tangle-file \"$^\"))"

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/eshell
objects=alias
modules=
include ../../dotfiles.mk

View file

@ -1,57 +0,0 @@
(setq gnus-select-method '(nntp "news.gmane.org"))
(setq gnus-secondary-select-methods
'((nnmaildir "gmail"
(directory "~/documents/mail/gmail/"))
(nnmaildir "ninthfloor"
(directory "~/documents/mail/ninthfloor/"))
(nnmaildir "aethon"
(directory "~/documents/mail/aethon/"))
(nnmaildir "ryuslash"
(directory "~/documents/mail/ryuslash.org/"))
(nntp "news.gwene.org")))
(setq gnus-auto-subscribed-groups nil)
(setq gnus-extra-headers '(To))
(setq gnus-save-newsrc-file nil)
(setq gnus-read-newsrc-file nil)
(setq gnus-novice-user t)
(setq gnus-article-truncate-lines nil)
;; (setq gnus-parameters
;; '(("gmail"
;; (display . all))
;; ("aethon"
;; (display . all)
;; ("arch"
;; (display . all)))))
(setq gnus-permanently-visible-groups
(eval-when-compile
(regexp-opt '("gmail:inbox"
"aethon:inbox"
"ninthfloor:inbox"
"ryuslash:inbox"))))
(setq nntp-marks-is-evil t)
(setq gnus-check-new-newsgroups nil)
(setq gnus-posting-styles
'((".*"
(address "tom@ryuslash.org")
(eval (setq message-sendmail-extra-arguments '("-a" "ryuslash")
flyspell-default-dictionary "en")))
("gmail:"
(address "ryuslash@gmail.com")
(eval (setq message-sendmail-extra-arguments '("-a" "gmail"))))
("ninthfloor:"
(address "ryuslash@ninthfloor.org")
(eval (setq message-sendmail-extra-arguments '("-a" "ninthfloor"))))
("arch:"
(address "tom.willemsen@archlinux.us")
(eval (setq message-sendmail-extra-arguments '("-a" "arch"))))
("aethon:"
(address "thomas@aethon.nl")
(signature-file "~/documents/work/aethon/signature.txt")
(eval (setq message-sendmail-extra-arguments '("-a" "aethon")
flyspell-default-dictionary "nl")))))
;-----[ BBDB ]--------------------------------------------------------
;; (require 'bbdb)
;; (bbdb-initialize 'gnus 'message)
;; (bbdb-insinuate-gnus)
;; (setq bbdb-north-american-phone-numbers-p nil)

View file

@ -1,387 +0,0 @@
;;; init.el --- ryuslash's emacs init
;;; Commentary:
;; Does so much and changes so often
;;; Code:
(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 `(,@ido-ignore-buffers
"^\\*.*\\*$" "^irc\\." "^\\#")))
(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))
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)
(put 'narrow-to-region 'disabled nil)
(put 'scroll-left 'disabled nil)
(setq-default bidi-paragraph-direction 'left-to-right)
(setq-default c-basic-offset 4)
(setq-default fci-rule-column 73)
(setq-default gac-automatically-push-p t)
(setq-default indent-tabs-mode nil)
(setq-default php-mode-warn-if-mumamo-off nil)
(setq-default require-final-newline t)
(setq-default tab-width 4)
(setq-default truncate-lines t)
(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 avandu-article-render-function #'avandu-view-w3m)
(setq backup-directory-alist
`((".*" . ,temporary-file-directory)))
(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program (getenv "BROWSER"))
(setq c-offsets-alist '((statement-block-intro . +)
(knr-argdecl-intro . 5)
(substatement-open . +)
(substatement-label . 0)
(label . 0)
(statement-case-open . +)
(statement-cont . +)
(arglist-intro . +)
(arglist-close . 0)
(inline-open . 0)
(brace-list-open . +)
(topmost-intro-cont first c-lineup-topmost-intro-cont
c-lineup-gnu-DEFUN-intro-cont)))
(setq comment-auto-fill-only-comments t)
(setq custom-file "~/.emacs.d/custom.el")
(setq custom-theme-directory "~/.emacs.d/themes")
(setq default-frame-alist
`((border-width . 0)
(internal-border-width . 0)
(vertical-scroll-bars . nil)
(menu-bar-lines . nil)
(tool-bar-lines . nil)
(font . "monaco-12")))
(setq emms-source-file-default-directory "/mnt/music/")
(setq erc-autojoin-channels-alist
'(("freenode.net" "#ninthfloor" "#emacs" "#dispass")))
(setq erc-hide-list '("JOIN" "PART" "QUIT"))
(setq erc-insert-timestamp-function 'erc-insert-timestamp-left)
(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
(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")
(setq gtags-auto-update t)
(setq help-at-pt-display-when-idle 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 inferior-lisp-program "sbcl")
(setq inhibit-default-init t)
(setq inhibit-local-menu-bar-menus t)
(setq inhibit-startup-message t)
(setq initial-major-mode 'emacs-lisp-mode)
(setq initial-scratch-message nil)
(setq jabber-account-list '(("ryuslash@jabber.org")
("tom@ryuslash.org"
(:connection-type . ssl))))
(setq jabber-chat-buffer-format "*jabber:%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-chatstates-confirm nil)
(setq jabber-history-dir "~/.emacs.d/jabber")
(setq jabber-roster-show-bindings nil)
(setq jit-lock-defer-time 0.2)
(setq magit-repo-dirs '("~/projects/" "~/var/src/"))
(setq message-log-max 1000)
(setq message-send-mail-function 'message-send-mail-with-sendmail)
(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/")))
(setq package-load-list '((htmlize "1.39")
(lua-mode "20111107")
all))
(setq php-function-call-face 'font-lock-function-name-face)
(setq php-mode-force-pear t)
(setq pony-tpl-indent-moves t)
(setq pp^L-^L-string-function 'oni:pretty-control-l-function)
(setq pp^L-^L-string-pre nil)
(setq rainbow-delimiters-max-face-count 12)
(setq redisplay-dont-pause t)
(setq send-mail-function 'smtpmail-send-it)
(setq sendmail-program "/usr/bin/msmtp")
(setq smex-key-advice-ignore-menu-bar t)
(setq smex-save-file "~/.emacs.d/smex-items")
(setq split-height-threshold 40)
(setq time-stamp-active t)
(setq time-stamp-format "%04y-%02m-%02d %02H:%02M:%02S (%u)")
(setq type-break-good-rest-interval (* 60 10))
(setq type-break-interval (* 60 50))
(setq type-break-keystroke-threshold '(nil . nil))
(setq uniquify-buffer-name-style 'post-forward)
(setq use-dialog-box nil)
(setq user-full-name "Tom Willemsen")
(setq user-mail-address "tom@ryuslash.org")
(setq w3m-fill-column 72)
(setq window-combination-resize t)
(setq yas-fallback-behavior nil)
(setq yas-prompt-functions '(yas-ido-prompt))
(add-hook 'after-change-major-mode-hook 'set-current-mode-icon)
(add-hook 'after-save-hook 'oni:after-save-func t)
(add-hook 'before-save-hook 'oni:before-save-func)
(add-hook 'c-mode-hook 'oni:c-mode-func)
(add-hook 'css-mode-hook 'oni:css-mode-func)
(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)
(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)
(add-hook 'jabber-roster-mode-hook 'oni:jabber-roster-mode-func)
(add-hook 'java-mode-hook 'oni:java-mode-func)
(add-hook 'js-mode-hook 'oni:js-mode-func)
(add-hook 'js2-mode-hook 'oni:js2-mode-func)
(add-hook 'lua-mode-hook 'oni:lua-mode-func)
(add-hook 'magit-log-edit-mode-hook 'oni:magit-log-edit-mode-func)
(add-hook 'markdown-mode-hook 'oni:markdown-mode-func)
(add-hook 'message-mode-hook 'oni:message-mode-func)
(add-hook 'org-mode-hook 'oni:org-mode-func)
(add-hook 'php-mode-hook 'oni:php-mode-func)
(add-hook 'prog-mode-hook 'oni:prog-mode-func)
(add-hook 'python-mode-hook 'oni:python-mode-func)
(add-hook 'rst-mode-hook 'oni:rst-mode-func)
(add-hook 'term-mode-hook 'oni:term-mode-func)
(add-hook 'texinfo-mode-hook 'oni:texinfo-mode-func)
(add-hook 'write-file-hooks 'oni:write-file-func)
(add-hook 'yas-minor-mode-hook 'oni:yas-minor-mode-func)
(global-set-key (kbd "'") 'oni:self-insert-dwim)
(global-set-key (kbd "<XF86AudioNext>") 'emms-next)
(global-set-key (kbd "<XF86AudioPlay>") 'oni:emms-toggle-playing)
(global-set-key (kbd "<XF86AudioPrev>") 'emms-previous)
(global-set-key (kbd "<XF86AudioStop>") 'emms-stop)
(global-set-key (kbd "<XF86HomePage>") 'oni:raise-scratch)
(global-set-key (kbd "<XF86Mail>") 'oni:view-mail)
(global-set-key (kbd "<XF86Tools>") 'oni:start-emms)
(global-set-key (kbd "<f10>") 'git-project-show-files)
(global-set-key (kbd "<f5>") 'ext:reload-buffer)
(global-set-key (kbd "<f6>") 'jabber-switch-to-roster-buffer)
(global-set-key (kbd "<f7>") 'magit-status)
(global-set-key (kbd "<f8>") '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)
(global-set-key (kbd "C-M-SPC") 'er/expand-region)
(global-set-key (kbd "C-M-d") 'kill-word)
(global-set-key (kbd "C-M-w") 'backward-kill-word)
(global-set-key (kbd "C-S-k") 'kill-whole-line)
(global-set-key (kbd "C-a") 'oni:move-beginning-of-dwim)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
(global-set-key (kbd "C-c i p") 'identica-update-status-interactive)
(global-set-key (kbd "C-c p") 'oni:show-buffer-position)
(global-set-key (kbd "C-c t") 'oni:raise-ansi-term)
(global-set-key (kbd "C-d") 'oni:kill-region-or-forward-char)
(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-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)
(if (daemonp)
(global-set-key "\C-x\C-c" 'oni:close-client-window))
(when (or window-system (daemonp))
(global-unset-key "\C-z"))
(add-to-list 'auto-mode-alist '("\\.jl$" . sawfish-mode))
(add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . js2-mode))
(add-to-list 'auto-mode-alist
'("\\.m\\(ark\\)?d\\(?:o?wn\\)?$" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.php[345]?$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.po\\'\\|\\.po\\." . po-mode))
(add-to-list 'auto-mode-alist '("\\.tpl$" . html-mode))
(add-to-list 'auto-mode-alist '("^PKGBUILD$" . shell-script-mode))
(add-to-list 'auto-mode-alist '("^\\.Xmodmap$" . xmodmap-mode))
(add-to-list 'debug-ignored-errors "^Can't shift all lines enough")
(add-to-list
'display-buffer-alist
'("^\\*\\(?:.+-\\)?scratch\\*$" . ((display-buffer-same-window . nil))))
(add-to-list
'display-buffer-alist
'("^\\*git-project-list\\*$" . ((git-project-show-window . nil))))
(add-to-list
'display-buffer-alist
'("^\\*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)
(auto-insert-mode)
(electric-indent-mode)
(electric-pair-mode)
(ido-mode)
(ido-ubiquitous-mode)
(savehist-mode)
(show-paren-mode)
(winner-mode)
(smex-initialize)
(help-at-pt-set-timer)
(load-theme 'yoshi t)
(load custom-file)
;; (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))
(diminish 'auto-fill-function "_")
(ac-config-default)
(provide 'init)
;;; init.el ends here

View file

@ -1,356 +0,0 @@
#+TITLE: Emacs init
#+STYLE: <link href="http://ryuslash.ninth.su/test2.css" rel="stylesheet">
#+OPTIONS: author:nil
* Startup
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" "~/var/src/emacs/mode-icons"
"~/.emacs.d/site-lisp"))
#+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
<<add-all>>
<<add-with-loaddefs>>
<<add-themes>>
<<package-initialize>>
<<load-site-lisps>>
<<load-projects>>
<<load-themes>>)
#+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~.
#+BEGIN_SRC emacs-lisp :tangle init2.el
(defalias 'dabbrev-expand 'hippie-expand)
#+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.
#+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)
#+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
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
I can't use it.
[fn:2] Or perhaps all.
[fn:3] I think it was ~slime-js-minor-mode~, but I'm not sure.

View file

@ -1,7 +0,0 @@
DESTDIR:=$(DESTDIR)/site-lisp
objects=dzen.elc dzen.el eltuki.elc eltuki.el ext.elc ext.el \
metalexpress.elc metalexpress.el mu4e-init.elc mu4e-init.el \
newsticker-init.elc newsticker-init.el oni.elc oni.el org-init.elc \
org-init.el quick-edit-mode.elc quick-edit-mode.el
include ../../dotfiles.mk

View file

@ -1,84 +0,0 @@
;;; dzen.el --- Control DZEN2 from emacs
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <slash@drd>
;; Keywords: convenience
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(require 'newst-backend)
(require 'sawfish)
(defvar dzen-process nil
"Dzen2's process.")
(defvar dzen-timer nil
"Timer used to update the dzen line.")
(defun get-mail-count (account)
(length (directory-files (concat "/home/slash/documents/mail/"
account "/inbox/new") nil "^[^.]")))
(defun dzen-update ()
(let ((strl "")
(strc metal-express-radio-currently-playing)
(strr (format
"jabber: %s ryu: %d gm: %d aet: %d 9n: %d rss: %d\n"
(oni:current-jabber-status)
(get-mail-count "ryuslash.org")
(get-mail-count "gmail")
(get-mail-count "aethon")
(get-mail-count "ninthfloor")
(newsticker--stat-num-items-total 'new))))
(process-send-string
"dzen2" (format "%s^p(_CENTER)^p(-%d)%s^p(_RIGHT)^p(-%d)%s"
strl
(* (floor (/ (length strc) 2)) 8) strc
(+ 8 (* 8 (length strr))) strr))))
(defun dzen-start ()
(interactive)
(if (or (null dzen-process) (not (process-live-p dzen-process)))
(progn
(setq dzen-process
(start-process "dzen2" "*dzen2*" "dzen2"
"-w" "1920"
"-fn" "Monaco-10"
"-bg" "#222224"
"-fg" "#eeeeec"
"-y" "1060"))
(dzen-update)
(setq dzen-timer (run-with-timer 1 1 #'dzen-update)))
(message "Dzen2 already running")))
(defun dzen-stop ()
(interactive)
(if (and dzen-process (process-live-p dzen-process))
(progn
(when dzen-timer
(cancel-timer dzen-timer))
(kill-process "dzen2"))
(message "Dzen2 is not running"))
(setq dzen-process nil
dzen-timer nil))
(provide 'dzen)
;;; dzen.el ends here

View file

@ -1,47 +0,0 @@
;;; ext.el --- More emacs functions
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <tom@ryuslash.org>
;; Keywords: local
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(defadvice org-agenda-redo (after ext:org-agenda-redo-add-appts)
"Pressing `r' on the agenda will also add appointments."
(progn
(setq appt-time-msg-list nil)
(org-agenda-to-appt)))
(defun ext:flymake-pyflakes-init ()
"Initialize function for flymake with pyflakes."
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name temp-file (file-name-directory
buffer-file-name))))
(list "pycheck.sh" (list local-file))))
(defun ext:reload-buffer ()
"Reload current buffer."
(interactive)
(revert-buffer nil t nil))
(provide 'ext)
;;; ext.el ends here

View file

@ -1,54 +0,0 @@
;;; mu4e-init.el --- mu4e initialization
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <slash@drd>
;; Keywords:
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(require 'oni)
(oni:define-mailbox "aethon"
(oni:email thomas at aethon dot nl)
(expand-file-name "~/documents/work/aethon/signature.txt"))
(oni:define-mailbox "gmail" (oni:email ryuslash at gmail dot com))
(oni:define-mailbox "ninthfloor"
(oni:email ryuslash at ninthfloor dot org))
(oni:define-mailbox "ryuslash" (oni:email tom at ryuslash dot org)
nil "ryuslash.org")
(setq mu4e-headers-date-format "%d-%m %H:%M")
(setq mu4e-headers-fields '((:date . 11)
(:flags . 6)
(:to . 22)
(:from . 22)
(:subject)))
(setq mu4e-headers-show-threads nil)
(setq mu4e-headers-sort-revert nil)
(setq mu4e-html2text-command "w3m -dump -T text/HTML -cols 72")
(setq mu4e-my-email-addresses (list
(oni:email tom at ryuslash dot org)
(oni:email ryuslash at gmail dot com)
(oni:email ryuslash at ninthfloor dot org)
(oni:email thomas at aethon dot nl)))
(provide 'mu4e-init)
;;; mu4e-init.el ends here

View file

@ -1,6 +0,0 @@
(setq newsticker-automatically-mark-items-as-old nil)
(setq newsticker-html-renderer 'w3m-region)
(setq newsticker-obsolete-item-max-age 604800)
(setq newsticker-use-full-width nil)
(provide 'newsticker-init)

View file

@ -1,635 +0,0 @@
;;; oni.el --- Functions for emacs
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <tom@ryuslash.org>
;; Keywords: local
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(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
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
fill-column-indicator 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)
(executable-make-buffer-file-executable-if-script-p)
(let* ((dom-dir (locate-dominating-file (buffer-file-name) "Makefile"))
(TAGSp (not (string= "" (shell-command-to-string
(concat "grep \"^TAGS:\" " dom-dir "Makefile"))))))
(when (and dom-dir TAGSp)
(shell-command
(concat "make -C " dom-dir " TAGS >/dev/null 2>&1")))))
(defun oni:appt-display-window-and-jabber (min-to-app new-time appt-msg)
"Send a message to my phone jabber account."
(jabber-send-message (car jabber-connections) "phone@ryuslash.org"
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))
(defun oni:before-save-func ()
"Function for `before-save-hook'."
(if (eq major-mode 'html-mode)
(oni:replace-html-special-chars))
(if (not (eq major-mode 'markdown-mode))
(delete-trailing-whitespace)))
(defun oni:c-mode-func ()
"Function for `c-mode-hook'."
(local-set-key [f9] 'compile)
(local-set-key "\C-j" 'oni:newline-and-indent))
(defun oni:close-client-window ()
"Close a client's frames."
(interactive)
(server-save-buffers-kill-terminal nil))
(defun oni:compile-el ()
"Compile the current buffer file if it is an .el file."
(let* ((full-file-name (buffer-file-name))
(file-name (file-name-nondirectory full-file-name))
(suffix (file-name-extension file-name)))
(if (and (not (string-equal file-name ".dir-locals.el"))
(string-equal suffix "el"))
(byte-compile-file full-file-name))))
(defun oni:css-mode-func ()
"Function for `css-mode-hook'."
(local-set-key "\C-j" 'oni:newline-and-indent)
(rainbow-mode))
(defun oni:current-jabber-status ()
"Return a string representing the current jabber status."
(or (and (not *jabber-connected*) "Offline")
(and (not (string= *jabber-current-status* ""))
*jabber-current-status*)
"Online"))
(defun oni:diary-display-func ()
"Function for `diary-display-hook'."
(diary-fancy-display))
(defun oni:emacs-lisp-mode-func ()
"Function for `emacs-lisp-mode-hook'."
(eldoc-mode))
(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)
(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-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)
(local-set-key "\C-j" 'oni:newline-and-indent))
(defun oni:gtags-mode-func ()
"Function for `gtags-mode-hook'."
(local-set-key "\M-," 'gtags-find-tag)
(local-set-key "\M-." 'gtags-find-rtag))
(defun oni:html-mode-func ()
"Function for `html-mode-hook'."
(yas-minor-mode)
(fci-mode))
(defun oni:indent-shift-left (start end &optional count)
"Rigidly indent region.
Region is from START to END. Move
COUNT number of spaces if it is non-nil otherwise use
`tab-width'."
(interactive
(if mark-active
(list (region-beginning) (region-end) current-prefix-arg)
(list (line-beginning-position)
(line-end-position)
current-prefix-arg)))
(if count
(setq count (prefix-numeric-value count))
(setq count tab-width))
(when (> count 0)
(let ((deactivate-mark nil))
(save-excursion
(goto-char start)
(while (< (point) end)
(if (and (< (current-indentation) count)
(not (looking-at "[ \t]*$")))
(error "Can't shift all lines enough"))
(forward-line))
(indent-rigidly start end (- count))))))
(defun oni:indent-shift-right (start end &optional count)
"Indent region between START and END rigidly to the right.
If COUNT has been specified indent by that much, otherwise look at
`tab-width'."
(interactive
(if mark-active
(list (region-beginning) (region-end) current-prefix-arg)
(list (line-beginning-position)
(line-end-position)
current-prefix-arg)))
(let ((deactivate-mark nil))
(if count
(setq count (prefix-numeric-value count))
(setq count tab-width))
(indent-rigidly start end count)))
(defun oni:jabber-alert-message-func (from buffer text title)
(notifications-notify :title title
:body text))
(defun oni:jabber-chat-mode-func ()
"Function for `jabber-chat-mode-hook'."
(visual-line-mode)
(setq mode-line-format (append (cddr jabber-chat-header-line-format)
'(global-mode-string))
header-line-format nil))
(defun oni:jabber-roster-mode-func ()
"Function for `jabber-roster-mode-hook'."
(setq mode-line-format
(list (propertize " %m" 'face 'mode-line-buffer-id))))
(defun oni:java-mode-func ()
"Function for `java-mode-hook'."
(local-set-key "\C-j" 'oni:newline-and-indent))
(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))
(defun oni:js2-mode-func ()
"Function for `js2-mode-hook'."
(oni:prog-mode-func)
(oni:js-mode-func)
(local-set-key (kbd "<f5>") #'slime-js-reload)
(slime-js-minor-mode))
(defun oni:kill-region-or-backward-char ()
"Either `kill-region' or `backward-delete-char-untabify'."
(interactive)
(if (region-active-p)
(kill-region (region-beginning) (region-end))
(backward-delete-char-untabify 1)))
(defun oni:kill-region-or-forward-char ()
"Either `kill-region' or `delete-forward-char'."
(interactive)
(if (region-active-p)
(kill-region (region-beginning) (region-end))
(delete-forward-char 1)))
(defun oni:kill-region-or-line ()
"Either `kill-region' or `kill-line'."
(interactive)
(if (region-active-p)
(kill-region (region-beginning) (region-end))
(kill-line)))
(defun oni:lua-mode-func()
"Function for `lua-mode-hook'."
(local-unset-key (kbd ")"))
(local-unset-key (kbd "]"))
(local-unset-key (kbd "}")))
(defun oni:magit-log-edit-mode-func ()
"Function for `magit-log-edit-mode-hook'."
(auto-fill-mode)
(font-lock-add-keywords
nil
'(("\\`\\(.\\{,50\\}\\)\\(.*\\)\n?\\(.*\\)$"
(1 'git-commit-summary-face)
(2 'git-commit-overlong-summary-face)
(3 'git-commit-nonempty-second-line-face))
("`\\([^']+\\)'" 1 font-lock-constant-face))
t))
(defun oni:markdown-mode-func ()
"Function for `markdown-mode-hook'."
(setq-local comment-auto-fill-only-comments nil)
(setq-local whitespace-style '(face trailing))
(auto-fill-mode)
(whitespace-mode))
(defun oni:message-mode-func ()
"Function for `message-mode-hook'."
(setq-local comment-auto-fill-only-comments nil)
(auto-fill-mode)
(flyspell-mode))
(defun oni:mini-fix-timestamp-string (date-string)
"A minimal version of Xah Lee's `fix-timestamp-string'.
Turn DATE-STRING into something else that can be worked with in
code. Found at http://xahlee.org/emacs/elisp_parse_time.html"
(setq date-string (replace-regexp-in-string "Jan" "01" date-string)
date-string (replace-regexp-in-string "Feb" "02" date-string)
date-string (replace-regexp-in-string "Mar" "03" date-string)
date-string (replace-regexp-in-string "Apr" "04" date-string)
date-string (replace-regexp-in-string "May" "05" date-string)
date-string (replace-regexp-in-string "Jun" "06" date-string)
date-string (replace-regexp-in-string "Jul" "07" date-string)
date-string (replace-regexp-in-string "Aug" "08" date-string)
date-string (replace-regexp-in-string "Sep" "09" date-string)
date-string (replace-regexp-in-string "Oct" "10" date-string)
date-string (replace-regexp-in-string "Nov" "11" date-string)
date-string (replace-regexp-in-string "Dec" "12" date-string))
(string-match
"^\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{4\\}\\)$"
date-string)
(format "%s-%s-%s"
(match-string 3 date-string)
(match-string 2 date-string)
(match-string 1 date-string)))
(defun oni:move-beginning-of-dwim ()
"Move to beginning of line either after indentation or before."
(interactive)
(let ((start (point)))
(back-to-indentation)
(if (= start (point))
(beginning-of-line))))
(defun oni:move-end-of-dwim ()
"Move to end of line, either before any comments or after."
(interactive)
(let ((start (point))
(eolpos (line-end-position)))
(beginning-of-line)
(if (and comment-start
(comment-search-forward eolpos t))
(progn
(search-backward-regexp (concat "[^ \t" comment-start "]"))
(forward-char)
(when (or (bolp)
(= start (point)))
(end-of-line)))
(end-of-line))))
(defun oni:myepisodes-formatter (plist)
"Format RSS items from MyEpisodes as org tasks.
PLIST contains all the pertinent information."
(let ((str (plist-get plist :title)))
(string-match
"^\\[ \\([^\]]+\\) \\]\\[ \\([^\]]+\\) \\]\\[ \\([^\]]+\\) \\]\\[ \\([^\]]+\\) \\]$"
str)
(let* ((title (match-string 1 str))
(episode (match-string 2 str))
(name (match-string 3 str))
(date (oni:mini-fix-timestamp-string (match-string 4 str))))
(format "* ACQUIRE %s %s - %s \n SCHEDULED: <%s>"
title episode name date))))
(defun oni:newline-and-indent ()
"`newline-and-indent', but with a twist.
When dealing with braces, add another line and indent that too."
(interactive)
(if (and (not (or (= (point) (point-max))
(= (point) (point-min))))
(or (and (char-equal (char-before) ?{)
(char-equal (char-after) ?}))
(and (char-equal (char-before) ?\()
(char-equal (char-after) ?\)))))
(save-excursion (newline-and-indent)))
(newline-and-indent))
(defun oni:org-mode-func ()
"Function for `org-mode-hook'."
(auto-fill-mode)
(yas-minor-mode)
(setq-local comment-auto-fill-only-comments nil))
(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))
(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."
(make-string
(1- (if (boundp 'fci-rule-column) fci-rule-column fill-column)) ?-))
(defun oni:prog-mode-func ()
"Function for `prog-mode-hook'."
(rainbow-delimiters-mode)
(fci-mode)
(pretty-symbols-mode)
(yas-minor-mode)
(auto-fill-mode))
(defun oni:python-mode-func ()
"Function for `python-mode-hook'."
(flymake-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)
(rainbow-delimiters-mode)
(setq fci-rule-column 79
fill-column 72)
(setq-local whitespace-style '(tab-mark))
(fci-mode)
(whitespace-mode))
(defun oni:raise-ansi-term (arg)
"Create or show an `ansi-term' buffer."
(interactive "P")
(let ((buffer (get-buffer "*ansi-term*")))
(if (and buffer (not arg))
(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
use. If MODE is not nil, open a new buffer with the name
*MODE-scratch* and load MODE as its major mode."
(interactive (list (if current-prefix-arg
(read-string "Mode: ")
nil)))
(let* ((bname (if mode
(concat "*" mode "-scratch*")
"*scratch*"))
(buffer (get-buffer bname))
(mode-sym (intern (concat mode "-mode"))))
(unless buffer
(setq buffer (generate-new-buffer bname))
(with-current-buffer buffer
(when (fboundp mode-sym)
(funcall mode-sym))))
(select-window (display-buffer buffer))))
(defun oni:replace-html-special-chars ()
"Replace special characters with HTML escaped entities."
(oni:replace-occurrences "é" "&eacute;"))
(defun oni:replace-occurrences (from to)
"Replace all occurrences of FROM with TO in the current buffer."
(save-excursion
(goto-char (point-min))
(while (search-forward from nil t)
(replace-match to))))
(defun oni:request-pull ()
"Start a mail to request pulling from a git repository."
(interactive)
(let* ((default-directory
(expand-file-name
(or (locate-dominating-file default-directory ".git")
(magit-read-top-dir nil))))
(refs (magit-list-interesting-refs magit-uninteresting-refs))
(from (cdr (assoc (completing-read "From: " refs) refs)))
(url (read-from-minibuffer "Pull URL: "))
(to (symbol-name (read-from-minibuffer "Up to (HEAD): "
nil nil t nil "HEAD")))
(patchp (and current-prefix-arg (listp current-prefix-arg))))
(message "Requesting pull for %s from %s to %s at %s with%s patch"
default-directory from to url (if patchp "" "out"))
(compose-mail
nil (concat
"Requesting pull for "
(file-name-base (directory-file-name default-directory))))
(save-excursion
(goto-char (point-max))
(insert
(shell-command-to-string
(concat "git --git-dir='" default-directory ".git' --work-tree='"
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))
(defun oni:self-insert-dwim ()
"Execute self insert, but when the region is active call self
insert at the end of the region and at the beginning."
(interactive)
(if (region-active-p)
(let ((electric-pair-mode nil)
(beginning (region-beginning))
(end (region-end)))
(goto-char end)
(self-insert-command 1)
(save-excursion
(goto-char beginning)
(self-insert-command 1)))
(self-insert-command 1)))
(defun oni:shorten-dir (dir)
"Shorten a directory, (almost) like fish does it."
(while (string-match "\\(/\\.?[^./]\\)[^/]+/" dir)
(setq dir (replace-match "\\1/" nil nil dir)))
dir)
(defun oni:show-buffer-position ()
"Show the position in the current buffer."
(interactive)
(message (format "%d:%d" (line-number-at-pos) (current-column))))
(defun oni:split-window-interactive (dir)
"Split windows in direction DIR.
Can also delete or switch to another window."
(interactive
(list (read-char "Direction (h,v,q,d,o): ")))
(case dir
((?v) (split-window-vertically))
((?h) (split-window-horizontally))
((?q) (delete-other-windows))
((?d) (delete-window))
((?o) (other-window 1))))
(defun oni:split-window-interactively (window)
"Ask for a direction and split WINDOW that way.
If no direction is given, don't split."
(let ((dir (read-char "Direction (h,v): ")))
(case dir
((?v) (split-window-vertically))
((?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:term-mode-func ()
"Function for `term-mode-hook'."
(setq truncate-lines nil))
(defun oni:texinfo-mode-func ()
"Function for `texinfo-mode-hook'."
(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))
(defun oni:yas-minor-mode-func ()
"Function for `yas-minor-mode-hook'."
(define-key yas-minor-mode-map (kbd "TAB") nil)
(define-key yas-minor-mode-map [(tab)] nil)
(define-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"
"</" str ">\n")
(provide 'oni)
;;; oni.el ends here

View file

@ -1,107 +0,0 @@
;;; org-init.el --- Org initialization
;; Copyright (C) 2012 Tom Willemsen
;; Author: Tom Willemsen <slash@drd>
;; Keywords:
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(require 'appt)
(require 'oni)
(require 'org-contacts)
(require 'org-habit)
(require 'org-protocol)
(eval-after-load "org-crypt"
'(org-crypt-use-before-save-magic))
(setq org-agenda-custom-commands
'(("w" "Work todo." tags-todo "work")))
(setq org-agenda-prefix-format
'((agenda . " %i %-12:c%?-12t% s")
(timeline . " % s")
(todo . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ")
(tags . " %i %-12:c %(concat \"[ \"(org-format-outline-path (org-get-outline-path)) \" ]\") ")
(search . " %i %-12:c")))
(setq org-agenda-sorting-strategy
'((agenda habit-down time-up priority-down category-keep)
(todo priority-down category-keep)
(tags priority-down category-keep)
(search category-keep)))
(setq org-agenda-tags-column -101)
(setq org-capture-templates
'(("t" "Task" entry (file "~/documents/org/tasks")
"* TODO %?")
("T" "Linked task" entry (file "~/documents/org/tasks")
"* TODO %?\n\n %a")))
(setq org-contacts-files '("~/documents/org/misc/contacts.org"))
(setq org-directory (expand-file-name "~/documents/org"))
(setq org-agenda-files
(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)
(setq org-default-notes-file (concat org-directory "/org"))
(setq org-export-htmlize-output-type 'css)
(setq org-feed-alist
'(("MyEpisodes"
"http://www.myepisodes.com/rss.php?feed=mylist&uid=Slash&pwdmd5=04028968e1f0b7ee678b748a4320ac17"
"~/documents/org/tasks" "MyEpisodes"
:formatter oni:myepisodes-formatter)))
(setq org-fontify-done-headline t)
(setq org-hide-emphasis-markers t)
(setq org-outline-path-complete-in-steps t)
(setq org-refile-allow-creating-parent-nodes t)
(setq org-refile-targets '((nil . (:maxlevel . 6))))
(setq org-refile-use-outline-path 'file)
(setq org-return-follows-link t)
(setq org-src-fontify-natively t)
(setq org-tags-column -101)
(setq org-tags-exclude-from-inheritance '("crypt"))
(setq org-todo-keyword-faces
'(("TODO" :foreground "#ff756e" :background "#171719" :box (:width 1 :color "#282830"))
("DONE" :foreground "#9ad870" :background "#222224" :box (:width 1 :color "#333335"))
("SUCCEEDED" :foreground "#9ad870" :background "#222224" :box (:width 1 :color "#333335"))
("WAITING" :foreground "#ffbb56" :background "#171719" :box (:width 1 :color "#282830"))
("CANCELLED" :foreground "#93d8d8" :background "#222224" :box (:width 1 :color "#333335"))
("FAILED" :foreground "#93d8d8" :background "#222224" :box (:width 1 :color "#333335"))
("WIP" :foreground "#ff756e" :background "#171719" :box (:width 1 :color "#282830"))
("HOLD" :foreground "#ffbb56" :background "#171719" :box (:width 1 :color "#282830"))
("ACQUIRE" :foreground "#ff756e" :background "#171719" :box (:width 1 :color "#282830"))
("IGNORED" :foreground "#999999" :background "#222224" :box (:width 1 :color "#333335"))))
(setq org-use-fast-todo-selection t)
(setq org-use-property-inheritance '("slug"))
(add-hook 'org-agenda-mode-hook 'org-agenda-to-appt)
(add-to-list 'org-modules 'habit)
(org-indent-mode t)
(org-agenda-to-appt)
(ad-activate 'org-agenda-redo)
(provide 'org-init)
;;; org-init.el ends here

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/snippets
modules=html-mode org-mode python-mode
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/html-mode
objects=for generic-block
include ../../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/org-mode
objects=codeblock heading
include ../../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/python-mode
objects=defm_empty form form_valid import_from permission_guard url
include ../../../dotfiles.mk

View file

@ -1,6 +0,0 @@
# -*- coding: utf-8 -*-
# name: from ... import ...
# contributor: Tom Willemsen
# key: from
# --
from ${1:module} import ${2:class_or_module}

9
.gitignore vendored
View file

@ -0,0 +1,9 @@
junk/
.src/
.cask/
_publish/
.tern-project
\#*\#
*\#
.\#*

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule ".config/zsh/syntax-highlighting"]
path = .config/zsh/syntax-highlighting
url = git://github.com/zsh-users/zsh-syntax-highlighting

4
.hgrc
View file

@ -1,4 +0,0 @@
[ui]
username = Tom Willemsen <tom@ryuslash.org>
[extensions]
hgext.bookmarks =

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.local
modules=share
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/share
modules=applications
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/applications
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
include ../../../dotfiles.mk

View file

@ -1,5 +0,0 @@
DESTDIR:=$(DESTDIR)/.moc
modules=themes
objects=config
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/themes
objects=custom
include ../../dotfiles.mk

View file

@ -1,6 +0,0 @@
DESTDIR:=$(DESTDIR)/.mutt
objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
ryuslash.org.muttrc sig
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.ncmpcpp
objects=config
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.pentadactyl
modules=plugins
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/plugins
objects=emacs.penta
include ../../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.sawfish
objects=rc
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
startup_message off
vbell off
hardstatus alwayslastline "%{= d}%{r}screen%{g}%H %{r}>> %{g}${USER}@%H: %L>%1`%? %?%{.g}%u%? %-18=%?%{m} %{g}%-=%{g}%-w%{r}%n %t%{g}%+w %{g}|%C"

0
.ssh/.gitignore vendored
View file

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.ssh
objects=config
include ../dotfiles.mk

View file

@ -1,22 +0,0 @@
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 1m
Host 192.168.0.95
Port 4511
Host pegas
Port 4511
Host 82.170.172.156
Port 4511
Host anapnea.net
User ryuslash
Host my.aethon.nl
User tom
Host ryuslash.org
Port 4511
ForwardAgent yes

1
.stowrc Normal file
View file

@ -0,0 +1 @@
--target=/home/slash/

View file

@ -1,171 +0,0 @@
;; -*- mode: lisp; -*-
(require 'swank)
(in-package :stumpwm)
;; Naquadah
(defun colour (key)
(let ((colours (list :aluminium-1 #xeeeeec
:aluminium-2 #xd3d7cf
:aluminium-3 #xbabdb6
:aluminium-4 #x888a85
:aluminium-5 #x555753
:aluminium-6 #x2e3436
:butter-1 #xfce94f
:butter-2 #xedd400
:butter-3 #xc4a000
:orange-1 #xfcaf3e
:orange-2 #xf57900
:orange-3 #xce5c00
:chocolate-1 #xe9b96e
:chocolate-2 #xc17d11
:chocolate-3 #x9f5902
:chameleon-1 #x8ae234
:chameleon-2 #x73d216
:chameleon-3 #x4e9a06
:sky-blue-1 #x729fcf
:sky-blue-2 #x3465a4
:sky-blue-3 #x204a87
:plum-1 #xad7fa8
:plum-2 #x75507b
:plum-3 #x5c3566
:scarlet-red-1 #xef2929
:scarlet-red-2 #xcc0000
:scarlet-red-3 #xa40000
:background #x252a2b
:black #x0c191c
:cyan "cyan3")))
(getf colours key)))
(defvar *conkeror-program* "conkeror"
"The executable to run to start Conkeror.")
(defvar *emacs-program* "emacsclient -c -a emacs"
"The executable to run to start Emacs.")
(defvar *firefox-program* "firefox"
"The executable to run to start Firefox.")
(defvar *i3lock-program* "i3lock -c 000000"
"The executable to run to start i3lock.")
(defvar *urxvt-program* "urxvt"
"The executable to run to start URxvt.")
(defun get-mail-count (mailbox &optional (inbox "inbox"))
"Check how many new messages there are in MAILBOX."
(length
(directory
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
mailbox inbox))))
(defcommand run-emacs () ()
"Open Emacs"
(run-shell-command *emacs-program*))
(defcommand raise-emacs () ()
"Open or show Emacs"
(run-or-raise *emacs-program* '(:class "Emacs")))
(defcommand run-firefox () ()
"Open Firefox"
(run-shell-command *firefox-program*))
(defcommand raise-firefox () ()
"Open or show Firefox"
(run-or-raise *firefox-program* '(:class "Firefox")))
(defcommand run-conkeror () ()
"Open Conkeror"
(run-shell-command *conkeror-program*))
(defcommand raise-conkeror () ()
"Open or show Conkeror"
(run-or-raise *conkeror-program* '(:class "Conkeror")))
(defcommand run-urxvt () ()
"Open URxvt"
(run-shell-command *urxvt-program*))
(defcommand raise-urxvt () ()
"Open URxvt"
(run-or-raise *urxvt-program* '(:class "URxvt")))
(defcommand run-i3lock () ()
"Lock screen"
(run-shell-command *i3lock-program*))
(set-bg-color (colour :background))
(set-border-color (colour :aluminium-6))
(set-fg-color (colour :aluminium-1))
(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-unfocus-color (colour :aluminium-6))
(set-win-bg-color (colour :background))
(setf *colors* (mapcar #'colour '(:black :scarlet-red-1 :chameleon-1
: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 *screen-mode-line-format*
(list "[%n]"
'(:eval
(format nil " | ryu: ~D | gmail: ~D | aethon: ~D | 9f: ~D | "
(get-mail-count "ryuslash.org")
(get-mail-count "gmail")
(get-mail-count "aethon")
(get-mail-count "ninthfloor")))
'(:eval
(format-expand *window-formatters* *window-format*
(current-window)))))
(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")
(define-key *root-map* (kbd "e") "raise-emacs")
(define-key *root-map* (kbd "E") "run-emacs")
(define-key *root-map* (kbd "w") "raise-conkeror")
(define-key *root-map* (kbd "W") "run-conkeror")
(define-key *root-map* (kbd "C-b") "windowlist")
(define-key *root-map* (kbd "M-b") "move-window left")
(define-key *root-map* (kbd "M-f") "move-window right")
(define-key *root-map* (kbd "M-n") "move-window down")
(define-key *root-map* (kbd "M-p") "move-window up")
(define-key *root-map* (kbd "b") "move-focus left")
(define-key *root-map* (kbd "f") "move-focus right")
(define-key *root-map* (kbd "n") "move-focus down")
(define-key *root-map* (kbd "p") "move-focus up")
(undefine-key *root-map* (kbd "C-a"))
(undefine-key *root-map* (kbd "C-c"))
(undefine-key *root-map* (kbd "C-e"))
(undefine-key *root-map* (kbd "C-m"))
(define-frame-preference "Default"
(0 t nil :class "Emacs")
(1 t nil :class "Firefox")
(1 t nil :class "URxvt")
(1 t nil :class "Conkeror"))
(if (not (head-mode-line (current-head)))
(toggle-mode-line (current-screen) (current-head)))
(swank:create-server)

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.w3m
objects=config
include ../dotfiles.mk

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.weechat
objects=alias.conf irc.conf weechat.conf
include ../dotfiles.mk

View file

@ -1,16 +0,0 @@
#!/bin/bash
xmodmap ~/.Xmodmap
# Source scripts in /etc/X11/xinit/xinitrc.d/
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
emacs --daemon &
fehlstart &
test -n "$1" && wm=$1 || wm="sawfish"
exec $wm

View file

@ -1,12 +0,0 @@
export BROWSER=conkeror
export EDITOR="emacsclient -c -a emacs"
export INFOPATH="${HOME}/documents/info:/usr/local/emacs/share/info:/usr/share/info:/usr/local/stumpwm/share/info"
PATH="${HOME}/usr/bin:${PATH}:/usr/local/bin:/usr/local/stumpwm/bin"
PATH="/usr/local/scwm/bin:$PATH"
PATH="/usr/local/clfswm/bin:$PATH"
export PATH="/usr/local/emacs/bin:$PATH"
if [ -z "$SSH_AGENT_PID" ]; then
eval `ssh-agent`
fi

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/.zsh
modules=functions
include ../dotfiles.mk

View file

@ -1,7 +0,0 @@
DESTDIR:=$(DESTDIR)/functions
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
preexec_update_vars prompt prompt_git_info rprompt \
update_current_git_vars welcome
include ../../dotfiles.mk

View file

@ -1,3 +0,0 @@
# -*- mode: shell-script -*-
/usr/bin/env "$@" | grep -v ^LESS_TERMCAP_

@ -1 +0,0 @@
Subproject commit d2715e2cb3294880bbc6a75b91288243054218d0

108
.zshrc
View file

@ -1,108 +0,0 @@
# -*- Mode: shell-script; -*-
autoload -Uz add-zsh-hook
autoload -Uz compinit
autoload -U colors
autoload -Uz vcs_info
# Autoload zsh functions.
fpath=($HOME/.zsh/functions $fpath)
autoload -U $HOME/.zsh/functions/*(:t)
# Setup variables
HISTFILE=$ZDOTDIR/histfile
HISTSIZE=1000
SAVEHIST=1000
LESSCMD="/usr/bin/less -FXRS"
export LESS_TERMCAP_mb=$'\e[1;37m'
export LESS_TERMCAP_md=$'\e[1;37m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[1;47;30m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[0;36m'
export PAGER=$LESSCMD
# Aliases
alias alpine="alpine -p ""{imap.gmail.com/ssl/user=tom.willemsen@archlinux.us}remote_pinerc"""
alias evolus-pencil="/usr/lib/evolus-pencil-svn/evolus-pencil.sh"
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
setopt EXTENDED_GLOB
zstyle :compinstall filename '$HOME/.zshrc'
# Enable auto-execution of functions
typeset -ga preexec_functions
typeset -ga precmd_functions
typeset -ga chpwd_functions
add-zsh-hook preexec preexec_update_vars
add-zsh-hook precmd precmd_update_git_vars
add-zsh-hook precmd precmd_update_updates
add-zsh-hook precmd precmd_maybe_festival
add-zsh-hook precmd vcs_info
add-zsh-hook chpwd chpwd_update_git_vars
zstyle ':vcs_info:*' actionformats '%F{2}(%f%s %r %b%F{2})%f %a
%S'
zstyle ':vcs_info:*' enable bzr git hg svn
zstyle ':vcs_info:*' formats '%F{2}(%f%s %r %b%F{2})%f
%S'
zstyle ':vcs_info:*' nvcsformats '
%~'
zstyle ':vcs_info:bzr:*' branchformat '%b'
# Set the prompt.
PROMPT='%F{1}(%F{2}(%f%m %l%F{2})%f ${vcs_info_msg_0_}%F{1})%f %# '
# Set terminal name to current running application
case $TERM in
rxvt*)
precmd () { print -Pn "\e]0;%~\a" }
preexec () { print -Pn "\e]0;$1\a" }
;;
esac
# Set terminal keys
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history
bindkey "\e[3~" delete-char
bindkey "\e[2~" quoted-insert
bindkey "\e[5C" forward-word
bindkey "\e0c" emacs-forward-word
bindkey "\e[5D" backward-word
bindkey "\e0d" emacs-backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
## for rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
## for non RH/Debian xterm, can't hurt for RH/Debian xterm
bindkey "\e0H" beginning-of-line
bindkey "\e0F" end-of-line
## for freebsd console
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
bindkey "^W" backward-delete-char
# Show syntax highlighting when we're not running in emacs
if [ -z $EMACS ]; then
source $HOME/.zsh/syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
fi
compinit
colors # Initialize colors.

View file

@ -1,11 +0,0 @@
export DESTDIR:=$(HOME)
modules=.emacs.d .config .conkerorrc .local .moc .mutt .ncmpcpp \
.pentadactyl .sawfish .ssh .w3m .weechat .zsh
objects=.bash_profile .beetsconfig .conky_box.lua .conkyrc .gitconfig \
.guile .hgrc .offlineimap.py .offlineimaprc .screenrc .scwmrc \
.slrnrc .stumpwmrc .tmux.conf .urlview .xbindkeysrc.scm .Xdefaults \
.xinitrc .Xmodmap .xsession .zprofile .zshrc
include dotfiles.mk
install-.xinitrc: MODE=744

89
abcde/.abcde.conf Normal file
View file

@ -0,0 +1,89 @@
# -----------------$HOME/.abcde.conf----------------- #
#
# A sample configuration file to convert music cds to
# Ogg Vorbis using abcde version 2.7
#
# http://andrews-corner.org/abcde.html
# -------------------------------------------------- #
# Encode tracks immediately after reading. Saves disk space, gives
# better reading of 'scratchy' disks and better troubleshooting of
# encoding process but slows the operation of abcde quite a bit:
LOWDISK=y
# Specify the method to use to retrieve the track information,
# the alternative is to specify 'cddb':
CDDBMETHOD=musicbrainz
# Make a local cache of cddb entries and then volunteer to use
# these entries when and if they match the cd:
CDDBCOPYLOCAL="y"
CDDBLOCALDIR="$HOME/.cddb"
CDDBLOCALRECURSIVE="y"
CDDBUSELOCAL="y"
# Specify the encoder to use for Ogg Vorbis. In this case
# vorbize is the other choice.
OGGENCODERSYNTAX=oggenc
# Specify the path to the selected encoder. In most cases the encoder
# should be in your $PATH as I illustrate below, otherwise you will
# need to specify the full path. For example: /usr/bin/oggenc
OGGENC=oggenc
# Specify your required encoding options here. Multiple options can
# be selected as '-q 6 --another-option' etc.
# The '-q 6' setting gives VBR encoding between 192-224 kbits/s.
OGGENCOPTS='-q 8'
# Output type for Ogg Vorbis
OUTPUTTYPE="ogg"
# The cd ripping program to use. There are a few choices here: cdda2wav,
# dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'.
CDROMREADERSYNTAX=cdparanoia
# Give the location of the ripping program and pass any extra options,
# if using libcdio set 'CD_PARANOIA=cd-paranoia'.
CDPARANOIA=cdparanoia
CDPARANOIAOPTS="--never-skip=40"
# Give the location of the CD identification program:
CDDISCID=cd-discid
# Give the base location here for the encoded music files.
OUTPUTDIR="$HOME/music"
# The default actions that abcde will take.
ACTIONS=cddb,playlist,read,encode,tag,move,clean
# Decide here how you want the tracks labelled for a standard 'single-artist',
# multi-track encode and also for a multi-track, 'various-artist' encode:
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
# Decide here how you want the tracks labelled for a standard 'single-artist',
# single-track encode and also for a single-track 'various-artist' encode.
# (Create a single-track encode with 'abcde -1' from the commandline.)
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'
# Create playlists for single and various-artist encodes. I would suggest
# commenting these out for single-track encoding.
PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u'
VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u'
# This function takes out dots preceding the album name, and removes a grab
# bag of illegal characters. It allows spaces, if you do not wish spaces add
# in -e 's/ /_/g' after the first sed command.
mungefilename ()
{
echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
}
# What extra options?
MAXPROCS=2 # Run a few encoders simultaneously
PADTRACKS=y # Makes tracks 01 02 not 1 2
EXTRAVERBOSE=0 # Useful for debugging
COMMENT='abcde version 2.7' # Place a comment...
EJECTCD=y # Please eject cd when finished :-)

View file

@ -0,0 +1,22 @@
package = "AwesomeRC"
version = "1-1"
description = {
license = "GPL-3"
}
source = {
url = "file://rc.lua"
}
dependencies = {
"luafilesystem",
"luaposix"
}
build = {
type = "builtin",
modules = {
rc = "rc.lua"
}
}

View file

@ -0,0 +1,578 @@
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
awful.rules = require("awful.rules")
require("awful.autofocus")
-- 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")
local lfs = require("lfs")
local posix = require("posix")
local hostname = posix.uname("%n")
naughty.config.defaults.bg = "#3d3d3d"
naughty.config.defaults.icon_size = 32
local maildir_base = os.getenv("HOME") .. "/documents/mail/"
table.insert(menubar.menu_gen.all_menu_dirs,
os.getenv("HOME") .. "/.local/share/applications/")
function new_mail(maildir)
local count = 0
local newmaildir = maildir_base .. maildir .. "/new"
local curmaildir = maildir_base .. maildir .. "/cur"
if posix.access(newmaildir) then
for file in lfs.dir(newmaildir) do
if file ~= "." and file ~= ".." then
count = count + 1
end
end
end
if posix.access(curmaildir) then
for file in lfs.dir(curmaildir) do
if string.sub(file, -1) ~= "S" and file ~= "."
and file ~= ".." then
count = count + 1
end
end
end
return count
end
function shrink_to_picturefix_width()
local g = client.focus:geometry()
awful.client.floating.set(client.focus, true)
client.focus:geometry({x = g.x, y = g.y, width = 1066, height = 1060})
end
function oni_focus_relative(i)
return awful.screen.focus(awful.util.cycle(screen.count(), client.focus.screen + i))
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 fallback config)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
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
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = err })
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "urxvtc"
editor = "emacsclient"
editor_cmd = 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.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
local layouts = {}
if hostname == "phoenix" then layouts = { awful.layout.suit.max }
else layouts = { awful.layout.suit.tile, awful.layout.suit.max }
end
-- }}}
-- {{{ Wallpaper
-- gears.wallpaper.tiled("/home/slash/pictures/wallpaper-962650.jpg")
local wallpapers = { "/home/slash/pictures/wallpaper-2311191.jpg",
"/home/slash/pictures/wallpaper-1518737-phoenix.png" }
for idx, wall in ipairs(wallpapers) do
if posix.access(wall) then
gears.wallpaper.tiled(wall)
break
end
end
-- }}}
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
tags[1] = awful.tag({" Emacs"}, 1, awful.layout.suit.tile)
if screen.count() > 1 then
tags[2] = awful.tag({" Web"}, 2, awful.layout.suit.max)
if screen.count() > 2 then
for s = 3, 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
end
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- {{{ Wibox
-- Create a textclock widget
mytextclock = awful.widget.textclock()
-- Create a wibox for each screen and add it
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 = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c ~= client.focus then
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({
theme = { 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))
function mailwidget(name, lighter)
widget = wibox.widget.textbox()
widget.set_mailcount = function (self)
self:set_text(string.format(" %s: %d", lighter,
new_mail(name .. '/inbox')))
end
widget:set_mailcount()
return widget
end
mailwidgets = {ryuslash = mailwidget('ryuslash.org', 'ryu'),
picturefix = mailwidget('picturefix', 'pfx'),
gmail = mailwidget('gmail', 'gmail'),
ninthfloor = mailwidget('ninthfloor', '9f')}
myrsslist = wibox.widget.textbox()
myrsslist.set_count = function (self, count)
if count then
self:set_markup(" " .. count
.. " <span face=\"FontAwesome\"></span>")
else
self:set_text("")
end
end
function mailcount()
mailboxes = { 'ryuslash.org', 'picturefix', 'gmail', 'ninthfloor' }
count = 0
for i, box in ipairs(mailboxes) do
count = count + new_mail(box .. '/inbox')
end
return count
end
mymailwidget = wibox.widget.textbox()
mymailwidget.set_count = function (self)
count = mailcount()
if count then
self:set_markup(" " .. count
.. " <span face=\"FontAwesome\"></span> ")
else
self:set_text("")
end
end
mymailwidget:set_count()
function unlocked()
if awful.util.pread("keycheck login") == "Unlocked" then
return ""
else
return ""
end
end
mykeyringlist = wibox.widget.textbox()
mykeyringlist:set_text(unlocked())
mykeyringlist:set_font("FontAwesome")
mykeyringlist:buttons(
awful.util.table.join(
awful.button({ }, 2, function ()
mykeyringlist:set_text(unlocked())
end)
)
)
mykeyringlisttimer = timer({ timeout = 60 })
mykeyringlisttimer:connect_signal(
"timeout",
function ()
mykeyringlist:set_text(unlocked())
end
)
mykeyringlisttimer:start()
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
if #layouts > 1 then
-- 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)))
end
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the wibox
mywibox[s] = awful.wibox({ position = "bottom", screen = s })
-- 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(mykeyringlist)
if hostname == "drd" then right_layout:add(myrsslist) end
right_layout:add(mymailwidget)
-- for k, w in pairs(mailwidgets) do
-- right_layout:add(w)
-- end
right_layout:add(wibox.widget.systray())
end
right_layout:add(mytextclock)
if #layouts > 1 then right_layout:add(mylayoutbox[s]) end
-- 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)
))
-- }}}
function fraise (idx)
awful.client.focus.byidx(idx)
if client.focus then client.focus:raise() end
end
function hpraise ()
awful.client.focus.history.previous()
if client.focus then client.focus:raise() end
end
function ror (prog, class)
function inner ()
local matcher = function (c)
return awful.rules.match(c, { class = class })
end
awful.client.run_or_raise(prog, matcher)
end
return inner
end
-- {{{ Key bindings
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "l", awful.tag.viewprev),
awful.key({ modkey, }, "y", awful.tag.viewnext),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "n", function () fraise(1) end),
awful.key({ modkey, }, "p", function () fraise(-1) end),
-- awful.key({ modkey, }, "w", function () mymainmenu:show() end),
awful.key({ }, "Print", function () awful.util.spawn("scrot") end),
-- awful.key({ "Control", }, "Print", function () awful.util.spawn("scrot -s") end),
awful.key({ modkey, }, "c", ror("urxvtc", "URxvt")),
awful.key({ modkey, }, "e", ror("emacsclient -c", "Emacs")),
awful.key({ modkey, }, "w", ror("conkeror", "Conkeror")),
-- Layout manipulation
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, }, ".", function () oni_focus_relative( 1) end),
awful.key({ modkey, }, ",", function () oni_focus_relative(-1) end),
awful.key({ modkey, "Shift" }, ".", function () awful.client.movetoscreen(client.focus) end),
awful.key({ modkey, "Shift" }, ",", function () awful.client.movetoscreen(client.focus, -1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab", hpraise),
awful.key({ modkey, }, "g", shrink_to_picturefix_width),
-- Standard program
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, }, "j", 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" }, "j", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "j", 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),
-- Prompt
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),
-- Menubar
awful.key({ modkey }, "k", function() menubar.show() end),
awful.key({ "Control", "Mod1" }, "l", function () awful.util.spawn('i3lock -c000000') 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, }, "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)
)
-- 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, 9 do
globalkeys = awful.util.table.join(globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
local tag = awful.tag.gettags(screen)[i]
if tag then
awful.tag.viewonly(tag)
end
end),
-- Toggle tag.
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
local tag = awful.tag.gettags(screen)[i]
if tag then
awful.tag.viewtoggle(tag)
end
end),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = awful.tag.gettags(client.focus.screen)[i]
if tag then
awful.client.movetotag(tag)
end
end
end),
-- Toggle tag.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = awful.tag.gettags(client.focus.screen)[i]
if tag then
awful.client.toggletag(tag)
end
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))
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons } },
{ rule = { class = "MPlayer" },
properties = { floating = true } },
{ rule = { class = "pinentry" },
properties = { floating = true } },
{ rule = { class = "gimp" },
properties = { floating = true } },
{ rule = { instance = "SteamWorldDig.exe" },
properties = { fullscreen = true } },
{ rule = { instance = "RogueLegacy.exe" },
properties = { fullscreen = true } },
{ rule = { class = "Emacs" },
properties = { tag = tags[1][1] } },
{ rule = { class = "URxvt" },
properties = { size_hints_honor = false } },
-- Set Firefox to always map on tags number 2 of screen 1.
-- { rule = { class = "Firefox" },
-- properties = { tag = tags[1][2] } },
}
-- If there is more than one list of tags, add a rule that puts all
-- "Conkeror" windows on tag 1 of screen 2 (the second list of tags).
if #tags > 1 then
awful.rules.rules =
awful.util.table.join(awful.rules.rules,
{ { rule = { class = "Conkeror" },
properties = { tag = tags[2][1] } } })
end
-- }}}
-- {{{ Signals
imp_classes = { "Dia", "Firefox", "Pencil", "Filezilla", "Gimp" }
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c, startup)
if not startup then
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
if not awful.rules.match_any(c, { class = { "Emacs", "Dia" } }) then
awful.client.setslave(c)
end
if awful.rules.match_any(c, { class = imp_classes }) then
tags[c.class] = tags[c.class] or
awful.tag.add(" " .. c.class, {layout = awful.layout.suit.tile})
awful.tag.viewonly(tags[c.class])
awful.client.movetotag(tags[c.class], c)
end
if awful.rules.match(c, { class = "Dia" }) then
awful.tag.setmwfact(0.90, tags["Dia"])
end
-- 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)
client.connect_signal("unmanage", function(c)
if awful.rules.match_any(c, { class = imp_classes }) then
if tags[c.class] and #tags[c.class]:clients() == 0 then
awful.tag.delete(tags[c.class])
tags[c.class] = nil
end
end
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)
-- }}}
-- Set the master window factor so that terminal windows show up with
-- 80 columns on the main screen. This is meant for a 1920x1080
-- resolution.
awful.tag.setmwfact(0.623, tags[1][1])

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Some files were not shown because too many files have changed in this diff Show more