dotfiles

Dotfiles for my OpenBSD environment.
Log | Files | Refs

commit 539ca71e9432bee01e7d9c678677d4341e7de372
parent ccac90f043fa9799de2fe3f699ee8ea6dfc1efd0
Author: Matsuda Kenji <kenji@x220.my.domain>
Date:   Thu, 12 Aug 2021 11:18:43 +0900

Merge branch 'bsd' of https://github.com/ftvda/dotfiles into bsd

Diffstat:
M.config/newsboat/urls | 2++
A.config/w3m/keymap | 238+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
M.profile | 1-
M.shrc | 2++
Abin/dwm_blocks_battery.sh | 20++++++++++++++++++++
Abin/dwm_blocks_volume.sh | 6++++++
Abin/dwm_blocks_wifi.sh | 6++++++
Abin/pass | 9+++++++++
Asuckless/dwm/config.diff | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asuckless/dwm/freebsd.diff | 24++++++++++++++++++++++++
Asuckless/dwmblocks/blocks.diff | 20++++++++++++++++++++
Asuckless/dwmblocks/freebsd.diff | 17+++++++++++++++++
Asuckless/st/config.diff | 14++++++++++++++
Asuckless/st/freebsd.diff | 47+++++++++++++++++++++++++++++++++++++++++++++++
Asuckless/st/st-w3m-0.8.3.diff | 42++++++++++++++++++++++++++++++++++++++++++
Asuckless/surf/config.diff | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asuckless/surf/freebsd.diff | 22++++++++++++++++++++++
Asuckless/surf/surf-playexternal-20190724-b814567.diff | 54++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 files changed, 657 insertions(+), 1 deletion(-)

diff --git a/.config/newsboat/urls b/.config/newsboat/urls @@ -5,6 +5,7 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA https://suckless.org/atom.xml https://archlinux.org/feeds/news/ https://www.romanzolotarev.com/rss.xml +https://vermaden.wordpress.com/feed https://www.youtube.com/feeds/videos.xml?channel_id=UCntL6bw6PoFR0r67cMYXLkg https://www.youtube.com/feeds/videos.xml?channel_id=UC5gLmcFuvdGbajs4VL-WU3g https://www.youtube.com/feeds/videos.xml?channel_id=UCqpdhncf4nxTfy0QZh1YWLQ @@ -21,3 +22,4 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCue0AhOm8SARARIcT-0mE1w asm https://www.youtube.com/feeds/videos.xml?channel_id=UCAZqVGCUyiEBNopy7EloMTw asmr https://www.youtube.com/feeds/videos.xml?channel_id=UCnGxonfiiey6qbiuxPPPLDw https://www.youtube.com/feeds/videos.xml?channel_id=UCkMxe-0NaJw0Yc0g2Q29gcw +https://www.youtube.com/feeds/videos.xml?channel_id=UC_h4JsXCMhC1al0IkmoaW8g diff --git a/.config/w3m/keymap b/.config/w3m/keymap @@ -0,0 +1,238 @@ +########## invalidate defaults ########## +keymap K NULL +keymap J NULL +keymap SPC NULL +keymap - NULL +keymap + NULL +keymap C-v NULL +keymap ESC-v NULL +keymap C-f NULL +keymap C-b NULL +keymap C-n NULL +keymap C-p NULL +keymap < NULL +keymap > NULL +keymap . NULL +keymap , NULL +keymap ^ NULL +keymap C-a NULL +keymap W NULL +keymap ^[[6~ NULL +keymap ^[[5~ NULL +keymap g NULL +keymap ^[[1~ NULL +keymap ^[[4~ NULL +keymap ESC-< NULL +keymap ESC-> NULL +keymap [ NULL +keymap ] NULL +keymap ^[[Z NULL +keymap ESC-m NULL +keymap ( NULL +keymap ) NULL +keymap C-j NULL +keymap C-m NULL +keymap ESC-C-j NULL +keymap ESC-C-m NULL +keymap ESC-w NULL +keymap ESC-W NULL +keymap C-s NULL +keymap = NULL +keymap ESC-l NULL +keymap U NULL +keymap V NULL +keymap v NULL +keymap R NULL +keymap ESC-s NULL +keymap : NULL +keymap C-q NULL +keymap T NULL +keymap } NULL +keymap { NULL +keymap ESC-a NULL +keymap ESC-b NULL +keymap c NULL +keymap ESC-: NULL +keymap C-h NULL +keymap q NULL +keymap Q NULL +keymap C-w NULL +keymap C-d NULL +keymap C-u NULL +keymap RIGHT NULL +keymap l NULL +keymap LEFT NULL +keymap h NULL +keymap j NULL +keymap DOWN NULL +keymap k NULL +keymap UP NULL +keymap C-e NULL +keymap C-y NULL +keymap 0 NULL +keymap $ NULL +keymap Z NULL +keymap z NULL +keymap ESC-g NULL +keymap gg NULL +keymap G NULL +keymap w NULL +keymap b NULL +keymap C-n NULL +keymap C-p NULL +keymap ESC-TAB NULL +keymap f NULL +keymap C-o NULL +keymap TAB NULL +keymap C-j NULL +keymap C-] NULL +keymap I NULL +keymap ESC-I NULL +keymap ESC-C-j NULL +keymap y NULL +keymap u NULL +keymap i NULL +keymap gC-g NULL +keymap C-g NULL +keymap ";" NULL +keymap M NULL +keymap ESC-M NULL +keymap F NULL +keymap ESC-u NULL +keymap t NULL +keymap @ NULL +keymap "#" NULL +keymap | NULL +keymap B NULL +keymap L NULL +keymap H NULL +keymap s NULL +keymap gf NULL +keymap S NULL +keymap E NULL +keymap ESC-e NULL +keymap C-r NULL +keymap r NULL +keymap C-l NULL +keymap C-t NULL +keymap d NULL +keymap gt NULL +keymap gT NULL +keymap ESC-t NULL +keymap C-wL NULL +keymap C-wH NULL +keymap a NULL +keymap n NULL +keymap N NULL +keymap / NULL +keymap ? NULL +keymap C-@ NULL +keymap ESC-n NULL +keymap ESC-p NULL +keymap \" NULL +keymap ^[[2~ NULL +keymap ^[[28~ NULL +keymap ^[[E NULL +keymap ^[[L NULL +keymap o NULL +keymap C-k NULL +keymap D NULL +keymap m NULL +keymap ESC-c NULL +keymap ESC-o NULL +keymap ESC-k NULL +keymap \\ NULL +keymap ! NULL +keymap C-z NULL +keymap ZZ NULL +keymap ZQ NULL + + +########## command ########## +keymap :: COMMAND +keymap :H HELP +keymap :O OPTIONS +keymap :d DOWNLOAD_LIST + +########## history navigation ########## +keymap L NEXT +keymap H PREV +keymap :p SELECT_MENU +keymap :h HISTORY + +########## scrolling ########## +keymap C-e UP +keymap C-y DOWN +keymap gg BEGIN +keymap G END +keymap C-d NEXT_PAGE +keymap d NEXT_PAGE +keymap C-u PREV_PAGE +keymap u PREV_PAGE +keymap zz CENTER_V +########## cursor ########## +keymap l MOVE_RIGHT +keymap h MOVE_LEFT +keymap j MOVE_DOWN +keymap k MOVE_UP +keymap 0 LINE_BEGIN +keymap $ LINE_END +keymap w NEXT_WORD +keymap b PREV_WORD +########## cursor history ########## +keymap C-r REDO +keymap u UNDO +########## navigation ########## +keymap f MOVE_LIST_MENU +keymap F LIST_MENU +keymap C-n NEXT_LINK +keymap C-p PREV_LINK +keymap :l PEEK_LINK + +# reload +keymap r RELOAD +keymap C-r RELOAD + +# save/load +keymap :w SAVE +keymap :W PRINT +keymap :o GOTO +keymap :e LOAD + +# jump +keymap ESC-C-j SUBMIT +keymap C-] TAB_LINK +keymap C-j GOTO_LINK + +########## info ########## +keymap y PEEK +keymap gC-g INFO +keymap C-g LINE_INFO +keymap gf VIEW + +########## search ########## +keymap / ISEARCH +keymap ? ISEARCH_BACK +keymap n SEARCH_NEXT +keymap N SEARCH_PREV + +########## bookmarks ########## +keymap a ADD_BOOKMARK +keymap :b VIEW_BOOKMARK + +########## tab ########## +keymap x CLOSE_TAB +keymap C-w CLOSE_TAB +keymap gh GOTO http://www.google.com/en +keymap gH TAB_GOTO http://www.google.com/en +keymap C-t NEW_TAB +keymap gt NEXT_TAB +keymap gT PREV_TAB +keymap t TAB_GOTO +keymap T TAB_MENU + +########## quit ########## +keymap ZZ EXIT +keymap C-Q EXIT +keymap ZQ QUIT +keymap :q QUIT diff --git a/.profile b/.profile @@ -11,7 +11,6 @@ export XDG_RUNTIME_DIR="/tmp/xdg_runtime_dir_$USER" [ ! -d $XDG_CACHE_HOME ] && mkdir -p $XDG_CACHE_HOME [ ! -d $XDG_DATA_HOME ] && mkdir -p $XDG_DATA_HOME -export PATH="$PATH:$HOME/.local/bin" export EDITOR=nvim export HISTFILE="$XDG_CACHE_HOME/sh_history" diff --git a/.shrc b/.shrc @@ -1,4 +1,6 @@ # ~/.shrc PS1='[\u@\h \W]\$ ' + +alias w3m='w3m -o keymap_file=~/.config/w3m/keymap' set -o vi diff --git a/bin/dwm_blocks_battery.sh b/bin/dwm_blocks_battery.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +online=$(sysctl hw.acpi.acline | cut -d' ' -f2) +capacity=$(sysctl hw.acpi.battery.life | cut -d' ' -f2) + +if [ "$online" = 1 ]; then + state= +elif [ "$capacity" -gt 95 ]; then + state= +elif [ "$capacity" -gt 63 ]; then + state= +elif [ "$capacity" -gt 38 ]; then + state= +elif [ "$capacity" -gt 10 ]; then + state= +else + state= +fi + +echo "$state ${capacity}" diff --git a/bin/dwm_blocks_volume.sh b/bin/dwm_blocks_volume.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +mute=no +[ "$mute" = "yes" ] && state= || state= +volume=$(mixer -s vol | sed 's/.*://') +echo "$state ${volume}" diff --git a/bin/dwm_blocks_wifi.sh b/bin/dwm_blocks_wifi.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +ifconfig | awk '/^[^ \t]/{interface=$1;ssid=""}\ + /ssid/{ssid=$2}\ + /associated/{if(!ssid){print ""}else{print "", ssid};connected=1}\ + END{if(!connected){print " down"}}' diff --git a/bin/pass b/bin/pass @@ -0,0 +1,9 @@ +#!/bin/sh + +passwords=~/passwords + +item=$(awk '{print $1, $3}' $passwords | dmenu -i -l 5 ) +echo $item | awk '{print $2}' +name=$(echo $item | awk '{print $1}') +id=$(echo $item | awk '{print $2}') +grep "$name" $passwords | grep "$id" | sed 's/.* //' | xclip diff --git a/suckless/dwm/config.diff b/suckless/dwm/config.diff @@ -0,0 +1,73 @@ +--- config.h 2021-08-05 10:46:13.691533000 +0900 ++++ config.def.h 2021-06-18 14:17:53.613576000 +0900 +@@ -1,7 +1,7 @@ + /* See LICENSE file for copyright and license details. */ + + /* appearance */ +-static const unsigned int borderpx = 0; /* border pixel of windows */ ++static const unsigned int borderpx = 1; /* border pixel of windows */ + static const unsigned int snap = 32; /* snap pixel */ + static const int showbar = 1; /* 0 means no bar */ + static const int topbar = 1; /* 0 means bottom bar */ +@@ -11,15 +11,15 @@ + static const char col_gray2[] = "#444444"; + static const char col_gray3[] = "#bbbbbb"; + static const char col_gray4[] = "#eeeeee"; +-static const char col_highlight[] = "#324d45"; ++static const char col_cyan[] = "#005577"; + static const char *colors[][3] = { + /* fg bg border */ + [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, +- [SchemeSel] = { col_gray4, col_highlight, col_highlight }, ++ [SchemeSel] = { col_gray4, col_cyan, col_cyan }, + }; + + /* tagging */ +-static const char *tags[] = { "1", "2", "3"}; ++static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + + static const Rule rules[] = { + /* xprop(1): +@@ -44,7 +44,7 @@ + }; + + /* key definitions */ +-#define MODKEY Mod4Mask ++#define MODKEY Mod1Mask + #define TAGKEYS(KEY,TAG) \ + { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ + { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ +@@ -56,19 +56,13 @@ + + /* commands */ + static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ +-static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_highlight, "-sf", col_gray4, NULL }; +-static const char *termcmd[] = { "$TERMINAL", NULL }; ++static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; ++static const char *termcmd[] = { "st", NULL }; + +-#include <X11/XF86keysym.h> +- + static Key keys[] = { + /* modifier key function argument */ +- { MODKEY|ShiftMask, XK_b, spawn, SHCMD("$BROWSER") }, +- { MODKEY|ShiftMask, XK_s, spawn, SHCMD("$SURF") }, +- { MODKEY, XK_n, spawn, SHCMD("jinput") }, + { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +- /*{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },*/ +- { MODKEY|ShiftMask, XK_Return, spawn, SHCMD("$TERMINAL") }, ++ { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_b, togglebar, {0} }, + { MODKEY, XK_j, focusstack, {.i = +1 } }, + { MODKEY, XK_k, focusstack, {.i = -1 } }, +@@ -100,10 +94,6 @@ + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) + { MODKEY|ShiftMask, XK_q, quit, {0} }, +- +- +- { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("mixer vol +3 >/dev/null; kill -75 $(pidof dwmblocks)") }, +- { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("mixer vol -3 >/dev/null; kill -75 $(pidof dwmblocks)") }, + }; + + /* button definitions */ diff --git a/suckless/dwm/freebsd.diff b/suckless/dwm/freebsd.diff @@ -0,0 +1,24 @@ +diff --git a/config.mk b/config.mk +index 7084c33..a11c1ab 100644 +--- a/config.mk ++++ b/config.mk +@@ -7,8 +7,8 @@ VERSION = 6.2 + PREFIX = /usr/local + MANPREFIX = ${PREFIX}/share/man + +-X11INC = /usr/X11R6/include +-X11LIB = /usr/X11R6/lib ++X11INC = /usr/local/include ++X11LIB = /usr/local/lib + + # Xinerama, comment if you don't want it + XINERAMALIBS = -lXinerama +@@ -16,7 +16,7 @@ XINERAMAFLAGS = -DXINERAMA + + # freetype + FREETYPELIBS = -lfontconfig -lXft +-FREETYPEINC = /usr/include/freetype2 ++FREETYPEINC = /usr/local/include/freetype2 + # OpenBSD (uncomment) + #FREETYPEINC = ${X11INC}/freetype2 + diff --git a/suckless/dwmblocks/blocks.diff b/suckless/dwmblocks/blocks.diff @@ -0,0 +1,20 @@ +--- blocks.def.h 2021-06-18 14:21:18.113296000 +0900 ++++ blocks.h 2021-06-21 16:12:16.762548000 +0900 +@@ -1,11 +1,14 @@ + //Modify this file to change what commands output to your statusbar, and recompile using the make command. + static const Block blocks[] = { + /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/ +- {"Mem:", "free -h | awk '/^Mem/ { print $3\"/\"$2 }' | sed s/i//g", 30, 0}, ++ {"", "date '+%m/%d %a %H:%M'", 5, 0}, ++ {"", "dwm_blocks_volume.sh", 5, 10}, ++ {"", "dwm_blocks_battery.sh", 5, 0}, ++ {"", "uptime | sed 's/.*load averages: \\(.*\\)/\\1/' | cut -d, -f1", 5, 0}, ++ {" ", "sysctl dev.cpu | grep temperature | tr -d C | awk '{a+=$2;n++}END{printf \"%d\\n\", a/n}'", 5, 0}, ++ {"", "dwm_blocks_wifi.sh", 5, 0}, + +- {"", "date '+%b %d (%a) %I:%M%p'", 5, 0}, + }; +- + //sets delimeter between status commands. NULL character ('\0') means no delimeter. + static char delim[] = " | "; + static unsigned int delimLen = 5; diff --git a/suckless/dwmblocks/freebsd.diff b/suckless/dwmblocks/freebsd.diff @@ -0,0 +1,17 @@ +diff --git a/Makefile b/Makefile +index ef43ef4..bb6c1f7 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,9 +1,10 @@ + PREFIX ?= /usr/local + CC ?= cc +-LDFLAGS = -lX11 ++LDFLAGS = -L/usr/local/lib -lX11 ++CFLAGS = -I/usr/local/include + + output: dwmblocks.c blocks.def.h blocks.h +- ${CC} dwmblocks.c $(LDFLAGS) -o dwmblocks ++ ${CC} dwmblocks.c $(LDFLAGS) $(CFLAGS) -o dwmblocks + blocks.h: + cp blocks.def.h $@ + diff --git a/suckless/st/config.diff b/suckless/st/config.diff @@ -0,0 +1,14 @@ +--- config.def.h 2021-06-18 14:18:33.714179000 +0900 ++++ config.h 2021-06-18 16:00:01.721759000 +0900 +@@ -5,7 +5,10 @@ + * + * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html + */ +-static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; ++/* ++ * static char *font = "monospace:pixelsize=20:antialias=true:autohint=true"; ++ */ ++static char *font = "monospace:pixelsize=15:antialias=true:autohint=true"; + static int borderpx = 2; + + /* diff --git a/suckless/st/freebsd.diff b/suckless/st/freebsd.diff @@ -0,0 +1,47 @@ +diff --git a/Makefile b/Makefile +index 470ac86..25611af 100644 +--- a/Makefile ++++ b/Makefile +@@ -47,7 +47,7 @@ install: st + mkdir -p $(DESTDIR)$(MANPREFIX)/man1 + sed "s/VERSION/$(VERSION)/g" < st.1 > $(DESTDIR)$(MANPREFIX)/man1/st.1 + chmod 644 $(DESTDIR)$(MANPREFIX)/man1/st.1 +- tic -sx st.info ++ #tic -sx st.info + @echo Please see the README file regarding the terminfo entry of st. + + uninstall: +diff --git a/config.mk b/config.mk +index c070a4a..873cc07 100644 +--- a/config.mk ++++ b/config.mk +@@ -7,18 +7,20 @@ VERSION = 0.8.4 + PREFIX = /usr/local + MANPREFIX = $(PREFIX)/share/man + +-X11INC = /usr/X11R6/include +-X11LIB = /usr/X11R6/lib ++X11INC = /usr/local/include ++X11LIB = /usr/local/lib + +-PKG_CONFIG = pkg-config ++# freetype ++FREETYPELIBS = -lfontconfig -lXft ++FREETYPEINC = /usr/local/include/freetype2 + + # includes and libs +-INCS = -I$(X11INC) \ +- `$(PKG_CONFIG) --cflags fontconfig` \ +- `$(PKG_CONFIG) --cflags freetype2` +-LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \ +- `$(PKG_CONFIG) --libs fontconfig` \ +- `$(PKG_CONFIG) --libs freetype2` ++INCS = -I$(X11INC) -I$(FREETYPEINC) ++ #`$(PKG_CONFIG) --cflags fontconfig` \ ++ #`$(PKG_CONFIG) --cflags freetype2` ++LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil $(FREETYPELIBS) ++ #`$(PKG_CONFIG) --libs fontconfig` \ ++ #`$(PKG_CONFIG) --libs freetype2` + + # flags + STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 diff --git a/suckless/st/st-w3m-0.8.3.diff b/suckless/st/st-w3m-0.8.3.diff @@ -0,0 +1,42 @@ +From 69cffc587b54b0a9cd81adb87abad8e526d5b25b Mon Sep 17 00:00:00 2001 +From: "Avi Halachmi (:avih)" <avihpit@yahoo.com> +Date: Thu, 4 Jun 2020 17:35:08 +0300 +Subject: [PATCH] support w3m images + +w3m images are a hack which renders on top of the terminal's drawable, +which didn't work in st because when using double buffering, the front +buffer (on which w3m draws its images) is ignored, and st draws only +on the back buffer, which is then copied to the front buffer. + +There's a patch to make it work at the FAQ already, but that patch +canceles double-buffering, which can have negative side effects on +some cases such as flickering. + +This patch achieves the same goal but instead of canceling the double +buffer it first copies the front buffer to the back buffer. + +This has the same issues as the FAQ patch in that the cursor line is +deleted at the image (because st renders always full lines), but +otherwise it's simpler and does keeps double buffering. +--- + x.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/x.c b/x.c +index e5f1737..b6ae162 100644 +--- a/x.c ++++ b/x.c +@@ -1594,6 +1594,8 @@ xsettitle(char *p) + int + xstartdraw(void) + { ++ if (IS_SET(MODE_VISIBLE)) ++ XCopyArea(xw.dpy, xw.win, xw.buf, dc.gc, 0, 0, win.w, win.h, 0, 0); + return IS_SET(MODE_VISIBLE); + } + + +base-commit: 43a395ae91f7d67ce694e65edeaa7bbc720dd027 +-- +2.17.1 + diff --git a/suckless/surf/config.diff b/suckless/surf/config.diff @@ -0,0 +1,61 @@ +--- config.def.h 2021-08-12 09:55:15.980353000 +0900 ++++ config.h 2021-08-10 11:04:40.573740000 +0900 +@@ -119,7 +119,8 @@ + { "://suckless\\.org/", "suckless.org.crt" }, + }; + +-#define MODKEY GDK_CONTROL_MASK ++/*#define MODKEY GDK_CONTROL_MASK*/ ++#define MODKEY GDK_MOD1_MASK + + /* hotkeys */ + /* +@@ -129,25 +130,27 @@ + static Key keys[] = { + /* modifier keyval function arg */ + { MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO", PROMPT_GO) }, +- { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) }, + { MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND", PROMPT_FIND) }, + ++ { MODKEY, GDK_KEY_w, playexternal, { 0 } }, ++ + { 0, GDK_KEY_Escape, stop, { 0 } }, +- { MODKEY, GDK_KEY_c, stop, { 0 } }, + + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_r, reload, { .i = 1 } }, + { MODKEY, GDK_KEY_r, reload, { .i = 0 } }, + +- { MODKEY, GDK_KEY_l, navigate, { .i = +1 } }, +- { MODKEY, GDK_KEY_h, navigate, { .i = -1 } }, ++ { GDK_SHIFT_MASK, GDK_KEY_l, navigate, { .i = +1 } }, ++ { GDK_SHIFT_MASK, GDK_KEY_h, navigate, { .i = -1 } }, + + /* vertical and horizontal scrolling, in viewport percentage */ +- { MODKEY, GDK_KEY_j, scrollv, { .i = +10 } }, +- { MODKEY, GDK_KEY_k, scrollv, { .i = -10 } }, +- { MODKEY, GDK_KEY_space, scrollv, { .i = +50 } }, +- { MODKEY, GDK_KEY_b, scrollv, { .i = -50 } }, +- { MODKEY, GDK_KEY_i, scrollh, { .i = +10 } }, +- { MODKEY, GDK_KEY_u, scrollh, { .i = -10 } }, ++ { MODKEY, GDK_KEY_j, scrollv, { .i = +5 } }, ++ { MODKEY, GDK_KEY_e, scrollv, { .i = +5 } }, ++ { MODKEY, GDK_KEY_k, scrollv, { .i = -5 } }, ++ { MODKEY, GDK_KEY_y, scrollv, { .i = -5 } }, ++ { MODKEY, GDK_KEY_d, scrollv, { .i = +50 } }, ++ { MODKEY, GDK_KEY_u, scrollv, { .i = -50 } }, ++ { MODKEY, GDK_KEY_l, scrollh, { .i = +5 } }, ++ { MODKEY, GDK_KEY_h, scrollh, { .i = -5 } }, + + + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_j, zoom, { .i = -1 } }, +@@ -156,8 +159,8 @@ + { MODKEY, GDK_KEY_minus, zoom, { .i = -1 } }, + { MODKEY, GDK_KEY_plus, zoom, { .i = +1 } }, + +- { MODKEY, GDK_KEY_p, clipboard, { .i = 1 } }, +- { MODKEY, GDK_KEY_y, clipboard, { .i = 0 } }, ++ { MODKEY|GDK_SHIFT_MASK, GDK_KEY_p, clipboard, { .i = 1 } }, ++ { MODKEY|GDK_SHIFT_MASK, GDK_KEY_y, clipboard, { .i = 0 } }, + + { MODKEY, GDK_KEY_n, find, { .i = +1 } }, + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_n, find, { .i = -1 } }, diff --git a/suckless/surf/freebsd.diff b/suckless/surf/freebsd.diff @@ -0,0 +1,22 @@ +diff --git a/config.mk b/config.mk +index 2eb9fb0..2420352 100644 +--- a/config.mk ++++ b/config.mk +@@ -11,6 +11,8 @@ LIBDIR = $(LIBPREFIX)/surf + + X11INC = `pkg-config --cflags x11` + X11LIB = `pkg-config --libs x11` ++GLIBINC = `pkg-config --cflags --libs glib-2.0` ++GDKINC = /usr/local/include/gtk-3.0/gdk + + GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0` + GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0` +@@ -18,7 +20,7 @@ WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio + WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0` + + # includes and libs +-INCS = $(X11INC) $(GTKINC) ++INCS = $(X11INC) $(GTKINC) $(GLIBINC) $(GDKINC) + LIBS = $(X11LIB) $(GTKLIB) -lgthread-2.0 + + # flags diff --git a/suckless/surf/surf-playexternal-20190724-b814567.diff b/suckless/surf/surf-playexternal-20190724-b814567.diff @@ -0,0 +1,54 @@ +From 95e17b5bd428173c83e60cec9cd5666cfe9066fa Mon Sep 17 00:00:00 2001 +From: DanMan <dnahimov@gmail.com> +Date: Wed, 24 Jul 2019 18:47:46 -0400 +Subject: [PATCH] added playexternal hotkey function + +--- + config.def.h | 2 ++ + surf.c | 10 ++++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 6d3135e..5fa0d9d 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -105,6 +105,8 @@ static Key keys[] = { + { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, + { MODKEY, GDK_KEY_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, + ++ { MODKEY, GDK_KEY_w, playexternal, { 0 } }, ++ + { 0, GDK_KEY_Escape, stop, { 0 } }, + { MODKEY, GDK_KEY_c, stop, { 0 } }, + +diff --git a/surf.c b/surf.c +index 93a1629..e74e9df 100644 +--- a/surf.c ++++ b/surf.c +@@ -217,6 +217,7 @@ static void togglefullscreen(Client *c, const Arg *a); + static void togglecookiepolicy(Client *c, const Arg *a); + static void toggleinspector(Client *c, const Arg *a); + static void find(Client *c, const Arg *a); ++static void playexternal(Client *c, const Arg *a); + + /* Buttons */ + static void clicknavigate(Client *c, const Arg *a, WebKitHitTestResult *h); +@@ -1648,6 +1649,15 @@ clickexternplayer(Client *c, const Arg *a, WebKitHitTestResult *h) + spawn(c, &arg); + } + ++void ++playexternal(Client *c, const Arg *a) ++{ ++ Arg arg; ++ ++ arg = (Arg)VIDEOPLAY(geturi(c)); ++ spawn(c, &arg); ++} ++ + int + main(int argc, char *argv[]) + { +-- +2.22.0 +