dotfiles

configuration files for shell, text editor, graphical environment, etc.
git clone git://src.adamsgaard.dk/dotfiles
Log | Files | Refs | README | LICENSE Back to index

commit 70fe79247d8e8b71eea9291219935ae4ccd26718
parent e526fb0b36f749e9ab4bcc17bbd78f814c34c96b
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Tue, 26 Mar 2019 13:59:57 +0100

Remove old and unused configuration files

Diffstat:
D.Xdefaults-light | 197-------------------------------------------------------------------------------
D.config/awesome/rc.lua | 418-------------------------------------------------------------------------------
D.config/bspwm/bspwmrc | 36------------------------------------
D.config/bspwm/panel/panel | 132-------------------------------------------------------------------------------
D.config/bspwm/panel/panel_bar | 74--------------------------------------------------------------------------
D.config/bspwm/panel/panel_colors | 24------------------------
D.config/dwb/keys | 175-------------------------------------------------------------------------------
D.config/dwb/searchengines | 8--------
D.config/dwb/settings | 163-------------------------------------------------------------------------------
D.config/dwb/userscripts/wget | 3---
D.config/dwb/userscripts/youtube-mplayer | 8--------
D.config/gopass/config.yml | 19-------------------
D.config/kitty/kitty.conf | 860-------------------------------------------------------------------------------
D.config/luakit/binds.lua | 588-------------------------------------------------------------------------------
D.config/luakit/globals.lua | 87-------------------------------------------------------------------------------
D.config/luakit/modes.lua | 163-------------------------------------------------------------------------------
D.config/luakit/rc.lua | 181-------------------------------------------------------------------------------
D.config/luakit/theme.lua | 69---------------------------------------------------------------------
D.config/luakit/webview.lua | 350-------------------------------------------------------------------------------
D.config/luakit/window.lua | 859-------------------------------------------------------------------------------
D.config/openbox/autostart | 94-------------------------------------------------------------------------------
D.config/openbox/menu.xml | 524-------------------------------------------------------------------------------
D.config/openbox/rc.xml | 1002-------------------------------------------------------------------------------
D.config/ranger/commands.py | 216-------------------------------------------------------------------------------
D.config/ranger/luke_ranger_readme.md | 85-------------------------------------------------------------------------------
D.config/ranger/rc.conf | 518-------------------------------------------------------------------------------
D.config/ranger/rifle.conf | 234-------------------------------------------------------------------------------
D.config/ranger/scope.sh | 125-------------------------------------------------------------------------------
D.config/ranger/shortcuts.conf | 404-------------------------------------------------------------------------------
D.config/rofi/config | 2--
D.config/sxhkd/sxhkdrc | 69---------------------------------------------------------------------
D.kwm/kwmrc | 203-------------------------------------------------------------------------------
D.spacemacs | 275-------------------------------------------------------------------------------
D.taskrc | 31-------------------------------
D.tmuxinator/article2.yml | 23-----------------------
D.tmuxinator/cosmo.yml | 37-------------------------------------
D.tmuxinator/dev.yml | 40----------------------------------------
D.tmuxinator/tmuxinator.bash | 21---------------------
D.tmuxinator/tmuxinator.zsh | 20--------------------
D.tmuxinator/tutorial.yml | 28----------------------------
D.tmuxinator/utility.yml | 54------------------------------------------------------
D.vimperator/colors/darkness2.vimp | 68--------------------------------------------------------------------
D.vimperator/colors/phallus.vimp | 75---------------------------------------------------------------------------
D.vimperatorrc | 47-----------------------------------------------
44 files changed, 0 insertions(+), 8609 deletions(-)

diff --git a/.Xdefaults-light b/.Xdefaults-light @@ -1,197 +0,0 @@ -! Xcursor -------------------------------------------------------------------- -Xcursor.theme: Vanilla-DMZ-AA -Xcursor.size: 22 - -! terminal colors ------------------------------------------------------------ - -!! tangoesque scheme -!*background: #041621 -!*foreground: #babdb6 -!! Black (not tango) + DarkGrey -!*color0: #000000 -!*color8: #555753 -!! DarkRed + Red -!*color1: #ff6565 -!*color9: #ff8d8d -!! DarkGreen + Green -!*color2: #93d44f -!*color10: #c8e7a8 -!! DarkYellow + Yellow -!*color3: #eab93d -!*color11: #ffc123 -!! DarkBlue + Blue -!*color4: #204a87 -!*color12: #3465a4 -!! DarkMangenta + Mangenta -!*color5: #ce5c00 -!*color13: #f57900 -!!DarkCyan + Cyan (both not tango) -!*color6: #89b6e2 -!*color14: #46a4ff -!! LightGrey + White -!*color7: #cccccc -!*color15: #ffffff - -! Solarized color scheme for the X Window System -! http://ethanschoonover.com/solarized - -! Common -#define S_yellow #b58900 -#define S_orange #cb4b16 -#define S_red #dc322f -#define S_magenta #d33682 -#define S_violet #6c71c4 -#define S_blue #268bd2 -#define S_cyan #2aa198 -#define S_green #859900 - -! Dark -! #define S_base03 #002b36 -! #define S_base02 #073642 -! #define S_base01 #586e75 -! #define S_base00 #657b83 -! #define S_base0 #839496 -! #define S_base1 #93a1a1 -! #define S_base2 #eee8d5 -! #define S_base3 #fdf6e3 - -! Light -#define S_base03 #fdf6e3 -#define S_base02 #eee8d5 -#define S_base01 #93a1a1 -#define S_base00 #839496 -#define S_base0 #657b83 -#define S_base1 #586e75 -#define S_base2 #073642 -#define S_base3 #002b36 - -! To only apply colors to your terminal, for example, prefix -! the color assignment statement with its name. Example: -! URxvt*background: S_base03 -URxvt*background: S_base03 -URxvt*foreground: S_base0 -!*fading: 40 -URxvt*fadeColor: S_base03 -!*cursorColor: S_base1 -URxvt*cursorColor: $DCDCCC -URxvt*pointerColorBackground: S_base01 -URxvt*pointerColorForeground: S_base1 - -URxvt*color0: S_base02 -URxvt*color1: S_red -URxvt*color2: S_green -URxvt*color3: S_yellow -URxvt*color4: S_blue -URxvt*color5: S_magenta -URxvt*color6: S_cyan -URxvt*color7: S_base2 -URxvt*color8: S_base03 -URxvt*color9: S_orange -URxvt*color10: S_base01 -URxvt*color11: S_base00 -URxvt*color12: S_base0 -URxvt*color13: S_violet -URxvt*color14: S_base1 -URxvt*color15: S_base3 - - -! xterm ---------------------------------------------------------------------- -!xterm*background: black -!xterm*background: black -!xterm*foreground: white -xterm*termName: xterm-256color -!xterm*geometry: 80x25 -!!xterm*faceName: terminus:bold:pixelsize=11 -!!!xterm*font: -*-dina-medium-r-*-*-16-*-*-*-*-*-*-* -!xterm*faceName: SourceCodePro-Regular -!xterm*faceSize: 11 -!xterm*font: 7x13 -!xterm*font: 8x15 -!!xterm*dynamicColors: true -!!!xterm*metaSendsEscape: true -!!!xterm*eightBitInput: false -!!!xterm*eightBitControl: false -!!!xterm*eightBitOutput: true - -!xterm*utf8: 1 -xterm*utf8: 2 -xterm*eightBitInput: true - -xterm*saveLines: 1024 -!xterm*scrollKey: true -!xterm*scrollTtyOutput: false -!!xterm*scrollBar: true -!xterm*rightScrollBar: true -!xterm*jumpScroll: true -!xterm*multiScroll: true -!xterm*toolBar: false - -! xpdf ----------------------------------------------------------------------- -xpdf*enableFreetype: yes -xpdf*antialias: yes -xpdf*foreground: black -xpdf*background: white -xpdf*matteColor: gray -xpdf*urlCommand: /usr/bin/firefox %s - -! rxvt-unicode --------------------------------------------------------------- -URxvt.termName:screen-256color -!URxvt.termName:rxvt-256color -!URxvt.transparent: true -! URxvt.shading: 0 to 99 darkens, 101 to 200 lightens -!URxvt.shading: 20 -! scrollbar style - rxvt (default), plain (most compact), next, or xterm -!URxvt.scrollstyle: rxvt -URxvt.internalBorder: 1 -!URxvt.loginShell: true -URxvt.scrollBar: off -!URxvt.font: 7x13euro -!URxvf.font: 8x13 -! tabs and clickable URLs -!URxvt.perl-ext-common: default,tabbed,matcher -URxvt.perl-ext-common: default,matcher -URxvt.urlLauncher: /usr/bin/firefox -URxvt.matcher.button: 1 -! tab colors -!URxvt.tabbed.tabbar-fg: 2 -!URxvt.tabbed.tabbar-bg: 0 -!URxvt.tabbed.tab-fg: 3 -!URxvt.tabbed.tab-bg: 0 -! colors -!URxvt.foreground: White -!URxvt.background: Black -!URxvt.saveLines: 1024 -URxvt.meta8: True -URxvt.intensityStyles: false -!Xft.dpi: 81 -!Xft.dpi: 100 -!URxvt.font: xft:SourceCodePro-Light:pixelsize=11 - -! xscreensaver --------------------------------------------------------------- -!font settings -xscreensaver.Dialog.headingFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.bodyFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.labelFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.unameFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.buttonFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.Dialog.dateFont: -*-dina-medium-r-*-*-12-*-*-*-*-*-*-* -xscreensaver.passwd.passwdFont: -*-dina-bold-r-*-*-12-*-*-*-*-*-*-* -!general dialog box (affects main hostname, username, password text) -xscreensaver.Dialog.foreground: #ffffff -xscreensaver.Dialog.background: #111111 -xscreensaver.Dialog.topShadowColor: #111111 -xscreensaver.Dialog.bottomShadowColor: #111111 -xscreensaver.Dialog.Button.foreground: #666666 -xscreensaver.Dialog.Button.background: #ffffff -!username/password input box and date text colour -xscreensaver.Dialog.text.foreground: #666666 -xscreensaver.Dialog.text.background: #ffffff -xscreensaver.Dialog.internalBorderWidth:24 -xscreensaver.Dialog.borderWidth: 20 -xscreensaver.Dialog.shadowThickness: 2 -!timeout bar (background is actually determined by Dialog.text.background) -xscreensaver.passwd.thermometer.foreground: #ff0000 -xscreensaver.passwd.thermometer.background: #000000 -xscreensaver.passwd.thermometer.width: 8 -!datestamp format--see the strftime(3) manual page for details -xscreensaver.dateFormat: %I:%M%P %a %b %d, %Y diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua @@ -1,418 +0,0 @@ --- Standard awesome library -require("awful") -require("awful.autofocus") -require("awful.rules") --- Theme handling library -require("beautiful") --- Notification library -require("naughty") - -require("vicious") - --- Load Debian menu entries ---require("debian.menu") - --- {{{ Error handling --- Check if awesome encountered an error during startup and fell back to --- another config (This code will only ever execute for the fallback config) -if awesome.startup_errors then - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) -end - --- Handle runtime errors after startup -do - local in_error = false - awesome.add_signal("debug::error", function (err) - -- Make sure we don't go into an endless error loop - if in_error then return end - in_error = true - - naughty.notify({ preset = naughty.config.presets.critical, - title = "Oops, an error happened!", - text = err }) - in_error = false - end) -end --- }}} - --- {{{ Variable definitions --- Themes define colours, icons, and wallpapers ---beautiful.init("/usr/share/awesome/themes/default/theme.lua") -beautiful.init("/home/adc/.config/awesome/themes/default/theme.lua") - --- This is used later as the default terminal and editor to run. ---terminal = "x-terminal-emulator" -terminal = "urxvt -e tmux" -editor = os.getenv("EDITOR") or "editor" -editor_cmd = terminal .. " -e " .. editor - --- Default modkey. --- Usually, Mod4 is the key with a logo between Control and Alt. --- If you do not like this or do not have such a key, --- I suggest you to remap Mod4 to another key using xmodmap or other tools. --- However, you can use another modifier like Mod1, but it may interact with others. -modkey = "Mod4" - --- Table of layouts to cover with awful.layout.inc, order matters. -layouts = -{ - awful.layout.suit.floating, - awful.layout.suit.tile, - awful.layout.suit.tile.left, - awful.layout.suit.tile.bottom, - awful.layout.suit.tile.top, - awful.layout.suit.fair, - awful.layout.suit.fair.horizontal, - awful.layout.suit.spiral, - awful.layout.suit.spiral.dwindle, - awful.layout.suit.max, - awful.layout.suit.max.fullscreen, - awful.layout.suit.magnifier -} --- }}} - --- {{{ Tags --- Define a tag table which hold all screen tags. -tags = {} -for s = 1, screen.count() do - -- Each screen has its own tag table. - tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1]) -end --- }}} - --- {{{ Menu --- Create a laucher widget and a main menu -myawesomemenu = { - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", awesome.quit } -} - -mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "Debian", debian.menu.Debian_menu.Debian }, - { "open terminal", terminal }, - { "firefox", "firefox"} - } - }) - -mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon), - menu = mymainmenu }) --- }}} - --- {{{ Vicious widgets - --- Memory widget -memwidget = widget({ type = "textbox" }) -vicious.register(memwidget, vicious.widgets.mem, " $2MB/$3MB |", 13) - --- CPU usage widget -cpuwidget = widget({ type = "textbox" }) -vicious.register(cpuwidget, vicious.widgets.cpu, " CPU: $1% |") - --- Wifi state -wifiwidget = widget({ type = "textbox" }) -vicious.register(wifiwidget, vicious.widgets.wifi, " ${ssid}: ${link}% |", 31, "wlan0") - --- Alsa widget --- vol should be (math.log(vol/100)+1)*100 -sndwidget = widget({ type = "textbox" }) -vicious.register(sndwidget, vicious.widgets.volume, " Vol: $1% $2 |", 2, "Master") -sndwidget:buttons(awful.util.table.join( - awful.button({ }, 1, function () awful.util.spawn("amixer -q set Master toggle", false) end), - awful.button({ }, 3, function () awful.util.spawn("urxvt -e alsamixer", true) end), - awful.button({ }, 4, function () awful.util.spawn("amixer -q set Master 1dB+", false) end), - awful.button({ }, 5, function () awful.util.spawn("amixer -q set Master 1dB-", false) end) - )) --- }}} - --- {{{ Wibox --- Create a textclock widget ---mytextclock = awful.widget.textclock({ align = "right" }) -mytextclock = awful.widget.textclock({ align = "right" }, " %a %b %d, %H:%M:%S ", 1) - --- Create a systray -mysystray = widget({ type = "systray" }) - --- Create a wibox for each screen and add it -mywibox = {} -mypromptbox = {} -mylayoutbox = {} -mytaglist = {} -mytaglist.buttons = awful.util.table.join( - awful.button({ }, 1, awful.tag.viewonly), - awful.button({ modkey }, 1, awful.client.movetotag), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, awful.client.toggletag), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) - ) -mytasklist = {} -mytasklist.buttons = awful.util.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - if not c:isvisible() then - awful.tag.viewonly(c:tags()[1]) - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), - awful.button({ }, 3, function () - if instance then - instance:hide() - instance = nil - else - instance = awful.menu.clients({ width=250 }) - end - end), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - if client.focus then client.focus:raise() end - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end)) - -for s = 1, screen.count() do - -- Create a promptbox for each screen - mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright }) - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. - mylayoutbox[s] = awful.widget.layoutbox(s) - mylayoutbox[s]:buttons(awful.util.table.join( - awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end), - awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end), - awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end))) - -- Create a taglist widget - mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons) - - -- Create a tasklist widget - mytasklist[s] = awful.widget.tasklist(function(c) - return awful.widget.tasklist.label.currenttags(c, s) - end, mytasklist.buttons) - - -- Create the wibox - mywibox[s] = awful.wibox({ position = "top", screen = s }) - -- Add widgets to the wibox - order matters - mywibox[s].widgets = { - { - mylauncher, - mytaglist[s], - mypromptbox[s], - layout = awful.widget.layout.horizontal.leftright - }, - mylayoutbox[s], - mytextclock, - memwidget, - cpuwidget, - sndwidget, - wifiwidget, - s == 1 and mysystray or nil, - mytasklist[s], - layout = awful.widget.layout.horizontal.rightleft - } -end --- }}} - --- {{{ Mouse bindings -root.buttons(awful.util.table.join( - awful.button({ }, 3, function () mymainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewnext), - awful.button({ }, 5, awful.tag.viewprev) -)) --- }}} - --- {{{ Key bindings -globalkeys = awful.util.table.join( - awful.key({ modkey, }, "Left", awful.tag.viewprev ), - awful.key({ modkey, }, "Right", awful.tag.viewnext ), - awful.key({ modkey, }, "Escape", awful.tag.history.restore), - - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - if client.focus then client.focus:raise() end - end), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - if client.focus then client.focus:raise() end - end), - awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end), - - -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto), - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end), - - -- Standard program - awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end), - awful.key({ modkey, "Control" }, "r", awesome.restart), - awful.key({ modkey, "Shift" }, "q", awesome.quit), - - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end), - awful.key({ modkey, }, "r", function () awful.layout.inc(layouts, 1) end), - awful.key({ modkey, "Shift" }, "r", function () awful.layout.inc(layouts, -1) end), - - awful.key({ modkey, "Control" }, "n", awful.client.restore), - - -- Custom application launchers - awful.key({ modkey, }, "b", function () awful.util.spawn("firefox") end), - awful.key({ modkey, }, "t", function () awful.util.spawn("tor-browser") end), - awful.key({ modkey, }, "z", function () awful.util.spawn("xscreensaver-command -lock") end), - - -- Prompt - awful.key({ modkey }, "space", function () mypromptbox[mouse.screen]:run() end), - - awful.key({ modkey }, "x", - function () - awful.prompt.run({ prompt = "Run Lua code: " }, - mypromptbox[mouse.screen].widget, - awful.util.eval, nil, - awful.util.getdir("cache") .. "/history_eval") - end) -) - -clientkeys = awful.util.table.join( - awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), - awful.key({ modkey, }, "o", awful.client.movetoscreen ), - awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), - awful.key({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end), - awful.key({ modkey, }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c.maximized_vertical = not c.maximized_vertical - end) -) - --- Compute the maximum number of digit we need, limited to 9 -keynumber = 0 -for s = 1, screen.count() do - keynumber = math.min(9, math.max(#tags[s], keynumber)); -end - --- Bind all key numbers to tags. --- Be careful: we use keycodes to make it works on any keyboard layout. --- This should map on the top row of your keyboard, usually 1 to 9. -for i = 1, keynumber do - globalkeys = awful.util.table.join(globalkeys, - awful.key({ modkey }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewonly(tags[screen][i]) - end - end), - awful.key({ modkey, "Control" }, "#" .. i + 9, - function () - local screen = mouse.screen - if tags[screen][i] then - awful.tag.viewtoggle(tags[screen][i]) - end - end), - awful.key({ modkey, "Shift" }, "#" .. i + 9, - function () - if client.focus and tags[client.focus.screen][i] then - awful.client.movetotag(tags[client.focus.screen][i]) - end - end), - awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function () - if client.focus and tags[client.focus.screen][i] then - awful.client.toggletag(tags[client.focus.screen][i]) - end - end)) -end - -clientbuttons = awful.util.table.join( - awful.button({ }, 1, function (c) client.focus = c; c:raise() end), - awful.button({ modkey }, 1, awful.mouse.client.move), - awful.button({ modkey }, 3, awful.mouse.client.resize)) - --- Set keys -root.keys(globalkeys) --- }}} - --- {{{ Rules -awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = true, - keys = clientkeys, - buttons = clientbuttons } }, - { rule = { class = "MPlayer" }, - properties = { floating = true } }, - { rule = { class = "pinentry" }, - properties = { floating = true } }, - { rule = { class = "gimp" }, - properties = { floating = true } }, - -- Set Firefox to always map on tags number 2 of screen 1. - -- { rule = { class = "Firefox" }, - -- properties = { tag = tags[1][2] } }, -} --- }}} - --- {{{ Signals --- Signal function to execute when a new client appears. -client.add_signal("manage", function (c, startup) - -- Add a titlebar - -- awful.titlebar.add(c, { modkey = modkey }) - - -- Enable sloppy focus - c:add_signal("mouse::enter", function(c) - if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier - and awful.client.focus.filter(c) then - client.focus = c - end - end) - - if not startup then - -- Set the windows at the slave, - -- i.e. put it at the end of others instead of setting it master. - -- awful.client.setslave(c) - - -- Put windows in a smart way, only if they does not set an initial position. - if not c.size_hints.user_position and not c.size_hints.program_position then - awful.placement.no_overlap(c) - awful.placement.no_offscreen(c) - end - end -end) - -client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end) -client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) --- }}} diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc @@ -1,36 +0,0 @@ -#!/bin/bash -# -# BSPWM config file -# - -bspc config border_width 2 -bspc config window_gap 10 - -bspc monitor -d 1 2 3 4 5 - -bspc config top_padding 30 - -bspc config split_ratio 0.5 -bspc config gapless_monocle true -bspc config borderless_monocle true - -bspc config focus_follows_pointer true - -bspc config focused_border_color \#202020 -bspc config active_border_color \#202020 -bspc config normal_border_color \#202020 -bspc config presel_border_color \#202020 - -bspc config focused_locked_border_color \#a54242 -bspc config active_locked_border_color \#a54242 -bspc config normal_locked_border_color \#a54242 - -bspc config focused_sticky_border_color \#8c9440 -bspc config active_sticky_border_color \#8c9440 -bspc config normal_sticky_border_color \#8c9440 - -bspc config focused_private_border_color \#85678f -bspc config active_private_border_color \#85678f -bspc config normal_private_border_color \#85678f - -bspc config urgent_border_color \#de935f diff --git a/.config/bspwm/panel/panel b/.config/bspwm/panel/panel @@ -1,132 +0,0 @@ -#!/bin/bash -# -# Bar Ain't Recursive panel -# by Ivan Sokolov -# - -WHITE=f8f8f8 -RED=a54242 -GREEN=8c9440 -BLACK=202020 -GRAY=404040 - -function A { - echo -n "%{A:$2:}$1%{A}" -} - -function B { - echo -n "%{B#ff$2}$1%{B-}" -} - -function F { - echo -n "%{F#ff$2}$1%{F-}" -} - -function o { - echo "%{+o}$1%{-o}" -} - -function u { - echo "%{+u}$1%{-u}" -} - -### - -DIV=$(F '|' $GRAY) - -### - -network() { - ping -c 1 8.8.8.8 >/dev/null 2>&1 && echo -n $(F + $GREEN) || echo -n $(F - $RED) -} - -calendar() { - #DATE=$(date -u +%d/%m/%y) - DATE=$(date -u +%Y-%m-%y) - echo -n $(F $DATE $WHITE) -} - -clock() { - TIME=$(date -u +%H:%M:%S) - echo -n $(F $TIME $WHITE) -} - -volume() { - #VOLUME=$(pamixer --get-volume) - VOLUME=$(amixer get Master | grep '\[' | awk '{ print $5; }' | sed 's/\[//' | sed 's/%\]//') - VCOLOR=$WHITE - #if [[ $(pamixer --get-mute) -eq 'true' ]] - #then - # VCOLOR=$WHITE - #else - # VCOLOR=$GRAY - #fi - #echo -n "$(A $(F $VOLUME $VCOLOR) volume)" - #echo -n "$(A $(F $VOLUME) volume)" - echo -n "v:$(A $VOLUME)" -} - -battery() { - BATTERY=$(acpi -b | awk '{gsub(/%,/,""); print $4}' | sed 's/%//g') - if [[ $BATTERY -gt 20 ]] - then - BCOLOR=$WHITE - else - BCOLOR=$RED - fi - echo -n b:$(F $BATTERY ff$BCOLOR) -} - -layout() { - #echo -n "$(A $(F $(xkb-switch) $WHITE) layout)" - echo -n "$(cat ~/.kbd-layout)" -} - -mpc_status() { - if [[ -n $(mpc | grep playing) ]] - then - echo -n "$(F "$(mpc current -f "[%title%]")" $WHITE) $DIV " - echo -n "$(F "$(mpc current -f "[%album%]")" $WHITE) $DIV " - echo -n "$(F "$(mpc current -f "[%artist%]")" $WHITE) " - else - echo -n '' - fi -} - -# echo -n "$(F "$(mpc current -f "[%title% $(F - $GRAY) %album% $(F - $GRAY) %artist%]|[%file%]")" $WHITE)" - -mpc_controls() { - echo -n '' -} - -while true -do - # Left - printf '%s' '%{l}' - # Desktops - for i in 1 2 3 4 5 - do - printf ' %s' "%{A:$i:}$(F \| $GRAY)$(F $i $WHITE)$(F \| $GRAY)%{A}" - done - - # Center - printf '%s' '%{c}' - printf '%s' "$(mpc_status)" - # printf '%s' "$(mpc_controls)" - - # Right - printf '%s' '%{r}' - printf ' %s' $(network) $DIV - printf ' %s' $(layout) $DIV - printf ' %s' $(volume) $DIV - printf ' %s' $(battery) $DIV - printf ' %s' $(clock) - printf ' %s \n' $(calendar) - - sleep 0.5s -done | bar \ #bar-aint-recursive \ - -F \#ff$WHITE \ - -B \#ff$BLACK \ - -g 1346x20+10+10 \ - | ~/.config/bspwm/spawner - #-f '-*-terminus-medium-r-normal-*-12-*-*-*-c-*-*-u' \ diff --git a/.config/bspwm/panel/panel_bar b/.config/bspwm/panel/panel_bar @@ -1,74 +0,0 @@ -#! /bin/sh -# -# Example panel for LemonBoy's bar - -. ~/.config/bspwm/panel/panel_colors - -num_mon=$(bspc query -M | wc -l) - -while read -r line ; do - case $line in - S*) - # clock output - sys_infos="%{F$COLOR_STATUS_FG}%{B$COLOR_STATUS_BG} ${line#?} %{B-}%{F-}" - ;; - T*) - # xtitle output - title="%{F$COLOR_TITLE_FG}%{B$COLOR_TITLE_BG} ${line#?} %{B-}%{F-}" - ;; - W*) - # bspwm internal state - wm_infos="" - IFS=':' - set -- ${line#?} - while [ $# -gt 0 ] ; do - item=$1 - name=${item#?} - case $item in - M*) - # active monitor - if [ $num_mon -gt 1 ] ; then - wm_infos="$wm_infos %{F$COLOR_ACTIVE_MONITOR_FG}%{B$COLOR_ACTIVE_MONITOR_BG} ${name} %{B-}%{F-} " - fi - ;; - m*) - # inactive monitor - if [ $num_mon -gt 1 ] ; then - wm_infos="$wm_infos %{F$COLOR_INACTIVE_MONITOR_FG}%{B$COLOR_INACTIVE_MONITOR_BG} ${name} %{B-}%{F-} " - fi - ;; - O*) - # focused occupied desktop - wm_infos="${wm_infos}%{F$COLOR_FOCUSED_OCCUPIED_FG}%{B$COLOR_FOCUSED_OCCUPIED_BG}%{U$COLOR_FOREGROUND}%{+u} ${name} %{-u}%{B-}%{F-}" - ;; - F*) - # focused free desktop - wm_infos="${wm_infos}%{F$COLOR_FOCUSED_FREE_FG}%{B$COLOR_FOCUSED_FREE_BG}%{U$COLOR_FOREGROUND}%{+u} ${name} %{-u}%{B-}%{F-}" - ;; - U*) - # focused urgent desktop - wm_infos="${wm_infos}%{F$COLOR_FOCUSED_URGENT_FG}%{B$COLOR_FOCUSED_URGENT_BG}%{U$COLOR_FOREGROUND}%{+u} ${name} %{-u}%{B-}%{F-}" - ;; - o*) - # occupied desktop - wm_infos="${wm_infos}%{F$COLOR_OCCUPIED_FG}%{B$COLOR_OCCUPIED_BG} ${name} %{B-}%{F-}" - ;; - f*) - # free desktop - wm_infos="${wm_infos}%{F$COLOR_FREE_FG}%{B$COLOR_FREE_BG} ${name} %{B-}%{F-}" - ;; - u*) - # urgent desktop - wm_infos="${wm_infos}%{F$COLOR_URGENT_FG}%{B$COLOR_URGENT_BG} ${name} %{B-}%{F-}" - ;; - L*) - # layout - wm_infos="$wm_infos %{F$COLOR_LAYOUT_FG}%{B$COLOR_LAYOUT_BG} ${name} %{B-}%{F-}" - ;; - esac - shift - done - ;; - esac - printf "%s\n" "%{l}${wm_infos}%{c}${title}%{r}${sys_infos}" -done diff --git a/.config/bspwm/panel/panel_colors b/.config/bspwm/panel/panel_colors @@ -1,24 +0,0 @@ -COLOR_FOREGROUND='#FFA3A6AB' -COLOR_BACKGROUND='#FF34322E' -COLOR_ACTIVE_MONITOR_FG='#FF34322E' -COLOR_ACTIVE_MONITOR_BG='#FF58C5F1' -COLOR_INACTIVE_MONITOR_FG='#FF58C5F1' -COLOR_INACTIVE_MONITOR_BG='#FF34322E' -COLOR_FOCUSED_OCCUPIED_FG='#FFF6F9FF' -COLOR_FOCUSED_OCCUPIED_BG='#FF5C5955' -COLOR_FOCUSED_FREE_FG='#FFF6F9FF' -COLOR_FOCUSED_FREE_BG='#FF6D561C' -COLOR_FOCUSED_URGENT_FG='#FF34322E' -COLOR_FOCUSED_URGENT_BG='#FFF9A299' -COLOR_OCCUPIED_FG='#FFA3A6AB' -COLOR_OCCUPIED_BG='#FF34322E' -COLOR_FREE_FG='#FF6F7277' -COLOR_FREE_BG='#FF34322E' -COLOR_URGENT_FG='#FFF9A299' -COLOR_URGENT_BG='#FF34322E' -COLOR_LAYOUT_FG='#FFA3A6AB' -COLOR_LAYOUT_BG='#FF34322E' -COLOR_TITLE_FG='#FFA3A6AB' -COLOR_TITLE_BG='#FF34322E' -COLOR_STATUS_FG='#FFA3A6AB' -COLOR_STATUS_BG='#FF34322E' diff --git a/.config/dwb/keys b/.config/dwb/keys @@ -1,175 +0,0 @@ -[default] -save_search_field= gs -tab_new= ga -allow_session_cookie_tmp= CT -allow_cookie= CC -allow_session_cookie= CS -bookmark= M -buffers= gt -cancel_download= ad -sanitize= -clear_tab= gc -only= co -close_tab= d -entry_escape=Control c -entry_confirm=Control g -entry_history_back=Control k -entry_history_forward=Control j -entry_delete_letter=Control h -entry_delete_active=Control d -entry_delete_line=Control u -entry_delete_line_end=Control e -entry_delete_word=Control w -entry_delete_word_forward=Control e -entry_word_back=Control b -entry_word_forward=Control f -complete_bookmarks=Control B -complete_history=Control H -complete_path=Control p -complete_searchengines=Control S -complete_userscript=Control U -download= gd -download_set_execute=Control x -command_mode= : -tabdo= -execute_javascript= -eval= -execute_userscript= eu -find_backward_ic= c? -find_backward= ? -find_forward_ic= c/ -find_forward= / -find_next= n -find_previous= N -tabgrep= -focus_input= gi -focus_next= J -focus_tab= T -focus_prev= K -win_hist_back= wh -tab_hist_back= th -history_back= H -win_hist_forward= wl -tab_hist_forward= tl -history_forward= L -insert_mode= i -jump=' -show_keys= Sk -load_html= -load_html_tab= -lock_domain= xd -lock_uri= xu -mark=` -tab_move_left= gl -tab_move_right= gr -tab_move= gm -normal_mode=Control n -open_editor=Control e -quickmark= b -tab_quickmark= B -win_quickmark= wb -start_page=Control h -web_inspector= wi -paste= pp -tab_paste= Pp -win_paste= wp -paste_primary= pP -win_paste_primary= wP -tab_paste_primary= PP -print=Control Mod1 p -protect=Control P -quit=Control q -adblock_reload_rules= -reload_bookmarks= -reload= r -reload_bypass_cache= R -reload_quickmarks= -reload_userscripts= -repeat=. -save= sf -save_session= ZZ -save_named_session= gZZ -save_quickmark= m -scroll_down= j -scroll_right= l -scroll_left= h -scroll_page_down=Control f -scroll_page_up=Control b -scroll_halfpage_down=Control d -scroll_halfpage_up=Control u -scroll_bottom= G -scroll_top= gg -scroll_up= k -local_set= -set= -set_key= sk -set_local_setting= sl -set_setting= ss -show_settings= Ss -print_preview= -show_bookmarks= Sb -show_downloads= Sd -show_history= Sh -show_quickmarks= Sq -stop_loading=Control s -toggle_local_setting= -toggle_setting= -toggle_tab=Control @Tab@ -toggle_plugins_host_tmp= pth -toggle_scripts_host= tsh -toggle_scripts_host_tmp= tth -toggle_scripts_uri= tsu -toggle_plugins_uri_tmp= ptu -toggle_scripts_uri_tmp= ttu -fullscreen= @F11@ -toggle_hidden_files= g. -toggle_plugins_host= ph -toggle_plugins_uri= pu -presentation_mode= @F12@ -proxy=Control p -visible= xv -toggle_bars= xx -toggle_statusbar= xb -toggle_tabbar= xt -undo= u -view_source= gf -visual_mode= v -dump= -yank_title= yt -yank_title_primary= yT -yank= yy -yank_primary= yY -zoom= = -zoom_in= + -zoom_out= - -hints_background= ;b -hints_images_background= ;Ib -hints_url_background= ;Ob -backopen_url= xO -backopen= xo -bookmarks= gb -hints_selector= -hints= f -hints_clipboard= ;y -hints_download= ;d -hints_editable= ;e -hints_images= ;i -hints_links= ;; -hints_primary= ;Y -hints_rapid= ;r -hints_url= ;o -new_tab=Control T -new_win= W -open_url= go -open= o -hints_tab= F -hints_images_tab= ;It -hints_url_tab= ;Ot -tab_bookmarks= gB -tabopen_url= gO -tabopen= O -hints_win= wf -hints_rapid_win= ;R -win_bookmarks= wB -winopen_url= wO -winopen= wo diff --git a/.config/dwb/searchengines b/.config/dwb/searchengines @@ -1,8 +0,0 @@ -startpage https://startpage.com/do/search?query=_dwb_search_submit_ -wikipedia https://en.wikipedia.org/w/index.php?search=_dwb_search_submit_&title=Special:Search -duckduckgo https://duckduckgo.com/?q=_dwb_search_submit_ -debian http://packages.debian.org/search?keywords=_dwb_search_submit_&searchon=names&suite=stable&section=all -scholar http://scholar.google.dk/scholar?hl=da&q=_dwb_search_submit_ -sb http://statsbiblioteket.dk/?query=_dwb_search_submit_ -wa https://www.wolframalpha.com/input/?i=_dwb_search_submit_&dataset= -julia http://docs.julialang.org/en/latest/search/?q=_dwb_search_submit_&check_keywords=yes&area=default diff --git a/.config/dwb/settings b/.config/dwb/settings @@ -1,163 +0,0 @@ -[default] -enable-private-browsing=false -enable-spell-checking=true -cookie-expiration=1h -cookies-accept-policy=nothirdparty -cookies-store-policy=persistent -minimum-font-size=6 -minimum-logical-font-size=6 -adblocker=true -javascript-can-access-clipboard=false -hint-offset-top=0 -file-sync-interval=120 -download-gradient-end=#00aa00 -status-allowed-color=#00ff00 -tab-number-color=#7ac5cd -enable-default-context-menu=true -editable=false -background-tabs=false -enable-webgl=false -enable-page-cache=false -cache-model=webbrowser -sans-serif-font-family=sans-serif -prompt-color=#00ff00 -complete-searchengines=false -update-search-delay=200 -fantasy-font-family=serif -hint-fg-color=#000000 -sync-files=all -default-height=600 -javascript-api=automatic -scrollbars=false -hint-bg-color=#ffffff -show-single-tab=true -private-color=#505050 -enable-developer-extras=false -complete-bookmarks=true -zoom-level=1.00 -download-use-external-program=false -enable-xss-auditor=true -custom-encoding= -print-previewer= -normal-completion-fg-color=#eeeeee -close-tab-focus-policy=left -enable-dns-prefetching=true -new-tab-position-policy=right -mouse-cycles-through-tabs=true -auto-shrink-images=true -print-backgrounds=true -enable-caret-browsing=false -enable-scripts=true -adblocker-filterlist=/home/adc/.config/dwb/adblock_lists -proxy=false -user-agent= -full-content-zoom=false -editor=xterm -e vim dwb_uri -hsts=false -enable-favicon=true -hint-active-color=#00ff00 -resizable-text-areas=true -javascript-schemes=true -load-on-focus=false -adblocker-element-hider=true -download-gradient-start=#0000aa -hint-normal-color=#ffff99 -spell-checking-languages= -font-nofocus= -status-blocked-color=#ffffff -enable-plugins=true -download-fg-color=#ffffff -tabbar-height=0 -enable-frame-flattening=false -statusbar-height=0 -ssl-use-system-ca-file=true -bars-padding=0 -active-completion-fg-color=#53868b -hint-font=bold 10px monospace -progress-bar-full-color=#ffffff -tabbed-browsing=true -hint-highlight-links=false -active-completion-bg-color=#000000 -font-hidden-statusbar=normal 10px helvetica -tab-normal-fg-color-2=#dddddd -tab-normal-fg-color-1=#cccccc -default-monospace-font-size=10 -save-session=true -enable-ipc=true -tabbar-visible=2 -auto-insert-mode=false -tab-normal-bg-color-2=#707070 -tab-normal-bg-color-1=#505050 -serif-font-family=serif -accept-language= -enable-html5-local-storage=true -tab-protected-color=#ff0000 -hint-letter-seq=FDSARTGBVECWXQYIOPMNHZULKJ -progress-bar-style=default -maximum-tabs=0 -passthrough-keys=webkit -enable-html5-database=true -hint-autofollow=true -enable-dom-paste=false -javascript-can-open-windows-automatically=false -max-visible-completions=11 -hint-border=1px solid #000000 -widget-packing=dtws -favicon-size=0 -ssl-trusted-color=#00ff00 -enable-java-applet=true -hints-key-lock=250 -navigation-history-max=500 -hint-style=letter -enable-site-specific-quirks=false -auto-resize-window=false -zoom-step=0.10 -default-font-family=sans-serif -ssl-untrusted-color=#ff0000 -plugin-blocker=true -startpage=dwb:bookmarks -normal-completion-bg-color=#151515 -cursive-font-family=serif -default-encoding= -error-color=#ff0000 -searchengine-submit-pattern= -hint-opacity=0.80 -font-entry= -proxy-url= -font=monospace 8 -monospace-font-family=monospace -addressbar-dns-lookup=false -enable-universal-access-from-file-uris=true -background-color=#000000 -do-not-track=true -progress-bar-empty-color=#ffffff -default-width=800 -single-instance=true -auto-completion=false -font-completion= -enable-spatial-navigation=false -block-insecure-content=false -download-directory= -download-external-command=xterm -e wget dwb_uri -O dwb_output --load-cookies dwb_cookies -user-stylesheet-uri= -auto-load-images=true -tab-active-fg-color=#ffffff -hint-offset-left=0 -history-length=500 -tab-active-bg-color=#000000 -download-bg-color=#000000 -download-no-confirm=false -enable-file-access-from-file-uris=true -complete-history=true -close-last-tab-policy=ignore -tab-key-cycles-through-elements=true -enforce-96-dpi=false -ssl-strict=true -scroll-step=0.00 -complete-userscripts=false -foreground-color=#ffffff -message-delay=2 -scheme-handler= -default-font-size=12 -enable-offline-web-application-cache=true -enable-accelerated-compositing=false diff --git a/.config/dwb/userscripts/wget b/.config/dwb/userscripts/wget @@ -1,3 +0,0 @@ -#!/bin/bash -# dwb: Control w -wget $DWB_URI diff --git a/.config/dwb/userscripts/youtube-mplayer b/.config/dwb/userscripts/youtube-mplayer @@ -1,8 +0,0 @@ -#!/bin/bash -# dwb: Control y -tmpdir=~/tmp -tmpfile=youtube.mp4 -mkdir -p $tmpdir -rm -rf $tmpdir/$tmpfile -youtube-dl --output $tmpdir/$tmpfile $DWB_URI > $tmpdir/youtube-dl.log 2>&1 -mplayer $tmpdir/$tmpfile >> $tmpdir/youtube-dl.log 2>&1 diff --git a/.config/gopass/config.yml b/.config/gopass/config.yml @@ -1,19 +0,0 @@ -root: - askformore: false - autoclip: true - autoimport: true - autosync: true - check_recipient_hash: false - cliptimeout: 45 - concurrency: 1 - editrecipients: false - nocolor: false - noconfirm: true - nopager: false - notifications: true - path: gpgcli-gitcli-fs+file:///Users/ad/.password-store - recipient_hash: - .gpg-id: 3078423739304634414431424638353846450aa69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 - safecontent: false - usesymbols: false -mounts: {} diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf @@ -1,860 +0,0 @@ -# vim:fileencoding=utf-8:ft=conf:foldmethod=marker - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -font_family PragmataPro -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. By default they are derived automatically, by the OSes -#: font system. Setting them manually is useful for font families that -#: have many weight variants like Book, Medium, Thick, etc. For -#: example:: - -#: font_family Operator Mono Book -#: bold_font Operator Mono Medium -#: italic_font Operator Mono Book Italic -#: bold_italic_font Operator Mono Medium Italic - -# font_size 11.0 -font_size 15.0 - -#: Font size (in pts) - -# adjust_line_height 0 -# adjust_column_width 0 - -#: Change the size of each character cell kitty renders. You can use -#: either numbers, which are interpreted as pixels or percentages -#: (number followed by %), which are interpreted as percentages of the -#: unmodified values. You can use negative pixels or percentages less -#: than 100% to reduce sizes (but this might cause rendering -#: artifacts). - -# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols - -#: Map the specified unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each unicode code -#: point is specified in the form U+<code point in hexadecimal>. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. symbol_map itself can be specified multiple -#: times. Syntax is:: - -#: symbol_map codepoints Font Family Name - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: Change the sizes of the lines used for the box drawing unicode -#: characters These values are in pts. They will be scaled by the -#: monitor DPI to arrive at a pixel value. There must be four values -#: corresponding to thin, normal, thick, and very thick lines. - -#: }}} - -#: Cursor customization {{{{{{{{{ - -# cursor #cccccc -cursor #f036d2 - -#: Default cursor color - -# cursor_text_color #111111 -cursor_text_color #000000 - -#: Choose the color of text under the cursor. If you want it rendered -#: with the background color of the cell underneath instead, use the -#: special keyword: background - -cursor_shape block - -#: The cursor shape can be one of (block, beam, underline) - -# cursor_blink_interval 0.5 -# cursor_stop_blinking_after 15.0 -cursor_blink_interval 0 - -#: The interval (in seconds) at which to blink the cursor. Set to zero -#: to disable blinking. Note that numbers smaller than repaint_delay -#: will be limited to repaint_delay. Stop blinking cursor after the -#: specified number of seconds of keyboard inactivity. Set to zero to -#: never stop blinking. - -#: }}} -# }}} -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. - -# wheel_scroll_multiplier 5.0 - -#: Modify the amount scrolled by the mouse wheel. Note this is only -#: used for low precision scrolling devices, not for high precision -#: scrolling on platforms such as macOS and Wayland. Use negative -#: numbers to change scroll direction. - -#: }}}}}} - -#: Mouse {{{ - -# url_color #0087BD -# url_style curly -url_style single - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, single, double, curly - -# open_url_modifiers kitty_mod - -#: The modifier keys to press when clicking with the mouse on URLs to -#: open the URL - -# open_url_with default - -#: The program with which to open URLs that are clicked on. The -#: special value default means to use the operating system's default -#: URL handler. - -# copy_on_select no - -#: Copy to clipboard on select. With this enabled, simply selecting -#: text with the mouse will cause the text to be copied to clipboard. -#: Useful on platforms such as macOS/Wayland that do not have the -#: concept of primary selections. Note that this is a security risk, -#: as all programs, including websites open in your browser can read -#: the contents of the clipboard. - -# rectangle_select_modifiers ctrl+alt - -#: The modifiers to use rectangular selection (i.e. to select text in -#: a rectangular block with the mouse) - -# select_by_word_characters :@-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alpha-numeric character in the unicode database will be matched. - -# click_interval 0.5 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds) - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay (in milliseconds) between screen updates. Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS you have to either -#: set sync_to_monitor to no or use a monitor with a high refresh -#: rate. - -# input_delay 3 - -#: Delay (in milliseconds) before input from the program running in -#: the terminal is processed. Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing) -#: when scrolling. However, it limits the rendering speed to the -#: refresh rate of your monitor. With a very high speed mouse/high -#: keyboard repeat rate, you may notice some slight input latency. If -#: so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes -enable_audio_bell no - -#: Enable/disable the audio bell. Useful in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: Visual bell duration. Flash the screen when a bell occurs for the -#: specified number of seconds. Set to zero to disable. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on linux. - -# bell_on_tab yes - -#: Show a bell symbol on the tab if a bell occurs in one of the -#: windows in the tab and the window is not the currently focused -#: window - -#: }}} - -#: Window layout {{{ - -# remember_window_size yes -# initial_window_width 640 -# initial_window_height 400 - -#: If enabled, the window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# enabled_layouts * - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value * means all layouts. The first listed layout will -#: be used as the startup layout. For a list of available layouts, see -#: the https://sw.kovidgoyal.net/kitty/index.html#layouts. - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing windows. The cells value is used for horizontal resizing -#: and the lines value for vertical resizing. - -# window_border_width 1.0 - -#: The width (in pts) of window borders. Will be rounded to the -#: nearest number of pixels based on screen resolution. Note that -#: borders are displayed only when more than one window is visible. -#: They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: minimum needed borders for inactive windows are drawn. That is only -#: the borders that separate the inactive window from a neighbor. Note -#: that setting a non-zero window margin overrides this and causes all -#: borders to be drawn. - -# window_margin_width 0.0 - -#: The window margin (in pts) (blank area outside the border) - -# single_window_margin_width -1000.0 - -#: The window margin (in pts) to use when only a single window is -#: visible. Negative values will cause the value of -#: window_margin_width to be used instead. - -# window_padding_width 0.0 - -#: The window padding (in pts) (blank area between the text and the -#: window border) - -# active_border_color #00ff00 - -#: The color for the border of the active window - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: Which edge to show the tab bar on, top or bottom - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts) - -# tab_bar_style fade - -#: The tab bar style, can be one of: fade or separator. In the fade -#: style, each tab's edges fade into the background color, in the -#: separator style, tabs are separated by a configurable separator. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 -foreground #c5c8c6 -background #1d1f21 - -#: The foreground and background colors - -# background_opacity 1.0 -# dynamic_background_opacity no - -#: The opacity of the background. A number between 0 and 1, where 1 is -#: opaque and 0 is fully transparent. This will only work if -#: supported by the OS (for instance, when using a compositor under -#: X11). Note that it only sets the default background color's -#: opacity. This is so that things like the status bar in vim, -#: powerline prompts, etc. still look good. But it means that if you -#: use a color theme with a background color in your editor, it will -#: not be rendered as transparent. Instead you should change the -#: default background color in your kitty config and not use a -#: background color in the editor color scheme. Or use the escape -#: codes to set the terminals default colors in a shell script to -#: launch your editor. Be aware that using a value less than 1.0 is a -#: (possibly significant) performance hit. If you want to dynamically -#: change transparency of windows set dynamic_background_opacity to -#: yes (this is off by default as it has a performance cost) - -# dim_opacity 0.75 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #FFFACD - -#: The foreground and background for text selected with the mouse - - -#: The 16 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version. You can also set the remaining colors from -#: the 256 color table as color16 to color255. - -# color0 #000000 -# color8 #767676 -color0 #434944 -color8 #6c6d6b - -#: black - -# color1 #cc0403 -# color9 #f2201f -color1 #da5673 -color9 #dba2b4 - -#: red - -# color2 #19cb00 -# color10 #23fd00 -color2 #8cc16d -color10 #898e38 - -#: green - -# color3 #cecb00 -# color11 #fffd00 -color3 #eebf35 -color11 #8a6b3d - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff -color4 #5cabdc -color12 #126b8c - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff -color5 #b595cf -color13 #7457a2 - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff -color6 #44a9ba -color14 #87c7d4 - -#: cyan - -# color7 #dddddd -# color15 #ffffff -color7 #fbfbf8 -color15 #bfc2bc - -#: white - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login to ensure that the shell starts in interactive mode and -#: reads its startup rc files. - -# editor . - -#: The console editor to use when editing the kitty config file or -#: similar tasks. A value of . means to use the environment variable -#: EDITOR. Note that this environment variable has to be set not just -#: in your shell startup scripts but system-wide, otherwise kitty will -#: not see it. - -# close_on_child_death no - -#: Close the window when the child process (shell) exits. If no (the -#: default), the terminal will remain open when the child exits as -#: long as there are still processes outputting to the terminal (for -#: example disowned or backgrounded processes). If yes, the window -#: will close as soon as the child process exits. Note that setting it -#: to yes means that any background processes still using the terminal -#: can fail silently because their stdout/stderr/stdin no longer work. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over ssh -#: connections. - -# env - -#: Specify environment variables to set in all child processes. Note -#: that environment variables are expanded recursively, so if you -#: use:: - -#: env MYVAR1=a -#: env MYVAR2=${MYVAR}/${HOME}/b - -#: The value of MYVAR2 will be a/<path to home directory>/b. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session command line option for -#: individual instances. See -#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty -#: documentation for details. Note that relative paths are interpreted -#: with respect to the kitty config directory. Environment variables -#: in the path are expanded. - -# clipboard_control write-clipboard write-primary - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: set of possible actions is: write-clipboard read-clipboard write- -#: primary read-primary The default is to allow writing to the -#: clipboard and primary selection. Note that enabling the read -#: functionality is a security risk as it means that any program, even -#: one running on a remote server via SSH can read your clipboard. - -# term xterm-kitty -term xterm-256color - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on Stack Overflow -#: to change it. - -#: }}} - -#: OS specific tweaks {{{ - -# macos_titlebar_color system - -#: Change the color of the kitty window's titlebar on macOS. A value -#: of system means to use the default system color, a value of -#: background means to use the background color of the currently -#: active window and finally you can use an arbitrary color, such as -#: #12af59 or red. WARNING: This option works by using a hack, as -#: there is no proper Cocoa API for it. It sets the background color -#: of the entire window and makes the titlebar transparent. As such it -#: is incompatible with background_opacity. If you want to use both, -#: you are probably better off just hiding the titlebar with -#: macos_hide_titlebar. - -# macos_hide_titlebar no -macos_hide_titlebar yes - -#: Hide the kitty window's title bar on macOS. - -# x11_hide_window_decorations no -x11_hide_window_decorations yes - -#: Hide the window decorations (title bar and window borders) on X11 -#: and Wayland. Whether this works and exactly what effect it has -#: depends on the window manager, as it is the job of the window -#: manager/compositor to draw window decorations. - -# macos_option_as_alt yes - -#: Use the option key as an alt key. With this set to no, kitty will -#: use the macOS native Option+Key = unicode character behavior. This -#: will break any Alt+key keyboard shortcuts in your terminal -#: programs, but you can use the macOS unicode input technique. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks (Option+Tab) on macOS. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed. By -#: default, kitty will stay running, even with no open windows, as is -#: the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level (OS) windows to not be -#: resizable on macOS. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: For a list of key names, see: GLFW keys -#: <http://www.glfw.org/docs/latest/group__keys.html>. The name to use -#: is the part after the GLFW_KEY_ prefix. For a list of modifier -#: names, see: GLFW mods -#: <http://www.glfw.org/docs/latest/group__mods.html> - -#: On Linux you can also use XKB key names to bind keys that are not -#: supported by GLFW. See XKB keys -#: <https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon- -#: keysyms.h> for a list of key names. The name to use is the part -#: after the XKB_KEY_ prefix. Note that you should only use an XKB key -#: name for keys that are not present in the list of GLFW keys. - -#: You can use the special action no_op to unmap a keyboard shortcut -#: that is assigned in the default configuration. - -#: You can combine multiple actions to be triggered by a single -#: shortcut, using the syntax below:: - -#: map key combine <separator> action1 <separator> action2 <separator> action3 ... - -#: For example:: - -#: map kitty_mod+e combine : new_window : next_layout - -#: this will create a new window and switch to the next available -#: layout - -#: You can use multi-key shortcuts using the syntax shown below:: - -#: map key1>key2>key3 action - -#: For example:: - -#: map ctrl+f>2 set_font_size 20 - -# kitty_mod ctrl+shift - -#: The value of kitty_mod is used as the modifier for all default -#: shortcuts, you can change it in your kitty.conf to change the -#: modifiers for all the default shortcuts. - -# clear_all_shortcuts no - -#: You can have kitty remove all shortcut definition seen up to this -#: point. Useful, for instance, to remove the default shortcuts. - -#: Clipboard {{{ - -# map cmd+c copy_to_clipboard -# map kitty_mod+c copy_to_clipboard -# map cmd+v paste_from_clipboard -# map kitty_mod+v paste_from_clipboard -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection -# map kitty_mod+o pass_selection_to_program - -#: You can also pass the contents of the current selection to any -#: program using pass_selection_to_program. By default, the system's -#: open program is used, but you can specify your own, for example:: - -#: map kitty_mod+o pass_selection_to_program firefox - -#: You can pass the current selection to a terminal program running in -#: a new kitty window, by using the @selection placeholder:: - -#: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map kitty_mod+page_up scroll_page_up -# map kitty_mod+page_down scroll_page_down -# map kitty_mod+home scroll_home -# map kitty_mod+end scroll_end -# map kitty_mod+h show_scrollback - -#: You can send the contents of the current screen + history buffer as -#: stdin to an arbitrary program using the placeholders @text (which -#: is the plain text) and @ansi (which includes text styling escape -#: codes). For only the current screen, use @screen or @ansi_screen. -#: For example, the following command opens the scrollback buffer in -#: less in a new window:: - -#: map kitty_mod+y new_window @ansi less +G -R - -#: }}} - -#: Window management {{{ - -# map kitty_mod+enter new_window - -#: You can open a new window running an arbitrary program, for -#: example:: - -#: map kitty_mod+y new_window mutt - map kitty_mod+y new_window mutt - -#: You can open a new window with the current working directory set to -#: the working directory of the current window using:: - -#: map ctrl+alt+enter new_window_with_cwd - map ctrl+alt+enter new_window_with_cwd - -#: You can open a new window that is allowed to control kitty via the -#: kitty remote control facility by prefixing the command line with @. -#: Any programs running in that window will be allowed to control -#: kitty. For example:: - -#: map ctrl+enter new_window @ some_program - -# map cmd+n new_os_window -# map kitty_mod+n new_os_window -# map kitty_mod+w close_window -# map kitty_mod+] next_window -# map kitty_mod+[ previous_window -# map kitty_mod+f move_window_forward -# map kitty_mod+b move_window_backward -# map kitty_mod+` move_window_to_top -# map kitty_mod+r start_resizing_window -# map kitty_mod+1 first_window -# map kitty_mod+2 second_window -# map kitty_mod+3 third_window -# map kitty_mod+4 fourth_window -# map kitty_mod+5 fifth_window -# map kitty_mod+6 sixth_window -# map kitty_mod+7 seventh_window -# map kitty_mod+8 eighth_window -# map kitty_mod+9 ninth_window -# map kitty_mod+0 tenth_window -#: }}} - -#: Tab management {{{ - -# map ctrl+tab next_tab -# map kitty_mod+right next_tab -# map kitty_mod+left previous_tab -# map kitty_mod+t new_tab -# map kitty_mod+q close_tab -# map kitty_mod+. move_tab_forward -# map kitty_mod+, move_tab_backward -# map kitty_mod+alt+t set_tab_title - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and use -#: new_tab_with_cwd. -#: }}} - -#: Layout management {{{ - -# map kitty_mod+l next_layout - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty windows at a -#: time or only the current one. - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+backspace change_font_size all 0 - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current window's font size:: - -#: map kitty_mod+f6 change_font_size current 10.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -# map kitty_mod+e kitten hints - -#: Open a currently visible URL using the keyboard. The program used -#: to open the URL is specified in open_url_with. - -# map kitty_mod+p>f kitten hints --type path --program - - -#: Select a path/filename and insert it into the terminal. Useful, for -#: instance to run git commands on a filename output from a previous -#: git command. - -# map kitty_mod+p>shift+f kitten hints --type path - -#: Select a path/filename and open it with the default open program. - -# map kitty_mod+p>l kitten hints --type line --program - - -#: Select a line of text and insert it into the terminal. Use for the -#: output of things like: ls -1 - -# map kitty_mod+p>w kitten hints --type word --program - - -#: Select words and insert into terminal. - -# map kitty_mod+p>h kitten hints --type hash --program - - -#: Select something that looks like a hash and insert it into the -#: terminal. Useful with git, which uses sha1 hashes to identify -#: commits - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see kittens/hints. -#: }}} - -#: Miscellaneous {{{ - -# map kitty_mod+f11 toggle_fullscreen -# map kitty_mod+u kitten unicode_input -# map kitty_mod+f2 edit_config_file -# map kitty_mod+escape kitty_shell window - -#: Open the kitty shell in a new window/tab/overlay/os_window to -#: control kitty using commands. - -# map kitty_mod+a>m set_background_opacity +0.1 -# map kitty_mod+a>l set_background_opacity -0.1 -# map kitty_mod+a>1 set_background_opacity 1 -# map kitty_mod+a>d set_background_opacity default -# map kitty_mod+delete clear_terminal reset active - -#: You can create shortcuts to clear/reset the terminal. For example:: - -#: map kitty_mod+f9 clear_terminal reset active -#: map kitty_mod+f10 clear_terminal clear active -#: map kitty_mod+f11 clear_terminal scrollback active - -#: These will reset screen/clear screen/clear screen+scrollback -#: respectively. If you want to operate on all windows instead of just -#: the current one, use all instead of :italic`active`. - - -#: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#: client program when pressing specified shortcut keys. For example:: - -#: map ctrl+alt+a send_text all Special text - -#: This will send "Special text" when you press the ctrl+alt+a key -#: combination. The text to be sent is a python string literal so you -#: can use escapes like \x1b to send control codes or \u21fb to send -#: unicode characters (or you can just input the unicode characters -#: directly as UTF-8 text). The first argument to send_text is the -#: keyboard modes in which to activate the shortcut. The possible -#: values are normal or application or kitty or a comma separated -#: combination of them. The special keyword all means all modes. The -#: modes normal and application refer to the DECCKM cursor key mode -#: for terminals, and kitty refers to the special kitty extended -#: keyboard protocol. - -#: Another example, that outputs a word and then moves the cursor to -#: the start of the line (same as pressing the Home key):: - -#: map ctrl+alt+a send_text normal Word\x1b[H -#: map ctrl+alt+a send_text application Word\x1bOH - -#: }}} - -# }}} diff --git a/.config/luakit/binds.lua b/.config/luakit/binds.lua @@ -1,588 +0,0 @@ ------------------ --- Keybindings -- ------------------ - --- Binding aliases -local key, buf, but = lousy.bind.key, lousy.bind.buf, lousy.bind.but -local cmd, any = lousy.bind.cmd, lousy.bind.any - --- Util aliases -local match, join = string.match, lousy.util.table.join -local strip, split = lousy.util.string.strip, lousy.util.string.split - --- Globals or defaults that are used in binds -local scroll_step = globals.scroll_step or 20 -local zoom_step = globals.zoom_step or 0.1 - --- Add binds to a mode -function add_binds(mode, binds, before) - assert(binds and type(binds) == "table", "invalid binds table type: " .. type(binds)) - mode = type(mode) ~= "table" and {mode} or mode - for _, m in ipairs(mode) do - local mdata = get_mode(m) - if mdata and before then - mdata.binds = join(binds, mdata.binds or {}) - elseif mdata then - mdata.binds = mdata.binds or {} - for _, b in ipairs(binds) do table.insert(mdata.binds, b) end - else - new_mode(m, { binds = binds }) - end - end -end - --- Add commands to command mode -function add_cmds(cmds, before) - add_binds("command", cmds, before) -end - --- Adds the default menu widget bindings to a mode -menu_binds = { - -- Navigate items - key({}, "j", function (w) w.menu:move_down() end), - key({}, "k", function (w) w.menu:move_up() end), - key({}, "Down", function (w) w.menu:move_down() end), - key({}, "Up", function (w) w.menu:move_up() end), - key({}, "Tab", function (w) w.menu:move_down() end), - key({"Shift"}, "Tab", function (w) w.menu:move_up() end), -} - --- Add binds to special mode "all" which adds its binds to all modes. -add_binds("all", { - key({}, "Escape", "Return to `normal` mode.", - function (w) w:set_mode() end), - - key({"Control"}, "[", "Return to `normal` mode.", - function (w) w:set_mode() end), - - -- Mouse bindings - but({}, 8, "Go back.", - function (w) w:back() end), - - but({}, 9, "Go forward.", - function (w) w:forward() end), - - -- Open link in new tab or navigate to selection - but({}, 2, [[Open link under mouse cursor in new tab or navigate to the - contents of `luakit.selection.primary`.]], - function (w, m) - -- Ignore button 2 clicks in form fields - if not m.context.editable then - -- Open hovered uri in new tab - local uri = w.view.hovered_uri - if uri then - w:new_tab(uri, false) - else -- Open selection in current tab - uri = luakit.selection.primary - if uri then w:navigate(w:search_open(uri)) end - end - end - end), - - -- Open link in new tab when Ctrl-clicked. - but({"Control"}, 1, "Open link under mouse cursor in new tab.", - function (w, m) - local uri = w.view.hovered_uri - if uri then - w:new_tab(uri, false) - end - end), - - -- Zoom binds - but({"Control"}, 4, "Increase text zoom level.", - function (w, m) w:zoom_in() end), - - but({"Control"}, 5, "Reduce text zoom level.", - function (w, m) w:zoom_out() end), - - -- Horizontal mouse scroll binds - but({"Shift"}, 4, "Scroll left.", - function (w, m) w:scroll{ xrel = -scroll_step } end), - - but({"Shift"}, 5, "Scroll right.", - function (w, m) w:scroll{ xrel = scroll_step } end), -}) - -add_binds("normal", { - -- Autoparse the `[count]` before a binding and re-call the hit function - -- with the count removed and added to the opts table. - any([[Meta-binding to detect the `^[count]` syntax. The `[count]` is parsed - and stripped from the internal buffer string and the value assigned to - `state.count`. Then `lousy.bind.hit()` is re-called with the modified - buffer string & original modifier state. - - #### Example binding - - lousy.bind.key({}, "%", function (w, state) - w:scroll{ ypct = state.count } - end, { count = 0 }) - - This binding demonstrates several concepts. Firstly that you are able to - specify per-binding default values of `count`. In this case if the user - types `"%"` the document will be scrolled vertically to `0%` (the top). - - If the user types `"100%"` then the document will be scrolled to `100%` - (the bottom). All without the need to use `lousy.bind.buf` bindings - everywhere and or using a `^(%d*)` pattern prefix on every binding which - would like to make use of the `[count]` syntax.]], - function (w, m) - local count, buf - if m.buffer then - count = string.match(m.buffer, "^(%d+)") - end - if count then - buf = string.sub(m.buffer, #count + 1, (m.updated_buf and -2) or -1) - local opts = join(m, {count = tonumber(count)}) - opts.buffer = (#buf > 0 and buf) or nil - if lousy.bind.hit(w, m.binds, m.mods, m.key, opts) then - return true - end - end - return false - end), - - key({}, "i", "Enter `insert` mode.", - function (w) w:set_mode("insert") end), - - key({}, ":", "Enter `command` mode.", - function (w) w:set_mode("command") end), - - -- Scrolling - key({}, "j", "Scroll document down.", - function (w) w:scroll{ yrel = scroll_step } end), - - key({}, "k", "Scroll document up.", - function (w) w:scroll{ yrel = -scroll_step } end), - - key({}, "h", "Scroll document left.", - function (w) w:scroll{ xrel = -scroll_step } end), - - key({}, "l", "Scroll document right.", - function (w) w:scroll{ xrel = scroll_step } end), - - key({}, "Down", "Scroll document down.", - function (w) w:scroll{ yrel = scroll_step } end), - - key({}, "Up", "Scroll document up.", - function (w) w:scroll{ yrel = -scroll_step } end), - - key({}, "Left", "Scroll document left.", - function (w) w:scroll{ xrel = -scroll_step } end), - - key({}, "Right", "Scroll document right.", - function (w) w:scroll{ xrel = scroll_step } end), - - key({}, "^", "Scroll to the absolute left of the document.", - function (w) w:scroll{ x = 0 } end), - - key({}, "$", "Scroll to the absolute right of the document.", - function (w) w:scroll{ x = -1 } end), - - key({}, "0", "Scroll to the absolute left of the document.", - function (w, m) - if not m.count then w:scroll{ y = 0 } else return false end - end), - - key({"Control"}, "e", "Scroll document down.", - function (w) w:scroll{ yrel = scroll_step } end), - - key({"Control"}, "y", "Scroll document up.", - function (w) w:scroll{ yrel = -scroll_step } end), - - key({"Control"}, "d", "Scroll half page down.", - function (w) w:scroll{ ypagerel = 0.5 } end), - - key({"Control"}, "u", "Scroll half page up.", - function (w) w:scroll{ ypagerel = -0.5 } end), - - key({"Control"}, "f", "Scroll page down.", - function (w) w:scroll{ ypagerel = 1.0 } end), - - key({"Control"}, "b", "Scroll page up.", - function (w) w:scroll{ ypagerel = -1.0 } end), - - key({}, "space", "Scroll page down.", - function (w) w:scroll{ ypagerel = 1.0 } end), - - key({"Shift"}, "space", "Scroll page up.", - function (w) w:scroll{ ypagerel = -1.0 } end), - - key({}, "BackSpace", "Scroll page up.", - function (w) w:scroll{ ypagerel = -1.0 } end), - - key({}, "Page_Down", "Scroll page down.", - function (w) w:scroll{ ypagerel = 1.0 } end), - - key({}, "Page_Up", "Scroll page up.", - function (w) w:scroll{ ypagerel = -1.0 } end), - - key({}, "Home", "Go to the end of the document.", - function (w) w:scroll{ y = 0 } end), - - key({}, "End", "Go to the top of the document.", - function (w) w:scroll{ y = -1 } end), - - -- Specific scroll - buf("^gg$", "Go to the top of the document.", - function (w, b, m) w:scroll{ ypct = m.count } end, {count=0}), - - buf("^G$", "Go to the bottom of the document.", - function (w, b, m) w:scroll{ ypct = m.count } end, {count=100}), - - buf("^%%$", "Go to `[count]` percent of the document.", - function (w, b, m) w:scroll{ ypct = m.count } end), - - -- Zooming - key({}, "+", "Enlarge text zoom of the current page.", - function (w, m) w:zoom_in(zoom_step * m.count) end, {count=1}), - - key({}, "-", "Reduce text zom of the current page.", - function (w, m) w:zoom_out(zoom_step * m.count) end, {count=1}), - - key({}, "=", "Reset zoom level.", - function (w, m) w:zoom_set() end), - - buf("^z[iI]$", [[Enlarge text zoom of current page with `zi` or `zI` to - reduce full zoom.]], - function (w, b, m) - w:zoom_in(zoom_step * m.count, b == "zI") - end, {count=1}), - - buf("^z[oO]$", [[Reduce text zoom of current page with `zo` or `zO` to - reduce full zoom.]], - function (w, b, m) - w:zoom_out(zoom_step * m.count, b == "zO") - end, {count=1}), - - -- Zoom reset or specific zoom ([count]zZ for full content zoom) - buf("^z[zZ]$", [[Set current page zoom to `[count]` percent with - `[count]zz`, use `[count]zZ` to set full zoom percent.]], - function (w, b, m) - w:zoom_set(m.count/100, b == "zZ") - end, {count=100}), - - -- Fullscreen - key({}, "F11", "Toggle fullscreen mode.", - function (w) w.win.fullscreen = not w.win.fullscreen end), - - -- Clipboard - key({}, "p", [[Open a URL based on the current primary selection contents - in the current tab.]], - function (w) - local uri = luakit.selection.primary - if not uri then w:notify("No primary selection...") return end - w:navigate(w:search_open(uri)) - end), - - key({}, "P", [[Open a URL based on the current primary selection contents - in `[count=1]` new tab(s).]], - function (w, m) - local uri = luakit.selection.primary - if not uri then w:notify("No primary selection...") return end - for i = 1, m.count do w:new_tab(w:search_open(uri)) end - end, {count = 1}), - - -- Yanking - key({}, "y", "Yank current URI to primary selection.", - function (w) - local uri = string.gsub(w.view.uri or "", " ", "%%20") - luakit.selection.primary = uri - w:notify("Yanked uri: " .. uri) - end), - - -- Commands - key({"Control"}, "a", "Increment last number in URL.", - function (w) w:navigate(w:inc_uri(1)) end), - - key({"Control"}, "x", "Decrement last number in URL.", - function (w) w:navigate(w:inc_uri(-1)) end), - - key({}, "o", "Open one or more URLs.", - function (w) w:enter_cmd(":open ") end), - - key({}, "t", "Open one or more URLs in a new tab.", - function (w) w:enter_cmd(":tabopen ") end), - - key({}, "w", "Open one or more URLs in a new window.", - function (w) w:enter_cmd(":winopen ") end), - - key({}, "O", "Open one or more URLs based on current location.", - function (w) w:enter_cmd(":open " .. (w.view.uri or "")) end), - - key({}, "T", - "Open one or more URLs based on current location in a new tab.", - function (w) w:enter_cmd(":tabopen " .. (w.view.uri or "")) end), - - key({}, "W", - "Open one or more URLs based on current locaton in a new window.", - function (w) w:enter_cmd(":winopen " .. (w.view.uri or "")) end), - - -- History - key({}, "H", "Go back in the browser history `[count=1]` items.", - function (w, m) w:back(m.count) end), - - key({}, "L", "Go forward in the browser history `[count=1]` times.", - function (w, m) w:forward(m.count) end), - - key({}, "XF86Back", "Go back in the browser history.", - function (w, m) w:back(m.count) end), - - key({}, "XF86Forward", "Go forward in the browser history.", - function (w, m) w:forward(m.count) end), - - key({"Control"}, "o", "Go back in the browser history.", - function (w, m) w:back(m.count) end), - - key({"Control"}, "i", "Go forward in the browser history.", - function (w, m) w:forward(m.count) end), - - -- Tab - key({"Control"}, "Page_Up", "Go to previous tab.", - function (w) w:prev_tab() end), - - key({"Control"}, "Page_Down", "Go to next tab.", - function (w) w:next_tab() end), - - key({"Control"}, "Tab", "Go to next tab.", - function (w) w:next_tab() end), - - key({"Shift","Control"}, "Tab", "Go to previous tab.", - function (w) w:prev_tab() end), - - buf("^gT$", "Go to previous tab.", - function (w) w:prev_tab() end), - - buf("^gt$", "Go to next tab (or `[count]` nth tab).", - function (w, b, m) - if not w:goto_tab(m.count) then w:next_tab() end - end, {count=0}), - - buf("^g0$", "Go to first tab.", - function (w) w:goto_tab(1) end), - - buf("^g$$", "Go to last tab.", - function (w) w:goto_tab(-1) end), - - key({"Control"}, "t", "Open a new tab.", - function (w) w:new_tab(globals.homepage) end), - - key({"Control"}, "w", "Close current tab.", - function (w) w:close_tab() end), - - key({}, "d", "Close current tab (or `[count]` tabs).", - function (w, m) for i=1,m.count do w:close_tab() end end, {count=1}), - - key({}, "<", "Reorder tab left `[count=1]` positions.", - function (w, m) - w.tabs:reorder(w.view, w.tabs:current() - m.count) - end, {count=1}), - - key({}, ">", "Reorder tab right `[count=1]` positions.", - function (w, m) - w.tabs:reorder(w.view, - (w.tabs:current() + m.count) % w.tabs:count()) - end, {count=1}), - - buf("^gH$", "Open homepage in new tab.", - function (w) w:new_tab(globals.homepage) end), - - buf("^gh$", "Open homepage.", - function (w) w:navigate(globals.homepage) end), - - buf("^gy$", "Duplicate current tab.", - function (w) w:new_tab(w.view.history or "") end), - - key({}, "r", "Reload current tab.", - function (w) w:reload() end), - - key({}, "R", "Reload current tab (skipping cache).", - function (w) w:reload(true) end), - - key({"Control"}, "c", "Stop loading the current tab.", - function (w) w.view:stop() end), - - key({"Control", "Shift"}, "R", "Restart luakit (reloading configs).", - function (w) w:restart() end), - - -- Window - buf("^ZZ$", "Quit and save the session.", - function (w) w:save_session() w:close_win() end), - - buf("^ZQ$", "Quit and don't save the session.", - function (w) w:close_win() end), - - buf("^D$", "Quit and don't save the session.", - function (w) w:close_win() end), - - -- Enter passthrough mode - key({"Control"}, "z", - "Enter `passthrough` mode, ignores all luakit keybindings.", - function (w) w:set_mode("passthrough") end), -}) - -add_binds("insert", { - key({"Control"}, "z", - "Enter `passthrough` mode, ignores all luakit keybindings.", - function (w) w:set_mode("passthrough") end), -}) - -readline_bindings = { - key({"Shift"}, "Insert", - "Insert contents of primary selection at cursor position.", - function (w) w:insert_cmd(luakit.selection.primary) end), - - key({"Control"}, "w", "Delete previous word.", - function (w) w:del_word() end), - - key({"Control"}, "u", "Delete until beginning of current line.", - function (w) w:del_line() end), - - key({"Control"}, "h", "Delete character to the left.", - function (w) w:del_backward_char() end), - - key({"Control"}, "d", "Delete character to the right.", - function (w) w:del_forward_char() end), - - key({"Control"}, "a", "Move cursor to beginning of current line.", - function (w) w:beg_line() end), - - key({"Control"}, "e", "Move cursor to end of current line.", - function (w) w:end_line() end), - - key({"Control"}, "f", "Move cursor forward one character.", - function (w) w:forward_char() end), - - key({"Control"}, "b", "Move cursor backward one character.", - function (w) w:backward_char() end), - - key({"Mod1"}, "f", "Move cursor forward one word.", - function (w) w:forward_word() end), - - key({"Mod1"}, "b", "Move cursor backward one word.", - function (w) w:backward_word() end), -} - -add_binds({"command", "search"}, readline_bindings) - --- Switching tabs with Mod1+{1,2,3,...} -mod1binds = {} -for i=1,10 do - table.insert(mod1binds, - key({"Mod1"}, tostring(i % 10), "Jump to tab at index "..i..".", - function (w) w.tabs:switch(i) end)) -end -add_binds("normal", mod1binds) - --- Command bindings which are matched in the "command" mode from text --- entered into the input bar. -add_cmds({ - buf("^%S+!", - [[Detect bang syntax in `:command!` and recursively calls - `lousy.bind.match_cmd(..)` removing the bang from the command string - and setting `bang = true` in the bind opts table.]], - function (w, cmd, opts) - local cmd, args = string.match(cmd, "^(%S+)!+(.*)") - if cmd then - opts = join(opts, { bang = true }) - return lousy.bind.match_cmd(w, opts.binds, cmd .. args, opts) - end - end), - - cmd("c[lose]", "Close current tab.", - function (w) w:close_tab() end), - - cmd("print", "Print current page.", - function (w) w.view:eval_js("print()") end), - - cmd("stop", "Stop loading.", - function (w) w.view:stop() end), - - cmd("reload", "Reload page", - function (w) w:reload() end), - - cmd("restart", "Restart browser (reload config files).", - function (w) w:restart() end), - - cmd("write", "Save current session.", - function (w) w:save_session() end), - - cmd("noh[lsearch]", "Clear search highlighting.", - function (w) w:clear_search() end), - - cmd("back", "Go back in the browser history `[count=1]` items.", - function (w, a) w:back(tonumber(a) or 1) end), - - cmd("f[orward]", "Go forward in the browser history `[count=1]` items.", - function (w, a) w:forward(tonumber(a) or 1) end), - - cmd("inc[rease]", "Increment last number in URL.", - function (w, a) w:navigate(w:inc_uri(tonumber(a) or 1)) end), - - cmd("o[pen]", "Open one or more URLs.", - function (w, a) w:navigate(w:search_open(a)) end), - - cmd("t[abopen]", "Open one or more URLs in a new tab.", - function (w, a) w:new_tab(w:search_open(a)) end), - - cmd("w[inopen]", "Open one or more URLs in a new window.", - function (w, a) window.new{w:search_open(a)} end), - - cmd({"javascript", "js"}, "Evaluate JavaScript snippet.", - function (w, a) w.view:eval_js(a) end), - - -- Tab manipulation commands - cmd("tab", "Execute command and open result in new tab.", - function (w, a) w:new_tab() w:run_cmd(":" .. a) end), - - cmd("tabd[o]", "Execute command in each tab.", - function (w, a) w:each_tab(function (v) w:run_cmd(":" .. a) end) end), - - cmd("tabdu[plicate]", "Duplicate current tab.", - function (w) w:new_tab(w.view.history) end), - - cmd("tabfir[st]", "Switch to first tab.", - function (w) w:goto_tab(1) end), - - cmd("tabl[ast]", "Switch to last tab.", - function (w) w:goto_tab(-1) end), - - cmd("tabn[ext]", "Switch to the next tab.", - function (w) w:next_tab() end), - - cmd("tabp[revious]", "Switch to the previous tab.", - function (w) w:prev_tab() end), - - cmd("q[uit]", "Close the current window.", - function (w, a, o) w:close_win(o.bang) end), - - cmd({"viewsource", "vs"}, "View the source code of the current document.", - function (w, a, o) w:toggle_source(not o.bang and true or nil) end), - - cmd({"wqall", "wq"}, "Save the session and quit.", - function (w, a, o) w:save_session() w:close_win(o.bang) end), - - cmd("lua", "Evaluate Lua snippet.", function (w, a) - if a then - local ret = assert( - loadstring("return function(w) return "..a.." end"))()(w) - if ret then print(ret) end - else - w:set_mode("lua") - end - end), - - cmd("dump", "Dump current tabs html to file.", - function (w, a) - local fname = string.gsub(w.win.title, '[^%w%.%-]', '_')..'.html' -- sanitize filename - local file = a or luakit.save_file("Save file", w.win, xdg.download_dir or '.', fname) - if file then - local fd = assert(io.open(file, "w"), "failed to open: " .. file) - local html = assert(w.view:eval_js("document.documentElement.outerHTML"), "Unable to get HTML") - assert(fd:write(html), "unable to save html") - io.close(fd) - w:notify("Dumped HTML to: " .. file) - end - end), -}) - --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/globals.lua b/.config/luakit/globals.lua @@ -1,87 +0,0 @@ --- Global variables for luakit -globals = { - homepage = "http://luakit.org/", - -- homepage = "http://github.com/mason-larobina/luakit", - scroll_step = 40, - zoom_step = 0.1, - max_cmd_history = 100, - max_srch_history = 100, - -- http_proxy = "http://example.com:3128", - default_window_size = "800x600", - - -- Disables loading of hostnames from /etc/hosts (for large host files) - -- load_etc_hosts = false, - -- Disables checking if a filepath exists in search_open function - -- check_filepath = false, -} - --- Make useragent -local _, arch = luakit.spawn_sync("uname -sm") --- Only use the luakit version if in date format (reduces identifiability) -local lkv = string.match(luakit.version, "^(%d+.%d+.%d+)") -globals.useragent = string.format("Mozilla/5.0 (%s) AppleWebKit/%s+ (KHTML, like Gecko) WebKitGTK+/%s luakit%s", - string.sub(arch, 1, -2), luakit.webkit_user_agent_version, - luakit.webkit_version, (lkv and ("/" .. lkv)) or "") - --- Search common locations for a ca file which is used for ssl connection validation. -local ca_files = { - -- $XDG_DATA_HOME/luakit/ca-certificates.crt - luakit.data_dir .. "/ca-certificates.crt", - "/etc/certs/ca-certificates.crt", - "/etc/ssl/certs/ca-certificates.crt", -} --- Use the first ca-file found -for _, ca_file in ipairs(ca_files) do - if os.exists(ca_file) then - soup.ssl_ca_file = ca_file - break - end -end - --- Change to stop navigation sites with invalid or expired ssl certificates -soup.ssl_strict = false - --- Set cookie acceptance policy -cookie_policy = { always = 0, never = 1, no_third_party = 2 } -soup.accept_policy = cookie_policy.always ---soup.accept_policy = cookie_policy.no_third_party - --- List of search engines. Each item must contain a single %s which is --- replaced by URI encoded search terms. All other occurances of the percent --- character (%) may need to be escaped by placing another % before or after --- it to avoid collisions with lua's string.format characters. --- See: http://www.lua.org/manual/5.1/manual.html#pdf-string.format -search_engines = { - duckduckgo = "https://duckduckgo.com/?q=%s", - github = "https://github.com/search?q=%s", - google = "https://google.com/search?q=%s", - imdb = "http://www.imdb.com/find?s=all&q=%s", - wikipedia = "https://en.wikipedia.org/wiki/Special:Search?search=%s", -} - --- Set google as fallback search engine ---search_engines.default = search_engines.google -search_engines.default = search_engines.duckduckgo --- Use this instead to disable auto-searching ---search_engines.default = "%s" - --- Per-domain webview properties --- See http://webkitgtk.org/reference/webkitgtk/stable/WebKitWebSettings.html -domain_props = { --[[ - ["all"] = { - enable_scripts = false, - enable_plugins = false, - enable_private_browsing = false, - user_stylesheet_uri = "", - }, - ["youtube.com"] = { - enable_scripts = true, - enable_plugins = true, - }, - ["bbs.archlinux.org"] = { - user_stylesheet_uri = "file://" .. luakit.data_dir .. "/styles/dark.css", - enable_private_browsing = true, - }, ]] -} - --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/modes.lua b/.config/luakit/modes.lua @@ -1,163 +0,0 @@ -------------------------------- --- luakit mode configuration -- -------------------------------- - --- Table of modes and their callback hooks -local modes = {} -local lousy = require "lousy" -local join = lousy.util.table.join -local order = 0 - --- Add new mode table (optionally merges with original mode) -function new_mode(name, desc, mode, replace) - assert(string.match(name, "^[%w-_]+$"), "invalid mode name: " .. name) - -- Detect optional description - if type(desc) == "table" then - desc, mode, replace = nil, desc, mode - end - local traceback = debug.traceback("Creation traceback:", 2) - order = order + 1 - modes[name] = join({ order = order, traceback = traceback }, - (not replace and modes[name]) or {}, mode or {}, - { name = name, desc = desc }) -end - --- Get mode table -function get_mode(name) return modes[name] end - -function get_modes() return lousy.util.table.clone(modes) end - --- Attach window & input bar signals for mode hooks -window.init_funcs.modes_setup = function (w) - -- Calls the `enter` and `leave` mode hooks. - w:add_signal("mode-changed", function (_, name, ...) - local leave = (w.mode or {}).leave - - -- Get new modes functions/hooks/data - local mode = assert(modes[name], "invalid mode: " .. name) - - -- Call last modes leave hook. - if leave then leave(w) end - - -- Create w.mode object - w.mode = mode - - -- Update window binds - w:update_binds(name) - - -- Call new modes enter hook. - if mode.enter then mode.enter(w, ...) end - - w:emit_signal("mode-entered", mode) - end) - - local input = w.ibar.input - - -- Calls the changed hook on input widget changed. - input:add_signal("changed", function () - local changed = w.mode.changed - if changed then changed(w, input.text) end - end) - - input:add_signal("property::position", function () - local move_cursor = w.mode.move_cursor - if move_cursor then move_cursor(w, input.position) end - end) - - -- Calls the `activate` hook on input widget activate. - input:add_signal("activate", function () - local mode = w.mode - if mode and mode.activate then - local text, hist = input.text, mode.history - if mode.activate(w, text) == false then return end - -- Check if last history item is identical - if hist and hist.items and hist.items[hist.len or -1] ~= text then - table.insert(hist.items, text) - end - end - end) -end - --- Add mode related window methods -window.methods.set_mode = lousy.mode.set -local mget = lousy.mode.get -window.methods.is_mode = function (w, name) return name == mget(w) end - --- Setup normal mode -new_mode("normal", [[When luakit first starts you will find yourself in this - mode.]], { - enter = function (w) - w:set_prompt() - w:set_input() - end, -}) - -new_mode("all", [[Special meta-mode in which the bindings for this mode are - present in all modes.]]) - --- Setup insert mode -new_mode("insert", [[When clicking on form fields luakit will enter the insert - mode which allows you to enter text in form fields without accidentally - triggering normal mode bindings.]], { - enter = function (w) - w:set_prompt("-- INSERT --") - w:set_input() - w.view:focus() - end, - -- Send key events to webview - passthrough = true, -}) - -new_mode("passthrough", [[Luakit will pass every key event to the WebView - until the user presses Escape.]], { - enter = function (w) - w:set_prompt("-- PASS THROUGH --") - w:set_input() - end, - -- Send key events to webview - passthrough = true, - -- Don't exit mode when clicking outside of form fields - reset_on_focus = false, - -- Don't exit mode on navigation - reset_on_navigation = false, -}) - --- Setup command mode -new_mode("command", [[Enter commands.]], { - enter = function (w) - w:set_prompt() - w:set_input(":") - end, - changed = function (w, text) - -- Auto-exit command mode if user backspaces ":" in the input bar. - if not string.match(text, "^:") then w:set_mode() end - end, - activate = function (w, text) - w:set_mode() - local cmd = string.sub(text, 2) - if not string.find(cmd, "%S") then return end - - local success, match = xpcall( - function () return w:match_cmd(cmd) end, - function (err) w:error(debug.traceback(err, 3)) end) - - if success and not match then - w:error(string.format("Not a browser command: %q", cmd)) - end - end, - history = {maxlen = 50}, -}) - -new_mode("lua", [[Execute arbitrary Lua commands within the luakit - environment.]], { - enter = function (w) - w:set_prompt(">") - w:set_input("") - end, - activate = function (w, text) - w:set_input("") - local ret = assert(loadstring("return function(w) return "..text.." end"))()(w) - if ret then print(ret) end - end, - history = {maxlen = 50}, -}) diff --git a/.config/luakit/rc.lua b/.config/luakit/rc.lua @@ -1,181 +0,0 @@ ------------------------------------------------------------------------ --- luakit configuration file, more information at http://luakit.org/ -- ------------------------------------------------------------------------ - -require "lfs" - -if unique then - unique.new("org.luakit") - -- Check for a running luakit instance - if unique.is_running() then - if uris[1] then - for _, uri in ipairs(uris) do - if lfs.attributes(uri) then uri = os.abspath(uri) end - unique.send_message("tabopen " .. uri) - end - else - unique.send_message("winopen") - end - luakit.quit() - end -end - --- Load library of useful functions for luakit -require "lousy" - --- Small util functions to print output (info prints only when luakit.verbose is true) -function warn(...) io.stderr:write(string.format(...) .. "\n") end -function info(...) if luakit.verbose then io.stdout:write(string.format(...) .. "\n") end end - --- Load users global config --- ("$XDG_CONFIG_HOME/luakit/globals.lua" or "/etc/xdg/luakit/globals.lua") -require "globals" - --- Load users theme --- ("$XDG_CONFIG_HOME/luakit/theme.lua" or "/etc/xdg/luakit/theme.lua") -lousy.theme.init(lousy.util.find_config("theme.lua")) -theme = assert(lousy.theme.get(), "failed to load theme") - --- Load users window class --- ("$XDG_CONFIG_HOME/luakit/window.lua" or "/etc/xdg/luakit/window.lua") -require "window" - --- Load users webview class --- ("$XDG_CONFIG_HOME/luakit/webview.lua" or "/etc/xdg/luakit/webview.lua") -require "webview" - --- Load users mode configuration --- ("$XDG_CONFIG_HOME/luakit/modes.lua" or "/etc/xdg/luakit/modes.lua") -require "modes" - --- Load users keybindings --- ("$XDG_CONFIG_HOME/luakit/binds.lua" or "/etc/xdg/luakit/binds.lua") -require "binds" - ----------------------------------- --- Optional user script loading -- ----------------------------------- - -require "webinspector" - --- Add sqlite3 cookiejar -require "cookies" - --- Cookie blocking by domain (extends cookies module) --- Add domains to the whitelist at "$XDG_CONFIG_HOME/luakit/cookie.whitelist" --- and blacklist at "$XDG_CONFIG_HOME/luakit/cookie.blacklist". --- Each domain must be on it's own line and you may use "*" as a --- wildcard character (I.e. "*google.com") ---require "cookie_blocking" - --- Block all cookies by default (unless whitelisted) ---cookies.default_allow = false - --- Add uzbl-like form filling -require "formfiller" - --- Add proxy support & manager -require "proxy" - --- Add quickmarks support & manager -require "quickmarks" - --- Add session saving/loading support -require "session" - --- Add command to list closed tabs & bind to open closed tabs -require "undoclose" - --- Add command to list tab history items -require "tabhistory" - --- Add greasemonkey-like javascript userscript support -require "userscripts" - --- Add bookmarks support -require "bookmarks" -require "bookmarks_chrome" - --- Add download support -require "downloads" -require "downloads_chrome" - --- Example using xdg-open for opening downloads / showing download folders ---downloads.add_signal("open-file", function (file, mime) --- luakit.spawn(string.format("xdg-open %q", file)) --- return true ---end) - --- Add vimperator-like link hinting & following -require "follow" - --- Use a custom charater set for hint labels ---local s = follow.label_styles ---follow.label_maker = s.sort(s.reverse(s.charset("asdfqwerzxcv"))) - --- Match only hint labels ---follow.pattern_maker = follow.pattern_styles.match_label - --- Add command history -require "cmdhist" - --- Add search mode & binds -require "search" - --- Add ordering of new tabs -require "taborder" - --- Save web history -require "history" -require "history_chrome" - -require "introspector" - --- Add command completion -require "completion" - --- NoScript plugin, toggle scripts and or plugins on a per-domain basis. --- `,ts` to toggle scripts, `,tp` to toggle plugins, `,tr` to reset. --- Remove all "enable_scripts" & "enable_plugins" lines from your --- domain_props table (in config/globals.lua) as this module will conflict. ---require "noscript" - -require "follow_selected" -require "go_input" -require "go_next_prev" -require "go_up" - ------------------------------ --- End user script loading -- ------------------------------ - --- Restore last saved session -local w = (session and session.restore()) -if w then - for i, uri in ipairs(uris) do - w:new_tab(uri, i == 1) - end -else - -- Or open new window - window.new(uris) -end - -------------------------------------------- --- Open URIs from other luakit instances -- -------------------------------------------- - -if unique then - unique.add_signal("message", function (msg, screen) - local cmd, arg = string.match(msg, "^(%S+)%s*(.*)") - local w = lousy.util.table.values(window.bywidget)[1] - if cmd == "tabopen" then - w:new_tab(arg) - elseif cmd == "winopen" then - w = window.new((arg ~= "") and { arg } or {}) - end - w.win.screen = screen - w.win.urgency_hint = true - end) -end - --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/theme.lua b/.config/luakit/theme.lua @@ -1,69 +0,0 @@ --------------------------- --- Default luakit theme -- --------------------------- - -local theme = {} - --- Default settings -theme.font = "monospace normal 9" -theme.fg = "#fff" -theme.bg = "#000" - --- Genaral colours -theme.success_fg = "#0f0" -theme.loaded_fg = "#33AADD" -theme.error_fg = "#FFF" -theme.error_bg = "#F00" - --- Warning colours -theme.warning_fg = "#F00" -theme.warning_bg = "#FFF" - --- Notification colours -theme.notif_fg = "#444" -theme.notif_bg = "#FFF" - --- Menu colours -theme.menu_fg = "#000" -theme.menu_bg = "#fff" -theme.menu_selected_fg = "#000" -theme.menu_selected_bg = "#FF0" -theme.menu_title_bg = "#fff" -theme.menu_primary_title_fg = "#f00" -theme.menu_secondary_title_fg = "#666" - --- Proxy manager -theme.proxy_active_menu_fg = '#000' -theme.proxy_active_menu_bg = '#FFF' -theme.proxy_inactive_menu_fg = '#888' -theme.proxy_inactive_menu_bg = '#FFF' - --- Statusbar specific -theme.sbar_fg = "#fff" -theme.sbar_bg = "#000" - --- Downloadbar specific -theme.dbar_fg = "#fff" -theme.dbar_bg = "#000" -theme.dbar_error_fg = "#F00" - --- Input bar specific -theme.ibar_fg = "#000" -theme.ibar_bg = "#fff" - --- Tab label -theme.tab_fg = "#888" -theme.tab_bg = "#222" -theme.tab_ntheme = "#ddd" -theme.selected_fg = "#fff" -theme.selected_bg = "#000" -theme.selected_ntheme = "#ddd" -theme.loading_fg = "#33AADD" -theme.loading_bg = "#000" - --- Trusted/untrusted ssl colours -theme.trust_fg = "#0F0" -theme.notrust_fg = "#F00" - -return theme --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/webview.lua b/.config/luakit/webview.lua @@ -1,350 +0,0 @@ --------------------------- --- WebKit WebView class -- --------------------------- - --- Webview class table -webview = {} - --- Table of functions which are called on new webview widgets. -webview.init_funcs = { - -- Set useragent - set_useragent = function (view, w) - view.user_agent = globals.useragent - end, - - -- Check if checking ssl certificates - checking_ssl = function (view, w) - local ca_file = soup.ssl_ca_file - if ca_file and os.exists(ca_file) then - w.checking_ssl = true - end - end, - - -- Update window and tab titles - title_update = function (view, w) - view:add_signal("property::title", function (v) - w:update_tablist() - if w.view == v then - w:update_win_title() - end - end) - end, - - -- Update uri label in statusbar - uri_update = function (view, w) - view:add_signal("property::uri", function (v) - w:update_tablist() - if w.view == v then - w:update_uri() - end - end) - end, - - -- Update history indicator - hist_update = function (view, w) - view:add_signal("load-status", function (v, status) - if w.view == v then - w:update_hist() - end - end) - end, - - -- Update tab titles - tablist_update = function (view, w) - view:add_signal("load-status", function (v, status) - if status == "provisional" or status == "finished" or status == "failed" then - w:update_tablist() - end - end) - end, - - -- Update scroll widget - scroll_update = function (view, w) - view:add_signal("expose", function (v) - if w.view == v then - w:update_scroll() - end - end) - end, - - -- Update progress widget - progress_update = function (view, w) - for _, sig in ipairs({"load-status", "property::progress"}) do - view:add_signal(sig, function (v) - if w.view == v then - w:update_progress() - w:update_ssl() - end - end) - end - end, - - -- Display hovered link in statusbar - link_hover_display = function (view, w) - view:add_signal("link-hover", function (v, link) - if w.view == v and link then - w:update_uri(link) - end - end) - view:add_signal("link-unhover", function (v) - if w.view == v then - w:update_uri() - end - end) - end, - - -- Clicking a form field automatically enters insert mode. - form_insert_mode = function (view, w) - view:add_signal("button-press", function (v, mods, button, context) - -- Clear start search marker - (w.search_state or {}).marker = nil - - if button == 1 and context.editable then - view:emit_signal("form-active") - end - end) - -- Emit root-active event in button release to prevent "missing" - -- buttons or links when the input bar hides. - view:add_signal("button-release", function (v, mods, button, context) - if button == 1 and not context.editable then - view:emit_signal("root-active") - end - end) - view:add_signal("form-active", function () - if not w.mode.passthrough then - w:set_mode("insert") - end - end) - view:add_signal("root-active", function () - if w.mode.reset_on_focus ~= false then - w:set_mode() - end - end) - end, - - -- Catch keys in non-passthrough modes - mode_key_filter = function (view, w) - view:add_signal("key-press", function () - if not w.mode.passthrough then - return true - end - end) - end, - - -- Try to match a button event to a users button binding else let the - -- press hit the webview. - button_bind_match = function (view, w) - view:add_signal("button-release", function (v, mods, button, context) - (w.search_state or {}).marker = nil - if w:hit(mods, button, { context = context }) then - return true - end - end) - end, - - -- Reset the mode on navigation - mode_reset_on_nav = function (view, w) - view:add_signal("load-status", function (v, status) - if status == "provisional" and w.view == v then - if w.mode.reset_on_navigation ~= false then - w:set_mode() - end - end - end) - end, - - -- Domain properties - domain_properties = function (view, w) - view:add_signal("load-status", function (v, status) - if status ~= "committed" or v.uri == "about:blank" then return end - -- Get domain - local domain = lousy.uri.parse(v.uri).host - -- Strip leading www. - domain = string.match(domain or "", "^www%.(.+)") or domain or "all" - -- Build list of domain props tables to join & load. - -- I.e. for luakit.org load .luakit.org, luakit.org, .org - local props = {domain_props.all or {}, domain_props[domain] or {}} - repeat - table.insert(props, 2, domain_props["."..domain] or {}) - domain = string.match(domain, "%.(.+)") - until not domain - -- Join all property tables - for k, v in pairs(lousy.util.table.join(unpack(props))) do - info("Domain prop: %s = %s (%s)", k, tostring(v), domain) - view[k] = v - end - end) - end, - - -- Action to take on mime type decision request. - mime_decision = function (view, w) - -- Return true to accept or false to reject from this signal. - view:add_signal("mime-type-decision", function (v, uri, mime) - info("Requested link: %s (%s)", uri, mime) - -- i.e. block binary files like *.exe - --if mime == "application/octet-stream" then - -- return false - --end - end) - end, - - -- Action to take on window open request. - --window_decision = function (view, w) - -- view:add_signal("new-window-decision", function (v, uri, reason) - -- if reason == "link-clicked" then - -- window.new({uri}) - -- else - -- w:new_tab(uri) - -- end - -- return true - -- end) - --end, - - create_webview = function (view, w) - -- Return a newly created webview in a new tab - view:add_signal("create-web-view", function (v) - return w:new_tab() - end) - end, - - -- Creates context menu popup from table (and nested tables). - -- Use `true` for menu separators. - --populate_popup = function (view, w) - -- view:add_signal("populate-popup", function (v) - -- return { - -- true, - -- { "_Toggle Source", function () w:toggle_source() end }, - -- { "_Zoom", { - -- { "Zoom _In", function () w:zoom_in() end }, - -- { "Zoom _Out", function () w:zoom_out() end }, - -- true, - -- { "Zoom _Reset", function () w:zoom_set() end }, }, }, - -- } - -- end) - --end, - - -- Action to take on resource request. - resource_request_decision = function (view, w) - view:add_signal("resource-request-starting", function(v, uri) - info("Requesting: %s", uri) - -- Return false to cancel the request. - end) - end, -} - --- These methods are present when you index a window instance and no window --- method is found in `window.methods`. The window then checks if there is an --- active webview and calls the following methods with the given view instance --- as the first argument. All methods must take `view` & `w` as the first two --- arguments. -webview.methods = { - -- Reload with or without ignoring cache - reload = function (view, w, bypass_cache) - if bypass_cache then - view:reload_bypass_cache() - else - view:reload() - end - end, - - -- Toggle source view - toggle_source = function (view, w, show) - if show == nil then - view.view_source = not view.view_source - else - view.view_source = show - end - view:reload() - end, - - -- Zoom functions - zoom_in = function (view, w, step, full_zoom) - view.full_content_zoom = not not full_zoom - step = step or globals.zoom_step or 0.1 - view.zoom_level = view.zoom_level + step - end, - - zoom_out = function (view, w, step, full_zoom) - view.full_content_zoom = not not full_zoom - step = step or globals.zoom_step or 0.1 - view.zoom_level = math.max(0.01, view.zoom_level) - step - end, - - zoom_set = function (view, w, level, full_zoom) - view.full_content_zoom = not not full_zoom - view.zoom_level = level or 1.0 - end, - - -- History traversing functions - back = function (view, w, n) - view:go_back(n or 1) - end, - - forward = function (view, w, n) - view:go_forward(n or 1) - end, -} - -function webview.methods.scroll(view, w, new) - local s = view.scroll - for _, axis in ipairs{ "x", "y" } do - -- Relative px movement - if rawget(new, axis.."rel") then - s[axis] = s[axis] + new[axis.."rel"] - - -- Relative page movement - elseif rawget(new, axis .. "pagerel") then - s[axis] = s[axis] + math.ceil(s[axis.."page_size"] * new[axis.."pagerel"]) - - -- Absolute px movement - elseif rawget(new, axis) then - local n = new[axis] - if n == -1 then - s[axis] = s[axis.."max"] - else - s[axis] = n - end - - -- Absolute page movement - elseif rawget(new, axis.."page") then - s[axis] = math.ceil(s[axis.."page_size"] * new[axis.."page"]) - - -- Absolute percent movement - elseif rawget(new, axis .. "pct") then - s[axis] = math.ceil(s[axis.."max"] * (new[axis.."pct"]/100)) - end - end -end - -function webview.new(w) - local view = widget{type = "webview"} - - view.show_scrollbars = false - view.enforce_96_dpi = false - - -- Call webview init functions - for k, func in pairs(webview.init_funcs) do - func(view, w) - end - return view -end - --- Insert webview method lookup on window structure -table.insert(window.indexes, 1, function (w, k) - if k == "view" then - local view = w.tabs[w.tabs:current()] - if view and type(view) == "widget" and view.type == "webview" then - w.view = view - return view - end - end - -- Lookup webview method - local func = webview.methods[k] - if not func then return end - local view = w.view - if view then - return function (_, ...) return func(view, w, ...) end - end -end) - --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/luakit/window.lua b/.config/luakit/window.lua @@ -1,859 +0,0 @@ ------------------- --- Window class -- ------------------- - -require "lfs" - --- Window class table -window = {} - --- List of active windows by window widget -window.bywidget = setmetatable({}, { __mode = "k" }) - --- Widget construction aliases -local function entry() return widget{type="entry"} end -local function eventbox() return widget{type="eventbox"} end -local function hbox() return widget{type="hbox"} end -local function label() return widget{type="label"} end -local function notebook() return widget{type="notebook"} end -local function vbox() return widget{type="vbox"} end - --- Build and pack window widgets -function window.build() - -- Create a table for widgets and state variables for a window - local w = { - win = widget{type="window"}, - ebox = eventbox(), - layout = vbox(), - paned = widget{type="vpaned"}, - tabs = notebook(), - -- Tablist widget - tablist = lousy.widget.tablist(), - -- Status bar widgets - sbar = { - layout = hbox(), - ebox = eventbox(), - -- Left aligned widgets - l = { - layout = hbox(), - ebox = eventbox(), - uri = label(), - hist = label(), - loaded = label(), - }, - -- Fills space between the left and right aligned widgets - sep = eventbox(), - -- Right aligned widgets - r = { - layout = hbox(), - ebox = eventbox(), - buf = label(), - ssl = label(), - tabi = label(), - scroll = label(), - }, - }, - - -- Vertical menu window widget (completion results, bookmarks, qmarks, ..) - menu = lousy.widget.menu(), - - -- Input bar widgets - ibar = { - layout = hbox(), - ebox = eventbox(), - prompt = label(), - input = entry(), - }, - closed_tabs = {} - } - - -- Assemble window - w.ebox.child = w.paned - w.paned:pack1(w.layout) - w.win.child = w.ebox - - -- Pack tablist - w.layout:pack(w.tablist.widget) - - -- Pack notebook - w.layout:pack(w.tabs, { expand = true, fill = true }) - - -- Pack left-aligned statusbar elements - local l = w.sbar.l - l.layout:pack(l.uri) - l.layout:pack(l.hist) - l.layout:pack(l.loaded) - l.ebox.child = l.layout - - -- Pack right-aligned statusbar elements - local r = w.sbar.r - r.layout:pack(r.buf) - r.layout:pack(r.ssl) - r.layout:pack(r.tabi) - r.layout:pack(r.scroll) - r.ebox.child = r.layout - - -- Pack status bar elements - local s = w.sbar - s.layout:pack(l.ebox) - s.layout:pack(s.sep, { expand = true, fill = true }) - s.layout:pack(r.ebox) - s.ebox.child = s.layout - w.layout:pack(s.ebox) - - -- Pack menu widget - w.layout:pack(w.menu.widget) - w.menu:hide() - - -- Pack input bar - local i = w.ibar - i.layout:pack(i.prompt) - i.layout:pack(i.input, { expand = true, fill = true }) - i.ebox.child = i.layout - w.layout:pack(i.ebox) - - -- Other settings - i.input.show_frame = false - w.tabs.show_tabs = false - l.loaded:hide() - l.hist:hide() - l.uri.selectable = true - r.ssl:hide() - - -- Allows indexing of window struct by window widget - window.bywidget[w.win] = w - - return w -end - --- Table of functions to call on window creation. Normally used to add signal --- handlers to the new windows widgets. -window.init_funcs = { - -- Attach notebook widget signals - notebook_signals = function (w) - w.tabs:add_signal("page-added", function (nbook, view, idx) - luakit.idle_add(function () - w:update_tab_count() - w:update_tablist() - return false - end) - end) - w.tabs:add_signal("switch-page", function (nbook, view, idx) - w.view = nil - w:set_mode() - -- Update widgets after tab switch - luakit.idle_add(function () - w:update_tab_count() - w:update_win_title() - w:update_uri() - w:update_progress() - w:update_tablist() - w:update_buf() - w:update_ssl() - w:update_hist() - return false - end) - end) - w.tabs:add_signal("page-reordered", function (nbook, view, idx) - w:update_tab_count() - w:update_tablist() - end) - end, - - last_win_check = function (w) - w.win:add_signal("destroy", function () - -- call the quit function if this was the last window left - if #luakit.windows == 0 then luakit.quit() end - if w.close_win then w:close_win() end - end) - end, - - key_press_match = function (w) - w.win:add_signal("key-press", function (_, mods, key) - -- Match & exec a bind - local success, match = xpcall( - function () return w:hit(mods, key) end, - function (err) w:error(debug.traceback(err, 3)) end) - - if success and match then - return true - end - end) - end, - - tablist_tab_click = function (w) - w.tablist:add_signal("tab-clicked", function (_, index, mods, button) - if button == 1 then - w.tabs:switch(index) - return true - elseif button == 2 then - w:close_tab(w.tabs[index]) - return true - end - end) - end, - - apply_window_theme = function (w) - local s, i = w.sbar, w.ibar - - -- Set foregrounds - for wi, v in pairs({ - [s.l.uri] = theme.uri_sbar_fg, - [s.l.hist] = theme.hist_sbar_fg, - [s.l.loaded] = theme.sbar_loaded_fg, - [s.r.buf] = theme.buf_sbar_fg, - [s.r.tabi] = theme.tabi_sbar_fg, - [s.r.scroll] = theme.scroll_sbar_fg, - [i.prompt] = theme.prompt_ibar_fg, - [i.input] = theme.input_ibar_fg, - }) do wi.fg = v end - - -- Set backgrounds - for wi, v in pairs({ - [s.l.ebox] = theme.sbar_bg, - [s.r.ebox] = theme.sbar_bg, - [s.sep] = theme.sbar_bg, - [s.ebox] = theme.sbar_bg, - [i.ebox] = theme.ibar_bg, - [i.input] = theme.input_ibar_bg, - }) do wi.bg = v end - - -- Set fonts - for wi, v in pairs({ - [s.l.uri] = theme.uri_sbar_font, - [s.l.hist] = theme.hist_sbar_font, - [s.l.loaded] = theme.sbar_loaded_font, - [s.r.buf] = theme.buf_sbar_font, - [s.r.ssl] = theme.ssl_sbar_font, - [s.r.tabi] = theme.tabi_sbar_font, - [s.r.scroll] = theme.scroll_sbar_font, - [i.prompt] = theme.prompt_ibar_font, - [i.input] = theme.input_ibar_font, - }) do wi.font = v end - end, - - set_default_size = function (w) - local size = globals.default_window_size or "800x600" - if string.match(size, "^%d+x%d+$") then - w.win:set_default_size(string.match(size, "^(%d+)x(%d+)$")) - else - warn("E: window.lua: invalid window size: %q", size) - end - end, - - set_window_icon = function (w) - local path = (luakit.dev_paths and os.exists("./extras/luakit.png")) or - os.exists("/usr/share/pixmaps/luakit.png") - if path then w.win.icon = path end - end, - - clear_urgency_hint = function (w) - w.win:add_signal("focus", function () - w.win.urgency_hint = false - end) - end, -} - --- Helper functions which operate on the window widgets or structure. -window.methods = { - -- Wrapper around the bind plugin's hit method - hit = function (w, mods, key, opts) - local opts = lousy.util.table.join(opts or {}, { - enable_buffer = w:is_mode("normal"), - buffer = w.buffer, - }) - - local caught, newbuf = lousy.bind.hit(w, w.binds, mods, key, opts) - if w.win then -- Check binding didn't cause window to exit - w.buffer = newbuf - w:update_buf() - end - return caught - end, - - -- Wrapper around the bind plugin's match_cmd method - match_cmd = function (w, buffer) - return lousy.bind.match_cmd(w, get_mode("command").binds, buffer) - end, - - -- enter command or characters into command line - enter_cmd = function (w, cmd, opts) - w:set_mode("command") - w:set_input(cmd, opts) - end, - - -- run command as if typed into the command line - run_cmd = function (w, cmd, opts) - w:enter_cmd(cmd, opts) - w:activate() - end, - - -- insert a string into the command line at the current cursor position - insert_cmd = function (w, str) - if not str then return end - local i = w.ibar.input - local text = i.text - local pos = i.position - local left, right = string.sub(text, 1, pos), string.sub(text, pos+1) - i.text = left .. str .. right - i.position = pos + #str - end, - - -- Emulates pressing the Return key in input field - activate = function (w) - w.ibar.input:emit_signal("activate") - end, - - del_word = function (w) - local i = w.ibar.input - local text = i.text - local pos = i.position - if text and #text > 1 and pos > 1 then - local left, right = string.sub(text, 2, pos), string.sub(text, pos+1) - if not string.find(left, "%s") then - left = "" - elseif string.find(left, "%w+%s*$") then - left = string.sub(left, 0, string.find(left, "%w+%s*$") - 1) - elseif string.find(left, "%W+%s*$") then - left = string.sub(left, 0, string.find(left, "%W+%s*$") - 1) - end - i.text = string.sub(text, 1, 1) .. left .. right - i.position = #left + 1 - end - end, - - del_line = function (w) - local i = w.ibar.input - if not string.match(i.text, "^[:/?]$") then - i.text = string.sub(i.text, 1, 1) - i.position = -1 - end - end, - - del_backward_char = function (w) - local i = w.ibar.input - local text = i.text - local pos = i.position - - if pos > 1 then - i.text = string.sub(text, 0, pos - 1) .. string.sub(text, pos + 1) - i.position = pos - 1 - end - end, - - del_forward_char = function (w) - local i = w.ibar.input - local text = i.text - local pos = i.position - - i.text = string.sub(text, 0, pos) .. string.sub(text, pos + 2) - i.position = pos - end, - - beg_line = function (w) - local i = w.ibar.input - i.position = 1 - end, - - end_line = function (w) - local i = w.ibar.input - i.position = -1 - end, - - forward_char = function (w) - local i = w.ibar.input - i.position = i.position + 1 - end, - - backward_char = function (w) - local i = w.ibar.input - local pos = i.position - if pos > 1 then - i.position = pos - 1 - end - end, - - forward_word = function (w) - local i = w.ibar.input - local text = i.text - local pos = i.position - if text and #text > 1 then - local right = string.sub(text, pos+1) - if string.find(right, "%w+") then - local _, move = string.find(right, "%w+") - i.position = pos + move - end - end - end, - - backward_word = function (w) - local i = w.ibar.input - local text = i.text - local pos = i.position - if text and #text > 1 and pos > 1 then - local left = string.reverse(string.sub(text, 2, pos)) - if string.find(left, "%w+") then - local _, move = string.find(left, "%w+") - i.position = pos - move - end - end - end, - - -- Shows a notification until the next keypress of the user. - notify = function (w, msg, set_mode) - if set_mode ~= false then w:set_mode() end - w:set_prompt(msg, { fg = theme.notif_fg, bg = theme.notif_bg }) - end, - - warning = function (w, msg, set_mode) - if set_mode ~= false then w:set_mode() end - w:set_prompt(msg, { fg = theme.warning_fg, bg = theme.warning_bg }) - end, - - error = function (w, msg, set_mode) - if set_mode ~= false then w:set_mode() end - w:set_prompt("Error: "..msg, { fg = theme.error_fg, bg = theme.error_bg }) - end, - - -- Set and display the prompt - set_prompt = function (w, text, opts) - local prompt, ebox, opts = w.ibar.prompt, w.ibar.ebox, opts or {} - prompt:hide() - -- Set theme - fg, bg = opts.fg or theme.ibar_fg, opts.bg or theme.ibar_bg - if prompt.fg ~= fg then prompt.fg = fg end - if ebox.bg ~= bg then ebox.bg = bg end - -- Set text or remain hidden - if text then - prompt.text = lousy.util.escape(text) - prompt:show() - end - end, - - -- Set display and focus the input bar - set_input = function (w, text, opts) - local input, opts = w.ibar.input, opts or {} - input:hide() - -- Set theme - fg, bg = opts.fg or theme.ibar_fg, opts.bg or theme.ibar_bg - if input.fg ~= fg then input.fg = fg end - if input.bg ~= bg then input.bg = bg end - -- Set text or remain hidden - if text then - input.text = "" - input:show() - input:focus() - input.text = text - input.position = opts.pos or -1 - end - end, - - -- GUI content update functions - update_tab_count = function (w) - w.sbar.r.tabi.text = string.format("[%d/%d]", w.tabs:current(), w.tabs:count()) - end, - - update_win_title = function (w) - local uri, title = w.view.uri, w.view.title - title = (title or "luakit") .. ((uri and " - " .. uri) or "") - local max = globals.max_title_len or 80 - if #title > max then title = string.sub(title, 1, max) .. "..." end - w.win.title = title - end, - - update_uri = function (w, link) - w.sbar.l.uri.text = lousy.util.escape((link and "Link: " .. link) - or (w.view and w.view.uri) or "about:blank") - end, - - update_progress = function (w) - local p = w.view.progress - local loaded = w.sbar.l.loaded - if not w.view:loading() or p == 1 then - loaded:hide() - else - loaded:show() - loaded.text = string.format("(%d%%)", p * 100) - end - end, - - update_scroll = function (w) - local scroll, label = w.view.scroll, w.sbar.r.scroll - local y, max, text = scroll.y, scroll.ymax - if max == 0 then text = "All" - elseif y == 0 then text = "Top" - elseif y == max then text = "Bot" - else text = string.format("%2d%%", (y / max) * 100) - end - if label.text ~= text then label.text = text end - end, - - update_ssl = function (w) - local trusted = w.view:ssl_trusted() - local ssl = w.sbar.r.ssl - if trusted ~= nil and not w.checking_ssl then - ssl.fg = theme.notrust_fg - ssl.text = "(nocheck)" - ssl:show() - elseif trusted == true then - ssl.fg = theme.trust_fg - ssl.text = "(trust)" - ssl:show() - elseif trusted == false then - ssl.fg = theme.notrust_fg - ssl.text = "(notrust)" - ssl:show() - else - ssl:hide() - end - end, - - update_hist = function (w) - local hist = w.sbar.l.hist - local back, forward = w.view:can_go_back(), w.view:can_go_forward() - local s = (back and "+" or "") .. (forward and "-" or "") - if s ~= "" then - hist.text = '['..s..']' - hist:show() - else - hist:hide() - end - end, - - update_buf = function (w) - local buf = w.sbar.r.buf - if w.buffer then - buf.text = lousy.util.escape(string.format(" %-3s", w.buffer)) - buf:show() - else - buf:hide() - end - end, - - update_binds = function (w, mode) - -- Generate the list of active key & buffer binds for this mode - w.binds = lousy.util.table.join((get_mode(mode) or {}).binds or {}, get_mode('all').binds or {}) - -- Clear & hide buffer - w.buffer = nil - w:update_buf() - end, - - update_tablist = function (w) - local current = w.tabs:current() - local fg, bg, nfg, snfg = theme.tab_fg, theme.tab_bg, theme.tab_ntheme, theme.selected_ntheme - local lfg, bfg, gfg = theme.tab_loading_fg, theme.tab_notrust_fg, theme.tab_trust_fg - local escape = lousy.util.escape - local tabs, tfmt = {}, ' <span foreground="%s">%s</span> %s' - - for i, view in ipairs(w.tabs.children) do - -- Get tab number theme - local ntheme = nfg - if view:loading() then -- Show loading on all tabs - ntheme = lfg - elseif current == i then -- Show ssl trusted/untrusted on current tab - local trusted = view:ssl_trusted() - ntheme = snfg - if trusted == false or (trusted ~= nil and not w.checking_ssl) then - ntheme = bfg - elseif trusted then - ntheme = gfg - end - end - local title = view.title or view.uri or "(Untitled)" - tabs[i] = { - title = string.format(tfmt, ntheme or fg, i, escape(title)), - fg = (current == i and theme.tab_selected_fg) or fg, - bg = (current == i and theme.tab_selected_bg) or bg, - } - end - - if #tabs < 2 then tabs, current = {}, 0 end - w.tablist:update(tabs, current) - end, - - new_tab = function (w, arg, switch, order) - local view - -- Use blank tab first - if w.has_blank and w.tabs:count() == 1 and w.tabs[1].uri == "about:blank" then - view = w.tabs[1] - end - w.has_blank = nil - -- Make new webview widget - if not view then - view = webview.new(w) - -- Get tab order function - if not order and taborder then - order = (switch == false and taborder.default_bg) - or taborder.default - end - pos = w.tabs:insert((order and order(w, view)) or -1, view) - if switch ~= false then w.tabs:switch(pos) end - end - -- Load uri or webview history table - if type(arg) == "string" then view.uri = arg - elseif type(arg) == "table" then view.history = arg end - -- Update statusbar widgets - w:update_tab_count() - w:update_tablist() - return view - end, - - -- close the current tab - close_tab = function (w, view, blank_last) - view = view or w.view - -- Treat a blank last tab as an empty notebook (if blank_last=true) - if blank_last ~= false and w.tabs:count() == 1 then - if not view:loading() and view.uri == "about:blank" then return end - w:new_tab("about:blank", false) - w.has_blank = true - end - -- Save tab history - local tab = {hist = view.history,} - -- And relative location - local index = w.tabs:indexof(view) - if index ~= 1 then tab.after = w.tabs[index-1] end - table.insert(w.closed_tabs, tab) - view:destroy() - w:update_tab_count() - w:update_tablist() - end, - - close_win = function (w, force) - -- Ask plugins if it's OK to close last window - if not force and (#luakit.windows == 1) then - local emsg = luakit.emit_signal("can-close", w) - if emsg then - assert(type(emsg) == "string", "invalid exit error message") - w:error(string.format("Can't close luakit: %s (force close " - .. "with :q! or :wq!)", emsg)) - return false - end - end - - w:emit_signal("close") - - -- Close all tabs - while w.tabs:count() ~= 0 do - w:close_tab(nil, false) - end - - -- Destroy tablist - w.tablist:destroy() - - -- Remove from window index - window.bywidget[w.win] = nil - - -- Clear window struct - w = setmetatable(w, {}) - - -- Recursively remove widgets from window - local children = lousy.util.recursive_remove(w.win) - -- Destroy all widgets - for i, c in ipairs(lousy.util.table.join(children, {w.win})) do - if c.hide then c:hide() end - c:destroy() - end - - -- Remove all window table vars - for k, _ in pairs(w) do w[k] = nil end - - -- Quit if closed last window - if #luakit.windows == 0 then luakit.quit() end - end, - - -- Navigate current view or open new tab - navigate = function (w, uri, view) - view = view or w.view - if view then - local js = string.match(uri, "^javascript:(.+)$") - if js then - return view:eval_js(luakit.uri_decode(js)) - end - view.uri = uri - else - return w:new_tab(uri) - end - end, - - -- Save, restart luakit and reload session. - restart = function (w) - -- Generate luakit launch command. - local args = {({string.gsub(luakit.execpath, " ", "\\ ")})[1]} - if luakit.verbose then table.insert(args, "-v") end - -- Relaunch without libunique bindings? - if luakit.nounique then table.insert(args, "-U") end - - -- Get new config path - local conf - if luakit.confpath ~= "/etc/xdg/luakit/rc.lua" and os.exists(luakit.confpath) then - conf = luakit.confpath - table.insert(args, string.format("-c %q", conf)) - end - - -- Check config has valid syntax - local cmd = table.concat(args, " ") - if luakit.spawn_sync(cmd .. " -k") ~= 0 then - return w:error("Cannot restart, syntax error in configuration file"..((conf and ": "..conf) or ".")) - end - - -- Save session. - local wins = {} - for _, w in pairs(window.bywidget) do table.insert(wins, w) end - session.save(wins) - - -- Replace current process with new luakit instance. - luakit.exec(cmd) - end, - - -- Intelligent open command which can detect a uri or search argument. - search_open = function (w, arg) - local lstring = lousy.util.string - local match, find = string.match, string.find - - -- Detect blank uris - if not arg or match(arg, "^%s*$") then return "about:blank" end - - -- Strip whitespace and split by whitespace into args table - local args = lstring.split(lstring.strip(arg)) - - -- Guess if first argument is an address, search engine, file - if #args == 1 then - local uri = args[1] - if uri == "about:blank" then return uri end - - -- Check if search engine name - if search_engines[uri] then - return string.format(search_engines[uri], "") - end - - -- Navigate if . or / in uri (I.e. domains, IP's, scheme://) - if find(uri, "%.") or find(uri, "/") then return uri end - - -- Navigate if this is a javascript-uri - if find(uri, "^javascript:") then return uri end - - -- Valid hostnames to check - local hosts = { "localhost" } - if globals.load_etc_hosts ~= false then - hosts = lousy.util.get_etc_hosts() - end - - -- Check hostnames - for _, h in pairs(hosts) do - if h == uri or match(uri, "^"..h..":%d+$") then return uri end - end - - -- Check for file in filesystem - if globals.check_filepath ~= false then - if lfs.attributes(uri) then return "file://" .. uri end - end - end - - -- Find search engine (or use search_engines.default) - local engine = "default" - if args[1] and search_engines[args[1]] then - engine = args[1] - table.remove(args, 1) - end - - -- URI encode search terms - local terms = luakit.uri_encode(table.concat(args, " ")) - return string.format(search_engines[engine], terms) - end, - - -- Increase (or decrease) the last found number in the current uri - inc_uri = function (w, arg) - local uri = string.gsub(w.view.uri, "(%d+)([^0-9]*)$", function (num, rest) - return string.format("%0"..#num.."d", tonumber(num) + (arg or 1)) .. rest - end) - return uri - end, - - -- Tab traversing functions - next_tab = function (w, n) - w.tabs:switch((((n or 1) + w.tabs:current() -1) % w.tabs:count()) + 1) - end, - - prev_tab = function (w, n) - w.tabs:switch(((w.tabs:current() - (n or 1) -1) % w.tabs:count()) + 1) - end, - - goto_tab = function (w, n) - if n and (n == -1 or n > 0) then - return w.tabs:switch((n <= w.tabs:count() and n) or -1) - end - end, - - -- For each tab, switches to that tab and calls the given function passing - -- it the view contained in the tab. - each_tab = function (w, fn) - for index = 1, w.tabs:count() do - w:goto_tab(index) - fn(w.tabs[index]) - end - end, - - -- If argument is form-active or root-active, emits signal. Ignores all - -- other signals. - emit_form_root_active_signal = function (w, s) - if s == "form-active" then - w.view:emit_signal("form-active") - elseif s == "root-active" then - w.view:emit_signal("root-active") - end - end, -} - --- Ordered list of class index functions. Other classes (E.g. webview) are able --- to add their own index functions to this list. -window.indexes = { - -- Find function in window.methods first - function (w, k) return window.methods[k] end -} - --- Create new window -function window.new(uris) - local w = window.build() - - -- Set window metatable - setmetatable(w, { - __index = function (_, k) - -- Check widget structure first - local v = rawget(w, k) - if v then return v end - -- Call each window index function - for _, index in ipairs(window.indexes) do - v = index(w, k) - if v then return v end - end - end, - }) - - -- Setup window widget for signals - lousy.signal.setup(w) - - -- Call window init functions - for _, func in pairs(window.init_funcs) do - func(w) - end - - -- Populate notebook with tabs - for _, uri in ipairs(uris or {}) do - w:new_tab(w:search_open(uri), false) - end - - -- Make sure something is loaded - if w.tabs:count() == 0 then - w:new_tab(w:search_open(globals.homepage), false) - end - - -- Set initial mode - w:set_mode() - - -- Show window - w.win:show() - - return w -end - --- vim: et:sw=4:ts=8:sts=4:tw=80 diff --git a/.config/openbox/autostart b/.config/openbox/autostart @@ -1,94 +0,0 @@ -## Openbox autostart.sh -## ==================== -## When you login to your CrunchBang Openbox session, this autostart script -## will be executed to set-up your environment and launch any applications -## you want to run at startup. -## -## Note*: some programs, such as 'nm-applet' are run via XDG autostart. -## Run '/usr/lib/openbox/openbox-xdg-autostart --list' to list any -## XDG autostarted programs. -## -## More information about this can be found at: -## http://openbox.org/wiki/Help:Autostart -## -## If you do something cool with your autostart script and you think others -## could benefit from your hack, please consider sharing it at: -## http://crunchbang.org/forums/ -## -## Have fun & happy CrunchBangin'! :) - -## GNOME PolicyKit and Keyring -eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg) & - -## Set root window colour -hsetroot -solid "#2E3436" & - -## Group start: -## 1. nitrogen - restores wallpaper -## 2. compositor - start -## 3. sleep - give compositor time to start -## 4. tint2 panel -(\ -nitrogen --restore && \ -cb-compositor --start && \ -sleep 2s && \ -tint2 \ -) & - -## Volume control for systray -(sleep 2s && pnmixer) & - -## Volume keys daemon -xfce4-volumed & - -## Enable power management -xfce4-power-manager & - -## Start Thunar Daemon -thunar --daemon & - -## Detect and configure touchpad. See 'man synclient' for more info. -if egrep -iq 'touchpad' /proc/bus/input/devices; then - synclient VertEdgeScroll=1 & - synclient TapButton1=1 & -fi - -## Start xscreensaver -xscreensaver -no-splash & - -## Start Clipboard manager -(sleep 3s && clipit) & - -## Set keyboard settings - 250 ms delay and 25 cps (characters per second) repeat rate. -## Adjust the values according to your preferances. -xset r rate 250 25 & - -## Turn on/off system beep -xset b off & - -## The following command runs hacks and fixes for #! LiveCD sessions. -## Safe to delete after installation. -cb-cowpowers & - -## cb-welcome - post-installation script, will not run in a live session and -## only runs once. Safe to remove. -(sleep 10s && cb-welcome --firstrun) & - -## cb-fortune - have Waldorf say a little adage -#(sleep 120s && cb-fortune) & - -## Run the conky -conky -q & - -# Autostart the Dropbox deamon -(sleep 60s && ~/.dropbox-dist/dropboxd) & - -# Enable tap-to-click on touchpad -synclient TapButton1=1 -synclient TapButton2=2 -synclient TapButton3=3 - -# Custom key bindings from ~/.xbindkeysrc -xbindkeys - - diff --git a/.config/openbox/menu.xml b/.config/openbox/menu.xml @@ -1,524 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<openbox_menu xmlns="http://openbox.org/" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://openbox.org/ - file:///usr/share/openbox/menu.xsd"> - - <menu id="root-menu" label="Openbox 3"> - <item label="Run Program"> - <action name="Execute"> - <command> - gmrun - </command> - </action> - </item> - <separator/> - <item label="Terminal"> - <action name="Execute"> - <command> - terminator - </command> - </action> - </item> - <item label="Web Browser"> - <action name="Execute"> - <command> - x-www-browser - </command> - </action> - </item> - <item label="File Manager"> - <action name="Execute"> - <command> - thunar - </command> - </action> - </item> - <item label="Text Editor"> - <action name="Execute"> - <command> - geany - </command> - </action> - </item> - <item label="Media Player"> - <action name="Execute"> - <command> - vlc - </command> - </action> - </item> - <separator/> - <menu id="accessories" label="Accessories"> - <item label="Catfish File Search"> - <action name="Execute"> - <command> - catfish - </command> - </action> - </item> - <item label="Archive Manager"> - <action name="Execute"> - <command> - file-roller - </command> - </action> - </item> - <item label="Geany Text Editor"> - <action name="Execute"> - <command> - geany - </command> - </action> - </item> - <item label="Task Manager (htop)"> - <action name="Execute"> - <command>terminator --command=&quot;htop&quot;</command> - </action> - </item> - <item label="Terminator Terminal"> - <action name="Execute"> - <command> - terminator - </command> - </action> - </item> - <item label="Thunar File Manager"> - <action name="Execute"> - <command> - thunar - </command> - </action> - </item> - <item label="Thunar File Manager (root)"> - <action name="Execute"> - <command> - gksudo thunar - </command> - </action> - </item> - </menu> - <menu id="graphics" label="Graphics"> - <item label="GIMP"> - <action name="Execute"> - <command> - gimp - </command> - </action> - </item> - <item label="Viewnior Image Viewer"> - <action name="Execute"> - <command> - viewnior - </command> - </action> - </item> - <menu id="graphicsScreenshots" label="Take Screenshot"> - <item label="Screenshooter"> - <action name="Execute"> - <command> - xfce4-screenshooter - </command> - </action> - </item> - <separator label="scrot"/> - <item label="Now"> - <action name="Execute"> - <command> - scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ &amp; viewnior ~/images/$f' - </command> - </action> - </item> - <item label="In 5 Seconds..."> - <action name="Execute"> - <command> - scrot -d 5 '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ &amp; viewnior ~/images/$f' - </command> - </action> - </item> - <item label="In 10 Seconds..."> - <action name="Execute"> - <command> - scrot -d 10 '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ &amp; viewnior ~/images/$f' - </command> - </action> - </item> - <item label="Selected Area... (click &amp; drag mouse)"> - <action name="Execute"> - <command> - scrot -s '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ &amp; viewnior ~/images/$f' - </command> - </action> - </item> - </menu> - </menu> - <menu id="multimedia" label="Multimedia"> - <item label="VLC Media Player"> - <action name="Execute"> - <command> - vlc - </command> - </action> - </item> - <item label="Volume Control"> - <action name="Execute"> - <command> - pavucontrol - </command> - </action> - </item> - <item label="Xfburn"> - <action name="Execute"> - <command> - xfburn - </command> - </action> - </item> - </menu> - <menu id="network" label="Network"> - <menu execute="cb-x-www-browser-pipemenu" id="wwwbrowsers" label="WWW Browsers"/> - <item label="gFTP Client"> - <action name="Execute"> - <command> - gftp - </command> - </action> - </item> - <item label="Transmission BitTorrent Client"> - <action name="Execute"> - <command> - transmission-gtk - </command> - </action> - </item> - <item label="XChat IRC Client"> - <action name="Execute"> - <command> - xchat - </command> - </action> - </item> - <item label="Remote Filesystems"> - <action name="Execute"> - <command> - gigolo - </command> - </action> - </item> - <menu execute="cb-remote-desktop-pipemenu" id="remotedesktop" label="Remote Desktop"/> - <menu execute="cb-sshconfig-pipemenu" id="sshconfig" label="SSH"/> - <separator label="Services"/> - <menu execute="cb-dropbox-pipemenu" id="dropbox" label="Dropbox"/> - </menu> - <menu id="office" label="Office"> - <menu id="libreoffice" label="LibreOffice" execute="cb-libreoffice-pipemenu" /> - <item label="Google Docs"> - <action name="Execute"> - <command> - x-www-browser https://drive.google.com/ - </command> - </action> - </item> - <item label="AbiWord Word Processor"> - <action name="Execute"> - <command> - abiword - </command> - </action> - </item> - <item label="Gnumeric Spreadsheet"> - <action name="Execute"> - <command> - gnumeric - </command> - </action> - </item> - <item label="Calculator"> - <action name="Execute"> - <command> - galculator - </command> - </action> - </item> - <item label="Evince PDF Viewer"> - <action name="Execute"> - <command> - evince - </command> - </action> - </item> - </menu> - <separator/> - <menu execute="cb-places-pipemenu" id="pipe-placesmenu" label="Places"/> - <menu execute="cb-recent-files-pipemenu" id="pipe-recentfilesmenu" label="Recent Files"/> - <separator/> - <menu id="settings" label="Settings"> - <menu execute="cb-compositor" id="CompositingPipeMenu" label="Compositor"/> - <menu id="conkyconfig" label="Conky"> - <item label="Edit .conkyrc"> - <action name="Execute"> - <command> - geany ~/.conkyrc - </command> - </action> - </item> - <item label="Restart Conky"> - <action name="Execute"> - <command> - conkywonky - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man page"> - <action name="Execute"> - <command> - terminator --command="man conky" - </command> - </action> - </item> - <item label="Wiki Page"> - <action name="Execute"> - <command> - x-www-browser http://crunchbanglinux.org/wiki/conky - </command> - </action> - </item> - </menu> - <menu id="dmenuconfig" label="dmenu"> - <item label="Edit start-up script"> - <action name="Execute"> - <command> - geany ~/.config/dmenu/dmenu-bind.sh - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man page"> - <action name="Execute"> - <command> - terminator --command="man dmenu" - </command> - </action> - </item> - </menu> - <menu id="gmrunconfig" label="gmrun"> - <item label="Edit config file"> - <action name="Execute"> - <command> - geany ~/.gmrunrc - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man page"> - <action name="Execute"> - <command> - terminator --command="man gmrun" - </command> - </action> - </item> - </menu> - <menu id="obConfig" label="Openbox"> - <item label="Edit menu.xml"> - <action name="Execute"> - <command> - geany ~/.config/openbox/menu.xml - </command> - </action> - </item> - <item label="Edit rc.xml"> - <action name="Execute"> - <command> - geany ~/.config/openbox/rc.xml - </command> - </action> - </item> - <item label="Edit autostart"> - <action name="Execute"> - <command> - geany ~/.config/openbox/autostart - </command> - </action> - </item> - <separator/> - <item label="GUI Menu Editor"> - <action name="Execute"> - <command> - obmenu - </command> - </action> - </item> - <item label="GUI Applications Settings Editor"> - <action name="Execute"> - <command> - obapps - </command> - </action> - </item> - <item label="GUI Config Tool"> - <action name="Execute"> - <command> - obconf - </command> - </action> - </item> - <separator/> - <item label="Reconfigure"> - <action name="Reconfigure"/> - </item> - <item label="Restart"> - <action name="Restart"/> - </item> - </menu> - <menu id="terminatorconfig" label="Terminator"> - <item label="Edit config file"> - <action name="Execute"> - <command> - geany ~/.config/terminator/config - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man page"> - <action name="Execute"> - <command> - terminator --command="man terminator_config" - </command> - </action> - </item> - </menu> - <menu id="tint2config" label="tint2"> - <item label="Edit config file"> - <action name="Execute"> - <command> - geany ~/.config/tint2/tint2rc - </command> - </action> - </item> - <item label="Restart tint2"> - <action name="Execute"> - <command> - tint2restart - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man page"> - <action name="Execute"> - <command> - terminator --command="man tint2" - </command> - </action> - </item> - <item label="Online Help"> - <action name="Execute"> - <command> - x-www-browser http://code.google.com/p/tint2/wiki/Welcome - </command> - </action> - </item> - </menu> - <menu id="DisplaySettings" label="Display Settings"> - <item label="ARandR Screen Layout Editor"> - <action name="Execute"> - <command> - arandr - </command> - </action> - </item> - <separator label="Help?"/> - <item label="man xrandr"> - <action name="Execute"> - <command> - terminator --command="man xrandr" - </command> - </action> - </item> - </menu> - <menu id="Notifications" label="Notifications"> - <item label="settings"> - <action name="Execute"> - <command>xfce4-notifyd-config</command> - </action> - </item> - </menu> - <item label="Edit Default Applications"> - <action name="Execute"> - <command> - terminator --command="sudo update-alternatives --all" - </command> - </action> - </item> - <item label="User Interface Settings"> - <action name="Execute"> - <command> - lxappearance - </command> - </action> - </item> - <item label="Power Management"> - <action name="Execute"> - <command> - xfce4-power-manager-settings - </command> - </action> - </item> - <item label="Screensaver"> - <action name="Execute"> - <command> - xscreensaver-demo - </command> - </action> - </item> - <item label="Choose Wallpaper"> - <action name="Execute"> - <command> - nitrogen ~/images/wallpapers/ - </command> - </action> - </item> - </menu> - <menu id="system" label="System"> - <menu execute="cb-printing-pipemenu" id="PrintingPipeMenu" label="Printers"/> - <item label="GParted"> - <action name="Execute"> - <command> - gksudo gparted - </command> - </action> - </item> - <item label="Synaptic Package Manager"> - <action name="Execute"> - <command> - gksudo synaptic - </command> - </action> - </item> - <item label="User Login Settings"> - <action name="Execute"> - <command> - gksudo slimconf - </command> - </action> - </item> - </menu> - <!--<menu id="help" label="Help" execute="cb-help-pipemenu" />--> - <separator/> - <item label="Lock Screen"> - <action name="Execute"> - <command> - cb-lock - </command> - </action> - </item> - <item label="Exit"> - <action name="Execute"> - <command> - cb-exit - </command> - </action> - </item> - </menu> -</openbox_menu> diff --git a/.config/openbox/rc.xml b/.config/openbox/rc.xml @@ -1,1002 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude"> - <resistance> - <strength>10</strength> - <screen_edge_strength>20</screen_edge_strength> - </resistance> - <focus> - <focusNew>yes</focusNew> - <!-- always try to focus new windows when they appear. other rules do - apply --> - <followMouse>no</followMouse> - <!-- move focus to a window when you move the mouse into it --> - <focusLast>yes</focusLast> - <!-- focus the last used window when changing desktops, instead of the one - under the mouse pointer. when followMouse is enabled --> - <underMouse>no</underMouse> - <!-- move focus under the mouse, even when the mouse is not moving --> - <focusDelay>200</focusDelay> - <!-- when followMouse is enabled, the mouse must be inside the window for - this many milliseconds (1000 = 1 sec) before moving focus to it --> - <raiseOnFocus>no</raiseOnFocus> - <!-- when followMouse is enabled, and a window is given focus by moving the - mouse into it, also raise the window --> - </focus> - <placement> - <policy>Smart</policy> - <!-- 'Smart' or 'UnderMouse' --> - <center>yes</center> - <!-- whether to place windows in the center of the free area found or - the top left corner --> - <monitor>Any</monitor> - <!-- with Smart placement on a multi-monitor system, try to place new windows - on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where - the active window is, 'Primary' - only on the primary monitor --> - <primaryMonitor>1</primaryMonitor> - <!-- The monitor where Openbox should place popup dialogs such as the - focus cycling popup, or the desktop switch popup. It can be an index - from 1, specifying a particular monitor. Or it can be one of the - following: 'Mouse' - where the mouse is, or - 'Active' - where the active window is --> - </placement> - <theme> - <name>waldorf</name> - <titleLayout>DSLIMC</titleLayout> - <!-- - avaible characters are NDSLIMC, each can occur at most once. - N: window icon - L: window label (AKA title). - I: iconify - M: maximize - C: close - S: shade (roll up/down) - D: omnipresent (on all desktops). - --> - <keepBorder>yes</keepBorder> - <animateIconify>no</animateIconify> - <font place="ActiveWindow"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Bold</weight> - <!-- 'bold' or 'normal' --> - <slant>Normal</slant> - <!-- 'italic' or 'normal' --> - </font> - <font place="InactiveWindow"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Normal</weight> - <!-- 'bold' or 'normal' --> - <slant>Normal</slant> - <!-- 'italic' or 'normal' --> - </font> - <font place="MenuHeader"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Normal</weight> - <!-- 'bold' or 'normal' --> - <slant>Normal</slant> - <!-- 'italic' or 'normal' --> - </font> - <font place="MenuItem"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Normal</weight> - <!-- 'bold' or 'normal' --> - <slant>Normal</slant> - <!-- 'italic' or 'normal' --> - </font> - <font place="ActiveOnScreenDisplay"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Normal</weight> - <!-- 'bold' or 'normal' --> - <slant>normal</slant> - <!-- 'italic' or 'normal' --> - </font> - <font place="InactiveOnScreenDisplay"> - <name>Liberation Sans</name> - <size>10</size> - <!-- font size in points --> - <weight>Normal</weight> - <!-- 'bold' or 'normal' --> - <slant>normal</slant> - <!-- 'italic' or 'normal' --> - </font> - </theme> - <desktops> - <!-- this stuff is only used at startup, pagers allow you to change them - during a session - - these are default values to use when other ones are not already set - by other applications, or saved in your session - - use obconf if you want to change these without having to log out - and back in --> - <number>4</number> - <firstdesk>1</firstdesk> - <names> - <!-- set names up here if you want to, like this: - <name>desktop 1</name> - <name>desktop 2</name> - --> - <name>1</name> - <name>2</name> - <name>3</name> - <name>4</name> - </names> - <popupTime>875</popupTime> - <!-- The number of milliseconds to show the popup for when switching - desktops. Set this to 0 to disable the popup. --> - </desktops> - <resize> - <drawContents>yes</drawContents> - <popupShow>Nonpixel</popupShow> - <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) --> - <popupPosition>Center</popupPosition> - <!-- 'Center' or 'Top' --> - <popupFixedPosition> - <!-- these are used if popupPosition is set to 'Fixed' --> - <x>10</x> - <!-- positive number for distance from left edge, negative number for - distance from right edge, or 'Center' --> - <y>10</y> - <!-- positive number for distance from top edge, negative number for - distance from bottom edge, or 'Center' --> - </popupFixedPosition> - </resize> - <!-- You can reserve a portion of your screen where windows will not cover when - they are maximized, or when they are initially placed. - Many programs reserve space automatically, but you can use this in other - cases. --> - <margins> - <top>1</top> - <bottom>0</bottom> - <left>0</left> - <right>0</right> - </margins> - <dock> - <position>TopLeft</position> - <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating --> - <floatingX>0</floatingX> - <floatingY>0</floatingY> - <noStrut>no</noStrut> - <stacking>Above</stacking> - <!-- 'Above', 'Normal', or 'Below' --> - <direction>Vertical</direction> - <!-- 'Vertical' or 'Horizontal' --> - <autoHide>no</autoHide> - <hideDelay>300</hideDelay> - <!-- in milliseconds (1000 = 1 second) --> - <showDelay>300</showDelay> - <!-- in milliseconds (1000 = 1 second) --> - <moveButton>Middle</moveButton> - <!-- 'Left', 'Middle', 'Right' --> - </dock> - <keyboard> - <chainQuitKey>C-g</chainQuitKey> - <!-- Keybindings for desktop switching --> - <keybind key="C-A-Left"> - <action name="GoToDesktop"> - <to>left</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="C-A-Right"> - <action name="GoToDesktop"> - <to>right</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="C-A-Up"> - <action name="GoToDesktop"> - <to>up</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="C-A-Down"> - <action name="GoToDesktop"> - <to>down</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="S-A-Left"> - <action name="SendToDesktop"> - <to>left</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="S-A-Right"> - <action name="SendToDesktop"> - <to>right</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="S-A-Up"> - <action name="SendToDesktop"> - <to>up</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="S-A-Down"> - <action name="SendToDesktop"> - <to>down</to> - <wrap>no</wrap> - </action> - </keybind> - <keybind key="W-1"> - <action name="GoToDesktop"> - <to>1</to> - </action> - </keybind> - <keybind key="W-2"> - <action name="GoToDesktop"> - <to>2</to> - </action> - </keybind> - <keybind key="W-3"> - <action name="GoToDesktop"> - <to>3</to> - </action> - </keybind> - <keybind key="W-4"> - <action name="GoToDesktop"> - <to>4</to> - </action> - </keybind> - <keybind key="W-d"> - <action name="ToggleShowDesktop"/> - </keybind> - <!-- Keybindings for windows --> - <keybind key="A-F4"> - <action name="Close"/> - </keybind> - <keybind key="A-Escape"> - <action name="Lower"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - </keybind> - <keybind key="A-space"> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </keybind> - <keybind key="Print"> - <action name="Execute"> - <command>xfce4-screenshooter</command> - </action> - </keybind> - <keybind key="A-Print"> - <action name="Execute"> - <command>scrot '%Y-%m-%d--%s_$wx$h_scrot.png' -e 'mv $f ~/images/ &amp; viewnior ~/images/$f'</command> - </action> - </keybind> - <!-- Keybindings for window switching --> - <keybind key="A-Tab"> - <action name="NextWindow"> - <finalactions> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </finalactions> - </action> - </keybind> - <keybind key="A-S-Tab"> - <action name="PreviousWindow"> - <finalactions> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </finalactions> - </action> - </keybind> - <keybind key="C-A-Tab"> - <action name="NextWindow"> - <panels>yes</panels> - <desktop>yes</desktop> - <finalactions> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </finalactions> - </action> - </keybind> - <!-- Keybindings for window switching with the arrow keys --> - <keybind key="W-S-Right"> - <action name="DirectionalCycleWindows"> - <direction>right</direction> - </action> - </keybind> - <keybind key="W-S-Left"> - <action name="DirectionalCycleWindows"> - <direction>left</direction> - </action> - </keybind> - <keybind key="W-S-Up"> - <action name="DirectionalCycleWindows"> - <direction>up</direction> - </action> - </keybind> - <keybind key="W-S-Down"> - <action name="DirectionalCycleWindows"> - <direction>down</direction> - </action> - </keybind> - <!-- Keybindings for running applications --> - <keybind key="A-F2"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Run Program</name> - </startupnotify> - <command>gmrun</command> - </action> - </keybind> - <keybind key="W-r"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>dmenu-bind</name> - </startupnotify> - <command>~/.config/dmenu/dmenu-bind.sh</command> - </action> - </keybind> - <keybind key="W-f"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>thunar</name> - </startupnotify> - <command>thunar</command> - </action> - </keybind> - <keybind key="W-t"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Terminal</name> - </startupnotify> - <!-- <command>terminator</command> --> - <command>urxvt</command> - </action> - </keybind> - <keybind key="W-w"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Web Browser</name> - </startupnotify> - <command>x-www-browser</command> - </action> - </keybind> - <keybind key="W-q"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Tor browser</name> - </startupnotify> - <command>tor-browser.sh</command> - </action> - </keybind> - <keybind key="W-i"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Mail</name> - </startupnotify> - <command>icedove</command> - </action> - </keybind> - <keybind key="W-l"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Lock screen</name> - </startupnotify> - <command>cb-lock</command> - </action> - </keybind> - <keybind key="W-e"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Editor</name> - </startupnotify> - <command>geany</command> - </action> - </keybind> - <keybind key="W-m"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Mediaplayer</name> - </startupnotify> - <command>vlc</command> - </action> - </keybind> - <keybind key="W-h"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>htop</name> - </startupnotify> - <command>terminator --command="htop"</command> - </action> - </keybind> - <keybind key="W-v"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Volume</name> - </startupnotify> - <command>pavucontrol</command> - </action> - </keybind> - <keybind key="W-x"> - <action name="Execute"> - <startupnotify> - <enabled>true</enabled> - <name>Logout</name> - </startupnotify> - <command>cb-exit</command> - </action> - </keybind> - <keybind key="W-Tab"> - <action name="ShowMenu"> - <menu>client-list-combined-menu</menu> - </action> - </keybind> - <keybind key="W-space"> - <action name="ShowMenu"> - <menu>root-menu</menu> - </action> - </keybind> - <keybind key="A-C-q"> - <action name="ShowMenu"> - <menu>root-menu</menu> - </action> - </keybind> - <!-- A bit of tiling --> - <keybind key="W-Right"> - <action name="GrowToEdgeEast"/> - </keybind> - <keybind key="W-Left"> - <action name="GrowToEdgeWest"/> - </keybind> - <keybind key="W-Down"> - <action name="GrowToEdgeSouth"/> - </keybind> - <keybind key="W-Up"> - <action name="GrowToEdgeNorth"/> - </keybind> - <keybind key="W-A-Left"> - <action name="Execute"> - <command>cb-aerosnap --left</command> - </action> - </keybind> - <keybind key="W-A-Right"> - <action name="Execute"> - <command>cb-aerosnap --right</command> - </action> - </keybind> - </keyboard> - <mouse> - <dragThreshold>8</dragThreshold> - <!-- number of pixels the mouse must move before a drag begins --> - <doubleClickTime>200</doubleClickTime> - <!-- in milliseconds (1000 = 1 second) --> - <screenEdgeWarpTime>400</screenEdgeWarpTime> - <!-- Time before changing desktops when the pointer touches the edge of the - screen while moving a window, in milliseconds (1000 = 1 second). - Set this to 0 to disable warping --> - <screenEdgeWarpMouse>false</screenEdgeWarpMouse> - <!-- Set this to TRUE to move the mouse pointer across the desktop when - switching due to hitting the edge of the screen --> - <context name="Frame"> - <mousebind button="A-Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="A-Left" action="Click"> - <action name="Unshade"/> - </mousebind> - <mousebind button="A-Left" action="Drag"> - <action name="Move"/> - </mousebind> - <mousebind button="A-Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="A-Right" action="Drag"> - <action name="Resize"/> - </mousebind> - <mousebind button="A-Middle" action="Press"> - <action name="Lower"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - </mousebind> - <mousebind button="A-Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="A-Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="C-A-Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="C-A-Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="A-S-Up" action="Click"> - <action name="SendToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="A-S-Down" action="Click"> - <action name="SendToDesktop"> - <to>next</to> - </action> - </mousebind> - </context> - <context name="Titlebar"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Move"/> - </mousebind> - <mousebind button="Left" action="DoubleClick"> - <action name="ToggleMaximize"/> - </mousebind> - <mousebind button="Middle" action="Press"> - <action name="Lower"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - </mousebind> - <mousebind button="Up" action="Click"> - <action name="if"> - <shaded>no</shaded> - <then> - <action name="Shade"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - <action name="Lower"/> - </then> - </action> - </mousebind> - <mousebind button="Down" action="Click"> - <action name="if"> - <shaded>yes</shaded> - <then> - <action name="Unshade"/> - <action name="Raise"/> - </then> - </action> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </mousebind> - </context> - <context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Middle" action="Press"> - <action name="Lower"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </mousebind> - </context> - <context name="Top"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Resize"> - <edge>top</edge> - </action> - </mousebind> - </context> - <context name="Left"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Resize"> - <edge>left</edge> - </action> - </mousebind> - </context> - <context name="Right"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Resize"> - <edge>right</edge> - </action> - </mousebind> - </context> - <context name="Bottom"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Resize"> - <edge>bottom</edge> - </action> - </mousebind> - <mousebind button="Middle" action="Press"> - <action name="Lower"/> - <action name="FocusToBottom"/> - <action name="Unfocus"/> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </mousebind> - </context> - <context name="TRCorner BRCorner TLCorner BLCorner"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Left" action="Drag"> - <action name="Resize"/> - </mousebind> - </context> - <context name="Client"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Middle" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - </context> - <context name="Icon"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="ShowMenu"> - <menu>client-menu</menu> - </action> - </mousebind> - </context> - <context name="AllDesktops"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Left" action="Click"> - <action name="ToggleOmnipresent"/> - </mousebind> - </context> - <context name="Shade"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Click"> - <action name="ToggleShade"/> - </mousebind> - </context> - <context name="Iconify"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - <mousebind button="Left" action="Click"> - <action name="Iconify"/> - </mousebind> - </context> - <context name="Maximize"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Middle" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Left" action="Click"> - <action name="ToggleMaximize"/> - </mousebind> - <mousebind button="Middle" action="Click"> - <action name="ToggleMaximize"> - <direction>vertical</direction> - </action> - </mousebind> - <mousebind button="Right" action="Click"> - <action name="ToggleMaximize"> - <direction>horizontal</direction> - </action> - </mousebind> - </context> - <context name="Close"> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - <action name="Unshade"/> - </mousebind> - <mousebind button="Left" action="Click"> - <action name="Close"/> - </mousebind> - </context> - <context name="Desktop"> - <mousebind button="Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="A-Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="A-Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="C-A-Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="C-A-Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="Left" action="Press"> - <action name="Focus"/> - <action name="Raise"/> - </mousebind> - </context> - <context name="Root"> - <!-- Menus --> - <mousebind button="Middle" action="Press"> - <action name="ShowMenu"> - <menu>client-list-combined-menu</menu> - </action> - </mousebind> - <mousebind button="Right" action="Press"> - <action name="ShowMenu"> - <menu>root-menu</menu> - </action> - </mousebind> - </context> - <context name="MoveResize"> - <mousebind button="Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - <mousebind button="A-Up" action="Click"> - <action name="GoToDesktop"> - <to>previous</to> - </action> - </mousebind> - <mousebind button="A-Down" action="Click"> - <action name="GoToDesktop"> - <to>next</to> - </action> - </mousebind> - </context> - </mouse> - <menu> - <!-- You can specify more than one menu file in here and they are all loaded, - just don't make menu ids clash or, well, it'll be kind of pointless --> - <!-- default menu file (or custom one in $HOME/.config/openbox/) --> - <!-- system menu files on Debian systems - <file>/var/lib/openbox/debian-menu.xml</file> - <file>debian-menu.xml</file> --> - <file>menu.xml</file> - <hideDelay>200</hideDelay> - <!-- if a press-release lasts longer than this setting (in milliseconds), the - menu is hidden again --> - <middle>no</middle> - <!-- center submenus vertically about the parent entry --> - <submenuShowDelay>100</submenuShowDelay> - <!-- time to delay before showing a submenu after hovering over the parent - entry. - if this is a negative value, then the delay is infinite and the - submenu will not be shown until it is clicked on --> - <submenuHideDelay>400</submenuHideDelay> - <!-- time to delay before hiding a submenu when selecting another - entry in parent menu - if this is a negative value, then the delay is infinite and the - submenu will not be hidden until a different submenu is opened --> - <applicationIcons>yes</applicationIcons> - <!-- controls if icons appear in the client-list-(combined-)menu --> - <manageDesktops>yes</manageDesktops> - <!-- show the manage desktops section in the client-list-(combined-)menu --> - </menu> - <applications> - <!-- - # this is an example with comments through out. use these to make your - # own rules, but without the comments of course. - # you may use one or more of the name/class/role/title/type rules to specify - # windows to match - - <application name="the window's _OB_APP_NAME property (see obxprop)" - class="the window's _OB_APP_CLASS property (see obxprop)" - role="the window's _OB_APP_ROLE property (see obxprop)" - title="the window's _OB_APP_TITLE property (see obxprop)" - type="the window's _OB_APP_TYPE property (see obxprob).. - (if unspecified, then it is 'dialog' for child windows)"> - # you may set only one of name/class/role/title/type, or you may use more - # than one together to restrict your matches. - - # the name, class, role, and title use simple wildcard matching such as those - # used by a shell. you can use * to match any characters and ? to match - # any single character. - - # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock, - # or desktop - - # when multiple rules match a window, they will all be applied, in the - # order that they appear in this list - - - # each rule element can be left out or set to 'default' to specify to not - # change that attribute of the window - - <decor>yes</decor> - # enable or disable window decorations - - <shade>no</shade> - # make the window shaded when it appears, or not - - <position force="no"> - # the position is only used if both an x and y coordinate are provided - # (and not set to 'default') - # when force is "yes", then the window will be placed here even if it - # says you want it placed elsewhere. this is to override buggy - # applications who refuse to behave - <x>center</x> - # a number like 50, or 'center' to center on screen. use a negative number - # to start from the right (or bottom for <y>), ie -50 is 50 pixels from the - # right edge (or bottom). - <y>200</y> - <monitor>1</monitor> - # specifies the monitor in a xinerama setup. - # 1 is the first head, or 'mouse' for wherever the mouse is - </position> - - <focus>yes</focus> - # if the window should try be given focus when it appears. if this is set - # to yes it doesn't guarantee the window will be given focus. some - # restrictions may apply, but Openbox will try to - - <desktop>1</desktop> - # 1 is the first desktop, 'all' for all desktops - - <layer>normal</layer> - # 'above', 'normal', or 'below' - - <iconic>no</iconic> - # make the window iconified when it appears, or not - - <skip_pager>no</skip_pager> - # asks to not be shown in pagers - - <skip_taskbar>no</skip_taskbar> - # asks to not be shown in taskbars. window cycling actions will also - # skip past such windows - - <fullscreen>yes</fullscreen> - # make the window in fullscreen mode when it appears - - <maximized>true</maximized> - # 'Horizontal', 'Vertical' or boolean (yes/no) - </application> - - # end of the example ---> - <application name="urxvt"> - <decor>no</decor> - </application> - <application name="gmessage"> - <decor>no</decor> - <shade>no</shade> - <skip_pager>yes</skip_pager> - <skip_taskbar>yes</skip_taskbar> - <fullscreen>no</fullscreen> - <maximized>no</maximized> - </application> - <application class="Gimp" name="gimp" role="gimp-toolbox" type="utility"> - <maximized>vertical</maximized> - </application> - <application class="Gimp" name="gimp" role="gimp-dock" type="utility"> - <maximized>vertical</maximized> - </application> - <application class="Gimp" name="gimp" role="gimp-image-window" type="normal"> - <position force="no"> - <x>center</x> - <y>center</y> - </position> - </application> - <application class="Gimp" name="gimp-2.8" role="gimp-toolbox" type="utility"> - <maximized>vertical</maximized> - </application> - <application class="Gimp" name="gimp-2.8" role="gimp-dock" type="utility"> - <maximized>vertical</maximized> - </application> - <application class="Gimp" name="gimp-2.8" role="gimp-image-window" type="normal"> - <position force="no"> - <x>center</x> - <y>center</y> - </position> - </application> - </applications> -</openbox_config> diff --git a/.config/ranger/commands.py b/.config/ranger/commands.py @@ -1,216 +0,0 @@ -# This is a sample commands.py. You can add your own commands here. -# -# Please refer to commands_full.py for all the default commands and a complete -# documentation. Do NOT add them all here, or you may end up with defunct -# commands when upgrading ranger. - -# You always need to import ranger.api.commands here to get the Command class: -from ranger.api.commands import * - -# A simple command for demonstration purposes follows. -#------------------------------------------------------------------------------ - -# You can import any python module as needed. -import os - -# Any class that is a subclass of "Command" will be integrated into ranger as a -# command. Try typing ":my_edit<ENTER>" in ranger! -class my_edit(Command): - # The so-called doc-string of the class will be visible in the built-in - # help that is accessible by typing "?c" inside ranger. - """:my_edit <filename> - - A sample command for demonstration purposes that opens a file in an editor. - """ - - # The execute method is called when you run this command in ranger. - def execute(self): - # self.arg(1) is the first (space-separated) argument to the function. - # This way you can write ":my_edit somefilename<ENTER>". - if self.arg(1): - # self.rest(1) contains self.arg(1) and everything that follows - target_filename = self.rest(1) - else: - # self.fm is a ranger.core.filemanager.FileManager object and gives - # you access to internals of ranger. - # self.fm.thisfile is a ranger.container.file.File object and is a - # reference to the currently selected file. - target_filename = self.fm.thisfile.path - - # This is a generic function to print text in ranger. - self.fm.notify("Let's edit the file " + target_filename + "!") - - # Using bad=True in fm.notify allows you to print error messages: - if not os.path.exists(target_filename): - self.fm.notify("The given file does not exist!", bad=True) - return - - # This executes a function from ranger.core.acitons, a module with a - # variety of subroutines that can help you construct commands. - # Check out the source, or run "pydoc ranger.core.actions" for a list. - self.fm.edit_file(target_filename) - - # The tab method is called when you press tab, and should return a list of - # suggestions that the user will tab through. - def tab(self): - # This is a generic tab-completion function that iterates through the - # content of the current directory. - return self._tab_directory_content() - - -# https://github.com/ranger/ranger/wiki/Integrating-File-Search-with-fzf -# Now, simply bind this function to a key, by adding this to your ~/.config/ranger/rc.conf: map <C-f> fzf_select -class fzf_select(Command): - """ - :fzf_select - - Find a file using fzf. - - With a prefix argument select only directories. - - See: https://github.com/junegunn/fzf - """ - def execute(self): - import subprocess - if self.quantifier: - # match only directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ - -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" - else: - # match files and directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ - -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" - fzf = self.fm.execute_command(command, stdout=subprocess.PIPE) - stdout, stderr = fzf.communicate() - if fzf.returncode == 0: - fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n')) - if os.path.isdir(fzf_file): - self.fm.cd(fzf_file) - else: - self.fm.select_file(fzf_file) -# fzf_locate -class fzf_locate(Command): - """ - :fzf_locate - - Find a file using fzf. - - With a prefix argument select only directories. - - See: https://github.com/junegunn/fzf - """ - def execute(self): - import subprocess - if self.quantifier: - command="locate home media | fzf -e -i" - else: - command="locate home media | fzf -e -i" - fzf = self.fm.execute_command(command, stdout=subprocess.PIPE) - stdout, stderr = fzf.communicate() - if fzf.returncode == 0: - fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n')) - if os.path.isdir(fzf_file): - self.fm.cd(fzf_file) - else: - self.fm.select_file(fzf_file) - -class fzf_bring(Command): - """ - :fzf_bring - - Find a file using fzf and bring it to the current directory. - - See: https://github.com/junegunn/fzf - """ - def execute(self): - import subprocess - if self.quantifier: - # match only directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ - -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" - else: - # match files and directories - command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ - -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" - fzf = self.fm.execute_command(command, stdout=subprocess.PIPE) - stdout, stderr = fzf.communicate() - if fzf.returncode == 0: - fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n')) - if os.path.isdir(fzf_file): - self.fm.cd(fzf_file) - else: - self.fm.select_file(fzf_file) - - -import os -from ranger.core.loader import CommandLoader - -class compress(Command): - def execute(self): - """ Compress marked files to current directory """ - cwd = self.fm.thisdir - marked_files = cwd.get_selection() - - if not marked_files: - return - - def refresh(_): - cwd = self.fm.get_directory(original_path) - cwd.load_content() - - original_path = cwd.path - parts = self.line.split() - au_flags = parts[1:] - - descr = "compressing files in: " + os.path.basename(parts[1]) - obj = CommandLoader(args=['apack'] + au_flags + \ - [os.path.relpath(f.path, cwd.path) for f in marked_files], descr=descr) - - obj.signal_bind('after', refresh) - self.fm.loader.add(obj) - - def tab(self): - """ Complete with current folder name """ - - extension = ['.zip', '.tar.gz', '.rar', '.7z'] - return ['compress ' + os.path.basename(self.fm.thisdir.path) + ext for ext in extension] - - - - -import os -from ranger.core.loader import CommandLoader - -class extracthere(Command): - def execute(self): - """ Extract copied files to current directory """ - copied_files = tuple(self.fm.copy_buffer) - - if not copied_files: - return - - def refresh(_): - cwd = self.fm.get_directory(original_path) - cwd.load_content() - - one_file = copied_files[0] - cwd = self.fm.thisdir - original_path = cwd.path - au_flags = ['-X', cwd.path] - au_flags += self.line.split()[1:] - au_flags += ['-e'] - - self.fm.copy_buffer.clear() - self.fm.cut_buffer = False - if len(copied_files) == 1: - descr = "extracting: " + os.path.basename(one_file.path) - else: - descr = "extracting files from: " + os.path.basename(one_file.dirname) - obj = CommandLoader(args=['aunpack'] + au_flags \ - + [f.path for f in copied_files], descr=descr) - - obj.signal_bind('after', refresh) - self.fm.loader.add(obj) - - - diff --git a/.config/ranger/luke_ranger_readme.md b/.config/ranger/luke_ranger_readme.md @@ -1,85 +0,0 @@ -# Luke's ranger setup - -## Basic Ranger shortcuts - -These are the basic key binds in ranger, even outside of my configs. Note that they are mostly vim-based. - -+ h/j/k/l -- Move left/down/up/right (where left moves up in the directory structure, right moves into a folder) -+ Space -- select/highlight file -+ dd -- cut selected files -+ yy -- copy/yank selected files -+ pp -- paste/move cut/copied files -+ / -- search, when (n/N) next/previos result -+ zh or CTRL-h -- show hidden files -+ Renaming files: - + cw -- rename file from scratch - + A -- rename file adding to the end - + aa -- rename file appending before the extension - + I -- rename file adding at the beginning - -## Shortcuts - -As I say in the main readme, there are shortcut commands generated for ranger -based on what bookmarked directories and files you give it. For directory -shortcuts, here are the "verbs": - -+ g -- "go or cd" -+ t -- "new tab" -+ m -- "move file" -+ Y -- "yank or copy file" - -These "verbs" take "nouns" or "arguments," like these: - -+ d -- "~/Documents" -+ D -- "~/Downloads" -+ cf -- "~/.config" -+ And many others, including those you add to `~/.bmdirs`. - -Press any "verb" followed by any "argument" to perform a folder operation. "gd" will cd to ~/Documents, for example. "mD" will move the selected file(s) to ~/Downloads. "tcf" will create a new tab in ~/.config, etc. etc. - -## Many little additions! - -+ Basic additions: - + V -- Make a new file and edit it in vim - + cW -- rename *all* selected files, editing in your text editor - + mkd -- Make a directory/folder - + sc -- Makes a link/shortcut (ln -sT) - + D -- delete selected file - + X -- Extract a zip/rar/tar.gz, whatever. Runs a script that picks the right command for the right archive. - + Z -- zips a folder up into a .tar.gz archive. - + CTRL-f -- Fuzzy find a file - + CTRL-l -- Fuzzy locate a file -+ Document manipulation: - + p1s -- print this file on the default printer, one-sided (lpr) - + p2s -- print this file on the default printer, double-sided (lpr) - + MP -- convert to a .pdf with pandoc (I use this to convert markdown, etc.) - + MX -- compile selected document in XeLaTeX - + ML -- compile selected document in LaTeX - + TC -- clear all non-visible TeX build files in this directory - + Txa -- copy article template to new file - + Txs -- copy slideshow/beamer template to new file - + Txh -- copy handout template to new file -+ Image commands: - + bg -- (for i3 users) makes an image your background (assuming i3 is looking at ~/.config/wall.png for your background) - + bw -- runs Pywal on the selected image, making it your background and generating a color scheme based off of it. - + C -- rotates an image (requires imagemagick) - + F -- flips an image (requires imagemagick) - + TR -- add transparency to image file -+ mpd/mpc shortcuts - + MS -- Start mpd - + MK -- kill mpd - + MN -- Start playing selected song/folder now - + Ma -- Enqueue selected song/folder - + Mp -- Pause - + Mn -- Next track - + Mb -- Previous track - + Mo -- Restart track -+ Audio tagging with eye3D: - + Ta -- change artist name - + TA -- change album name - + Tb -- change album artist - + Tt -- change title - + Tn -- change track number -+ Downloading: - + ytv -- Download online video (paste in url) (requires youtube-dl) - + yta -- Download audio of online video (paste in url) (requires youtube-dl) diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf @@ -1,518 +0,0 @@ -###SETTINGS### - -set column_ratios 1,3,4 -#set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ -set hidden_filter ^\.|\.(?:pyc|vrb|pyo|lof|bak|swp|aux|log|nav|out|snm|toc|bcf|run\.xml|synctex\.gz|blg|bbl)$|^lost\+found$|^__(py)?cache__$ -set show_hidden false -set confirm_on_delete multiple -set preview_script ~/.config/ranger/scope.sh -set use_preview_script true -set automatically_count_files true -set open_all_images true -set vcs_aware false -set vcs_backend_git enabled -set vcs_backend_hg disabled -set vcs_backend_bzr disabled -set preview_images true -set preview_images_method w3m -set unicode_ellipsis false -set show_hidden_bookmarks false -set colorscheme default -set preview_files true -set preview_directories true -set collapse_preview true -set save_console_history false -set status_bar_on_top false -set draw_progress_bar_in_status_bar true -set draw_borders false -set dirname_in_tabs false -set mouse_enabled true -set display_size_in_main_column true -set display_size_in_status_bar true -set display_tags_in_all_columns true -set update_title false -set update_tmux_title true -set shorten_title 3 -set tilde_in_titlebar true -set max_history_size 20 -set max_console_history_size 50 -set scroll_offset 8 -set flushinput true -set padding_right true -set autosave_bookmarks false -set autoupdate_cumulative_size false -set show_cursor false -set sort natural -set sort_reverse false -set sort_case_insensitive true -set sort_directories_first true -set sort_unicode false -set xterm_alt_key false -set cd_bookmarks false -set preview_max_size 0 -set show_selection_in_titlebar true -set idle_delay 2000 -set metadata_deep_search false - - -###ALIASES### -alias e edit -alias q quit -alias q! quitall -alias qa quitall -alias qall quitall -alias setl setlocal - -alias filter scout -prt -alias find scout -aeit -alias mark scout -mr -alias unmark scout -Mr -alias search scout -rs -alias search_inc scout -rts -alias travel scout -aefiklst - - -###BASIC KEYS### - -#BASIC -map Q quit! -map q quit -copymap q ZZ ZQ - -#map R reload_cwd -map <C-r> reset -#map <C-l> redraw_window -map <C-c> abort -map <esc> change_mode normal - -map i display_file -map ? help -#map W display_log -map w taskview_open -map S shell $SHELL - -map : console -map ; console -map ! console shell%space -map @ console -p6 shell %s -map # console shell -p%space -#map s console shell%space -map r chain draw_possible_programs; console open_with%%space -map f console find%space -map cd console cd%space - - -# Change the line mode -#map Mf linemode filename -#map Mi linemode fileinfo -#map Mp linemode permissions -#map Mt linemode metatitle - -#moc -#map Mc shell mocp -c -#map Ma shell mocp -a %s -#map Ms shell mocp -p -#map MS shell mocp -S -#map Mp shell mocp -G -#map Mn shell mocp -f -#map Mb shell mocp -r -#map MN shell mocp -s && mocp -c && mocp -a %s && mocp -p -#map Mo shell mocp -j 0%% -#map MK shell killall mocp - - - -# Tagging / Marking -map at tag_toggle -map ut tag_remove -map "<any> tag_toggle tag=%any -map <Space> mark_files toggle=True -map va mark_files all=True toggle=True -map uv mark_files all=True val=False -map vs toggle_visual_mode -map uV toggle_visual_mode reverse=True - - - -# For the nostalgics: Midnight Commander bindings -map <F1> help -map <F3> display_file -map <F4> edit -map <F5> copy -map <F5> console shell echo "require(rmarkdown); render_site()" | R --vanilla -map <F6> cut -map <F7> console mkdir%space -map <F8> console delete -map <F10> exit - - -# In case you work on a keyboard with dvorak layout -map <UP> move up=1 -map <DOWN> move down=1 -map <LEFT> move left=1 -map <RIGHT> move right=1 -map <HOME> move to=0 -map <END> move to=-1 -map <PAGEDOWN> move down=1 pages=True -map <PAGEUP> move up=1 pages=True -map <CR> move right=1 -map <DELETE> console delete -map <INSERT> console touch%space - - -# VIM-like -copymap <UP> k -copymap <DOWN> j -copymap <LEFT> h -copymap <RIGHT> l -copymap <HOME> gg -copymap <END> G -copymap <PAGEDOWN> <C-F> -copymap <PAGEUP> <C-B> - -map J move down=0.5 pages=True -map K move up=0.5 pages=True -copymap J <C-D> -copymap K <C-U> - - -# Jumping around -map H history_go -1 -map L history_go 1 -map ] move_parent 1 -map [ move_parent -1 -map } traverse - -#DEFAULT MOVEMENT -map ge cd /etc -map gu cd /usr -#map gl cd -r . -map gL cd -r %f -#map gv cd /var -map gM cd /mnt -map gr cd / -map gR eval fm.cd(ranger.RANGERDIR) -map g? cd /usr/share/doc/ranger - -# Tabs -map <C-n> tab_new ~ -map <C-w> tab_close -map <TAB> tab_move 1 -map <S-TAB> tab_move -1 -map <A-Right> tab_move 1 -map <A-Left> tab_move -1 -#map gt tab_move 1 -#map gT tab_move -1 -map gn tab_new ~ -#map gc tab_close -map tt tab_close -map uq tab_restore -map <a-1> tab_open 1 -map <a-2> tab_open 2 -map <a-3> tab_open 3 -map <a-4> tab_open 4 -map <a-5> tab_open 5 -map <a-6> tab_open 6 -map <a-7> tab_open 7 -map <a-8> tab_open 8 -map <a-9> tab_open 9 - - -# External Programs -map E edit -map du shell -p du --max-depth=1 -h --apparent-size -map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh -map yp shell -f echo -n %%d/%%f | xsel -i; xsel -o | xsel -i -b -map yd shell -f echo -n %%d | xsel -i; xsel -o | xsel -i -b -map yn shell -f echo -n %%f | xsel -i; xsel -o | xsel -i -b - - -# Filesystem Operations -map = chmod -map cw console rename%space -map aa rename_append -map A eval fm.open_console('rename ' + fm.thisfile.relative_path) -map I eval fm.open_console('rename ' + fm.thisfile.relative_path, position=7) -map pp paste -map po paste overwrite=True -map pP paste append=True -map pO paste overwrite=True append=True -map pl paste_symlink relative=False -map pL paste_symlink relative=True -map phl paste_hardlink -map pht paste_hardlinked_subtree - -map dD console delete - -map dd cut -map ud uncut -map da cut mode=add -map dr cut mode=remove - -map yy copy -map uy uncut -map ya copy mode=add -map yr copy mode=remove - - -# Temporary workarounds -map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) -map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) -map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) -map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) -map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) -map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) -map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) -map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) - - -# Searching -map / console search%space -map n search_next -map N search_next forward=False -map ct search_next order=tag -map cs search_next order=size -map ci search_next order=mimetype -map cc search_next order=ctime -map cm search_next order=mtime -map ca search_next order=atime - - -# Sorting -map or toggle_option sort_reverse -map oz set sort=random -map os chain set sort=size; set sort_reverse=False -map ob chain set sort=basename; set sort_reverse=False -map on chain set sort=natural; set sort_reverse=False -map om chain set sort=mtime; set sort_reverse=False -map oc chain set sort=ctime; set sort_reverse=False -map oa chain set sort=atime; set sort_reverse=False -map ot chain set sort=type; set sort_reverse=False -map oe chain set sort=extension; set sort_reverse=False - -map oS chain set sort=size; set sort_reverse=True -map oB chain set sort=basename; set sort_reverse=True -map oN chain set sort=natural; set sort_reverse=True -map oM chain set sort=mtime; set sort_reverse=True -map oC chain set sort=ctime; set sort_reverse=True -map oA chain set sort=atime; set sort_reverse=True -map oT chain set sort=type; set sort_reverse=True -map oE chain set sort=extension; set sort_reverse=True - -map dc get_cumulative_size - - -# Settings -map zc toggle_option collapse_preview -map zd toggle_option sort_directories_first -map zh toggle_option show_hidden -map <C-h> toggle_option show_hidden -map zi toggle_option flushinput -map zm toggle_option mouse_enabled -map zp toggle_option preview_files -map zP toggle_option preview_directories -map zs toggle_option sort_case_insensitive -map zu toggle_option autoupdate_cumulative_size -map zv toggle_option use_preview_script -map zf console filter%space - - -# Bookmarks -#map `<any> enter_bookmark %any -#map '<any> enter_bookmark %any -#map mm<any> set_bookmark %any -#map um<any> unset_bookmark %any - -#map m<bg> draw_bookmarks -#copymap m<bg> um<bg> `<bg> '<bg> - - -# Generate all the chmod bindings with some python help: -eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) - -eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) - - -###CONSOLE KEYS### -# Basic -cmap <tab> eval fm.ui.console.tab() -cmap <s-tab> eval fm.ui.console.tab(-1) -cmap <ESC> eval fm.ui.console.close() -cmap <CR> eval fm.ui.console.execute() -#cmap <C-l> redraw_window - -copycmap <ESC> <C-c> -copycmap <CR> <C-j> - - -# Move around -cmap <up> eval fm.ui.console.history_move(-1) -cmap <down> eval fm.ui.console.history_move(1) -cmap <left> eval fm.ui.console.move(left=1) -cmap <right> eval fm.ui.console.move(right=1) -cmap <home> eval fm.ui.console.move(right=0, absolute=True) -cmap <end> eval fm.ui.console.move(right=-1, absolute=True) - - -# Line Editing -cmap <backspace> eval fm.ui.console.delete(-1) -cmap <delete> eval fm.ui.console.delete(0) -cmap <C-w> eval fm.ui.console.delete_word() -cmap <A-d> eval fm.ui.console.delete_word(backward=False) -cmap <C-k> eval fm.ui.console.delete_rest(1) -cmap <C-u> eval fm.ui.console.delete_rest(-1) -cmap <C-y> eval fm.ui.console.paste() - -# And of course the emacs way -#copycmap <up> <C-p> -#copycmap <down> <C-n> -#copycmap <left> <C-b> -#copycmap <right> <C-f> -#copycmap <home> <C-a> -#copycmap <end> <C-e> -#copycmap <delete> <C-d> -#copycmap <backspace> <C-h> - - -# Note: There are multiple ways to express backspaces. <backspace> (code 263) -# and <backspace2> (code 127). To be sure, use both. -copycmap <backspace> <backspace2> - -# This special expression allows typing in numerals: -cmap <allow_quantifiers> false - - - -###PAGER KEYS### -# Movement -pmap <down> pager_move down=1 -pmap <up> pager_move up=1 -pmap <left> pager_move left=4 -pmap <right> pager_move right=4 -pmap <home> pager_move to=0 -pmap <end> pager_move to=-1 -pmap <pagedown> pager_move down=1.0 pages=True -pmap <pageup> pager_move up=1.0 pages=True -pmap <C-d> pager_move down=0.5 pages=True -pmap <C-u> pager_move up=0.5 pages=True - -copypmap <UP> k <C-p> -copypmap <DOWN> j <C-n> <CR> -copypmap <LEFT> h -copypmap <RIGHT> l -copypmap <HOME> g -copypmap <END> G -copypmap <C-d> d -copypmap <C-u> u -copypmap <PAGEDOWN> n f <C-F> <Space> -copypmap <PAGEUP> p b <C-B> - - -# Basic -#pmap <C-l> redraw_window -pmap <ESC> pager_close -copypmap <ESC> q Q i <F3> -pmap E edit_file - -# =================================================================== -# == Taskview Keybindings -# =================================================================== - -# Movement -tmap <up> taskview_move up=1 -tmap <down> taskview_move down=1 -tmap <home> taskview_move to=0 -tmap <end> taskview_move to=-1 -tmap <pagedown> taskview_move down=1.0 pages=True -tmap <pageup> taskview_move up=1.0 pages=True -tmap <C-d> taskview_move down=0.5 pages=True -tmap <C-u> taskview_move up=0.5 pages=True - -copytmap <UP> k <C-p> -copytmap <DOWN> j <C-n> <CR> -copytmap <HOME> g -copytmap <END> G -copytmap <C-u> u -copytmap <PAGEDOWN> n f <C-F> <Space> -copytmap <PAGEUP> p b <C-B> - -# Changing priority and deleting tasks -tmap J eval -q fm.ui.taskview.task_move(-1) -tmap K eval -q fm.ui.taskview.task_move(0) -tmap dd eval -q fm.ui.taskview.task_remove() -tmap <pagedown> eval -q fm.ui.taskview.task_move(-1) -tmap <pageup> eval -q fm.ui.taskview.task_move(0) -tmap <delete> eval -q fm.ui.taskview.task_remove() - -# Basic -#tmap <C-l> redraw_window -tmap <ESC> taskview_close -copytmap <ESC> q Q w <C-c> - - -map sp console shell bash speedvid.sh %f%space -map x shell chmod -x %s - -#General -map V console shell vim%space -map cW bulkrename %s -map mkd console mkdir%space -map sc console shell ln -sT%space -map D console delete -map X shell extract %f -map Z shell tar -cvzf %f.tar.gz %f -map <C-f> fzf_select -map <C-l> fzf_locate - -#Document Manipulation -map p1s shell lpr -o sides=one-sided %f -map p2s shell lpr -o sides=two-sided-long-edge %f -map MP shell pandoc %f -o %f.pdf -map MX shell xelatex %f -map ML shell latex %f -map TC shell texclear -map Txa console shell cp ~/Documents/LaTeX/article.tex%space -map Txs console shell cp ~/Documents/LaTeX/beamer.tex%space -map Txh console shell cp ~/Documents/LaTeX/handout.tex%space - -#Image commands -map bg shell cp %f ~/.config/wall.png && feh --bg-scale %f -map bw shell wal -c -i %f && cp %f ~/.config/wall.png -map C shell killall w3mimgdisplay && convert -rotate 90 %s %s -map F shell killall w3mimgdisplay && convert -flop %s %s -map bl shell killall w3mimgdisplay && convert %s -resize 1440x1080\> bl_%s -map TR shell convert %s -transparent white %s - -#Music (mpd) shortcuts -map MS shell mpd -map MK shell killall mpd -map Ma shell mpc add "%s" -map Ms shell mpc play -map Mp shell mpc toggle -map Mn shell mpc next -map Mb shell mpc prev -map MN shell mpc stop && mpc clear && mpc add "%s" -map Mo shell mpc seek 0% - -#Audio tagging (Requires eyeD3) -map Ta eval fm.open_console('shell eyeD3 -a ' + fm.thisfile.relative_path, position=15) -#Artist -map TA eval fm.open_console('shell eyeD3 -A ' + fm.thisfile.relative_path, position=15) -#Album -map Tb eval fm.open_console('shell eyeD3 -b ' + fm.thisfile.relative_path, position=15) -#Album artist -map Tt eval fm.open_console('shell eyeD3 -t "" ' + fm.thisfile.relative_path, position=16) -map Tn eval fm.open_console('shell eyeD3 -n "" ' + fm.thisfile.relative_path, position=16) - -#Downloading -map ytv console shell youtube-dl -ic%space -map yta console shell youtube-dl -xic%space -source ~/.config/ranger/shortcuts.conf diff --git a/.config/ranger/rifle.conf b/.config/ranger/rifle.conf @@ -1,234 +0,0 @@ -# vim: ft=cfg -# -# This is the configuration file of "rifle", ranger's file executor/opener. -# Each line consists of conditions and a command. For each line the conditions -# are checked and if they are met, the respective command is run. -# -# Syntax: -# <condition1> , <condition2> , ... = command -# -# The command can contain these environment variables: -# $1-$9 | The n-th selected file -# $@ | All selected files -# -# If you use the special command "ask", rifle will ask you what program to run. -# -# Prefixing a condition with "!" will negate its result. -# These conditions are currently supported: -# match <regexp> | The regexp matches $1 -# ext <regexp> | The regexp matches the extension of $1 -# mime <regexp> | The regexp matches the mime type of $1 -# name <regexp> | The regexp matches the basename of $1 -# path <regexp> | The regexp matches the absolute path of $1 -# has <program> | The program is installed (i.e. located in $PATH) -# env <variable> | The environment variable "variable" is non-empty -# file | $1 is a file -# directory | $1 is a directory -# number <n> | change the number of this command to n -# terminal | stdin, stderr and stdout are connected to a terminal -# X | $DISPLAY is not empty (i.e. Xorg runs) -# -# There are also pseudo-conditions which have a "side effect": -# flag <flags> | Change how the program is run. See below. -# label <label> | Assign a label or name to the command so it can -# | be started with :open_with <label> in ranger -# | or `rifle -p <label>` in the standalone executable. -# else | Always true. -# -# Flags are single characters which slightly transform the command: -# f | Fork the program, make it run in the background. -# | New command = setsid $command >& /dev/null & -# r | Execute the command with root permissions -# | New command = sudo $command -# t | Run the program in a new terminal. If $TERMCMD is not defined, -# | rifle will attempt to extract it from $TERM. -# | New command = $TERMCMD -e $command -# Note: The "New command" serves only as an illustration, the exact -# implementation may differ. -# Note: When using rifle in ranger, there is an additional flag "c" for -# only running the current file even if you have marked multiple files. - -#------------------------------------------- -# Websites -#------------------------------------------- -# Rarely installed browsers get higher priority; It is assumed that if you -# install a rare browser, you probably use it. Firefox/konqueror/w3m on the -# other hand are often only installed as fallback browsers. - -ext x?html?, has waterfox, X, flag f = waterfox -- "$@" -ext x?html?, has surf, X, flag f = surf -- file://"$1" -ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@" -ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@" -ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@" -ext x?html?, has dwb, X, flag f = dwb -- "$@" -ext x?html?, has jumanji, X, flag f = jumanji -- "$@" -ext x?html?, has luakit, X, flag f = luakit -- "$@" -ext x?html?, has uzbl, X, flag f = uzbl -- "$@" -ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@" -ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@" -ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@" -ext x?html?, has midori, X, flag f = midori -- "$@" -ext x?html?, has chromium, X, flag f = chromium -- "$@" -ext x?html?, has opera, X, flag f = opera -- "$@" -ext x?html?, has firefox, X, flag f = firefox -- "$@" -ext x?html?, has dillo, X, flag f = dillo -- "$@" -ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@" -ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@" -ext x?html?, has epiphany, X, flag f = epiphany -- "$@" -ext x?html?, has konqueror, X, flag f = konqueror -- "$@" -ext x?html?, has elinks, terminal = elinks "$@" -ext x?html?, has links2, terminal = links2 "$@" -ext x?html?, has links, terminal = links "$@" -ext x?html?, has lynx, terminal = lynx -- "$@" -ext x?html?, has w3m, terminal = w3m "$@" - - -#Spreadsheets for scim -ext sc|csv|sxc|xlsx?|xlt|xlw|gnm|gnumeric, = sc-im -- "$@" - -#------------------------------------------- -# Misc -#------------------------------------------- -# Define the "editor" for text files as first action -mime ^text, label editor = $EDITOR -- "$@" -mime ^text, label pager = "$PAGER" -- "$@" -!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@" -!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" - -ext 1 = man "$1" -ext s[wmf]c, has zsnes, X = zsnes "$1" -ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1" -ext nes, has fceux, X = fceux "$1" -ext exe = wine "$1" -name ^[mM]akefile$ = make - -#-------------------------------------------- -# Code -#------------------------------------------- -ext py = python -- "$1" -ext pl = perl -- "$1" -ext rb = ruby -- "$1" -ext js = node -- "$1" -ext sh = sh -- "$1" -ext php = php -- "$1" - -#-------------------------------------------- -# Video/Audio with a GUI -#------------------------------------------- -mime ^video|audio, has gmplayer, X, flag f = gmplayer -- "$@" -mime ^video|audio, has smplayer, X, flag f = smplayer "$@" -mime ^video, has mpv, X, flag f = mpv -- "$@" -mime ^video, has mpv, X, flag f = mpv --fs -- "$@" -mime ^video, has mpv, X, flag f = mpv --loop -- "$@" -mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@" -mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@" -mime ^video, has mplayer, X, flag f = mplayer -- "$@" -mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@" -# mime ^video|audio, has vlc, X, flag f = vlc -- "$@" -mime ^video|audio, has totem, X, flag f = totem -- "$@" -mime ^video|audio, has totem, X, flag f = totem --fullscreen -- "$@" -#-------------------------------------------- -# Audio without X -#------------------------------------------- -mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@" -mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@" -mime ^audio|ogg$, terminal, has mpv = mpv --no-audio-display -- "$@" -mime ^audio|ogg$ = tag "$@" -mime ^audio|ogg$, terminal, has mpv = mpv -- "$@" -ext midi?, terminal, has wildmidi = wildmidi -- "$@" - - -#-------------------------------------------- -# Video without X: -#------------------------------------------- -mime ^video, terminal, !X, has mpv = mpv -- "$@" -mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@" -mime ^video, terminal, !X, has mplayer = mplayer -- "$@" - -#------------------------------------------- -# Documents -#------------------------------------------- -ext pdf, has llpp, X, flag f = llpp "$@" -ext pdf, has zathura, X, flag f = zathura -- "$@" -ext pdf, has mupdf, X, flag f = mupdf "$@" -ext pdf, has mupdf, X, flag f = mupdf -I "$@" -ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@" -ext pdf, has apvlv, X, flag f = apvlv -- "$@" -ext pdf, has xpdf, X, flag f = xpdf -- "$@" -ext pdf, has evince, X, flag f = evince -- "$@" -ext pdf, has atril, X, flag f = atril -- "$@" -ext pdf, has okular, X, flag f = okular -- "$@" -ext pdf, has epdfview, X, flag f = epdfview -- "$@" -ext pdf, has qpdfview, X, flag f = qpdfview "$@" - -ext epub, has zathura, X, flag f = zathura -- "$@" -ext epub, has mupdf, X, flag f = mupdf "$@" - - -ext docx, has abiword, X, flag f = abiword "$@" - -ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER" - -ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@" -ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@" -ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@" -ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@" -ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@" - -ext djvu, has zathura,X, flag f = zathura -- "$@" -ext djvu, has evince, X, flag f = evince -- "$@" -ext djvu, has atril, X, flag f = atril -- "$@" - -#------------------------------------------- -# Image Viewing: -#------------------------------------------- -mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@" -mime ^image/svg, has display, X, flag f = display -- "$@" -mime ^image/gif, has mpv, X, flag f = mpv --loop -- "$@" -mime ^image/gif, has viewnior, X, flag f = viewnior -- "$@" -mime ^image/gif, has qutebrowser, X, flag f = qutebrowser -- "$@" - -ext xcf, X, flag f = gimp -- "$@" -mime ^image, has sxiv, X, flag f = sxiv -a -- "$@" -mime ^image, has feh, X, flag f = feh --scale-down --auto-zoom --image-bg black -- "$@" -mime ^image, has feh, X, flag f = feh --scale-down --auto-zoom -- "$@" -mime ^image, has sxiv, X, flag f = sxiv -- "$@" -mime ^image, has mirage, X, flag f = mirage -- "$@" -mime ^image, has ristretto, X, flag f = ristretto "$@" -mime ^image, has eog, X, flag f = eog -- "$@" -mime ^image, has eom, X, flag f = eom -- "$@" -mime ^image, has gimp, X, flag f = gimp -- "$@" -mime ^image, has inkscape, X, flag f = inkscape -- "$@" -mime ^image, has pinta, X, flag f = pinta -- "$@" -mime ^image, has mypaint, X, flag f = mypaint -- "$@" -mime ^image, has kolourpaint, X, flag f = kolourpaint -- "$@" - -#------------------------------------------- -# Archives -#------------------------------------------- -# This requires atool -ext jar = java -jar "$@" - -ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has als = als -- "$@" | "$PAGER" -ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has als = als -- "$@" | "$PAGER" -ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has aunpack = aunpack -- "$@" -ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has aunpack = aunpack -- "$@" - -# Fallback: -ext tar|gz, has tar = tar vvtf "$@" | "$PAGER" -ext tar|gz, has tar = tar vvxf "$@" - -#------------------------------------------- -# Misc -#------------------------------------------- -label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1" -label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1" -label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1" -label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1" - -# Define the editor for non-text files + pager as last action - !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask -label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@" -label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" - -ext blend, has blender, X, flag f = blender -- "$@" diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh @@ -1,125 +0,0 @@ -#!/usr/bin/env sh -# ranger supports enhanced previews. If the option "use_preview_script" -# is set to True and this file exists, this script will be called and its -# output is displayed in ranger. ANSI color codes are supported. - -# NOTES: This script is considered a configuration file. If you upgrade -# ranger, it will be left untouched. (You must update it yourself.) -# Also, ranger disables STDIN here, so interactive scripts won't work properly - -# Meanings of exit codes: -# code | meaning | action of ranger -# -----+------------+------------------------------------------- -# 0 | success | success. display stdout as preview -# 1 | no preview | failure. display no preview at all -# 2 | plain text | display the plain content of the file -# 3 | fix width | success. Don't reload when width changes -# 4 | fix height | success. Don't reload when height changes -# 5 | fix both | success. Don't ever reload -# 6 | image | success. display the image $cached points to as an image preview -# 7 | image | success. display the file directly as an image - -# Meaningful aliases for arguments: -path="$1" # Full path of the selected file -width="$2" # Width of the preview pane (number of fitting characters) -height="$3" # Height of the preview pane (number of fitting characters) -cached="$4" # Path that should be used to cache image previews -preview_images="$5" # "True" if image previews are enabled, "False" otherwise. - -maxln=200 # Stop after $maxln lines. Can be used like ls | head -n $maxln - -# Find out something about the file: -mimetype=$(file --mime-type -Lb "$path") -extension=$(/bin/echo "${path##*.}" | awk '{print tolower($0)}') - -# Functions: -# runs a command and saves its output into $output. Useful if you need -# the return value AND want to use the output in a pipe -try() { output=$(eval '"$@"'); } - -# writes the output of the previously used "try" command -dump() { /bin/echo "$output"; } - -# a common post-processing function used after most commands -trim() { head -n "$maxln"; } - -# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success -safepipe() { "$@"; test $? = 0 -o $? = 141; } - -# Image previews, if enabled in ranger. -if [ "$preview_images" = "True" ]; then - case "$mimetype" in - image/svg+xml) - convert "$path" "$cached" && exit 6 || exit 1;; - image/*) - exit 7;; - # Image preview for video, disabled by default.: - ###video/*) - ### ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;; - # Image preview for video, disabled by default.: - video/*) - mpv --frames=0 "$path" | tail -n +5 | \ - sed 's/^\.$//' | \ - awk '1;/Description: /{exit}' && exit 0 || exit 1;; - esac -fi - -case "$extension" in - # Archive extensions: - a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ - rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) - try als "$path" && { dump | trim; exit 0; } - try acat "$path" && { dump | trim; exit 3; } - try bsdtar -lf "$path" && { dump | trim; exit 0; } - exit 1;; - csv) - sed "s/\(.*\".*\),\(.*\".*\)/\1~\2/;s/,/\t/g;s/~/,/g;s/\t\"/\t/g;s/\"\t/\t/g" "$path" && { dump| trim; exit 0; } || exit 1;; - rar) - # avoid password prompt by providing empty password - try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;; - 7z) - # avoid password prompt by providing empty password - try 7z -p l "$path" && { dump | trim; exit 0; } || exit 1;; - # PDF documents: - pdf) - try pdftoppm -jpeg -singlefile "$path" "${cached//.jpg}" && exit 6 || exit 1;; - #try pdftotext -l 10 -nopgbrk -q "$path" - && \ - #{ dump | trim | fmt -s -w $width; exit 0; } || exit 1;; - # BitTorrent Files - torrent) - try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;; - # ODT Files - odt|ods|odp|sxw) - try odt2txt "$path" && { dump | trim; exit 5; } || exit 1;; - # HTML Pages: - htm|html|xhtml) - try w3m -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } - try lynx -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } - try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } - ;; # fall back to highlight/cat if the text browsers fail -esac - -case "$mimetype" in - # Syntax highlight for text files: - text/* | */xml) - if [ "$(tput colors)" -ge 256 ]; then - pygmentize_format=terminal256 - highlight_format=ansi - else - pygmentize_format=terminal - highlight_format=ansi - fi - try safepipe highlight --out-format=${highlight_format} "$path" && { dump | trim; exit 5; } - try safepipe pygmentize -f ${pygmentize_format} "$path" && { dump | trim; exit 5; } - exit 2;; - # Ascii-previews of images: - image/*) - img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;; - # Display information about media files: - video/* | audio/*) - exiftool "$path" && exit 5 - # Use sed to remove spaces so the output fits into the narrow window - try mediainfo "$path" && { dump | trim | sed 's/ \+:/: /;'; exit 5; } || exit 1;; -esac - -exit 1 diff --git a/.config/ranger/shortcuts.conf b/.config/ranger/shortcuts.conf @@ -1,404 +0,0 @@ -map gaa cd ~/articles -map taa tab_new ~/articles -map maa shell mv -v %s ~/articles -map Yaa shell cp -rv %s ~/articles -map gao cd ~/articles/own -map tao tab_new ~/articles/own -map mao shell mv -v %s ~/articles/own -map Yao shell cp -rv %s ~/articles/own -map gag cd ~/articles/glaciology_sedimentology -map tag tab_new ~/articles/glaciology_sedimentology -map mag shell mv -v %s ~/articles/glaciology_sedimentology -map Yag shell cp -rv %s ~/articles/glaciology_sedimentology -map gbin cd ~/bin -map tbin tab_new ~/bin -map mbin shell mv -v %s ~/bin -map Ybin shell cp -rv %s ~/bin -map gbb cd ~/books -map tbb tab_new ~/books -map mbb shell mv -v %s ~/books -map Ybb shell cp -rv %s ~/books -map gbc cd ~/books/cheatsheets -map tbc tab_new ~/books/cheatsheets -map mbc shell mv -v %s ~/books/cheatsheets -map Ybc shell cp -rv %s ~/books/cheatsheets -map gbd cd ~/books/db -map tbd tab_new ~/books/db -map mbd shell mv -v %s ~/books/db -map Ybd shell cp -rv %s ~/books/db -map gbf cd ~/books/fiction -map tbf tab_new ~/books/fiction -map mbf shell mv -v %s ~/books/fiction -map Ybf shell cp -rv %s ~/books/fiction -map gbg cd ~/books/golang -map tbg tab_new ~/books/golang -map mbg shell mv -v %s ~/books/golang -map Ybg shell cp -rv %s ~/books/golang -map gbl cd ~/books/linux -map tbl tab_new ~/books/linux -map mbl shell mv -v %s ~/books/linux -map Ybl shell cp -rv %s ~/books/linux -map gbn cd ~/books/netsec -map tbn tab_new ~/books/netsec -map mbn shell mv -v %s ~/books/netsec -map Ybn shell cp -rv %s ~/books/netsec -map gbp cd ~/books/photography -map tbp tab_new ~/books/photography -map mbp shell mv -v %s ~/books/photography -map Ybp shell cp -rv %s ~/books/photography -map gby cd ~/books/python -map tby tab_new ~/books/python -map mby shell mv -v %s ~/books/python -map Yby shell cp -rv %s ~/books/python -map gbs cd ~/books/science -map tbs tab_new ~/books/science -map mbs shell mv -v %s ~/books/science -map Ybs shell cp -rv %s ~/books/science -map gbv cd ~/books/vim -map tbv tab_new ~/books/vim -map mbv shell mv -v %s ~/books/vim -map Ybv shell cp -rv %s ~/books/vim -map gcf cd ~/.config -map tcf tab_new ~/.config -map mcf shell mv -v %s ~/.config -map Ycf shell cp -rv %s ~/.config -map gcg cd ~/code/geodatahub -map tcg tab_new ~/code/geodatahub -map mcg shell mv -v %s ~/code/geodatahub -map Ycg shell cp -rv %s ~/code/geodatahub -map gcm cd ~/code/mst -map tcm tab_new ~/code/mst -map mcm shell mv -v %s ~/code/mst -map Ycm shell cp -rv %s ~/code/mst -map gcs cd ~/code/sphere -map tcs tab_new ~/code/sphere -map mcs shell mv -v %s ~/code/sphere -map Ycs shell cp -rv %s ~/code/sphere -map gcw cd ~/code/webpage -map tcw tab_new ~/code/webpage -map mcw shell mv -v %s ~/code/webpage -map Ycw shell cp -rv %s ~/code/webpage -map gD cd ~/code/dotfiles -map tD tab_new ~/code/dotfiles -map mD shell mv -v %s ~/code/dotfiles -map YD shell cp -rv %s ~/code/dotfiles -map gdd cd ~/doc -map tdd tab_new ~/doc -map mdd shell mv -v %s ~/doc -map Ydd shell cp -rv %s ~/doc -map gdc cd ~/doc/camera -map tdc tab_new ~/doc/camera -map mdc shell mv -v %s ~/doc/camera -map Ydc shell cp -rv %s ~/doc/camera -map gdf cd ~/doc/finances -map tdf tab_new ~/doc/finances -map mdf shell mv -v %s ~/doc/finances -map Ydf shell cp -rv %s ~/doc/finances -map gdg cd ~/doc/geodatahub -map tdg tab_new ~/doc/geodatahub -map mdg shell mv -v %s ~/doc/geodatahub -map Ydg shell cp -rv %s ~/doc/geodatahub -map gdp cd ~/doc/photography -map tdp tab_new ~/doc/photography -map mdp shell mv -v %s ~/doc/photography -map Ydp shell cp -rv %s ~/doc/photography -map gdr cd ~/doc/receipts -map tdr tab_new ~/doc/receipts -map mdr shell mv -v %s ~/doc/receipts -map Ydr shell cp -rv %s ~/doc/receipts -map gdt cd ~/doc/thinkpad_x220 -map tdt tab_new ~/doc/thinkpad_x220 -map mdt shell mv -v %s ~/doc/thinkpad_x220 -map Ydt shell cp -rv %s ~/doc/thinkpad_x220 -map gdv cd ~/doc/vigtige_papirer -map tdv tab_new ~/doc/vigtige_papirer -map mdv shell mv -v %s ~/doc/vigtige_papirer -map Ydv shell cp -rv %s ~/doc/vigtige_papirer -map ge cd /etc -map te tab_new /etc -map me shell mv -v %s /etc -map Ye shell cp -rv %s /etc -map gh cd ~/ -map th tab_new ~/ -map mh shell mv -v %s ~/ -map Yh shell cp -rv %s ~/ -map gmnt cd /mnt -map tmnt tab_new /mnt -map mmnt shell mv -v %s /mnt -map Ymnt shell cp -rv %s /mnt -map gM cd ~/music -map tM tab_new ~/music -map mM shell mv -v %s ~/music -map YM shell cp -rv %s ~/music -map gpp cd ~/photos -map tpp tab_new ~/photos -map mpp shell mv -v %s ~/photos -map Ypp shell cp -rv %s ~/photos -map gsrv cd /mnt/ad-server-volumes/ext2 -map tsrv tab_new /mnt/ad-server-volumes/ext2 -map msrv shell mv -v %s /mnt/ad-server-volumes/ext2 -map Ysrv shell cp -rv %s /mnt/ad-server-volumes/ext2 -map gt cd ~/tmp -map tt tab_new ~/tmp -map mt shell mv -v %s ~/tmp -map Yt shell cp -rv %s ~/tmp -map gu cd ~/uni -map tu tab_new ~/uni -map mu shell mv -v %s ~/uni -map Yu shell cp -rv %s ~/uni -map gue cd ~/uni/events -map tue tab_new ~/uni/events -map mue shell mv -v %s ~/uni/events -map Yue shell cp -rv %s ~/uni/events -map gup cd ~/uni/postdoc -map tup tab_new ~/uni/postdoc -map mup shell mv -v %s ~/uni/postdoc -map Yup shell cp -rv %s ~/uni/postdoc -map gupr cd ~/uni/presentations -map tupr tab_new ~/uni/presentations -map mupr shell mv -v %s ~/uni/presentations -map Yupr shell cp -rv %s ~/uni/presentations -map guj cd ~/uni/job -map tuj tab_new ~/uni/job -map muj shell mv -v %s ~/uni/job -map Yuj shell cp -rv %s ~/uni/job -map gujc cd ~/uni/job/cv -map tujc tab_new ~/uni/job/cv -map mujc shell mv -v %s ~/uni/job/cv -map Yujc shell cp -rv %s ~/uni/job/cv -map gvv cd ~/videos -map tvv tab_new ~/videos -map mvv shell mv -v %s ~/videos -map Yvv shell cp -rv %s ~/videos -map gvp cd ~/videos/photo -map tvp tab_new ~/videos/photo -map mvp shell mv -v %s ~/videos/photo -map Yvp shell cp -rv %s ~/videos/photo -map gvs cd ~/videos/science -map tvs tab_new ~/videos/science -map mvs shell mv -v %s ~/videos/science -map Yvs shell cp -rv %s ~/videos/science -map gvt cd ~/videos/tech -map tvt tab_new ~/videos/tech -map mvt shell mv -v %s ~/videos/tech -map Yvt shell cp -rv %s ~/videos/tech -map bf shell $EDITOR ~/.bmfiles -map bd shell $EDITOR ~/.bmdirs -map cfb shell $EDITOR ~/.config/i3/i3blocks -map cfd shell $EDITOR ~/code/dotfiles/lib/dwm/config.h -map cfm shell $EDITOR ~/.mutt/muttrc -map cfn shell $EDITOR ~/.config/newsboat/config -map cfr shell $EDITOR ~/.config/ranger/rc.conf -map cfs shell $EDITOR ~/code/dotfiles/lib/st/config.h -map cfS shell $EDITOR ~/code/dotfiles/lib/slstatus/config.h -map cft shell $EDITOR ~/code/dotfiles/lib/tabbed/config.h -map cfi shell $EDITOR ~/.config/i3/config -map cfu shell $EDITOR ~/.config/newsboat/urls -map cfv shell $EDITOR ~/.vim/vimrc -map cfx shell $EDITOR ~/.xinitrc -map cfX shell $EDITOR ~/.Xresources -map cfz shell $EDITOR ~/.zshrc -map cv shell $EDITOR ~/uni/job/cv/cv.tex -map eb shell $EDITOR ~/articles/own/BIB.bib -map gaa cd ~/articles -map taa tab_new ~/articles -map maa shell mv -v %s ~/articles -map Yaa shell cp -rv %s ~/articles -map gao cd ~/articles/own -map tao tab_new ~/articles/own -map mao shell mv -v %s ~/articles/own -map Yao shell cp -rv %s ~/articles/own -map gag cd ~/articles/glaciology_sedimentology -map tag tab_new ~/articles/glaciology_sedimentology -map mag shell mv -v %s ~/articles/glaciology_sedimentology -map Yag shell cp -rv %s ~/articles/glaciology_sedimentology -map gbin cd ~/bin -map tbin tab_new ~/bin -map mbin shell mv -v %s ~/bin -map Ybin shell cp -rv %s ~/bin -map gbb cd ~/books -map tbb tab_new ~/books -map mbb shell mv -v %s ~/books -map Ybb shell cp -rv %s ~/books -map gbc cd ~/books/cheatsheets -map tbc tab_new ~/books/cheatsheets -map mbc shell mv -v %s ~/books/cheatsheets -map Ybc shell cp -rv %s ~/books/cheatsheets -map gbd cd ~/books/db -map tbd tab_new ~/books/db -map mbd shell mv -v %s ~/books/db -map Ybd shell cp -rv %s ~/books/db -map gbf cd ~/books/fiction -map tbf tab_new ~/books/fiction -map mbf shell mv -v %s ~/books/fiction -map Ybf shell cp -rv %s ~/books/fiction -map gbg cd ~/books/golang -map tbg tab_new ~/books/golang -map mbg shell mv -v %s ~/books/golang -map Ybg shell cp -rv %s ~/books/golang -map gbl cd ~/books/linux -map tbl tab_new ~/books/linux -map mbl shell mv -v %s ~/books/linux -map Ybl shell cp -rv %s ~/books/linux -map gbn cd ~/books/netsec -map tbn tab_new ~/books/netsec -map mbn shell mv -v %s ~/books/netsec -map Ybn shell cp -rv %s ~/books/netsec -map gbp cd ~/books/photography -map tbp tab_new ~/books/photography -map mbp shell mv -v %s ~/books/photography -map Ybp shell cp -rv %s ~/books/photography -map gby cd ~/books/python -map tby tab_new ~/books/python -map mby shell mv -v %s ~/books/python -map Yby shell cp -rv %s ~/books/python -map gbs cd ~/books/science -map tbs tab_new ~/books/science -map mbs shell mv -v %s ~/books/science -map Ybs shell cp -rv %s ~/books/science -map gbv cd ~/books/vim -map tbv tab_new ~/books/vim -map mbv shell mv -v %s ~/books/vim -map Ybv shell cp -rv %s ~/books/vim -map gcf cd ~/.config -map tcf tab_new ~/.config -map mcf shell mv -v %s ~/.config -map Ycf shell cp -rv %s ~/.config -map gcg cd ~/code/geodatahub -map tcg tab_new ~/code/geodatahub -map mcg shell mv -v %s ~/code/geodatahub -map Ycg shell cp -rv %s ~/code/geodatahub -map gcm cd ~/code/mst -map tcm tab_new ~/code/mst -map mcm shell mv -v %s ~/code/mst -map Ycm shell cp -rv %s ~/code/mst -map gcs cd ~/code/sphere -map tcs tab_new ~/code/sphere -map mcs shell mv -v %s ~/code/sphere -map Ycs shell cp -rv %s ~/code/sphere -map gcw cd ~/code/webpage -map tcw tab_new ~/code/webpage -map mcw shell mv -v %s ~/code/webpage -map Ycw shell cp -rv %s ~/code/webpage -map gD cd ~/code/dotfiles -map tD tab_new ~/code/dotfiles -map mD shell mv -v %s ~/code/dotfiles -map YD shell cp -rv %s ~/code/dotfiles -map gdd cd ~/doc -map tdd tab_new ~/doc -map mdd shell mv -v %s ~/doc -map Ydd shell cp -rv %s ~/doc -map gdc cd ~/doc/camera -map tdc tab_new ~/doc/camera -map mdc shell mv -v %s ~/doc/camera -map Ydc shell cp -rv %s ~/doc/camera -map gdf cd ~/doc/finances -map tdf tab_new ~/doc/finances -map mdf shell mv -v %s ~/doc/finances -map Ydf shell cp -rv %s ~/doc/finances -map gdg cd ~/doc/geodatahub -map tdg tab_new ~/doc/geodatahub -map mdg shell mv -v %s ~/doc/geodatahub -map Ydg shell cp -rv %s ~/doc/geodatahub -map gdp cd ~/doc/photography -map tdp tab_new ~/doc/photography -map mdp shell mv -v %s ~/doc/photography -map Ydp shell cp -rv %s ~/doc/photography -map gdr cd ~/doc/receipts -map tdr tab_new ~/doc/receipts -map mdr shell mv -v %s ~/doc/receipts -map Ydr shell cp -rv %s ~/doc/receipts -map gdt cd ~/doc/thinkpad_x220 -map tdt tab_new ~/doc/thinkpad_x220 -map mdt shell mv -v %s ~/doc/thinkpad_x220 -map Ydt shell cp -rv %s ~/doc/thinkpad_x220 -map gdv cd ~/doc/vigtige_papirer -map tdv tab_new ~/doc/vigtige_papirer -map mdv shell mv -v %s ~/doc/vigtige_papirer -map Ydv shell cp -rv %s ~/doc/vigtige_papirer -map ge cd /etc -map te tab_new /etc -map me shell mv -v %s /etc -map Ye shell cp -rv %s /etc -map gh cd ~/ -map th tab_new ~/ -map mh shell mv -v %s ~/ -map Yh shell cp -rv %s ~/ -map gmnt cd /mnt -map tmnt tab_new /mnt -map mmnt shell mv -v %s /mnt -map Ymnt shell cp -rv %s /mnt -map gM cd ~/music -map tM tab_new ~/music -map mM shell mv -v %s ~/music -map YM shell cp -rv %s ~/music -map gpp cd ~/photos -map tpp tab_new ~/photos -map mpp shell mv -v %s ~/photos -map Ypp shell cp -rv %s ~/photos -map gsrv cd /mnt/ad-server-volumes/ext2 -map tsrv tab_new /mnt/ad-server-volumes/ext2 -map msrv shell mv -v %s /mnt/ad-server-volumes/ext2 -map Ysrv shell cp -rv %s /mnt/ad-server-volumes/ext2 -map gt cd ~/tmp -map tt tab_new ~/tmp -map mt shell mv -v %s ~/tmp -map Yt shell cp -rv %s ~/tmp -map gu cd ~/uni -map tu tab_new ~/uni -map mu shell mv -v %s ~/uni -map Yu shell cp -rv %s ~/uni -map gue cd ~/uni/events -map tue tab_new ~/uni/events -map mue shell mv -v %s ~/uni/events -map Yue shell cp -rv %s ~/uni/events -map gup cd ~/uni/postdoc -map tup tab_new ~/uni/postdoc -map mup shell mv -v %s ~/uni/postdoc -map Yup shell cp -rv %s ~/uni/postdoc -map gupr cd ~/uni/presentations -map tupr tab_new ~/uni/presentations -map mupr shell mv -v %s ~/uni/presentations -map Yupr shell cp -rv %s ~/uni/presentations -map guj cd ~/uni/job -map tuj tab_new ~/uni/job -map muj shell mv -v %s ~/uni/job -map Yuj shell cp -rv %s ~/uni/job -map gujc cd ~/uni/job/cv -map tujc tab_new ~/uni/job/cv -map mujc shell mv -v %s ~/uni/job/cv -map Yujc shell cp -rv %s ~/uni/job/cv -map gvv cd ~/videos -map tvv tab_new ~/videos -map mvv shell mv -v %s ~/videos -map Yvv shell cp -rv %s ~/videos -map gvp cd ~/videos/photo -map tvp tab_new ~/videos/photo -map mvp shell mv -v %s ~/videos/photo -map Yvp shell cp -rv %s ~/videos/photo -map gvs cd ~/videos/science -map tvs tab_new ~/videos/science -map mvs shell mv -v %s ~/videos/science -map Yvs shell cp -rv %s ~/videos/science -map gvt cd ~/videos/tech -map tvt tab_new ~/videos/tech -map mvt shell mv -v %s ~/videos/tech -map Yvt shell cp -rv %s ~/videos/tech -map bf shell $EDITOR ~/.bmfiles -map bd shell $EDITOR ~/.bmdirs -map cfb shell $EDITOR ~/.config/i3/i3blocks -map cfd shell $EDITOR ~/code/dotfiles/lib/dwm/config.h -map cfm shell $EDITOR ~/.mutt/muttrc -map cfn shell $EDITOR ~/.config/newsboat/config -map cfr shell $EDITOR ~/.config/ranger/rc.conf -map cfs shell $EDITOR ~/code/dotfiles/lib/st/config.h -map cfS shell $EDITOR ~/code/dotfiles/lib/slstatus/config.h -map cft shell $EDITOR ~/code/dotfiles/lib/tabbed/config.h -map cfi shell $EDITOR ~/.config/i3/config -map cfu shell $EDITOR ~/.config/newsboat/urls -map cfv shell $EDITOR ~/.vim/vimrc -map cfx shell $EDITOR ~/.xinitrc -map cfX shell $EDITOR ~/.Xresources -map cfz shell $EDITOR ~/.zshrc -map cv shell $EDITOR ~/uni/job/cv/cv.tex -map eb shell $EDITOR ~/articles/own/BIB.bib diff --git a/.config/rofi/config b/.config/rofi/config @@ -1,2 +0,0 @@ -rofi.theme: /usr/share/rofi/themes/Monokai.rasi -rofi.font: PragmataPro 10 diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc @@ -1,69 +0,0 @@ -#!/bin/bash - -# -# BSPWM hotkeys -# - -# Quit -#super + alt + Escape -super + shift + e - pamixer --get-volume > ~/.volume \ - pkill panel - -# Balance tree -super + b - bspc desktop -B - -# Change windows params -super + {g,f,s,l} - bspc window -t {floating,fullscreen,sticky,locked} - -# Close window -alt + w - bspc window -c - -# Desktops -super + {1-5} - bspc desktop -f ^{1-5} - -# Move focus: super+h,j,k,l -# Swap windows: super+shift+h,j,k,l -super + {_,shift + }{h,j,k,l} - bspc window --{focus,swap} {left,down,up,right} - - -# Mouse -~button1 - bspc pointer -g focus - -super + button{1-3} - bspc pointer -g {move,resize_side,resize_corner} - -super + !button{1-3} - bspc pointer -t %i %i - -super + @button{1-3} - bspc pointer -u - -# -# Non WM hotkeys -# - -# URxvt -super + Return - urxvt -e tmux -super + shift + Return - urxvt - -# XTerm -super + alt + Return - xterm - -# dmenu -super + space - dmenu_wrapper - -# Reload SXHKD -super + r - pkill -USR1 -x sxhkd \ - ~/.config/bspwm/bspwmrc diff --git a/.kwm/kwmrc b/.kwm/kwmrc @@ -1,203 +0,0 @@ -# This is a sample config for Kwm -# The commands listed here can be of -# two types. -# -# Commands prefixed with 'kwmc' will call -# local functions corresponding to the -# kwmc syntax. -# -# To run a system command, use the prefix -# 'sys' and then the requested command -# e.g 'sys mvim' would open macvim - -# Read file and execute commands as -# if they were written inside kwmrc. -# -# include filename -# -# e.g: bind-commands in a separate file called 'binds' -# include binds - -# Set default values for screen padding -kwmc config padding 40 20 20 20 - -# Set default values for container gaps -kwmc config gap 15 15 - -# Default tiling mode for Kwm (bsp | monocle | float | off) -kwmc config tiling float - -# Let Kwm listen for hotkeys -kwmc config hotkeys on - -# Set prefix for Kwms hotkeys -kwmc config prefix-key ctrl-x - -# Prefix is not applied globally -kwmc config prefix-global off - -# Time in seconds, before prefix must be re-activated -kwmc config prefix-timeout 0.75 - -# Automatically float windows that fail to resize -kwmc config float-non-resizable on - -# Set focus-follows-mouse-mode to autoraise -kwmc config focus autoraise - -# Focus-follows-mouse is temporarily disabled when -# a floating window has focus -kwmc config focus standby-on-float on - -# The mouse will automatically move to the center -# of the focused window -kwmc config focus mouse-follows on - -# Allow window focus to wrap-around -kwmc config cycle-focus screen - -# Default tiling mode for new spaces -kwmc config space bsp - -# Override default settings for space 1 on screen 0 -# kwmc config space 0 1 mode monocle -# kwmc config space 0 1 padding 100 100 100 100 -# kwmc config space 0 1 gap 40 40 - -# Override default settings for screen 1 -# kwmc config screen 1 mode bsp -# kwmc config screen 1 padding 100 100 100 100 -# kwmc config screen 1 gap 40 40 - -# Set default container split-ratio -kwmc config split-ratio 0.5 - -# New splits become the left leaf-node -kwmc config spawn left - -# Add custom tiling rules for applications that -# does not get tiled by Kwm by default. -# This is because some applications do not have the -# AXWindowRole and AXStandardWindowSubRole -kwmc config add-role AXDialog iTerm2 - -# The following command blacklists a specific application -# from Kwms tiling (PS: The app name is case-sensitive) -# If the name consist of multiple words, the command -# looks like: kwmc config float Google Chrome -kwmc config float Steam -kwmc config float Photoshop - -# The following command captures an application to the -# given screen, if the screen exists. By doing this -# the application can no longer be moved to other screens -# kwmc config capture 1 iTunes - -# Enable border for focused window -kwmc config focused-border on -kwmc config focused-border size 5 -kwmc config focused-border color FFBDD322 - -# Enable border for marked window -kwmc config marked-border on -kwmc config marked-border size 5 -kwmc config marked-border color FFCC5577 - -# Change border color when prefix-key is active -kwmc config prefix-border on -kwmc config prefix-border size 5 -kwmc config prefix-border color FF458588 - -######## Default Keybinds ######## - -# Quit Kwm -kwmc bind cmd+alt+ctrl-q quit - -# Launch iTerm2 -kwmc bind alt-return sys open -na /Applications/iTerm2.app - -# Toggle Focus Autoraise -kwmc bind cmd+alt+ctrl-t config focus toggle - -# Set Space Tiling Mode To BSP -kwmc bind alt+ctrl-a space -t bsp - -# Set Space Tiling Mode To Monocle -kwmc bind alt+ctrl-s space -t monocle - -# Set Space Tiling Mode To Floating -kwmc bind alt+ctrl-d space -t float - -# Rotate Window-Tree By 90* (Clockwise) -kwmc bind alt+ctrl-r tree -r 90 - -# Modify Container -kwmc bind prefix-s window -c split -kwmc bind prefix-h window -c reduce 0.05 -kwmc bind prefix-l window -c expand 0.05 - -# Set Temporary Window Container -kwmc bind prefix-f window -t fullscreen -kwmc bind prefix-p window -t parent -kwmc bind prefix-w window -t float - -# Mark Window -kwmc bind cmd+alt+ctrl-m mark -w focused -kwmc bind cmd+alt+ctrl-h mark -w west wrap -kwmc bind cmd+alt+ctrl-l mark -w east wrap -kwmc bind cmd+alt+ctrl-j mark -w south wrap -kwmc bind cmd+alt+ctrl-k mark -w north wrap - -# Give Focus To Window -kwmc bind alt-h window -f west -kwmc bind alt-l window -f east -kwmc bind alt-j window -f south -kwmc bind alt-k window -f north - -# Give Focus To Screen -#kwmc bind cmd+alt-1 screen -f 0 -#kwmc bind cmd+alt-2 screen -f 1 -#kwmc bind cmd+alt-3 screen -f 2 - -# Move Focused Window -kwmc bind alt+shift-h window -s west -kwmc bind alt+shift-j window -s south -kwmc bind alt+shift-k window -s north -kwmc bind alt+shift-l window -s east - -# Swap With Marked Window -kwmc bind ctrl+alt-m window -s mark - -# Detach Focused Window And Reinsert In Direction -kwmc bind ctrl+shift-k window -x north -kwmc bind ctrl+shift-l window -x east -kwmc bind ctrl+shift-j window -x south -kwmc bind ctrl+shift-h window -x west - -# Detach Marked Window And Reinsert At Focused Window -kwmc bind ctrl+shift-x window -x mark - -# Move Focused Window To Screen -kwmc bind alt+shift-1 screen -m 0 -kwmc bind alt+shift-2 screen -m 1 -kwmc bind alt+shift-3 screen -m 2 - -# Increase Container Gaps -kwmc bind prefix-x space -g increase horizontal -kwmc bind prefix-y space -g increase vertical - -# Decrease Container Gaps -kwmc bind prefix+shift-x space -g decrease horizontal -kwmc bind prefix+shift-y space -g decrease vertical - -# Increase Screen Padding -kwmc bind prefix-left space -p increase left -kwmc bind prefix-right space -p increase right -kwmc bind prefix-up space -p increase top -kwmc bind prefix-down space -p increase bottom - -# Decrease Screen Padding -kwmc bind prefix+shift-left space -p decrease left -kwmc bind prefix+shift-right space -p decrease right -kwmc bind prefix+shift-up space -p decrease top -kwmc bind prefix+shift-down space -p decrease bottom diff --git a/.spacemacs b/.spacemacs @@ -1,275 +0,0 @@ -;; -*- mode: dotspacemacs -*- -;; This file is loaded by Spacemacs at startup. -;; It must be stored in your home directory. - -(defun dotspacemacs/layers () - "Configuration Layers declaration." - (setq-default - ;; List of additional paths where to look for configuration layers. - ;; Paths must have a trailing slash (ie. `~/.mycontribs/') - dotspacemacs-configuration-layer-path '() - ;; List of configuration layers to load. If it is the symbol `all' instead - ;; of a list then all discovered layers will be installed. - dotspacemacs-configuration-layers - '( - ;; -------------------------------------------------------- - ;; Example of useful layers you may want to use right away - ;; Uncomment a layer name and press SPC f e R to install it - ;; -------------------------------------------------------- - auto-completion - better-defaults - git - github - ;diff-hl - markdown - org - syntax-checking - latex - python - c-c++ - html - lua - shell - shell-scripts - ;yasnippet - osx - tmux - themes-megapack - ) - ;; A list of packages and/or extensions that will not be install and loaded. - dotspacemacs-excluded-packages '() - ;; If non-nil spacemacs will delete any orphan packages, i.e. packages that - ;; are declared in a layer which is not a member of - ;; the list `dotspacemacs-configuration-layers' - dotspacemacs-delete-orphan-packages t)) - - -(defun dotspacemacs/init () - "Initialization function. -This function is called at the very startup of Spacemacs initialization -before layers configuration." - ;; This setq-default sexp is an exhaustive list of all the supported - ;; spacemacs settings. - (setq-default - ;; Either `vim' or `emacs'. Evil is always enabled but if the variable - ;; is `emacs' then the `holy-mode' is enabled at startup. - dotspacemacs-editing-style 'vim - ;; If non nil output loading progess in `*Messages*' buffer. - dotspacemacs-verbose-loading nil - ;; Specify the startup banner. Default value is `official', it displays - ;; the official spacemacs logo. An integer value is the index of text - ;; banner, `random' chooses a random text banner in `core/banners' - ;; directory. A string value must be a path to a .PNG file. - ;; If the value is nil then no banner is displayed. - ;; dotspacemacs-startup-banner 'official - dotspacemacs-startup-banner 'official - ;; t if you always want to see the changelog at startup - dotspacemacs-always-show-changelog t - ;; List of items to show in the startup buffer. If nil it is disabled. - ;; Possible values are: `recents' `bookmarks' `projects'." - dotspacemacs-startup-lists '(recents projects) - ;; List of themes, the first of the list is loaded when spacemacs starts. - ;; Press <SPC> T n to cycle to the next theme in the list (works great - ;; with 2 themes variants, one dark and one light) - ;; see theme gallery at http://themegallery.robdor.com - dotspacemacs-themes '(spacemacs-dark - solarized-dark - solarized-light - spacemacs-light - leuven - ) - ;; If non nil the cursor color matches the state color. - dotspacemacs-colorize-cursor-according-to-state t - ;; Default font. `powerline-scale' allows to quickly tweak the mode-line - ;; size to make separators look not too crappy. - ;dotspacemacs-default-font '("Source Code Pro" - ; :size 13 - ; :weight normal - ; :width normal - ; :powerline-scale 1.1) - dotspacemacs-default-font '("PragmataPro" - :size 14 - :weight normal - :width normal - :powerline-scale 1.1) - ;; The leader key - dotspacemacs-leader-key "SPC" - ;; Escape sequence - evil-escape-key-sequence "jk" - ;; The leader key accessible in `emacs state' and `insert state' - dotspacemacs-emacs-leader-key "M-m" - ;; Major mode leader key is a shortcut key which is the equivalent of - ;; pressing `<leader> m`. Set it to `nil` to disable it. - dotspacemacs-major-mode-leader-key "," - ;; Major mode leader key accessible in `emacs state' and `insert state' - dotspacemacs-major-mode-emacs-leader-key "C-M-m" - ;; The command key used for Evil commands (ex-commands) and - ;; Emacs commands (M-x). - ;; By default the command key is `:' so ex-commands are executed like in Vim - ;; with `:' and Emacs commands are executed with `<leader> :'. - dotspacemacs-command-key ":" - ;; If non nil the paste micro-state is enabled. While enabled pressing `p` - ;; several times cycle between the kill ring content. - dotspacemacs-enable-paste-micro-state t - ;; Guide-key delay in seconds. The Guide-key is the popup buffer listing - ;; the commands bound to the current keystrokes. - dotspacemacs-guide-key-delay 0.4 - ;; If non nil a progress bar is displayed when spacemacs is loading. This - ;; may increase the boot time on some systems and emacs builds, set it to - ;; nil ;; to boost the loading time. - dotspacemacs-loading-progress-bar t - ;; If non nil the frame is fullscreen when Emacs starts up. - ;; (Emacs 24.4+ only) - dotspacemacs-fullscreen-at-startup nil - ;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen. - ;; Use to disable fullscreen animations in OSX." - dotspacemacs-fullscreen-use-non-native nil - ;; If non nil the frame is maximized when Emacs starts up. - ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. - ;; (Emacs 24.4+ only) - dotspacemacs-maximized-at-startup nil - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's active or selected. - ;; Transparency can be toggled through `toggle-transparency'. - dotspacemacs-active-transparency 90 - ;; A value from the range (0..100), in increasing opacity, which describes - ;; the transparency level of a frame when it's inactive or deselected. - ;; Transparency can be toggled through `toggle-transparency'. - dotspacemacs-inactive-transparency 90 - ;; If non nil unicode symbols are displayed in the mode line. - dotspacemacs-mode-line-unicode-symbols t - ;; If non nil smooth scrolling (native-scrolling) is enabled. Smooth - ;; scrolling overrides the default behavior of Emacs which recenters the - ;; point when it reaches the top or bottom of the screen. - dotspacemacs-smooth-scrolling t - ;; If non-nil smartparens-strict-mode will be enabled in programming modes. - dotspacemacs-smartparens-strict-mode nil - ;; If non nil advises quit functions to keep server open when quitting. - dotspacemacs-persistent-server nil - ;; List of search tool executable names. Spacemacs uses the first installed - ;; tool of the list. Supported tools are `ag', `pt', `ack' and `grep'. - dotspacemacs-search-tools '("ag" "pt" "ack" "grep") - ;; The default package repository used if no explicit repository has been - ;; specified with an installed package. - ;; Not used for now. - dotspacemacs-default-package-repository nil - ) - ;; User initialization goes here - (define-key global-map (kbd "RET") 'reindent-then-newline-and-indent) - ) - -(defun dotspacemacs/user-config () - "Configuration function. - This function is called at the very end of Spacemacs initialization after -layers configuration." - - ;; Scroll compile window - ;(setq compilation-scroll-output t) - ;; Scroll compile window until first error - (setq compilation-scroll-output 'first-error) - - ;; Indentation rules - (setq-default indent-tabs-mode nil) - (setq-default tab-width 4) - (setq c-default-style "linux" c-basic-offset 4) - - ;; disable background color in terminal - (custom-set-faces (if (not window-system) '(default ((t (:background "nil")))))) - - ;; text lines limit to 80 characters - (setq fill-column 80) - (add-hook 'text-mode-hook 'turn-on-auto-fill) - (setq-default fci-rule-column 80) - (setq fci-rule-width 1) ;; width in px - (setq fci-rule-color "#073642") ;; color - (defun sanityinc/fci-enabled-p () (symbol-value 'fci-mode)) - - ;; use latexmk for pdf export - ;(setq org-latex-to-pdf-process (list "latexmk -pdf %f")) - (setq org-latex-pdf-process - '("pdflatex -interaction nonstopmode -output-directory %o %f" - "bibtex %b" - "pdflatex -interaction nonstopmode -output-directory %o %f" - "pdflatex -interaction nonstopmode -output-directory %o %f")) - (setq reftex-default-bibliography - '("/home/ad/articles/own/BIBnew.bib")) - (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode - (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode - (add-hook 'org-mode-hook 'turn-on-reftex) ; with Org mode - (setq reftex-cite-format 'natbib) - - ;; set pdf viewer on OSX and Linux - (cond - ((string-equal system-type "darwin") - (progn (setq TeX-view-program-selection '((output-pdf "Skim"))))) - ((string-equal system-type "gnu/linux") - (progn (setq TeX-view-program-selection '((output-pdf "Okular")))))) - - ;; enable PDF-LaTeX synchronization - ;; press SPC m v to highlight line in PDF - ;; press shift cmd and click in PDF to show line in sourcecode - (setq TeX-source-correlate-mode t) - (setq TeX-source-correlate-start-server t) - (setq TeX-source-correlate-method 'synctex) - (setq TeX-view-program-list - '(("Okular" "okular --unique %o#src:%n%b") - ("Skim" "displayline -b -g %n %o %b"))) - - ;; control which languages are enabled for execution in org-mode with C-c C-c - ;; see http://orgmode.org/org.html#Languages - (require 'ob-C) - (require 'ob-gnuplot) - (require 'ob-octave) - (require 'ob-latex) - (require 'ob-python) - (require 'ob-sh) - ;(require 'ob-julia) - - ;; syntax highlighting in source code blocks - (setq org-src-fontify-natively t) - - ;; use python from anaconda - ;(setq python-shell-virtualenv-path "~/anaconda/bin") - - ;; always show battery info - ;(spacemacs/mode-line-battery-info-toggle) - (spacemacs/toggle-mode-line-battery) - - ;; always show line numbers - (spacemacs/toggle-line-numbers) - - - ;; always open spacemacs buffer, also with emacsclient - (setq initial-buffer-choice - (lambda () - (get-buffer "*spacemacs*"))) -) - - -;; Do not write anything past this comment. This is where Emacs will -;; auto-generate custom variable definitions. - -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(ahs-case-fold-search nil t) - '(ahs-default-range (quote ahs-range-whole-buffer) t) - '(ahs-idle-interval 0.25 t) - '(ahs-idle-timer 0 t) - '(ahs-inhibit-face-list nil t) - '(expand-region-contract-fast-key "V") - '(expand-region-reset-fast-key "r") - '(org-agenda-files (quote ("~/doc/org-mode-hints.org"))) - '(package-selected-packages - (quote - (yapfify uuidgen py-isort pug-mode osx-dictionary org-projectile org org-download mwim live-py-mode link-hint github-search eyebrowse evil-visual-mark-mode evil-unimpaired evil-ediff goto-chg undo-tree eshell-z dumb-jump diminish darkokai-theme company-shell column-enforce-mode auctex-latexmk zonokai-theme zenburn-theme zen-and-art-theme xterm-color ws-butler window-numbering web-mode volatile-highlights vi-tilde-fringe underwater-theme ujelly-theme twilight-theme twilight-bright-theme twilight-anti-bright-theme tronesque-theme toxi-theme toc-org tao-theme tangotango-theme tango-plus-theme tango-2-theme tagedit sunny-day-theme sublime-themes subatomic256-theme subatomic-theme stekene-theme spaceline powerline spacegray-theme soothe-theme soft-stone-theme soft-morning-theme soft-charcoal-theme smyx-theme smooth-scrolling smeargle slim-mode shell-pop seti-theme scss-mode sass-mode reverse-theme reveal-in-osx-finder restart-emacs rainbow-delimiters railscasts-theme pyvenv pytest pyenv-mode py-yapf purple-haze-theme professional-theme popwin planet-theme pip-requirements phoenix-dark-pink-theme phoenix-dark-mono-theme persp-mode pcre2el pbcopy pastels-on-dark-theme paradox hydra spinner page-break-lines osx-trash orgit organic-green-theme org-repo-todo org-present org-pomodoro alert log4e gntp org-plus-contrib org-bullets open-junk-file omtose-phellack-theme oldlace-theme occidental-theme obsidian-theme noctilux-theme niflheim-theme neotree naquadah-theme mustang-theme multi-term move-text monokai-theme monochrome-theme molokai-theme moe-theme mmm-mode minimal-theme material-theme markdown-toc markdown-mode majapahit-theme magit-gitflow magit-gh-pulls lush-theme lua-mode lorem-ipsum linum-relative light-soap-theme leuven-theme less-css-mode launchctl jbeans-theme jazz-theme jade-mode ir-black-theme inkpot-theme info+ indent-guide ido-vertical-mode hy-mode hungry-delete htmlize hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation heroku-theme hemisu-theme help-fns+ helm-themes helm-swoop helm-pydoc helm-projectile helm-mode-manager helm-make projectile helm-gitignore request helm-flx helm-descbinds helm-css-scss helm-company helm-c-yasnippet helm-ag hc-zenburn-theme haml-mode gruvbox-theme gruber-darker-theme grandshell-theme gotham-theme google-translate golden-ratio gnuplot gitignore-mode github-clone github-browse-file gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link gist gh marshal logito pcache ht gh-md gandalf-theme flycheck-pos-tip flycheck pkg-info epl flx-ido flx flatui-theme flatland-theme fish-mode firebelly-theme fill-column-indicator farmhouse-theme fancy-battery expand-region exec-path-from-shell evil-visualstar evil-tutor evil-surround evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-magit magit magit-popup git-commit with-editor evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-args evil-anzu anzu eval-sexp-fu highlight espresso-theme eshell-prompt-extras esh-help emmet-mode dracula-theme django-theme disaster define-word darktooth-theme darkmine-theme darkburn-theme dakrone-theme cython-mode cyberpunk-theme company-web web-completion-data company-statistics company-quickhelp pos-tip company-c-headers company-auctex company-anaconda company colorsarenice-theme color-theme-sanityinc-tomorrow color-theme-sanityinc-solarized cmake-mode clues-theme clean-aindent-mode clang-format cherry-blossom-theme busybee-theme buffer-move bubbleberry-theme bracketed-paste birds-of-paradise-plus-theme badwolf-theme auto-yasnippet yasnippet auto-highlight-symbol auctex apropospriate-theme anti-zenburn-theme anaconda-mode pythonic f dash s ample-zen-theme ample-theme alect-themes aggressive-indent afternoon-theme adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core async ac-ispell auto-complete popup quelpa package-build use-package which-key bind-key bind-map evil spacemacs-theme))) - '(ring-bell-function (quote ignore))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) - diff --git a/.taskrc b/.taskrc @@ -1,31 +0,0 @@ -# [Created by task 2.5.1 5/9/2018 15:16:45] -# Taskwarrior program configuration file. -# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color', -# 'man task-sync' or 'man taskrc' - -# Here is an example of entries that use the default, override and blank values -# variable=foo -- By specifying a value, this overrides the default -# variable= -- By specifying no value, this means no default -# #variable=foo -- By commenting out the line, or deleting it, this uses the default - -# Use the command 'task show' to see all defaults and overrides - -# Files -data.location=~/doc/.task - -# Color theme (uncomment one to use) -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/light-16.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/light-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-16.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-red-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-green-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-blue-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-violets-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-yellow-green.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-blue-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-dark-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-light-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/no-color.theme - diff --git a/.tmuxinator/article2.yml b/.tmuxinator/article2.yml @@ -1,23 +0,0 @@ -# ~/.tmuxinator/article2.yml - -name: article2 -#root: ~/articles/own/2-org -root: ~/articles/own/2 - -# Optional tmux socket -# socket_name: foo - -# Runs before everything. Use it to start daemons etc. -# pre: sudo /etc/rc.d/mysqld start - -# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. -# pre_window: rbenv shell 2.0.0-p247 - -# Pass command line options to tmux. Useful for specifying a different tmux.conf. -# tmux_options: -f ~/.tmux.mac.conf - -# Change the command to call tmux. This can be used by derivatives/wrappers like byobu. -# tmux_command: byobu - -windows: - - editor: make view &>/dev/null & ; make edit diff --git a/.tmuxinator/cosmo.yml b/.tmuxinator/cosmo.yml @@ -1,37 +0,0 @@ -# ~/.tmuxinator/cosmo.yml - -name: cosmo -root: ~/src/cosmo/ -#root: ~/Sites/cosmo/ - -# Optional tmux socket -# socket_name: foo - -# Runs before everything. Use it to start daemons etc. -# pre: sudo /etc/rc.d/mysqld start - -# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. -# pre_window: rbenv shell 2.0.0-p247 - -# Pass command line options to tmux. Useful for specifying a different tmux.conf. -# tmux_options: -f ~/.tmux.mac.conf - -# Change the command to call tmux. This can be used by derivatives/wrappers like byobu. -# tmux_command: byobu - -# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used. -# startup_window: logs - -# Controls whether the tmux session should be attached to automatically. Defaults to true. -# attach: false - -# Runs after everything. Use it to attach to tmux with custom options etc. -# post: tmux -CC attach -t cosmo - -windows: - - editor: vim index.php - - server: bash ~/bin/cosmo-ssh - - git: tig - - backup: make && watch -n 60 rsync -rav ~/code/cosmo/ ~/src/cosmo-backup/ - #- /tmp: cd /tmp && ls -lahG cosmo_* - - utility: diff --git a/.tmuxinator/dev.yml b/.tmuxinator/dev.yml @@ -1,40 +0,0 @@ -# ~/.tmuxinator/dev.yml - -name: dev -root: ~/code/sphere-cfd - -# Optional tmux socket -# socket_name: foo - -# Runs before everything. Use it to start daemons etc. -# pre: sudo /etc/rc.d/mysqld start - -# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. -# pre_window: rbenv shell 2.0.0-p247 - -# Pass command line options to tmux. Useful for specifying a different tmux.conf. -# tmux_options: -f ~/.tmux.mac.conf - -# Change the command to call tmux. This can be used by derivatives/wrappers like byobu. -# tmux_command: byobu - -windows: - - dev: vim - - debug: - layout: even-horizontal - panes: - - git pull && cmake . && make && make test - - watch nvidia-smi - - run: - layout: main-vertical - panes: - - cd python && ipython -i -c 'import numpy; import sphere' - - cd python - - cd python - - log: cd python - - - grendel: - layout: even-horizontal - panes: - - ssh grendel.cscaa.dk - - ssh grendel.cscaa.dk diff --git a/.tmuxinator/tmuxinator.bash b/.tmuxinator/tmuxinator.bash @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -_tmuxinator() { - COMPREPLY=() - local word="${COMP_WORDS[COMP_CWORD]}" - - if [ "$COMP_CWORD" -eq 1 ]; then - local commands="$(compgen -W "$(tmuxinator commands)" -- "$word")" - local projects="$(compgen -W "$(tmuxinator completions start)" -- "$word")" - - COMPREPLY=( $commands $projects ) - else - local words=("${COMP_WORDS[@]}") - unset words[0] - unset words[$COMP_CWORD] - local completions=$(tmuxinator completions "${words[@]}") - COMPREPLY=( $(compgen -W "$completions" -- "$word") ) - fi -} - -complete -F _tmuxinator tmuxinator mux diff --git a/.tmuxinator/tmuxinator.zsh b/.tmuxinator/tmuxinator.zsh @@ -1,20 +0,0 @@ -#!/usr/bin/env zsh - -if [[ ! -o interactive ]]; then - return -fi - -compctl -K _tmuxinator tmuxinator mux - -_tmuxinator() { - local words completions - read -cA words - - if [ "${#words}" -eq 2 ]; then - completions="$(tmuxinator commands)" - else - completions="$(tmuxinator completions ${words[2,-2]})" - fi - - reply=("${(ps:\n:)completions}") -} diff --git a/.tmuxinator/tutorial.yml b/.tmuxinator/tutorial.yml @@ -1,28 +0,0 @@ -# ~/.tmuxinator/tutorial.yml - -name: tutorial -root: ~/ - -# Optional tmux socket -# socket_name: foo - -# Runs before everything. Use it to start daemons etc. -# pre: sudo /etc/rc.d/mysqld start - -# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. -# pre_window: rbenv shell 2.0.0-p247 - -# Pass command line options to tmux. Useful for specifying a different tmux.conf. -# tmux_options: -f ~/.tmux.mac.conf - -# Change the command to call tmux. This can be used by derivatives/wrappers like byobu. -# tmux_command: byobu - -windows: - - editor: - layout: main-vertical - panes: - - vim - - guard - - server: bundle exec rails s - - logs: tail -f log/development.log diff --git a/.tmuxinator/utility.yml b/.tmuxinator/utility.yml @@ -1,54 +0,0 @@ -# ~/.tmuxinator/utility.yml - -name: utility -root: ~/ -pre: bash ~/bin/export_x_info.sh && mpd - -# Optional tmux socket -# socket_name: foo - -# Runs before everything. Use it to start daemons etc. -# pre: sudo /etc/rc.d/mysqld start - -# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions. -# pre_window: rbenv shell 2.0.0-p247 - -# Pass command line options to tmux. Useful for specifying a different tmux.conf. -# tmux_options: -f ~/.tmux.mac.conf - -# Change the command to call tmux. This can be used by derivatives/wrappers like byobu. -# tmux_command: byobu - -windows: - - m&m: - layout: even-vertical - panes: - - mutt - - vimpc - - sphere: - layout: even-vertical - panes: - - cd ~/code/sphere/ && watch -n 10 nvidia-smi - - cd ~/code/sphere/python && ipython -i -c "import sphere, numpy" - #- cd ~/code/sphere/python && git log --oneline - - cd ~/code/sphere/python && tig - - iddqd: - panes: - - bash ~/bin/iddqd-ssh - - dotfiles: - layout: even-vertical - panes: - - cd ~/code/dotfiles - - cd ~/code/dotfiles - -# - sys: -# layout: main-vertical -# panes: -# - htop -# - zsh -# - twitter: rainbowstream #--image-on-term -# - audio: -# layout: main-vertical -# panes: -# - vimpc -# - alsamixer diff --git a/.vimperator/colors/darkness2.vimp b/.vimperator/colors/darkness2.vimp @@ -1,68 +0,0 @@ -" ==Vimperator_Color_Scheme== -" name: Darkness -" ==Darkness_Colorscheme_Settings== - -"StatusLine settings -"hi StatusLine color: #ffffff; background: #000000; "font-size: 8pt; -hi StatusLine color: #ffffff; background: #000000; font-size: 8pt; -"hi StatusLineBroken color: #000000; background: #afafff; "font-size: 8pt; -"hi StatusLineSecure color: #000000; background: #afffaf; "font-size: 8pt; - -"CmdLine settings excluding Gradient -hi Normal color: #afafaf; background: #222222; -hi CmdLine background: #222222; color: #afafaf; font-size: 9pt; -hi CompDesc color: #c6c6c6; width: 50%; font-size: 9pt; -hi CompIcon width: 16px; min-width: 16px; display: inline-block; margin-right: .5ex; -hi CompItem[selected] background: #666666; color: #afafaf; -"hi CompLess text-align: center; height: 0; line-height: .5ex; padding-top: 1ex; -"hi CompMore text-align: center; height: .5ex; line-height: .5ex; margin-bottom: -.5ex; -hi CompMsg font-style: italic; margin-left: 16px; -hi CompResult width: 45%; overflow: hidden;font-size: 10pt; font-family: monospace; font-weight: normal; -hi CompTitle color: #afafaf; background: #222222; font-weight: bold; -hi CompTitle>* padding: 0 .5ex; -hi Filter font-weight: bold;color: #afafaf; - -"When using tab complete in CmdLine, line separating Title from function and description -"hi Gradient height: 1px; margin-bottom: -1px; margin-top: -1px; -"hi GradientLeft background-color: #00bbff; -"hi GradientRight background-color: #222222; - -"Used with ]f and [f -hi FrameIndicator background-color: #222222; opacity: 0.5; z-index: 999; position: fixed; top: 0; bottom: 0; left: 0; right: 0; - -hi Bell border: 0 none; background-color: #222222; -hi ErrorMsg color: #ffffff; background: red; font-weight: bold; - - -"Hint section -"hi Hint font-family: Sans; font-size: 10px; font-weight: bold; color: #f6e9e9; background-color: red; border-color: ButtonShadow; border-width: 0px; border-style: solid; padding 0px 1px 0px 1px; -hi Hint font-family: Sans; font-size: 12px; font-weight: bold; color: white; background-color: rgba(0, 0, 0, 0.5); border: solid 1px LightGray; -hi Hint::after content: attr(number); -hi HintActive background: blue; color: #f6e9e9; -hi HintElem background-color: #222222; color: #f6e9e9; -hi HintImage opacity: .5; - -"Other important stuff -hi InfoMsg color: #afafaf; background: #222222; -hi Message white-space: normal; min-width: 100%; padding-left: 2em; text-indent: -2em; display: block; -hi WarningMsg color: red; background: #222222; -hi ModeMsg color: #afafaf; background: #222222; "CmdLine when Not in Use -hi MoreMsg color: #afafaf; background: #222222; -hi NonText color: lightblue; min-height: 16px; padding-left: 2px; -hi Question color: #ffffff; background: #222222; font-weight: bold; -"hi Search font-size: inherit; padding: 0; color: #222222; background-color: yellow; padding: 0; -hi Function color: lightgreen; background: #222222; -hi Number color: tan; background: #222222 -hi String color: #222222; background: #afafaf; -hi Tag color: #222222; background: #afafaf; -hi Title color: #222222; background: #afafaf; font-weight: bold; -hi URL text-decoration: none; color: lightblue; background: inherit; -hi URL:hover text-decoration: underline; cursor: pointer; -hi LineNr color: #afafaf; background: #222222; - -"style -name statusbar chrome://* <<EOM -"#status-bar statusbarpanel { padding: 0 1px !important; } -"statusbarpanel > * { margin: 0 !important; padding: 0 2px 0 0 !important; } -"EOM - -"For other descriptions of each item, please see ``Styling'' section included with Vimperator diff --git a/.vimperator/colors/phallus.vimp b/.vimperator/colors/phallus.vimp @@ -1,75 +0,0 @@ -" ==Vimperator_Color_Scheme== -" name: Darkness -" ==Darkness_Colorscheme_Settings== - -"StatusLine settings -hi StatusLine color: #9a875f; background: #181512; font-size: 8pt; -"hi StatusLineBroken color: #9a875f; background: #f9f9f9; "font-size: 8pt; -"hi StatusLineSecure color: #9a875f; background: #f9f9f9; "font-size: 8pt; - -"CmdLine settings excluding Gradient -hi Normal color: #9a875f; background: #181512; -hi CmdLine background: #181512; color: #9f7155; font-size: 9pt; -hi CompDesc color: #766782; width: 50%; font-size: 9pt; -hi CompIcon width: 0px; min-width: 0px; visibility: hidden; display: inline-block; margin-right: .5ex; -hi CompItem[selected] background: #181512; color: #D6C3B6; -"hi CompLess text-align: center; height: 0; line-height: .5ex; padding-top: 1ex; -"hi CompMore text-align: center; height: .5ex; line-height: .5ex; margin-bottom: -.5ex; -hi CompMsg font-style: italic; margin-left: 12px; -hi CompResult width: 45%; overflow: hidden;font-size: 10pt; font-family: lemon; font-weight: normal; -hi CompTitle color: #646a6d; background: #181512; -hi CompTitle>* padding: 0 .5ex; -hi Filter color: #afafaf; - -"When using tab complete in CmdLine, line separating Title from function and description -"hi Gradient height: 1px; margin-bottom: -1px; margin-top: -1px; -"hi GradientLeft background-color: #181512; -"hi GradientRight background-color: #181512; - -"Used with ]f and [f -hi FrameIndicator background-color: #3f3f3f; opacity: 0.5; z-index: 999; position: fixed; top: 0; bottom: 0; left: 0; right: 0; - -hi Bell border: 0 none; background-color: #181512; -hi ErrorMsg color: #1c1c1c; background: #181512; - - -"Hint section -"hi Hint font-family: Sans; font-size: 10px; color: #f6e9e9; background-color: red; border-color: ButtonShadow; border-width: 0px; border-style: solid; padding 0px 1px 0px 1px; -hi Hint font-family: lemon; font-size: 10px; color: white; background-color: rgba(0, 0, 0, 0.5); border: solid 1px black; -hi Hint::after content: attr(number); -hi HintActive background-color: rgba(0,0,0,0.5); -hi HintElem 0; -hi HintImage opacity: .5; - -"Other important stuff -hi InfoMsg color: #1c1c1c; background: #181512; -hi Message white-space: normal; min-width: 100%; padding-left: 2em; text-indent: -2em; display: block; -hi WarningMsg color: 1c1c1c; background: #181512; -hi ModeMsg color: #1c1c1c; background: #181512; "CmdLine when Not in Use -hi MoreMsg color: #1c1c1c; background: #181512; -hi NonText color: lightblue; min-height: 16px; padding-left: 2px; -hi Question color: #1c1c1c; background: #181512; -"hi Search font-size: inherit; padding: 0; color: #eab9d5; background-color: black; padding: 0; -hi Function color: #9a875f; background: #181512; -hi Number color: #9a875f; background: #181512; -hi String color: #9a875f; background: #181512; -hi Tag color: #9a875f; background: #181512; -hi Title color: #1c1c1c; background: #181512; -hi URL text-decoration: none; color: lightblue; background: inherit; -hi URL:hover text-decoration: underline; cursor: pointer; -hi LineNr color: #9a875f; background: #181512; - -"style -name statusbar chrome://* <<EOM -"#status-bar statusbarpanel { padding: 0 1px !important; } -"statusbarpanel > * { margin: 0 !important; padding: 0 2px 0 0 !important; } -"EOM - -hi ContentSeparator border-top: 0px; - -"For other descriptions of each item, please see ``Styling'' section included with Vimperator - -hi CmdLine>* font-family: lemon -hi CompDesc font-family: lemon -hi CompResult font-family: lemon -hi StatusLine font-family: lemon -hi PromptText width: 0px diff --git a/.vimperatorrc b/.vimperatorrc @@ -1,47 +0,0 @@ -""" VIMPERATOR Firefox plugin configuration -" see https://github.com/mashiro/dot-files/blob/master/.vimperatorrc - -"colors darkness2 - -highlight Bell display: none; - -""" What characters to use for labeling hints (f) -" Numbers only -"set hintchars=0123456789 -" Home row -"set hintchars=hjklasdf -" Smart row -set hintchars=hjklasdfgyuiopqwertnmzxcvb -"set hintchars=hutenosa - -" Define appearance of hints (CSS) -highlight Hint font-size:150%;color:black;background-color:yellow;padding:2px; - -""" Default search engine -" Manage search engines with `:dialog searchengine` -"set defsearch=startpage -set defsearch=duckduckgo - -""" General options -set complete=slS -set newtab=all -set popups=tab -set nohlsearch -set ignorecase -set incsearch -set smartcase -set focuscontent -set visualbell -set toolbars=noaddons,nobookmarks,nomenu,nonavigation,tabs - -""" about:config -"set! general.autoScroll=false -"set! browser.tabs.closeButtons=2 -"set! mousewheel.withnokey.numlines=6 - -""" Scrolling -nnoremap j 3j -nnoremap k 3k - - -" vim: ts=2 sw=2 sts=2 fdm=marker ft=vimperator