myconfig

my config files
git clone https://a3nm.net/git/myconfig/
Log | Files | Refs | README

commit 02ca9a060e1b39bc6d362af00d9c368bbe14de4a
Author: Antoine Amarilli <a3nm@a3nm.net>
Date:   Sat,  3 Sep 2011 16:33:22 +0200

initial commit

Diffstat:
Xdefaults | 38++++++++++++++++++++++++++++++++++++++
gitconfig | 20++++++++++++++++++++
inputrc | 27+++++++++++++++++++++++++++
mailcap | 3+++
mairixrc | 4++++
mutt/aliases | 2++
mutt/archive | 11+++++++++++
mutt/local | 7+++++++
mutt/moderation | 2++
mutt/muttrc | 174+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mutt/perso | 2++
nethackrc | 36++++++++++++++++++++++++++++++++++++
screenrc | 37+++++++++++++++++++++++++++++++++++++
uzbl/config | 456+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
uzbl/style.css | 28++++++++++++++++++++++++++++
vim/new_vim | 2++
vim/vimrc | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wmii/wmiirc | 307+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
xmodmaprc | 2146+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
zathurarc | 4++++
zsh/path | 5+++++
zsh/perso | 2++
zsh/zshrc | 250+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23 files changed, 3647 insertions(+), 0 deletions(-)

diff --git a/Xdefaults b/Xdefaults @@ -0,0 +1,38 @@ +#TODO paste result of external command (eg. xclip -o) +URxvt.scrollstyle: plain +URxvt.secondaryScroll: true +URxvt.foreground: #FFFFFF +URxvt.background: #000000 +URxvt.saveLines: 8192 +URxvt.mapAlert: true +URxvt.visualBell: true +URxvt*depth: 32 +URxvt*scrollBar: false +URxvt*borderLess: false +URxvt.cursorColor: #FF0000 +URxvt.cursorColor2: #FFFFFF +URxvt.jumpScroll:: true +urxvt*font: -*-Terminus*-*-*-*-*-*-*-*-*-*-*-* +urxvt*boldFont: -*-Terminus-*-*-*-*-*-*-*-*-*-*-*-* +urxvt*perl-lib: /usr/lib/urxvt/perl/ +URxvt.perl-ext: default,matcher,url-picker,keyboard-select,url-select,urxvt-pipe +#urxvt*urlLauncher: sensible-browser +urxvt*matcher.button: 1 +URxvt.keysym.C-y: perl:url-picker +#URxvt.keysym.C-y: perl:url-select:select_next +#URxvt.underlineURLs:true +#URxvt*keysym*M-Return: \ urxvtc\012 +URxvt*keysym*C-F: perl:urxvt-pipe sa|tee ~/temp/urxvt.dmp +URxvt*keysym*A-F: perl:urxvt-pipe sv|tee ~/temp/urxvt.dmp +#URxvt*keysym*C-f: perl:urxvt-pipe sa|farg 'urxvt -e vim %s' +#URxvt*keysym*A-f: perl:urxvt-pipe sv|farg 'urxvt -e vim %s' +URxvt.keysym.M-y: perl:keyboard-select:activate +# URxvt.keysym:M-s: perl:keyboard-select:search +#clipboard +# buggy:/ URxvt.keysym.M-c: perl:clipboard:copy +#URxvt.keysym.M-v: perl:clipboard:paste +#URxvt.keysym.M-C-v: perl:clipboard:paste_escaped +#URxvt.urlLauncher: w3mn +URxvt.urlLauncher: firefox +URxvt.keysym.M-j: command:\033]720;23\007 +URxvt.keysym.M-k: command:\033]721;23\007 diff --git a/gitconfig b/gitconfig @@ -0,0 +1,20 @@ +[color] + diff = auto + status = auto + branch = auto +[user] + name = Antoine Amarilli + email = a3nm@a3nm.net +[status] + relativePaths = false +[alias] + # from http://nerderati.com/2010/07/making-git-behave/ + d = diff + dc = diff --cached + lc = log ORIG_HEAD.. --stat --no-merges + gl = log --oneline --decorate --stat --graph + st = status -sb + serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git + prune-all = !git remote | xargs -n 1 git remote prune + whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short + whois = "!sh -c 'git log -i -1 --pretty=\"format:%an <%ae>\n\" --author=\"$1\"' -" diff --git a/inputrc b/inputrc @@ -0,0 +1,27 @@ +# set editing-mode vi +# set keymap vi + +# Edit options before rerunning previous command, eg: ls a b c -> ls -al a b c +#"\e-": "\C-p\C-a\M-f " +# Cycle thru completions. +#"\e/": menu-complete + +# glob patterns without executing, eg: 'rm *x' +#"\ee": glob-expand-word + +# Vim style history search +#"\e[A": history-search-backward +#"\e[B": history-search-forward + +#"\e[C": forward-char +#"\e[D": backward-char + +# Two escapes clear command line. +#"\e\e": "\C-a\C-k" + +C-R: reverse-search-history +C-S: forward-search-history +C-N: next-history +C-P: previous-history +C-_: undo + diff --git a/mailcap b/mailcap @@ -0,0 +1,3 @@ +application/pdf; /usr/bin/evince '%s'; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf +application/x-pdf; /usr/bin/evince '%s'; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf +image/gif; /usr/bin/mplayer '%s' diff --git a/mairixrc b/mairixrc @@ -0,0 +1,4 @@ +base=/home/a3_nm/Mail +database=/home/a3_nm/.cache/mairix +mfolder=Search +mbox=... diff --git a/mutt/aliases b/mutt/aliases @@ -0,0 +1 @@ +../private/mutt/aliases+ \ No newline at end of file diff --git a/mutt/archive b/mutt/archive @@ -0,0 +1,11 @@ +macro index z s=archive\n +macro pager z s=archive\n +#macro index Z Ns=archive\n +#macro pager Z Ns=archive\n +macro index \cv s=pending\n +macro pager \cv s=pending\n +macro index \cw s=can_wait\n +macro pager \cw s=can_wait\n +macro index \cl s=useful\n +macro pager \cl s=useful\n +macro index E c!<enter> "inbox" diff --git a/mutt/local b/mutt/local @@ -0,0 +1,7 @@ +set folder=~/Mail +set spoolfile="~/Mail/INBOX" +set record=+sent +set postponed=+drafts +mailboxes "~/Mail/INBOX" +source "~/.mutt/archive" + diff --git a/mutt/moderation b/mutt/moderation @@ -0,0 +1 @@ +../private/mutt/moderation+ \ No newline at end of file diff --git a/mutt/muttrc b/mutt/muttrc @@ -0,0 +1,174 @@ +source "~/.mutt/local" +# private stuff +source "~/.mutt/perso" + +# edition stuff +set edit_headers=yes +set fast_reply +# use M for postponed messages, look at statusbar to count them +set recall="no" +# useful to abort a message quickly if i change my mind +set abort_unmodified=yes +set abort_nosubject=yes + +# save draft mail in a secure location in case of crash +set tmpdir="~/temp/mutt/" + +set move=no +set copy=yes +set noconfirmappend +#set mark_old=no + +set editor="vim +/^$ ++1" + +set imap_keepalive=60 +set imap_idle=yes + +# speeds things up sometimes +set header_cache=~/.cache/mutt_header_cache + +# use the right encoding +set charset=utf-8 +set send_charset=utf-8 + +# forward things with mime, i don't care about crappy clients +set mime_forward=yes +set mime_forward_rest=yes + +# check mail frequently +set timeout=10 +set mail_check=5 + +# i know my bindings now +set help=no + +set pager_index_lines=5 + +set include=yes +#set signature=~/.signature +#set sig_dashes=no + +set smtp_url="smtp://localhost:2525" + +# pgp stuff +set pgp_autosign=yes +set pgp_replyencrypt=yes +set pgp_sign_as=0xFD33167A +message-hook '!(~g|~G) ~b"^-----BEGIN\ PGP\ (SIGNED\ )?MESSAGE"' "exec check-traditional-pgp" + +# aliases +set alias_file=~/config/mutt/aliases +source ~/config/mutt/aliases +set reverse_alias + +# sorting and threading +set sort=threads +set sort_aux="last-date" +set strict_threads + +set tilde + +# color url and email addresses +color body magenta default "(ftp|http)://[-a-z0-9_.+!*',;/?:@&=%~#]+" +color body red default [-a-z0-9_.]+@[-a-z0-9_.]+ +mono body underline "(ftp|http)://[-a-z0-9_.+!*',;/?:@&=%~#]+" +mono body underline [-a-z0-9_.]+@[-a-z0-9_.]+ + +# don't pause to display messages +set sleep_time=0 + +# inbox colors +#color index magenta black ~g +color index red black ~G +color index brightwhite black ~p +color index blue black ~l +color index yellow black ~P +color index black blue ~E +color index black blue ~S +color index green black ~Q +color index brightblack yellow ~F +color index brightwhite cyan ~N +color index default cyan ~O +color index black red ~D +color index white green ~T + +# other colors +color attachment brightmagenta black +color error brightwhite red # errors yell at you in red +color hdrdefault red black # headers +color indicator default magenta # currently selected message +color markers brightcyan black # the + for wrapped pager lines +color message brightcyan black # informational messages, not mail +color quoted green black # quoted text +color search brightgreen black # hilite search patterns in the pager +color signature red black # signature (after "-- ") is red +color status brightyellow blue # status bar is yellow *on blue* +color tilde blue black # ~'s after message body +color tree red default # thread tree in index menu is magenta +color normal brightwhite black # message +color signature green default +color underline yellow black +color tilde green default +mono tilde bold +color header cyan black ^(From|Subject): # Important headers + +# Coloring quoted text - coloring the first 7 levels: +color quoted cyan black +color quoted1 yellow black +color quoted2 red black +color quoted3 green black +color quoted4 cyan black +color quoted5 yellow black +color quoted6 red black +color quoted7 green black + +# Colorize smileys: :-) ;-) :-/ :-( +color body yellow black "[;:]-[)/(|]" +color body yellow black "[;:][)/(|]" +color body green black "[[:alpha:]]\+://[^ ]*" + +set markers=no + +set ssl_starttls=yes + +# set index_format="%4C %Z %{%m-%d %H:%M} %-12.12L %4c %s %?M?<#%03M>&?" +set index_format="%{%d/%m %H:%M}%Z %-15.15L %?M?<#%03M>&?%s" +set pager_format="%4c -%Z- %C/%m: %-20.20n %s" +set status_format="%r%f %?l?%l? %?M?%M/?%m:%?n? N%n?%?o? O%o?%?d? D%d?%?F? !%F?%?t? *%t?%> @%h (%s/%S%?V?-%V?) %?p?*P%p*? (%P)" + +# more vim-like bindings +macro index G <last-entry> +macro index \cf <next-page> +macro index \cb <previous-page> +macro index ? <search-reverse> +macro pager ? <search-reverse> +# we must move help from '?' to somewhere else, and <F1> is already +# taken by the manual +macro index <F2> <help> +macro pager <F2> <help> + +set wait_key=yes + +#set menu_scroll=yes + +# remove useless bindings and dangerous bindings (no, I don't want to +# edit mail) +bind index,pager & noop +bind index,pager . noop +bind index,pager e noop +bind index,pager p noop +bind index,pager <Down> noop +bind index,pager <Up> noop +bind index,pager <Left> noop +bind index,pager <Right> noop +bind index,pager <Esc>s noop +bind index \# noop +bind index <End> noop +bind index <Home> noop +bind index < first-entry +bind index > last-entry +bind index \# noop + +# private stuff +source ~/config/mutt/moderation + diff --git a/mutt/perso b/mutt/perso @@ -0,0 +1 @@ +../private/mutt/perso+ \ No newline at end of file diff --git a/nethackrc b/nethackrc @@ -0,0 +1,36 @@ +OPTIONS=menucolors,showscore,autodig,perm_invent,autopickup,dump:nethack_dump,showscore,boulder:0 + +# +# System-wide NetHack configuration file for console-only NetHack. +# +OPTIONS=windowtype:tty,toptenwin,hilite_pet,lit_corridor +OPTIONS=hpmon,showscore +OPTIONS=paranoid_hit +OPTIONS=fixinv,safe_pet,sortpack,tombstone,color,time,showexp +OPTIONS=verbose,news,fruit:potato +OPTIONS=dogname:Slinky +OPTIONS=catname:RexS +OPTIONS=pickup_types:$ +OPTIONS=nomail +OPTIONS=name:a3_nm +OPTIONS=pickup_burden:b + +# Enable this if you want to see your inventory sorted in alphabetical +# order by item instead of by index letter: +# OPTIONS=sortloot:full +# or if you just want containers sorted: +# OPTIONS=sortloot:loot + +# +# Some sane defaults for menucolor +# + +#OPTIONS=menucolors +#MENUCOLOR=" blessed "=green +#MENUCOLOR=" holy "=green +#MENUCOLOR=" uncursed "=yellow +#MENUCOLOR=" cursed "=red +#MENUCOLOR=" unholy "=red +#MENUCOLOR=" cursed .* (being worn)"=orange&underline +# + diff --git a/screenrc b/screenrc @@ -0,0 +1,37 @@ +defutf8 on + +defscrollback 8000 +hardstatus alwayslastline + +startup_message off + +#dynamic title +shelltitle '$ |bash' + +#TODO be nice +#TODO can we use colors? +#TODO optimize this! +#TODO use some other existing tool which is independent from screen +backtick 1 0 0 /home/a3_nm/scripts/screen/cpu +backtick 2 0 0 /home/a3_nm/scripts/screen/ram +backtick 3 0 0 /home/a3_nm/scripts/screen/swap +backtick 4 0 0 /home/a3_nm/scripts/screen/load +backtick 5 0 0 /home/a3_nm/scripts/screen/df +backtick 6 0 0 /home/a3_nm/scripts/screen/net RX +backtick 7 0 0 /home/a3_nm/scripts/screen/net TX +backtick 8 0 0 /home/a3_nm/scripts/screen/disk 6 #i +backtick 9 0 0 /home/a3_nm/scripts/screen/disk 7 #o +backtick 10 0 0 /home/a3_nm/scripts/screen/temp #o +backtick 11 0 0 /home/a3_nm/scripts/screen/bat #o +backtick 12 0 0 /home/a3_nm/scripts/screen/fan #o + +#hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=CPU %1`--%d/%m %c:%s%{-}' +#hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=C%1` R%2` S%3` L%4` D%5` %c%{-}' +# hardstatus string '%{= kg}%-Lw%{=b kW}%50> %n%f %t%{= kg}%+Lw%< %-=%{=b kW}C%{= kg}%1` %{=b kW}M%{= kg}%2` %{=b kW}S%{= kg}%3` %{=b kW}L%{= kg}%4` %{=b kW}D%{= kg}%5` %{=b kW}i%{= kg}%6` %{=b kW}o%{= kg}%7` %{=b kW}r%{= kg}%8` %{=b kW}w%{= kg}%9` %{=b kW}%c%{-}' +# hardstatus string '%{= kg}%-Lw%{=b kW}%50> %n%f %t%{= kg}%+Lw%< %-=%{= kg}C%{=b kW}%1` %{= kg}M%{=b kW}%2` %{= kg}S%{=b kW}%3` %{= kg}L%{=b kW}%4` %{= kg}D%{=b kW}%5` %{= kg}i%{=b kW}%6` %{= kg}o%{=b kW}%7` %{= kg}r%{=b kW}%8` %{= kg}w%{=b kW}%9` %{=b kW}%c%{-}' +#hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=%c:%s%{-}' +##hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}' +##hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]' +# +# hardstatus string '%99`%{= Wk} %100`%112`%= %102`%101`%114`%115`%108`%113`%119`%117`%118`%116`%106`%104`%103`%105`%107`%Y-%m-%d %0c:%s' +hardstatus string '%{= kg}%-Lw%{=b kW}%50> %n%f %t%{= kg}%+Lw%< %-=%{=b kC}%1` %{=b kM}%2` %{=b kR}%3` %{=b kG}%4` %{=b kY}%5` %{=b kR}%6` %{=b kM}%7` %{=b kB}%8` %{=b kC}%9` %{=b kG}%10` %{=b kR}%12` %{=b kY}%11` %{=b kW}%c:%s%{-}' diff --git a/uzbl/config b/uzbl/config @@ -0,0 +1,456 @@ +# Example uzbl config. All settings are optional. You can use uzbl without +# any config at all (but it won't do much). + +#TODO tree tabs +#yank current selection +#youtubedl interface +#way to select text +#text hints +#peek link +#download and open + +# === Core settings ========================================================== + +# common directory locations +set prefix = @(echo $PREFIX)@ +set data_home = @(echo $XDG_DATA_HOME)@ +set cache_home = @(echo $XDG_CACHE_HOME)@ +set config_home = @(echo $XDG_CONFIG_HOME)@ + +# Interface paths. +set fifo_dir = /tmp +set socket_dir = /tmp + +set shell_cmd = sh -c + +# === General config aliases ================================================= + +# Config related events (use the request function): +# request MODE_CONFIG <mode> <key> = <value> +set mode_config = request MODE_CONFIG +# request ON_EVENT <EVENT_NAME> <command> +set on_event = request ON_EVENT +# request ON_SET <key/glob> <command> +set on_set = request ON_SET +# request MODMAP <From> <To> +set modmap = request MODMAP +# request IGNORE_KEY <glob> +set ignore_key = request IGNORE_KEY +# request MODKEY_ADDITION <key1> <key2> <keyn> <result> +set modkey_addition = request MODKEY_ADDITION +# request TOGGLE_MODES <mode1> <mode2> ... <moden> +set toggle_modes = request TOGGLE_MODES + +set set_mode = set mode = +set set_status = set status_message = + +# Spawn path shortcuts. In spawn the first dir+path match is used in "dir1:dir2:dir3:executable" +set scripts_dir = @data_home/uzbl:@prefix/share/uzbl/examples/data:scripts + +# === Hardcoded handlers ===================================================== + +# These handlers can't be moved to the new event system yet as we don't +# support events that can wait for a response from a script. +set scheme_handler = sync_spawn @scripts_dir/scheme.py +set authentication_handler = sync_spawn @scripts_dir/auth.py +set download_handler = sync_spawn @scripts_dir/download.sh + +# === Dynamic event handlers ================================================= + +# What to do when a website wants to open a new window: +# Open link in new window +@on_event NEW_WINDOW sh 'uzbl-browser ${1:+-u "$1"}' %r +# Open in current window (also see the REQ_NEW_WINDOW event handler below) +#@on_event NEW_WINDOW uri %s +# Open in new tab. Other options are NEW_TAB_NEXT, NEW_BG_TAB and NEW_BG_TAB_NEXT. +#@on_event NEW_WINDOW event NEW_TAB %s + +# What to do when the user requests a new window: +# If your the NEW_WINDOW handler opens the uri in the current window, you'll +# probably want to change this handler to open a new window or tab. +@on_event REQ_NEW_WINDOW event NEW_WINDOW %s + +# Load start handler +@on_event LOAD_START @set_status <span foreground="khaki">wait</span> +# Reset the keycmd on navigation +@on_event LOAD_START @set_mode + +# Load commit handlers +@on_event LOAD_COMMIT @set_status <span foreground="green">recv</span> + + # add some javascript to the page for other 'js' and 'script' commands to access later. +@on_event LOAD_COMMIT js uzbl = {}; +@on_event LOAD_COMMIT script @scripts_dir/formfiller.js +@on_event LOAD_COMMIT script @scripts_dir/follow.js + +# Userscripts/per-site-settings. See the script and the example configuration for details +#@on_event LOAD_COMMIT spawn @scripts_dir/per-site-settings.py @data_home/uzbl/per-site-settings + +# Load finish handlers +@on_event LOAD_FINISH @set_status <span foreground="gold">done</span> +@on_event LOAD_FINISH spawn @scripts_dir/history.sh + +# Switch to insert mode if a (editable) html form is clicked +@on_event FORM_ACTIVE @set_mode insert +# Switch to command mode if anything else is clicked +@on_event ROOT_ACTIVE @set_mode command + +# Example CONFIG_CHANGED event handler +#@on_event CONFIG_CHANGED print Config changed: %1 = %2 + +# Scroll percentage calculation +@on_event SCROLL_VERT set scroll_message = \@<(function(){var p='--';if(%3!=%2){p=(%1/(%3-%4));p=Math.round(10000*p)/100;};return p+'%';})()>\@ + +# === Behaviour and appearance =============================================== + +# Custom CSS can be defined here, including link follower hint styles +set stylesheet_uri = file://@config_home/uzbl/style.css + +set show_status = 1 +set status_top = 0 +set status_background = #303030 + +set modcmd_style = weight="bold" foreground="red" +set keycmd_style = weight="light" foreground="red" +set prompt_style = foreground="grey" +set cursor_style = underline="single" +set completion_style = foreground="green" +set hint_style = weight="bold" + +set mode_section = <span background="khaki" foreground="black">[\@[\@mode_indicator]\@]</span> +set keycmd_section = [<span \@prompt_style>\@[\@keycmd_prompt]\@</span><span \@modcmd_style>\@modcmd</span><span \@keycmd_style>\@keycmd</span><span \@completion_style>\@completion_list</span>] +set progress_section = <span foreground="#606060">\@[\@progress.output]\@</span> +set scroll_section = <span foreground="#606060">\@[\@scroll_message]\@</span> +set uri_section = <span foreground="#99FF66">\@[\@uri]\@</span> +set name_section = <span foreground="khaki">\@[\@NAME]\@</span> +set status_section = <span foreground="orange">\@status_message</span> +set selected_section = <span foreground="#606060">\@[\@SELECTED_URI]\@</span> + +set download_section = <span foreground="white">\@downloads</span> + +set status_format = <span font_family="monospace">@mode_section @keycmd_section @progress_section @name_section @status_section @scroll_section @selected_section @download_section</span> +set status_format_right = <span font_family="monospace"><span foreground="#666">uri:</span> @uri_section</span> + +set title_format_long = \@keycmd_prompt \@raw_modcmd \@raw_keycmd \@TITLE - Uzbl browser <\@NAME> \@SELECTED_URI + +# Progress bar config +# %d = done, %p = pending %c = percent done, %i = int done, %s = spinner, +# %t = percent pending, %o = int pending, %r = sprite scroll +set progress.width = 8 +set progress.format = [%d>%p]%c +set progress.done = = +set progress.pending = + +# === Useragent setup ======================================================== + +set useragent = Uzbl (Webkit @{WEBKIT_MAJOR}.@{WEBKIT_MINOR}) (@(+uname -sm)@ [@ARCH_UZBL]) + +# === Configure cookie blacklist ======================================================== + +# Accept 'session cookies' from uzbl.org (when you have a whitelist all other cookies are dropped) +#request WHITELIST_COOKIE domain 'uzbl.org$' expires '^$' + +# Drop google analytics tracking cookies (applied after whitelists if any) +#request BLACKLIST_COOKIE name '^__utm.$' + +# === Key binding configuration ============================================== +# --- Internal modmapping and ignoring --------------------------------------- + +#modmap <From> <To> +@modmap <Control> <Ctrl> +@modmap <ISO_Left_Tab> <Shift-Tab> +@modmap <space> <Space> +@modmap <KP_Enter> <Enter> + +#modkey_addition <Key1> <Key2> <Result> +@modkey_addition <Shift> <Ctrl> <Meta> +@modkey_addition <Shift> <Tab> <Shift-Tab> +@modkey_addition <Shift> <Insert> <Shift-Insert> + +#ignore_key <glob> +@ignore_key <ISO_*> +@ignore_key <Shift> +@ignore_key <Multi_key> + +# --- Bind aliases ----------------------------------------------------------- + +# request BIND <bind cmd> = <command> +set bind = request MODE_BIND global + +# request MODE_BIND <mode> <bind cmd> = <command> +set mode_bind = request MODE_BIND + +# Insert mode binding alias +set ibind = @mode_bind insert + +# Command mode binding alias +set cbind = @mode_bind command + +# Non-insert mode bindings alias (ebind for edit-bind). +set ebind = @mode_bind global,-insert + +# --- Global & keycmd editing binds ------------------------------------------ + +# Resets keycmd and returns to default mode. +@on_event ESCAPE @set_mode +@on_event ESCAPE event KEYCMD_CLEAR +@on_event ESCAPE js uzbl.follow.clearHints() +@bind <Escape> = event ESCAPE +@bind <Ctrl>[ = event ESCAPE + +# Commands for editing and traversing the keycmd. +@ebind <Return> = event KEYCMD_EXEC_CURRENT +@ebind <Home> = event SET_CURSOR_POS 0 +@ebind <End> = event SET_CURSOR_POS -1 +@ebind <Left> = event SET_CURSOR_POS - +@ebind <Right> = event SET_CURSOR_POS + +@ebind <BackSpace> = event KEYCMD_BACKSPACE +@ebind <Delete> = event KEYCMD_DELETE +@ebind <Tab> = event START_COMPLETION +# Readline-ish bindings. +@ebind <Ctrl>w = event KEYCMD_STRIP_WORD +@ebind <Ctrl>u = event SET_KEYCMD +@ebind <Ctrl>a = event SET_CURSOR_POS 0 +@ebind <Ctrl>e = event SET_CURSOR_POS -1 + +@ebind <Up> = event HISTORY_PREV +@ebind <Down> = event HISTORY_NEXT +@ebind <Ctrl>r<search:>_ = event HISTORY_SEARCH %s +# Keycmd injection/append examples. +#@ebind <Ctrl>su = event INJECT_KEYCMD \@uri +#@ebind <Ctrl>st = event INJECT_KEYCMD \@title +#@ebind <Ctrl>du = event APPEND_KEYCMD \@uri +#@ebind <Ctrl>dt = event APPEND_KEYCMD \@title + +# --- Mouse bindings --------------------------------------------------------- + +# Middle click open in new window +@bind <Button2> = sh 'if [ "$1" ]; then echo "event REQ_NEW_WINDOW $1" > "$UZBL_FIFO"; else echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"; fi' '\@SELECTED_URI' + +# --- Keyboard bindings ------------------------------------------------------ + +# With this command you can enter in any command at runtime when prefixed with +# a colon. +@cbind :_ = %s + +# open a new window or a new tab (see the on_event NEW_WINDOW settings above) +@cbind w = event REQ_NEW_WINDOW + +# Page movement binds +@cbind j = scroll vertical 20 +@cbind k = scroll vertical -20 +@cbind h = scroll horizontal -20 +@cbind l = scroll horizontal 20 +@cbind <Ctrl>f = scroll vertical 100% +@cbind <Ctrl>b = scroll vertical -100% +@cbind << = scroll horizontal begin +@cbind >> = scroll horizontal end +@cbind <Home> = scroll vertical begin +@cbind <End> = scroll vertical end +@cbind ^ = scroll vertical begin +@cbind $ = scroll vertical end +@cbind < = scroll vertical begin +@cbind > = scroll vertical end +@cbind <Space> = scroll vertical 100% + +# Navigation binds +@cbind b = back +@cbind m = forward +@cbind S = stop +@cbind r = reload +@cbind R = reload_ign_cache + +# Zoom binds +@cbind + = zoom_in +@cbind - = zoom_out +@cbind T = toggle_zoom_type +@cbind 1 = set zoom_level = 1.0 +@cbind 2 = set zoom_level = 2.0 + +# Appearance binds +@cbind t = toggle_status + +# Page searching binds +@cbind /* = search %s +@cbind ?* = search_reverse %s +# Jump to next and previous items +@cbind n = search +@cbind N = search_reverse + +# Print pages to a printer +# @cbind  <Ctrl>p = hardcopy + +# Web searching binds +@cbind gg<Google:>_ = uri http://www.google.com/search?q=\@<encodeURIComponent(%r)>\@ +@cbind ddg<DuckDuckGo:>_ = uri http://duckduckgo.com/?q=%s +# @cbind \\awiki<Archwiki:>_ = uri http://wiki.archlinux.org/index.php/Special:Search?search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\we<wikipedia en:>_ = uri http://en.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wfe<wikipedia fr:>_ = uri http://fr.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wde<wikipedia de:>_ = uri http://de.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\woe<wikipedia eo:>_ = uri http://eo.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wte<wiktionary en:>_ = uri http://en.wiktionary.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wtfe<wiktionary fr:>_ = uri http://fr.wiktionary.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wtde<wiktionary de:>_ = uri http://de.wiktionary.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wtoe<wiktionary eo:>_ = uri http://eo.wiktionary.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go +@cbind \\wtse<wiktionary es:>_ = uri http://es.wiktionary.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go + +# Handy binds +# Set function shortcut +@cbind s<var:>_<value:>_ = set %1 = %2 +# Exit binding +@cbind ZZ = exit +# Dump config to stdout +@cbind !dump = sh 'echo dump_config > "$UZBL_FIFO"' +# Reload all variables in the config +@cbind !reload = sh "sed '/^# === Post-load misc commands/,$d' \"$UZBL_CONFIG\" | grep '^set ' > \"$UZBL_FIFO\"" + +# Use socat to directly inject commands into uzbl-core and view events +# raised by uzbl-core: +@cbind <Ctrl><Alt>t = sh 'xterm -e "socat unix-connect:\"$UZBL_SOCKET\" -"' +#@cbind <Ctrl><Alt>t = sh 'urxvt -e socat unix-connect:"$UZBL_SOCKET" -' + +# Uri opening prompts +@cbind o<uri:>_ = uri %s +# Or have it load the current uri into the keycmd for editing +@cbind O<uri:\@uri>_ = uri %s + +# Mode setting binds +@cbind i = @set_mode insert +@bind <Ctrl>i = @set_mode insert +@bind <Ctrl>c = @set_mode command + +# Hard-bound bookmarks +# @cbind gh = uri http://www.uzbl.org + +# New window binds +@cbind gw = event REQ_NEW_WINDOW + +# SSL-ify bindings +@cbind zs = uri \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@ +@cbind zS = event REQ_NEW_WINDOW \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@ + +# Yanking & pasting binds +@cbind yu = sh 'printf "$UZBL_URI" | xclip' +@cbind yU = sh 'printf "$1" | xclip' \@SELECTED_URI +@cbind yy = sh 'printf "$UZBL_TITLE" | xclip' + +# Clone current window +@cbind c = event REQ_NEW_WINDOW \@uri +# Go the page from primary selection +@cbind p = sh 'echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' +# Go to the page in clipboard +@cbind P = sh 'echo "uri $(xclip -selection clipboard -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' +# Start a new uzbl instance from the page in primary selection +@cbind 'p = sh 'echo "event REQ_NEW_WINDOW $(xclip -o)" > "$UZBL_FIFO"' +# paste primary selection into keycmd at the cursor position +@bind <Shift-Insert> = sh 'echo "event INJECT_KEYCMD $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' + +# Bookmark inserting binds +# TODO @cbind <Ctrl>b<tags:>_ = sh 'echo `printf "$UZBL_URI %s"` >> "$XDG_DATA_HOME"/uzbl/bookmarks' +# Or use a script to insert a bookmark. +@cbind B = spawn @scripts_dir/insert_bookmark.sh + +# Bookmark/history loading +@cbind U = spawn @scripts_dir/load_url_from_history.sh +@cbind u = spawn @scripts_dir/load_url_from_bookmarks.sh + +# Link following (similar to vimperator and konqueror) +# Set custom keys you wish to use for navigation. Some common examples: +set follow_hint_keys = 0123456789 +#set follow_hint_keys = qwerty +#set follow_hint_keys = asdfghjkl; +#set follow_hint_keys = thsnd-rcgmvwb/;789aefijkopquxyz234 +@cbind fl* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 0) >\@ +@cbind Fl* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 1) >\@ +@cbind fi = spawn @scripts_dir/go_input.sh + +# Form filler binds +# This script allows you to configure (per domain) values to fill in form +# fields (eg login information) and to fill in these values automatically. +# This implementation allows you to save multiple profiles for each form +# (think about multiple accounts on some website). +set formfiller = spawn @scripts_dir/formfiller.sh +@cbind za = @formfiller add +@cbind ze = @formfiller edit +@cbind zn = @formfiller new +@cbind zl = @formfiller load + +# --- Uzbl tabbed binds ------------------------------------------------------ + +# Tab opening +@cbind gn = event NEW_TAB +@cbind gN = event NEW_TAB_NEXT +@cbind go<uri:>_ = event NEW_TAB %s +@cbind gO<uri:>_ = event NEW_TAB_NEXT %s + +# Closing / resting +@cbind gC = exit +@cbind gQ = event CLEAN_TABS + +# Tab navigating +@cbind g< = event FIRST_TAB +@cbind g> = event LAST_TAB +@cbind gt = event NEXT_TAB +@cbind gT = event PREV_TAB +@cbind gi<index:>_ = event GOTO_TAB %s + +# Preset loading +set preset = event PRESET_TABS +@cbind gs<preset save:>_ = @preset save %s +@cbind glo<preset load:>_ = @preset load %s +@cbind gd<preset del:>_ = @preset del %s +# This doesn't work right now. +#@cbind gli = @preset list + +# === Context menu items ===================================================== + +# Default context menu +menu_add Google = set uri = http://google.com +menu_add Go Home = set uri = http://uzbl.org +menu_separator separator_1 +menu_add Quit uzbl = exit + +# Link context menu +menu_link_add Print Link = print \@SELECTED_URI + +# === Mode configuration ===================================================== + +# Define some mode specific uzbl configurations. +set command = @mode_config command +set insert = @mode_config insert +set stack = @mode_config stack + +# Command mode config. +@command keycmd_style = foreground="red" +@command status_background = #202020 +@command mode_indicator = Cmd +@command keycmd_events = 1 +@command forward_keys = 0 +@command modcmd_updates = 1 + +# Insert mode config. +@insert status_background = #303030 +@insert mode_indicator = Ins +@insert forward_keys = 1 +@insert keycmd_events = 0 +@insert modcmd_updates = 0 + +# Multi-stage-binding mode config. +@stack keycmd_style = foreground="red" +@stack status_background = #202020 +@stack mode_indicator = Bnd +@stack prompt_style = foreground="#888" weight="light" +@stack keycmd_events = 1 +@stack modcmd_updates = 1 +@stack forward_keys = 0 + +set default_mode = command + +# === Post-load misc commands ================================================ +sync_spawn_exec @scripts_dir/load_cookies.sh +sync_spawn_exec @scripts_dir/load_cookies.sh @data_home/uzbl/session-cookies.txt + +# Set the "home" page. +set uri = uzbl.org/doesitwork/@COMMIT + +# vim: set fdm=syntax: diff --git a/uzbl/style.css b/uzbl/style.css @@ -0,0 +1,28 @@ +#uzbl_link_hints > span { + z-index: 1000 !important; + + background-color: #333 !important; + margin: 0 !important; + padding: 3px !important; + + color: #ccc !important; + font-size: 9px !important; + line-height: 9px !important; + font-weight: bold !important; + font-variant: normal !important; + text-decoration: none !important; + + -webkit-transform: translate(-5px,-5px); + opacity: 0.8; + -webkit-border-radius: 6px !important; + /* Play around with this, pretty fun things to do :) */ + /* -webkit-transform: scale(1) rotate(0deg) translate(-6px,-5px) !important; */ +} + +/* we can have different colours for different types of hints! */ +#uzbl_link_hints.new-window > span { + background-color: #ffff00 !important; + color: black !important; +} + +/* vim:set et ts=4: */ diff --git a/vim/new_vim b/vim/new_vim @@ -0,0 +1 @@ +../private/vim/new_vim+ \ No newline at end of file diff --git a/vim/vimrc b/vim/vimrc @@ -0,0 +1,84 @@ +call pathogen#runtime_append_all_bundles() +call pathogen#helptags() + +" personal stuff +source ~/.vim/perso + +set nocompatible + +set autoindent +set expandtab +set softtabstop=2 +set shiftwidth=2 + +set iskeyword+=- + +set incsearch +syntax on +set background=dark + +filetype on +filetype plugin on +filetype indent on + +autocmd FileType html,htmldjango,jinjahtml,eruby,mako let b:closetag_html_style=1 +autocmd FileType html,xhtml,xml,htmldjango,jinjahtml,eruby,mako source ~/.vim/bundle/closetag/plugin/closetag.vim + +set ofu=syntaxcomplete#Complete +let g:SuperTabDefaultCompletionType = "context" + +set ignorecase +set smartcase + +set scrolloff=4 + +set notitle + +set wildmenu +set wildmode=longest,list +set ttyfast +set lbr + +set encoding=utf8 + +set hidden +nnoremap ' ` +nnoremap ` ' +set history=1000 +runtime macros/matchit.vim + +set shortmess=atI + +set viminfo='100,n~/.viminfo + +set tw=72 + +map <C-q> {gq} + +map ZW :w<CR> +map ZM :w<CR>:make<CR> +map ZO :CommandT<CR> +map ZB :CommandTBuffer<CR> + +:nnoremap <F8> :setl noai nocin nosi inde=<CR> + +:cnoreabbrev W w + +set nojoinspaces +set showcmd +set matchpairs+=<:> + +set nomodeline + +set backup +set backupdir=~/temp/vim/temp +set directory=~/temp/vim/backup + +set background=dark + +"let g:solarized_termtrans=1 +"let g:solarized_termcolors=256 +"let g:solarized_contrast="high" +"let g:solarized_visibility="high" +"colorscheme solarized + diff --git a/wmii/wmiirc b/wmii/wmiirc @@ -0,0 +1,307 @@ +#!/bin/dash -f +# Configure wmii +wmiiscript=wmiirc # For wmii.sh +. wmii.sh + + +# Configuration Variables +MODKEY=Mod4 +UP=k +DOWN=j +LEFT=h +RIGHT=l + +# Bars +noticetimeout=5 +noticebar=/rbar/!notice + +# . ~/.zshrc.path + +# Colors tuples: "<text> <background> <border>" +export WMII_NORMCOLORS='#000000 #c1c48b #81654f' +export WMII_FOCUSCOLORS='#000000 #81654f #000000' + +export WMII_BACKGROUND='#333333' +export WMII_FONT='fixed' + +set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS) +export WMII_TERM="urxvtc" + +if ! test -d "${WMII_CONFPATH%%:*}"; then + mkdir "${WMII_CONFPATH%%:*}" + res=$(wihack -type DIALOG xmessage -nearmouse -buttons Windows,Alt -print -fn $WMII_FONT \ + "Welcome to wmii,$wi_newline$wi_newline" \ + "Most of wmii's default key bindings make use of the$wi_newline" \ + "Windows key, or equivalent. For keyboards lacking such$wi_newline" \ + "a key, many users change this to the Alt key.$wi_newline$wi_newline" \ + "Which would you prefer?") + [ "$res" = "Alt" ] && MODKEY=Mod1 + echo "MODKEY=$MODKEY" >"${WMII_CONFPATH%%:*}/wmiirc_local" + chmod +x "${WMII_CONFPATH%%:*}/wmiirc_local" +fi + +# Menu history +hist="${WMII_CONFPATH%%:*}/history" +histnum=5000 + +# Column Rules +wmiir write /colrules <<! +/gimp/ -> 17+83+41 +/.*/ -> 62+38 # Golden Ratio +! + +# Tagging Rules +wmiir write /tagrules <<! +/MPlayer|VLC/ -> ~ +! + +# Status Bar Info +status() { + echo -n $(uptime | sed 's/.*://; s/,//g') '|' $(date) +} + +status2() { + echo -n $( acpi -tb | cut -d ',' -f 2 | cut -d ' ' -f 2 | tr '\n' '-') +} + +local_events() { true;} +wi_runconf -s wmiirc_local + +echo $WMII_NORMCOLORS | wmiir create $noticebar + +# Event processing +events() { + cat <<'!' +# Events +Event CreateTag + echo "$WMII_NORMCOLORS" "$@" | wmiir create "/lbar/$@" +Event DestroyTag + wmiir remove "/lbar/$@" +Event FocusTag + wmiir xwrite "/lbar/$@" "$WMII_FOCUSCOLORS" "$@" +Event UnfocusTag + wmiir xwrite "/lbar/$@" "$WMII_NORMCOLORS" "$@" +Event UrgentTag + shift + wmiir xwrite "/lbar/$@" "*$@" +Event NotUrgentTag + shift + wmiir xwrite "/lbar/$@" "$@" +Event LeftBarClick LeftBarDND + shift + wmiir xwrite /ctl view "$@" +Event Unresponsive + { + client=$1; shift + msg="The following client is not responding. What would you like to do?$wi_newline" + resp=$(wihack -transient $client \ + xmessage -nearmouse -buttons Kill,Wait -print + -fn "${WMII_FONT%%,*}" "$msg $(wmiir read /client/sel/label)") + if [ "$resp" = Kill ]; then + wmiir xwrite /client/$client/ctl slay & + fi + }& +Event Notice + wmiir xwrite $noticebar $wi_arg + + kill $xpid 2>/dev/null # Let's hope this isn't reused... + { sleep $noticetimeout; wmiir xwrite $noticebar ' '; }& + xpid = $! + +# Menus +Menu Client-3-Delete + wmiir xwrite /client/$1/ctl kill +Menu Client-3-Kill + wmiir xwrite /client/$1/ctl slay +Menu Client-3-Fullscreen + wmiir xwrite /client/$1/ctl Fullscreen on +Event ClientMouseDown + wi_fnmenu Client $2 $1 & + +Menu LBar-3-Delete + tag=$1; clients=$(wmiir read "/tag/$tag/index" | awk '/[^#]/{print $2}') + for c in $clients; do + if [ "$tag" = "$(wmiir read /client/$c/tags)" ]; then + wmiir xwrite /client/$c/ctl kill + else + wmiir xwrite /client/$c/tags -$tag + fi + if [ "$tag" = "$(wi_seltag)" ]; then + newtag=$(wi_tags | awk -v't='$tag ' + $1 == t { if(!l) getline l + print l + exit } + { l = $0 }') + wmiir xwrite /ctl view $newtag + fi + done +Event LeftBarMouseDown + wi_fnmenu LBar "$@" & + +# Actions +Action showkeys + echo "$KeysHelp" | xmessage -file - -fn ${WMII_FONT%%,*} +Action quit + wmiir xwrite /ctl quit +Action exec + wmiir xwrite /ctl exec "$@" +Action rehash + wi_proglist $PATH >$progsfile +Action status + set +xv + if wmiir remove /rbar/status 2>/dev/null; then + sleep 2 + fi + echo "$WMII_NORMCOLORS" | wmiir create /rbar/status + while status | wmiir write /rbar/status; do + sleep 1 + done +Action a_none + echo 'nil' +Action status2 + set +xv + if wmiir remove /rbar/statusd 2>/dev/null; then + sleep 2 + fi + echo "$WMII_NORMCOLORS" | wmiir create /rbar/statusd + while status2 | wmiir write /rbar/statusd; do + sleep 1 + done + + +Key $MODKEY-e + eval $WMII_TERM -e "zsh -c \"$(wimenu -h "${hist}.progs" -n $histnum <$progsfile)\"" & +Key $MODKEY-u + eval $WMII_TERM -e "zsh -c \"$(wimenu -h "${hist}.progs" -n $histnum <$progsfile); zsh -i\"" & +Key $MODKEY-o + eval $WMII_TERM -e "zsh -c mutt" & + +Key $MODKEY-w + eval "sensible-browser" & +Key $MODKEY-x + sh -c "xtrlock" & + +Key $MODKEY-c + amixer -c 0 set Master 2dB- +Key $MODKEY-r + amixer -c 0 set Master 2dB+ + +# Key Bindings +KeyGroup Moving around +Key $MODKEY-$LEFT # Select the client to the left + wmiir xwrite /tag/sel/ctl select left +Key $MODKEY-$RIGHT # Select the client to the right + wmiir xwrite /tag/sel/ctl select right +Key $MODKEY-$UP # Select the client above + wmiir xwrite /tag/sel/ctl select up +Key $MODKEY-$DOWN # Select the client below + wmiir xwrite /tag/sel/ctl select down + +Key $MODKEY-space # Toggle between floating and managed layers + wmiir xwrite /tag/sel/ctl select toggle + +KeyGroup Moving through stacks +Key $MODKEY-Control-$UP # Select the stack above + wmiir xwrite /tag/sel/ctl select up stack +Key $MODKEY-Control-$DOWN # Select the stack below + wmiir xwrite /tag/sel/ctl select down stack + +KeyGroup Moving clients around +Key $MODKEY-Shift-$LEFT # Move selected client to the left + wmiir xwrite /tag/sel/ctl send sel left +Key $MODKEY-Shift-$RIGHT # Move selected client to the right + wmiir xwrite /tag/sel/ctl send sel right +Key $MODKEY-Shift-$UP # Move selected client up + wmiir xwrite /tag/sel/ctl send sel up +Key $MODKEY-Shift-$DOWN # Move selected client down + wmiir xwrite /tag/sel/ctl send sel down + +Key $MODKEY-Shift-space # Toggle selected client between floating and managed layers + wmiir xwrite /tag/sel/ctl send sel toggle + +KeyGroup Client actions +Key $MODKEY-f # Toggle selected client's fullsceen state + wmiir xwrite /client/sel/ctl Fullscreen toggle +Key $MODKEY-Shift-c # Close client + wmiir xwrite /client/sel/ctl kill +Key $MODKEY-Shift-x # Slay client + wmiir xwrite /client/sel/ctl slay + +KeyGroup Changing column modes +Key $MODKEY-d # Set column to default mode + wmiir xwrite /tag/sel/ctl colmode sel default-max +Key $MODKEY-s # Set column to stack mode + wmiir xwrite /tag/sel/ctl colmode sel stack-max +Key $MODKEY-m # Set column to max mode + wmiir xwrite /tag/sel/ctl colmode sel stack+max + +KeyGroup Running programs +Key $MODKEY-a # Open wmii actions menu + action $(wi_actions | wimenu -h "${hist}.actions" -n $histnum) & +Key $MODKEY-p # Open program menu + eval wmiir setsid "$(wimenu -h "${hist}.progs" -n $histnum <$progsfile)" & + +Key $MODKEY-Return # Launch a terminal + eval wmiir setsid $WMII_TERM & + +KeyGroup Other +Key $MODKEY-Control-t # Toggle all other key bindings + case $(wmiir read /keys | wc -l | tr -d ' \t\n') in + 0|1) + echo -n "$Keys" | wmiir write /keys + wmiir xwrite /ctl grabmod $MODKEY;; + *) + wmiir xwrite /keys $MODKEY-Control-t + wmiir xwrite /ctl grabmod Mod3;; + esac + +KeyGroup Tag actions +Key $MODKEY-t # Change to another tag + (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /ctl view $tag) & +Key $MODKEY-Shift-t # Retag the selected client + c=$(wi_selclient) + (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /client/$c/tags $tag) & +! + for i in 0 1 2 3 4 5 6 7 8 9; do + cat <<! +Key $MODKEY-$i # Move to the numbered view + wmiir xwrite /ctl view "$i" +Key $MODKEY-Shift-$i # Retag selected client with the numbered tag + wmiir xwrite /client/sel/tags "$i" +! + done +} +wi_events events local_events + +# WM Configuration +wmiir write /ctl <<! + font $WMII_FONT + focuscolors $WMII_FOCUSCOLORS + normcolors $WMII_NORMCOLORS + grabmod $MODKEY + border 1 +! +xsetroot -solid "$WMII_BACKGROUND" & + +# Misc +progsfile="$(wmiir namespace)/.proglist" +action status & +#action status2 & +wi_proglist $PATH >$progsfile & + +# Setup Tag Bar +IFS="$wi_newline" +wmiir rm $(wmiir ls /lbar | sed 's,^,/lbar/,') >/dev/null +seltag=$(wmiir read /tag/sel/ctl | sed 1q) +unset IFS +wi_tags | while read tag +do + if [ "$tag" = "$seltag" ]; then + echo "$WMII_FOCUSCOLORS" "$tag" + else + echo "$WMII_NORMCOLORS" "$tag" + fi | wmiir create "/lbar/$tag" +done + +wi_eventloop + diff --git a/xmodmaprc b/xmodmaprc @@ -0,0 +1,2146 @@ +xkb_keymap { +xkb_keycodes "evdev+aliases(qwerty)" { + minimum = 8; + maximum = 255; + <ESC> = 9; + <AE01> = 10; + <AE02> = 11; + <AE03> = 12; + <AE04> = 13; + <AE05> = 14; + <AE06> = 15; + <AE07> = 16; + <AE08> = 17; + <AE09> = 18; + <AE10> = 19; + <AE11> = 20; + <AE12> = 21; + <BKSP> = 22; + <TAB> = 23; + <AD01> = 24; + <AD02> = 25; + <AD03> = 26; + <AD04> = 27; + <AD05> = 28; + <AD06> = 29; + <AD07> = 30; + <AD08> = 31; + <AD09> = 32; + <AD10> = 33; + <AD11> = 34; + <AD12> = 35; + <RTRN> = 36; + <LCTL> = 37; + <AC01> = 38; + <AC02> = 39; + <AC03> = 40; + <AC04> = 41; + <AC05> = 42; + <AC06> = 43; + <AC07> = 44; + <AC08> = 45; + <AC09> = 46; + <AC10> = 47; + <AC11> = 48; + <TLDE> = 49; + <LFSH> = 50; + <BKSL> = 51; + <AB01> = 52; + <AB02> = 53; + <AB03> = 54; + <AB04> = 55; + <AB05> = 56; + <AB06> = 57; + <AB07> = 58; + <AB08> = 59; + <AB09> = 60; + <AB10> = 61; + <RTSH> = 62; + <KPMU> = 63; + <LALT> = 64; + <SPCE> = 65; + <CAPS> = 66; + <FK01> = 67; + <FK02> = 68; + <FK03> = 69; + <FK04> = 70; + <FK05> = 71; + <FK06> = 72; + <FK07> = 73; + <FK08> = 74; + <FK09> = 75; + <FK10> = 76; + <NMLK> = 77; + <SCLK> = 78; + <KP7> = 79; + <KP8> = 80; + <KP9> = 81; + <KPSU> = 82; + <KP4> = 83; + <KP5> = 84; + <KP6> = 85; + <KPAD> = 86; + <KP1> = 87; + <KP2> = 88; + <KP3> = 89; + <KP0> = 90; + <KPDL> = 91; + <LVL3> = 92; + <LSGT> = 94; + <FK11> = 95; + <FK12> = 96; + <AB11> = 97; + <KATA> = 98; + <HIRA> = 99; + <HENK> = 100; + <HKTG> = 101; + <MUHE> = 102; + <JPCM> = 103; + <KPEN> = 104; + <RCTL> = 105; + <KPDV> = 106; + <PRSC> = 107; + <RALT> = 108; + <LNFD> = 109; + <HOME> = 110; + <UP> = 111; + <PGUP> = 112; + <LEFT> = 113; + <RGHT> = 114; + <END> = 115; + <DOWN> = 116; + <PGDN> = 117; + <INS> = 118; + <DELE> = 119; + <I120> = 120; + <MUTE> = 121; + <VOL-> = 122; + <VOL+> = 123; + <POWR> = 124; + <KPEQ> = 125; + <I126> = 126; + <PAUS> = 127; + <I128> = 128; + <I129> = 129; + <HNGL> = 130; + <HJCV> = 131; + <AE13> = 132; + <LWIN> = 133; + <RWIN> = 134; + <COMP> = 135; + <STOP> = 136; + <AGAI> = 137; + <PROP> = 138; + <UNDO> = 139; + <FRNT> = 140; + <COPY> = 141; + <OPEN> = 142; + <PAST> = 143; + <FIND> = 144; + <CUT> = 145; + <HELP> = 146; + <I147> = 147; + <I148> = 148; + <I149> = 149; + <I150> = 150; + <I151> = 151; + <I152> = 152; + <I153> = 153; + <I154> = 154; + <I155> = 155; + <I156> = 156; + <I157> = 157; + <I158> = 158; + <I159> = 159; + <I160> = 160; + <I161> = 161; + <I162> = 162; + <I163> = 163; + <I164> = 164; + <I165> = 165; + <I166> = 166; + <I167> = 167; + <I168> = 168; + <I169> = 169; + <I170> = 170; + <I171> = 171; + <I172> = 172; + <I173> = 173; + <I174> = 174; + <I175> = 175; + <I176> = 176; + <I177> = 177; + <I178> = 178; + <I179> = 179; + <I180> = 180; + <I181> = 181; + <I182> = 182; + <I183> = 183; + <I184> = 184; + <I185> = 185; + <I186> = 186; + <I187> = 187; + <I188> = 188; + <I189> = 189; + <I190> = 190; + <FK13> = 191; + <FK14> = 192; + <FK15> = 193; + <FK16> = 194; + <FK17> = 195; + <FK18> = 196; + <FK19> = 197; + <FK20> = 198; + <FK21> = 199; + <FK22> = 200; + <FK23> = 201; + <FK24> = 202; + <MDSW> = 203; + <ALT> = 204; + <META> = 205; + <SUPR> = 206; + <HYPR> = 207; + <I208> = 208; + <I209> = 209; + <I210> = 210; + <I211> = 211; + <I212> = 212; + <I213> = 213; + <I214> = 214; + <I215> = 215; + <I216> = 216; + <I217> = 217; + <I218> = 218; + <I219> = 219; + <I220> = 220; + <I221> = 221; + <I222> = 222; + <I223> = 223; + <I224> = 224; + <I225> = 225; + <I226> = 226; + <I227> = 227; + <I228> = 228; + <I229> = 229; + <I230> = 230; + <I231> = 231; + <I232> = 232; + <I233> = 233; + <I234> = 234; + <I235> = 235; + <I236> = 236; + <I237> = 237; + <I238> = 238; + <I239> = 239; + <I240> = 240; + <I241> = 241; + <I242> = 242; + <I243> = 243; + <I244> = 244; + <I245> = 245; + <I246> = 246; + <I247> = 247; + <I248> = 248; + <I249> = 249; + <I250> = 250; + <I251> = 251; + <I252> = 252; + <I253> = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + virtual indicator 12 = "Shift Lock"; + virtual indicator 13 = "Group 2"; + virtual indicator 14 = "Mouse Keys"; + alias <AC12> = <BKSL>; + alias <MENU> = <COMP>; + alias <HZTG> = <TLDE>; + alias <LMTA> = <LWIN>; + alias <RMTA> = <RWIN>; + alias <ALGR> = <RALT>; + alias <KPPT> = <I129>; + alias <LatQ> = <AD01>; + alias <LatW> = <AD02>; + alias <LatE> = <AD03>; + alias <LatR> = <AD04>; + alias <LatT> = <AD05>; + alias <LatY> = <AD06>; + alias <LatU> = <AD07>; + alias <LatI> = <AD08>; + alias <LatO> = <AD09>; + alias <LatP> = <AD10>; + alias <LatA> = <AC01>; + alias <LatS> = <AC02>; + alias <LatD> = <AC03>; + alias <LatF> = <AC04>; + alias <LatG> = <AC05>; + alias <LatH> = <AC06>; + alias <LatJ> = <AC07>; + alias <LatK> = <AC08>; + alias <LatL> = <AC09>; + alias <LatZ> = <AB01>; + alias <LatX> = <AB02>; + alias <LatC> = <AB03>; + alias <LatV> = <AB04>; + alias <LatB> = <AB05>; + alias <LatN> = <AB06>; + alias <LatM> = <AB07>; +}; + +xkb_types "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper,AlGr; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Control+Alt; + map[Control+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift+Lock]= Level1; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level1; + preserve[Shift+Lock+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift+NumLock]= Level1; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper,AlGr; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret.locking= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= ISOLock(modifiers=modMapMods,affect=all); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay1); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay2); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret XF86_Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86_Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86_Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86_Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86_Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86_Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86_Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86_Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86_Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86_Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86_Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86_Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86_Ungrab+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x55,data[1]=0x6e,data[2]=0x67,data[3]=0x72,data[4]=0x61,data[5]=0x62,data[6]=0x00); + }; + interpret XF86_ClearGrab+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x43,data[1]=0x6c,data[2]=0x73,data[3]=0x47,data[4]=0x72,data[5]=0x62,data[6]=0x00); + }; + interpret XF86_Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86_Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + !allowExplicit; + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + !allowExplicit; + groups= 0xfe; + }; + indicator "Mouse Keys" { + indicatorDrivesKeyboard; + controls= mouseKeys; + }; +}; + +xkb_symbols "pc+us(dvorak)+fr:2+fr(dvorak):3+us:4+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_" { + + name[group1]="USA - Dvorak"; + name[group2]="France"; + name[group3]="France - Dvorak"; + name[group4]="USA"; + + key <ESC> { [ Escape ] }; + key <AE01> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 1, exclam ], + symbols[Group2]= [ ampersand, 1, onesuperior, exclamdown ], + symbols[Group3]= [ equal, 1, NoSymbol, NoSymbol ], + symbols[Group4]= [ 1, exclam ] + }; + key <AE02> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 2, at ], + symbols[Group2]= [ eacute, 2, asciitilde, oneeighth ], + symbols[Group3]= [ slash, 2, plusminus, NoSymbol ], + symbols[Group4]= [ 2, at ] + }; + key <AE03> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 3, numbersign ], + symbols[Group2]= [ quotedbl, 3, numbersign, sterling ], + symbols[Group3]= [ minus, 3, onequarter, NoSymbol ], + symbols[Group4]= [ 3, numbersign ] + }; + key <AE04> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 4, dollar ], + symbols[Group2]= [ apostrophe, 4, braceleft, dollar ], + symbols[Group3]= [ egrave, 4, onehalf, NoSymbol ], + symbols[Group4]= [ 4, dollar ] + }; + key <AE05> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 5, percent ], + symbols[Group2]= [ parenleft, 5, bracketleft, threeeighths ], + symbols[Group3]= [ backslash, 5, threequarters, NoSymbol ], + symbols[Group4]= [ 5, percent ] + }; + key <AE06> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 6, asciicircum, dead_circumflex, dead_circumflex ], + symbols[Group2]= [ minus, 6, bar, fiveeighths ], + symbols[Group3]= [ dead_circumflex, 6, NoSymbol, NoSymbol ], + symbols[Group4]= [ 6, asciicircum ] + }; + key <AE07> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 7, ampersand ], + symbols[Group2]= [ egrave, 7, grave, seveneighths ], + symbols[Group3]= [ parenleft, 7, NoSymbol, NoSymbol ], + symbols[Group4]= [ 7, ampersand ] + }; + key <AE08> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 8, asterisk ], + symbols[Group2]= [ underscore, 8, backslash, trademark ], + symbols[Group3]= [ ISO_Level3_Latch, 8, grave, NoSymbol ], + symbols[Group4]= [ 8, asterisk ] + }; + key <AE09> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 9, parenleft, dead_grave, NoSymbol ], + symbols[Group2]= [ ccedilla, 9, asciicircum, plusminus ], + symbols[Group3]= [ parenright, 9, NoSymbol, NoSymbol ], + symbols[Group4]= [ 9, parenleft ] + }; + key <AE10> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 0, parenright ], + symbols[Group2]= [ agrave, 0, at, degree ], + symbols[Group3]= [ quotedbl, 0, NoSymbol, NoSymbol ], + symbols[Group4]= [ 0, parenright ] + }; + key <AE11> { + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ bracketleft, braceleft ], + symbols[Group2]= [ parenright, degree, bracketright, questiondown ], + symbols[Group3]= [ bracketleft, plus, NoSymbol, NoSymbol ], + symbols[Group4]= [ minus, underscore ] + }; + key <AE12> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ bracketright, braceright, dead_tilde, NoSymbol ], + symbols[Group2]= [ equal, plus, braceright, dead_ogonek ], + symbols[Group3]= [ bracketright, percent, NoSymbol, NoSymbol ], + symbols[Group4]= [ equal, plus ] + }; + key <BKSP> { [ BackSpace ] }; + key <TAB> { [ Tab, ISO_Left_Tab ] }; + key <AD01> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ apostrophe, quotedbl, dead_acute, dead_diaeresis ], + symbols[Group2]= [ a, A, ae, AE ], + symbols[Group3]= [ colon, question, ae, AE ], + symbols[Group4]= [ q, Q ] + }; + key <AD02> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ comma, less, dead_cedilla, dead_caron ], + symbols[Group2]= [ z, Z, guillemotleft, less ], + symbols[Group3]= [ apostrophe, less, dollar, NoSymbol ], + symbols[Group4]= [ w, W ] + }; + key <AD03> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ period, greater, EuroSign, periodcentered ], + symbols[Group2]= [ e, E, EuroSign, cent ], + symbols[Group3]= [ eacute, greater, Eacute, NoSymbol ], + symbols[Group4]= [ e, E ] + }; + key <AD04> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ p, P ], + symbols[Group2]= [ r, R, paragraph, registered ], + symbols[Group3]= [ g, G, EuroSign, NoSymbol ], + symbols[Group4]= [ r, R ] + }; + key <AD05> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ y, Y ], + symbols[Group2]= [ t, T, tslash, Tslash ], + symbols[Group3]= [ period, exclam, degree, NoSymbol ], + symbols[Group4]= [ t, T ] + }; + key <AD06> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ f, F ], + symbols[Group2]= [ y, Y, leftarrow, yen ], + symbols[Group3]= [ h, H ], + symbols[Group4]= [ y, Y ] + }; + key <AD07> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ g, G, gcircumflex, Gcircumflex ], + symbols[Group2]= [ u, U, downarrow, uparrow ], + symbols[Group3]= [ v, V ], + symbols[Group4]= [ u, U ] + }; + key <AD08> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ c, C, ccircumflex, Ccircumflex ], + symbols[Group2]= [ i, I, rightarrow, idotless ], + symbols[Group3]= [ c, C, ccedilla, Ccedilla ], + symbols[Group4]= [ i, I ] + }; + key <AD09> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ r, R ], + symbols[Group2]= [ o, O, oslash, Oslash ], + symbols[Group3]= [ m, M, mu, NoSymbol ], + symbols[Group4]= [ o, O ] + }; + key <AD10> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ l, L ], + symbols[Group2]= [ p, P, thorn, THORN ], + symbols[Group3]= [ k, K ], + symbols[Group4]= [ p, P ] + }; + key <AD11> { + type[group2]= "FOUR_LEVEL", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ slash, question ], + symbols[Group2]= [ dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ], + symbols[Group3]= [ z, Z ], + symbols[Group4]= [ bracketleft, braceleft ] + }; + key <AD12> { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ equal, plus ], + symbols[Group2]= [ dollar, sterling, currency, dead_macron ], + symbols[Group3]= [ dead_diaeresis, ampersand ], + symbols[Group4]= [ bracketright, braceright ] + }; + key <RTRN> { [ Return ] }; + key <LCTL> { [ Control_L ] }; + key <AC01> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ a, A ], + symbols[Group2]= [ q, Q, at, Greek_OMEGA ], + symbols[Group3]= [ o, O, ograve, Ograve ], + symbols[Group4]= [ a, A ] + }; + key <AC02> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ o, O ], + symbols[Group2]= [ s, S, ssharp, section ], + symbols[Group3]= [ a, A, agrave, Agrave ], + symbols[Group4]= [ s, S ] + }; + key <AC03> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ e, E ], + symbols[Group2]= [ d, D, eth, ETH ], + symbols[Group3]= [ u, U, ugrave, Ugrave ], + symbols[Group4]= [ d, D ] + }; + key <AC04> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ u, U, ubreve, Ubreve ], + symbols[Group2]= [ f, F, dstroke, ordfeminine ], + symbols[Group3]= [ e, E, egrave, Egrave ], + symbols[Group4]= [ f, F ] + }; + key <AC05> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ i, I ], + symbols[Group2]= [ g, G, eng, ENG ], + symbols[Group3]= [ b, B ], + symbols[Group4]= [ g, G ] + }; + key <AC06> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ apostrophe, quotedbl, dead_acute, dead_diaeresis ], + symbols[Group2]= [ a, A, ae, AE ], + symbols[Group3]= [ colon, question, ae, AE ], + symbols[Group4]= [ q, Q ] + }; + key <AC07> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 6, asciicircum, dead_circumflex, dead_circumflex ], + symbols[Group2]= [ minus, 6, bar, fiveeighths ], + symbols[Group3]= [ dead_circumflex, 6, NoSymbol, NoSymbol ], + symbols[Group4]= [ 6, asciicircum ] + }; + key <AC08> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ 9, parenleft, dead_grave, NoSymbol ], + symbols[Group2]= [ ccedilla, 9, asciicircum, plusminus ], + symbols[Group3]= [ parenright, 9, NoSymbol, NoSymbol ], + symbols[Group4]= [ 9, parenleft ] + }; + key <AC06> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ d, D, dead_acute, dead_acute ], + symbols[Group2]= [ h, H, hstroke, Hstroke ], + symbols[Group3]= [ f, F, dead_grave, dead_grave ], + symbols[Group4]= [ h, H ] + }; + key <AC07> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ h, H, dead_acute, dead_acute ], + symbols[Group2]= [ j, J, j, J ], + symbols[Group3]= [ s, S, dead_acute, dead_acute ], + symbols[Group4]= [ j, J ] + }; + key <AC08> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ t, T , dead_circumflex, dead_circumflex], + symbols[Group2]= [ k, K, kra, ampersand ], + symbols[Group3]= [ t, T , dead_circumflex, dead_circumflex], + symbols[Group4]= [ k, K ] + }; + key <AC09> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ n, N, dead_grave, dead_grave ], + symbols[Group2]= [ l, L, lstroke, Lstroke ], + symbols[Group3]= [ n, N, dead_grave, dead_grave ], + symbols[Group4]= [ l, L ] + }; + key <AC10> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ s, S, scircumflex, Scircumflex ], + symbols[Group2]= [ m, M, mu, masculine ], + symbols[Group3]= [ d, D ], + symbols[Group4]= [ semicolon, colon ] + }; + key <AC11> { + type[group2]= "FOUR_LEVEL", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ minus, underscore ], + symbols[Group2]= [ ugrave, percent, dead_circumflex, dead_caron ], + symbols[Group3]= [ w, W ], + symbols[Group4]= [ apostrophe, quotedbl ] + }; + key <TLDE> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ grave, asciitilde, dead_grave, dead_tilde ], + symbols[Group2]= [ twosuperior, asciitilde, notsign, notsign ], + symbols[Group3]= [ underscore, asterisk, NoSymbol, NoSymbol ], + symbols[Group4]= [ grave, asciitilde ] + }; + key <LFSH> { [ Shift_L ] }; + key <BKSL> { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ backslash, bar ], + symbols[Group2]= [ asterisk, mu, dead_grave, dead_breve ], + symbols[Group3]= [ asciitilde, numbersign ], + symbols[Group4]= [ backslash, bar ] + }; + key <AB01> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "FOUR_LEVEL_PLUS_LOCK", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ semicolon, colon, dead_ogonek, dead_doubleacute ], + symbols[Group2]= [ w, W, lstroke, Lstroke ], + symbols[Group3]= [ semicolon, bar, oe, OE, minus ], + symbols[Group4]= [ z, Z ] + }; + key <AB02> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ q, Q ], + symbols[Group2]= [ x, X, guillemotright, greater ], + symbols[Group3]= [ q, Q, braceleft, NoSymbol ], + symbols[Group4]= [ x, X ] + }; + key <AB03> { + type[group1]= "FOUR_LEVEL_ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ j, J, jcircumflex, Jcircumflex ], + symbols[Group2]= [ c, C, cent, copyright ], + symbols[Group3]= [ comma, at, braceright, NoSymbol ], + symbols[Group4]= [ c, C ] + }; + key <AB04> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ k, K ], + symbols[Group2]= [ v, V, leftdoublequotemark, leftsinglequotemark ], + symbols[Group3]= [ i, I, igrave, Igrave ], + symbols[Group4]= [ v, V ] + }; + key <AB05> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ x, X ], + symbols[Group2]= [ b, B, rightdoublequotemark, rightsinglequotemark ], + symbols[Group3]= [ y, Y, sterling, NoSymbol ], + symbols[Group4]= [ b, B ] + }; + key <AB06> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ b, B ], + symbols[Group2]= [ n, N, n, N ], + symbols[Group3]= [ x, X ], + symbols[Group4]= [ n, N ] + }; + key <AB07> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "ALPHABETIC", + symbols[Group1]= [ m, M ], + symbols[Group2]= [ comma, question, dead_acute, dead_doubleacute ], + symbols[Group3]= [ r, R, masculine, NoSymbol ], + symbols[Group4]= [ m, M ] + }; + key <AB08> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ w, W ], + symbols[Group2]= [ semicolon, period, horizconnector, multiply ], + symbols[Group3]= [ l, L ], + symbols[Group4]= [ comma, less ] + }; + key <AB09> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ v, V ], + symbols[Group2]= [ colon, slash, periodcentered, division ], + symbols[Group3]= [ p, P, section, NoSymbol ], + symbols[Group4]= [ period, greater ] + }; + key <AB10> { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ z, Z ], + symbols[Group2]= [ exclam, section, dead_belowdot, dead_abovedot ], + symbols[Group3]= [ j, J ], + symbols[Group4]= [ slash, question ] + }; + key <RTSH> { [ Shift_R ] }; + key <KPMU> { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ] + }; + key <LALT> { + type= "PC_RALT_LEVEL2", + symbols[Group1]= [ Alt_L, ISO_Prev_Group ] + }; + key <SPCE> { + type[group1]= "LOCAL_EIGHT_LEVEL", + type[group3]= "FOUR_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, U202F, NoSymbol, NoSymbol ], + symbols[Group2]= [ space, space ], + symbols[Group3]= [ space, space, nobreakspace, nobreakspace ] + }; + key <CAPS> { + type= "TWO_LEVEL", + symbols[Group1]= [ Multi_key, Multi_key ] + }; + key <FK01> { + type= "CTRL+ALT", + symbols[Group1]= [ F1, XF86_Switch_VT_1 ] + }; + key <FK02> { + type= "CTRL+ALT", + symbols[Group1]= [ F2, XF86_Switch_VT_2 ] + }; + key <FK03> { + type= "CTRL+ALT", + symbols[Group1]= [ F3, XF86_Switch_VT_3 ] + }; + key <FK04> { + type= "CTRL+ALT", + symbols[Group1]= [ F4, XF86_Switch_VT_4 ] + }; + key <FK05> { + type= "CTRL+ALT", + symbols[Group1]= [ F5, XF86_Switch_VT_5 ] + }; + key <FK06> { + type= "CTRL+ALT", + symbols[Group1]= [ F6, XF86_Switch_VT_6 ] + }; + key <FK07> { + type= "CTRL+ALT", + symbols[Group1]= [ F7, XF86_Switch_VT_7 ] + }; + key <FK08> { + type= "CTRL+ALT", + symbols[Group1]= [ F8, XF86_Switch_VT_8 ] + }; + key <FK09> { + type= "CTRL+ALT", + symbols[Group1]= [ F9, XF86_Switch_VT_9 ] + }; + key <FK10> { + type= "CTRL+ALT", + symbols[Group1]= [ F10, XF86_Switch_VT_10 ] + }; + key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; + key <SCLK> { [ Scroll_Lock ] }; + key <KP7> { [ KP_Home, KP_7 ] }; + key <KP8> { [ KP_Up, KP_8 ] }; + key <KP9> { [ KP_Prior, KP_9 ] }; + key <KPSU> { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ] + }; + key <KP4> { [ KP_Left, KP_4 ] }; + key <KP5> { [ KP_Begin, KP_5 ] }; + key <KP6> { [ KP_Right, KP_6 ] }; + key <KPAD> { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, XF86_Next_VMode ] + }; + key <KP1> { [ KP_End, KP_1 ] }; + key <KP2> { [ KP_Down, KP_2 ] }; + key <KP3> { [ KP_Next, KP_3 ] }; + key <KP0> { [ KP_Insert, KP_0 ] }; + key <KPDL> { [ KP_Delete, KP_Decimal ] }; + key <LVL3> { [ ISO_Level3_Shift ] }; + key <LSGT> { + type[group1]= "FOUR_LEVEL", + type[group2]= "FOUR_LEVEL", + type[group3]= "FOUR_LEVEL_PLUS_LOCK", + symbols[Group1]= [ less, greater, bar, brokenbar ], + symbols[Group2]= [ less, greater, bar, brokenbar ], + symbols[Group3]= [ agrave, ccedilla, Agrave, Ccedilla, slash ] + }; + key <FK11> { + type= "CTRL+ALT", + symbols[Group1]= [ F11, XF86_Switch_VT_11 ] + }; + key <FK12> { + type= "CTRL+ALT", + symbols[Group1]= [ F12, XF86_Switch_VT_12 ] + }; + key <KATA> { [ Katakana ] }; + key <HIRA> { [ Hiragana ] }; + key <HENK> { [ Henkan_Mode ] }; + key <HKTG> { [ Hiragana_Katakana ] }; + key <MUHE> { [ Muhenkan ] }; + key <KPEN> { [ KP_Enter ] }; + key <RCTL> { [ Control_R ] }; + key <KPDV> { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, XF86_Ungrab ] + }; + key <PRSC> { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key <RALT> { + type[group1]= "PC_LALT_LEVEL2", + type[group2]= "PC_ALT_LEVEL2", + type[group3]= "PC_ALT_LEVEL2", + type[group4]= "PC_ALT_LEVEL2", + symbols[Group1]= [ ISO_Level3_Shift, ISO_Next_Group ], + symbols[Group2]= [ ISO_Level3_Shift, ISO_Next_Group ], + symbols[Group3]= [ ISO_Level3_Shift, ISO_Next_Group ], + symbols[Group4]= [ ISO_Level3_Shift, ISO_Next_Group ] + }; + key <LNFD> { [ Linefeed ] }; + key <HOME> { [ Home ] }; + key <UP> { [ Up ] }; + key <PGUP> { [ Prior ] }; + key <LEFT> { [ Left ] }; + key <RGHT> { [ Right ] }; + key <END> { [ End ] }; + key <DOWN> { [ Down ] }; + key <PGDN> { [ Next ] }; + key <INS> { [ Insert ] }; + key <DELE> { [ Delete ] }; + key <MUTE> { [ XF86AudioMute ] }; + key <VOL-> { [ XF86AudioLowerVolume ] }; + key <VOL+> { [ XF86AudioRaiseVolume ] }; + key <POWR> { [ XF86PowerOff ] }; + key <KPEQ> { [ KP_Equal ] }; + key <I126> { [ plusminus ] }; + key <PAUS> { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key <I128> { [ XF86LaunchA ] }; + key <I129> { [ KP_Decimal ] }; + key <HNGL> { [ Hangul ] }; + key <HJCV> { [ Hangul_Hanja ] }; + key <LWIN> { [ Super_L ] }; + key <RWIN> { [ Super_R ] }; + key <COMP> { [ Menu ] }; + key <STOP> { [ Cancel ] }; + key <AGAI> { [ Redo ] }; + key <PROP> { [ SunProps ] }; + key <UNDO> { [ Undo ] }; + key <FRNT> { [ SunFront ] }; + key <COPY> { [ XF86Copy ] }; + key <OPEN> { [ SunOpen ] }; + key <PAST> { [ XF86Paste ] }; + key <FIND> { [ Find ] }; + key <CUT> { [ XF86Cut ] }; + key <HELP> { [ Help ] }; + key <I147> { [ XF86MenuKB ] }; + key <I148> { [ XF86Calculator ] }; + key <I150> { [ XF86Sleep ] }; + key <I151> { [ XF86WakeUp ] }; + key <I152> { [ XF86Explorer ] }; + key <I153> { [ XF86Send ] }; + key <I155> { [ XF86Xfer ] }; + key <I156> { [ XF86Launch1 ] }; + key <I157> { [ XF86Launch2 ] }; + key <I158> { [ XF86WWW ] }; + key <I159> { [ XF86DOS ] }; + key <I160> { [ XF86ScreenSaver ] }; + key <I162> { [ XF86RotateWindows ] }; + key <I163> { [ XF86Mail ] }; + key <I164> { [ XF86Favorites ] }; + key <I165> { [ XF86MyComputer ] }; + key <I166> { [ XF86Back ] }; + key <I167> { [ XF86Forward ] }; + key <I169> { [ XF86Eject ] }; + key <I170> { [ XF86Eject, XF86Eject ] }; + key <I171> { [ XF86AudioNext ] }; + key <I172> { [ XF86AudioPlay, XF86AudioPause ] }; + key <I173> { [ XF86AudioPrev ] }; + key <I174> { [ XF86AudioStop, XF86Eject ] }; + key <I175> { [ XF86AudioRecord ] }; + key <I176> { [ XF86AudioRewind ] }; + key <I177> { [ XF86Phone ] }; + key <I179> { [ XF86Tools ] }; + key <I180> { [ XF86HomePage ] }; + key <I181> { [ XF86Reload ] }; + key <I182> { [ XF86Close ] }; + key <I185> { [ XF86ScrollUp ] }; + key <I186> { [ XF86ScrollDown ] }; + key <I187> { [ parenleft ] }; + key <I188> { [ parenright ] }; + key <I189> { [ XF86New ] }; + key <I190> { [ Redo ] }; + key <FK13> { [ XF86Tools ] }; + key <FK14> { [ XF86Launch5 ] }; + key <FK15> { [ XF86MenuKB ] }; + key <FK22> { [ XF86TouchpadToggle ] }; + key <MDSW> { [ Mode_switch ] }; + key <ALT> { [ NoSymbol, Alt_L ] }; + key <META> { [ NoSymbol, Meta_L ] }; + key <SUPR> { [ NoSymbol, Super_L ] }; + key <HYPR> { [ NoSymbol, Hyper_L ] }; + key <I208> { [ XF86AudioPlay ] }; + key <I209> { [ XF86AudioPause ] }; + key <I210> { [ XF86Launch3 ] }; + key <I211> { [ XF86Launch4 ] }; + key <I212> { [ XF86LaunchB ] }; + key <I213> { [ XF86Suspend ] }; + key <I214> { [ XF86Close ] }; + key <I215> { [ XF86AudioPlay ] }; + key <I216> { [ XF86AudioForward ] }; + key <I218> { [ Print ] }; + key <I220> { [ XF86WebCam ] }; + key <I223> { [ XF86Mail ] }; + key <I225> { [ XF86Search ] }; + key <I227> { [ XF86Finance ] }; + key <I229> { [ XF86Shop ] }; + key <I231> { [ Cancel ] }; + key <I232> { [ XF86MonBrightnessDown ] }; + key <I233> { [ XF86MonBrightnessUp ] }; + key <I234> { [ XF86AudioMedia ] }; + key <I235> { [ XF86Display ] }; + key <I236> { [ XF86KbdLightOnOff ] }; + key <I237> { [ XF86KbdBrightnessDown ] }; + key <I238> { [ XF86KbdBrightnessUp ] }; + key <I239> { [ XF86Send ] }; + key <I240> { [ XF86Reply ] }; + key <I241> { [ XF86MailForward ] }; + key <I242> { [ XF86Save ] }; + key <I243> { [ XF86Documents ] }; + key <I244> { [ XF86Battery ] }; + key <I245> { [ XF86Bluetooth ] }; + key <I246> { [ XF86WLAN ] }; + modifier_map Control { <LCTL> }; + modifier_map Shift { <LFSH> }; + modifier_map Shift { <RTSH> }; + modifier_map Mod1 { <LALT> }; + modifier_map Mod2 { <NMLK> }; + modifier_map Mod5 { <LVL3> }; + modifier_map Control { <RCTL> }; + modifier_map Mod4 { <LWIN> }; + modifier_map Mod4 { <RWIN> }; + modifier_map Mod5 { <MDSW> }; + modifier_map Mod1 { <META> }; + modifier_map Mod4 { <SUPR> }; + modifier_map Mod4 { <HYPR> }; +}; + +xkb_geometry "pc(pc105)" { + + width= 470; + height= 180; + + alias <AC00> = <CAPS>; + alias <AA00> = <LCTL>; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + description= "Generic 105"; + + shape "NORM" { + corner= 1, + { [ 18, 18 ] }, + { [ 2, 1 ], [ 16, 16 ] } + }; + shape "BKSP" { + corner= 1, + { [ 38, 18 ] }, + { [ 2, 1 ], [ 36, 16 ] } + }; + shape "TABK" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "BKSL" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "RTRN" { + corner= 1, + { [ 42, 18 ] }, + { [ 2, 1 ], [ 40, 16 ] } + }; + shape "CAPS" { + corner= 1, + { [ 33, 18 ] }, + { [ 2, 1 ], [ 31, 16 ] } + }; + shape "LFSH" { + corner= 1, + { [ 25, 18 ] }, + { [ 2, 1 ], [ 23, 16 ] } + }; + shape "RTSH" { + corner= 1, + { [ 50, 18 ] }, + { [ 2, 1 ], [ 50, 16 ] } + }; + shape "MODK" { + corner= 1, + { [ 27, 18 ] }, + { [ 2, 1 ], [ 25, 16 ] } + }; + shape "SMOD" { + corner= 1, + { [ 23, 18 ] }, + { [ 2, 1 ], [ 21, 16 ] } + }; + shape "SPCE" { + corner= 1, + { [ 113, 18 ] }, + { [ 2, 1 ], [ 111, 16 ] } + }; + shape "KP0" { + corner= 1, + { [ 37, 18 ] }, + { [ 2, 1 ], [ 35, 16 ] } + }; + shape "KPAD" { + corner= 1, + { [ 18, 37 ] }, + { [ 2, 1 ], [ 16, 35 ] } + }; + shape "LEDS" { { [ 75, 20 ] } }; + shape "LED" { { [ 5, 1 ] } }; + section "Function" { + key.color= "grey20"; + priority= 7; + top= 22; + left= 19; + width= 351; + height= 19; + row { + top= 1; + left= 1; + keys { + { <ESC>, "NORM", 1 }, + { <FK01>, "NORM", 20, color="white" }, + { <FK02>, "NORM", 1, color="white" }, + { <FK03>, "NORM", 1, color="white" }, + { <FK04>, "NORM", 1, color="white" }, + { <FK05>, "NORM", 11, color="white" }, + { <FK06>, "NORM", 1, color="white" }, + { <FK07>, "NORM", 1, color="white" }, + { <FK08>, "NORM", 1, color="white" }, + { <FK09>, "NORM", 11, color="white" }, + { <FK10>, "NORM", 1, color="white" }, + { <FK11>, "NORM", 1, color="white" }, + { <FK12>, "NORM", 1, color="white" }, + { <PRSC>, "NORM", 8, color="white" }, + { <SCLK>, "NORM", 1, color="white" }, + { <PAUS>, "NORM", 1, color="white" } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 61; + left= 19; + width= 287; + height= 95; + row { + top= 1; + left= 1; + keys { + { <TLDE>, "NORM", 1 }, { <AE01>, "NORM", 1 }, + { <AE02>, "NORM", 1 }, { <AE03>, "NORM", 1 }, + { <AE04>, "NORM", 1 }, { <AE05>, "NORM", 1 }, + { <AE06>, "NORM", 1 }, { <AE07>, "NORM", 1 }, + { <AE08>, "NORM", 1 }, { <AE09>, "NORM", 1 }, + { <AE10>, "NORM", 1 }, { <AE11>, "NORM", 1 }, + { <AE12>, "NORM", 1 }, + { <BKSP>, "BKSP", 1, color="grey20" } + }; + }; + row { + top= 20; + left= 1; + keys { + { <TAB>, "TABK", 1, color="grey20" }, + { <AD01>, "NORM", 1 }, { <AD02>, "NORM", 1 }, + { <AD03>, "NORM", 1 }, { <AD04>, "NORM", 1 }, + { <AD05>, "NORM", 1 }, { <AD06>, "NORM", 1 }, + { <AD07>, "NORM", 1 }, { <AD08>, "NORM", 1 }, + { <AD09>, "NORM", 1 }, { <AD10>, "NORM", 1 }, + { <AD11>, "NORM", 1 }, { <AD12>, "NORM", 1 }, + { <BKSL>, "BKSL", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { <CAPS>, "CAPS", 1, color="grey20" }, + { <AC01>, "NORM", 1 }, { <AC02>, "NORM", 1 }, + { <AC03>, "NORM", 1 }, { <AC04>, "NORM", 1 }, + { <AC05>, "NORM", 1 }, { <AC06>, "NORM", 1 }, + { <AC07>, "NORM", 1 }, { <AC08>, "NORM", 1 }, + { <AC09>, "NORM", 1 }, { <AC10>, "NORM", 1 }, + { <AC11>, "NORM", 1 }, + { <RTRN>, "RTRN", 1, color="grey20" } + }; + }; + row { + top= 58; + left= 1; + keys { + { <LFSH>, "LFSH", 1, color="grey20" }, + { <LSGT>, "NORM", 1 }, { <AB01>, "NORM", 1 }, + { <AB02>, "NORM", 1 }, { <AB03>, "NORM", 1 }, + { <AB04>, "NORM", 1 }, { <AB05>, "NORM", 1 }, + { <AB06>, "NORM", 1 }, { <AB07>, "NORM", 1 }, + { <AB08>, "NORM", 1 }, { <AB09>, "NORM", 1 }, + { <AB10>, "NORM", 1 }, + { <RTSH>, "RTSH", 1, color="grey20" } + }; + }; + row { + top= 77; + left= 1; + keys { + { <LCTL>, "MODK", 1, color="grey20" }, + { <LWIN>, "SMOD", 1, color="grey20" }, + { <LALT>, "SMOD", 1, color="grey20" }, + { <SPCE>, "SPCE", 1 }, + { <RALT>, "SMOD", 1, color="grey20" }, + { <RWIN>, "SMOD", 1, color="grey20" }, + { <MENU>, "SMOD", 1, color="grey20" }, + { <RCTL>, "SMOD", 1, color="grey20" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "grey20"; + priority= 9; + top= 61; + left= 312; + width= 58; + height= 95; + row { + top= 1; + left= 1; + keys { + { <INS>, "NORM", 1 }, { <HOME>, "NORM", 1 }, + { <PGUP>, "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { <DELE>, "NORM", 1 }, { <END>, "NORM", 1 }, + { <PGDN>, "NORM", 1 } + }; + }; + row { + top= 58; + left= 20; + keys { + { <UP>, "NORM", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { <LEFT>, "NORM", 1 }, { <DOWN>, "NORM", 1 }, + { <RGHT>, "NORM", 1 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "grey20"; + priority= 10; + top= 61; + left= 376; + width= 77; + height= 95; + row { + top= 1; + left= 1; + keys { + { <NMLK>, "NORM", 1 }, { <KPDV>, "NORM", 1 }, + { <KPMU>, "NORM", 1 }, { <KPSU>, "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { <KP7>, "NORM", 1, color="white" }, + { <KP8>, "NORM", 1, color="white" }, + { <KP9>, "NORM", 1, color="white" }, + { <KPAD>, "KPAD", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { <KP4>, "NORM", 1, color="white" }, + { <KP5>, "NORM", 1, color="white" }, + { <KP6>, "NORM", 1, color="white" } + }; + }; + row { + top= 58; + left= 1; + keys { + { <KP1>, "NORM", 1, color="white" }, + { <KP2>, "NORM", 1, color="white" }, + { <KP3>, "NORM", 1, color="white" }, + { <KPEN>, "KPAD", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { <KP0>, "KP0", 1, color="white" }, + { <KPDL>, "NORM", 1, color="white" } + }; + }; + }; // End of "Keypad" section + + solid "LedPanel" { + top= 22; + left= 377; + priority= 0; + color= "grey10"; + shape= "LEDS"; + }; + indicator "Num Lock" { + top= 37; + left= 382; + priority= 1; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Caps Lock" { + top= 37; + left= 407; + priority= 2; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Scroll Lock" { + top= 37; + left= 433; + priority= 3; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + text "NumLockLabel" { + top= 25; + left= 378; + priority= 4; + width= 19.8; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Num\nLock"; + }; + text "CapsLockLabel" { + top= 25; + left= 403; + priority= 5; + width= 26.4; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Caps\nLock"; + }; + text "ScrollLockLabel" { + top= 25; + left= 428; + priority= 6; + width= 39.6; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Scroll\nLock"; + }; +}; + +}; diff --git a/zathurarc b/zathurarc @@ -0,0 +1,4 @@ +map q quit +set page-padding 3 +set zoom-step 20 + diff --git a/zsh/path b/zsh/path @@ -0,0 +1,5 @@ +#!/bin/bash + +PATH=$PATH:/mnt/tcvol/script:~/DOCUMENTS/REAL_tcvol/script/:~/jeux_win/:~/scripts/:~/scripts/aliases:/sbin:~/apps/openfst-1.2.7/src/bin +export PATH + diff --git a/zsh/perso b/zsh/perso @@ -0,0 +1 @@ +../private/zsh/perso+ \ No newline at end of file diff --git a/zsh/zshrc b/zsh/zshrc @@ -0,0 +1,250 @@ +. ~/.zsh/path +. ~/.zsh/perso + +. ~/apps/z/z.sh + +zstyle ':completion:*' completer _expand _complete _ignored _match _correct _approximate _prefix +zstyle ':completion:*' max-errors 2 +zstyle :compinstall filename '/home/a3_nm/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# export PROMPT="%n@%m:%~$ " +#PS1=$'%{\e[1;32m%}%n@h%{\e[0m%}:%B%~$%b ' +PS1=$'%{\e[35m%}%m%{\e[0;1m%}:%{\e[35m%}%B%~%{\e[0;1m%}$%b ' + +# PS1=$'%{\e[1;32m%}%n@%m%{\e[0m%}:%B%~$%b ' +# PS1=$'%{\e[1;32m%}%n%{\e[0m%}@%{\e[1;32m%}%m%{\e[0m%}:%B%~$%b ' + +HISTSIZE=200000 +SAVEHIST=200000 +HISTFILE=~/.history #-- zsh doesn't like to write on symlinks? + +setopt APPEND_HISTORY +setopt INC_APPEND_HISTORY +setopt SHARE_HISTORY + +setopt EXTENDED_HISTORY + +setopt HIST_IGNORE_DUPS +setopt HIST_EXPIRE_DUPS_FIRST + +setopt CORRECT + +# . /etc/zsh_command_not_found + +LC_ALL=en_US.utf8 +LANG=en_US.utf8 +LESSCHARSET=utf-8 +LC_CTYPE=en_US.utf8 +LC_COLLATE=en_US.utf8 +LC_TIME=fr_FR.utf8 +LC_NUMERIC=fr_FR.utf8 +LC_MONETARY=fr_FR.utf8 +LC_MESSAGES=en_US.utf8 +LC_PAPER=fr_FR.utf8 +LC_NAME=en_US.utf8 +LC_ADDRESS=fr_FR.utf8 +LC_TELEPHONE=fr_FR.utf8 +LC_MEASUREMENT=fr_FR.utf8 +LC_IDENTIFICATION=en_US.utf8 + +setopt HIST_IGNORE_SPACE + +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path ~/.zsh_cache +zmodload zsh/complist +setopt extendedglob +zstyle ':completion:*:*:kill:*:processes' list-colors "=(#b) #([0-9]#)*=36=31" + +export GREP_COLOR=31 +alias grep='grep --color=auto' +alias guile='rlwrap guile' + +alias ls='ls --color=auto -h' +alias ll='ls --color=auto -lh' +alias lll='ls --color=auto -lh | less' +alias truecrypt='truecrypt -t' + +alias df='df -h' +#alias less='less -F' +alias gpg='gpg --ask-cert-level' + +zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \ + /usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin + +export PAGER='less' +export EDITOR='vim' +#export BROWSER='w3mn' +export BROWSER='firefox' + +bindkey -e + +bindkey '^N' down-line-or-history +bindkey '^P' up-line-or-history +bindkey '^R' history-incremental-search-backward +bindkey '^S' history-incremental-search-forward +# bindkey vicmd 'k' history-incremental-search-forward +bindkey 'ESC-H' run-help +bindkey 'ESC-h' run-help +bindkey 'ESC-?' which-command +bindkey '^_' undo + +preexec () { + local WD="$(pwd | sed "s/^\/home\/$USER/~/")" + export LASTDATE="`date +%T`" + if [[ "$TERM" == "rxvt-unicode" ]]; then + #echo -ne "\e]0;$LOCALNAME $HOST:$WD$ $1 ($LASTDATE)\a" + echo -ne "\e]0;$LOCALNAME $HOST:$WD$ TODO ($LASTDATE)\a" + fi + export LASTCMD=$1 + CMD=${1%% *} + case $CMD in + sudo) + CMD=$(echo $1 | cut -d ' ' -f 2) + RSL="#$CMD" + ;; + ssh) + HST=$(echo $1 | rev | cut -d ' ' -f 1 | rev) + RSL="@$HST" + ;; + s) + HST=$(echo $1 | rev | cut -d ' ' -f 1 | rev) + RSL="@$HST" + ;; + *) + RSL="$CMD" + esac + CMD=$RSL + if [[ "$TERM" == "screen" ]]; then + echo -ne "\ek$CMD\e\\" + fi +} + +export LOCALNAME="" +function termname () { export LOCALNAME="$1|"; } + +autoload edit-command-line +zle -N edit-command-line +bindkey '^X' edit-command-line + +#alias busy='my_file=$(find /usr/include -type f | sort -R | head -n 1); my_len=$(wc -l $my_file | awk "{print $1}"); let "r = $RANDOM % $my_len" 2>/dev/null; vim +$r $my_file' + +alias l=ls +alias c=cd +alias v=vim +alias u=sudo +alias h=ssh +alias a=cat +alias n=man +alias m=make +alias ag=apt-get +alias p=less +alias t=task +alias md=mkdir +alias g=git +alias la="ls -a" +alias ll="ls -l" +alias gs="git status" +alias ga="git add" +alias gd="git diff" +alias gc="git commit" +alias gcm="git commit -m" +alias gca="git commit -am" +alias gps="git push" +alias gpl="git pull" +alias gl="git log" +alias gb="git branch" +alias gdb="gdb --args" +alias feh="feh -Z" +alias x="exec xinit" +alias mtr="mtr -t" +alias record=". ~/scripts/my_ttyrec" + +autoload -U read-from-minibuffer +function save-alias() +{ + local REPLY + read-from-minibuffer "alias as " + FILE="$HOME/scripts/aliases/$REPLY" + if [ -n "$REPLY" -a ! -f $FILE ]; then + echo "#!/usr/bin/zsh\n\n. ~/.zshrc\n" > $FILE + echo "$BUFFER \$*" >> $FILE + chmod +x $FILE + BUFFER="$REPLY" + fi +} + +function jump() +{ + CD=$(find . -iname \*$1\* | head -1) + if [ -n "$CD" ] + then + echo $CD + cd "$(dirname $CD)" + else + echo "Not found." + fi +} + +zle -N save-alias + +bindkey '^G' save-alias + +# Change to most recently used directory: +# http://matt.might.net/articles/console-hacks-exploiting-frequency/ +if [ -f ~/.lastdir ]; then + cd "`cat ~/.lastdir`" +fi + +export LASTDIR="/" + +# fails with spaces in some cases +function precmd () { + # Remember where we are: + pwd > ~/.lastdir + + # Record new directory on change. + #newdir=`pwd` + #if [ ! "$LASTDIR" = "$newdir" ]; then + ## List contents: + #ls -t | head -7 + #fi + + export LASTDIR=$newdir + + _z --add "$(pwd -P)" + if [[ "$TERM" == "screen" ]]; then + echo -ne "\ek_\e\\" + elif [[ "$TERM" == "rxvt-unicode" ]]; then + local WD=$(pwd | sed "s/^\/home\/$USER/~/") + if [ -n "$LASTCMD" ] + then + #TODO + #echo -ne "\e]0;$LOCALNAME $HOST:$WD$ (was $LASTCMD $LASTDATE) `date +%T`\a" + echo -ne "\e]0;$LOCALNAME $HOST:$WD$ (was TODO $LASTDATE) `date +%T`\a" + else + echo -ne "\e]0;urxvtc ready\a" + fi + fi +} + +# TODO http://aperiodic.net/phil/prompt/ + +# usage: manf command -flag (via commandlinefu) +manf () { man $1 | less -p "^ +$2"; } +# create a directory (with flags) and cd inside it +mcd () { mkdir "$@" && cd ${@:$#} } +# move a file somewhere (with flags) and link it here +mln () { mv "$@" && ln -s ${@:$#} } + +alias ms="notmuch search" +#alias msw="notmuch search" +alias mn="notmuch search tag:new tag:inbox" +alias mi="notmuch search tag:inbox" +alias mw="grep \$\* | cut -d ' ' -f 1 | while read a; do notmuch show \$a; done | less" +alias msw="history | tail -1 | cut -d ' ' -f2- | mw \$\*" +alias myip="curl icanhazip.com" +