Compare commits
78 commits
Author | SHA1 | Date | |
---|---|---|---|
6c2db7df0e | |||
8ae90ffbd1 | |||
55ca176cd5 | |||
caf0ec0fb1 | |||
855fc62edb | |||
5cc3df232d | |||
7559ee8257 | |||
934d02bcac | |||
06ff316f7f | |||
12fbc83cc7 | |||
ef288f8ad6 | |||
5cff0a1e09 | |||
38194c9c34 | |||
a95c1528ab | |||
6278e2e634 | |||
fa717d86a0 | |||
258cda86ca | |||
9c12ab5718 | |||
57e1063403 | |||
60f8f37817 | |||
96b2ebe6e8 | |||
e0b16d97cb | |||
cbdfa4cac3 | |||
d6be1ae80f | |||
ab3e4c680e | |||
5c4c72f56f | |||
434357f917 | |||
a38c6eee1a | |||
821793e7de | |||
862088a691 | |||
ff6639d051 | |||
77c39ea0f0 | |||
8bcf0ae40f | |||
52abe4f881 | |||
5b8d412cf7 | |||
b2de3d6412 | |||
1a767eeab0 | |||
aa949b255f | |||
fa473dd629 | |||
c4ea2643f6 | |||
72d124100d | |||
8b1b423d0a | |||
69fd0e5aef | |||
f3982b8c33 | |||
9fb7650a9d | |||
90cccbae8a | |||
df1105ec76 | |||
20181fab25 | |||
853f43c483 | |||
0b775a872e | |||
88a63ffaa3 | |||
ab76bcaa64 | |||
651ab5625d | |||
904ab2e1e7 | |||
8b848d08b3 | |||
ff81e2f66f | |||
84e69b2120 | |||
251077982f | |||
1fe74dd726 | |||
20d500539d | |||
4ce7e72c08 | |||
b4ee071aeb | |||
922b5fda86 | |||
8f46bf4cbb | |||
fd2fd41a8e | |||
883ec95f09 | |||
fada655438 | |||
ab27e7a3bb | |||
f1532bd578 | |||
4857418dbd | |||
a925132b75 | |||
db354a5b6d | |||
b7dad365c8 | |||
6e999ca93d | |||
13b9c2c80d | |||
79fa706eeb | |||
887ddee93c | |||
6b6484e83c |
137 changed files with 2203 additions and 4983 deletions
60
.Xdefaults
60
.Xdefaults
|
@ -20,37 +20,37 @@ urxvt.keysym.M-s: perl:keyboard-select:search
|
||||||
|
|
||||||
urxvt.keysym.M-u: perl:url-select:select_next
|
urxvt.keysym.M-u: perl:url-select:select_next
|
||||||
|
|
||||||
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=18
|
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=12
|
||||||
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=18
|
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=12
|
||||||
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=18
|
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=12
|
||||||
|
|
||||||
urxvt.depth: 32
|
urxvt.depth: 32
|
||||||
urxvt.background: #111113
|
urxvt.background: #bfbfbf
|
||||||
urxvt.foreground: #eeeeec
|
urxvt.foreground: #111111
|
||||||
|
|
||||||
urxvt.color0: #111113
|
urxvt.color0: #3d3d3d
|
||||||
urxvt.color8: #eeeeec
|
urxvt.color8: #111111
|
||||||
|
|
||||||
urxvt.color1: #734a4a
|
urxvt.color1: #543f3f
|
||||||
urxvt.color9: #bf7d7d
|
urxvt.color9: #541515
|
||||||
|
|
||||||
urxvt.color2: #52734a
|
urxvt.color2: #43543f
|
||||||
urxvt.color10: #8abf6d
|
urxvt.color10: #225415
|
||||||
|
|
||||||
urxvt.color3: #6b734a
|
urxvt.color3: #50543f
|
||||||
urxvt.color11: #b2bf6d
|
urxvt.color11: #485415
|
||||||
|
|
||||||
urxvt.color4: #4a5b73
|
urxvt.color4: #3f4854
|
||||||
urxvt.color12: #6d97bf
|
urxvt.color12: #152e54
|
||||||
|
|
||||||
urxvt.color5: #6b4a73
|
urxvt.color5: #503f54
|
||||||
urxvt.color13: #b27dbf
|
urxvt.color13: #481554
|
||||||
|
|
||||||
urxvt.color6: #4a7373
|
urxvt.color6: #3f5454
|
||||||
urxvt.color14: #7dbfbf
|
urxvt.color14: #155454
|
||||||
|
|
||||||
urxvt.color7: #222224
|
urxvt.color7: #969696
|
||||||
urxvt.color15: #a5a5a4
|
urxvt.color15: #ededed
|
||||||
|
|
||||||
Xft.antialias: true
|
Xft.antialias: true
|
||||||
Xft.rgba: rgb
|
Xft.rgba: rgb
|
||||||
|
@ -61,17 +61,17 @@ Xft.hintstyle: hintslight
|
||||||
Emacs.menuBar: off
|
Emacs.menuBar: off
|
||||||
Emacs.toolbar: off
|
Emacs.toolbar: off
|
||||||
Emacs.useXIM: off
|
Emacs.useXIM: off
|
||||||
Emacs.background: #111113
|
Emacs.background: #bfbfbf
|
||||||
Emacs.borderWidth: 0
|
Emacs.borderWidth: 0
|
||||||
Emacs.font: Envy Code R-13
|
Emacs.font: Envy Code R-10
|
||||||
Emacs.foreground: #eeeeec
|
Emacs.foreground: #111111
|
||||||
Emacs.internalBorder: 0
|
Emacs.internalBorder: 0
|
||||||
Emacs.paneFont: Envy Code R-13
|
Emacs.paneFont: Envy Code R-10
|
||||||
Emacs.pointerColor: #eeeeec
|
Emacs.pointerColor: #111111
|
||||||
Emacs*menu*font: Envy Code R-13
|
Emacs*menu*font: Envy Code R-10
|
||||||
Emacs*menu*foreground: #eeeeec
|
Emacs*menu*foreground: #111111
|
||||||
Emacs*menu*background: #222224
|
Emacs*menu*background: #696969
|
||||||
Emacs*menu*buttonForeground: #a5a5a4
|
Emacs*menu*buttonForeground: #969696
|
||||||
Emacs*menu*verticalSpacing: 0
|
Emacs*menu*verticalSpacing: 0
|
||||||
Emacs*menu*shadowThickness: 1
|
Emacs*menu*shadowThickness: 1
|
||||||
Emacs*menu*margin: 0
|
Emacs*menu*margin: 0
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.config
|
SUBDIR=.config
|
||||||
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
|
modules=cower dunst zathura
|
||||||
newsbeuter zathura
|
|
||||||
|
|
||||||
include ../dotfiles.mk
|
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.tile,
|
|
||||||
awful.layout.suit.tile.left,
|
|
||||||
awful.layout.suit.tile.bottom,
|
|
||||||
awful.layout.suit.tile.top,
|
|
||||||
awful.layout.suit.fair,
|
|
||||||
awful.layout.suit.fair.horizontal,
|
|
||||||
awful.layout.suit.spiral,
|
|
||||||
awful.layout.suit.spiral.dwindle,
|
|
||||||
awful.layout.suit.max,
|
|
||||||
awful.layout.suit.max.fullscreen,
|
|
||||||
awful.layout.suit.magnifier,
|
|
||||||
awful.layout.suit.floating
|
|
||||||
}
|
|
||||||
|
|
||||||
----- Wallpaper
|
|
||||||
if beautiful.wallpaper then
|
|
||||||
for s = 1, screen.count() do
|
|
||||||
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
----- Tags
|
|
||||||
-- Define a tag table which hold all screen tags.
|
|
||||||
tags = {}
|
|
||||||
for s = 1, screen.count() do
|
|
||||||
-- Each screen has its own tag table.
|
|
||||||
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
|
|
||||||
end
|
|
||||||
|
|
||||||
----- Menu
|
|
||||||
-- Create a laucher widget and a main menu
|
|
||||||
myawesomemenu = {
|
|
||||||
{ "manual", terminal .. " -e man awesome" },
|
|
||||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
|
||||||
{ "restart", awesome.restart },
|
|
||||||
{ "quit", awesome.quit }
|
|
||||||
}
|
|
||||||
|
|
||||||
mymainmenu = awful.menu(
|
|
||||||
{ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
|
||||||
{ "open terminal", terminal } } })
|
|
||||||
|
|
||||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
|
||||||
menu = mymainmenu })
|
|
||||||
|
|
||||||
-- Menubar configuration
|
|
||||||
menubar.utils.terminal = terminal -- Set the terminal for applications
|
|
||||||
-- that require it
|
|
||||||
|
|
||||||
----- Wibox
|
|
||||||
-- Create a textclock widget
|
|
||||||
mytextclock = awful.widget.textclock()
|
|
||||||
|
|
||||||
-- Create a wibox for each screen and add it
|
|
||||||
mywibox = {}
|
|
||||||
mypromptbox = {}
|
|
||||||
mylayoutbox = {}
|
|
||||||
mytaglist = {}
|
|
||||||
mytasklist = {}
|
|
||||||
|
|
||||||
mymaillist = wibox.widget.textbox()
|
|
||||||
mymaillist:set_text(
|
|
||||||
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
|
|
||||||
new_mail('ryuslash.org/inbox'),
|
|
||||||
new_mail('gmail/inbox'),
|
|
||||||
new_mail('aethon/inbox'),
|
|
||||||
new_mail('ninthfloor/inbox')))
|
|
||||||
mymaillisttimer = timer({ timeout = 60 })
|
|
||||||
mymaillisttimer:connect_signal(
|
|
||||||
"timeout",
|
|
||||||
function ()
|
|
||||||
mymaillist:set_text(
|
|
||||||
string.format(" ryu: %d gmail: %d aethon: %d 9f: %d",
|
|
||||||
new_mail('ryuslash.org/inbox'),
|
|
||||||
new_mail('gmail/inbox'),
|
|
||||||
new_mail('aethon/inbox'),
|
|
||||||
new_mail('ninthfloor/inbox')))
|
|
||||||
end)
|
|
||||||
mymaillisttimer:start()
|
|
||||||
|
|
||||||
mytodolist = wibox.widget.textbox()
|
|
||||||
mytodolist:set_text(
|
|
||||||
string.format(" ptodo: %d wtodo: %d",
|
|
||||||
awful.util.pread("todo-count t"),
|
|
||||||
awful.util.pread("todo-count w")))
|
|
||||||
mytodolisttimer = timer({ timeout = 60 * 60 })
|
|
||||||
mytodolisttimer:connect_signal(
|
|
||||||
"timeout",
|
|
||||||
function ()
|
|
||||||
mytodolist:set_text(
|
|
||||||
string.format(" pers: %d work: %d",
|
|
||||||
awful.util.pread("todo-count t"),
|
|
||||||
awful.util.pread("todo-count w")))
|
|
||||||
end)
|
|
||||||
mytodolisttimer:start()
|
|
||||||
|
|
||||||
for s = 1, screen.count() do
|
|
||||||
-- Create a promptbox for each screen
|
|
||||||
mypromptbox[s] = awful.widget.prompt()
|
|
||||||
-- Create an imagebox widget which will contains an icon
|
|
||||||
-- indicating which layout we're using. We need one layoutbox per
|
|
||||||
-- screen.
|
|
||||||
mylayoutbox[s] = awful.widget.layoutbox(s)
|
|
||||||
-- Create a taglist widget
|
|
||||||
mytaglist[s] = awful.widget.taglist(
|
|
||||||
s, awful.widget.taglist.filter.all, mytaglist.buttons)
|
|
||||||
|
|
||||||
-- Create a tasklist widget
|
|
||||||
mytasklist[s] = awful.widget.tasklist(
|
|
||||||
s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
|
|
||||||
|
|
||||||
-- Create the wibox
|
|
||||||
mywibox[s] = awful.wibox({ position = "top", screen = s })
|
|
||||||
|
|
||||||
-- Widgets that are aligned to the left
|
|
||||||
local left_layout = wibox.layout.fixed.horizontal()
|
|
||||||
left_layout:add(mylauncher)
|
|
||||||
left_layout:add(mytaglist[s])
|
|
||||||
left_layout:add(mypromptbox[s])
|
|
||||||
|
|
||||||
-- Widgets that are aligned to the right
|
|
||||||
local right_layout = wibox.layout.fixed.horizontal()
|
|
||||||
if s == 1 then
|
|
||||||
right_layout:add(mytodolist)
|
|
||||||
right_layout:add(mymaillist)
|
|
||||||
right_layout:add(wibox.widget.systray())
|
|
||||||
end
|
|
||||||
right_layout:add(mytextclock)
|
|
||||||
right_layout:add(mylayoutbox[s])
|
|
||||||
|
|
||||||
-- Now bring it all together (with the tasklist in the middle)
|
|
||||||
local layout = wibox.layout.align.horizontal()
|
|
||||||
layout:set_left(left_layout)
|
|
||||||
layout:set_middle(mytasklist[s])
|
|
||||||
layout:set_right(right_layout)
|
|
||||||
|
|
||||||
mywibox[s]:set_widget(layout)
|
|
||||||
end
|
|
||||||
|
|
||||||
----- Key bindings
|
|
||||||
globalkeys = awful.util.table.join(
|
|
||||||
awful.key({ modkey, }, "Left", awful.tag.viewprev),
|
|
||||||
awful.key({ modkey, }, "Right", awful.tag.viewnext),
|
|
||||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
|
|
||||||
|
|
||||||
awful.key({ modkey, }, "n",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx(1)
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end),
|
|
||||||
awful.key({ modkey, }, "p",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end),
|
|
||||||
|
|
||||||
-- Layout manipulation
|
|
||||||
awful.key({ modkey, "Shift" }, "n",
|
|
||||||
function () awful.client.swap.byidx(1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "p",
|
|
||||||
function () awful.client.swap.byidx(-1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "n",
|
|
||||||
function () awful.screen.focus_relative(1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "p",
|
|
||||||
function () awful.screen.focus_relative(-1) end),
|
|
||||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
|
|
||||||
awful.key({ modkey, }, "Tab",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.history.previous()
|
|
||||||
if client.focus then
|
|
||||||
client.focus:raise()
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
|
|
||||||
-- Standard program
|
|
||||||
awful.key({ modkey, }, "Return",
|
|
||||||
function () awful.util.spawn(terminal) end),
|
|
||||||
awful.key({ modkey, "Control" }, "r", awesome.restart),
|
|
||||||
awful.key({ modkey, "Shift" }, "q", awesome.quit),
|
|
||||||
|
|
||||||
awful.key({ modkey, }, "l",
|
|
||||||
function () awful.tag.incmwfact( 0.05) end),
|
|
||||||
awful.key({ modkey, }, "h",
|
|
||||||
function () awful.tag.incmwfact(-0.05) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "h",
|
|
||||||
function () awful.tag.incnmaster(1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "l",
|
|
||||||
function () awful.tag.incnmaster(-1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "h",
|
|
||||||
function () awful.tag.incncol(1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "l",
|
|
||||||
function () awful.tag.incncol(-1) end),
|
|
||||||
awful.key({ modkey, }, "space",
|
|
||||||
function () awful.layout.inc(layouts, 1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "space",
|
|
||||||
function () awful.layout.inc(layouts, -1) end),
|
|
||||||
|
|
||||||
awful.key({ modkey, "Control" }, "j", awful.client.restore),
|
|
||||||
|
|
||||||
-- Prompt
|
|
||||||
awful.key({ modkey }, "r",
|
|
||||||
function () mypromptbox[mouse.screen]:run() end),
|
|
||||||
|
|
||||||
awful.key({ modkey }, "x",
|
|
||||||
function ()
|
|
||||||
awful.prompt.run(
|
|
||||||
{ prompt = "Run Lua code: " },
|
|
||||||
mypromptbox[mouse.screen].widget,
|
|
||||||
awful.util.eval, nil,
|
|
||||||
awful.util.getdir("cache") .. "/history_eval")
|
|
||||||
end),
|
|
||||||
|
|
||||||
ror_combo({ modkey }, "e", 'emacsclient -ca emacs', 'Emacs'),
|
|
||||||
ror_combo({ modkey }, "c", 'urxvt', 'URxvt'),
|
|
||||||
ror_combo({ modkey }, "w", 'conkeror', 'Conkeror'),
|
|
||||||
awful.key({ "Control", "Mod1" }, "l",
|
|
||||||
function () awful.util.spawn('i3lock -c 000000') end))
|
|
||||||
|
|
||||||
clientkeys = awful.util.table.join(
|
|
||||||
awful.key({ modkey, }, "f",
|
|
||||||
function (c) c.fullscreen = not c.fullscreen end),
|
|
||||||
awful.key({ modkey, "Shift" }, "c",
|
|
||||||
function (c) c:kill() end),
|
|
||||||
awful.key({ modkey, "Control" }, "space",
|
|
||||||
awful.client.floating.toggle),
|
|
||||||
awful.key({ modkey, "Control" }, "Return",
|
|
||||||
function (c) c:swap(awful.client.getmaster()) end),
|
|
||||||
awful.key({ modkey, }, "o",
|
|
||||||
function () awful.screen.focus_relative(1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "o", awful.client.movetoscreen),
|
|
||||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
|
|
||||||
awful.key({ modkey, }, "m",
|
|
||||||
function (c)
|
|
||||||
c.maximized_horizontal = not c.maximized_horizontal
|
|
||||||
c.maximized_vertical = not c.maximized_vertical
|
|
||||||
end))
|
|
||||||
|
|
||||||
-- Compute the maximum number of digit we need, limited to 9
|
|
||||||
keynumber = 0
|
|
||||||
for s = 1, screen.count() do
|
|
||||||
keynumber = math.min(9, math.max(#tags[s], keynumber))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Bind all key numbers to tags. Be careful: we use keycodes to make
|
|
||||||
-- it works on any keyboard layout. This should map on the top row of
|
|
||||||
-- your keyboard, usually 1 to 9.
|
|
||||||
for i = 1, keynumber do
|
|
||||||
globalkeys = awful.util.table.join(
|
|
||||||
globalkeys,
|
|
||||||
awful.key({ modkey }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = mouse.screen
|
|
||||||
if tags[screen][i] then
|
|
||||||
awful.tag.viewonly(tags[screen][i])
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = mouse.screen
|
|
||||||
if tags[screen][i] then
|
|
||||||
awful.tag.viewtoggle(tags[screen][i])
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus and tags[client.focus.screen][i] then
|
|
||||||
awful.client.movetotag(tags[client.focus.screen][i])
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus and tags[client.focus.screen][i] then
|
|
||||||
awful.client.toggletag(tags[client.focus.screen][i])
|
|
||||||
end
|
|
||||||
end))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Set keys
|
|
||||||
root.keys(globalkeys)
|
|
||||||
|
|
||||||
----- Rules
|
|
||||||
awful.rules.rules = {
|
|
||||||
-- All clients will match this rule.
|
|
||||||
{ rule = { },
|
|
||||||
properties = { border_width = beautiful.border_width,
|
|
||||||
border_color = beautiful.border_normal,
|
|
||||||
focus = awful.client.focus.filter,
|
|
||||||
keys = clientkeys } },
|
|
||||||
{ rule = { class = "pinentry" },
|
|
||||||
properties = { floating = true } },
|
|
||||||
{ rule = { class = "gimp" },
|
|
||||||
properties = { floating = true } },
|
|
||||||
{ rule = { class = "Conkeror" },
|
|
||||||
properties = { floating = false,
|
|
||||||
tag = tags[2][1] } },
|
|
||||||
-- Set Firefox to always map on tags number 2 of screen 1.
|
|
||||||
-- { rule = { class = "Firefox" },
|
|
||||||
-- properties = { tag = tags[1][2] } },
|
|
||||||
}
|
|
||||||
|
|
||||||
----- Signals
|
|
||||||
-- Signal function to execute when a new client appears.
|
|
||||||
client.connect_signal(
|
|
||||||
"manage",
|
|
||||||
function (c, startup)
|
|
||||||
if not startup then
|
|
||||||
-- Set the windows at the slave, i.e. put it at the end of
|
|
||||||
-- others instead of setting it master.
|
|
||||||
-- awful.client.setslave(c)
|
|
||||||
|
|
||||||
-- Put windows in a smart way, only if they does not set an
|
|
||||||
-- initial position.
|
|
||||||
if not c.size_hints.user_position
|
|
||||||
and not c.size_hints.program_position then
|
|
||||||
awful.placement.no_overlap(c)
|
|
||||||
awful.placement.no_offscreen(c)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"focus", function(c) c.border_color = beautiful.border_focus end)
|
|
||||||
client.connect_signal(
|
|
||||||
"unfocus", function(c) c.border_color = beautiful.border_normal end)
|
|
|
@ -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
|
objects=config
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/dunst
|
SUBDIR=dunst
|
||||||
objects=dunstrc
|
objects=dunstrc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
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,122 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# this is a simple config for herbstluftwm
|
|
||||||
|
|
||||||
function hc() {
|
|
||||||
herbstclient "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
hc emit_hook reload
|
|
||||||
|
|
||||||
# remove all existing keybindings
|
|
||||||
hc keyunbind --all
|
|
||||||
|
|
||||||
# keybindings
|
|
||||||
Mod=Mod4
|
|
||||||
hc keybind $Mod-Shift-q quit
|
|
||||||
hc keybind $Mod-Shift-r reload
|
|
||||||
hc keybind $Mod-Shift-c close
|
|
||||||
|
|
||||||
hc keybind $Mod-c spawn urxvt
|
|
||||||
hc keybind $Mod-e spawn emacsclient -ca emacs
|
|
||||||
hc keybind $Mod-w spawn conkeror
|
|
||||||
|
|
||||||
# tags
|
|
||||||
TAG_NAMES=( {1..9} )
|
|
||||||
TAG_KEYS=( {1..9} 0 )
|
|
||||||
|
|
||||||
hc rename default "${TAG_NAMES[0]}" || true
|
|
||||||
for i in ${!TAG_NAMES[@]} ; do
|
|
||||||
hc add "${TAG_NAMES[$i]}"
|
|
||||||
key="${TAG_KEYS[$i]}"
|
|
||||||
if ! [ -z "$key" ] ; then
|
|
||||||
hc keybind "$Mod-$key" use_index "$i"
|
|
||||||
hc keybind "$Mod-Shift-$key" move_index "$i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# cycle through tags
|
|
||||||
hc keybind $Mod-period use_index +1 --skip-visible
|
|
||||||
hc keybind $Mod-comma use_index -1 --skip-visible
|
|
||||||
hc keybind $Mod-Right use_index +1 --skip-visible
|
|
||||||
hc keybind $Mod-Left use_index -1 --skip-visible
|
|
||||||
|
|
||||||
# layouting
|
|
||||||
hc keybind $Mod-r remove
|
|
||||||
hc keybind $Mod-space cycle_layout 1
|
|
||||||
hc keybind $Mod-u split vertical 0.5
|
|
||||||
hc keybind $Mod-o split horizontal 0.5
|
|
||||||
hc keybind $Mod-s floating toggle
|
|
||||||
# hc keybind $Mod-f fullscreen toggle
|
|
||||||
# hc keybind $Mod-p pseudotile toggle
|
|
||||||
|
|
||||||
# resizing
|
|
||||||
RESIZESTEP=0.05
|
|
||||||
hc keybind $Mod-Control-h resize left +$RESIZESTEP
|
|
||||||
hc keybind $Mod-Control-j resize down +$RESIZESTEP
|
|
||||||
hc keybind $Mod-Control-k resize up +$RESIZESTEP
|
|
||||||
hc keybind $Mod-Control-l resize right +$RESIZESTEP
|
|
||||||
|
|
||||||
# mouse
|
|
||||||
hc mouseunbind --all
|
|
||||||
hc mousebind $Mod-Button1 move
|
|
||||||
hc mousebind $Mod-Button2 resize
|
|
||||||
hc mousebind $Mod-Button3 zoom
|
|
||||||
|
|
||||||
# focus
|
|
||||||
hc keybind $Mod-BackSpace cycle_monitor
|
|
||||||
hc keybind $Mod-Tab cycle_all +1
|
|
||||||
hc keybind $Mod-Shift-Tab cycle_all -1
|
|
||||||
# hc keybind $Mod-c cycle
|
|
||||||
hc keybind $Mod-b focus left
|
|
||||||
hc keybind $Mod-n focus down
|
|
||||||
hc keybind $Mod-p focus up
|
|
||||||
hc keybind $Mod-f focus right
|
|
||||||
hc keybind $Mod-i jumpto urgent
|
|
||||||
hc keybind $Mod-Shift-h shift left
|
|
||||||
hc keybind $Mod-Shift-j shift down
|
|
||||||
hc keybind $Mod-Shift-k shift up
|
|
||||||
hc keybind $Mod-Shift-l shift right
|
|
||||||
|
|
||||||
# colors
|
|
||||||
hc set frame_border_active_color '#222222'
|
|
||||||
hc set frame_border_normal_color '#101010'
|
|
||||||
hc set frame_bg_normal_color '#565656'
|
|
||||||
hc set frame_bg_active_color '#345F0C'
|
|
||||||
hc set frame_border_width 1
|
|
||||||
hc set window_border_width 3
|
|
||||||
hc set window_border_inner_width 1
|
|
||||||
hc set window_border_normal_color '#454545'
|
|
||||||
hc set window_border_active_color '#9fbc00'
|
|
||||||
hc set always_show_frame 1
|
|
||||||
hc set frame_gap 4
|
|
||||||
# add overlapping window borders
|
|
||||||
hc set window_gap -2
|
|
||||||
hc set frame_padding 2
|
|
||||||
hc set smart_window_surroundings 0
|
|
||||||
hc set smart_frame_surroundings 1
|
|
||||||
hc set mouse_recenter_gap 0
|
|
||||||
|
|
||||||
|
|
||||||
# rules
|
|
||||||
hc unrule -F
|
|
||||||
#hc rule class=XTerm tag=3 # move all xterms to tag 3
|
|
||||||
hc rule focus=off # normally do not focus new clients
|
|
||||||
# give focus to most common terminals
|
|
||||||
hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
|
|
||||||
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
|
|
||||||
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
|
|
||||||
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK)' manage=off
|
|
||||||
|
|
||||||
# unlock, just to be sure
|
|
||||||
hc unlock
|
|
||||||
|
|
||||||
herbstclient set tree_style '╾│ ├└╼─┐'
|
|
||||||
|
|
||||||
# do multi monitor setup here, e.g.:
|
|
||||||
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
|
|
||||||
# or simply:
|
|
||||||
# hc detect_monitors
|
|
||||||
|
|
||||||
hc set_monitors 1920x1080+0+0 1680x1050+1920+0
|
|
||||||
hc pad 0 21
|
|
|
@ -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
|
objects=zathurarc
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.conkerorrc
|
SUBDIR=.conkerorrc
|
||||||
modules=themes styles
|
|
||||||
objects=gtk2rc init.js ext_restore.js
|
objects=gtk2rc init.js ext_restore.js
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -2,7 +2,6 @@ require("content-policy.js");
|
||||||
require("favicon");
|
require("favicon");
|
||||||
|
|
||||||
load_paths.push("file:///usr/local/clark/share/conkeror/modules/");
|
load_paths.push("file:///usr/local/clark/share/conkeror/modules/");
|
||||||
theme_load_paths.push("/home/slash/.conkerorrc/themes/");
|
|
||||||
|
|
||||||
require("clark");
|
require("clark");
|
||||||
|
|
||||||
|
@ -148,11 +147,10 @@ define_webjump("chickadee",
|
||||||
|
|
||||||
// content_policy_bytype_table.object = oni_block_flash;
|
// content_policy_bytype_table.object = oni_block_flash;
|
||||||
cwd = make_file("/home/slash/downloads/");
|
cwd = make_file("/home/slash/downloads/");
|
||||||
hint_digits = "arstdhneio";
|
hint_digits = "asdfghjkl;";
|
||||||
read_buffer_show_icons = true;
|
read_buffer_show_icons = true;
|
||||||
title_format_fn = ext_title_format;
|
title_format_fn = ext_title_format;
|
||||||
url_remoting_fn = load_url_in_new_buffer;
|
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-x C-b", "switch-to-buffer");
|
||||||
define_key(content_buffer_normal_keymap, "C-y", "paste-url-new-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);
|
remove_hook("download_added_hook", open_download_buffer_automatically);
|
||||||
|
|
||||||
hints_minibuffer_annotation_mode(true);
|
hints_minibuffer_annotation_mode(true);
|
||||||
theme_load("yoshi");
|
|
||||||
|
|
||||||
external_content_handlers.set("application/pdf", "zathura");
|
external_content_handlers.set("application/pdf", "zathura");
|
||||||
external_content_handlers.set("application/vnd.ms-excel", "libreoffice");
|
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"
|
|
||||||
]
|
|
||||||
}
|
|
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)
|
|
|
@ -2,13 +2,13 @@
|
||||||
[general]
|
[general]
|
||||||
# NOTE: cronjob calls the quiet UI with -u
|
# NOTE: cronjob calls the quiet UI with -u
|
||||||
ui = TTYUI
|
ui = TTYUI
|
||||||
accounts = ryuslash.org,gmail,arch,aethon,ninthfloor
|
accounts = ryuslash.org,gmail,aethon,ninthfloor
|
||||||
pythonfile = ~/.offlineimap.py
|
pythonfile = ~/.offlineimap.py
|
||||||
|
|
||||||
[Account ryuslash.org]
|
[Account ryuslash.org]
|
||||||
localrepository = ryuslash.org-local
|
localrepository = ryuslash.org-local
|
||||||
remoterepository = ryuslash.org-remote
|
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]
|
[Repository ryuslash.org-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -25,7 +25,7 @@ nametrans = lambda folder: folder.lower()
|
||||||
[Account aethon]
|
[Account aethon]
|
||||||
localrepository = aethon-local
|
localrepository = aethon-local
|
||||||
remoterepository = aethon-remote
|
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]
|
[Repository aethon-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -37,14 +37,14 @@ type = Gmail
|
||||||
remoteusereval = getuser("imap.google.com-aethon")
|
remoteusereval = getuser("imap.google.com-aethon")
|
||||||
remotepasseval = getpassword("imap.google.com-aethon")
|
remotepasseval = getpassword("imap.google.com-aethon")
|
||||||
realdelete = no
|
realdelete = no
|
||||||
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
|
cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa
|
||||||
folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Concepten', '[Gmail]/Verzonden berichten', '[Gmail]/Prullenbak']
|
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))))
|
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]
|
[Account gmail]
|
||||||
localrepository = gmail-local
|
localrepository = gmail-local
|
||||||
remoterepository = gmail-remote
|
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]
|
[Repository gmail-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -56,14 +56,14 @@ type = Gmail
|
||||||
remoteusereval = getuser("imap.google.com")
|
remoteusereval = getuser("imap.google.com")
|
||||||
remotepasseval = getpassword("imap.google.com")
|
remotepasseval = getpassword("imap.google.com")
|
||||||
realdelete = no
|
realdelete = no
|
||||||
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
|
cert_fingerprint = b0ba392bba326e6feb1add4d04fa0fb86cd173fa
|
||||||
folderfilter = lambda folder: folder in ['INBOX', '[Gmail]/Drafts', '[Gmail]/Sent Mail', '[Gmail]/Trash']
|
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))))
|
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]
|
[Account ninthfloor]
|
||||||
localrepository = ninthfloor-local
|
localrepository = ninthfloor-local
|
||||||
remoterepository = ninthfloor-remote
|
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]
|
[Repository ninthfloor-local]
|
||||||
type = Maildir
|
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
|
objects=config
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
102
.stumpwmrc
102
.stumpwmrc
|
@ -1,9 +1,9 @@
|
||||||
;; -*- mode: lisp; -*-
|
;; -*- mode: lisp; -*-
|
||||||
(require 'swank)
|
; (require 'swank)
|
||||||
|
(require 'cl-ppcre)
|
||||||
|
|
||||||
(in-package :stumpwm)
|
(in-package :stumpwm)
|
||||||
|
;; (load "/usr/share/stumpwm/contrib/app-menu.lisp")
|
||||||
(require 'cl-ppcre)
|
|
||||||
|
|
||||||
(defmacro elisp (&body body)
|
(defmacro elisp (&body body)
|
||||||
"Run BODY through emacsclient."
|
"Run BODY through emacsclient."
|
||||||
|
@ -13,21 +13,26 @@
|
||||||
:wait nil))
|
:wait nil))
|
||||||
|
|
||||||
;; Naquadah
|
;; Naquadah
|
||||||
(defun colour (key)
|
;; (defun colour (key)
|
||||||
(let ((colours (list :lblack #xeeeeec :dblack #x111113
|
;; (let ((colours (list :lblack #xeeeeec :dblack #x111113
|
||||||
:lwhite #xa5a5a4 :dwhite #x222224
|
;; :lwhite #xa5a5a4 :dwhite #x222224
|
||||||
:lred #xbf6d6d :dred #x744a4a
|
;; :lred #xbf6d6d :dred #x744a4a
|
||||||
:lorange #xbfa47d :dorange #x73634a
|
;; :lorange #xbfa47d :dorange #x73634a
|
||||||
:lyellow #xb2bf6d :dyellow #x6b734a
|
;; :lyellow #xb2bf6d :dyellow #x6b734a
|
||||||
:lgreen #x8abf6d :dgreen #x52734a
|
;; :lgreen #x8abf6d :dgreen #x52734a
|
||||||
:lturquoise #x7dbf97 :dturquoise #x4a735b
|
;; :lturquoise #x7dbf97 :dturquoise #x4a735b
|
||||||
:lcyan #x7dbfbf :dcyan #x4a7373
|
;; :lcyan #x7dbfbf :dcyan #x4a7373
|
||||||
:lblue #x6d97bf :dblue #x4a5b73
|
;; :lblue #x6d97bf :dblue #x4a5b73
|
||||||
:lpurple #x8a7dbf :dpurple #x524a73
|
;; :lpurple #x8a7dbf :dpurple #x524a73
|
||||||
:lmagenta #xb27dbf :dmagenta #x6b4a73
|
;; :lmagenta #xb27dbf :dmagenta #x6b4a73
|
||||||
:lpink #xbf6da4 :dpink #x734a63)))
|
;; :lpink #xbf6da4 :dpink #x734a63)))
|
||||||
(getf colours key)))
|
;; (getf colours key)))
|
||||||
|
|
||||||
|
(setf *app-menu* '(("Editor" . "emacs")
|
||||||
|
("Browser" . "conkeror")
|
||||||
|
("Terminal" . "urxvt")
|
||||||
|
("Office" . "libreoffice")
|
||||||
|
("Gimp" . "gimp")))
|
||||||
(defvar *conkeror-program* "conkeror"
|
(defvar *conkeror-program* "conkeror"
|
||||||
"The executable to run to start Conkeror.")
|
"The executable to run to start Conkeror.")
|
||||||
(defvar *emacs-program* "emacsclient -c -a emacs"
|
(defvar *emacs-program* "emacsclient -c -a emacs"
|
||||||
|
@ -48,17 +53,16 @@
|
||||||
(defun get-mail-count (mailbox &optional (inbox "inbox"))
|
(defun get-mail-count (mailbox &optional (inbox "inbox"))
|
||||||
"Check how many new messages there are in MAILBOX."
|
"Check how many new messages there are in MAILBOX."
|
||||||
(length
|
(length
|
||||||
|
(append
|
||||||
(directory
|
(directory
|
||||||
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
|
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
|
||||||
mailbox inbox))))
|
mailbox inbox))
|
||||||
|
(remove-if (lambda (d)
|
||||||
(defun mpd-playing-p ()
|
(let ((dir (namestring d)))
|
||||||
"Check if MPD is currently in the playing state."
|
(string= dir "S" :start1 (1- (length dir)))))
|
||||||
(and (cl-ppcre:scan
|
(directory
|
||||||
"\\n\\[playing\\]"
|
(format nil "/home/slash/documents/mail/~A/~A/cur/*.*"
|
||||||
(with-output-to-string (status)
|
mailbox inbox))))))
|
||||||
(sb-ext:run-program "/usr/bin/mpc" '() :output status)))
|
|
||||||
t))
|
|
||||||
|
|
||||||
(defun set-jabber-away ()
|
(defun set-jabber-away ()
|
||||||
"Tell emacs to set jabber to away presence."
|
"Tell emacs to set jabber to away presence."
|
||||||
|
@ -74,16 +78,6 @@
|
||||||
*jabber-connected*)
|
*jabber-connected*)
|
||||||
(jabber-send-default-presence))))
|
(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 () ()
|
(defcommand run-emacs () ()
|
||||||
"Open Emacs"
|
"Open Emacs"
|
||||||
(run-shell-command *emacs-program*))
|
(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
|
"/usr/bin/i3lock" '("-n" "-c" "000000") :wait nil
|
||||||
:status-hook #'run-stumpwm-hook-on-exit))
|
:status-hook #'run-stumpwm-hook-on-exit))
|
||||||
|
|
||||||
(set-bg-color (colour :dwhite))
|
;; (set-bg-color (colour :dwhite))
|
||||||
(set-border-color (colour :lwhite))
|
;; (set-border-color (colour :lwhite))
|
||||||
(set-fg-color (colour :lblack))
|
;; (set-fg-color (colour :lblack))
|
||||||
(set-float-focus-color (colour :dblack))
|
;; (set-float-focus-color (colour :lblue))
|
||||||
(set-float-unfocus-color (colour :dwhite))
|
;; (set-float-unfocus-color (colour :dwhite))
|
||||||
(set-focus-color (colour :dblack))
|
;; (set-focus-color (colour :lblue))
|
||||||
(set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
|
;; (set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
|
||||||
(set-unfocus-color (colour :dwhite))
|
;; (set-unfocus-color (colour :dwhite))
|
||||||
(set-win-bg-color (colour :dwhite))
|
;; (set-win-bg-color (colour :dblack))
|
||||||
|
|
||||||
(setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
|
;; (setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
|
||||||
:lmagenta :lcyan :lblack)))
|
;; :lmagenta :lcyan :lblack)))
|
||||||
(setf *input-window-gravity* :bottom-left)
|
(setf *input-window-gravity* :bottom-left)
|
||||||
(setf *message-window-gravity* :top-right)
|
(setf *message-window-gravity* :top-right)
|
||||||
(setf *mode-line-background-color* (colour :dwhite))
|
;; (setf *mode-line-background-color* (colour :dwhite))
|
||||||
(setf *mode-line-border-color* (colour :dwhite))
|
;; (setf *mode-line-border-color* (colour :dwhite))
|
||||||
(setf *mode-line-foreground-color* (colour :lblack))
|
;; (setf *mode-line-foreground-color* (colour :lblack))
|
||||||
(setf *shell-program* (getenv "SHELL"))
|
(setf *shell-program* (getenv "SHELL"))
|
||||||
(setf *transient-border-width* 1)
|
(setf *transient-border-width* 1)
|
||||||
(setf *window-border-style* :thin)
|
(setf *window-border-style* :thin)
|
||||||
|
@ -159,9 +153,7 @@ it and run *screen-unlocked-hook* after it has been unlocked."
|
||||||
(get-mail-count "ninthfloor")))))
|
(get-mail-count "ninthfloor")))))
|
||||||
|
|
||||||
(add-hook *lock-screen-hook* 'set-jabber-away)
|
(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* 'set-jabber-online)
|
||||||
(add-hook *screen-unlocked-hook* 'mpd-play)
|
|
||||||
|
|
||||||
(set-prefix-key (kbd "C-z"))
|
(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"
|
(define-frame-preference "Default"
|
||||||
(0 t nil :class "Emacs")
|
(0 t nil :class "Emacs")
|
||||||
(1 t nil :class "Firefox")
|
(2 t nil :class "Firefox")
|
||||||
(1 t nil :class "URxvt")
|
(1 t nil :class "URxvt")
|
||||||
(1 t nil :class "Conkeror"))
|
(2 t nil :class "Conkeror"))
|
||||||
|
|
||||||
(if (not (head-mode-line (current-head)))
|
(if (not (head-mode-line (current-head)))
|
||||||
(toggle-mode-line (current-screen) (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
|
objects=config
|
||||||
|
|
||||||
include ../dotfiles.mk
|
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}"
|
|
|
@ -127,6 +127,12 @@
|
||||||
(close-pipe dzen-pipe)
|
(close-pipe dzen-pipe)
|
||||||
(set! dzen-pipe '())))
|
(set! dzen-pipe '())))
|
||||||
|
|
||||||
|
(define (kill-mouse)
|
||||||
|
(run-command "synclient TouchpadOff=1; xte 'mousemove 1500 1500'"))
|
||||||
|
|
||||||
|
(define (revive-mouse)
|
||||||
|
(run-command "synclient TouchpadOff=0"))
|
||||||
|
|
||||||
(define (notify msg)
|
(define (notify msg)
|
||||||
(run-command (string-append "notify-send \"" msg "\"")))
|
(run-command (string-append "notify-send \"" msg "\"")))
|
||||||
|
|
||||||
|
@ -197,6 +203,8 @@
|
||||||
(xbindkey '(XF86AudioRaiseVolume) "mcp volume +5")
|
(xbindkey '(XF86AudioRaiseVolume) "mcp volume +5")
|
||||||
(xbindkey '(XF86AudioPrev) "mpc prev")
|
(xbindkey '(XF86AudioPrev) "mpc prev")
|
||||||
(xbindkey '(XF86AudioNext) "mpc next")
|
(xbindkey '(XF86AudioNext) "mpc next")
|
||||||
|
(xbindkey-function '(XF86TouchpadOff) kill-mouse)
|
||||||
|
(xbindkey-function '(XF86TouchpadOn) revive-mouse)
|
||||||
(xbindkey `(,modkey k) "herbstclient close")
|
(xbindkey `(,modkey k) "herbstclient close")
|
||||||
(xbindkey `(,modkey Escape) "~/.config/herbstluftwm/panel.sh"))
|
(xbindkey `(,modkey Escape) "~/.config/herbstluftwm/panel.sh"))
|
||||||
|
|
||||||
|
|
34
.xinitrc
34
.xinitrc
|
@ -1,26 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function update_mowedline_mpd ()
|
|
||||||
{
|
|
||||||
while read action; do
|
|
||||||
if [ "$action" == "player" ]; then
|
|
||||||
IFS='' read -ra INFO <<< "`mpc status | tr '\n' `"
|
|
||||||
|
|
||||||
if [ "${INFO[1]}" == "" ]; then
|
|
||||||
mowedline-client -update mpd ""
|
|
||||||
else
|
|
||||||
TXT=" ${INFO[0]}"
|
|
||||||
ST="`echo ${INFO[1]} | sed 's/\[\(.*\)\] .*/\1/'`"
|
|
||||||
if [ "$ST" == "paused" ]; then
|
|
||||||
TXT="$TXT (paused)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mowedline-client -update mpd " $TXT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
xmodmap ~/.Xmodmap
|
xmodmap ~/.Xmodmap
|
||||||
|
|
||||||
# Source scripts in /etc/X11/xinit/xinitrc.d/
|
# Source scripts in /etc/X11/xinit/xinitrc.d/
|
||||||
|
@ -31,17 +9,7 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then
|
||||||
unset f
|
unset f
|
||||||
fi
|
fi
|
||||||
|
|
||||||
emacs --daemon &
|
|
||||||
redshift -l 51.1180:4.0012 &
|
|
||||||
unclutter &
|
unclutter &
|
||||||
mowedline &
|
|
||||||
xcompmgr -n -r 0 &
|
|
||||||
feh --bg-tile ~/pictures/wallpapers/wallpaper-864137.jpg
|
|
||||||
# xbindkeys
|
|
||||||
|
|
||||||
{
|
test -n "$1" && wm=$1 || wm="$HOME/usr/local/bin/dwm"
|
||||||
mpc idleloop | update_mowedline_mpd
|
|
||||||
} &
|
|
||||||
|
|
||||||
test -n "$1" && wm=$1 || wm="stumpwm"
|
|
||||||
exec $wm
|
exec $wm
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/.zsh
|
SUBDIR=.zsh
|
||||||
modules=functions
|
modules=functions
|
||||||
|
|
||||||
include ../dotfiles.mk
|
include ../dotfiles.mk
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
DESTDIR:=$(DESTDIR)/functions
|
SUBDIR=functions
|
||||||
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
|
objects=env venv add-to-list
|
||||||
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
|
|
||||||
preexec_update_vars prompt prompt_git_info rprompt \
|
|
||||||
update_current_git_vars welcome venv
|
|
||||||
|
|
||||||
include ../../dotfiles.mk
|
include ../../dotfiles.mk
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue