dotfiles

dot files in ~
git clone git://git.unixkoans.com/dotfiles.git
Log | Files | Refs

commit ec01bc339aa14f4e31a088363e54a5bbf959e073
parent 874eec9a74980de63482d805a1d2e2958f477cee
Author: Xiaodong Xu <[email protected]>
Date:   Sat Jul  6 14:54:30 +0800

Add hybrid for xdefaults

Diffstat:
.Xdefaults | 7++++---
.Xdefaults.d/colors/hybrid | 29+++++++++++++++++++++++++++++
.Xdefaults.d/fonts/dejavu_droid | 6+++---
.Xdefaults.d/fonts/envycoder_droid | 4++--
.Xdefaults.d/fonts/ubuntu_droid | 6+++---
.bashrc | 4++--
.cmus/autosave | 141-------------------------------------------------------------------------------
.fehbg | 2+-
.mplayer/config | 8++++----
.mplayer/input.conf | 194+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.pentadactyl/colors/zenburn.penta | 2++
.pentadactyl/plugins/buftabs.js | 272-------------------------------------------------------------------------------
.pentadactyl/plugins/flashblock.js | 480-------------------------------------------------------------------------------
.pentadactylrc | 4++--
.perltidyrc | 8++++----
.xinitrc | 4++--
16 files changed, 252 insertions(+), 919 deletions(-)
diff --git a/.Xdefaults b/.Xdefaults @@ -1,11 +1,11 @@ ! ! author : Xu Xiaodong <[email protected]> -! modified : 2012 Jul 30 +! modified : 2013 Jul 06 ! !-- colorscheme & font --! -#include ".Xdefaults.d/colors/lich" -#include ".Xdefaults.d/fonts/envycoder_droid" +#include ".Xdefaults.d/colors/hybrid" +#include ".Xdefaults.d/fonts/dejavu_droid" !-- xft --! ! hintstyle : hintnone | hintslight | hintmedium | hintfull @@ -33,6 +33,7 @@ URxvt.saveLines : 65535 URxvt.transparent : false URxvt.cursorBlink : false URxvt.scrollBar : false +URxvt.intensityStyles: false URxvt.fading : 20 URxvt.externalBorder : 0 URxvt.internalBorder : 0 diff --git a/.Xdefaults.d/colors/hybrid b/.Xdefaults.d/colors/hybrid @@ -0,0 +1,29 @@ +! Hybrid Terminal Colours +! vim: ft=xdefaults + +*background: #1D1F21 +*foreground: #C5C8C6 +! black +*color0: #282A2E +*color8: #373B41 +! red +*color1: #A54242 +*color9: #CC6666 +! green +*color2: #8C9440 +*color10: #B5BD68 +! yellow +*color3: #DE935F +*color11: #F0C674 +! blue +*color4: #5F819D +*color12: #81A2BE +! magenta +*color5: #85678F +*color13: #B294BB +! cyan +*color6: #5E8D87 +*color14: #8ABEB7 +! white +*color7: #707880 +*color15: #C5C8C6 diff --git a/.Xdefaults.d/fonts/dejavu_droid b/.Xdefaults.d/fonts/dejavu_droid @@ -1,9 +1,9 @@ ! ! author : Xu Xiaodong <[email protected]> -! modified : 2012 May 31 +! modified : 2013 Jul 06 ! -URxvt.font : xft:dejavu sans mono:size=10,xft:droid sans fallback:size=10 -URxvt.boldFont : xft:dejavu sans mono:size=10:bold,xft:droid sans fallback:size=10:bold +URxvt.font : xft:dejavu sans mono for powerline:size=10,xft:droid sans fallback:size=10 +URxvt.boldFont : xft:dejavu sans mono for powerline:size=10:bold,xft:droid sans fallback:size=10:bold ! vim: ai:et:ts=2:sw=2:tw=78:ft=xdefaults diff --git a/.Xdefaults.d/fonts/envycoder_droid b/.Xdefaults.d/fonts/envycoder_droid @@ -1,9 +1,9 @@ ! ! author : Xu Xiaodong <[email protected]> -! modified : 2012 Jul 20 +! modified : 2013 Jan 30 ! URxvt.font : xft:envy code r for powerline:size=10,xft:droid sans fallback:size=10 -URxvt.boldFont : xft:envy code r for powerline:size=10,xft:droid sans fallback:size=10 +URxvt.boldFont : xft:envy code r for powerline:size=10:bold,xft:droid sans fallback:size=10 ! vim: ai:et:ts=2:sw=2:tw=78:ft=xdefaults diff --git a/.Xdefaults.d/fonts/ubuntu_droid b/.Xdefaults.d/fonts/ubuntu_droid @@ -1,9 +1,9 @@ ! ! author : Xu Xiaodong <[email protected]> -! modified : 2012 Jul 20 +! modified : 2012 Dec 25 ! -URxvt.font : xft:ubuntu mono for powerline:size=10,xft:droid sans fallback:size=10 -URxvt.boldFont : xft:ubuntu mono for powerline:size=10,xft:droid sans fallback:size=10 +URxvt.font : xft:ubuntu mono for powerline:size=11,xft:droid sans fallback:size=11 +URxvt.boldFont : xft:ubuntu mono for powerline:size=11,xft:droid sans fallback:size=11 ! vim: ai:et:ts=2:sw=2:tw=78:ft=xdefaults diff --git a/.bashrc b/.bashrc @@ -1,6 +1,6 @@ # # author: Xu Xiaodong <[email protected]> -# modified: 2012 Jul 30 +# modified: 2012 Aug 12 # # prompt @@ -23,7 +23,7 @@ boCyan="\[\033[1;36m\]" liWhite="\[\033[0;37m\]" boWhite="\[\033[1;37m\]" -PS1="\n$boGreen┌─ \u$liWhite at $boBlue\h$liWhite in $boRed\w $liYellow{\[\`let exitstatus=\$? ; if [[ \${exitstatus} != 0 ]] ; then echo \"\${exitstatus}\" ; else echo "0" ; fi\`\]} \n$boGreen└─$liRed ∞ $liWhite" +PS1="\n$boGreen┌─ \u$liWhite at $boBlue\h$liWhite in $boRed\w $liYellow{\[\`let exitstatus=\$? ; if [[ \${exitstatus} != 0 ]] ; then echo \"\${exitstatus}\" ; else echo "0" ; fi\`\]} \n$boGreen└╼ $liWhite" # alias if [ "$TERM" != "dumb" ]; then diff --git a/.cmus/autosave b/.cmus/autosave @@ -1,141 +0,0 @@ -set aaa_mode=artist -set altformat_current= %F -set altformat_playlist= %f%= %d -set altformat_title=%f -set altformat_trackwin= %f%= %d -set auto_reshuffle=true -set buffer_seconds=10 -set color_cmdline_bg=default -set color_cmdline_fg=gray -set color_error=lightred -set color_info=lightcyan -set color_separator=darkgray -set color_statusline_bg=black -set color_statusline_fg=gray -set color_titleline_bg=black -set color_titleline_fg=249 -set color_win_bg=default -set color_win_cur=white -set color_win_cur_sel_bg=white -set color_win_cur_sel_fg=232 -set color_win_dir=242 -set color_win_fg=gray -set color_win_inactive_cur_sel_bg=default -set color_win_inactive_cur_sel_fg=white -set color_win_inactive_sel_bg=default -set color_win_inactive_sel_fg=gray -set color_win_sel_bg=yellow -set color_win_sel_fg=black -set color_win_title_bg=default -set color_win_title_fg=239 -set confirm_run=true -set continue=true -set display_artist_sort_name=false -set dsp.alsa.device=default -set format_current= %a - %t%= %l (%y) -set format_playlist= %-5%d %-45%t %a - %l (%y) %= -set format_playlist_va= %-5%d %-45%t %a - %l (%y) %= -set format_title=cmus -set format_trackwin=%3n. %t %= %d -set format_trackwin_va=%3n. %t %= %d -set id3_default_charset=ISO-8859-1 -set lib_sort=albumartist date album discnumber tracknumber title filename -set mixer.alsa.channel=PCM -set mixer.alsa.device=default -set output_plugin=alsa -set passwd= -set pl_sort= -set play_library=true -set play_sorted=false -set repeat=false -set repeat_current=false -set replaygain=disabled -set replaygain_limit=true -set replaygain_preamp=6.000000 -set resume=false -set set_term_title=true -set show_hidden=false -set show_remaining_time=false -set shuffle=false -set smart_artist_sort=true -set softvol=false -set softvol_state=0 0 -set status_display_program=cmusfm -bind browser backspace browser-up -bind browser i toggle show_hidden -bind browser space win-activate -bind browser u win-update -bind common ! push shell -bind common + vol +10% -bind common , seek -1m -bind common - vol -10% -bind common . seek +1m -bind common = vol +10% -bind common C toggle continue -bind common D win-remove -bind common E win-add-Q -bind common F push filter -bind common F1 view tree -bind common F2 view sorted -bind common F3 view playlist -bind common F4 view queue -bind common F5 view browser -bind common F6 view filters -bind common F7 view settings -bind common G win-bottom -bind common I echo {} -bind common L push live-filter -bind common M toggle play_library -bind common N search-prev -bind common P win-mv-before -bind common [ vol +1% +0 -bind common ] vol +0 +1% -bind common ^B win-page-up -bind common ^C echo Type :quit<enter> to exit cmus. -bind common ^F win-page-down -bind common ^L refresh -bind common ^R toggle repeat_current -bind common a win-add-l -bind common b player-next -bind common c player-pause -bind common delete win-remove -bind common down win-down -bind common e win-add-q -bind common end win-bottom -bind common enter win-activate -bind common g win-top -bind common h seek -5 -bind common home win-top -bind common i win-sel-cur -bind common j win-down -bind common k win-up -bind common l seek +5 -bind common left seek -5 -bind common m toggle aaa_mode -bind common n search-next -bind common o toggle play_sorted -bind common p win-mv-after -bind common page_down win-page-down -bind common page_up win-page-up -bind common q quit -i -bind common r toggle repeat -bind common right seek +5 -bind common s toggle shuffle -bind common space win-toggle -bind common t toggle show_remaining_time -bind common tab win-next -bind common u update-cache -bind common up win-up -bind common v player-stop -bind common x player-play -bind common y win-add-p -bind common z player-prev -bind common { vol -1% -0 -bind common } vol -0 -1% -fset 90s=date>=1990&date<2000 -fset classical=genre="Classical" -fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) -fset mp3=filename="*.mp3" -fset ogg=filename="*.ogg" -fset ogg-or-mp3=ogg|mp3 -factivate diff --git a/.fehbg b/.fehbg @@ -1 +1 @@ -feh --no-xinerama --bg-scale '/home/xiaodong/pic/cat.jpg' +feh --no-xinerama --bg-scale '/home/xiaodong/pic/cameras.jpg' diff --git a/.mplayer/config b/.mplayer/config @@ -1,15 +1,15 @@ # # Author: Xu Xiaodong <[email protected]> -# modified: 2012 Jun 16 +# modified: 2012 Nov 25 # #-- video --# vo=gl2:yuv=5,x11 lavdopts=threads=4 -vf-pre=pp=ac +#vf-pre=pp=ac dr=yes -#vf=screenshot +vf=screenshot #fs=yes #-- audio --# @@ -19,7 +19,7 @@ alang=chi #-- subtitle --# -fontconfig=yes +#fontconfig=yes font='Adobe Heiti Std' subcp=enca:zh:utf8 slang=chs,chi,cht,zh,eng,en diff --git a/.mplayer/input.conf b/.mplayer/input.conf @@ -0,0 +1,194 @@ +# MPlayer input control file +# +# You are able to redefine default keyboard/joystick/mouse/LIRC bindings, or +# add new ones here. +# See DOCS/tech/slave.txt for possible commands that can be bound. +# Also see mplayer -input cmdlist for other possible options. +# The file should be placed in the $HOME/.mplayer directory. +# +# If you wish to unbind a key, use key ignore. +# e.g. ENTER ignore +# +# Note that merely removing default key bindings from this file won't remove +# the default bindings mplayer was compiled with, unless +# --input=nodefault-bindings +# is specified. +# +# Lines starting with # are comments. Use SHARP to assign the # key. +# +# Some characters need to be escaped. In particular, if you want to display +# a '\' character as part of an osd_show_property_text OSD message, you have to +# escape 2 times: +# key osd_show_property_text "This is a single backslash: \\\\!" +# +# You can use modifier-key combinations like Shift+Left or Ctrl+Alt+x with +# modifiers Shift, Ctrl, Alt and Meta, but note that currently reading +# key combinations is only supported through the video windows of X-based +# output drivers (not in output windows of other drivers or in a terminal). + +MOUSE_BTN0_DBL vo_fullscreen # toggle fullscreen on/off +MOUSE_BTN2 pause # toggle pause on/off +MOUSE_BTN3 seek 10 +MOUSE_BTN4 seek -10 +MOUSE_BTN5 volume 1 +MOUSE_BTN6 volume -1 + +# Seek units are in seconds, but note that these are limited by keyframes +RIGHT seek 10 +LEFT seek -10 +UP seek 60 +DOWN seek -60 +# Do smaller, always exact (non-keyframe-limited), seeks with shift. +Shift+RIGHT seek 1 0 1 +Shift+LEFT seek -1 0 1 +Shift+UP seek 5 0 1 +Shift+DOWN seek -5 0 1 +PGUP seek 600 +PGDWN seek -600 ++ audio_delay 0.100 # this changes audio/video sync +- audio_delay -0.100 +[ speed_mult 0.9091 # scale playback speed +] speed_mult 1.1 +{ speed_mult 0.5 +} speed_mult 2.0 +BS speed_set 1.0 # reset speed to normal +q quit +ESC quit +p pause # toggle pause/playback mode +. frame_step # advance one frame and pause +SPACE pause +HOME pt_up_step 1 +END pt_up_step -1 +> pt_step 1 # skip to next file +ENTER pt_step 1 1 # skip to next file or quit +< pt_step -1 # skip to previous file +INS alt_src_step 1 +DEL alt_src_step -1 +o osd # cycle through OSD mode +I osd_show_property_text "${filename}" # display filename in osd +P osd_show_progression +z sub_delay -0.1 # subtract 100 ms delay from subs +x sub_delay +0.1 # add +g sub_step -1 # immediately display next subtitle +y sub_step +1 # previous +9 volume -1 +/ volume -1 +0 volume 1 +* volume 1 +( balance -0.1 # adjust audio balance in favor of left +) balance 0.1 # right +m mute +1 contrast -1 +2 contrast 1 +3 brightness -1 +4 brightness 1 +5 hue -1 +6 hue 1 +7 saturation -1 +8 saturation 1 +d frame_drop # cycle through framedrop modes +# toggle deinterlacer; requires either vdpau output, -vf yadif or kerndeint +D step_property_osd deinterlace +c step_property_osd colormatrix +# Next 3 currently only work with --no-ass +r sub_pos -1 # move subtitles up +t sub_pos +1 # down +a sub_alignment +v sub_visibility +# stretch SSA/ASS subtitles with anamorphic videos to match historical +V step_property_osd ass_vsfilter_aspect_compat +j sub_select # cycle through subtitles +J sub_select -3 # ...backwards +F forced_subs_only +SHARP switch_audio # switch audio streams +_ step_property switch_video +TAB step_property switch_program +i edl_mark # for use with --edlout mode +T vo_ontop # toggle video window ontop of other windows +f vo_fullscreen # toggle fullscreen +C step_property_osd capturing +s screenshot 0 # take a png screenshot +S screenshot 1 # ...on every frame +Alt+s screenshot 0 1 # take a screenshot of window contents +Alt+S screenshot 1 1 # ...on every frame +w panscan -0.1 # zoom out with -panscan 0 -fs +e panscan +0.1 # in +POWER quit +MENU osd +PLAY pause +PAUSE pause +PLAYPAUSE pause +STOP quit +FORWARD seek 60 +REWIND seek -60 +NEXT pt_step 1 +PREV pt_step -1 +VOLUME_UP volume 1 +VOLUME_DOWN volume -1 +MUTE mute +CLOSE_WIN quit +! seek_chapter -1 # skip to previous chapter +@ seek_chapter 1 # next +A switch_angle 1 +U stop + +# TV +h tv_step_channel 1 +k tv_step_channel -1 +n tv_step_norm +u tv_step_chanlist +X step_property teletext_mode 1 +W step_property teletext_page 1 +Q step_property teletext_page -1 + +# +# DVDNAV +# Requires dvdnav:// +# + +KP8 dvdnav up +KP2 dvdnav down +KP4 dvdnav left +KP6 dvdnav right +KP5 dvdnav menu +KP_ENTER dvdnav select +MOUSE_BTN0 dvdnav mouse +KP7 dvdnav prev + +# +# Apple Remote section +# + +AR_PLAY pause +AR_PLAY_HOLD quit +AR_NEXT seek 30 +AR_NEXT_HOLD seek 120 +AR_PREV seek -10 +AR_PREV_HOLD seek -120 +AR_MENU osd +AR_MENU_HOLD mute +AR_VUP volume 1 +AR_VDOWN volume -1 + +# +# Joystick section +# WARNING: joystick support has to be explicitly enabled at +# compiletime with --enable-joystick +# + +JOY_AXIS0_PLUS seek 10 +JOY_AXIS0_MINUS seek -10 +JOY_AXIS1_MINUS seek 60 +JOY_AXIS1_PLUS seek -60 +JOY_BTN0 pause +JOY_BTN1 osd +JOY_BTN2 volume 1 +JOY_BTN3 volume -1 + +# +# Not assigned by default +# (not an exhaustive list of unbound commands) +# + +#? sub_scale +0.1 # increase subtitle font size +#? sub_scale -0.1 # decrease subtitle font size diff --git a/.pentadactyl/colors/zenburn.penta b/.pentadactyl/colors/zenburn.penta @@ -1,6 +1,7 @@ " FileName: zenburn.penta " Author: zouyang " Last Updated: Wed 06 Apr 2011 02:30:19 PM CST + hi Cmd background-color:#3F3F3F; hi -a StatusLineNormal color:#ccdc90; background-color:#3F3F3F !important; font-size:9pt; @@ -64,4 +65,5 @@ hi -a BufTab padding:0 2px; " specific hi -a NonText color:#5b605e; font-weight:bold; + " vim: set ft=pentadactyl:ts=4:sw=4:tw=0: diff --git a/.pentadactyl/plugins/buftabs.js b/.pentadactyl/plugins/buftabs.js @@ -1,272 +0,0 @@ -// {{{ Information -var INFO = -<plugin name="buftabs" version="1.0" - href="http://git.glacicle.org/vimperator-buftabs/" - summary="Buftabs: show the tabbar in the statusline" - xmlns={NS}> - <author email="[email protected]">Lucas de Vries</author> - <license href="http://sam.zoy.org/wtfpl/">WTFPL</license> - <project name="Pentadactyl" minVersion="1.0"/> - <p> - When the script is loaded it hijacks the statusline to display a - list of tabs, you can use the <o>buftabs</o> option to toggle it - on or off. - </p> - - <p> - Use the BufTab and BufTabSelected highlight groups to style the - buftabs. Make sure youve called the "loadplugins" command - before using the highlight groups in your vimperatorrc. - </p> - - <p> - You can set the max length of a title before it is cut off with - the <o>buftabs-maxlength</o> option. It is set to 25 by default. - </p> - <item> - <tags>'bt' 'buftabs'</tags> - <spec>'buftabs' 'bt'</spec> - <type>boolean</type> <default>true</default> - <description> - Toggle the buftabs on or off. - </description> - </item> - <item> - <tags>'btm' 'buftabs-maxlength'</tags> - <spec>'buftabs-maxlength' 'btm'</spec> - <type>number</type> <default>13</default> - <description> - The maximum length in characters of a single entry in the buftabs line. - Set to 0 for unlimited. - </description> - </item> - <item> - <tags>'btf' 'buftabs-showicons'</tags> - <spec>'buftabs-showicons' 'btf'</spec> - <type>number</type> <default>false</default> - <description> - Toggle favicon support on or off. - </description> - </item> - <item> - <tags>'btc' 'buftabs-completer'</tags> - <spec>'buftabs-completer' 'btc'</spec> - <type>number</type> <default>"..."</default> - <description> - Trailing string when title longer than maxlength. - Set to empty string for no trailing string. - </description> - </item> -</plugin>; -// }}} - -let buftabs = { - // Update the tabs - update: function () - { - if (!options["buftabs"]) - return; - - // Get buftabbar - var btabs = commandline.widgets.statusbar.buftabs; - var visibleTabs = tabs.visibleTabs; - var position=0, selpos; - - // Make sure we have an appropriate amount of labels - while (btabs.childNodes.length > visibleTabs.length) - { - btabs.removeChild(btabs.lastChild); - } - - while (btabs.childNodes.length < visibleTabs.length) - { - let label = document.createElement("label"); - btabs.appendChild(label); - - label.addEventListener("click", function (ev) - { - if (ev.button == 0) - tabs.select(this.tabpos); - else if (ev.button == 1) - tabs.remove(tabs.getTab(this.tabpos), 1, false, 0); - }, false); - } - - // Create the new tabs - for (let [i, tab] in iter(visibleTabs)) - { - // Create label - let browser = tab.linkedBrowser; - let label = btabs.childNodes[i]; - - // Hook on load - if (browser.webProgress.isLoadingDocument) - { - browser._buftabs_label = label; - browser.contentDocument.addEventListener("load", function () - { - buftabs.fillLabel(this._buftabs_label, this); - }, false); - } - - // Fill label - label.tabpos = i; - buftabs.fillLabel(label, browser); - - if (tabs.index(null, true) == label.tabpos) - { - selpos = [position, label.clientWidth+position]; - } - - position += label.clientWidth; - } - - // Scroll - if (selpos[0] < btabs.scrollLeft || selpos[1] > btabs.scrollLeft+btabs.clientWidth) - btabs.scrollLeft = selpos[0]; - - // Show the entire line if possible - if (btabs.scrollWidth == btabs.clientWidth) - btabs.scrollLeft = 0; - }, - - // Fill a label with browser content - fillLabel: function(label, browser) - { - var maxlength = options.get("buftabs-maxlength").get(); - var showicons = options.get("buftabs-showicons").get(); - var threedots = options.get("buftabs-completer").get(); - var tabvalue; - var favicon = BookmarkCache.getFavicon(browser.contentDocument.location.href); - - // Get title - if (browser.webProgress.isLoadingDocument) - { - tabvalue = "Loading..."; - } else { - tabvalue = browser.contentTitle || "Untitled"; - } - - // Check length - if (maxlength > 0 && tabvalue.length > maxlength) - tabvalue = tabvalue.substr(0, maxlength-threedots.length)+threedots; - - // Bookmark icon - if (bookmarkcache.isBookmarked(browser.contentDocument.location.href)) - tabvalue += "\u2764"; - - // Brackets and index - tabvalue = "["+(label.tabpos+1)+"-"+tabvalue+"]"; - - label.setAttribute("value", tabvalue); - if (showicons==true) - { - label.style.paddingLeft="20px"; - label.style.background='url("'+favicon+'") no-repeat left top'; - label.style.MozBackgroundSize='16px 16px'; - } - else - { - label.style.paddingLeft="0px"; - label.style.background=''; - label.style.MozBackgroundSize='0px 0px'; - } - - // Set the correct highlight group - if (tabs.index(null, true) == label.tabpos) - label.setAttributeNS(NS.uri, "highlight", "BufTabSelected"); - else - label.setAttributeNS(NS.uri, "highlight", "BufTab"); - - - }, - - // Create the horizontal box for adding the tabs to - createBar: function() - { - let id = "dactyl-statusline-field-buftabs"; - if (document.getElementById(id)) - return; - - let widget = util.xmlToDom( - <hbox xmlns={XUL} highlight="BufTabs" id={id} flex="1" style="overflow: hidden"/>, - document); - statusline.widgets.url.parentNode.insertBefore( - widget, statusline.widgets.url.nextSibling); - commandline.widgets.addElement({ - name: "buftabs", - getGroup: function () this.statusbar, - getValue: function () statusline.visible && options["buftabs"], - noValue: true - }); - } -}; - -/// Attach to events in order to update the tabline -var tabContainer = window.getBrowser().mTabContainer; -["TabMove", "TabOpen", "TabClose", "TabSelect"].forEach(function (event) { - tabContainer.addEventListener(event, function (event) { - buftabs.update(); - }, false); -}); - -document.getElementById("appcontent").addEventListener("load", function (event) { - buftabs.update(); -}, true); - -/// Initialise highlight groups -highlight.loadCSS(<![CDATA[ - !BufTabs background: inherit; color: inherit; - !BufTab - !BufTabSelected font-weight: bold; -]]>); - -/// Options -group.options.add(["buftabs", "bt"], - "Control whether to use buftabs in the statusline", - "boolean", true, - { - setter: function (value) - { - if (value) - buftabs.createBar(); - commandline.widgets.updateVisibility(); - buftabs.update(); - return value; - } - }); - -group.options.add(["buftabs-maxlength", "btm"], - "Max length of an entry in the buftabs list", - "number", "13", - { - setter: function (value) - { - buftabs.update(); - return value; - } - }); - -group.options.add(["buftabs-showicons", "btf"], - "Show Favicons in buftabs", - "boolean", false, - { - setter: function (value) - { - buftabs.createBar(); - commandline.widgets.updateVisibility(); - buftabs.update(); - return value; - } - }); - -group.options.add(["buftabs-completer", "btc"], - "How to complete title if longer than maxlength", - "string", "...", - { - setter: function (value) - { - buftabs.update(); - return value; - } - }); diff --git a/.pentadactyl/plugins/flashblock.js b/.pentadactyl/plugins/flashblock.js @@ -1,480 +0,0 @@ -/* use strict */ -XML.ignoreWhitespace = false; -XML.prettyPrinting = false; -var INFO = -<plugin name="flashblock" version="1.1" - href="http://dactyl.sf.net/pentadactyl/plugins#flashblock-plugin" - summary="Flash Blocker" - xmlns={NS}> - <author email="[email protected]">Kris Maglione</author> - <license href="http://opensource.org/licenses/mit-license.php">MIT</license> - <project name="Pentadactyl" min-version="1.0"/> - <p> - This plugin provides the same features as the ever popular FlashBlock - Firefox add-on. Place holders are substituted for flash animations and - embedded videos. When clicked, the original embedded content is - restored. Additionally, this plugin provides options to control which - sites can play animations without restrictions and triggers to toggle - the playing of animations on the current page. - </p> - <item> - <tags>'fb' 'flashblock'</tags> - <spec>'flashblock' 'fb'</spec> - <type>boolean</type> - <default>true</default> - <description> - <p> - Controls the blocking of flash animations. When true, place - holders are substituted for flash animations on untrusted sites. - </p> - </description> - </item> - <item> - <tags>'fbw' 'fbwhitelist'</tags> - <spec>'fbwhitelist' 'fbw'</spec> - <type>sitelist</type> - <default></default> - <description> - <p> - Controls which sites may play flash animations without user - intervention. See <ex>:mk{config.name.toLowerCase()}rc</ex>. - </p> - </description> - </item> - <item> - <tags>:flashplay :flp</tags> - <strut/> - <spec>:flashplay</spec> - <description> - <p> - Plays any blocked flash animations on the current page. - </p> - </description> - </item> - <item> - <tags>:flashstop :fls</tags> - <strut/> - <spec>:flashstop</spec> - <description> - <p> - Stops any currently playing flash animations on the current - page. - </p> - </description> - </item> - <item> - <tags>:flashtoggle :flt</tags> - <strut/> - <spec>:flashtoggle</spec> - <description> - <p> - Toggles the playing of all animations on the current page. If - any flash animations are currently blocked, all may begin - playing. Otherwise, all animations are stopped. - </p> - <example><ex>:map</ex> -silent <k name="A-p" link="false"/> <ex>:flashtoggle</ex><k name="CR"/></example> - </description> - </item> -</plugin>; - -if ("noscriptOverlay" in window) - noscriptOverlay.safeAllow("dactyl:", true, false); - -group.options.add(["flashblock", "fb"], - "Enable blocking of flash animations", - "boolean", true, - { setter: reload }); -group.options.add(["fbwhitelist", "fbw"], - "Sites which may run flash animations without prompting", - "sitelist", "", - { - completer: function (context) completion.visibleHosts(context), - privateData: true, - setter: reload, - validator: function () true - }); - -["Play", "Stop"].forEach(function (action) - group.commands.add(["flash" + action, "fl" + action[0]].map(String.toLowerCase), - action + " all flash animations on the current page", - function () { postMessage(content, "flashblock" + action) }, - { argCount: "0" }, true)); -group.commands.add(["flashtoggle", "flt"], - "Toggle playing of flash animations on the current page", - function () { - if (buffer.allFrames().some(function (w) DOM("pseudoembed", w.document).length)) - commands.get("flashplay").action(); - else - commands.get("flashstop").action(); - }, - { argCount: "0" }, true); - -group.mappings.add([modes.NORMAL], ["<Leader>fbwhitelist"], - "Add the current site to the flash whitelist", - function () { whitelist.op("+", whitelist.parse(content.location.hostname)) }); -group.mappings.add([modes.NORMAL], ["<Leader>fbWhitelist"], - "Toggle the current site in the flash whitelist", - function () { - let host = content.location.hostname; - if (!removeHost(host)) - whitelist.op("+", whitelist.parse(host)); - }); - -var enabled = options.get("flashblock"); -var whitelist = options.get("fbwhitelist"); -function postMessage(content, message) { - buffer.allFrames(content).forEach(function (f) f.postMessage(message, "*")); -} -function reload(values) { - //for (let [,t] in tabs.browsers) - // t.contentWindow.postMessage("flashblockReload", "*"); - postMessage(window.content, "flashblockReload"); - return values; -} - -function removeHost(host) { - let len = whitelist.value.length; - let uri = util.createURI(host); - whitelist.value = whitelist.value.filter(function (f) !f(uri)); - return whitelist.value.length != len; -} - -function onUnload() { - group.events.unlisten(null); -} -group.events.listen(window, "flashblockCheckLoad", - function checkLoadFlash(event) { - if(!enabled.value || whitelist.getKey(event.target.documentURIObject)) - event.preventDefault(); - event.stopPropagation(); - }, true, true); - -XML.ignoreWhitespace = true; -XML.prettyPrinting = false; -var data = { - bindings: "dactyl://data/text/xml," + encodeURIComponent('<?xml version="1.0"?>' + - <e4x> - <bindings - xmlns="http://www.mozilla.org/xbl" - xmlns:xbl="http://www.mozilla.org/xbl" - xmlns:html="http://www.w3.org/1999/xhtml"> - - <binding id="flash"> - <implementation> - <constructor> - <![CDATA[ - var myDocument = XPCNativeWrapper(document); - var myWindow = XPCNativeWrapper(window); - - function copyAttribs(to, from) { - Array.map(from.attributes, function(attrib) { - to.setAttribute(attrib.name, attrib.value); - }); - } - function capitalize(str) { return str[0].toUpperCase() + str.substr(1) }; - - function Placeholder(embed) { - var self = this; - this.embed = embed; - - if (!document.flashblockStyle) { - var head = document.getElementsByTagName("head")[0]; - var node = document.createElement("style"); - node.setAttribute("type", "text/css"); - head.insertBefore(node, head.firstChild); - document.flashblockStyle = document.styleSheets[0]; - } - - document.flashblockIdx = (document.flashblockIdx || 0) + 1; - this.idx = document.flashblockIdx; - embed.setAttribute("flashblock", this.idx); - - document.flashblockStyle.insertRule("pseudoembed[flashblock='" + this.idx + "'] {}", 0); - this.style = document.flashblockStyle.cssRules[0].style; - - this.div = myDocument.createElement('pseudoembed'); - this.div.addEventListener("click", function() { self.showEmbed(true) }, true); - this.div.flashblockEmbed = embed; - } - Placeholder.prototype = { - showEmbed: function(clicked) { - this.embed.clicked = clicked; - if (this.embed.parentNode) - return; - copyAttribs(this.embed, this.div); - this.div.parentNode.replaceChild(this.embed, this.div); - }, - hideEmbed: function() { - let parent = this.embed.parentNode; - if (!parent) - return; - - this.div.setAttribute("embedtype", this.embed.localName); - copyAttribs(this.div, this.embed); - - ['width', 'height'].forEach(function(dimen) { - this.style[dimen] = ""; - if (this.embed[dimen]) - if (/%$/.test(this.embed[dimen])) - this.style[dimen] = this.embed[dimen]; - else - this.style[dimen] = parseInt(this.embed[dimen]) + "px"; - }, this); - - let style = myWindow.getComputedStyle(parent, ""); - if (style.getPropertyValue("text-align") == "center") { - this.style.marginRight = "auto"; - this.style.marginLeft = "auto"; - } - - parent.replaceChild(this.div, this.embed); - } - } - - var parent = this.parentNode - var self = this; - if (!this.getAttribute("flashblock")) - this.setAttribute("flashblock", true); - if (this.placeholder || parent.placeholder) - return; - this.placeholder = new Placeholder(self); - - function checkReplace(e) { - if (!e || e.data == "flashblockReload") { - if (self.clicked) - return; - let event = myDocument.createEvent("UIEvents"); - event.initEvent("flashblockCheckLoad", true, true); - myDocument.dispatchEvent(event); - if (event.getPreventDefault()) - self.placeholder.showEmbed(); - else - self.placeholder.hideEmbed(); - } - else if (e.data == "flashblockPlay") - self.placeholder.showEmbed(true); - else if (e.data == "flashblockStop") - self.placeholder.hideEmbed(); - } - checkReplace(); - myWindow.addEventListener("message", checkReplace, false); - - if(this.src == this.ownerDocument.location) - myWindow.location = 'dactyl://data/application/xhtml+xml,' + encodeURIComponent('<?xml version="1.0" encoding="UTF-8"?>' + - '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">' + - <html xmlns="http://www.w3.org/1999/xhtml"> - <head><title></title></head> - <body>{new XML(parent.innerHTML)}</body> - </html>); - ]]> - </constructor> - </implementation> - </binding> - </bindings> - </e4x>.*.toXMLString()), - flash: <![CDATA[data:image/png;base64, - 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 - ]]>, - play: <![CDATA[data:image/png;base64, - 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 - AAMACHALg12qSjsAAAAASUVORK5CYII - ]]>, -}; - -var CSS = <![CDATA[ /* <css> */ - /* - * Flash Click to View by Ted Mielczarek ([email protected]) - * Original code by Jesse Ruderman ([email protected]) - * taken from http://www.squarefree.com/userstyles/xbl.html - * - * Change XBL binding for <object> tags, click to view flash - */ - - pseudoembed { - display: inline-block; - min-width: 32px !important; - min-height: 32px !important; - border: 1px solid #dfdfdf; - cursor: pointer; - overflow: hidden; - -moz-box-sizing: border-box; - background: url("{play}") no-repeat center; - } - pseudoembed:hover { - background-image: url("{flash}"); - } - - video, - object[classid*=":D27CDB6E-AE6D-11cf-96B8-444553540000"], - object[codebase*="swflash.cab"], - object[data*=".swf"], - embed[type="application/x-shockwave-flash"], - embed[src*=".swf"], - object[type="application/x-shockwave-flash"], - object[src*=".swf"] { - -moz-binding: url("{bindings}") !important; - } - - /* TODO: Could do better. */ - /* - * NoScript is incredibly annoying. The binding can't execute JS on - * untrusted sites. - */ - video:not([flashblock]), - object[classid*=":D27CDB6E-AE6D-11cf-96B8-444553540000"]:not([flashblock]), - object[codebase*="swflash.cab"]:not([flashblock]), - object[data*=".swf"]:not([flashblock]), - embed[type="application/x-shockwave-flash"]:not([flashblock]), - embed[src*=".swf"]:not([flashblock]), - object[type="application/x-shockwave-flash"]:not([flashblock]), - object[src*=".swf"]:not([flashblock]) { - display: none !important; - } - - /* - * Java identifiers. - * TODO: Make this work. - applet, - object[classid*=":8AD9C840-044E-11D1-B3E9-00805F499D93"], - object[classid^="clsid:CAFEEFAC-"], - object[classid^="java:"], - object[type="application/x-java-applet"], - embed[classid*=":8AD9C840-044E-11D1-B3E9-00805F499D93"], - embed[classid^="clsid:CAFEEFAC-"], - embed[classid^="java:"], - embed[type="application/x-java-applet"] - { - -moz-binding: url("{bindings}") !important; - } - */ -]]>.toString().replace(/\{(\w+)\}/g, function($0, $1) String(data[$1]).replace(/\s+/g, "")); - -styles.system.add("flashblock", "*", CSS); -data = null; -CSS = null; - -/* vim:se sts=4 sw=4 et: */ diff --git a/.pentadactylrc b/.pentadactylrc @@ -1,11 +1,11 @@ " " author: Xu Xiaodong <[email protected]> -" modified: 2012 Aug 02 +" modified: 2013 Jun 12 " "-- look --" -set guioptions=Cs +set guioptions=Csr set showtabline=never set showstatuslinks=command set hintkeys=asdfg;lkjh diff --git a/.perltidyrc b/.perltidyrc @@ -1,6 +1,6 @@ # # author: Xu Xiaodong <[email protected]> -# modified: 2011 May 08 +# modified: 2013 Jun 16 # #-- use as filter --# @@ -14,9 +14,9 @@ #-- indent --# --i=2 --ci=2 --vt=2 +-i=4 +-ci=4 +-vt=4 -cti=0 #-- tightness --# diff --git a/.xinitrc b/.xinitrc @@ -1,7 +1,7 @@ #!/bin/sh # # author : Xu Xiaodong <[email protected]> -# modified : 2012 Aug 11 +# modified : 2013 Jan 29 # #-- font --# @@ -19,7 +19,7 @@ fcitx & #-- app --# xmodmap ~/.xmodmaprc & # swap Caps_Lock and Control_L -compton -o 0.2 -l 1 -cGb # add fancy shadows +compton -cGb # add fancy shadows unclutter -idle 5 & # hide mouse cursor syndaemon -t -k -i 2 -d & # disable trackpad while typing urxvtd -q -f -o # urxvt daemon