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 |
97
.Xdefaults
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
urxvt.internalBorder: 0
|
||||||
|
|
||||||
|
urxvt.loginShell: true
|
||||||
|
urxvt.scrollBar: false
|
||||||
|
urxvt.secondaryScroll: true
|
||||||
|
urxvt.saveLines: 65535
|
||||||
|
urxvt.cursorBlink: false
|
||||||
|
urxvt.cursorUnderline: true
|
||||||
|
urxvt.urgentOnBell: true
|
||||||
|
urxvt.termName: rxvt-256color
|
||||||
|
urxvt.visualBell: false
|
||||||
|
|
||||||
|
urxvt.perl-lib: /usr/lib/urxvt/perl/
|
||||||
|
urxvt.perl-ext-common: default,url-select,keyboard-select
|
||||||
|
urxvt.urlLauncher: conkeror
|
||||||
|
urxvt.url-select.launcher: conkeror
|
||||||
|
urxvt.matcher.button: 1
|
||||||
|
urxvt.keysym.M-Escape: perl:keyboard-select:activate
|
||||||
|
urxvt.keysym.M-s: perl:keyboard-select:search
|
||||||
|
|
||||||
|
urxvt.keysym.M-u: perl:url-select:select_next
|
||||||
|
|
||||||
|
urxvt.font: xft:Envy Code R:weight=medium:pixelsize=12
|
||||||
|
urxvt.boldFont: xft:Envy Code R:weight=bold:pixelsize=12
|
||||||
|
urxvt.italicFont: xft:Envy Code R:slant=italic:pixelsize=12
|
||||||
|
|
||||||
|
urxvt.depth: 32
|
||||||
|
urxvt.background: #bfbfbf
|
||||||
|
urxvt.foreground: #111111
|
||||||
|
|
||||||
|
urxvt.color0: #3d3d3d
|
||||||
|
urxvt.color8: #111111
|
||||||
|
|
||||||
|
urxvt.color1: #543f3f
|
||||||
|
urxvt.color9: #541515
|
||||||
|
|
||||||
|
urxvt.color2: #43543f
|
||||||
|
urxvt.color10: #225415
|
||||||
|
|
||||||
|
urxvt.color3: #50543f
|
||||||
|
urxvt.color11: #485415
|
||||||
|
|
||||||
|
urxvt.color4: #3f4854
|
||||||
|
urxvt.color12: #152e54
|
||||||
|
|
||||||
|
urxvt.color5: #503f54
|
||||||
|
urxvt.color13: #481554
|
||||||
|
|
||||||
|
urxvt.color6: #3f5454
|
||||||
|
urxvt.color14: #155454
|
||||||
|
|
||||||
|
urxvt.color7: #969696
|
||||||
|
urxvt.color15: #ededed
|
||||||
|
|
||||||
|
Xft.antialias: true
|
||||||
|
Xft.rgba: rgb
|
||||||
|
Xft.hinting: true
|
||||||
|
Xft.hintstyle: hintslight
|
||||||
|
|
||||||
|
! Emacs.font: DejaVu Sans Mono:weight=medium:pixelsize=18
|
||||||
|
Emacs.menuBar: off
|
||||||
|
Emacs.toolbar: off
|
||||||
|
Emacs.useXIM: off
|
||||||
|
Emacs.background: #bfbfbf
|
||||||
|
Emacs.borderWidth: 0
|
||||||
|
Emacs.font: Envy Code R-10
|
||||||
|
Emacs.foreground: #111111
|
||||||
|
Emacs.internalBorder: 0
|
||||||
|
Emacs.paneFont: Envy Code R-10
|
||||||
|
Emacs.pointerColor: #111111
|
||||||
|
Emacs*menu*font: Envy Code R-10
|
||||||
|
Emacs*menu*foreground: #111111
|
||||||
|
Emacs*menu*background: #696969
|
||||||
|
Emacs*menu*buttonForeground: #969696
|
||||||
|
Emacs*menu*verticalSpacing: 0
|
||||||
|
Emacs*menu*shadowThickness: 1
|
||||||
|
Emacs*menu*margin: 0
|
||||||
|
Emacs.pane.menubar.translations: #override\
|
||||||
|
Ctrl <Key> n: down()\n\
|
||||||
|
Ctrl <Key> p: up()\n\
|
||||||
|
Ctrl <Key> f: right()\n\
|
||||||
|
Ctrl <Key> b: left()\n\
|
||||||
|
|
||||||
|
xfontsel.sampleText: \
|
||||||
|
static void print_sample_message(XWindow *win) {\n\
|
||||||
|
win.label->text = "Sample text 0123456789"\n\
|
||||||
|
}
|
||||||
|
|
||||||
|
xfontsel.sampleText16: \
|
||||||
|
static void print_sample_message(XWindow *win) {\n\
|
||||||
|
win.label->text = "Sample text 0123456789"\n\
|
||||||
|
}
|
||||||
|
|
||||||
|
xfontsel.sampleTextUCS: \
|
||||||
|
static void print_sample_message(XWindow *win) {\n\
|
||||||
|
win.label->text = "Sample text 0123456789"\n\
|
||||||
|
}
|
14
.beetsconfig
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
[beets]
|
||||||
|
library: ~/.local/share/beets/library.blb
|
||||||
|
directory: /mnt/music/lib/
|
||||||
|
plugins: mpdupdate embedart
|
||||||
|
|
||||||
|
[paths]
|
||||||
|
default: $albumartist/$year - $album/$track - $title
|
||||||
|
singleton: Non-Album/$artist - $title
|
||||||
|
comp: Compilations/$year - $album/$track - $artist - $title
|
||||||
|
|
||||||
|
[mpdupdate]
|
||||||
|
host: localhost
|
||||||
|
port: 6600
|
4
.config/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=.config
|
||||||
|
modules=cower dunst zathura
|
||||||
|
|
||||||
|
include ../dotfiles.mk
|
4
.config/cower/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=cower
|
||||||
|
objects=config
|
||||||
|
|
||||||
|
include ../../dotfiles.mk
|
|
@ -1,3 +1,3 @@
|
||||||
Color = always
|
Color = always
|
||||||
TargetDir = ~/var/aur/
|
TargetDir = /home/slash/var/aur/
|
||||||
IgnoreRepo = pegas
|
IgnoreRepo = pegas
|
4
.config/dunst/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=dunst
|
||||||
|
objects=dunstrc
|
||||||
|
|
||||||
|
include ../../dotfiles.mk
|
|
@ -1,16 +1,6 @@
|
||||||
# -*- mode: conf-unix; -*-
|
# -*- mode: conf-unix; -*-
|
||||||
[global]
|
[global]
|
||||||
font = Fantasque Sans Mono 13
|
font = Monaco-12
|
||||||
|
|
||||||
# allow a small subset of html markup:
|
|
||||||
# <b>bold</b>
|
|
||||||
# <i>italic</i>
|
|
||||||
# <s>strikethrough<s/>
|
|
||||||
# <u>underline</u>
|
|
||||||
#
|
|
||||||
# for a complete reference see http://developer.gnome.org/pango/stable/PangoMarkupFormat.html
|
|
||||||
# If markup is not allowed, those tags will be stripped out of the message.
|
|
||||||
allow_markup = yes
|
|
||||||
|
|
||||||
# The format of the message. Possible variables are:
|
# The format of the message. Possible variables are:
|
||||||
# %a appname
|
# %a appname
|
||||||
|
@ -44,9 +34,6 @@
|
||||||
# split long notifications into multiple lines
|
# split long notifications into multiple lines
|
||||||
word_wrap = yes
|
word_wrap = yes
|
||||||
|
|
||||||
# ignore newlines '\n' in notifications
|
|
||||||
ignore_newline = no
|
|
||||||
|
|
||||||
|
|
||||||
# the geometry of the window
|
# the geometry of the window
|
||||||
# geometry [{width}]x{height}][+/-{x}+/-{y}]
|
# geometry [{width}]x{height}][+/-{x}+/-{y}]
|
||||||
|
@ -57,14 +44,11 @@
|
||||||
# the window expands to the longest message displayed.
|
# the window expands to the longest message displayed.
|
||||||
# A positive x is measured from the left, a negative from the
|
# A positive x is measured from the left, a negative from the
|
||||||
# right side of the screen. Y is measured from the top and down respectevly.
|
# right side of the screen. Y is measured from the top and down respectevly.
|
||||||
geometry = "600x5-30+20"
|
geometry = "0x3-30+20"
|
||||||
|
|
||||||
# Shrink window if it's smaller than the width. Will be ignored if width is 0.
|
|
||||||
shrink = yes
|
|
||||||
|
|
||||||
# The transparency of the window. range: [0; 100]
|
# The transparency of the window. range: [0; 100]
|
||||||
# This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
|
# This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
|
||||||
transparency = 20
|
transparency = 0
|
||||||
|
|
||||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
# for longer than idle_threshold seconds.
|
# for longer than idle_threshold seconds.
|
||||||
|
@ -99,37 +83,11 @@
|
||||||
# Set to 0 to disable
|
# Set to 0 to disable
|
||||||
separator_height = 2;
|
separator_height = 2;
|
||||||
|
|
||||||
# padding between text and separator
|
|
||||||
padding = 15
|
|
||||||
|
|
||||||
# horizontal padding
|
|
||||||
horizontal_padding = 15
|
|
||||||
|
|
||||||
# Define a color for the separator.
|
# Define a color for the separator.
|
||||||
# This can either be "auto" or "foreground". "Auto" tries to find a color
|
# This can either be "auto" or "foreground". "Auto" tries to find a color
|
||||||
# that fits nicely to the background color.
|
# that fits nicely to the background color.
|
||||||
separator_color = auto
|
separator_color = auto
|
||||||
|
|
||||||
# print a notification on startup
|
|
||||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
|
||||||
# automatically after a crash.
|
|
||||||
startup_notification = false
|
|
||||||
|
|
||||||
# dmenu path
|
|
||||||
dmenu = /usr/bin/dmenu -p dunst:
|
|
||||||
|
|
||||||
# browser for opening urls in context menu
|
|
||||||
browser = /usr/bin/firefox -new-tab
|
|
||||||
|
|
||||||
# Align icons left
|
|
||||||
icon_position = left
|
|
||||||
|
|
||||||
# Paths to default icons.
|
|
||||||
icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/hicolor/16x16/apps/
|
|
||||||
|
|
||||||
[frame]
|
|
||||||
width = 2
|
|
||||||
color = "#3d3d3d"
|
|
||||||
|
|
||||||
[shortcuts]
|
[shortcuts]
|
||||||
# shortcuts are specified as [modifier+][modifier+]...key
|
# shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
@ -138,17 +96,14 @@
|
||||||
# xev might be helpful to find names for keys
|
# xev might be helpful to find names for keys
|
||||||
|
|
||||||
# close notification
|
# close notification
|
||||||
close = mod4+m
|
close = ctrl+space
|
||||||
|
|
||||||
# close all notifications
|
# close all notifications
|
||||||
close_all = mod4+shift+m
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
# redisplay last message(s)
|
# redisplay last message(s)
|
||||||
# On the US keyboard layout 'grave' is normally above TAB and left of '1'.
|
# On the US keyboard layout 'grave' is normally above TAB and left of '1'.
|
||||||
history = mod4+ctrl+m
|
history = ctrl+grave
|
||||||
|
|
||||||
# context menu
|
|
||||||
context = mod4+mod1+m
|
|
||||||
|
|
||||||
[urgency_low]
|
[urgency_low]
|
||||||
# IMPORTANT: colors have to be defined in quotation marks.
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
@ -204,24 +159,3 @@
|
||||||
# summary = *twitter.com*
|
# summary = *twitter.com*
|
||||||
# urgency = normal
|
# urgency = normal
|
||||||
#
|
#
|
||||||
|
|
||||||
[Emacs]
|
|
||||||
appname = Emacs
|
|
||||||
background = "#7F5AB6"
|
|
||||||
foreground = "#FAFAFA"
|
|
||||||
format = "<b>%s</b>\n%b"
|
|
||||||
|
|
||||||
[Metal Express Radio]
|
|
||||||
appname = Metal Express Radio
|
|
||||||
background = "#EF4136"
|
|
||||||
foreground = "#FFFFFF"
|
|
||||||
|
|
||||||
[Syncthing]
|
|
||||||
appname = Syncthing GTK
|
|
||||||
background = "#337ab7"
|
|
||||||
foreground = "#ffffff"
|
|
||||||
|
|
||||||
[Lollypop]
|
|
||||||
appname = Lollypop
|
|
||||||
background = "#fd3e75"
|
|
||||||
foreground = "#ffffff"
|
|
4
.config/zathura/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=zathura
|
||||||
|
objects=zathurarc
|
||||||
|
|
||||||
|
include ../../dotfiles.mk
|
4
.conkerorrc/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=.conkerorrc
|
||||||
|
objects=gtk2rc init.js ext_restore.js
|
||||||
|
|
||||||
|
include ../dotfiles.mk
|
304
.conkerorrc/init.js
Normal file
|
@ -0,0 +1,304 @@
|
||||||
|
require("content-policy.js");
|
||||||
|
require("favicon");
|
||||||
|
|
||||||
|
load_paths.push("file:///usr/local/clark/share/conkeror/modules/");
|
||||||
|
|
||||||
|
require("clark");
|
||||||
|
|
||||||
|
define_browser_object_class(
|
||||||
|
"history-url", null,
|
||||||
|
function (I, prompt) {
|
||||||
|
check_buffer(I.buffer, content_buffer);
|
||||||
|
var result = yield I.buffer.window.minibuffer.read_url(
|
||||||
|
$prompt = prompt, $use_webjumps = false, $use_history = true,
|
||||||
|
$use_bookmarks = false, $sort_order = 'date_descending'
|
||||||
|
);
|
||||||
|
yield co_return(result);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function ext_title_format(window) {
|
||||||
|
return '(' + get_current_profile() +') '
|
||||||
|
+ window.buffers.current.description;
|
||||||
|
}
|
||||||
|
|
||||||
|
function oni_add_sheet(css) {
|
||||||
|
let (sheet = get_home_directory()) {
|
||||||
|
sheet.append(".conkerorrc");
|
||||||
|
sheet.append("styles");
|
||||||
|
sheet.append(css);
|
||||||
|
register_user_stylesheet(make_uri(sheet));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function oni_before_quit_func() {
|
||||||
|
var w = get_recent_conkeror_window();
|
||||||
|
var result = (w == null) ||
|
||||||
|
"y" == (yield w.minibuffer.read_single_character_option(
|
||||||
|
$prompt="Quit Conkeror? (y/n)",
|
||||||
|
$options=["y", "n"]));
|
||||||
|
yield co_return(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
function oni_block_flash(content_type, content_location) {
|
||||||
|
var Y = content_policy_accept, N = content_policy_reject;
|
||||||
|
var action = ({ "youtube.com": Y }
|
||||||
|
[content_location.host] || N);
|
||||||
|
|
||||||
|
if (action == N)
|
||||||
|
dumpln("blocked flash: " + content_location.spec);
|
||||||
|
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
function oni_escape(str) {
|
||||||
|
return str.replace(/(["$`])/g, '\\$1');
|
||||||
|
}
|
||||||
|
|
||||||
|
function oni_org_store_link(I) {
|
||||||
|
var cmd_str = 'emacsclient \"org-protocol://store-link://'
|
||||||
|
+ encodeURIComponent(I.buffer.display_uri_string) + '/'
|
||||||
|
+ encodeURIComponent(I.buffer.document.title) + '\"';
|
||||||
|
|
||||||
|
if (I.window != null) {
|
||||||
|
window.minibuffer.message('Issuing ' + cmd_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
shell_command_blind(cmd_str);
|
||||||
|
}
|
||||||
|
interactive("org-store-link",
|
||||||
|
"Stores [[url][title]] as org link and copies url to emacs "
|
||||||
|
+ "kill ring",
|
||||||
|
oni_org_store_link);
|
||||||
|
|
||||||
|
interactive("find-url-from-history",
|
||||||
|
"Find a page from history in the current buffer",
|
||||||
|
"find-url",
|
||||||
|
$browser_object = browser_object_history_url);
|
||||||
|
interactive("find-url-from-history-new-buffer",
|
||||||
|
"Find a page from history in a new buffer",
|
||||||
|
"find-url-new-buffer",
|
||||||
|
$browser_object = browser_object_history_url);
|
||||||
|
|
||||||
|
define_webjump("emacswiki",
|
||||||
|
"http://www.google.com/cse?cx=004774160799092323420%3A6-ff2s0o6yi&q=%s",
|
||||||
|
$alternative="http://www.emacswiki.org");
|
||||||
|
define_webjump("php",
|
||||||
|
"http://www.php.net/manual-lookup.php?pattern=%s&scope=quickref",
|
||||||
|
$alternative="http://www.php.net");
|
||||||
|
define_webjump("python",
|
||||||
|
"http://docs.python.org/search.html?q=%s&check_keywords=yes&area=default",
|
||||||
|
$alternative="http://www.python.org");
|
||||||
|
define_webjump("ddg",
|
||||||
|
"https://duckduckgo.com/?q=%s",
|
||||||
|
$alternative="https://duckduckgo.com");
|
||||||
|
define_webjump("metal-archives",
|
||||||
|
"http://www.metal-archives.com/search?searchString=%s&type=band_name",
|
||||||
|
$alternative="http://www.metal-archives.com");
|
||||||
|
define_webjump("djangodocs",
|
||||||
|
"https://docs.djangoproject.com/search/?q=%s&release=5",
|
||||||
|
$alternative="https://docs.djangoproject.com/");
|
||||||
|
define_webjump("google",
|
||||||
|
"https://duckduckgo.com?q=!google%%20%s");
|
||||||
|
define_webjump("github",
|
||||||
|
"https://github.com/search?q=%s&type=Everything&repo=&langOverride=&start_value=1",
|
||||||
|
$alternative="https://github.com");
|
||||||
|
define_webjump("mdn",
|
||||||
|
"https://developer.mozilla.org/en-US/search?q=%s",
|
||||||
|
$alternative="https://developer.mozilla.org/");
|
||||||
|
define_webjump("monsterhunter",
|
||||||
|
"http://monsterhunter.wikia.com/wiki/index.php?search=%s&fulltext=Search",
|
||||||
|
$alternative="http://monsterhunter.wikia.com/");
|
||||||
|
// Archlinux
|
||||||
|
define_webjump("arch/wiki",
|
||||||
|
"https://wiki.archlinux.org/index.php?search=%s",
|
||||||
|
$alternative="https://wiki.archlinux.org");
|
||||||
|
define_webjump("arch/aur",
|
||||||
|
"https://aur.archlinux.org/packages.php?O=0&K=%s&do_Search=Go",
|
||||||
|
$alternative="https://aur.archlinux.org");
|
||||||
|
define_webjump("arch/packages",
|
||||||
|
"https://www.archlinux.org/packages/?sort=&q=%s&limit=50",
|
||||||
|
$alternative="https://packages.archlinux.org");
|
||||||
|
|
||||||
|
/// Chickadee
|
||||||
|
// From http://conkeror.org/Webjumps
|
||||||
|
function chickadee_completer (input, cursor_position, conservative) {
|
||||||
|
var completions = [];
|
||||||
|
var content = yield send_http_request(
|
||||||
|
load_spec({uri: "http://api.call-cc.org/cdoc/ajax/prefix?q="+
|
||||||
|
encodeURIComponent(input)}));
|
||||||
|
if (content.responseText) {
|
||||||
|
var parser = Cc["@mozilla.org/xmlextras/domparser;1"]
|
||||||
|
.createInstance(Ci.nsIDOMParser);
|
||||||
|
var doc = parser.parseFromString(content.responseText, "text/xml");
|
||||||
|
var res = doc.getElementsByTagName("li");
|
||||||
|
for (let i = 0, n = res.length; i < n; ++i) {
|
||||||
|
completions.push(res[i].textContent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
yield co_return(prefix_completer($completions = completions)
|
||||||
|
(input, cursor_position, conservative));
|
||||||
|
}
|
||||||
|
define_webjump("chickadee",
|
||||||
|
"http://api.call-cc.org/cdoc?q=%s&query-name=Lookup",
|
||||||
|
$alternative = "http://api.call-cc.org/doc/",
|
||||||
|
$completer = chickadee_completer);
|
||||||
|
/// /Chickadee
|
||||||
|
|
||||||
|
// content_policy_bytype_table.object = oni_block_flash;
|
||||||
|
cwd = make_file("/home/slash/downloads/");
|
||||||
|
hint_digits = "asdfghjkl;";
|
||||||
|
read_buffer_show_icons = true;
|
||||||
|
title_format_fn = ext_title_format;
|
||||||
|
url_remoting_fn = load_url_in_new_buffer;
|
||||||
|
|
||||||
|
define_key(content_buffer_normal_keymap, "C-x C-b", "switch-to-buffer");
|
||||||
|
define_key(content_buffer_normal_keymap, "C-y", "paste-url-new-buffer");
|
||||||
|
define_key(content_buffer_normal_keymap, "H", "find-url-from-history");
|
||||||
|
define_key(content_buffer_normal_keymap, "h", "find-url-from-history-new-buffer");
|
||||||
|
define_key(default_base_keymap, "C-x f", "follow-new-buffer");
|
||||||
|
define_key(content_buffer_normal_keymap, "b", clark_keymap);
|
||||||
|
|
||||||
|
add_hook("before_quit_hook", oni_before_quit_func);
|
||||||
|
add_hook("content_policy_hook", content_policy_bytype);
|
||||||
|
add_hook("mode_line_hook", mode_line_adder(buffer_count_widget));
|
||||||
|
add_hook("mode_line_hook", mode_line_adder(buffer_icon_widget), true);
|
||||||
|
add_hook("mode_line_hook", mode_line_adder(clark_bookmarked_widget), true);
|
||||||
|
add_hook("mode_line_hook", mode_line_adder(downloads_status_widget));
|
||||||
|
|
||||||
|
remove_hook("download_added_hook", open_download_buffer_automatically);
|
||||||
|
|
||||||
|
hints_minibuffer_annotation_mode(true);
|
||||||
|
|
||||||
|
external_content_handlers.set("application/pdf", "zathura");
|
||||||
|
external_content_handlers.set("application/vnd.ms-excel", "libreoffice");
|
||||||
|
|
||||||
|
var gh_url = "http://github.com/";
|
||||||
|
function read_url_github_ad_command_handler(input)
|
||||||
|
{
|
||||||
|
var m = /^gh\s+@(\S+)(?:\s+((?:un)?follow))?/.exec(input);
|
||||||
|
if (m) {
|
||||||
|
if (m[2])
|
||||||
|
return gh_url + "users/follow?target=";
|
||||||
|
return gh_url + m[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_url_github_my_command_handler(input)
|
||||||
|
{
|
||||||
|
var m = /^gh\s+my\s+(dashboard|issues|notifications|profile|pulls|stars)/.exec(input);
|
||||||
|
|
||||||
|
if (m) {
|
||||||
|
switch (m[1]) {
|
||||||
|
case "dashboard":
|
||||||
|
case "notifications":
|
||||||
|
case "stars":
|
||||||
|
return gh_url + m[1];
|
||||||
|
case "issues":
|
||||||
|
case "pulls":
|
||||||
|
return gh_url + "dashboard/" + m[1];
|
||||||
|
case "profile":
|
||||||
|
return gh_url + "settings/" + m[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_url_github_repo_command_handler(input)
|
||||||
|
{
|
||||||
|
var m = /^gh\s+(\S+\/\S+)(?:\s+(\#\d+|\@\S+|issues|pulls|wiki|graphs|network|admin)(?:\s+(\#\d+|new))?)?$/.exec(input);
|
||||||
|
|
||||||
|
if (m) {
|
||||||
|
repo_url = gh_url + m[1] + "/";
|
||||||
|
|
||||||
|
switch (m[2]) {
|
||||||
|
case "issues":
|
||||||
|
issues_url = repo_url + m[2] + "/";
|
||||||
|
|
||||||
|
if (m[3]) {
|
||||||
|
if (m[3][0] == '#')
|
||||||
|
return issues_url + m[3].substring(1);
|
||||||
|
else if (m[3] == "new")
|
||||||
|
return issues_url + m[3];
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return issues_url;
|
||||||
|
case "pulls":
|
||||||
|
case "wiki":
|
||||||
|
case "graphs":
|
||||||
|
case "network":
|
||||||
|
case "admin":
|
||||||
|
return repo_url + m[2];
|
||||||
|
default:
|
||||||
|
// Still need watch and unwatch
|
||||||
|
if (m[2]) {
|
||||||
|
if (m[2][0] == '#')
|
||||||
|
return repo_url + "issues/" + m[2].substring(1);
|
||||||
|
else if (m[2][0] == '@')
|
||||||
|
return repo_url + "tree/" + m[2].substring(1);
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return repo_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_url_github_command_handler(input)
|
||||||
|
{
|
||||||
|
return read_url_github_ad_command_handler(input)
|
||||||
|
|| read_url_github_my_command_handler(input)
|
||||||
|
|| read_url_github_repo_command_handler(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
function read_url_local_port_handler(input)
|
||||||
|
{
|
||||||
|
var m = /^lh (\d{1,5})(?:\s+([a-zA-Z0-9%/]+))?$/.exec(input),
|
||||||
|
rv = null;
|
||||||
|
|
||||||
|
if (m) {
|
||||||
|
rv = "http://localhost:" + m[1];
|
||||||
|
|
||||||
|
if (m[2])
|
||||||
|
rv += "/" + m[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
read_url_handler_list = [read_url_local_port_handler,
|
||||||
|
read_url_github_command_handler];
|
||||||
|
|
||||||
|
// Mozrepl
|
||||||
|
let (mozrepl_init = get_home_directory()) {
|
||||||
|
mozrepl_init.appendRelativePath(".mozrepl-conkeror.js");
|
||||||
|
session_pref('extensions.mozrepl.initUrl', make_uri(mozrepl_init).spec);
|
||||||
|
};
|
||||||
|
|
||||||
|
// if ('@hyperstruct.net/mozlab/mozrepl;1' in Cc) {
|
||||||
|
// let mozrepl = Cc['@hyperstruct.net/mozlab/mozrepl;1']
|
||||||
|
// .getService(Ci.nsIMozRepl);
|
||||||
|
// if (!mozrepl.isActive())
|
||||||
|
// mozrepl.start(4242);
|
||||||
|
// }
|
||||||
|
|
||||||
|
register_user_stylesheet(
|
||||||
|
"data:text/css," +
|
||||||
|
escape(
|
||||||
|
"@namespace url(\"http://www.w3.org/1999/xhtml\");\n" +
|
||||||
|
"span.__conkeror_hint {\n" +
|
||||||
|
" font-family: \"Envy Code R\" !important;\n" +
|
||||||
|
" font-size: 12px !important;\n" +
|
||||||
|
" line-height: 12px !important;\n" +
|
||||||
|
" padding: 0 2px !important;\n" +
|
||||||
|
"}"
|
||||||
|
)
|
||||||
|
);
|
|
@ -20,9 +20,9 @@
|
||||||
<const>rgb</const>
|
<const>rgb</const>
|
||||||
</edit>
|
</edit>
|
||||||
|
|
||||||
<!-- <edit name="autohint" mode="assign"> -->
|
<edit name="autohint" mode="assign">
|
||||||
<!-- <bool>true</bool> -->
|
<bool>true</bool>
|
||||||
<!-- </edit> -->
|
</edit>
|
||||||
</match>
|
</match>
|
||||||
|
|
||||||
<match target="font">
|
<match target="font">
|
|
@ -2,14 +2,12 @@
|
||||||
name = Tom Willemse
|
name = Tom Willemse
|
||||||
email = tom@ryuslash.org
|
email = tom@ryuslash.org
|
||||||
[core]
|
[core]
|
||||||
editor = mg
|
editor = emacs -nw
|
||||||
whitespace = trailing-space,tab-in-indent,space-before-tab
|
whitespace = trailing-space,tab-in-indent,space-before-tab
|
||||||
[color]
|
[color]
|
||||||
ui = auto
|
ui = auto
|
||||||
[alias]
|
[alias]
|
||||||
st = status -s
|
st = status -s
|
||||||
stt = !git status | head -n2 | tail -n1 && git status -s
|
|
||||||
su = status -suno
|
|
||||||
unadd = reset HEAD
|
unadd = reset HEAD
|
||||||
lschanged = diff --name-only
|
lschanged = diff --name-only
|
||||||
history = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
|
history = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
|
||||||
|
@ -22,9 +20,3 @@
|
||||||
tool = emerge
|
tool = emerge
|
||||||
[push]
|
[push]
|
||||||
default = simple
|
default = simple
|
||||||
[diff "lisp"]
|
|
||||||
xfuncname = "^\\([^ ]+ [^ ]+"
|
|
||||||
[diff "org"]
|
|
||||||
xfuncname = "^\\*+.*"
|
|
||||||
[diff "dia"]
|
|
||||||
textconv = gunzip -c
|
|
10
.gitignore
vendored
|
@ -1,9 +1 @@
|
||||||
junk/
|
Makefile.old
|
||||||
.src/
|
|
||||||
.cask/
|
|
||||||
_publish/
|
|
||||||
|
|
||||||
.tern-project
|
|
||||||
\#*\#
|
|
||||||
*\#
|
|
||||||
.\#*
|
|
||||||
|
|
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule ".config/zsh/syntax-highlighting"]
|
||||||
|
path = .config/zsh/syntax-highlighting
|
||||||
|
url = git://github.com/zsh-users/zsh-syntax-highlighting
|
|
@ -1,2 +1,4 @@
|
||||||
[ui]
|
[ui]
|
||||||
username = Tom Willemse <tom@ryuslash.org>
|
username = Tom Willemse <tom@ryuslash.org>
|
||||||
|
[extensions]
|
||||||
|
hgext.bookmarks =
|
|
@ -1,5 +1,4 @@
|
||||||
from offlineimap import imaputil
|
from offlineimap import imaputil
|
||||||
import keyring
|
|
||||||
|
|
||||||
|
|
||||||
def lld_flagsimap2maildir(flagstring):
|
def lld_flagsimap2maildir(flagstring):
|
||||||
|
@ -40,5 +39,13 @@ imaputil.flagsmaildir2imap = lld_flagsmaildir2imap
|
||||||
imaputil.flagsimap2maildir = lld_flagsimap2maildir
|
imaputil.flagsimap2maildir = lld_flagsimap2maildir
|
||||||
|
|
||||||
|
|
||||||
|
def getuser(host):
|
||||||
|
import netrc
|
||||||
|
mynet = netrc.netrc()
|
||||||
|
return mynet.authenticators(host)[0]
|
||||||
|
|
||||||
|
|
||||||
def getpassword(host):
|
def getpassword(host):
|
||||||
return keyring.get_password('offlineimap', host)
|
import netrc
|
||||||
|
mynet = netrc.netrc()
|
||||||
|
return mynet.authenticators(host)[2]
|
|
@ -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,picturefix,gmail,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/new-mail-mowedline; /home/slash/usr/bin/mail-notify ryuslash.org
|
# postsynchook = /home/slash/usr/bin/emacs-send-mail ryuslash.org
|
||||||
|
|
||||||
[Repository ryuslash.org-local]
|
[Repository ryuslash.org-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -17,30 +17,11 @@ nametrans = lambda folder: re.sub('^Inbox$', 'INBOX', folder.capitalize())
|
||||||
|
|
||||||
[Repository ryuslash.org-remote]
|
[Repository ryuslash.org-remote]
|
||||||
type = IMAP
|
type = IMAP
|
||||||
remotehost = imap-ryuslash.alwaysdata.net
|
remotehost = imap.alwaysdata.com
|
||||||
remoteuser = 'tom@ryuslash.org'
|
remoteusereval = getuser("imap.alwaysdata.com")
|
||||||
remotepasseval = getpassword("ryuslash")
|
remotepasseval = getpassword("imap.alwaysdata.com")
|
||||||
nametrans = lambda folder: folder.lower()
|
nametrans = lambda folder: folder.lower()
|
||||||
|
|
||||||
[Account picturefix]
|
|
||||||
localrepository = picturefix-local
|
|
||||||
remoterepository = picturefix-remote
|
|
||||||
postsynchook = /home/slash/usr/bin/new-mail-mowedline; /home/slash/usr/bin/mail-notify picturefix
|
|
||||||
|
|
||||||
[Repository picturefix-local]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/documents/mail/picturefix
|
|
||||||
nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gmail]/Concepten', re.sub('^sent$', '[Gmail]/Verzonden berichten', re.sub('^trash$', '[Gmail]/Prullenbak', folder))))
|
|
||||||
|
|
||||||
[Repository picturefix-remote]
|
|
||||||
type = Gmail
|
|
||||||
remoteuser = "tom@picturefix.nl"
|
|
||||||
remotepasseval = getpassword("picturefix")
|
|
||||||
realdelete = no
|
|
||||||
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))))
|
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
|
|
||||||
[Account aethon]
|
[Account aethon]
|
||||||
localrepository = aethon-local
|
localrepository = aethon-local
|
||||||
remoterepository = aethon-remote
|
remoterepository = aethon-remote
|
||||||
|
@ -53,17 +34,17 @@ nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gm
|
||||||
|
|
||||||
[Repository aethon-remote]
|
[Repository aethon-remote]
|
||||||
type = Gmail
|
type = Gmail
|
||||||
remoteuser = "thomas@aethon.nl"
|
remoteusereval = getuser("imap.google.com-aethon")
|
||||||
remotepasseval = getpassword("aethon")
|
remotepasseval = getpassword("imap.google.com-aethon")
|
||||||
realdelete = no
|
realdelete = no
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
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/new-mail-mowedline; /home/slash/usr/bin/mail-notify gmail
|
# postsynchook = /home/slash/usr/bin/emacs-send-mail gmail
|
||||||
|
|
||||||
[Repository gmail-local]
|
[Repository gmail-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -72,17 +53,17 @@ nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gm
|
||||||
|
|
||||||
[Repository gmail-remote]
|
[Repository gmail-remote]
|
||||||
type = Gmail
|
type = Gmail
|
||||||
remoteuser = "ryuslash@gmail.com"
|
remoteusereval = getuser("imap.google.com")
|
||||||
remotepasseval = getpassword("gmail")
|
remotepasseval = getpassword("imap.google.com")
|
||||||
realdelete = no
|
realdelete = no
|
||||||
|
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))))
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
|
||||||
|
|
||||||
[Account ninthfloor]
|
[Account ninthfloor]
|
||||||
localrepository = ninthfloor-local
|
localrepository = ninthfloor-local
|
||||||
remoterepository = ninthfloor-remote
|
remoterepository = ninthfloor-remote
|
||||||
postsynchook = /home/slash/usr/bin/new-mail-mowedline; /home/slash/usr/bin/mail-notify ninthfloor
|
# postsynchook = /home/slash/usr/bin/emacs-send-mail ninthfloor
|
||||||
|
|
||||||
[Repository ninthfloor-local]
|
[Repository ninthfloor-local]
|
||||||
type = Maildir
|
type = Maildir
|
||||||
|
@ -92,8 +73,8 @@ nametrans = lambda folder: re.sub('^Inbox$', 'INBOX', folder.capitalize())
|
||||||
[Repository ninthfloor-remote]
|
[Repository ninthfloor-remote]
|
||||||
type = IMAP
|
type = IMAP
|
||||||
remotehost = ninthfloor.org
|
remotehost = ninthfloor.org
|
||||||
remoteuser = "ryuslash"
|
remoteusereval = getuser("ninthfloor.org")
|
||||||
remotepasseval = getpassword("ninthfloor")
|
remotepasseval = getpassword("ninthfloor.org")
|
||||||
nametrans = lambda folder: folder.lower()
|
nametrans = lambda folder: folder.lower()
|
||||||
|
|
||||||
[Account arch]
|
[Account arch]
|
||||||
|
@ -107,10 +88,10 @@ nametrans = lambda folder: re.sub('^inbox$', 'INBOX', re.sub('^drafts$', '[Gm
|
||||||
|
|
||||||
[Repository arch-remote]
|
[Repository arch-remote]
|
||||||
type = Gmail
|
type = Gmail
|
||||||
remoteuser = tom.willemsen@archlinux.us
|
remoteusereval = getuser("imap.google.com-arch")
|
||||||
remotepasseval = getpassword("arch")
|
remotepasseval = getpassword("imap.google.com-arch")
|
||||||
realdelete = no
|
realdelete = no
|
||||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
cert_fingerprint = 6d1b5b5ee0180ab493b71d3b94534b5ab937d042
|
||||||
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))))
|
||||||
|
|
||||||
|
@ -125,20 +106,5 @@ localfolders = ~/documents/mail/iactor
|
||||||
[Repository iactor-remote]
|
[Repository iactor-remote]
|
||||||
type = IMAP
|
type = IMAP
|
||||||
remotehost = mail.iactor.nl
|
remotehost = mail.iactor.nl
|
||||||
remoteuser = "tom@iactor.nl"
|
remoteusereval = getuser("mail.iactor.nl")
|
||||||
remotepasseval = getpassword("iactor")
|
remotepasseval = getpassword("mail.iactor.nl")
|
||||||
|
|
||||||
[Account ryuslash.alwaysdata]
|
|
||||||
localrepository = ryuslash.alwaysdata-local
|
|
||||||
remoterepository = ryuslash.alwaysdata-remote
|
|
||||||
|
|
||||||
[Repository ryuslash.alwaysdata-local]
|
|
||||||
type = Maildir
|
|
||||||
localfolders = ~/documents/mail/ryuslash.alwaysdata
|
|
||||||
nametrans = lambda folder: re.sub('^Inbox$', 'INBOX', folder.capitalize())
|
|
||||||
|
|
||||||
[Repository ryuslash.alwaysdata-remote]
|
|
||||||
type = IMAP
|
|
||||||
remotehost = imap.alwaysdata.com
|
|
||||||
remoteuser = ryuslash@alwaysdata.net
|
|
||||||
nametrans = lambda folder: folder.lower()
|
|
4
.screenrc
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
startup_message off
|
||||||
|
vbell off
|
||||||
|
|
||||||
|
hardstatus alwayslastline "%{= d}%{r}screen%{g}%H %{r}>> %{g}${USER}@%H: %L>%1`%? %?%{.g}%u%? %-18=%?%{m} %{g}%-=%{g}%-w%{r}%n %t%{g}%+w %{g}|%C"
|
0
mutt/.mutt/sig → .ssh/.gitignore
vendored
4
.ssh/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=.ssh
|
||||||
|
objects=config
|
||||||
|
|
||||||
|
include ../dotfiles.mk
|
22
.ssh/config
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPath /tmp/ssh_mux_%h_%p_%r
|
||||||
|
ControlPersist 1m
|
||||||
|
|
||||||
|
Host 192.168.0.95
|
||||||
|
Port 4511
|
||||||
|
|
||||||
|
Host pegas
|
||||||
|
Port 4511
|
||||||
|
|
||||||
|
Host 82.170.172.156
|
||||||
|
Port 4511
|
||||||
|
|
||||||
|
Host anapnea.net
|
||||||
|
User ryuslash
|
||||||
|
|
||||||
|
Host my.aethon.nl
|
||||||
|
User tom
|
||||||
|
|
||||||
|
Host ryuslash.org
|
||||||
|
Port 4511
|
||||||
|
ForwardAgent yes
|
1
.stowrc
|
@ -1 +0,0 @@
|
||||||
--target=/home/slash/
|
|
193
.stumpwmrc
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
;; -*- mode: lisp; -*-
|
||||||
|
; (require 'swank)
|
||||||
|
(require 'cl-ppcre)
|
||||||
|
|
||||||
|
(in-package :stumpwm)
|
||||||
|
;; (load "/usr/share/stumpwm/contrib/app-menu.lisp")
|
||||||
|
|
||||||
|
(defmacro elisp (&body body)
|
||||||
|
"Run BODY through emacsclient."
|
||||||
|
`(sb-ext:run-program
|
||||||
|
"/usr/bin/emacsclient"
|
||||||
|
'("-e" ,(string-downcase (format nil "~S" (cons 'progn body))))
|
||||||
|
:wait nil))
|
||||||
|
|
||||||
|
;; Naquadah
|
||||||
|
;; (defun colour (key)
|
||||||
|
;; (let ((colours (list :lblack #xeeeeec :dblack #x111113
|
||||||
|
;; :lwhite #xa5a5a4 :dwhite #x222224
|
||||||
|
;; :lred #xbf6d6d :dred #x744a4a
|
||||||
|
;; :lorange #xbfa47d :dorange #x73634a
|
||||||
|
;; :lyellow #xb2bf6d :dyellow #x6b734a
|
||||||
|
;; :lgreen #x8abf6d :dgreen #x52734a
|
||||||
|
;; :lturquoise #x7dbf97 :dturquoise #x4a735b
|
||||||
|
;; :lcyan #x7dbfbf :dcyan #x4a7373
|
||||||
|
;; :lblue #x6d97bf :dblue #x4a5b73
|
||||||
|
;; :lpurple #x8a7dbf :dpurple #x524a73
|
||||||
|
;; :lmagenta #xb27dbf :dmagenta #x6b4a73
|
||||||
|
;; :lpink #xbf6da4 :dpink #x734a63)))
|
||||||
|
;; (getf colours key)))
|
||||||
|
|
||||||
|
(setf *app-menu* '(("Editor" . "emacs")
|
||||||
|
("Browser" . "conkeror")
|
||||||
|
("Terminal" . "urxvt")
|
||||||
|
("Office" . "libreoffice")
|
||||||
|
("Gimp" . "gimp")))
|
||||||
|
(defvar *conkeror-program* "conkeror"
|
||||||
|
"The executable to run to start Conkeror.")
|
||||||
|
(defvar *emacs-program* "emacsclient -c -a emacs"
|
||||||
|
"The executable to run to start Emacs.")
|
||||||
|
(defvar *firefox-program* "firefox"
|
||||||
|
"The executable to run to start Firefox.")
|
||||||
|
(defvar *i3lock-program* "i3lock -c 000000"
|
||||||
|
"The executable to run to start i3lock.")
|
||||||
|
(defvar *urxvt-program* "urxvt"
|
||||||
|
"The executable to run to start URxvt.")
|
||||||
|
(defvar *lock-screen-hook* nil
|
||||||
|
"Hook run right before the screen gets locked.")
|
||||||
|
(defvar *screen-unlocked-hook* nil
|
||||||
|
"Hook run right after the screen is unlocked.")
|
||||||
|
(defvar *mpd-was-playing-p* nil
|
||||||
|
"Indicator of whether or not MPD was playing when it was paused.")
|
||||||
|
|
||||||
|
(defun get-mail-count (mailbox &optional (inbox "inbox"))
|
||||||
|
"Check how many new messages there are in MAILBOX."
|
||||||
|
(length
|
||||||
|
(append
|
||||||
|
(directory
|
||||||
|
(format nil "/home/slash/documents/mail/~A/~A/new/*.*"
|
||||||
|
mailbox inbox))
|
||||||
|
(remove-if (lambda (d)
|
||||||
|
(let ((dir (namestring d)))
|
||||||
|
(string= dir "S" :start1 (1- (length dir)))))
|
||||||
|
(directory
|
||||||
|
(format nil "/home/slash/documents/mail/~A/~A/cur/*.*"
|
||||||
|
mailbox inbox))))))
|
||||||
|
|
||||||
|
(defun set-jabber-away ()
|
||||||
|
"Tell emacs to set jabber to away presence."
|
||||||
|
(elisp
|
||||||
|
(when (and (fboundp 'jabber-send-away-presence)
|
||||||
|
*jabber-connected*)
|
||||||
|
(jabber-send-away-presence))))
|
||||||
|
|
||||||
|
(defun set-jabber-online ()
|
||||||
|
"Tel emacs to set jabber to online presence."
|
||||||
|
(elisp
|
||||||
|
(when (and (fboundp 'jabber-send-default-presence)
|
||||||
|
*jabber-connected*)
|
||||||
|
(jabber-send-default-presence))))
|
||||||
|
|
||||||
|
(defcommand run-emacs () ()
|
||||||
|
"Open Emacs"
|
||||||
|
(run-shell-command *emacs-program*))
|
||||||
|
|
||||||
|
(defcommand raise-emacs () ()
|
||||||
|
"Open or show Emacs"
|
||||||
|
(run-or-raise *emacs-program* '(:class "Emacs")))
|
||||||
|
|
||||||
|
(defcommand run-firefox () ()
|
||||||
|
"Open Firefox"
|
||||||
|
(run-shell-command *firefox-program*))
|
||||||
|
|
||||||
|
(defcommand raise-firefox () ()
|
||||||
|
"Open or show Firefox"
|
||||||
|
(run-or-raise *firefox-program* '(:class "Firefox")))
|
||||||
|
|
||||||
|
(defcommand run-conkeror () ()
|
||||||
|
"Open Conkeror"
|
||||||
|
(run-shell-command *conkeror-program*))
|
||||||
|
|
||||||
|
(defcommand raise-conkeror () ()
|
||||||
|
"Open or show Conkeror"
|
||||||
|
(run-or-raise *conkeror-program* '(:class "Conkeror")))
|
||||||
|
|
||||||
|
(defcommand run-urxvt () ()
|
||||||
|
"Open URxvt"
|
||||||
|
(run-shell-command *urxvt-program*))
|
||||||
|
|
||||||
|
(defcommand raise-urxvt () ()
|
||||||
|
"Open URxvt"
|
||||||
|
(run-or-raise *urxvt-program* '(:class "URxvt")))
|
||||||
|
|
||||||
|
(defun run-stumpwm-hook-on-exit (process)
|
||||||
|
"Run `*screen-unlocked-hook*' if PROCESS' status is `:exited'."
|
||||||
|
(when (eq (sb-ext:process-status process) :exited)
|
||||||
|
(run-hook *screen-unlocked-hook*)))
|
||||||
|
|
||||||
|
(defcommand lock-screen () ()
|
||||||
|
"Lock the screen using i3lock. Run *lock-screen-hook* before locking
|
||||||
|
it and run *screen-unlocked-hook* after it has been unlocked."
|
||||||
|
(run-hook *lock-screen-hook*)
|
||||||
|
(sb-ext:run-program
|
||||||
|
"/usr/bin/i3lock" '("-n" "-c" "000000") :wait nil
|
||||||
|
:status-hook #'run-stumpwm-hook-on-exit))
|
||||||
|
|
||||||
|
;; (set-bg-color (colour :dwhite))
|
||||||
|
;; (set-border-color (colour :lwhite))
|
||||||
|
;; (set-fg-color (colour :lblack))
|
||||||
|
;; (set-float-focus-color (colour :lblue))
|
||||||
|
;; (set-float-unfocus-color (colour :dwhite))
|
||||||
|
;; (set-focus-color (colour :lblue))
|
||||||
|
;; (set-font "-*-tamsyn-medium-r-normal-*-17-*-*-*-*-0-iso8859-1")
|
||||||
|
;; (set-unfocus-color (colour :dwhite))
|
||||||
|
;; (set-win-bg-color (colour :dblack))
|
||||||
|
|
||||||
|
;; (setf *colors* (mapcar #'colour '(:lwhite :lred :lgreen :lyellow :lblue
|
||||||
|
;; :lmagenta :lcyan :lblack)))
|
||||||
|
(setf *input-window-gravity* :bottom-left)
|
||||||
|
(setf *message-window-gravity* :top-right)
|
||||||
|
;; (setf *mode-line-background-color* (colour :dwhite))
|
||||||
|
;; (setf *mode-line-border-color* (colour :dwhite))
|
||||||
|
;; (setf *mode-line-foreground-color* (colour :lblack))
|
||||||
|
(setf *shell-program* (getenv "SHELL"))
|
||||||
|
(setf *transient-border-width* 1)
|
||||||
|
(setf *window-border-style* :thin)
|
||||||
|
(setf *screen-mode-line-format*
|
||||||
|
(list "[%n]"
|
||||||
|
'(:eval
|
||||||
|
(format nil " | ryu: ~D | gmail: ~D | aethon: ~D | 9f: ~D | "
|
||||||
|
(get-mail-count "ryuslash.org")
|
||||||
|
(get-mail-count "gmail")
|
||||||
|
(get-mail-count "aethon")
|
||||||
|
(get-mail-count "ninthfloor")))))
|
||||||
|
|
||||||
|
(add-hook *lock-screen-hook* 'set-jabber-away)
|
||||||
|
(add-hook *screen-unlocked-hook* 'set-jabber-online)
|
||||||
|
|
||||||
|
(set-prefix-key (kbd "C-z"))
|
||||||
|
|
||||||
|
(define-key *top-map* (kbd "C-M-l") "lock-screen")
|
||||||
|
|
||||||
|
(define-key *root-map* (kbd "c") "raise-urxvt")
|
||||||
|
(define-key *root-map* (kbd "C") "run-urxvt")
|
||||||
|
(define-key *root-map* (kbd "e") "raise-emacs")
|
||||||
|
(define-key *root-map* (kbd "E") "run-emacs")
|
||||||
|
(define-key *root-map* (kbd "w") "raise-conkeror")
|
||||||
|
(define-key *root-map* (kbd "W") "run-conkeror")
|
||||||
|
|
||||||
|
(define-key *root-map* (kbd "C-b") "windowlist")
|
||||||
|
(define-key *root-map* (kbd "M-b") "move-window left")
|
||||||
|
(define-key *root-map* (kbd "M-f") "move-window right")
|
||||||
|
(define-key *root-map* (kbd "M-n") "move-window down")
|
||||||
|
(define-key *root-map* (kbd "M-p") "move-window up")
|
||||||
|
(define-key *root-map* (kbd "b") "move-focus left")
|
||||||
|
(define-key *root-map* (kbd "f") "move-focus right")
|
||||||
|
(define-key *root-map* (kbd "n") "move-focus down")
|
||||||
|
(define-key *root-map* (kbd "p") "move-focus up")
|
||||||
|
|
||||||
|
(undefine-key *root-map* (kbd "C-a"))
|
||||||
|
(undefine-key *root-map* (kbd "C-c"))
|
||||||
|
(undefine-key *root-map* (kbd "C-e"))
|
||||||
|
(undefine-key *root-map* (kbd "C-m"))
|
||||||
|
|
||||||
|
(define-frame-preference "Default"
|
||||||
|
(0 t nil :class "Emacs")
|
||||||
|
(2 t nil :class "Firefox")
|
||||||
|
(1 t nil :class "URxvt")
|
||||||
|
(2 t nil :class "Conkeror"))
|
||||||
|
|
||||||
|
(if (not (head-mode-line (current-head)))
|
||||||
|
(toggle-mode-line (current-screen) (current-head)))
|
||||||
|
|
||||||
|
; (swank:create-server)
|
0
w3m/.w3m/.gitignore → .w3m/.gitignore
vendored
4
.w3m/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=.w3m
|
||||||
|
objects=config
|
||||||
|
|
||||||
|
include ../dotfiles.mk
|
|
@ -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"))
|
||||||
|
|
15
.xinitrc
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
xmodmap ~/.Xmodmap
|
||||||
|
|
||||||
|
# Source scripts in /etc/X11/xinit/xinitrc.d/
|
||||||
|
if [ -d /etc/X11/xinit/xinitrc.d ]; then
|
||||||
|
for f in /etc/X11/xinit/xinitrc.d/*; do
|
||||||
|
[ -x "$f" ] && . "$f"
|
||||||
|
done
|
||||||
|
unset f
|
||||||
|
fi
|
||||||
|
|
||||||
|
unclutter &
|
||||||
|
|
||||||
|
test -n "$1" && wm=$1 || wm="$HOME/usr/local/bin/dwm"
|
||||||
|
exec $wm
|
18
.zprofile
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
export BROWSER=conkeror
|
||||||
|
export EDITOR="emacsclient -c -a emacs"
|
||||||
|
|
||||||
|
INFOPATH="$HOME/documents/info"
|
||||||
|
INFOPATH="$INFOPATH:/usr/local/emacs/share/info"
|
||||||
|
INFOPATH="$INFOPATH:/usr/share/info"
|
||||||
|
INFOPATH="$INFOPATH:/usr/local/clark/share/info"
|
||||||
|
export INFOPATH="$INFOPATH:/usr/local/stumpwm/share/info"
|
||||||
|
|
||||||
|
PATH="${HOME}/usr/bin:${PATH}:/usr/local/bin:/usr/local/stumpwm/bin"
|
||||||
|
PATH="/usr/local/scwm/bin:$PATH"
|
||||||
|
PATH="/usr/local/clfswm/bin:$PATH"
|
||||||
|
PATH="/usr/local/clark/bin:$PATH"
|
||||||
|
export PATH="/usr/local/emacs/bin:$PATH"
|
||||||
|
|
||||||
|
if [ -z "$SSH_AGENT_PID" ]; then
|
||||||
|
eval `ssh-agent`
|
||||||
|
fi
|
0
zsh/.gitignore → .zsh/.gitignore
vendored
4
.zsh/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=.zsh
|
||||||
|
modules=functions
|
||||||
|
|
||||||
|
include ../dotfiles.mk
|
4
.zsh/functions/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
SUBDIR=functions
|
||||||
|
objects=env venv add-to-list
|
||||||
|
|
||||||
|
include ../../dotfiles.mk
|
1
.zsh/syntax-highlighting
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit d2715e2cb3294880bbc6a75b91288243054218d0
|
114
.zshrc
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
# -*- Mode: shell-script; -*-
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
autoload -Uz compinit
|
||||||
|
autoload -U colors
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
|
||||||
|
# Autoload zsh functions.
|
||||||
|
fpath=($HOME/.zsh/functions $fpath)
|
||||||
|
autoload -U $HOME/.zsh/functions/*(:t)
|
||||||
|
|
||||||
|
# Setup variables
|
||||||
|
HISTFILE=$HOME/.zsh/histfile
|
||||||
|
HISTSIZE=1000
|
||||||
|
SAVEHIST=1000
|
||||||
|
LESSCMD="/usr/bin/less -FXRS"
|
||||||
|
|
||||||
|
export LESS_TERMCAP_mb=$'\e[1;37m'
|
||||||
|
export LESS_TERMCAP_md=$'\e[1;37m'
|
||||||
|
export LESS_TERMCAP_me=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_se=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_so=$'\e[1;47;30m'
|
||||||
|
export LESS_TERMCAP_ue=$'\e[0m'
|
||||||
|
export LESS_TERMCAP_us=$'\e[0;36m'
|
||||||
|
export PAGER=$LESSCMD
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias alpine="alpine -p ""{imap.gmail.com/ssl/user=tom.willemsen@archlinux.us}remote_pinerc"""
|
||||||
|
alias evolus-pencil="/usr/lib/evolus-pencil-svn/evolus-pencil.sh"
|
||||||
|
alias grep="grep --color=always"
|
||||||
|
alias less=$LESSCMD
|
||||||
|
alias ls="ls -F --color=always"
|
||||||
|
alias mysql="mysql --pager"
|
||||||
|
|
||||||
|
# Suffix aliases
|
||||||
|
alias -s pdf="zathura"
|
||||||
|
alias -s xls="libreoffice"
|
||||||
|
|
||||||
|
setopt NOTIFY
|
||||||
|
setopt PROMPT_SUBST # Allow for functions in the prompt
|
||||||
|
setopt EXTENDED_GLOB
|
||||||
|
|
||||||
|
zstyle :compinstall filename '$HOME/.zshrc'
|
||||||
|
|
||||||
|
# Enable auto-execution of functions
|
||||||
|
typeset -ga preexec_functions
|
||||||
|
typeset -ga precmd_functions
|
||||||
|
typeset -ga chpwd_functions
|
||||||
|
|
||||||
|
add-zsh-hook precmd vcs_info
|
||||||
|
|
||||||
|
zstyle ':vcs_info:*' actionformats '%B%F{1}%a%f%%b (%F{3}%s%f) %F{5}%r%f:%F{4}%b%f %F{2}%S%f'
|
||||||
|
zstyle ':vcs_info:*' enable bzr git hg svn
|
||||||
|
zstyle ':vcs_info:*' formats '(%F{3}%s%f) %F{5}%r%f:%F{4}%b%f %F{2}%S%f'
|
||||||
|
zstyle ':vcs_info:*' nvcsformats '%F{2}%~%f'
|
||||||
|
zstyle ':vcs_info:bzr:*' branchformat '%b'
|
||||||
|
|
||||||
|
# Set the prompt.
|
||||||
|
PROMPT='${vcs_info_msg_0_}
|
||||||
|
%B%F{6}%m%b%f %B%(?.%F{2}+.%F{1}-)%b> '
|
||||||
|
|
||||||
|
# Set terminal name to current running application
|
||||||
|
case $TERM in
|
||||||
|
rxvt*)
|
||||||
|
precmd () { print -Pn "\e]0;%~\a" }
|
||||||
|
preexec () { print -Pn "\e]0;$1\a" }
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
add-to-list PATH "$HOME/usr/bin"
|
||||||
|
add-to-list PATH "/usr/local/clark/bin" t
|
||||||
|
|
||||||
|
add-to-list INFOPATH "$HOME/documents/info"
|
||||||
|
add-to-list INFOPATH "$HOME/.emacs.d/vendor-lisp/org/doc"
|
||||||
|
add-to-list INFOPATH "/usr/local/clark/share/info" t
|
||||||
|
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
|
||||||
|
# Set terminal keys
|
||||||
|
bindkey "\e[1~" beginning-of-line
|
||||||
|
bindkey "\e[4~" end-of-line
|
||||||
|
bindkey "\e[5~" beginning-of-history
|
||||||
|
bindkey "\e[6~" end-of-history
|
||||||
|
bindkey "\e[3~" delete-char
|
||||||
|
bindkey "\e[2~" quoted-insert
|
||||||
|
bindkey "\e[5C" forward-word
|
||||||
|
bindkey "\e0c" emacs-forward-word
|
||||||
|
bindkey "\e[5D" backward-word
|
||||||
|
bindkey "\e0d" emacs-backward-word
|
||||||
|
bindkey "\e\e[C" forward-word
|
||||||
|
bindkey "\e\e[D" backward-word
|
||||||
|
## for rxvt
|
||||||
|
bindkey "\e[8~" end-of-line
|
||||||
|
bindkey "\e[7~" beginning-of-line
|
||||||
|
## for non RH/Debian xterm, can't hurt for RH/Debian xterm
|
||||||
|
bindkey "\e0H" beginning-of-line
|
||||||
|
bindkey "\e0F" end-of-line
|
||||||
|
## for freebsd console
|
||||||
|
bindkey "\e[H" beginning-of-line
|
||||||
|
bindkey "\e[F" end-of-line
|
||||||
|
|
||||||
|
bindkey "^W" backward-delete-char
|
||||||
|
|
||||||
|
# Show syntax highlighting when we're not running in emacs
|
||||||
|
if [ -z $EMACS ]; then
|
||||||
|
source $HOME/.zsh/syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
|
||||||
|
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
|
||||||
|
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
|
||||||
|
fi
|
||||||
|
|
||||||
|
compinit
|
||||||
|
colors # Initialize colors.
|
11
Makefile
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
export DESTDIR:=$(HOME)
|
||||||
|
modules=emacs .config .conkerorrc .ssh .w3m .zsh sbcl
|
||||||
|
objects=.bash_profile .beetsconfig .gitconfig .guile .hgrc \
|
||||||
|
.offlineimap.py .offlineimaprc .screenrc .stumpwmrc .urlview \
|
||||||
|
.Xdefaults .xinitrc .Xmodmap .xsession .zprofile .zshrc .zile
|
||||||
|
|
||||||
|
export MAKEROOT=y
|
||||||
|
|
||||||
|
include dotfiles.mk
|
||||||
|
|
||||||
|
install-.xinitrc: MODE=744
|
|
@ -1,89 +0,0 @@
|
||||||
# -----------------$HOME/.abcde.conf----------------- #
|
|
||||||
#
|
|
||||||
# A sample configuration file to convert music cds to
|
|
||||||
# Ogg Vorbis using abcde version 2.7
|
|
||||||
#
|
|
||||||
# http://andrews-corner.org/abcde.html
|
|
||||||
# -------------------------------------------------- #
|
|
||||||
|
|
||||||
# Encode tracks immediately after reading. Saves disk space, gives
|
|
||||||
# better reading of 'scratchy' disks and better troubleshooting of
|
|
||||||
# encoding process but slows the operation of abcde quite a bit:
|
|
||||||
LOWDISK=y
|
|
||||||
|
|
||||||
# Specify the method to use to retrieve the track information,
|
|
||||||
# the alternative is to specify 'cddb':
|
|
||||||
CDDBMETHOD=musicbrainz
|
|
||||||
|
|
||||||
# Make a local cache of cddb entries and then volunteer to use
|
|
||||||
# these entries when and if they match the cd:
|
|
||||||
CDDBCOPYLOCAL="y"
|
|
||||||
CDDBLOCALDIR="$HOME/.cddb"
|
|
||||||
CDDBLOCALRECURSIVE="y"
|
|
||||||
CDDBUSELOCAL="y"
|
|
||||||
|
|
||||||
# Specify the encoder to use for Ogg Vorbis. In this case
|
|
||||||
# vorbize is the other choice.
|
|
||||||
OGGENCODERSYNTAX=oggenc
|
|
||||||
|
|
||||||
# Specify the path to the selected encoder. In most cases the encoder
|
|
||||||
# should be in your $PATH as I illustrate below, otherwise you will
|
|
||||||
# need to specify the full path. For example: /usr/bin/oggenc
|
|
||||||
OGGENC=oggenc
|
|
||||||
|
|
||||||
# Specify your required encoding options here. Multiple options can
|
|
||||||
# be selected as '-q 6 --another-option' etc.
|
|
||||||
# The '-q 6' setting gives VBR encoding between 192-224 kbits/s.
|
|
||||||
OGGENCOPTS='-q 8'
|
|
||||||
|
|
||||||
# Output type for Ogg Vorbis
|
|
||||||
OUTPUTTYPE="ogg"
|
|
||||||
|
|
||||||
# The cd ripping program to use. There are a few choices here: cdda2wav,
|
|
||||||
# dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'.
|
|
||||||
CDROMREADERSYNTAX=cdparanoia
|
|
||||||
|
|
||||||
# Give the location of the ripping program and pass any extra options,
|
|
||||||
# if using libcdio set 'CD_PARANOIA=cd-paranoia'.
|
|
||||||
CDPARANOIA=cdparanoia
|
|
||||||
CDPARANOIAOPTS="--never-skip=40"
|
|
||||||
|
|
||||||
# Give the location of the CD identification program:
|
|
||||||
CDDISCID=cd-discid
|
|
||||||
|
|
||||||
# Give the base location here for the encoded music files.
|
|
||||||
OUTPUTDIR="$HOME/music"
|
|
||||||
|
|
||||||
# The default actions that abcde will take.
|
|
||||||
ACTIONS=cddb,playlist,read,encode,tag,move,clean
|
|
||||||
|
|
||||||
# Decide here how you want the tracks labelled for a standard 'single-artist',
|
|
||||||
# multi-track encode and also for a multi-track, 'various-artist' encode:
|
|
||||||
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
|
|
||||||
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
|
|
||||||
|
|
||||||
# Decide here how you want the tracks labelled for a standard 'single-artist',
|
|
||||||
# single-track encode and also for a single-track 'various-artist' encode.
|
|
||||||
# (Create a single-track encode with 'abcde -1' from the commandline.)
|
|
||||||
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
|
|
||||||
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'
|
|
||||||
|
|
||||||
# Create playlists for single and various-artist encodes. I would suggest
|
|
||||||
# commenting these out for single-track encoding.
|
|
||||||
PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u'
|
|
||||||
VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u'
|
|
||||||
|
|
||||||
# This function takes out dots preceding the album name, and removes a grab
|
|
||||||
# bag of illegal characters. It allows spaces, if you do not wish spaces add
|
|
||||||
# in -e 's/ /_/g' after the first sed command.
|
|
||||||
mungefilename ()
|
|
||||||
{
|
|
||||||
echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
|
|
||||||
}
|
|
||||||
|
|
||||||
# What extra options?
|
|
||||||
MAXPROCS=2 # Run a few encoders simultaneously
|
|
||||||
PADTRACKS=y # Makes tracks 01 02 not 1 2
|
|
||||||
EXTRAVERBOSE=0 # Useful for debugging
|
|
||||||
COMMENT='abcde version 2.7' # Place a comment...
|
|
||||||
EJECTCD=y # Please eject cd when finished :-)
|
|
|
@ -1,22 +0,0 @@
|
||||||
package = "AwesomeRC"
|
|
||||||
version = "1-1"
|
|
||||||
|
|
||||||
description = {
|
|
||||||
license = "GPL-3"
|
|
||||||
}
|
|
||||||
|
|
||||||
source = {
|
|
||||||
url = "file://rc.lua"
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies = {
|
|
||||||
"luafilesystem",
|
|
||||||
"luaposix"
|
|
||||||
}
|
|
||||||
|
|
||||||
build = {
|
|
||||||
type = "builtin",
|
|
||||||
modules = {
|
|
||||||
rc = "rc.lua"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,578 +0,0 @@
|
||||||
-- Standard awesome library
|
|
||||||
local gears = require("gears")
|
|
||||||
local awful = require("awful")
|
|
||||||
awful.rules = require("awful.rules")
|
|
||||||
require("awful.autofocus")
|
|
||||||
-- Widget and layout library
|
|
||||||
local wibox = require("wibox")
|
|
||||||
-- Theme handling library
|
|
||||||
local beautiful = require("beautiful")
|
|
||||||
-- Notification library
|
|
||||||
local naughty = require("naughty")
|
|
||||||
local menubar = require("menubar")
|
|
||||||
local lfs = require("lfs")
|
|
||||||
local posix = require("posix")
|
|
||||||
|
|
||||||
local hostname = posix.uname("%n")
|
|
||||||
|
|
||||||
naughty.config.defaults.bg = "#3d3d3d"
|
|
||||||
naughty.config.defaults.icon_size = 32
|
|
||||||
|
|
||||||
local maildir_base = os.getenv("HOME") .. "/documents/mail/"
|
|
||||||
|
|
||||||
table.insert(menubar.menu_gen.all_menu_dirs,
|
|
||||||
os.getenv("HOME") .. "/.local/share/applications/")
|
|
||||||
|
|
||||||
function new_mail(maildir)
|
|
||||||
local count = 0
|
|
||||||
local newmaildir = maildir_base .. maildir .. "/new"
|
|
||||||
local curmaildir = maildir_base .. maildir .. "/cur"
|
|
||||||
|
|
||||||
if posix.access(newmaildir) then
|
|
||||||
for file in lfs.dir(newmaildir) do
|
|
||||||
if file ~= "." and file ~= ".." then
|
|
||||||
count = count + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if posix.access(curmaildir) then
|
|
||||||
for file in lfs.dir(curmaildir) do
|
|
||||||
if string.sub(file, -1) ~= "S" and file ~= "."
|
|
||||||
and file ~= ".." then
|
|
||||||
count = count + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return count
|
|
||||||
end
|
|
||||||
|
|
||||||
function shrink_to_picturefix_width()
|
|
||||||
local g = client.focus:geometry()
|
|
||||||
|
|
||||||
awful.client.floating.set(client.focus, true)
|
|
||||||
client.focus:geometry({x = g.x, y = g.y, width = 1066, height = 1060})
|
|
||||||
end
|
|
||||||
|
|
||||||
function oni_focus_relative(i)
|
|
||||||
return awful.screen.focus(awful.util.cycle(screen.count(), client.focus.screen + i))
|
|
||||||
end
|
|
||||||
|
|
||||||
-- {{{ Error handling
|
|
||||||
-- Check if awesome encountered an error during startup and fell back to
|
|
||||||
-- another config (This code will only ever execute for the fallback config)
|
|
||||||
if awesome.startup_errors then
|
|
||||||
naughty.notify({ preset = naughty.config.presets.critical,
|
|
||||||
title = "Oops, there were errors during startup!",
|
|
||||||
text = awesome.startup_errors })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Handle runtime errors after startup
|
|
||||||
do
|
|
||||||
local in_error = false
|
|
||||||
awesome.connect_signal("debug::error", function (err)
|
|
||||||
-- Make sure we don't go into an endless error loop
|
|
||||||
if in_error then return end
|
|
||||||
in_error = true
|
|
||||||
|
|
||||||
naughty.notify({ preset = naughty.config.presets.critical,
|
|
||||||
title = "Oops, an error happened!",
|
|
||||||
text = err })
|
|
||||||
in_error = false
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Variable definitions
|
|
||||||
-- Themes define colours, icons, font and wallpapers.
|
|
||||||
beautiful.init(os.getenv("HOME") .. "/.config/awesome/themes/default/theme.lua")
|
|
||||||
|
|
||||||
-- This is used later as the default terminal and editor to run.
|
|
||||||
terminal = "urxvtc"
|
|
||||||
editor = "emacsclient"
|
|
||||||
editor_cmd = editor
|
|
||||||
|
|
||||||
-- Default modkey.
|
|
||||||
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
|
||||||
-- If you do not like this or do not have such a key,
|
|
||||||
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
|
||||||
-- However, you can use another modifier like Mod1, but it may interact with others.
|
|
||||||
modkey = "Mod4"
|
|
||||||
|
|
||||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
|
||||||
local layouts = {}
|
|
||||||
|
|
||||||
if hostname == "phoenix" then layouts = { awful.layout.suit.max }
|
|
||||||
else layouts = { awful.layout.suit.tile, awful.layout.suit.max }
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Wallpaper
|
|
||||||
-- gears.wallpaper.tiled("/home/slash/pictures/wallpaper-962650.jpg")
|
|
||||||
local wallpapers = { "/home/slash/pictures/wallpaper-2311191.jpg",
|
|
||||||
"/home/slash/pictures/wallpaper-1518737-phoenix.png" }
|
|
||||||
|
|
||||||
for idx, wall in ipairs(wallpapers) do
|
|
||||||
if posix.access(wall) then
|
|
||||||
gears.wallpaper.tiled(wall)
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Tags
|
|
||||||
-- Define a tag table which hold all screen tags.
|
|
||||||
tags = {}
|
|
||||||
tags[1] = awful.tag({" Emacs"}, 1, awful.layout.suit.tile)
|
|
||||||
|
|
||||||
if screen.count() > 1 then
|
|
||||||
tags[2] = awful.tag({" Web"}, 2, awful.layout.suit.max)
|
|
||||||
|
|
||||||
if screen.count() > 2 then
|
|
||||||
for s = 3, screen.count() do
|
|
||||||
-- Each screen has its own tag table.
|
|
||||||
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Menu
|
|
||||||
-- Create a laucher widget and a main menu
|
|
||||||
myawesomemenu = {
|
|
||||||
{ "manual", terminal .. " -e man awesome" },
|
|
||||||
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
|
||||||
{ "restart", awesome.restart },
|
|
||||||
{ "quit", awesome.quit }
|
|
||||||
}
|
|
||||||
|
|
||||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
|
||||||
{ "open terminal", terminal }
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
|
||||||
menu = mymainmenu })
|
|
||||||
|
|
||||||
-- Menubar configuration
|
|
||||||
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Wibox
|
|
||||||
-- Create a textclock widget
|
|
||||||
mytextclock = awful.widget.textclock()
|
|
||||||
|
|
||||||
-- Create a wibox for each screen and add it
|
|
||||||
mywibox = {}
|
|
||||||
mypromptbox = {}
|
|
||||||
mylayoutbox = {}
|
|
||||||
mytaglist = {}
|
|
||||||
mytaglist.buttons = awful.util.table.join(
|
|
||||||
awful.button({ }, 1, awful.tag.viewonly),
|
|
||||||
awful.button({ modkey }, 1, awful.client.movetotag),
|
|
||||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
|
||||||
awful.button({ modkey }, 3, awful.client.toggletag),
|
|
||||||
awful.button({ }, 4, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
|
|
||||||
awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
|
|
||||||
)
|
|
||||||
mytasklist = {}
|
|
||||||
mytasklist.buttons = awful.util.table.join(
|
|
||||||
awful.button({ }, 1, function (c)
|
|
||||||
if c ~= client.focus then
|
|
||||||
client.focus = c
|
|
||||||
c:raise()
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 3, function ()
|
|
||||||
if instance then
|
|
||||||
instance:hide()
|
|
||||||
instance = nil
|
|
||||||
else
|
|
||||||
instance = awful.menu.clients({
|
|
||||||
theme = { width = 250 }
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 4, function ()
|
|
||||||
awful.client.focus.byidx(1)
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 5, function ()
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end))
|
|
||||||
|
|
||||||
function mailwidget(name, lighter)
|
|
||||||
widget = wibox.widget.textbox()
|
|
||||||
widget.set_mailcount = function (self)
|
|
||||||
self:set_text(string.format(" %s: %d", lighter,
|
|
||||||
new_mail(name .. '/inbox')))
|
|
||||||
end
|
|
||||||
widget:set_mailcount()
|
|
||||||
|
|
||||||
return widget
|
|
||||||
end
|
|
||||||
|
|
||||||
mailwidgets = {ryuslash = mailwidget('ryuslash.org', 'ryu'),
|
|
||||||
picturefix = mailwidget('picturefix', 'pfx'),
|
|
||||||
gmail = mailwidget('gmail', 'gmail'),
|
|
||||||
ninthfloor = mailwidget('ninthfloor', '9f')}
|
|
||||||
|
|
||||||
myrsslist = wibox.widget.textbox()
|
|
||||||
myrsslist.set_count = function (self, count)
|
|
||||||
if count then
|
|
||||||
self:set_markup(" " .. count
|
|
||||||
.. " <span face=\"FontAwesome\"></span>")
|
|
||||||
else
|
|
||||||
self:set_text("")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function mailcount()
|
|
||||||
mailboxes = { 'ryuslash.org', 'picturefix', 'gmail', 'ninthfloor' }
|
|
||||||
count = 0
|
|
||||||
|
|
||||||
for i, box in ipairs(mailboxes) do
|
|
||||||
count = count + new_mail(box .. '/inbox')
|
|
||||||
end
|
|
||||||
|
|
||||||
return count
|
|
||||||
end
|
|
||||||
|
|
||||||
mymailwidget = wibox.widget.textbox()
|
|
||||||
mymailwidget.set_count = function (self)
|
|
||||||
count = mailcount()
|
|
||||||
|
|
||||||
if count then
|
|
||||||
self:set_markup(" " .. count
|
|
||||||
.. " <span face=\"FontAwesome\"></span> ")
|
|
||||||
else
|
|
||||||
self:set_text("")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
mymailwidget:set_count()
|
|
||||||
|
|
||||||
function unlocked()
|
|
||||||
if awful.util.pread("keycheck login") == "Unlocked" then
|
|
||||||
return " "
|
|
||||||
else
|
|
||||||
return " "
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
mykeyringlist = wibox.widget.textbox()
|
|
||||||
mykeyringlist:set_text(unlocked())
|
|
||||||
mykeyringlist:set_font("FontAwesome")
|
|
||||||
mykeyringlist:buttons(
|
|
||||||
awful.util.table.join(
|
|
||||||
awful.button({ }, 2, function ()
|
|
||||||
mykeyringlist:set_text(unlocked())
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
mykeyringlisttimer = timer({ timeout = 60 })
|
|
||||||
mykeyringlisttimer:connect_signal(
|
|
||||||
"timeout",
|
|
||||||
function ()
|
|
||||||
mykeyringlist:set_text(unlocked())
|
|
||||||
end
|
|
||||||
)
|
|
||||||
mykeyringlisttimer:start()
|
|
||||||
|
|
||||||
for s = 1, screen.count() do
|
|
||||||
-- Create a promptbox for each screen
|
|
||||||
mypromptbox[s] = awful.widget.prompt()
|
|
||||||
|
|
||||||
if #layouts > 1 then
|
|
||||||
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
|
|
||||||
-- We need one layoutbox per screen.
|
|
||||||
mylayoutbox[s] = awful.widget.layoutbox(s)
|
|
||||||
mylayoutbox[s]:buttons(awful.util.table.join(
|
|
||||||
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
|
|
||||||
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
|
|
||||||
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
|
|
||||||
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
|
|
||||||
end
|
|
||||||
-- Create a taglist widget
|
|
||||||
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons)
|
|
||||||
|
|
||||||
-- Create a tasklist widget
|
|
||||||
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
|
|
||||||
|
|
||||||
-- Create the wibox
|
|
||||||
mywibox[s] = awful.wibox({ position = "bottom", screen = s })
|
|
||||||
|
|
||||||
-- Widgets that are aligned to the left
|
|
||||||
local left_layout = wibox.layout.fixed.horizontal()
|
|
||||||
left_layout:add(mylauncher)
|
|
||||||
left_layout:add(mytaglist[s])
|
|
||||||
left_layout:add(mypromptbox[s])
|
|
||||||
|
|
||||||
-- Widgets that are aligned to the right
|
|
||||||
local right_layout = wibox.layout.fixed.horizontal()
|
|
||||||
if s == 1 then
|
|
||||||
right_layout:add(mykeyringlist)
|
|
||||||
if hostname == "drd" then right_layout:add(myrsslist) end
|
|
||||||
right_layout:add(mymailwidget)
|
|
||||||
|
|
||||||
-- for k, w in pairs(mailwidgets) do
|
|
||||||
-- right_layout:add(w)
|
|
||||||
-- end
|
|
||||||
|
|
||||||
right_layout:add(wibox.widget.systray())
|
|
||||||
end
|
|
||||||
right_layout:add(mytextclock)
|
|
||||||
if #layouts > 1 then right_layout:add(mylayoutbox[s]) end
|
|
||||||
|
|
||||||
-- Now bring it all together (with the tasklist in the middle)
|
|
||||||
local layout = wibox.layout.align.horizontal()
|
|
||||||
layout:set_left(left_layout)
|
|
||||||
layout:set_middle(mytasklist[s])
|
|
||||||
layout:set_right(right_layout)
|
|
||||||
|
|
||||||
mywibox[s]:set_widget(layout)
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Mouse bindings
|
|
||||||
root.buttons(awful.util.table.join(
|
|
||||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
|
||||||
awful.button({ }, 4, awful.tag.viewnext),
|
|
||||||
awful.button({ }, 5, awful.tag.viewprev)
|
|
||||||
))
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
function fraise (idx)
|
|
||||||
awful.client.focus.byidx(idx)
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end
|
|
||||||
|
|
||||||
function hpraise ()
|
|
||||||
awful.client.focus.history.previous()
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end
|
|
||||||
|
|
||||||
function ror (prog, class)
|
|
||||||
function inner ()
|
|
||||||
local matcher = function (c)
|
|
||||||
return awful.rules.match(c, { class = class })
|
|
||||||
end
|
|
||||||
awful.client.run_or_raise(prog, matcher)
|
|
||||||
end
|
|
||||||
|
|
||||||
return inner
|
|
||||||
end
|
|
||||||
|
|
||||||
-- {{{ Key bindings
|
|
||||||
globalkeys = awful.util.table.join(
|
|
||||||
awful.key({ modkey, }, "l", awful.tag.viewprev),
|
|
||||||
awful.key({ modkey, }, "y", awful.tag.viewnext),
|
|
||||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
|
|
||||||
awful.key({ modkey, }, "n", function () fraise(1) end),
|
|
||||||
awful.key({ modkey, }, "p", function () fraise(-1) end),
|
|
||||||
-- awful.key({ modkey, }, "w", function () mymainmenu:show() end),
|
|
||||||
awful.key({ }, "Print", function () awful.util.spawn("scrot") end),
|
|
||||||
-- awful.key({ "Control", }, "Print", function () awful.util.spawn("scrot -s") end),
|
|
||||||
|
|
||||||
awful.key({ modkey, }, "c", ror("urxvtc", "URxvt")),
|
|
||||||
awful.key({ modkey, }, "e", ror("emacsclient -c", "Emacs")),
|
|
||||||
awful.key({ modkey, }, "w", ror("conkeror", "Conkeror")),
|
|
||||||
|
|
||||||
-- Layout manipulation
|
|
||||||
awful.key({ modkey, "Shift" }, "n", function () awful.client.swap.byidx( 1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "p", function () awful.client.swap.byidx( -1) end),
|
|
||||||
awful.key({ modkey, }, ".", function () oni_focus_relative( 1) end),
|
|
||||||
awful.key({ modkey, }, ",", function () oni_focus_relative(-1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, ".", function () awful.client.movetoscreen(client.focus) end),
|
|
||||||
awful.key({ modkey, "Shift" }, ",", function () awful.client.movetoscreen(client.focus, -1) end),
|
|
||||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
|
|
||||||
awful.key({ modkey, }, "Tab", hpraise),
|
|
||||||
awful.key({ modkey, }, "g", shrink_to_picturefix_width),
|
|
||||||
|
|
||||||
-- Standard program
|
|
||||||
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
|
|
||||||
awful.key({ modkey, "Control" }, "r", awesome.restart),
|
|
||||||
awful.key({ modkey, "Shift" }, "q", awesome.quit),
|
|
||||||
|
|
||||||
awful.key({ modkey, }, "j", function () awful.tag.incmwfact( 0.05) end),
|
|
||||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "j", function () awful.tag.incnmaster(-1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
|
|
||||||
awful.key({ modkey, "Control" }, "j", function () awful.tag.incncol(-1) end),
|
|
||||||
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
|
|
||||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
|
|
||||||
|
|
||||||
-- Prompt
|
|
||||||
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
|
|
||||||
|
|
||||||
awful.key({ modkey }, "x",
|
|
||||||
function ()
|
|
||||||
awful.prompt.run({ prompt = "Run Lua code: " },
|
|
||||||
mypromptbox[mouse.screen].widget,
|
|
||||||
awful.util.eval, nil,
|
|
||||||
awful.util.getdir("cache") .. "/history_eval")
|
|
||||||
end),
|
|
||||||
-- Menubar
|
|
||||||
awful.key({ modkey }, "k", function() menubar.show() end),
|
|
||||||
|
|
||||||
awful.key({ "Control", "Mod1" }, "l", function () awful.util.spawn('i3lock -c000000') end)
|
|
||||||
)
|
|
||||||
|
|
||||||
clientkeys = awful.util.table.join(
|
|
||||||
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
|
|
||||||
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
|
|
||||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
|
|
||||||
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
|
|
||||||
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
|
|
||||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
|
|
||||||
awful.key({ modkey, }, "m",
|
|
||||||
function (c)
|
|
||||||
c.maximized_horizontal = not c.maximized_horizontal
|
|
||||||
c.maximized_vertical = not c.maximized_vertical
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Bind all key numbers to tags.
|
|
||||||
-- Be careful: we use keycodes to make it works on any keyboard layout.
|
|
||||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
|
||||||
for i = 1, 9 do
|
|
||||||
globalkeys = awful.util.table.join(globalkeys,
|
|
||||||
-- View tag only.
|
|
||||||
awful.key({ modkey }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = mouse.screen
|
|
||||||
local tag = awful.tag.gettags(screen)[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewonly(tag)
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
-- Toggle tag.
|
|
||||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = mouse.screen
|
|
||||||
local tag = awful.tag.gettags(screen)[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewtoggle(tag)
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
-- Move client to tag.
|
|
||||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = awful.tag.gettags(client.focus.screen)[i]
|
|
||||||
if tag then
|
|
||||||
awful.client.movetotag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
-- Toggle tag.
|
|
||||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = awful.tag.gettags(client.focus.screen)[i]
|
|
||||||
if tag then
|
|
||||||
awful.client.toggletag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end))
|
|
||||||
end
|
|
||||||
|
|
||||||
clientbuttons = awful.util.table.join(
|
|
||||||
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
|
|
||||||
awful.button({ modkey }, 1, awful.mouse.client.move),
|
|
||||||
awful.button({ modkey }, 3, awful.mouse.client.resize))
|
|
||||||
|
|
||||||
-- Set keys
|
|
||||||
root.keys(globalkeys)
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Rules
|
|
||||||
-- Rules to apply to new clients (through the "manage" signal).
|
|
||||||
awful.rules.rules = {
|
|
||||||
-- All clients will match this rule.
|
|
||||||
{ rule = { },
|
|
||||||
properties = { border_width = beautiful.border_width,
|
|
||||||
border_color = beautiful.border_normal,
|
|
||||||
focus = awful.client.focus.filter,
|
|
||||||
raise = true,
|
|
||||||
keys = clientkeys,
|
|
||||||
buttons = clientbuttons } },
|
|
||||||
{ rule = { class = "MPlayer" },
|
|
||||||
properties = { floating = true } },
|
|
||||||
{ rule = { class = "pinentry" },
|
|
||||||
properties = { floating = true } },
|
|
||||||
{ rule = { class = "gimp" },
|
|
||||||
properties = { floating = true } },
|
|
||||||
{ rule = { instance = "SteamWorldDig.exe" },
|
|
||||||
properties = { fullscreen = true } },
|
|
||||||
{ rule = { instance = "RogueLegacy.exe" },
|
|
||||||
properties = { fullscreen = true } },
|
|
||||||
{ rule = { class = "Emacs" },
|
|
||||||
properties = { tag = tags[1][1] } },
|
|
||||||
{ rule = { class = "URxvt" },
|
|
||||||
properties = { size_hints_honor = false } },
|
|
||||||
-- Set Firefox to always map on tags number 2 of screen 1.
|
|
||||||
-- { rule = { class = "Firefox" },
|
|
||||||
-- properties = { tag = tags[1][2] } },
|
|
||||||
}
|
|
||||||
|
|
||||||
-- If there is more than one list of tags, add a rule that puts all
|
|
||||||
-- "Conkeror" windows on tag 1 of screen 2 (the second list of tags).
|
|
||||||
if #tags > 1 then
|
|
||||||
awful.rules.rules =
|
|
||||||
awful.util.table.join(awful.rules.rules,
|
|
||||||
{ { rule = { class = "Conkeror" },
|
|
||||||
properties = { tag = tags[2][1] } } })
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Signals
|
|
||||||
imp_classes = { "Dia", "Firefox", "Pencil", "Filezilla", "Gimp" }
|
|
||||||
-- Signal function to execute when a new client appears.
|
|
||||||
client.connect_signal("manage", function (c, startup)
|
|
||||||
if not startup then
|
|
||||||
-- Set the windows at the slave,
|
|
||||||
-- i.e. put it at the end of others instead of setting it master.
|
|
||||||
if not awful.rules.match_any(c, { class = { "Emacs", "Dia" } }) then
|
|
||||||
awful.client.setslave(c)
|
|
||||||
end
|
|
||||||
|
|
||||||
if awful.rules.match_any(c, { class = imp_classes }) then
|
|
||||||
tags[c.class] = tags[c.class] or
|
|
||||||
awful.tag.add(" " .. c.class, {layout = awful.layout.suit.tile})
|
|
||||||
awful.tag.viewonly(tags[c.class])
|
|
||||||
awful.client.movetotag(tags[c.class], c)
|
|
||||||
end
|
|
||||||
|
|
||||||
if awful.rules.match(c, { class = "Dia" }) then
|
|
||||||
awful.tag.setmwfact(0.90, tags["Dia"])
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Put windows in a smart way, only if they does not set an initial position.
|
|
||||||
if not c.size_hints.user_position and not c.size_hints.program_position then
|
|
||||||
awful.placement.no_overlap(c)
|
|
||||||
awful.placement.no_offscreen(c)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
client.connect_signal("unmanage", function(c)
|
|
||||||
if awful.rules.match_any(c, { class = imp_classes }) then
|
|
||||||
if tags[c.class] and #tags[c.class]:clients() == 0 then
|
|
||||||
awful.tag.delete(tags[c.class])
|
|
||||||
tags[c.class] = nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
|
||||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Set the master window factor so that terminal windows show up with
|
|
||||||
-- 80 columns on the main screen. This is meant for a 1920x1080
|
|
||||||
-- resolution.
|
|
||||||
awful.tag.setmwfact(0.623, tags[1][1])
|
|
|
@ -1,3 +0,0 @@
|
||||||
Background images:
|
|
||||||
Mikael Eriksson <mikael_eriksson@miffe.org>
|
|
||||||
Licensed under CC-BY-SA-3.0
|
|
Before Width: | Height: | Size: 220 KiB |
Before Width: | Height: | Size: 265 KiB |
Before Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 997 B |
Before Width: | Height: | Size: 194 B |
Before Width: | Height: | Size: 194 B |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 395 B |
Before Width: | Height: | Size: 388 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 209 B |
Before Width: | Height: | Size: 209 B |
Before Width: | Height: | Size: 321 B |
Before Width: | Height: | Size: 321 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 168 B |
Before Width: | Height: | Size: 440 B |
Before Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 193 B |
|
@ -1,99 +0,0 @@
|
||||||
---------------------------
|
|
||||||
-- Default awesome theme --
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
theme = {}
|
|
||||||
|
|
||||||
theme.font = "ohsnap 8"
|
|
||||||
|
|
||||||
theme.bg_normal = "#111111"
|
|
||||||
theme.bg_focus = "#2a3b54"
|
|
||||||
theme.bg_urgent = "#ff0000"
|
|
||||||
theme.bg_minimize = "#444444"
|
|
||||||
theme.bg_systray = theme.bg_normal
|
|
||||||
|
|
||||||
theme.fg_normal = "#bfbfbf"
|
|
||||||
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_[bg|fg]_[focus|urgent|occupied|empty]
|
|
||||||
-- 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 = "/usr/share/awesome/themes/default/taglist/squarefw.png"
|
|
||||||
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
|
|
||||||
|
|
||||||
-- Variables set for theming the menu:
|
|
||||||
-- menu_[bg|fg]_[normal|focus]
|
|
||||||
-- menu_[border_color|border_width]
|
|
||||||
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/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 = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
|
|
||||||
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
|
|
||||||
|
|
||||||
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
|
|
||||||
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
|
|
||||||
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
|
|
||||||
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
|
|
||||||
|
|
||||||
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
|
|
||||||
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
|
|
||||||
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
|
|
||||||
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
|
|
||||||
|
|
||||||
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
|
|
||||||
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
|
|
||||||
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
|
|
||||||
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
|
|
||||||
|
|
||||||
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
|
|
||||||
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
|
|
||||||
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
|
|
||||||
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
|
|
||||||
|
|
||||||
theme.wallpaper = "/usr/share/awesome/themes/default/background.png"
|
|
||||||
|
|
||||||
-- You can use your own layout icons like this:
|
|
||||||
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
|
|
||||||
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
|
|
||||||
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
|
|
||||||
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
|
|
||||||
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
|
|
||||||
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
|
|
||||||
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
|
|
||||||
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
|
|
||||||
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
|
|
||||||
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
|
|
||||||
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
|
|
||||||
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
|
|
||||||
|
|
||||||
theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
|
||||||
|
|
||||||
-- Define the icon theme for application icons. If not set then the icons
|
|
||||||
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
|
|
||||||
theme.icon_theme = nil
|
|
||||||
|
|
||||||
return theme
|
|
||||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
|
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 801 B |
Before Width: | Height: | Size: 598 B |
Before Width: | Height: | Size: 565 B |
Before Width: | Height: | Size: 814 B |
Before Width: | Height: | Size: 545 B |
Before Width: | Height: | Size: 1,013 B |
Before Width: | Height: | Size: 752 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 725 B |
Before Width: | Height: | Size: 774 B |
Before Width: | Height: | Size: 683 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 671 B |