Update dotfiles
This commit is contained in:
parent
8ae90ffbd1
commit
6c2db7df0e
135 changed files with 2196 additions and 5178 deletions
42
.Xdefaults
42
.Xdefaults
|
@ -25,32 +25,32 @@ 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,11 +61,17 @@ Xft.hintstyle: hintslight
|
|||
Emacs.menuBar: off
|
||||
Emacs.toolbar: off
|
||||
Emacs.useXIM: off
|
||||
Emacs.background: #bfbfbf
|
||||
Emacs.borderWidth: 0
|
||||
Emacs.font: Envy Code R-10
|
||||
Emacs.foreground: #111111
|
||||
Emacs.internalBorder: 0
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,183 +0,0 @@
|
|||
-- -*- coding: utf-8 -*-
|
||||
--------------------------------------------------------------------------------
|
||||
-- @author Nicolas Berthier <nberthier@gmail.com>
|
||||
-- @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
|
|
@ -1,334 +0,0 @@
|
|||
-- -*- coding: utf-8 -*-
|
||||
--------------------------------------------------------------------------------
|
||||
-- @author Nicolas Berthier <nberthier@gmail.com>
|
||||
-- @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
|
|
@ -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
|
|
@ -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.magnifier,
|
||||
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.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)
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
modules=custom
|
||||
|
||||
include ../../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/custom
|
||||
objects=theme.lua
|
||||
|
||||
include ../../../../dotfiles.mk
|
|
@ -1,3 +0,0 @@
|
|||
Background images:
|
||||
Mikael Eriksson <mikael_eriksson@miffe.org>
|
||||
Licensed under CC-BY-SA-3.0
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/clfswm
|
||||
objects=clfswmrc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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")
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/cower
|
||||
SUBDIR=cower
|
||||
objects=config
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/dunst
|
||||
SUBDIR=dunst
|
||||
objects=dunstrc
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/fehlstart
|
||||
objects=fehlstart.rc
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/fish
|
||||
objects=config.fish
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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
|
|
@ -1,6 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/herbstluftwm
|
||||
objects=autostart panel.sh
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
||||
install-autostart: MODE=744
|
|
@ -1,121 +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 pad 0 21
|
|
@ -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:
|
3
.config/newsbeuter/.gitignore
vendored
3
.config/newsbeuter/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
|||
cache.*
|
||||
credentials
|
||||
history.*
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/newsbeuter
|
||||
objects=config urls
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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
|
|
@ -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
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/zathura
|
||||
SUBDIR=zathura
|
||||
objects=zathurarc
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/.conkerorrc
|
||||
modules=themes styles
|
||||
SUBDIR=.conkerorrc
|
||||
objects=gtk2rc init.js ext_restore.js
|
||||
|
||||
include ../dotfiles.mk
|
||||
|
|
|
@ -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");
|
||||
|
|
1
.conkerorrc/styles/.gitignore
vendored
1
.conkerorrc/styles/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
*.css
|
|
@ -1,7 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/styles
|
||||
objects=github.css help.css git-scm.css
|
||||
|
||||
include ../../dotfiles.mk
|
||||
|
||||
$(objects): %.css: %.less
|
||||
lessc -x $^ > $@
|
|
@ -1,4 +0,0 @@
|
|||
@import "tango";
|
||||
|
||||
@monospace-font: "Envy Code R";
|
||||
@background: #111113;
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
modules=naquadah yoshi
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ "sheets" : [
|
||||
"conkeror--scrollbars.css",
|
||||
"new-tabs.css",
|
||||
"minibuffer.css",
|
||||
"mode-line.css",
|
||||
"hints--url-panel.css",
|
||||
"tab-bar.css"
|
||||
]
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{ "sheets" : [
|
||||
"conkeror--scrollbars.css",
|
||||
"new-tabs.css",
|
||||
"minibuffer.css",
|
||||
"mode-line.css",
|
||||
"hints--url-panel.css",
|
||||
"tab-bar.css"
|
||||
]
|
||||
}
|
312
.emacs.d/init.el
312
.emacs.d/init.el
|
@ -1,312 +0,0 @@
|
|||
;;; init.el --- ryuslash's emacs init
|
||||
|
||||
;;; Commentary:
|
||||
;; Does so much and changes so often
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
||||
(load (concat user-emacs-directory "init2"))
|
||||
|
||||
(defface git-commit-summary-face
|
||||
'((t (:inherit org-level-1)))
|
||||
"Face for the git title line."
|
||||
:group 'local)
|
||||
|
||||
(defface git-commit-overlong-summary-face
|
||||
'((t (:background "#873732")))
|
||||
"Face for commit titles that are too long."
|
||||
:group 'local)
|
||||
|
||||
(defface git-commit-nonempty-second-line-face
|
||||
'((t (:inherit git-commit-overlong-summary-face)))
|
||||
"Face for the supposedly empty line in commit messages."
|
||||
:group 'local)
|
||||
|
||||
(eval-after-load "ido" '(oni:ido-init))
|
||||
(eval-after-load "jabber" '(oni:jabber-init))
|
||||
(eval-after-load "newst-treeview" '(require 'newsticker-init))
|
||||
(eval-after-load "org" '(require 'org-init))
|
||||
(eval-after-load "rainbow-mode" '(oni:rainbow-mode-init))
|
||||
(eval-after-load "smex" '(oni:smex-init))
|
||||
(eval-after-load "yasnippet" '(oni:yasnippet-init))
|
||||
|
||||
(autoload 'define-slime-contrib "slime")
|
||||
(autoload 'gtags-mode "gtags" nil t)
|
||||
(autoload 'jabber-connect "jabber" nil t)
|
||||
(autoload 'php-mode "php-mode" nil t)
|
||||
(autoload 'po-mode "po-mode" nil t)
|
||||
(autoload 'pony-mode "pony-mode" nil t)
|
||||
(autoload 'sawfish-mode "sawfish" nil t)
|
||||
(autoload 'server-running-p "server")
|
||||
(autoload 'slime-js-minor-mode "slime-js" nil t)
|
||||
(autoload 'xmodmap-mode "xmodmap-mode" nil t)
|
||||
(autoload 'w3m-bookmark-view "w3m" nil t)
|
||||
(autoload 'w3m-goto-url "w3m" nil t)
|
||||
|
||||
(require 'geiser-install)
|
||||
(require 'uniquify)
|
||||
(require 'ext)
|
||||
(require 'oni)
|
||||
|
||||
(put 'upcase-region 'disabled nil)
|
||||
(put 'downcase-region 'disabled nil)
|
||||
(put 'narrow-to-region 'disabled nil)
|
||||
(put 'scroll-left 'disabled nil)
|
||||
|
||||
(setq-default bidi-paragraph-direction 'left-to-right)
|
||||
(setq-default c-basic-offset 4)
|
||||
(setq-default fci-rule-column 73)
|
||||
(setq-default gac-automatically-push-p t)
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq-default php-mode-warn-if-mumamo-off nil)
|
||||
(setq-default require-final-newline t)
|
||||
(setq-default tab-width 4)
|
||||
(setq-default truncate-lines t)
|
||||
|
||||
(setq appt-disp-window-function #'oni:appt-display-window-and-jabber)
|
||||
(setq appt-display-diary nil)
|
||||
(setq auto-mode-case-fold nil)
|
||||
(setq auto-save-file-name-transforms oni:auto-save-name-transforms)
|
||||
(setq avandu-article-render-function #'avandu-view-w3m)
|
||||
(setq backup-directory-alist oni:backup-directory-alist)
|
||||
(setq browse-url-browser-function 'browse-url-generic)
|
||||
(setq browse-url-generic-program (getenv "BROWSER"))
|
||||
(setq c-offsets-alist '((statement-block-intro . +)
|
||||
(knr-argdecl-intro . 5)
|
||||
(substatement-open . +)
|
||||
(substatement-label . 0)
|
||||
(label . 0)
|
||||
(statement-case-open . +)
|
||||
(statement-cont . +)
|
||||
(arglist-intro . +)
|
||||
(arglist-close . 0)
|
||||
(inline-open . 0)
|
||||
(brace-list-open . +)
|
||||
(topmost-intro-cont first c-lineup-topmost-intro-cont
|
||||
c-lineup-gnu-DEFUN-intro-cont)))
|
||||
(setq comment-auto-fill-only-comments t)
|
||||
(setq custom-file "~/.emacs.d/custom.el")
|
||||
(setq custom-theme-directory "~/.emacs.d/themes")
|
||||
(setq default-frame-alist
|
||||
`((border-width . 0)
|
||||
(internal-border-width . 0)
|
||||
(vertical-scroll-bars . nil)
|
||||
(menu-bar-lines . nil)
|
||||
(tool-bar-lines . nil)
|
||||
(font . "Envy Code R:pixelsize=18")
|
||||
(alpha 90 90)))
|
||||
(setq elnode-do-init nil)
|
||||
(setq erc-autojoin-channels-alist
|
||||
'(("freenode.net" "#ninthfloor" "#emacs")))
|
||||
(setq erc-hide-list '("JOIN" "PART" "QUIT"))
|
||||
(setq erc-insert-timestamp-function 'erc-insert-timestamp-left)
|
||||
(setq erc-nick "ryuslash")
|
||||
(setq erc-timestamp-format "[%H:%M] ")
|
||||
(setq erc-timestamp-only-if-changed-flag nil)
|
||||
(setq fci-rule-color "darkred")
|
||||
(setq frame-title-format '(:eval (concat "emacs: " (buffer-name))))
|
||||
(setq geiser-repl-history-filename "~/.emacs.d/geiser-history")
|
||||
(setq gnus-init-file "~/.emacs.d/gnus")
|
||||
(setq gtags-auto-update t)
|
||||
(setq help-at-pt-display-when-idle t)
|
||||
(setq highlight-80+-columns 72)
|
||||
(setq identica-enable-striping t)
|
||||
(setq ido-auto-merge-delay-time 1000000)
|
||||
(setq ido-default-buffer-method 'selected-window)
|
||||
(setq ido-max-window-height 1)
|
||||
(setq ido-save-directory-list-file nil)
|
||||
(setq ido-ubiquitous-command-exceptions
|
||||
'(org-refile org-capture-refile))
|
||||
(setq inferior-lisp-program "sbcl")
|
||||
(setq inhibit-default-init t)
|
||||
(setq inhibit-local-menu-bar-menus t)
|
||||
(setq inhibit-startup-message t)
|
||||
(setq initial-major-mode 'emacs-lisp-mode)
|
||||
(setq initial-scratch-message nil)
|
||||
(setq jabber-account-list '(("ryuslash@jabber.org")
|
||||
("tom@ryuslash.org/Emacs"
|
||||
(:connection-type . ssl))))
|
||||
(setq jabber-chat-buffer-format "*jab:%n*")
|
||||
(setq jabber-chat-buffer-show-avatar nil)
|
||||
(setq jabber-chat-fill-long-lines nil)
|
||||
(setq jabber-chat-foreign-prompt-format "%t %u/%r <\n")
|
||||
(setq jabber-chat-local-prompt-format "%t %u/%r >\n")
|
||||
(setq jabber-chatstates-confirm nil)
|
||||
(setq jabber-history-dir "~/.emacs.d/jabber")
|
||||
(setq jabber-muc-autojoin '("aethon@muc.ryuslash.org"))
|
||||
(setq jabber-roster-show-bindings nil)
|
||||
(setq jit-lock-defer-time 0.2)
|
||||
(setq magit-repo-dirs '("~/projects/" "~/var/src/"))
|
||||
(setq message-log-max 1000)
|
||||
(setq message-send-mail-function 'message-send-mail-with-sendmail)
|
||||
(setq message-sendmail-extra-arguments '("-a" "ryuslash"))
|
||||
(setq package-archives
|
||||
'(("melpa" . "http://melpa.milkbox.net/packages/")
|
||||
("marmalade" . "http://marmalade-repo.org/packages/")
|
||||
("gnu" . "http://elpa.gnu.org/packages/")))
|
||||
(setq package-load-list '((htmlize "1.39")
|
||||
(lua-mode "20111107")
|
||||
all))
|
||||
(setq php-function-call-face 'font-lock-function-name-face)
|
||||
(setq php-mode-force-pear t)
|
||||
(setq pony-tpl-indent-moves t)
|
||||
(setq pp^L-^L-string-function 'oni:pretty-control-l-function)
|
||||
(setq pp^L-^L-string-pre nil)
|
||||
(setq rainbow-delimiters-max-face-count 12)
|
||||
(setq redisplay-dont-pause t)
|
||||
(setq send-mail-function 'smtpmail-send-it)
|
||||
(setq sendmail-program "/usr/bin/msmtp")
|
||||
(setq sentence-end-double-space nil)
|
||||
(setq smex-key-advice-ignore-menu-bar t)
|
||||
(setq smex-save-file "~/.emacs.d/smex-items")
|
||||
(setq split-height-threshold 40)
|
||||
(setq time-stamp-active t)
|
||||
(setq time-stamp-format "%04y-%02m-%02d %02H:%02M:%02S (%u)")
|
||||
(setq type-break-good-rest-interval (* 60 10))
|
||||
(setq type-break-interval (* 60 50))
|
||||
(setq type-break-keystroke-threshold '(nil . nil))
|
||||
(setq uniquify-buffer-name-style 'post-forward)
|
||||
(setq use-dialog-box nil)
|
||||
(setq user-full-name "Tom Willemsen")
|
||||
(setq user-mail-address "tom@ryuslash.org")
|
||||
(setq w3m-fill-column 72)
|
||||
(setq window-combination-resize t)
|
||||
(setq yas-fallback-behavior nil)
|
||||
(setq yas-prompt-functions '(yas-ido-prompt))
|
||||
|
||||
(add-hook 'after-change-major-mode-hook 'set-current-mode-icon)
|
||||
(add-hook 'after-save-hook 'oni:after-save-func t)
|
||||
(add-hook 'before-save-hook 'oni:before-save-func)
|
||||
(add-hook 'c-mode-hook 'oni:c-mode-func)
|
||||
(add-hook 'css-mode-hook 'oni:css-mode-func)
|
||||
(add-hook 'diary-display-hook 'oni:diary-display-func)
|
||||
(add-hook 'emacs-startup-hook 'oni:emacs-startup-func)
|
||||
(add-hook 'emacs-lisp-mode-hook 'oni:emacs-lisp-mode-func)
|
||||
(add-hook 'erc-mode-hook 'oni:erc-mode-func)
|
||||
(add-hook 'go-mode-hook 'oni:go-mode-func)
|
||||
(add-hook 'gtags-mode-hook 'oni:gtags-mode-func)
|
||||
(add-hook 'haskell-mode-hook 'oni:haskell-mode-func)
|
||||
(add-hook 'html-mode-hook 'oni:html-mode-func)
|
||||
(add-hook 'jabber-alert-message-hooks 'oni:jabber-alert-message-func)
|
||||
(add-hook 'jabber-chat-mode-hook 'oni:jabber-chat-mode-func)
|
||||
(add-hook 'jabber-roster-mode-hook 'oni:jabber-roster-mode-func)
|
||||
(add-hook 'java-mode-hook 'oni:java-mode-func)
|
||||
(add-hook 'js-mode-hook 'oni:js-mode-func)
|
||||
(add-hook 'js2-mode-hook 'oni:js2-mode-func)
|
||||
(add-hook 'lua-mode-hook 'oni:lua-mode-func)
|
||||
(add-hook 'magit-log-edit-mode-hook 'oni:magit-log-edit-mode-func)
|
||||
(add-hook 'markdown-mode-hook 'oni:markdown-mode-func)
|
||||
(add-hook 'message-mode-hook 'oni:message-mode-func)
|
||||
(add-hook 'org-mode-hook 'oni:org-mode-func)
|
||||
(add-hook 'php-mode-hook 'oni:php-mode-func)
|
||||
(add-hook 'prog-mode-hook 'oni:prog-mode-func)
|
||||
(add-hook 'python-mode-hook 'oni:python-mode-func)
|
||||
(add-hook 'rst-mode-hook 'oni:rst-mode-func)
|
||||
(add-hook 'term-mode-hook 'oni:term-mode-func)
|
||||
(add-hook 'texinfo-mode-hook 'oni:texinfo-mode-func)
|
||||
(add-hook 'write-file-hooks 'oni:write-file-func)
|
||||
(add-hook 'yas-minor-mode-hook 'oni:yas-minor-mode-func)
|
||||
|
||||
(define-key key-translation-map (kbd "C-j") (kbd "C-l"))
|
||||
(define-key key-translation-map (kbd "C-l") (kbd "C-j"))
|
||||
|
||||
(global-set-key (kbd "'") 'oni:self-insert-dwim)
|
||||
(global-set-key (kbd "<XF86HomePage>") 'oni:raise-scratch)
|
||||
(global-set-key (kbd "<XF86Mail>") 'oni:view-mail)
|
||||
(global-set-key (kbd "<f10>") 'git-project-show-files)
|
||||
(global-set-key (kbd "<f5>") 'ext:reload-buffer)
|
||||
(global-set-key (kbd "<f6>") 'jabber-switch-to-roster-buffer)
|
||||
(global-set-key (kbd "<f7>") 'magit-status)
|
||||
(global-set-key (kbd "<hiragana>") 'oni:show-org-index)
|
||||
(global-set-key (kbd "C-<") 'oni:indent-shift-left)
|
||||
(global-set-key (kbd "C->") 'oni:indent-shift-right)
|
||||
(global-set-key (kbd "C-M-4") 'split-window-vertically)
|
||||
(global-set-key (kbd "C-M-SPC") 'er/expand-region)
|
||||
(global-set-key (kbd "C-M-d") 'kill-word)
|
||||
(global-set-key (kbd "C-M-w") 'backward-kill-word)
|
||||
(global-set-key (kbd "C-S-k") 'kill-whole-line)
|
||||
(global-set-key (kbd "C-a") 'oni:move-beginning-of-dwim)
|
||||
(global-set-key (kbd "C-c a") 'org-agenda)
|
||||
(global-set-key (kbd "C-c c") 'org-capture)
|
||||
(global-set-key (kbd "C-c i p") 'identica-update-status-interactive)
|
||||
(global-set-key (kbd "C-c p") 'oni:show-buffer-position)
|
||||
(global-set-key (kbd "C-c t") 'oni:raise-ansi-term)
|
||||
(global-set-key (kbd "C-d") 'oni:kill-region-or-forward-char)
|
||||
(global-set-key (kbd "C-e") 'oni:move-end-of-dwim)
|
||||
(global-set-key (kbd "C-k") 'oni:kill-region-or-line)
|
||||
(global-set-key (kbd "C-w") 'oni:kill-region-or-backward-char)
|
||||
(global-set-key (kbd "M-0") 'delete-window)
|
||||
(global-set-key (kbd "M-1") 'delete-other-windows)
|
||||
(global-set-key (kbd "M-2") 'split-window-below)
|
||||
(global-set-key (kbd "M-3") 'split-window-right)
|
||||
(global-set-key (kbd "M-4") 'split-window-horizontally)
|
||||
(global-set-key (kbd "M-n") 'idomenu)
|
||||
(global-set-key (kbd "M-o") 'other-window)
|
||||
(global-set-key (kbd "\"") 'oni:self-insert-dwim)
|
||||
|
||||
(if (daemonp)
|
||||
(global-set-key "\C-x\C-c" 'oni:close-client-window))
|
||||
|
||||
(when (or window-system (daemonp))
|
||||
(global-unset-key "\C-z"))
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.jl$" . sawfish-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . js2-mode))
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("\\.m\\(ark\\)?d\\(?:o?wn\\)?$" . markdown-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.php[345]?$" . php-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.po\\'\\|\\.po\\." . po-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.tpl$" . html-mode))
|
||||
(add-to-list 'auto-mode-alist '("^PKGBUILD$" . shell-script-mode))
|
||||
(add-to-list 'auto-mode-alist '("^\\.Xmodmap$" . xmodmap-mode))
|
||||
|
||||
(add-to-list 'compilation-finish-functions
|
||||
'oni:compilation-finish-function)
|
||||
|
||||
(add-to-list 'debug-ignored-errors "^Can't shift all lines enough")
|
||||
|
||||
(add-to-list
|
||||
'display-buffer-alist
|
||||
'("^\\*\\(?:.+-\\)?scratch\\*$" . ((display-buffer-same-window . nil))))
|
||||
(add-to-list
|
||||
'display-buffer-alist
|
||||
'("^\\*git-project-list\\*$" . ((git-project-show-window . nil))))
|
||||
(add-to-list
|
||||
'display-buffer-alist
|
||||
'("^\\*magit: .*\\*$" . ((display-buffer-same-window . nil))))
|
||||
|
||||
(blink-cursor-mode -1)
|
||||
(column-number-mode -1)
|
||||
(line-number-mode -1)
|
||||
(tooltip-mode -1)
|
||||
|
||||
(package-initialize)
|
||||
|
||||
(auto-insert-mode)
|
||||
(cua-selection-mode t)
|
||||
(electric-indent-mode)
|
||||
(electric-pair-mode)
|
||||
(ido-mode)
|
||||
(ido-ubiquitous-mode)
|
||||
(savehist-mode)
|
||||
(show-paren-mode)
|
||||
(winner-mode)
|
||||
(display-battery-mode)
|
||||
|
||||
(smex-initialize)
|
||||
(help-at-pt-set-timer)
|
||||
(windmove-default-keybindings)
|
||||
(global-diff-hl-mode)
|
||||
|
||||
(load custom-file)
|
||||
;; (load "rudel-loaddefs.el")
|
||||
|
||||
(unless (server-running-p)
|
||||
(server-start))
|
||||
|
||||
(diminish 'auto-fill-function "_")
|
||||
|
||||
(provide 'init)
|
||||
|
||||
;;; init.el ends here
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -0,0 +1 @@
|
|||
Makefile.old
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.local
|
||||
modules=share
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/share
|
||||
modules=applications
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/applications
|
||||
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
|
||||
|
||||
include ../../../dotfiles.mk
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
5
.moc/.gitignore
vendored
|
@ -1,5 +0,0 @@
|
|||
cache/
|
||||
equalizer
|
||||
last_directory
|
||||
softmixer
|
||||
tags_cache
|
|
@ -1,5 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.moc
|
||||
modules=themes
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/themes
|
||||
objects=custom
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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
4
.mutt/.gitignore
vendored
|
@ -1,4 +0,0 @@
|
|||
cache
|
||||
temp
|
||||
alias
|
||||
certificates
|
|
@ -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
|
|
@ -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"
|
|
@ -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"
|
|
@ -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
|
|
@ -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"
|
|
@ -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"
|
|
@ -1 +0,0 @@
|
|||
macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'
|
|
@ -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
|
121
.mutt/muttrc
121
.mutt/muttrc
|
@ -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
|
|
@ -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"
|
|
@ -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"
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.ncmpcpp
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -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)
|
|
@ -8,7 +8,7 @@ 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
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.pentadactyl
|
||||
modules=plugins
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/plugins
|
||||
objects=emacs.penta
|
||||
|
||||
include ../../dotfiles.mk
|
|
@ -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>
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.sawfish
|
||||
objects=rc
|
||||
|
||||
include ../dotfiles.mk
|
159
.sawfish/rc
159
.sawfish/rc
|
@ -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)))
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/.ssh
|
||||
SUBDIR=.ssh
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
||||
|
|
102
.stumpwmrc
102
.stumpwmrc
|
@ -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
|
||||
(append
|
||||
(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))
|
||||
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)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/.w3m
|
||||
SUBDIR=.w3m
|
||||
objects=config
|
||||
|
||||
include ../dotfiles.mk
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
DESTDIR:=$(DESTDIR)/.weechat
|
||||
objects=alias.conf irc.conf weechat.conf
|
||||
|
||||
include ../dotfiles.mk
|
|
@ -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]
|
|
@ -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
|
|
@ -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}"
|
|
@ -1,4 +1,4 @@
|
|||
DESTDIR:=$(DESTDIR)/.zsh
|
||||
SUBDIR=.zsh
|
||||
modules=functions
|
||||
|
||||
include ../dotfiles.mk
|
||||
|
|
|
@ -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
|
||||
|
|
10
.zsh/functions/add-to-list
Normal file
10
.zsh/functions/add-to-list
Normal file
|
@ -0,0 +1,10 @@
|
|||
# -*- mode: sh; -*-
|
||||
if [[ ! "${(P)${1}}" =~ (^|:)"$2"(:|$) ]]; then
|
||||
if [ -n "$3" ]; then
|
||||
# Append
|
||||
typeset -g $1="${(P)${1}}:$2"
|
||||
else
|
||||
# Prepend
|
||||
typeset -g $1="$2:${(P)${1}}"
|
||||
fi
|
||||
fi
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue