Compare commits

...

78 commits
drd ... phoenix

Author SHA1 Message Date
6c2db7df0e Update dotfiles 2013-05-15 17:35:51 +02:00
8ae90ffbd1 Improve look for phoenix on train 2013-04-12 09:06:24 +02:00
55ca176cd5 Merge remote-tracking branch 'ryuslash/drd' into phoenix
Conflicts:
	.config/herbstluftwm/autostart
	.emacs.d/init.el
	.xinitrc
	.zprofile
	Makefile
	xmonad/xmonad.hs
2013-04-11 15:37:01 +02:00
caf0ec0fb1 X: Use DWM 2013-04-11 15:32:45 +02:00
855fc62edb xinit: Use matchbox 2013-02-16 10:31:05 +01:00
5cc3df232d Remove xmonad config 2013-02-15 15:40:57 +01:00
7559ee8257 Remove xmonad config 2013-02-15 15:40:47 +01:00
934d02bcac Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.config/awesome/rc.lua
	.emacs.d/init.el
	.emacs.d/init.org
	.emacs.d/site-lisp/oni.el
2013-02-15 15:37:42 +01:00
06ff316f7f Emacs: Don't add non-existant dir to load path 2013-01-04 01:06:06 +01:00
12fbc83cc7 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.emacs.d/init.el
2013-01-04 00:06:15 +01:00
ef288f8ad6 RXVT: Turn off visual bell 2012-12-14 15:23:36 +01:00
5cff0a1e09 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	dotfiles.mk
2012-12-14 00:32:05 +01:00
38194c9c34 Change file permissions for .xinitrc to 744
The .xinitrc gets executed, so it must get the correct bit when
installing.
2012-12-05 09:21:35 +01:00
a95c1528ab There is no /usr/local/emacs here 2012-12-05 00:47:40 +01:00
6278e2e634 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.emacs.d/site-lisp/oni.el
2012-12-05 00:44:09 +01:00
fa717d86a0 Merge remote-tracking branch 'origin/master' into phoenix 2012-11-21 01:23:32 +01:00
258cda86ca Merge remote-tracking branch 'origin/master' into phoenix 2012-11-15 00:13:38 +01:00
9c12ab5718 Merge remote-tracking branch 'origin/master' into phoenix 2012-11-14 20:12:55 +01:00
57e1063403 .config/herbstluftwm/autostart 2012-11-08 00:34:15 +01:00
60f8f37817 .emacs.d/snippets/org-mode/heading 2012-11-08 00:32:08 +01:00
96b2ebe6e8 .emacs.d/site-lisp/oni.el 2012-11-08 00:30:19 +01:00
e0b16d97cb .config/herbstluftwm/autostart 2012-11-08 00:29:28 +01:00
cbdfa4cac3 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.emacs.d/site-lisp/oni.el
2012-10-26 01:46:09 +02:00
d6be1ae80f Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.emacs.d/site-lisp/oni.el
	.xinitrc
	.zprofile
2012-10-24 01:36:38 +02:00
ab3e4c680e .xinitrc 2012-10-17 20:32:50 +02:00
5c4c72f56f .emacs.d/init.el 2012-10-17 20:32:31 +02:00
434357f917 .emacs.d/init.el 2012-10-17 09:04:54 +02:00
a38c6eee1a .emacs.d/site-lisp/oni.el 2012-10-17 09:04:32 +02:00
821793e7de Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.xinitrc
2012-10-17 08:48:46 +02:00
862088a691 .gitignore 2012-10-12 19:20:49 +02:00
ff6639d051 .emacs.d/init.el 2012-10-12 10:45:21 +02:00
77c39ea0f0 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.config/cower/config
	.emacs.d/init.el
2012-10-12 08:52:53 +02:00
8bcf0ae40f .xinitrc 2012-10-12 08:46:14 +02:00
52abe4f881 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.config/awesome/rc.lua
2012-10-07 15:23:23 +02:00
5b8d412cf7 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.emacs.d/init.el
2012-09-25 22:20:43 +02:00
b2de3d6412 .emacs.d/init.el 2012-09-25 22:12:45 +02:00
1a767eeab0 Merge remote-tracking branch 'origin/master' into phoenix 2012-09-17 20:32:32 +02:00
aa949b255f .emacs.d/init.el 2012-09-17 20:32:26 +02:00
fa473dd629 .config/awesome/rc.lua 2012-09-17 20:28:13 +02:00
c4ea2643f6 Merge remote-tracking branch 'origin/master' into phoenix
Conflicts:
	.config/herbstluftwm/autostart
	.config/herbstluftwm/panel.sh
2012-09-16 02:07:48 +02:00
72d124100d Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.config/fish/config.fish
	.xinitrc
2012-07-09 19:16:54 +00:00
8b1b423d0a Merge remote-tracking branch 'ryuslash/master' into phoenix 2012-06-21 22:24:29 +00:00
69fd0e5aef Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.xinitrc
2012-06-17 21:28:28 +00:00
f3982b8c33 Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.xinitrc
2012-06-06 23:48:40 +00:00
9fb7650a9d .config/herbstluftwm/autostart 2012-06-03 22:30:34 +02:00
90cccbae8a Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.config/herbstluftwm/autostart
	.xbindkeysrc.scm
	.xinitrc
2012-05-22 14:36:52 +00:00
df1105ec76 .xbindkeysrc.scm 2012-04-19 10:26:03 +00:00
20181fab25 Merge remote-tracking branch 'ryuslash/master' into phoenix
Conflicts:
	.xinitrc
2012-04-19 09:48:26 +00:00
853f43c483 .xinitrc 2012-04-19 09:14:36 +00:00
0b775a872e Merge remote-tracking branch 'ryuslash/master' into phoenix 2012-04-19 09:11:23 +00:00
88a63ffaa3 Merge remote-tracking branch 'github/master' into phoenix
Conflicts:
	.xbindkeysrc.scm
2012-04-15 18:04:13 +00:00
ab76bcaa64 .xinitrc 2012-04-05 14:40:24 +00:00
651ab5625d Merge remote-tracking branch 'github/master' into phoenix 2012-03-27 22:09:16 +02:00
904ab2e1e7 .xinitrc 2012-03-27 22:09:13 +02:00
8b848d08b3 .offlineimaprc 2012-03-20 17:25:18 +01:00
ff81e2f66f Merge remote-tracking branch 'github/master' into phoenix 2012-03-20 17:06:35 +01:00
84e69b2120 Merge remote-tracking branch 'github/master' into phoenix 2012-03-20 17:05:29 +01:00
251077982f Merge remote-tracking branch 'github/master' into phoenix 2012-03-16 22:07:11 +01:00
1fe74dd726 Merge remote-tracking branch 'refs/remotes/github/master' into phoenix 2012-03-13 19:34:44 +01:00
20d500539d Merge remote-tracking branch 'refs/remotes/github/master' into phoenix 2012-03-11 11:39:43 +01:00
4ce7e72c08 Merge remote-tracking branch 'gitorious/master' into phoenix 2012-03-09 21:40:06 +01:00
b4ee071aeb Merge remote-tracking branch 'gitorious/master' into phoenix 2012-03-09 21:38:38 +01:00
922b5fda86 .xbindkeysrc.scm 2012-02-28 20:08:19 +01:00
8f46bf4cbb .xbindkeysrc.scm 2012-02-28 20:06:07 +01:00
fd2fd41a8e .xbindkeysrc.scm 2012-02-28 20:03:31 +01:00
883ec95f09 Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-28 16:19:29 +01:00
fada655438 Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-25 21:53:39 +01:00
ab27e7a3bb .xinitrc 2012-02-24 00:23:42 +01:00
f1532bd578 Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-24 00:22:49 +01:00
4857418dbd Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-14 11:30:13 +01:00
a925132b75 Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-07 20:17:53 +01:00
db354a5b6d Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-07 01:23:07 +01:00
b7dad365c8 PANEL: Don't show as many services 2012-02-06 23:56:33 +01:00
6e999ca93d Merge remote-tracking branch 'gitorious/master' into phoenix 2012-02-06 23:47:14 +01:00
13b9c2c80d Merge remote-tracking branch 'gitorious/master' into phoenix 2012-01-31 16:30:30 +01:00
79fa706eeb Merge remote-tracking branch 'gitorious/master' into phoenix 2012-01-30 00:55:30 +01:00
887ddee93c Merge remote-tracking branch 'gitorious/master' into phoenix 2012-01-30 00:24:28 +01:00
6b6484e83c .config/herbstluftwm/autostart 2012-01-29 11:54:11 +01:00
137 changed files with 2203 additions and 4983 deletions

View file

@ -20,37 +20,37 @@ urxvt.keysym.M-s: perl:keyboard-select:search
urxvt.keysym.M-u: perl:url-select:select_next
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=18
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=18
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=18
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=12
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=12
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=12
urxvt.depth: 32
urxvt.background: #111113
urxvt.foreground: #eeeeec
urxvt.background: #bfbfbf
urxvt.foreground: #111111
urxvt.color0: #111113
urxvt.color8: #eeeeec
urxvt.color0: #3d3d3d
urxvt.color8: #111111
urxvt.color1: #734a4a
urxvt.color9: #bf7d7d
urxvt.color1: #543f3f
urxvt.color9: #541515
urxvt.color2: #52734a
urxvt.color10: #8abf6d
urxvt.color2: #43543f
urxvt.color10: #225415
urxvt.color3: #6b734a
urxvt.color11: #b2bf6d
urxvt.color3: #50543f
urxvt.color11: #485415
urxvt.color4: #4a5b73
urxvt.color12: #6d97bf
urxvt.color4: #3f4854
urxvt.color12: #152e54
urxvt.color5: #6b4a73
urxvt.color13: #b27dbf
urxvt.color5: #503f54
urxvt.color13: #481554
urxvt.color6: #4a7373
urxvt.color14: #7dbfbf
urxvt.color6: #3f5454
urxvt.color14: #155454
urxvt.color7: #222224
urxvt.color15: #a5a5a4
urxvt.color7: #969696
urxvt.color15: #ededed
Xft.antialias: true
Xft.rgba: rgb
@ -61,17 +61,17 @@ Xft.hintstyle: hintslight
Emacs.menuBar: off
Emacs.toolbar: off
Emacs.useXIM: off
Emacs.background: #111113
Emacs.background: #bfbfbf
Emacs.borderWidth: 0
Emacs.font: Envy Code R-13
Emacs.foreground: #eeeeec
Emacs.font: Envy Code R-10
Emacs.foreground: #111111
Emacs.internalBorder: 0
Emacs.paneFont: Envy Code R-13
Emacs.pointerColor: #eeeeec
Emacs*menu*font: Envy Code R-13
Emacs*menu*foreground: #eeeeec
Emacs*menu*background: #222224
Emacs*menu*buttonForeground: #a5a5a4
Emacs.paneFont: Envy Code R-10
Emacs.pointerColor: #111111
Emacs*menu*font: Envy Code R-10
Emacs*menu*foreground: #111111
Emacs*menu*background: #696969
Emacs*menu*buttonForeground: #969696
Emacs*menu*verticalSpacing: 0
Emacs*menu*shadowThickness: 1
Emacs*menu*margin: 0

View file

@ -1,5 +1,4 @@
DESTDIR:=$(DESTDIR)/.config
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
newsbeuter zathura
SUBDIR=.config
modules=cower dunst 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 <nberthier@gmail.com>
-- @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,424 +0,0 @@
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local lfs = require("lfs")
awful.rules = require("awful.rules")
require("awful.autofocus")
local maildir_base = os.getenv("HOME") .. "/documents/mail/"
function ror(program, cls)
local rorfunc = function ()
local matcher = function (c)
return awful.rules.match(c, { class = cls })
end
awful.client.run_or_raise(program, matcher)
end
return rorfunc
end
function ror_combo(mod, key, program, class)
return awful.util.table.join(
awful.key(mod, key, ror(program, class)),
awful.key(awful.util.table.join(mod, { "Shift" }), key,
function () awful.util.spawn(program) end))
end
function new_mail(maildir)
local count = 0
for file in lfs.dir(maildir_base .. maildir .. "/new") do
if file ~= "." and file ~= ".." then
count = count + 1
end
end
for file in lfs.dir(maildir_base .. maildir .. "/cur") do
if string.sub(file, -1) ~= "S" and file ~= "."
and file ~= ".." then
count = count + 1
end
end
return count
end
----- Error handling
-- Check if awesome encountered an error during startup and fell back
-- to another config (This code will only ever execute for the
-- 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, and wallpapers
beautiful.init("/usr/share/awesome/themes/default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "urxvt"
editor = os.getenv("EDITOR") or "nano"
editor_cmd = terminal .. " -e " .. editor
----- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt. If
-- you do not like this or do not have such a key, I suggest you to
-- remap Mod4 to another key using xmodmap or other tools. However,
-- you can use another modifier like Mod1, but it may interact with
-- others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
local 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.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.floating
}
----- Wallpaper
if beautiful.wallpaper then
for s = 1, screen.count() do
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end
end
----- Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
end
----- Menu
-- 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 = {}
mytasklist = {}
mymaillist = wibox.widget.textbox()
mymaillist:set_text(
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
new_mail('ryuslash.org/inbox'),
new_mail('gmail/inbox'),
new_mail('aethon/inbox'),
new_mail('ninthfloor/inbox')))
mymaillisttimer = timer({ timeout = 60 })
mymaillisttimer:connect_signal(
"timeout",
function ()
mymaillist:set_text(
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
new_mail('ryuslash.org/inbox'),
new_mail('gmail/inbox'),
new_mail('aethon/inbox'),
new_mail('ninthfloor/inbox')))
end)
mymaillisttimer:start()
mytodolist = wibox.widget.textbox()
mytodolist:set_text(
string.format(" ptodo: %d wtodo: %d",
awful.util.pread("todo-count t"),
awful.util.pread("todo-count w")))
mytodolisttimer = timer({ timeout = 60 * 60 })
mytodolisttimer:connect_signal(
"timeout",
function ()
mytodolist:set_text(
string.format(" pers: %d work: %d",
awful.util.pread("todo-count t"),
awful.util.pread("todo-count w")))
end)
mytodolisttimer:start()
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt()
-- Create an imagebox widget which will contains an icon
-- indicating which layout we're using. We need one layoutbox per
-- screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(
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 = "top", 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(mytodolist)
right_layout:add(mymaillist)
right_layout:add(wibox.widget.systray())
end
right_layout:add(mytextclock)
right_layout:add(mylayoutbox[s])
-- Now bring it all together (with the tasklist in the middle)
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
mywibox[s]:set_widget(layout)
end
----- Key bindings
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "Left", awful.tag.viewprev),
awful.key({ modkey, }, "Right", awful.tag.viewnext),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "n",
function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "p",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
-- 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, "Control" }, "n",
function () awful.screen.focus_relative(1) end),
awful.key({ modkey, "Control" }, "p",
function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
awful.key({ modkey, }, "Return",
function () awful.util.spawn(terminal) end),
awful.key({ modkey, "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" }, "j", 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),
ror_combo({ modkey }, "e", 'emacsclient -ca emacs', 'Emacs'),
ror_combo({ modkey }, "c", 'urxvt', 'URxvt'),
ror_combo({ modkey }, "w", 'conkeror', 'Conkeror'),
awful.key({ "Control", "Mod1" }, "l",
function () awful.util.spawn('i3lock -c 000000') end))
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",
function () awful.screen.focus_relative(1) end),
awful.key({ modkey, "Shift" }, "o", awful.client.movetoscreen),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "m",
function (c)
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
-- 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 = awful.client.focus.filter,
keys = clientkeys } },
{ rule = { class = "pinentry" },
properties = { floating = true } },
{ rule = { class = "gimp" },
properties = { floating = true } },
{ rule = { class = "Conkeror" },
properties = { floating = false,
tag = tags[2][1] } },
-- Set Firefox to always map on tags number 2 of screen 1.
-- { rule = { class = "Firefox" },
-- properties = { tag = tags[1][2] } },
}
----- Signals
-- 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.
-- 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.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)

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,3 +0,0 @@
Background images:
Mikael Eriksson <mikael_eriksson@miffe.org>
Licensed under CC-BY-SA-3.0

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,25 +0,0 @@
;; -*- mode: lisp; -*-
(in-package :clfswm)
(defun start-i3lock ()
"Run i3lock"
(do-shell "exec i3lock -c 000000"))
(defun start-i3lock-2 ()
"Run i3lock in second mode"
(setf *second-mode-leave-function* 'start-i3lock)
(leave-second-mode))
(defun my-bindings ()
(define-main-key ("l" :mod-1 :control) 'start-i3lock)
(define-second-key ("l" :mod-1 :control) 'start-i3lock-2))
(add-hook *binding-hook* 'my-bindings)
;; (defun my-init-hook ()
;; (add-frame (create-frame :name "The Gimp" :x 0.6 :y 0 :w 0.3 :h 0.2) *root-frame*))
;;y (add-hook *init-hook* 'my-init-hook)
;;(setf *frame-background* "#252a2b")
;;(setf *frame-foreground* "#eeeeec")

View file

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

View file

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

View file

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

View file

@ -1,22 +0,0 @@
[Bindings]
launch=<Super>r
[Matching]
strict=false
executable=true
[Update]
interval=15
[Icons]
show=true
cache=true
[Border]
color=#000000
width=1
[Window]
width=200
height=100

View file

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

View file

@ -1,76 +0,0 @@
function fish_prompt -d "Write out the prompt"
set last_status $status
set current_directory (prompt_pwd)
set git_branch (git branch --contains HEAD 2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
set cnormal (set_color white)
echo -n $cnormal
printf '%s%s%s' (set_color magenta) (hostname|cut -d . -f 1) $cnormal
if test -n "$current_directory"
printf ' %s%s%s' (set_color $fish_color_cwd) $current_directory $cnormal
end
if test -n "$git_branch"
printf '@%s%s%s' (set_color yellow) $git_branch $cnormal
end
if test $last_status -eq 0
printf '%s' (set_color --bold green)
else
printf '%s' (set_color --bold red)
end
printf '>%s ' (set_color normal)
end
function grep
/bin/grep --color=always $argv
end
function less
/bin/less -FXRS $argv
end
function ls
/bin/ls -F --color=always $argv
end
function mysql
/usr/bin/mysql --pager $argv
end
function slrn
set -x NNTPSERVER 'news.gmane.org'
/usr/bin/slrn $argv
end
function shutdown
dbus-send --system --print-reply \
--dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager \
org.freedesktop.ConsoleKit.Manager.Stop
end
function reboot
dbus-send --system --print-reply \
--dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager \
org.freedesktop.ConsoleKit.Manager.Restart
end
function engage
play -n -c1 synth whitenoise band -n 100 20 band -n 50 20 gain +25 fade h 1 864000 1
end
function lscompmod -d "List kernel modules used by hardware"
lspci -mvk | awk '/^Module/ {print $2}' | sort -u
end
set -x PAGER 'less -FXRS'
set -x BROWSER conkeror
set -x EDITOR 'emacsclient -c -a emacs'
set -x PATH ~/usr/bin $PATH /sbin /usr/sbin /usr/local/emacs/bin/ \
/usr/local/bin /usr/local/stumpwm/bin /usr/local/scwm/bin \
/usr/local/clfswm/bin /opt/plan9/bin

View file

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

View file

@ -1,122 +0,0 @@
#!/bin/bash
# this is a simple config for herbstluftwm
function hc() {
herbstclient "$@"
}
hc emit_hook reload
# remove all existing keybindings
hc keyunbind --all
# keybindings
Mod=Mod4
hc keybind $Mod-Shift-q quit
hc keybind $Mod-Shift-r reload
hc keybind $Mod-Shift-c close
hc keybind $Mod-c spawn urxvt
hc keybind $Mod-e spawn emacsclient -ca emacs
hc keybind $Mod-w spawn conkeror
# tags
TAG_NAMES=( {1..9} )
TAG_KEYS=( {1..9} 0 )
hc rename default "${TAG_NAMES[0]}" || true
for i in ${!TAG_NAMES[@]} ; do
hc add "${TAG_NAMES[$i]}"
key="${TAG_KEYS[$i]}"
if ! [ -z "$key" ] ; then
hc keybind "$Mod-$key" use_index "$i"
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# cycle through tags
hc keybind $Mod-period use_index +1 --skip-visible
hc keybind $Mod-comma use_index -1 --skip-visible
hc keybind $Mod-Right use_index +1 --skip-visible
hc keybind $Mod-Left use_index -1 --skip-visible
# layouting
hc keybind $Mod-r remove
hc keybind $Mod-space cycle_layout 1
hc keybind $Mod-u split vertical 0.5
hc keybind $Mod-o split horizontal 0.5
hc keybind $Mod-s floating toggle
# hc keybind $Mod-f fullscreen toggle
# hc keybind $Mod-p pseudotile toggle
# resizing
RESIZESTEP=0.05
hc keybind $Mod-Control-h resize left +$RESIZESTEP
hc keybind $Mod-Control-j resize down +$RESIZESTEP
hc keybind $Mod-Control-k resize up +$RESIZESTEP
hc keybind $Mod-Control-l resize right +$RESIZESTEP
# mouse
hc mouseunbind --all
hc mousebind $Mod-Button1 move
hc mousebind $Mod-Button2 resize
hc mousebind $Mod-Button3 zoom
# focus
hc keybind $Mod-BackSpace cycle_monitor
hc keybind $Mod-Tab cycle_all +1
hc keybind $Mod-Shift-Tab cycle_all -1
# hc keybind $Mod-c cycle
hc keybind $Mod-b focus left
hc keybind $Mod-n focus down
hc keybind $Mod-p focus up
hc keybind $Mod-f focus right
hc keybind $Mod-i jumpto urgent
hc keybind $Mod-Shift-h shift left
hc keybind $Mod-Shift-j shift down
hc keybind $Mod-Shift-k shift up
hc keybind $Mod-Shift-l shift right
# colors
hc set frame_border_active_color '#222222'
hc set frame_border_normal_color '#101010'
hc set frame_bg_normal_color '#565656'
hc set frame_bg_active_color '#345F0C'
hc set frame_border_width 1
hc set window_border_width 3
hc set window_border_inner_width 1
hc set window_border_normal_color '#454545'
hc set window_border_active_color '#9fbc00'
hc set always_show_frame 1
hc set frame_gap 4
# add overlapping window borders
hc set window_gap -2
hc set frame_padding 2
hc set smart_window_surroundings 0
hc set smart_frame_surroundings 1
hc set mouse_recenter_gap 0
# rules
hc unrule -F
#hc rule class=XTerm tag=3 # move all xterms to tag 3
hc rule focus=off # normally do not focus new clients
# give focus to most common terminals
hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK)' manage=off
# unlock, just to be sure
hc unlock
herbstclient set tree_style '╾│ ├└╼─┐'
# do multi monitor setup here, e.g.:
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
# or simply:
# hc detect_monitors
hc set_monitors 1920x1080+0+0 1680x1050+1920+0
hc pad 0 21

View file

@ -1,150 +0,0 @@
#!/bin/bash
monitor=${1:-0}
monitor2=1
geometry=( $(herbstclient monitor_rect "$monitor") )
if [ -z "$geometry" ] ;then
echo "Invalid monitor $monitor"
exit 1
fi
# geometry has the format: WxH+X+Y
x=${geometry[0]}
width=${geometry[2]}
height=12
y=0 #$(expr ${geometry[3]} - $height)
tag_width=40
font="-misc-tamsyn-medium-r-normal-*-14-*-*-*-*-*-iso8859-*"
selcolor='#24c6e0'
locolor='#657b83'
bgcolor='#002b36'
hicolor="#808080"
urcolor="#e0c625"
function uniq_linebuffered() {
awk '$0 != l { print ; l=$0 ; fflush(); }' "$@"
}
function print_tags() {
# draw tags
echo -n "$separator"
for i in "${TAGS[@]}" ; do
if [[ "${TAGS2[@]}" == *"#${i:1}"* ]]; then
echo -n "^bg($selcolor)^fg(#000000) ${i:1} ^fg()^bg()"
elif [[ "${TAGS2[@]}" == *"+${i:1}"* ]]; then
echo -n "^bg($locolor)^fg(#000000) ${i:1} ^fg()^bg()"
else
case ${i:0:1} in
'#')
echo -n "^bg($selcolor)^fg(#000000) ${i:1} ^fg()^bg()"
;;
'+')
echo -n "^bg($locolor)^fg(#000000) ${i:1} ^fg()^bg()"
;;
':')
echo -n "^bg($hicolor)^fg(#000000) ${i:1} ^fg()^bg()"
;;
'!')
echo -n "^bg($urcolor)^fg(#000000) ${i:1} ^fg()^bg()"
;;
*)
echo -n "^bg($bgcolor)^fg(#ffffff) ${i:1} ^fg()^bg()"
;;
esac
fi
echo -n "$separator"
done
}
function print_mailboxes() {
declare -A mailnames
mailboxes=(ninthfloor gmail aethon ryuslash.org)
mailnames=(
[ninthfloor]="9f"
[gmail]="gm"
[aethon]="aet"
[ryuslash.org]="ryu")
mailtxt=""
for j in "${mailboxes[@]}"; do
mailfile="$HOME/documents/mail/$j/inbox/new/"
mailcnt=$(ls $mailfile | wc -l)
if [ $mailcnt -gt 0 ]; then
mailsha1=$(echo $j | sha1sum)
mailcolor="#${mailsha1:0:6}"
else
mailcolor=$bgcolor
fi
mailtxt="$mailtxt${separator}^bg($mailcolor)^fg(#ffffff) ${mailnames[$j]} ^fg()^bg()"
done
mailtxt_only=$(echo -n "$mailtxt" | sed 's.\^[^(]*([^)]*)..g')
let mailtxt_width=$(textwidth "$font" "$mailtxt_only")+10
echo -n "^p(_RIGHT)^p(-$mailtxt_width)$mailtxt"
}
function print_services() {
services=(emacs httpd mysqld dunst xbindkeys mpdscribble sshd mpd)
servicetxt=""
for j in "${services[@]}"; do
servicetxt="$servicetxt$separator$(status $j)"
done
servicetxt_only=$(echo -n "$servicetxt" | sed 's.\^[^(]*([^)]*)..g')
let servicetxt_width=($(textwidth "$font" "$servicetxt_only")+7)/2
echo -n "^p(_CENTER)^p(-$servicetxt_width)$servicetxt"
}
function status()
{
running=$(${1}_running 2>/dev/null || pidof $1)
if [ -n "$running" ]; then
color="darkgreen"
else
color="darkred"
fi
echo -n "^bg($color)^fg(#ffffff) $1 ^fg()^bg()"
}
function emacs_running()
{
ps ax | awk '{ print $5 " " $6 }' | grep -E "^emacs --daemon"
}
{
childpid=$!
herbstclient --idle
kill $childpid
} 2> /dev/null | {
TAGS=( $(herbstclient tag_status $monitor) )
TAGS2=( $(herbstclient tag_status $monitor2) )
separator="^fg($bgcolor)^ro(1x$height)^fg()"
print_tags
print_services
print_mailboxes
echo
# wait for next event
read line || break
cmd=( $line )
# find out event origin
case "${cmd[0]}" in
tag*)
TAGS=( $(herbstclient tag_status $monitor) )
TAGS2=( $(herbstclient tag_status $monitor2) )
;;
quit_panel)
exit
;;
esac
sleep 1s
} 2> /dev/null | dzen2 -w $width -x $x -y $y -fn "$font" -h $height \
-ta l -bg "$bgcolor"
# Local Variables:
# eval: (git-auto-commit-mode 1)
# End:

View file

@ -1,3 +0,0 @@
cache.*
credentials
history.*

View file

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

View file

@ -1,27 +0,0 @@
auto-reload yes
reload-threads 3
reload-time 60
browser firefox
confirm-exit yes
feedlist-format "%-35t %?d?- %-35d&? %> %u"
articlelist-format "%-4i %f %t"
feedlist-title-format "%N %V %> %u feeds with new articles"
articlelist-title-format "%T"
max-items 500
show-read-feeds no
show-read-articles no
html-renderer "w3m -dump -T text/HTML -cols 72"
color listfocus default red
color info default black bold
highlight article "^(Feed|Title|Author|Link|Date):.*" yellow default bold
article-sort-order date-desc

View file

@ -1,176 +0,0 @@
# -*- mode: conf; eval: (git-auto-commit-mode 1) -*-
http://ryuslash.ninth.su/blog/blog.xml
#-----[ Followed projects ]-------------------------------------------
# https://github.com/ryuslash.private.atom?token=7362ca0604736cd92b5441949e8c9cd4
# http://gitorious.org/~ryuslash/watchlist.atom
#-----[ Blogs ]-------------------------------------------------------
# http://julien.danjou.info/blog/index.xml blogs
# http://kakaroto.homelinux.net/feed/ blogs
# http://awhan.wordpress.com/feed/ blogs
http://beej.us/blog/feed/ blogs
# http://torvalds-family.blogspot.com/feeds/posts/default blogs
# http://emacs.wordpress.com/feed/ blogs
http://feedproxy.google.com/SaferCode blogs
# http://blog.gitorious.org/feed/ blogs
# http://dieter.plaetinck.be/index.rss blogs
http://irreal.org/blog/?feed=rss2
# Reddit
# http://www.reddit.com/r/announcements/new/.rss
# http://www.reddit.com/r/archlinux/new/.rss
# http://www.reddit.com/r/blog/new/.rss
# http://www.reddit.com/r/c_language/new/.rss
# http://www.reddit.com/r/C_Programming/new/.rss
# http://www.reddit.com/r/coding/new/.rss
# http://www.reddit.com/r/commandline/new/.rss
# http://www.reddit.com/r/cpp/new/.rss
# http://www.reddit.com/r/csharp/new/.rss
# http://www.reddit.com/r/django/new/.rss
# http://www.reddit.com/r/emacs/new/.rss
# http://www.reddit.com/r/ExpertProgramming/new/.rss
# http://www.reddit.com/r/Fedora/new/.rss
# http://www.reddit.com/r/git/new/.rss
# http://www.reddit.com/r/golang/new/.rss
# http://www.reddit.com/r/javascript/new/.rss
# http://www.reddit.com/r/linux/new/.rss
# http://www.reddit.com/r/linux_gaming/new/.rss
# http://www.reddit.com/r/LinuxHacking/new/.rss
# http://www.reddit.com/r/maemo/new/.rss
# http://www.reddit.com/r/n900/new/.rss
# http://www.reddit.com/r/opensource/new/.rss
# http://www.reddit.com/r/PHP/new/.rss
# http://www.reddit.com/r/programming/new/.rss
# http://www.reddit.com/r/Python/new/.rss
# http://www.reddit.com/r/scheme/new/.rss
# http://www.reddit.com/r/systems/new/.rss
# http://www.reddit.com/r/wayland/new/.rss
#-----[ CVS Changes ]-------------------------------------------------
# http://git.naquadah.org/?p=naquadah-theme.git;a=rss cvs
#http://git.naquadah.org/?p=rainbow.git;a=rss cvs
# http://code.google.com/feeds/p/autopair/svnchanges/basic cvs
# http://git.cs.fau.de/?p=re06huxa/herbstluftwm;a=atom cvs
# https://github.com/knopwob/dunst/commits/master.atom cvs
# https://github.com/akrennmair/newsbeuter/commits/master.atom
# http://repo.or.cz/w/conkeror.git/atom
# https://github.com/mooz/keysnail/commits/master.atom
#-----[ Programming ]-------------------------------------------------
# http://www.reddit.com/r/cpp/.rss devel
# http://services.devx.com/outgoing/devxfeed.xml devel
#http://www.dzone.com/feed/frontpage/rss.xml devel
# http://www.reddit.com/r/ExpertProgramming/.rss devel
# http://www.reddit.com/r/programming/.rss devel
# http://steve-yegge.blogspot.com/feeds/posts/default devel
# http://www.reddit.com/r/systems/.rss devel
# http://www.reddit.com/r/coding/.rss devel
# http://www.reddit.com/r/git/.rss devel
# http://www.reddit.com/r/C_Programming/.rss devel
# http://feeds.feedburner.com/FalloutTutorials devel
# http://www.devarticles.com/rss.xml devel
# http://www.script-tutorials.com/feed/rss/
# http://news.ycombinator.com/rss
# https://www.djangoproject.com/rss/community/q-and-a/
#-----[ Linux and FLOSS ]---------------------------------------------
# http://www.reddit.com/r/commandline/.rss linux
# http://www.desktoplinux.com/backend/headlines.rss linux
# http://distrowatch.com/news/dw.xml linux
# http://www.howtoforge.com/node/feed linux
# http://www.ibm.com/developerworks/views/linux/rss/libraryview.jsp?type_by=Articles linux
# http://www.ibm.com/developerworks/views/linux/rss/libraryview.jsp?type_by=Tutorials linux
# http://feeds.feedburner.com/LinuxMagazine linux
# http://www.linuxprogrammingblog.com/rss.xml linux
# http://linuxtoday.com/backend/biglt.rss linux
# http://www.linux.com/rss/feeds.php linux
# http://www.linuxinsider.com/perl/syndication/rssfull.pl linux
# http://lwn.net/headlines/newrss linux
# http://blogs.zdnet.com/open-source/wp-rss2.php linux
# http://ostatic.com/blog/feed linux
# http://www.reddit.com/r/linux/.rss linux
# http://www.theopenforce.com/atom.xml linux
# http://www.ubuntugeek.com/feed/ linux
# http://www.warpedsystems.sk.ca/backend/index.xml linux
# http://www.reddit.com/r/archlinux/.rss linux
# http://www.reddit.com/r/linuxquestions/.rss linux
http://www.echolinux.com/rss
# http://www.tuxradar.com/rss
#-----[ Emacs ]-------------------------------------------------------
# http://wordpress.com/tag/emacs/feed/ emacs
# http://www.reddit.com/r/emacs/.rss emacs
# http://planet.emacsen.org/atom.xml emacs
# http://emacsblog.org/feed/ emacs
# http://www.emacswiki.org/emacs?action=rss emacs
# http://feeds.feedburner.com/XahsEmacsBlog
# http://www.masteringemacs.org/feed/
# http://wikemacs.org/wiki/index.php?title=Special:RecentChanges&feed=atom
# http://stackoverflow.com/feeds/tag?tagnames=emacs&sort=newest
# http://stackoverflow.com/feeds/tag?tagnames=elisp&sort=newest
#-----[ N900 ]--------------------------------------------------------
# http://www.reddit.com/r/n900/.rss n900
# http://maemo.org/news/planet-maemo/rss.xml n900
# http://www.reddit.com/r/maemo/.rss n900
#-----[ iPhone ]------------------------------------------------------
http://icodeblog.com/feed/ iphone
http://iphonesdkdev.blogspot.com/feeds/posts/default iphone
http://iphonedevelopertips.com/feed iphone
#-----[ Other Software ]----------------------------------------------
# http://www.archlinux.org/feeds/news/ software
# http://gitlog.wordpress.com/feed/ software
# http://rollingrelease.com/?feed=rss software
# http://sourceforge.net/export/rss2_keepsake.php?group_id=134378 software
# http://valajournal.blogspot.com/feeds/posts/default software
# http://www.gimp.org/news.rdf
http://stackoverflow.com/feeds/tag?tagnames=git&sort=newest
# http://git.savannah.gnu.org/cgit/identica-mode.git/atom/?h=master
#-----[ Games ]-------------------------------------------------------
# http://feeds.feedburner.com/qj/qjnet game
# http://www.swtor.com/feed/news/all
#-----[ Funny ]-------------------------------------------------------
# http://feeds.feedburner.com/ClientsFromHell funny
#http://feeds.feedburner.com/VeryDemotivational funny
#-----[ Comics ]------------------------------------------------------
# http://feeds.feedburner.com/AbstruseGoose comics
# http://www.cad-comic.com/rss/rss.xml comics
# http://feeds.dilbert.com/DilbertDailyStrip comics
# http://feedproxy.google.com/uclick/garfield comics
# http://feeds.feedburner.com/GeekAndPoke comics
# http://feeds.feedburner.com/NotInventedHere comics
# http://syndicated.livejournal.com/oglaf/data/rss comics
# http://feeds.feedburner.com/omaketheater comics
# http://www.penny-arcade.com/rss.xml comics
# http://www.pvponline.com/rss/?section=article comics
# http://www.questionablecontent.net/QCRSS.xml comics
# http://feeds.feedburner.com/ScenesFromAMultiverse comics
# http://www.vgcats.com/vgcats.rdf.xml comics
# http://feeds2.feedburner.com/virtualshackles comics
# http://xkcd.com/rss.xml comics
# http://feeds.feedburner.com/maximumble?format=xml comics
http://feeds.feedburner.com/ProgsLife comics
# http://www.rsspect.com/rss/asw.xml
# http://pbfcomics.com/feed/feed.xml
http://feeds.feedburner.com/MinionComics
# http://www.savagechickens.com/feed
# http://feeds.feedburner.com/basiccomic
#-----[ Misc ]--------------------------------------------------------
http://wallbase.cc/rss misc
http://www.mailinator.com/rss.jsp?email=ryuslash misc
# http://www.reddit.com/r/unixporn/.rss misc
#-----[ New ]----------------------------------------------------------
# http://rss.feedsportal.com/c/32569/f/491734/index.rss
# http://feeds.feedburner.com/TheGeekStuff
# http://feeds2.feedburner.com/Command-line-fu
# http://feeds.feedburner.com/GoDjango
# http://identity.mozilla.com/rss

View file

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

View file

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

View file

@ -2,7 +2,6 @@ require("content-policy.js");
require("favicon");
load_paths.push("file:///usr/local/clark/share/conkeror/modules/");
theme_load_paths.push("/home/slash/.conkerorrc/themes/");
require("clark");
@ -148,11 +147,10 @@ define_webjump("chickadee",
// content_policy_bytype_table.object = oni_block_flash;
cwd = make_file("/home/slash/downloads/");
hint_digits = "arstdhneio";
hint_digits = "asdfghjkl;";
read_buffer_show_icons = true;
title_format_fn = ext_title_format;
url_remoting_fn = load_url_in_new_buffer;
markam_program = "/home/slash/projects/markam/src/markam";
define_key(content_buffer_normal_keymap, "C-x C-b", "switch-to-buffer");
define_key(content_buffer_normal_keymap, "C-y", "paste-url-new-buffer");
@ -171,7 +169,6 @@ 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("yoshi");
external_content_handlers.set("application/pdf", "zathura");
external_content_handlers.set("application/vnd.ms-excel", "libreoffice");
@ -305,7 +302,3 @@ register_user_stylesheet(
"}"
)
);
oni_add_sheet("github.css");
oni_add_sheet("help.css");
oni_add_sheet("git-scm.css");

View file

@ -1 +0,0 @@
*.css

View file

@ -1,7 +0,0 @@
DESTDIR:=$(DESTDIR)/styles
objects=github.css help.css git-scm.css
include ../../dotfiles.mk
$(objects): %.css: %.less
lessc -x $^ > $@

View file

@ -1,4 +0,0 @@
@import "tango";
@monospace-font: "Envy Code R";
@background: #111113;

View file

@ -1,18 +0,0 @@
@import "base";
@-moz-document domain(git-scm.com) {
.book#main {
background: @background !important;
color: @aluminium-1 !important;
code, pre {
background: @aluminium-6 !important;
color: @aluminium-2 !important;
font-family: @monospace-font !important;
}
&, code, pre {
border: none !important;
}
}
}

View file

@ -1,162 +0,0 @@
@import "base";
@-moz-document url("https://github.com/"), url("https://github.com/dashboard") {
#dashboard {
.filter-bar {
background: @aluminium-5 !important;
border-bottom: none !important;
li a.filter_selected {
color: @aluminium-1 !important;
}
}
.repos {
border: none !important;
background-color: @aluminium-6 !important;
.bottom-bar {
background-color: @aluminium-5 !important;
}
.top-bar {
background: @aluminium-5 !important;
border-bottom: none !important;
}
h2 {
color: inherit !important;
}
}
ul.repo_list li {
&.private {
background: @aluminium-5 !important;
}
a {
border-width: 0 !important;
}
}
}
#footer {
text-shadow: none !important;
}
.button .minibutton {
background: @aluminium-6 !important;
}
.header {
background: @aluminium-5 !important;
color: @aluminium-1 !important;
border-bottom: none !important;
text-shadow: none !important;
.divider-vertical {
background: @aluminium-5 !important;
border-right: none !important;
}
.top-nav a,
.topsearch a#advanced_search,
#user-links a {
color: @aluminium-1 !important;
}
}
.markdown-body {
code, tt {
background-color: @aluminium-5 !important;
border: none !important;
color: @aluminium-1 !important;
font-family: @monospace-font !important;
}
}
.minibutton.dark-grey {
backgrond: @aluminium-6 !important;
}
.news {
.alert {
border-top: none !important;
.branch-info,
.pull-info {
background: @aluminium-5 !important;
color: @aluminium-1 !important;
}
.gravatar {
background: none !important;
}
.simple .title {
color: @aluminium-1 !important;
}
}
.commits li img {
background: none !important;
}
blockquote {
color: @aluminium-1 !important;
}
}
.pagehead .container > ul.tabs {
background: @aluminium-6 !important;
border: none !important;
li a {
text-shadow: none !important;
border: none !important;
&:hover,
&.selected {
background: @aluminium-5 !important;
}
}
}
.pagehead-actions a.feed {
background: @aluminium-5 !important;
border: none !important;
}
.pagination {
background: @aluminium-6 !important;
border: none !important;
a {
text-shadow: none !important;
border-bottom: none !important;
&:hover {
background: @aluminium-5 !important;
}
}
}
a {
color: @orange-1 !important;
&:visited {
color: @plum-1 !important;
}
&.header-logo-blacktocat {
&, &:visited {
color: @aluminium-1 !important;
}
}
}
body {
background-color: @background !important;
color: @aluminium-1 !important;
}
}

View file

@ -1,21 +0,0 @@
@import "base";
@-moz-document url("chrome://conkeror-help/content/help.html") {
body {
background: @background !important;
color: @aluminium-1 !important;
}
a {
color: @orange-1 !important;
&:visited {
color: @plum-1 !important;
}
}
pre, .key {
background: @aluminium-5 !important;
font-family: @monospace-font !important;
}
}

View file

@ -1,27 +0,0 @@
@butter-1: #fce94f;
@butter-2: #edd400;
@butter-3: #c4a000;
@orange-1: #fcaf3e;
@orange-2: #f57900;
@orange-3: #ce5c00;
@chocolate-1: #e9b96e;
@chocolate-2: #c17d11;
@chocolate-3: #8f5902;
@chameleon-1: #8ae234;
@chameleon-2: #73d216;
@chameleon-3: #4e9a06;
@sky-blue-1: #729fcf;
@sky-blue-2: #3465a4;
@sky-blue-3: #204a87;
@plum-1: #ad7fa8;
@plum-2: #75507b;
@plum-3: #5c3566;
@scarlet-red-1: #ef2929;
@scarlet-red-2: #cc0000;
@scarlet-red-3: #a40000;
@aluminium-1: #eeeeec;
@aluminium-2: #d3d7cf;
@aluminium-3: #babdb6;
@aluminium-4: #888a85;
@aluminium-5: #555753;
@aluminium-6: #2e3436;

View file

@ -1,4 +0,0 @@
DESTDIR:=$(DESTDIR)/themes
modules=naquadah yoshi
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

View file

@ -1,36 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* The "background" behind the scrolling part of the scrollbar. */
scrollbar {
background-color: #222;
}
/* corner between horizontal and vertical scrollbars */
scrollcorner {
background-color: black;
}
/* The scroll up/down buttons. */
scrollbarbutton {
background-color: #666;
}
/* The actual scrolling part of the scrollbar. */
thumb {
background-color: #666;
}
thumb, scrollbarbutton {
-moz-border-bottom-colors: #000 #333;
-moz-border-left-colors: #aaa #888;
-moz-border-right-colors: #000 #333;
-moz-border-top-colors: #aaa #888;
}
scrollbarbutton:hover:active, scrollbarbutton[active="true"] {
-moz-border-bottom-colors: #aaa #888;
-moz-border-left-colors: #000 #333;
-moz-border-right-colors: #aaa #888;
-moz-border-top-colors: #000 #333;
}

View file

@ -1,17 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.panel {
border-top: 4px double #333333;
color: white;
background-color: black;
}
.panel .panel-row-label {
font-weight: bold;
}
.panel .url-panel-label {
font-weight: bold;
}

View file

@ -1,52 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#minibuffer {
background-color: #252A2E;
border: 0px none #444;
border-top: 0;
color: #EEEEEC;
font: 11px Tahoma;
}
#minibuffer-input, #minibuffer-input * {
color: #EEEEEC;
}
#minibuffer-prompt {
color: #EEEEEC;
}
/* Completions display */
tree.completions treechildren { border: none !important; }
tree.completions treecol { -moz-binding: none !important; }
tree.completions {
-moz-appearance: none !important;
border: 0px none !important;
border-top: 4px double #333333 !important;
background-color: #252A2E !important;
-moz-border-top-colors: -moz-initial !important;
color: #EEEEEC !important;
}
tree.completions treechildren::-moz-tree-row {
background-color: #252A2E !important;
border: none;
}
tree.completions treechildren::-moz-tree-row(current) {
background-color: #0C191C !important;
color: #EEEEEC;
}
tree.completions treechildren::-moz-tree-cell-text(completion-description) {
color: green !important;
font-weight: bold !important;
}
tree.completions treechildren::-moz-tree-cell-text(current) {
color: #EEEEEC !important;
}

View file

@ -1,11 +0,0 @@
.mode-line {
font: 11px Tahoma;
padding: 0px;
border: 1px solid #2E3436;
color: #EEEEEC;
background-color: #0C191C;
}
.mode-line label {
color: #EEEEEC;
}

View file

@ -1,54 +0,0 @@
#tab2-bar {
background: #222;
}
.tab2 {
margin: 2px 0px 0px 2px;
padding: 0px;
height: 22px;
border-width: 2px;
border-bottom-width: 0;
border-style: solid;
-moz-border-radius: 3px 3px 0 0;
-moz-border-left-colors: #888 #555;
-moz-border-right-colors: #000 #171717;
-moz-border-top-colors: #888 #555;
background: #333;
min-width: 200px;
max-width: 200px;
overflow: hidden; /* Chops end of label */
}
.tab2[selected=true] {
-moz-border-left-colors: #aaa #888;
-moz-border-right-colors: #000 #333;
-moz-border-top-colors: #aaa #888;
background: #666;
}
.tab2:hover {
-moz-border-left-colors: #eee #bbb;
-moz-border-right-colors: #333 #666;
-moz-border-top-colors: #eee #bbb;
background: #999;
}
.tab2-label {
margin-left: 4px;
padding-top: 1px;
color: #fff;
font: 11px Tahoma;
}
.tab2-icon {
margin: 1px !important;
padding: 1px;
width: 20px;
height: 15px;
max-height: 15px;
-moz-border-radius: 1px;
background: black;
color: white;
font: 900 11px Tahoma;
text-align: center;
}

View file

@ -1,41 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* TABS */
#tab2-bar {
background: #000;
}
#tab2-bar .tab2 {
margin: 0;
padding: 0;
border: none;
/*height: 19px;
border: 1px solid #666;
min-width: 200px;
max-width: 200px;*/
background: #333;
overflow: hidden;
}
#tab2-bar .tab2-label {
margin: 0;
color: white;
font: 11px Tahoma;
}
#tab2-bar .tab2-icon {
height: 16px;
width: 16px;
background: #222;
color: white;
border: 1px solid #999;
font: 900 11px Tahoma;
text-align: center;
}
#tab2-bar .tab2[selected=true] {
border: 1px solid white;
background: #666;
border: 1px solid #999;
}

View file

@ -1,9 +0,0 @@
{ "sheets" : [
"conkeror--scrollbars.css",
"new-tabs.css",
"minibuffer.css",
"mode-line.css",
"hints--url-panel.css",
"tab-bar.css"
]
}

View file

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

View file

@ -1,36 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* The "background" behind the scrolling part of the scrollbar. */
scrollbar {
background-color: #222;
}
/* corner between horizontal and vertical scrollbars */
scrollcorner {
background-color: black;
}
/* The scroll up/down buttons. */
scrollbarbutton {
background-color: #666;
}
/* The actual scrolling part of the scrollbar. */
thumb {
background-color: #666;
}
thumb, scrollbarbutton {
-moz-border-bottom-colors: #000 #333;
-moz-border-left-colors: #aaa #888;
-moz-border-right-colors: #000 #333;
-moz-border-top-colors: #aaa #888;
}
scrollbarbutton:hover:active, scrollbarbutton[active="true"] {
-moz-border-bottom-colors: #aaa #888;
-moz-border-left-colors: #000 #333;
-moz-border-right-colors: #aaa #888;
-moz-border-top-colors: #000 #333;
}

View file

@ -1,17 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.panel {
border-top: 4px double #333333;
color: white;
background-color: black;
}
.panel .panel-row-label {
font-weight: bold;
}
.panel .url-panel-label {
font-weight: bold;
}

View file

@ -1,49 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#minibuffer {
background-color: #111113;
border: none;
color: #EEEEEC;
font: 16px "Envy Code R";
}
#minibuffer-input, #minibuffer-input * {
color: #EEEEEC;
}
#minibuffer-prompt {
color: #EEEEEC;
}
/* Completions display */
tree.completions treechildren { border: none !important; }
tree.completions treecol { -moz-binding: none !important; }
tree.completions {
-moz-appearance: none !important;
border: 0px none !important;
background-color: #111113 !important;
-moz-border-top-colors: -moz-initial !important;
color: #EEEEEC !important;
font: 18px "Envy Code R";
}
tree.completions treechildren::-moz-tree-row {
background-color: #111113 !important;
border: none;
}
tree.completions treechildren::-moz-tree-row(current) {
background-color: #536580 !important;
color: #EEEEEC;
}
tree.completions treechildren::-moz-tree-cell-text(completion-description) {
color: #b8ffa6 !important;
}
tree.completions treechildren::-moz-tree-cell-text(current) {
color: #EEEEEC !important;
}

View file

@ -1,11 +0,0 @@
.mode-line {
font: 16px "Envy Code R";
padding: 0px;
border: none;
color: #EEEEEC;
background-color: #222224;
}
.mode-line label {
color: #EEEEEC;
}

View file

@ -1,54 +0,0 @@
#tab2-bar {
background: #222;
}
.tab2 {
margin: 2px 0px 0px 2px;
padding: 0px;
height: 22px;
border-width: 2px;
border-bottom-width: 0;
border-style: solid;
-moz-border-radius: 3px 3px 0 0;
-moz-border-left-colors: #888 #555;
-moz-border-right-colors: #000 #171717;
-moz-border-top-colors: #888 #555;
background: #333;
min-width: 200px;
max-width: 200px;
overflow: hidden; /* Chops end of label */
}
.tab2[selected=true] {
-moz-border-left-colors: #aaa #888;
-moz-border-right-colors: #000 #333;
-moz-border-top-colors: #aaa #888;
background: #666;
}
.tab2:hover {
-moz-border-left-colors: #eee #bbb;
-moz-border-right-colors: #333 #666;
-moz-border-top-colors: #eee #bbb;
background: #999;
}
.tab2-label {
margin-left: 4px;
padding-top: 1px;
color: #fff;
font: 11px Tahoma;
}
.tab2-icon {
margin: 1px !important;
padding: 1px;
width: 20px;
height: 15px;
max-height: 15px;
-moz-border-radius: 1px;
background: black;
color: white;
font: 900 11px Tahoma;
text-align: center;
}

View file

@ -1,41 +0,0 @@
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* TABS */
#tab2-bar {
background: #000;
}
#tab2-bar .tab2 {
margin: 0;
padding: 0;
border: none;
/*height: 19px;
border: 1px solid #666;
min-width: 200px;
max-width: 200px;*/
background: #333;
overflow: hidden;
}
#tab2-bar .tab2-label {
margin: 0;
color: white;
font: 11px Tahoma;
}
#tab2-bar .tab2-icon {
height: 16px;
width: 16px;
background: #222;
color: white;
border: 1px solid #999;
font: 900 11px Tahoma;
text-align: center;
}
#tab2-bar .tab2[selected=true] {
border: 1px solid white;
background: #666;
border: 1px solid #999;
}

View file

@ -1,9 +0,0 @@
{ "sheets" : [
"conkeror--scrollbars.css",
"new-tabs.css",
"minibuffer.css",
"mode-line.css",
"hints--url-panel.css",
"tab-bar.css"
]
}

1
.gitignore vendored
View file

@ -0,0 +1 @@
Makefile.old

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,8 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=moc
GenericName=Music Player
Comment=Play Music
Exec=urxvt -e mocp
Icon=audio-x-generic.png
Type=Application

View file

@ -1,8 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=ncmpcpp
GenericName=Music Player
Comment=Play Music
Exec=urxvt -e ncmpcpp
Icon=audio-x-generic.png
Type=Application

View file

@ -1,8 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=poweroff
GenericName=Power Off
Comment=Turn off the power
Exec=systemctl poweroff
Icon=system-shutdown.png
Type=Application

View file

@ -1,8 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=reboot
GenericName=Reboot
Comment=Reboot the system
Exec=systemctl reboot
Icon=reload.png
Type=Application

5
.moc/.gitignore vendored
View file

@ -1,5 +0,0 @@
cache/
equalizer
last_directory
softmixer
tags_cache

View file

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

View file

@ -1,3 +0,0 @@
Layout1 = playlist(0,0,100%,100%):directory(0,0,100%,100%)
Layout2 = directory(0,0,50%,100%):playlist(50%,0,FILL,100%)
CanStartInPlaylist = yes

View file

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

View file

@ -1,118 +0,0 @@
# Example color theme for MOC.
# You can use a theme by copying it to ~/.moc/themes directory and using
# Theme config option or -T command line option.
#
# Fill free to make your own themes and send me them. It will be included in
# official MOC releases or on the MOC web site.
#
# The format of this file is:
# Lines beginning with # are comments.
# Blank lines are ignored.
# Every other line is expected to be in format:
#
# ELEMENT = FOREGROUND_COLOR BACKGROUND_COLOR [ATTRIBUTE[,ATTRIBUTE,..]]
#
# or
#
# colordef COLOR = RED GREEEN BLUE
#
# Where names are case insensitive.
#
# ELEMENT is an element of MOC interface. This can be:
# background - default background for regions when nothing is displayed
# frame - frames for windows
# window_title - the title of the window (eg name of the current
# directory)
# directory - a directory in the menu
# selected_directory - a directory that is selected using arrows
# playlist - playlist file
# selected_playlist - see selected directory
# file - an ordinary file in the menu (mp3, ogg, ...)
# selected_file - see selected directory
# marked_file - a file that is currently beeing played
# marked_selected_file - a file that is currently beeing played and is also
# selected using arrows
# info - information shown at the right side of files
# status - the status line with a message
# title - the title of the file that is currently beeing played
# state - the state: play, stop, or paus (>, [], ||)
# current_time - current time of playing
# time_left - the time left to the end of playing the current file
# total_time - the length of the currently played file
# time_total_frames - the brackets outside the total time of a file ([10:13])
# sound_parameters - the frequency and bitrate numbers
# legend - "KHz" and "Kbps"
# disabled - disabled element ([STEREO])
# enabled - enabled element
# empty_mixer_bar - "empty" part of the volume bar
# filled_mixer_bar - "filled" part of the volume bar
# empty_time_bar - "empty" part of the time bar
# filled_time_bar - "filled" part of the time bar
# entry - place wher user can type a search query or a file name
# entry_title - the title of an entry
# error - error message
# message - information message
# plist_time - total time of displayed items
#
# FOREGOUND_VOLOR and BACKGROUND_COLOR can have one of the following values:
# black, red, green, yellow, blue, magenta, cyan, white, default (can be
# transparent), grey (not standard, but works)
#
# Optional ATTRIBUTE parameters can be (from ncurses manual):
# normal - default (no highlight)
# standout - best highlighting mode of the terminal
# underline - underlining
# reverse - reverse video
# blink - blinking
# dim - half bright
# bold - extra bright or bold
# protect - protected mode
#
# You can specify a list of attributes separated by commas: attr1,attr2,attr3.
# Don't use spaces anywhere in such a list.
#
# With colordef you can chend the definition of a color. It works only if
# your termina supports it, if not those lines will be silently ignored.
# COLOR must be a valid color name and the RED GREEN and BLUE are numbers
# from 0 to 1000. Example:
#
# colordef red = 1000 0 0
#
# HINT: you have only 8 colors, but combined with attributes bold and/or
# reversed you actually get more colors.
#
# If you don't specify some elements, the default values will be used.
#
# Here follows the default configuration:
background = default default
frame = default default
window_title = default default
directory = default default bold
selected_directory = default black bold
playlist = default default bold
selected_playlist = default black bold
file = default default
selected_file = default black
marked_file = green default bold
marked_selected_file = green black bold
info = blue default bold
status = default default
title = default default bold
state = default default bold
current_time = default default bold
time_left = default default bold
total_time = default default bold
time_total_frames = default default
sound_parameters = default default bold
legend = default default
disabled = blue default bold
enabled = default default bold
empty_mixer_bar = default default
filled_mixer_bar = black cyan
empty_time_bar = default default
filled_time_bar = black cyan
entry = default default
entry_title = black cyan
error = red default bold
message = green default bold
plist_time = default default

4
.mutt/.gitignore vendored
View file

@ -1,4 +0,0 @@
cache
temp
alias
certificates

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,14 +0,0 @@
###
# aethon.nl specific options
###
set from = "thomas@aethon.nl"
set smtp_url = "smtp://thomas@aethon.nl@smtp.gmail.com:587/"
set mbox = "+aethon/INBOX"
set signature = "~/documents/work/aethon/signature.txt"
set postponed = "+aethon/drafts"
unset record
macro index E "<change-folder>+aethon/archive<enter><limit>~B " "search everything"
macro index D "<save-message>+aethon/trash<enter>" "move message to the trash"
macro index S "<save-message>+aethon/spam<enter>" "mark message as spam"

View file

@ -1,14 +0,0 @@
###
# archlinux.us specific options
###
set from = "tom.willemsen@archlinux.us"
set smtp_url = "smtp://tom.willemsen@archlinux.us@smtp.gmail.com:587/"
set mbox = "+arch/INBOX"
set postponed = "+arch/drafts"
unset record
unset signature
macro index E "<change-folder>+arch/archive<enter><limit>~B " "search everything"
macro index D "<save-message>+arch/trash<enter>" "move message to the trash"
macro index S "<save-message>+arch/spam<enter>" "mark message as spam"

View file

@ -1,65 +0,0 @@
### -*- eval: (git-auto-commit-mode 1) -*-
# mutt colors file
###
# set default
color normal default default
# main colors
# element foreground background
color status color7 color1
color indicator color0 color2
color tree color5 default
color error brightcolor1 default
color message color3 default
# uncolor certain messages
uncolor index "~P"
uncolor index "~N ~u"
uncolor index "~N !~u"
uncolor index "~T"
uncolor index "~D"
# and recolor them appropriately
color index color3 default "~P"
color index color2 default "~u"
color index brightcolor2 default "~N ~u" # new ML mail
color index brightcolor3 default "~N !~u" # new non-ML mail
color index brightcolor5 default "~T"
color index color1 default "~D"
# set up the headers
color header brightcolor2 default "^from:"
color header brightcolor2 default "^to:"
color header brightcolor2 default "^cc:"
color header brightcolor2 default "^date:"
color header brightcolor2 default "^subject:"
# message bodies
color attachment color3 default
color search color1 color0
color signature color5 default
color tilde color4 default
# urls
color body brightcolor4 default "(^|<| )mailto:[^ ]+@[^ ]( |>|$)"
color body brightcolor4 default "(^|<| )(http|https|ftp|file|telnet|news|finger)://[^ ]+( |>|$)"
# smileys
color body brightcolor5 default "(^| )+(|[<>|])[8;:](|[^ ])[)(/|DOPS]( |$)+"
color body brightcolor5 default "(^| )+[)(/|DOPS](|[^ ])[8;:](|[<>|])( |$)+"
# *bold*, _underline_ and /italic/
color body brightcolor6 default "(^| )\\*[^*]+\\*( |$)"
color body brightcolor6 default "(^| )_[^_]+_( |$)"
color body brightcolor6 default "(^| )/[^/]+/( |$)"
# quote blocks
color quoted brightcolor7 default
color quoted1 brightcolor1 default
color quoted2 brightcolor2 default
color quoted3 brightcolor3 default
color quoted4 brightcolor4 default
color quoted5 brightcolor5 default
color quoted6 brightcolor6 default
color quoted7 brightdefault default

View file

@ -1,14 +0,0 @@
###
# gmail specific option
###
set from = "ryuslash@gmail.com"
set smtp_url = "smtp://ryuslash@gmail.com@smtp.gmail.com:587/"
set mbox = "+gmail/INBOX"
set postponed = "+gmail/drafts"
unset record
unset signature
macro index E "<change-folder>+gmail/archive<enter><limit>~B " "search everything"
macro index D "<save-message>+gmail/trash<enter>" "move message to the trash"
macro index S "<save-message>+gmail/spam<enter>" "mark message as spam"

View file

@ -1,13 +0,0 @@
###
# iactor specific options
###
set from = "tom@iactor.nl"
set smtp_url = "mail.iactor.nl:2525"
set mbox = "+iactor/INBOX"
set record = "+iactor/Sent"
set postponed = "+iactor/Drafts"
unset signature
macro index E "<change-folder>+iactor/INBOX<enter><limit>~B " "search everything"
macro index D "<save-message>+iactor/Trash<enter>" "move message to the trash"

View file

@ -1 +0,0 @@
macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'

View file

@ -1,6 +0,0 @@
text/html; w3m -dump -T text/html -cols 80 %s; nametemplate=%s.html; copiousoutput
application/vnd.openxmlformats-officedocument.wordprocessingml.document; libreoffice %s
application/vnd.ms-excel; libreoffice %s
image/jpeg; feh %s
image/png; feh %s
application/pdf; gv %s

View file

@ -1,121 +0,0 @@
# ~/.muttrc
###
# directories and commands
set alias_file = ~/.mutt/alias # alias file
set header_cache = ~/.mutt/cache/headers # where to store headers
set message_cachedir = ~/.mutt/cache/bodies # where to store bodies
set certificate_file = ~/.mutt/certificates # where to store certs
set mailcap_path = ~/.mutt/mailcap # entries for filetypes
set tmpdir = ~/.mutt/temp # where to keep temp files
set editor = "emacsclient -c"
# main options
set mbox_type = Maildir # mailbox type
set folder = ~/documents/mail # mailbox location
set spoolfile = "+ninthfloor/INBOX" # ninthfloor is the default inbox
set timeout = 3 # idle time before scanning
set mail_check = 0 # minimum time between scans
set sort_alias = alias # sort alias file by alias
set reverse_alias # show names from alias file in index
unset move # gmail does that
set delete # don't ask, just do
unset confirmappend # don't ask, just do!
set quit # don't ask, just do!!
unset mark_old # read/new is good enough for me
set beep_new # bell on new mails
set pipe_decode # strip headers and eval mimes when piping
set thorough_search # strip headers and eval mimes before searching
set ssl_force_tls = yes
# index options
set sort = threads # like gmail
set sort_aux = last-date-received # not like gmail
set uncollapse_jump # don't collapse on an unread message
#set sort_re # thread based on regex
# pager options
set pager_index_lines = 10 # number of index lines to
# show
set pager_context = 5 # number of context lines
# to show
set pager_stop # don't go to next message
# automatically
set menu_scroll # scroll in menus
set smart_wrap # don't split words
set tilde # show tildes like in vim
unset markers # no ugly plus signs
auto_view text/html # view html automatically
alternative_order text/plain text/enriched text/html # save html for last
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+| {4}"
# formats
set status_format = "-%r %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?] (%s/%S) %> (%P) "
set date_format = "%d %b %H:%M"
set index_format = "%3C %Z %D [%-12.12L] %s"
set alias_format = "%4n %t %-20a %r"
# composing mail
set realname = "Tom Willemse" # who am I?
set envelope_from # which from?
set sig_dashes # dashes before my sig... sweet
set edit_headers # show headers when composing
set fast_reply # skip to compose when replying
set askcc # ask for CC:
set fcc_attach # save attachments with the body
unset mime_forward # forward attachments as part fo body
set forward_format = "Fwd: %s" # format for subject when forwarding
set forward_decode # decode when forwarding
set attribution = "On %d, %n wrote:" # set the attribution
set reply_to # reply to Reply to: field
set reverse_name # reply as whomever it was to
set include # include message in replies
set forward_quote # include message inforwards
# headers to show
ignore * # ignore all headers
unignore from: to: cc: date: subject: # show only these
hdr_order from: to: cc: date: subject: # and in this order
# boxes
mailboxes +arch/INBOX #+arch/archive +arch/sent +arch/drafts +arch/spam +arch/trash
mailboxes +gmail/INBOX #+gmail/archive +gmail/sent +gmail/drafts +gmail/spam +gmail/trash
mailboxes +iactor/INBOX #+iactor/INBOX.Admin +iactor/INBOX.Important +iactor/INBOX.Intern +iactor/INBOX.Taken +iactor/Sent +iactor/Drafts +iactor/Trash
mailboxes +aethon/INBOX
mailboxes +ninthfloor/INBOX +ninthfloor/mailinglists
mailboxes +ryuslash.org/INBOX
# always sourced
source $alias_file # required for functionality
source ~/.mutt/colors.muttrc # source colors file
source ~/.mutt/ninthfloor.muttrc # source arch as default
# account specific sources
folder-hook arch/* source ~/.mutt/arch.muttrc
folder-hook gmail/* source ~/.mutt/gmail.muttrc
folder-hook iactor/* source ~/.mutt/iactor.muttrc
folder-hook aethon/* source ~/.mutt/aethon.muttrc
folder-hook ninthfloor/* source ~/.mutt/ninthfloor.muttrc
folder-hook ryuslash.org/* source ~/.mutt/ryuslash.org.muttrc
# abook
set query_command = "abook --mutt-query '%s'"
# macros
macro index I "<change-folder>!<enter>" "go to Inbox"
macro index Z "<shell-escape>/usr/bin/offlineimap -q -o<enter>" "sync IMAP"
macro generic,index,pager \ca "<shell-escape>abook<return>" "launch abook"
macro index,pager A "<pipe-message>abook --add-email<return>" "add the sender address to abook"
macro generic,index,pager <ESC>1 "<change-folder>=ninthfloor/INBOX<return>" "Show ninthfloor inbox"
macro generic,index,pager <ESC>2 "<change-folder>=gmail/INBOX<return>" "Show gmail inbox"
macro generic,index,pager <ESC>3 "<change-folder>=arch/INBOX<return>" "Show arch inbox"
macro generic,index,pager <ESC>4 "<change-folder>=aethon/INBOX<return>" "Show aethon inbox"
macro generic,index,pager <ESC>5 "<change-folder>=ryuslash.org/INBOX<return>" "Show ryuslash.org inbox"
macro generic,index,pager <ESC>6 "<change-folder>=iactor/INBOX<return>" "Show iactor inbox"
# key bindings
bind pager \177 previous-line # default didn't want to work anymore
#bind generic i what-key
# mailing lists
subscribe dev@suckless.org

View file

@ -1,13 +0,0 @@
###
# ninthfloor specific options
###
set from = "ryuslash@ninthfloor.org"
set smtp_url = "smtp://ryuslash@mail.ninthfloor.org:587"
set mbox = "+ninthfloor/INBOX"
set record = "+ninthfloor/Sent"
set postponed = "+ninthfloor/Drafts"
unset signature
macro index E "<change-folder>+ninthfloor/INBOX<enter><limit>~B " "search everything"
macro index D "<save-message>+ninthfloor/Trash<enter>" "move message to the trash"

View file

@ -1,13 +0,0 @@
###
# ryuslash.org specific options
###
set from = "tom@ryuslash.org"
set smtp_url = "smtp://tom@ryuslash.org@smtp.alwaysdata.com:587"
set mbox = "+ryuslash.org/INBOX"
set record = "+ryuslash.org/Sent"
set postponed = "+ryuslash.org/Drafts"
unset signature
macro index E "<change-folder>+ryuslash.org/INBOX<enter><limit>~B " "search everything"
macro index D "<save-message>+ninthfloor/Trash<enter>" "move message to the trash"

View file

View file

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

View file

@ -1,25 +0,0 @@
# Playlist
autocenter_mode = "yes"
centered_cursor = "yes"
now_playing_prefix = "$b"
now_playing_suffix = "$/b"
playlist_display_mode = "classic" # (classic/columns)
song_list_format = "{$3%a$9 - }{$4%t$9} {$R$5[%b]$9}"
# Bars
display_bitrate = "no"
progressbar_look = ">> "
song_status_format = "$0%t$9 {$1by$9 $0%a$9} {$1from$9 $0%b$9}{$1,$9 $0%y$9}"
titles_visibility = "no"
# Browser
browser_display_mode = "classic" # (classic/columns)
browser_playlist_prefix = "$2plist >$9 "
# Others
allow_physical_directories_deletion = "yes"
allow_physical_files_deletion = "yes"
fancy_scrolling = "yes"
mpd_music_dir = "/mnt/music/mp3"
search_engine_display_mode = "columns" # (classic/columns)
user_interface = "alternative" # (classic/alternative)

View file

@ -2,13 +2,13 @@
[general]
# NOTE: cronjob calls the quiet UI with -u
ui = TTYUI
accounts = ryuslash.org,gmail,arch,aethon,ninthfloor
accounts = ryuslash.org,gmail,aethon,ninthfloor
pythonfile = ~/.offlineimap.py
[Account ryuslash.org]
localrepository = ryuslash.org-local
remoterepository = ryuslash.org-remote
postsynchook = /home/slash/usr/bin/emacs-send-mail ryuslash.org; /home/slash/usr/bin/mode-line-mail ryuslash.org ryu
# postsynchook = /home/slash/usr/bin/emacs-send-mail ryuslash.org
[Repository ryuslash.org-local]
type = Maildir
@ -25,7 +25,7 @@ nametrans = lambda folder: folder.lower()
[Account aethon]
localrepository = aethon-local
remoterepository = aethon-remote
postsynchook = /home/slash/usr/bin/emacs-send-mail aethon; /home/slash/usr/bin/mode-line-mail aethon ae
# postsynchook = /home/slash/usr/bin/emacs-send-mail aethon
[Repository aethon-local]
type = Maildir
@ -37,14 +37,14 @@ type = Gmail
remoteusereval = getuser("imap.google.com-aethon")
remotepasseval = getpassword("imap.google.com-aethon")
realdelete = no
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa
folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Concepten', '[Gmail]/Verzonden berichten', '[Gmail]/Prullenbak']
nametrans = lambda folder: re.sub('^INBOX$', 'inbox', re.sub('^\[Gmail\]/Concepten$', 'drafts', re.sub('^\[Gmail\]/Verzonden berichten$', 'sent', re.sub('^\[Gmail\]/Prullenbak$', 'trash', folder))))
[Account gmail]
localrepository = gmail-local
remoterepository = gmail-remote
postsynchook = /home/slash/usr/bin/emacs-send-mail gmail; /home/slash/usr/bin/mode-line-mail gmail g
# postsynchook = /home/slash/usr/bin/emacs-send-mail gmail
[Repository gmail-local]
type = Maildir
@ -56,14 +56,14 @@ type = Gmail
remoteusereval = getuser("imap.google.com")
remotepasseval = getpassword("imap.google.com")
realdelete = no
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa
folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Drafts', '[Gmail]/Sent Mail', '[Gmail]/Trash']
nametrans = lambda folder: re.sub('^INBOX$', 'inbox', re.sub('^\[Gmail\]/Drafts$', 'drafts', re.sub('^\[Gmail\]/Sent Mail$', 'sent', re.sub('^\[Gmail\]/Trash$', 'trash', folder))))
[Account ninthfloor]
localrepository = ninthfloor-local
remoterepository = ninthfloor-remote
postsynchook = /home/slash/usr/bin/emacs-send-mail ninthfloor; /home/slash/usr/bin/mode-line-mail ninthfloor 9f
# postsynchook = /home/slash/usr/bin/emacs-send-mail ninthfloor
[Repository ninthfloor-local]
type = Maildir

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,98 +0,0 @@
set editor=emacsclient
set go=bCs
set hintkeys="arstdhneio"
set stal=never
set titlestring=
highlight -a Hint text-transform: uppercase
map -b <A-x> :
map -b -m base <C-g> <Esc>
map -b -m c <C-n> <Tab>
map -b -m c <C-p> <S-Tab>
map -b -m i <C-n> <Down>
map -b -m i <C-p> <Up>
map -b -m c,i <C-/> <C-v><C-z>
map -b -m c,i <C-b> <Left>
map -b -m c,i <C-f> <Right>
map -b -m c,i <A-w> <C-v><C-c>
map -b -m c,i <C-w> <C-v><C-x>
map -b -m c,i <C-y> <C-v><C-v>
map -b <A-<> gg
map -b <A->> G
map -b <A-v> <C-u>
map -b <A-w> y
map -b <C-_> u
map -b <C-a> 0
map -b <C-b> <A-left>
map -b <C-e> $
map -b <C-f> <A-right>
map -b <C-j> gT
map -b <C-k> gt
map -b <C-n> 2j
map -b <C-p> 2k
map -b <C-r> ?
map -b <C-s> /
map -b <C-v> <C-d>
map -b <C-w> Y
map -b <C-y> P
map -b <C-x>~ ~
map -b <C-x>e gF
map -b <C-x>g gf
map -b <C-x>h gh
map -b <C-x>i gi
map -b <C-x>k d
map -b <C-x>m ;c
map -b <C-x>p ;i
map -b <C-x>r r
map -b <C-x>R R
map -b <C-x>u gu
map -b <C-x><C-b> b
map -b <C-x><C-c> ZZ
map -b <C-x><C-f> t
map -b <C-x><C-r> :restart<CR>
map -b <C-x><C-u> gU
map -b <C-x><C-v> O
map <C-d> <Nop>
map <C-u> <Nop>
map <C-x> <Nop>
map <C-g> <Nop>
map <C-h> <Nop>
map : <Nop>
map ~ <Nop>
map / <Nop>
map ? <Nop>
map $ <Nop>
map 0 <Nop>
map b <Nop>
map B <Nop>
map d <Nop>
map F <Nop>
map gg <Nop>
map gh <Nop>
map gi <Nop>
map gU <Nop>
map G <Nop>
map i <Nop>
map j <Nop>
map k <Nop>
map o <Nop>
map O <Nop>
map p <Nop>
map P <Nop>
map q <Nop>
map r <Nop>
map t <Nop>
map u <Nop>
map w <Nop>
map y <Nop>
map Y <Nop>
map ZZ <Nop>

View file

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

View file

@ -1,159 +0,0 @@
;; -*- mode: sawfish; -*-
(require 'rep.regexp)
(require 'sawfish.wm.commands.grow-pack)
(require 'sawfish.wm.commands.shrink-yank)
(require 'sawfish.wm.commands.x-cycle)
(require 'sawfish.wm.ext.match-window)
(require 'sawfish.wm.util.display-window)
(require 'sawfish.wm.util.prompt)
(require 'sawfish.wm.util.window-order)
(require 'sawfish.wm.util.stacking)
(define oni:window-packing-keymap (make-keymap))
(define oni:window-growing-keymap (make-keymap))
(define oni:window-shrinking-keymap (make-keymap))
(define oni:window-yanking-keymap (make-keymap))
(define oni:window-management-keymap (make-keymap))
(define oni:extended-keymap (make-keymap))
(defun oni:emacs-main-window-p (window)
"Check wether or not WINDOW is Emacs' main window."
(let ((name (window-name window)))
(and (string-match "^emacs: " name)
(not (string= "emacs: *Sauron*" name)))))
(defun oni:place-emacs-windows ()
"Place Emacs' main, sauron and optionally speedbar windows the
way I like them."
(let ((main-window (car (filter-windows oni:emacs-main-window-p)))
(sauron-window (get-window-by-name "emacs: *Sauron*"))
(speedbar-window (get-window-by-name "^Speedbar " #:regex t)))
(move-window-to main-window 0 0)
(move-window-to sauron-window 0 0)
(set-window-type sauron-window 'transient)
(pack-window-down sauron-window)
(grow-window-right sauron-window)
(when speedbar-window
(move-window-to speedbar-window 0 0)
(set-window-type speedbar-window 'transient)
(yank-window-right main-window)
(grow-window-down speedbar-window))
(grow-window-down main-window)
(grow-window-right main-window)))
(define-command 'oni:place-emacs-windows oni:place-emacs-windows)
(defun oni:run-or-raise (command #!key id name class role)
"Either run COMMAND, or if a window with class CLASS is found,
raise it."
(let* ((windows (filter
(lambda (x)
(and (or (not id) (equal (window-id x) id))
(or (not name (equal (window-name x) name)))
(or (not class) (equal (window-class x) class))
(or (not role) (equal (window-role x) role))))
(window-order)))
(first (car windows))
(w (if (equal first (input-focus)) (last windows) first)))
(if w (display-window w)
(call-command `(run-shell-command ,command)))))
(setq custom-show-symbols t)
(setq default-frame-style 'naquadah)
(setq default-font (get-font-typed "Xft" "Monaco-10"))
(setq grow-is-maximize nil)
(setq prompt-color (cons (get-color "#eeeeec")
(get-color "#111113")))
(setq user-apps-menu
'(("Emacs" (system "emacsclient -c &"))
("Terminal" (system "urxvt &"))))
(bind-keys oni:window-packing-keymap
"p" 'pack-window-up
"n" 'pack-window-down
"b" 'pack-window-left
"f" 'pack-window-right)
(bind-keys oni:window-growing-keymap
"p" 'grow-window-up
"n" 'grow-window-down
"b" 'grow-window-left
"f" 'grow-window-right)
(bind-keys oni:window-shrinking-keymap
"p" 'shrink-window-up
"n" 'shrink-window-down
"b" 'shrink-window-left
"f" 'shrink-window-right)
(bind-keys oni:window-yanking-keymap
"p" 'yank-window-up
"n" 'yank-window-down
"b" 'yank-window-left
"f" 'yank-window-right)
(bind-keys oni:window-management-keymap
"M" 'maximize-window-toggle
"p" oni:window-packing-keymap
"g" oni:window-growing-keymap
"s" oni:window-shrinking-keymap
"y" oni:window-yanking-keymap
"E" 'oni:place-emacs-windows)
(bind-keys global-keymap
"XF86AudioPlay" '(run-shell-command "mpc toggle")
"XF86AudioStop" '(run-shell-command "mpc stop")
"XF86AudioMute" '(run-shell-command "amixer sset Master toggle")
"XF86AudioLowerVolume" '(run-shell-command "mpc volume -5")
"XF86AudioRaiseVolume" '(run-shell-command "mpc volume +5")
"XF86AudioPrev" '(run-shell-command "mpc prev")
"XF86AudioNext" '(run-shell-command "mpc next"))
(bind-keys oni:extended-keymap
"w" oni:window-management-keymap
"Super-b" 'popup-window-list-menu)
;; (ungrab-keymap global-keymap)
(bind-keys
global-keymap
"C-M-l" '(run-shell-command "i3lock -c \"#000000\"")
"C-Super-B" 'shrink-window-left
"C-Super-F" 'shrink-window-right
"C-Super-N" 'shrink-window-down
"C-Super-P" 'shrink-window-up
"C-Super-TAB" 'cycle-class
"C-Super-`" 'popup-window-menu
"C-Super-b" 'grow-window-left
"C-Super-f" 'grow-window-right
"C-Super-n" 'grow-window-down
"C-Super-p" 'grow-window-up
"Menu" 'popup-root-menu
"Super-!" '(run-shell-command (prompt-for-string "Run: "))
"Super-:" 'call-command
"Super-B" 'yank-window-left
"Super-C" '(run-shell-command "urxvt")
"Super-E" '(run-shell-command (getenv "EDITOR"))
"Super-F" 'yank-window-right
"Super-M" 'maximize-window-toggle
"Super-N" 'yank-window-down
"Super-P" 'yank-window-up
"Super-TAB" 'cycle-windows
"Super-W" '(run-shell-command (getenv "BROWSER"))
"Super-`" 'popup-root-menu
"Super-b" 'pack-window-left
"Super-c" '(oni:run-or-raise "urxvt" #:class "URxvt")
"Super-e" '(oni:run-or-raise (getenv "EDITOR") #:class "Emacs")
"Super-f" 'pack-window-right
"Super-n" 'pack-window-down
"Super-p" 'pack-window-up
"Super-w" '(oni:run-or-raise (getenv "BROWSER") #:class "Conkeror")
"Super-x" oni:extended-keymap
)
;; (grab-keymap global-keymap)
(add-window-matcher '((WM_CLASS . "^(Firefox|Conkeror)/Navigator$"))
'((position . north-east)
(maximized . all)))

View file

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

View file

@ -1,9 +1,9 @@
;; -*- mode: lisp; -*-
(require 'swank)
; (require 'swank)
(require 'cl-ppcre)
(in-package :stumpwm)
(require 'cl-ppcre)
;; (load "/usr/share/stumpwm/contrib/app-menu.lisp")
(defmacro elisp (&body body)
"Run BODY through emacsclient."
@ -13,21 +13,26 @@
:wait nil))
;; Naquadah
(defun colour (key)
(let ((colours (list :lblack #xeeeeec :dblack #x111113
:lwhite #xa5a5a4 :dwhite #x222224
:lred #xbf6d6d :dred #x744a4a
:lorange #xbfa47d :dorange #x73634a
:lyellow #xb2bf6d :dyellow #x6b734a
:lgreen #x8abf6d :dgreen #x52734a
:lturquoise #x7dbf97 :dturquoise #x4a735b
:lcyan #x7dbfbf :dcyan #x4a7373
:lblue #x6d97bf :dblue #x4a5b73
:lpurple #x8a7dbf :dpurple #x524a73
:lmagenta #xb27dbf :dmagenta #x6b4a73
:lpink #xbf6da4 :dpink #x734a63)))
(getf colours key)))
;; (defun colour (key)
;; (let ((colours (list :lblack #xeeeeec :dblack #x111113
;; :lwhite #xa5a5a4 :dwhite #x222224
;; :lred #xbf6d6d :dred #x744a4a
;; :lorange #xbfa47d :dorange #x73634a
;; :lyellow #xb2bf6d :dyellow #x6b734a
;; :lgreen #x8abf6d :dgreen #x52734a
;; :lturquoise #x7dbf97 :dturquoise #x4a735b
;; :lcyan #x7dbfbf :dcyan #x4a7373
;; :lblue #x6d97bf :dblue #x4a5b73
;; :lpurple #x8a7dbf :dpurple #x524a73
;; :lmagenta #xb27dbf :dmagenta #x6b4a73
;; :lpink #xbf6da4 :dpink #x734a63)))
;; (getf colours key)))
(setf *app-menu* '(("Editor" . "emacs")
("Browser" . "conkeror")
("Terminal" . "urxvt")
("Office" . "libreoffice")
("Gimp" . "gimp")))
(defvar *conkeror-program* "conkeror"
"The executable to run to start Conkeror.")
(defvar *emacs-program* "emacsclient -c -a emacs"
@ -48,17 +53,16 @@
(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))))
(defun mpd-playing-p ()
"Check if MPD is currently in the playing state."
(and (cl-ppcre:scan
"\\n\\[playing\\]"
(with-output-to-string (status)
(sb-ext:run-program "/usr/bin/mpc" '() :output status)))
t))
(append
(directory
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
mailbox inbox))
(remove-if (lambda (d)
(let ((dir (namestring d)))
(string= dir "S" :start1 (1- (length dir)))))
(directory
(format nil "/home/slash/documents/mail/~A/~A/cur/*.*"
mailbox inbox))))))
(defun set-jabber-away ()
"Tell emacs to set jabber to away presence."
@ -74,16 +78,6 @@
*jabber-connected*)
(jabber-send-default-presence))))
(defun mpd-pause ()
"Pause MPD playback."
(when (setf *mpd-was-playing-p* (mpd-playing-p))
(sb-ext:run-program "/usr/bin/mpc" '("pause") :wait nil)))
(defun mpd-play ()
"Resume MPD playback."
(when *mpd-was-playing-p*
(sb-ext:run-program "/usr/bin/mpc" '("play") :wait nil)))
(defcommand run-emacs () ()
"Open Emacs"
(run-shell-command *emacs-program*))
@ -129,23 +123,23 @@ it and run *screen-unlocked-hook* after it has been unlocked."
"/usr/bin/i3lock" '("-n" "-c" "000000") :wait nil
:status-hook #'run-stumpwm-hook-on-exit))
(set-bg-color (colour :dwhite))
(set-border-color (colour :lwhite))
(set-fg-color (colour :lblack))
(set-float-focus-color (colour :dblack))
(set-float-unfocus-color (colour :dwhite))
(set-focus-color (colour :dblack))
(set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
(set-unfocus-color (colour :dwhite))
(set-win-bg-color (colour :dwhite))
;; (set-bg-color (colour :dwhite))
;; (set-border-color (colour :lwhite))
;; (set-fg-color (colour :lblack))
;; (set-float-focus-color (colour :lblue))
;; (set-float-unfocus-color (colour :dwhite))
;; (set-focus-color (colour :lblue))
;; (set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
;; (set-unfocus-color (colour :dwhite))
;; (set-win-bg-color (colour :dblack))
(setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
:lmagenta :lcyan :lblack)))
;; (setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
;; :lmagenta :lcyan :lblack)))
(setf *input-window-gravity* :bottom-left)
(setf *message-window-gravity* :top-right)
(setf *mode-line-background-color* (colour :dwhite))
(setf *mode-line-border-color* (colour :dwhite))
(setf *mode-line-foreground-color* (colour :lblack))
;; (setf *mode-line-background-color* (colour :dwhite))
;; (setf *mode-line-border-color* (colour :dwhite))
;; (setf *mode-line-foreground-color* (colour :lblack))
(setf *shell-program* (getenv "SHELL"))
(setf *transient-border-width* 1)
(setf *window-border-style* :thin)
@ -159,9 +153,7 @@ it and run *screen-unlocked-hook* after it has been unlocked."
(get-mail-count "ninthfloor")))))
(add-hook *lock-screen-hook* 'set-jabber-away)
(add-hook *lock-screen-hook* 'mpd-pause)
(add-hook *screen-unlocked-hook* 'set-jabber-online)
(add-hook *screen-unlocked-hook* 'mpd-play)
(set-prefix-key (kbd "C-z"))
@ -191,11 +183,11 @@ it and run *screen-unlocked-hook* after it has been unlocked."
(define-frame-preference "Default"
(0 t nil :class "Emacs")
(1 t nil :class "Firefox")
(2 t nil :class "Firefox")
(1 t nil :class "URxvt")
(1 t nil :class "Conkeror"))
(2 t nil :class "Conkeror"))
(if (not (head-mode-line (current-head)))
(toggle-mode-line (current-screen) (current-head)))
(swank:create-server)
; (swank:create-server)

View file

@ -1,4 +1,4 @@
DESTDIR:=$(DESTDIR)/.w3m
SUBDIR=.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,38 +0,0 @@
#
# alias.conf -- weechat v0.3.6
#
[cmd]
AAWAY = "allserv /away"
AME = "allchan /me"
AMSG = "allchan /msg *"
ANICK = "allserv /nick"
BYE = "quit"
C = "buffer clear"
CHAT = "dcc chat"
CL = "buffer clear"
CLOSE = "buffer close"
EXIT = "quit"
ident = "msg NickServ identify $*"
IG = "ignore"
J = "join"
K = "kick"
KB = "kickban"
LEAVE = "part"
M = "msg"
MUB = "unban *"
N = "names"
Q = "query"
REDRAW = "window refresh"
SAY = "msg *"
SIGNOFF = "quit"
T = "topic"
UB = "unban"
V = "command core version"
W = "who"
WC = "window merge"
WI = "whois"
WII = "whois $1 $1"
WW = "whowas"
[completion]

View file

@ -1,154 +0,0 @@
#
# irc.conf -- weechat v0.3.6
#
[look]
buffer_switch_autojoin = on
buffer_switch_join = on
color_nicks_in_names = off
color_nicks_in_nicklist = off
color_nicks_in_server_messages = on
color_pv_nick_like_channel = on
display_away = local
display_ctcp_blocked = on
display_ctcp_reply = on
display_ctcp_unknown = on
display_host_join = on
display_host_join_local = on
display_host_quit = on
display_old_topic = on
display_pv_away_once = on
display_pv_back = on
hide_nickserv_pwd = on
highlight_tags = "irc_privmsg,irc_notice"
item_away_message = on
item_channel_modes = on
item_channel_modes_hide_key = off
item_display_server = buffer_plugin
item_nick_modes = on
item_nick_prefix = on
msgbuffer_fallback = current
new_channel_position = none
new_pv_position = none
nick_color_force = ""
nick_color_stop_chars = "_|["
nick_completion_smart = speakers
nick_prefix = ""
nick_suffix = ""
notice_as_pv = auto
notify_tags_ison = "notify_message"
notify_tags_whois = "notify_message"
part_closes_buffer = off
raw_messages = 256
server_buffer = merge_with_core
smart_filter = on
smart_filter_delay = 5
smart_filter_join = on
smart_filter_nick = on
smart_filter_quit = on
topic_strip_colors = off
[color]
input_nick = lightcyan
item_away = yellow
item_channel_modes = default
item_lag_counting = default
item_lag_finished = yellow
message_join = green
message_quit = red
nick_prefix = green
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
nick_suffix = green
notice = green
reason_quit = default
topic_new = white
topic_old = darkgray
[network]
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 1800
colors_receive = on
colors_send = on
lag_check = 60
lag_disconnect = 0
lag_min_show = 500
lag_refresh_interval = 1
notify_check_ison = 1
notify_check_whois = 5
send_unknown_commands = off
[msgbuffer]
[ctcp]
[ignore]
[server_default]
addresses = ""
anti_flood_prio_high = 2
anti_flood_prio_low = 2
autoconnect = off
autojoin = ""
autoreconnect = on
autoreconnect_delay = 10
autorejoin = off
autorejoin_delay = 30
away_check = 0
away_check_max_nicks = 25
command = ""
command_delay = 0
connection_timeout = 60
default_msg_part = "WeeChat %v"
default_msg_quit = "WeeChat %v"
ipv6 = off
local_hostname = ""
nicks = "slash,slash1,slash2,slash3,slash4"
notify = ""
password = ""
proxy = ""
realname = ""
sasl_mechanism = plain
sasl_password = ""
sasl_timeout = 15
sasl_username = ""
ssl = off
ssl_cert = ""
ssl_dhkey_size = 2048
ssl_priorities = "NORMAL"
ssl_verify = on
username = "slash"
[server]
freenode.addresses = "irc.freenode.net"
freenode.proxy
freenode.ipv6
freenode.ssl
freenode.ssl_cert
freenode.ssl_priorities
freenode.ssl_dhkey_size
freenode.ssl_verify
freenode.password
freenode.sasl_mechanism
freenode.sasl_username
freenode.sasl_password
freenode.sasl_timeout
freenode.autoconnect = on
freenode.autoreconnect
freenode.autoreconnect_delay
freenode.nicks = "ryuslash"
freenode.username = "ryuslash"
freenode.realname
freenode.local_hostname
freenode.command
freenode.command_delay
freenode.autojoin
freenode.autorejoin
freenode.autorejoin_delay
freenode.connection_timeout
freenode.anti_flood_prio_high
freenode.anti_flood_prio_low
freenode.away_check
freenode.away_check_max_nicks
freenode.default_msg_part
freenode.default_msg_quit
freenode.notify

View file

@ -1,512 +0,0 @@
#
# weechat.conf -- weechat v0.3.6
#
[debug]
[startup]
command_after_plugins = ""
command_before_plugins = ""
display_logo = on
display_version = on
[look]
align_end_of_lines = message
bar_more_down = "++"
bar_more_left = "<<"
bar_more_right = ">>"
bar_more_up = "--"
buffer_notify_default = all
buffer_time_format = "%H:%M:%S"
color_basic_force_bold = off
color_inactive_buffer = off
color_inactive_message = on
color_inactive_prefix = on
color_inactive_prefix_buffer = on
color_inactive_time = off
color_inactive_window = off
color_pairs_auto_reset = 5
color_real_white = off
command_chars = ""
confirm_quit = off
day_change = on
day_change_time_format = "%a, %d %b %Y"
eat_newline_glitch = off
highlight = ""
highlight_regex = ""
highlight_tags = ""
hotlist_add_buffer_if_away = on
hotlist_buffer_separator = ", "
hotlist_count_max = 2
hotlist_count_min_msg = 2
hotlist_names_count = 3
hotlist_names_length = 0
hotlist_names_level = 12
hotlist_names_merged_buffers = off
hotlist_short_names = on
hotlist_sort = group_time_asc
hotlist_unique_numbers = on
input_cursor_scroll = 20
input_share = none
input_share_overwrite = off
input_undo_max = 32
item_buffer_filter = "*"
item_time_format = "%H:%M"
jump_current_to_previous_buffer = on
jump_previous_buffer_when_closing = on
mouse = off
mouse_timer_delay = 100
nickmode = on
nickmode_empty = off
paste_max_lines = 3
prefix_action = " *"
prefix_align = right
prefix_align_max = 0
prefix_align_min = 0
prefix_align_more = on
prefix_buffer_align = right
prefix_buffer_align_max = 0
prefix_buffer_align_more = on
prefix_error = "=!="
prefix_join = "-->"
prefix_network = "--"
prefix_quit = "<--"
prefix_suffix = "|"
read_marker = line
read_marker_always_show = off
read_marker_string = "- "
save_config_on_exit = on
save_layout_on_exit = none
scroll_amount = 3
scroll_page_percent = 100
search_text_not_found_alert = on
separator_horizontal = "-"
separator_vertical = ""
set_title = on
time_format = "%a, %d %b %Y %T"
[palette]
[color]
bar_more = lightmagenta
chat = default
chat_bg = default
chat_buffer = white
chat_channel = white
chat_delimiters = green
chat_highlight = yellow
chat_highlight_bg = magenta
chat_host = cyan
chat_inactive_buffer = darkgray
chat_inactive_window = darkgray
chat_nick = lightcyan
chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"
chat_nick_other = cyan
chat_nick_self = white
chat_prefix_action = white
chat_prefix_buffer = brown
chat_prefix_buffer_inactive_buffer = darkgray
chat_prefix_error = yellow
chat_prefix_join = lightgreen
chat_prefix_more = lightmagenta
chat_prefix_network = magenta
chat_prefix_quit = lightred
chat_prefix_suffix = green
chat_read_marker = magenta
chat_read_marker_bg = default
chat_server = brown
chat_tags = red
chat_text_found = yellow
chat_text_found_bg = lightmagenta
chat_time = default
chat_time_delimiters = brown
chat_value = cyan
input_actions = lightgreen
input_text_not_found = red
nicklist_away = cyan
nicklist_group = green
nicklist_offline = blue
separator = blue
status_count_highlight = magenta
status_count_msg = brown
status_count_other = default
status_count_private = green
status_data_highlight = lightmagenta
status_data_msg = yellow
status_data_other = default
status_data_private = lightgreen
status_filter = green
status_more = yellow
status_name = white
status_name_ssl = lightgreen
status_number = yellow
status_time = default
[completion]
default_template = "%(nicks)|%(irc_channels)"
nick_add_space = on
nick_completer = ":"
nick_first_only = off
nick_ignore_chars = "[]`_-^"
partial_completion_alert = on
partial_completion_command = off
partial_completion_command_arg = off
partial_completion_count = on
partial_completion_other = off
[history]
display_default = 5
max_commands = 100
max_lines = 4096
max_visited_buffers = 50
[proxy]
[network]
gnutls_ca_file = "%h/ssl/CAs.pem"
gnutls_handshake_timeout = 30
[plugin]
autoload = "*"
debug = off
extension = ".so"
path = "%h/plugins"
save_config_on_unload = on
[bar]
input.color_bg = default
input.color_delim = cyan
input.color_fg = default
input.conditions = ""
input.filling_left_right = vertical
input.filling_top_bottom = horizontal
input.hidden = off
input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
input.position = bottom
input.priority = 1000
input.separator = off
input.size = 1
input.size_max = 0
input.type = window
nicklist.color_bg = default
nicklist.color_delim = cyan
nicklist.color_fg = default
nicklist.conditions = "nicklist"
nicklist.filling_left_right = vertical
nicklist.filling_top_bottom = columns_vertical
nicklist.hidden = off
nicklist.items = "buffer_nicklist"
nicklist.position = right
nicklist.priority = 200
nicklist.separator = on
nicklist.size = 0
nicklist.size_max = 0
nicklist.type = window
status.color_bg = red
status.color_delim = cyan
status.color_fg = default
status.conditions = ""
status.filling_left_right = vertical
status.filling_top_bottom = horizontal
status.hidden = off
status.items = "[time],[buffer_count],[buffer_plugin],buffer_number+:+buffer_name+{buffer_nicklist_count}+buffer_filter,[lag],[hotlist],completion,scroll"
status.position = bottom
status.priority = 500
status.separator = off
status.size = 1
status.size_max = 0
status.type = window
title.color_bg = red
title.color_delim = cyan
title.color_fg = white
title.conditions = ""
title.filling_left_right = vertical
title.filling_top_bottom = horizontal
title.hidden = off
title.items = "buffer_title"
title.position = top
title.priority = 500
title.separator = off
title.size = 1
title.size_max = 0
title.type = window
[layout]
[notify]
[filter]
[key]
ctrl-? = "/input delete_previous_char"
ctrl-A = "/input move_beginning_of_line"
ctrl-B = "/input move_previous_char"
ctrl-Cb = "/input insert \x02"
ctrl-Cc = "/input insert \x03"
ctrl-Ci = "/input insert \x1D"
ctrl-Co = "/input insert \x0F"
ctrl-Cr = "/input insert \x12"
ctrl-Cu = "/input insert \x15"
ctrl-D = "/input delete_next_char"
ctrl-E = "/input move_end_of_line"
ctrl-F = "/input move_next_char"
ctrl-H = "/input delete_previous_char"
ctrl-I = "/input complete_next"
ctrl-J = "/input return"
ctrl-K = "/input delete_end_of_line"
ctrl-L = "/window refresh"
ctrl-M = "/input return"
ctrl-N = "/buffer +1"
ctrl-P = "/buffer -1"
ctrl-R = "/input search_text"
ctrl-Sctrl-U = "/input set_unread"
ctrl-T = "/input transpose_chars"
ctrl-U = "/input delete_beginning_of_line"
ctrl-W = "/input delete_previous_word"
ctrl-X = "/input switch_active_buffer"
ctrl-Y = "/input clipboard_paste"
meta-meta2-1~ = "/window scroll_top"
meta-meta2-23~ = "/bar scroll nicklist * yb"
meta-meta2-24~ = "/bar scroll nicklist * ye"
meta-meta2-4~ = "/window scroll_bottom"
meta-meta2-5~ = "/window scroll_up"
meta-meta2-6~ = "/window scroll_down"
meta-meta2-7~ = "/window scroll_top"
meta-meta2-8~ = "/window scroll_bottom"
meta-meta2-A = "/buffer -1"
meta-meta2-B = "/buffer +1"
meta-meta2-C = "/buffer +1"
meta-meta2-D = "/buffer -1"
meta-0 = "/buffer *10"
meta-1 = "/buffer *1"
meta-2 = "/buffer *2"
meta-3 = "/buffer *3"
meta-4 = "/buffer *4"
meta-5 = "/buffer *5"
meta-6 = "/buffer *6"
meta-7 = "/buffer *7"
meta-8 = "/buffer *8"
meta-9 = "/buffer *9"
meta-< = "/input jump_previously_visited_buffer"
meta-= = "/filter toggle"
meta-> = "/input jump_next_visited_buffer"
meta-OA = "/input history_global_previous"
meta-OB = "/input history_global_next"
meta-OC = "/input move_next_word"
meta-OD = "/input move_previous_word"
meta-OF = "/input move_end_of_line"
meta-OH = "/input move_beginning_of_line"
meta-Oa = "/input history_global_previous"
meta-Ob = "/input history_global_next"
meta-Oc = "/input move_next_word"
meta-Od = "/input move_previous_word"
meta2-15~ = "/buffer -1"
meta2-17~ = "/buffer +1"
meta2-18~ = "/window -1"
meta2-19~ = "/window +1"
meta2-1;3A = "/buffer -1"
meta2-1;3B = "/buffer +1"
meta2-1;3C = "/buffer +1"
meta2-1;3D = "/buffer -1"
meta2-1;5A = "/input history_global_previous"
meta2-1;5B = "/input history_global_next"
meta2-1~ = "/input move_beginning_of_line"
meta2-20~ = "/bar scroll title * x-50%"
meta2-21~ = "/bar scroll title * x+50%"
meta2-23~ = "/bar scroll nicklist * y-100%"
meta2-24~ = "/bar scroll nicklist * y+100%"
meta2-3~ = "/input delete_next_char"
meta2-4~ = "/input move_end_of_line"
meta2-5;3~ = "/window scroll_up"
meta2-5~ = "/window page_up"
meta2-6;3~ = "/window scroll_down"
meta2-6~ = "/window page_down"
meta2-7~ = "/input move_beginning_of_line"
meta2-8~ = "/input move_end_of_line"
meta2-A = "/input history_previous"
meta2-B = "/input history_next"
meta2-C = "/input move_next_char"
meta2-D = "/input move_previous_char"
meta2-F = "/input move_end_of_line"
meta2-G = "/window page_down"
meta2-H = "/input move_beginning_of_line"
meta2-I = "/window page_up"
meta2-Z = "/input complete_previous"
meta-_ = "/input redo"
meta-a = "/input jump_smart"
meta-b = "/input move_previous_word"
meta-d = "/input delete_next_word"
meta-f = "/input move_next_word"
meta-h = "/input hotlist_clear"
meta-jmeta-l = "/input jump_last_buffer"
meta-jmeta-r = "/server raw"
meta-jmeta-s = "/server jump"
meta-j01 = "/buffer 1"
meta-j02 = "/buffer 2"
meta-j03 = "/buffer 3"
meta-j04 = "/buffer 4"
meta-j05 = "/buffer 5"
meta-j06 = "/buffer 6"
meta-j07 = "/buffer 7"
meta-j08 = "/buffer 8"
meta-j09 = "/buffer 9"
meta-j10 = "/buffer 10"
meta-j11 = "/buffer 11"
meta-j12 = "/buffer 12"
meta-j13 = "/buffer 13"
meta-j14 = "/buffer 14"
meta-j15 = "/buffer 15"
meta-j16 = "/buffer 16"
meta-j17 = "/buffer 17"
meta-j18 = "/buffer 18"
meta-j19 = "/buffer 19"
meta-j20 = "/buffer 20"
meta-j21 = "/buffer 21"
meta-j22 = "/buffer 22"
meta-j23 = "/buffer 23"
meta-j24 = "/buffer 24"
meta-j25 = "/buffer 25"
meta-j26 = "/buffer 26"
meta-j27 = "/buffer 27"
meta-j28 = "/buffer 28"
meta-j29 = "/buffer 29"
meta-j30 = "/buffer 30"
meta-j31 = "/buffer 31"
meta-j32 = "/buffer 32"
meta-j33 = "/buffer 33"
meta-j34 = "/buffer 34"
meta-j35 = "/buffer 35"
meta-j36 = "/buffer 36"
meta-j37 = "/buffer 37"
meta-j38 = "/buffer 38"
meta-j39 = "/buffer 39"
meta-j40 = "/buffer 40"
meta-j41 = "/buffer 41"
meta-j42 = "/buffer 42"
meta-j43 = "/buffer 43"
meta-j44 = "/buffer 44"
meta-j45 = "/buffer 45"
meta-j46 = "/buffer 46"
meta-j47 = "/buffer 47"
meta-j48 = "/buffer 48"
meta-j49 = "/buffer 49"
meta-j50 = "/buffer 50"
meta-j51 = "/buffer 51"
meta-j52 = "/buffer 52"
meta-j53 = "/buffer 53"
meta-j54 = "/buffer 54"
meta-j55 = "/buffer 55"
meta-j56 = "/buffer 56"
meta-j57 = "/buffer 57"
meta-j58 = "/buffer 58"
meta-j59 = "/buffer 59"
meta-j60 = "/buffer 60"
meta-j61 = "/buffer 61"
meta-j62 = "/buffer 62"
meta-j63 = "/buffer 63"
meta-j64 = "/buffer 64"
meta-j65 = "/buffer 65"
meta-j66 = "/buffer 66"
meta-j67 = "/buffer 67"
meta-j68 = "/buffer 68"
meta-j69 = "/buffer 69"
meta-j70 = "/buffer 70"
meta-j71 = "/buffer 71"
meta-j72 = "/buffer 72"
meta-j73 = "/buffer 73"
meta-j74 = "/buffer 74"
meta-j75 = "/buffer 75"
meta-j76 = "/buffer 76"
meta-j77 = "/buffer 77"
meta-j78 = "/buffer 78"
meta-j79 = "/buffer 79"
meta-j80 = "/buffer 80"
meta-j81 = "/buffer 81"
meta-j82 = "/buffer 82"
meta-j83 = "/buffer 83"
meta-j84 = "/buffer 84"
meta-j85 = "/buffer 85"
meta-j86 = "/buffer 86"
meta-j87 = "/buffer 87"
meta-j88 = "/buffer 88"
meta-j89 = "/buffer 89"
meta-j90 = "/buffer 90"
meta-j91 = "/buffer 91"
meta-j92 = "/buffer 92"
meta-j93 = "/buffer 93"
meta-j94 = "/buffer 94"
meta-j95 = "/buffer 95"
meta-j96 = "/buffer 96"
meta-j97 = "/buffer 97"
meta-j98 = "/buffer 98"
meta-j99 = "/buffer 99"
meta-k = "/input grab_key_command"
meta-n = "/window scroll_next_highlight"
meta-p = "/window scroll_previous_highlight"
meta-r = "/input delete_line"
meta-u = "/input scroll_unread"
meta-wmeta-meta2-A = "/window up"
meta-wmeta-meta2-B = "/window down"
meta-wmeta-meta2-C = "/window right"
meta-wmeta-meta2-D = "/window left"
meta-wmeta2-1;3A = "/window up"
meta-wmeta2-1;3B = "/window down"
meta-wmeta2-1;3C = "/window right"
meta-wmeta2-1;3D = "/window left"
meta-wmeta-b = "/window balance"
meta-wmeta-s = "/window swap"
meta-z = "/window zoom"
ctrl-_ = "/input undo"
[key_search]
ctrl-J = "/input search_stop"
ctrl-M = "/input search_stop"
ctrl-R = "/input search_switch_case"
meta2-A = "/input search_previous"
meta2-B = "/input search_next"
[key_cursor]
ctrl-J = "/cursor stop"
ctrl-M = "/cursor stop"
meta-meta2-A = "/cursor move area_up"
meta-meta2-B = "/cursor move area_down"
meta-meta2-C = "/cursor move area_right"
meta-meta2-D = "/cursor move area_left"
meta2-1;3A = "/cursor move area_up"
meta2-1;3B = "/cursor move area_down"
meta2-1;3C = "/cursor move area_right"
meta2-1;3D = "/cursor move area_left"
meta2-A = "/cursor move up"
meta2-B = "/cursor move down"
meta2-C = "/cursor move right"
meta2-D = "/cursor move left"
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
@chat:m = "hsignal:chat_quote_message;/cursor stop"
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
[key_mouse]
@bar(input):button2 = "/input grab_mouse_area"
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
@chat:button1 = "/window ${_window_number}"
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
@chat:wheelup = "/window scroll_up -window ${_window_number}"
@*:button3 = "/cursor go ${_x},${_y}"

View file

@ -127,6 +127,12 @@
(close-pipe dzen-pipe)
(set! dzen-pipe '())))
(define (kill-mouse)
(run-command "synclient TouchpadOff=1; xte 'mousemove 1500 1500'"))
(define (revive-mouse)
(run-command "synclient TouchpadOff=0"))
(define (notify msg)
(run-command (string-append "notify-send \"" msg "\"")))
@ -197,6 +203,8 @@
(xbindkey '(XF86AudioRaiseVolume) "mcp volume +5")
(xbindkey '(XF86AudioPrev) "mpc prev")
(xbindkey '(XF86AudioNext) "mpc next")
(xbindkey-function '(XF86TouchpadOff) kill-mouse)
(xbindkey-function '(XF86TouchpadOn) revive-mouse)
(xbindkey `(,modkey k) "herbstclient close")
(xbindkey `(,modkey Escape) "~/.config/herbstluftwm/panel.sh"))

View file

@ -1,26 +1,4 @@
#!/bin/bash
function update_mowedline_mpd ()
{
while read action; do
if [ "$action" == "player" ]; then
IFS='' read -ra INFO <<< "`mpc status | tr '\n' `"
if [ "${INFO[1]}" == "" ]; then
mowedline-client -update mpd ""
else
TXT=" ${INFO[0]}"
ST="`echo ${INFO[1]} | sed 's/\[\(.*\)\] .*/\1/'`"
if [ "$ST" == "paused" ]; then
TXT="$TXT (paused)"
fi
mowedline-client -update mpd " $TXT"
fi
fi
done
}
xmodmap ~/.Xmodmap
# Source scripts in /etc/X11/xinit/xinitrc.d/
@ -31,17 +9,7 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
unset f
fi
emacs --daemon &
redshift -l 51.1180:4.0012 &
unclutter &
mowedline &
xcompmgr -n -r 0 &
feh --bg-tile ~/pictures/wallpapers/wallpaper-864137.jpg
# xbindkeys
{
mpc idleloop | update_mowedline_mpd
} &
test -n "$1" && wm=$1 || wm="stumpwm"
test -n "$1" && wm=$1 || wm="$HOME/usr/local/bin/dwm"
exec $wm

View file

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

View file

@ -1,7 +1,4 @@
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 venv
SUBDIR=functions
objects=env venv add-to-list
include ../../dotfiles.mk

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