diff --git a/.bin/cbar b/.bin/cbar index d69b4eb..d474a18 100755 Binary files a/.bin/cbar and b/.bin/cbar differ diff --git a/.bin/dexec_browser b/.bin/dexec_browser index 58a027e..8b7964c 100755 --- a/.bin/dexec_browser +++ b/.bin/dexec_browser @@ -133,8 +133,8 @@ choose_browser() { *codevoid.de*) DEFAULT="Vimb (default)"; ;; *openbsd.org*) DEFAULT="Vimb (default)"; ;; *google.*) DEFAULT="Firefox (default)"; ;; - *youtube.com*) DEFAULT="Chrome (default)"; ;; - *youtu.be*) DEFAULT="Chrome (default)"; ;; + *youtube.com/watch*) DEFAULT="Mpv (default)"; ;; + *media.ccc.de/v/*) DEFAULT="Mpv (default)"; ;; *bsd.network*) DEFAULT="Chrome (default)"; ;; *itch.io*) DEFAULT="Firefox (default)"; ;; *chat.uugrn.org*) DEFAULT="Firefox (default)"; ;; @@ -159,7 +159,7 @@ choose_browser() { [Tt]or-B*r*) BROWSER=tor-browser ;; [Zz]athura*) BROWSER=zathura ;; [Ll]agrange*) BROWSER=lagrange ;; - [Mm]pv*) BROWSER=mpv ;; + [Mm]pv*) export _SWM_WS=-1; BROWSER="mpv" ;; *) exit 0;; esac } diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 0000000..7e63c8f --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,45 @@ +#!/bin/sh + +#export MIXERDEVICE=/dev/audioctl0 +pgrep -q polybar || polybar & + +# start hotkey daemon +pgrep -q sxhkd || sxhkd -c $HOME/.config/bspwm/sxhkdrc & + +# configure bspwm +bspc monitor -d 1 2 3 4 5 6 7 8 9 10 + +bspc config border_width 1 +bspc config window_gap 12 + +remove_disabled_monitors true +remove_unplugged_monitors true + +bspc config split_ratio 0.52 +bspc config focus_follows_pointer true + +bspc config borderless_monocle false +bspc config gapless_monocle true + +bspc config focused_border_color "#FF6A00" + +bspc config presel_feedback_color "#FF6A00" +bspc config presel_feedback false + +# automatic tiling +bspc config automatic_scheme longest_side +bspc config honor_size_hints false + +# mouse can resize/move floating nodes +bspc config pointer_modifier mod1 +bspc config pointer_action1 move +bspc config pointer_action2 resize_corner + +RES=$(xrandr | grep "*+" | awk '{print $1}') +GAP=150 +H=$(( ${RES%x*} - 2 * GAP )) +V=$(( ${RES#*x} - 2 * GAP )) + +bspc rule -a mpv sticky=on state=floating rectangle=$GAP,$GAP,$H,$V +bspc rule -a Screenkey manage=off +bspc rule -a scratchpad sticky=on state=floating rectangle=$GAP,$GAP,$H,$V diff --git a/.config/bspwm/lemonbar.sh b/.config/bspwm/lemonbar.sh new file mode 100755 index 0000000..2dfb024 --- /dev/null +++ b/.config/bspwm/lemonbar.sh @@ -0,0 +1,253 @@ +#!/bin/ksh + +trap 'trap - TERM; kill 0' INT TERM QUIT EXIT + +FONT="-zevv-peep-medium-r-normal--14-130-75-75-c-70-iso8859-15" +DEFAULT_FG="#222222" +DEFAULT_BG="#CCCCCC" +MONITOR_FG="#8dbcdf" +MONITOR_BG="#333232" +FOCUSED_MONITOR_FG="#b1d0e8" +FOCUSED_MONITOR_BG="#144b6c" +FREE_FG="#737171" +FREE_BG="#333232" +FOCUSED_FREE_FG="#000000" +FOCUSED_FREE_BG="#504e4e" +OCCUPIED_FG="#a7a5a5" +OCCUPIED_BG="#333232" +FOCUSED_OCCUPIED_FG="#d6d3d2" +FOCUSED_OCCUPIED_BG="#504e4e" +URGENT_FG="#f15d66" +URGENT_BG="#333232" +FOCUSED_URGENT_FG="#501d1f" +FOCUSED_URGENT_BG="#d5443e" +STATE_FG="#89b09c" +STATE_BG="#333232" +TITLE_FG="#a8a2c0" +TITLE_BG="#333232" +SYS_FG="#b1a57d" +SYS_BG="#333232" + +BG="%{F#CCCCCC}" +FG="%{F#222222}" +CLEAR="%{F-}%{B-}" + +_battery() { + ADAPTER=$(apm -a) + if [ $ADAPTER = 0 ] ; then + printf ">" + elif [ $ADAPTER = 1 ] ; then + printf "=" + else + printf "?" + fi + BATTERY=$(apm -l) + if [ $BATTERY -gt 66 ] ; then + printf "$BATTERY%%" + elif [ $BATTERY -gt 33 ] ; then + printf "$BATTERY%%" + else + printf "$BATTERY%%" + fi + BATTERY=$(apm -m) + [[ "$BATTERY" != "unknown" ]] && printf " ($BATTERY m)" +} + +_cputemp() { + printf "$(sysctl -n hw.sensors.cpu0.temp0 | cut -d"." -f1)°C" +} + +_netload() { + set -A if_load $(ifstat -n -i trunk0 -b 0.1 1 | sed '1,2d') + printf "In: ${if_load[0]} kb/s Out: ${if_load[1]} kb/s " +} + +_backlight() { + LIGHT=$(xbacklight | cut -d"." -f1) + printf "$LIGHT%%" +} + +_volume() { + MUTE=$(mixerctl outputs.master.mute | awk -F '=' '{ print $2 }') + #LSPK=$(($(mixerctl outputs.master | awk -F '(=|,)' '{ print $2 }')*100/255)) + RSPK=$(($(mixerctl outputs.master | awk -F '(=|,)' '{ print $2 }')*100/255)) + if [ "$MUTE" = "on" ] ; then + printf "muted" + else + printf "$RSPK%%" + fi +} + +_wlan() { + WLANSTAT=$(ifconfig iwn0 | awk '/status:/ { print $2 }') + WLANID=$(ifconfig iwn0 | awk '/(nwid|join)/ { print $3 }') + if [ "$WLANSTAT" = "active" ] ; then + printf '%s' "$WLANID" + else + printf '%s' "no-wifi" + fi +} +_datetime() { + printf '%s' "$(date +"%Y-%m-%d %H:%M")" +} + +num_mon=$(bspc query -M | wc -l) + +# INITIAL SETUP +cputemp=$(_cputemp) +battery=$(_battery) +date=$(_datetime) +backlight=$(_backlight) +volume=$(_volume) +wlan=$(_wlan) +netload=$(_netload) +datetime=$(_datetime) + +mkfifo /tmp/panel-fifo +bspc subscribe report > /tmp/panel-fifo & + +# TICK COUNTER FOR AUTOMATIC UPDATES +while true; +do + TICK=$(($TICK + 1)) + case $TICK in + 1) + printf '%s\n' "UBAT" > "$PANEL_FIFO" + printf '%s\n' "UBL" > "$PANEL_FIFO" + printf '%s\n' "UNETLOAD" > "$PANEL_FIFO" + + ;; + 2) + printf '%s\n' "UCPU" > "$PANEL_FIFO" + ;; + 5) + printf '%s\n' "UWLAN" > "$PANEL_FIFO" + ;; + 10) + printf '%s\n' "UDATE" > "$PANEL_FIFO" + TICK=0 + ;; + esac + sleep 5 +done & + +# READ FIFO EVENTS +while read -r line; +do + case $line in + UVOL) + volume=$(_volume) ;; + UDATE) + datetime=$(_datetime) ;; + UBAT) + battery=$(_battery) ;; + UBL) + backlight=$(_backlight) ;; + UCPU) + cputemp=$(_cputemp) ;; + UWLAN) + wlan=$(_wlan) ;; + UNETLOAD) + netload=$(_netload) ;; + S*) + sys=${line#?} + ;; + W*) + # BSPWM STATE + wm= + IFS=':' + set -- ${line#?} + while [ $# -gt 0 ] ; do + item=$1 + name=${item#?} + case $item in + [mM]*) + case $item in + m*) + # monitor + FG=$MONITOR_FG + BG=$MONITOR_BG + on_focused_monitor= + ;; + M*) + # focused monitor + FG=$FOCUSED_MONITOR_FG + BG=$FOCUSED_MONITOR_BG + on_focused_monitor=1 + ;; + esac + [ $num_mon -lt 2 ] && shift && continue + wm="${wm}%{F${FG}}%{B${BG}}%{A:bspc monitor -f ${name}:} ${name} %{A}%{B-}%{F-}" + ;; + [fFoOuU]*) + case $item in + f*) + # free desktop + FG=$FREE_FG + BG=$FREE_BG + UL=$BG + ;; + F*) + if [ "$on_focused_monitor" ] ; then + # focused free desktop + FG=$FOCUSED_FREE_FG + BG=$FOCUSED_FREE_BG + UL=$BG + else + # active free desktop + FG=$FREE_FG + BG=$FREE_BG + UL=$FOCUSED_FREE_BG + fi + ;; + o*) + # occupied desktop + FG=$OCCUPIED_FG + BG=$OCCUPIED_BG + UL=$BG + ;; + O*) + if [ "$on_focused_monitor" ] ; then + # focused occupied desktop + FG=$FOCUSED_OCCUPIED_FG + BG=$FOCUSED_OCCUPIED_BG + UL=$BG + else + # active occupied desktop + FG=$OCCUPIED_FG + BG=$OCCUPIED_BG + UL=$FOCUSED_OCCUPIED_BG + fi + ;; + u*) + # urgent desktop + FG=$URGENT_FG + BG=$URGENT_BG + UL=$BG + ;; + U*) + if [ "$on_focused_monitor" ] ; then + # focused urgent desktop + FG=$FOCUSED_URGENT_FG + BG=$FOCUSED_URGENT_BG + UL=$BG + else + # active urgent desktop + FG=$URGENT_FG + BG=$URGENT_BG + UL=$FOCUSED_URGENT_BG + fi + ;; + esac + wm="${wm}%{F${FG}}%{B${BG}}%{U${UL}}%{+u}%{A:bspc desktop -f ${name}:} ${name} %{A}%{B-}%{F-}%{-u}" + ;; + [LTG]*) + # layout, state and flags + wm="${wm}%{F$STATE_FG}%{B$STATE_BG} ${name} %{B-}%{F-}" + esac + shift + done + ;; + esac + printf "%s\n" "%{l}${wm}%{c}%{r}$cputemp $backlight $volume $wlan $netload $battery $datetime " +done < "$PANEL_FIFO" | lemonbar -f "$FONT" -B "$DEFAULT_FG" -F "$DEFAULT_BG" -u 8 | sh diff --git a/.config/bspwm/pidgin.sh b/.config/bspwm/pidgin.sh new file mode 100755 index 0000000..d9c8a90 --- /dev/null +++ b/.config/bspwm/pidgin.sh @@ -0,0 +1,18 @@ +#!/bin/ksh -x +ID=$(xdotool search --name "Buddy List") + +if [ "$ID" == "" ]; then + pidgin & +else + for pid in $ID; + do + bspc node "$pid" --flag hidden --layer above -f + done +fi + +#_pad=$(bspc config -m LVDS1 right_padding) +#if [ $_pad -gt 0 ]; then +# bspc config -m LVDS1 right_padding 0 +#else +# bspc config -m LVDS1 right_padding 322 +#fi diff --git a/.config/bspwm/scratchpad.sh b/.config/bspwm/scratchpad.sh new file mode 100755 index 0000000..b5448de --- /dev/null +++ b/.config/bspwm/scratchpad.sh @@ -0,0 +1,7 @@ +#!/bin/ksh +ID=$(xdotool search --class scratchpad) +if [ -e $ID ]; then + sterm -c scratchpad & +else + bspc node "$ID" --flag hidden -f +fi diff --git a/.config/bspwm/sxhkdrc b/.config/bspwm/sxhkdrc new file mode 100644 index 0000000..cc5aedf --- /dev/null +++ b/.config/bspwm/sxhkdrc @@ -0,0 +1,175 @@ +# +# wm independent hotkeys +# + +# terminal emulator +alt + Return + sterm + +alt + shift + Return + bterm + +alt + control + Return + hterm + +alt + b + $HOME/.config/bspwm/pidgin.sh + +# program launcher +alt + d + dexec + +alt + s + dexec_ssh + +alt + shift + f + dexec_browser + +alt + shift + p + dexec_pass + +alt + a + dexec_apps + +alt + p + dexec_pim + +# +# bspwm hotkeys +# + +#XF86AudioRaiseVolume +# pkill -sigusr1 bspwmbar +# +#XF86AudioLowerVolume +# printf '%s\n' "UVOL" > "$PANEL_FIFO" +# +#XF86AudioMute +# printf '%s\n' "UVOL" > "$PANEL_FIFO" + +# quit/restart bspwm +alt + shift + r + bspc wm -r + pkill -SIGUSR1 polybar + pkill -SIGUSR1 sxhkd + +# close and kill +alt + q + bspc node -c + +alt + shift + q + bspc node -c + +# alternate between the tiled and monocle layout +alt + f + bspc node -t "~"{fullscreen,tiled} + +# send the newest marked node to the newest preselected node +alt + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest node +alt + g + bspc node -s biggest + +alt + space + bspc node -t "~"{floating,tiled} + +Print + xpick_copy + +alt + Print + sshot + +# +# state/flags +# + +# set the window state +#alt + {t,shift + t,s,f} +# bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +#alt + ctrl + {m,x,y,z} +# bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +alt + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node in the given direction +alt + {_,shift + }{Left,Down,Up,Right} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +alt + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous node in the current desktop +#alt + {o,i} +ctrl + {Prior,Next} + bspc node -f {next,prev}.local + +# focus the next/previous desktop in the current monitor +alt + {Prior,Next} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +alt + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +alt + {_,shift + }c + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +alt + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +ctrl + alt + shift + {1-9,0} + bspc desktop -f '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +alt + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +alt + ctrl + {Left,Down,Up,Right} + bspc node -p {west,south,north,east} + +# preselect the ratio +alt + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +alt + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +alt + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +#shift + alt + {h,j,k,l} +# bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +#shift + alt + shift + {h,j,k,l} +# bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +## move a floating window +#alt + {Left,Down,Up,Right} +# bspc node -v {-20 0,0 20,0 -20,20 0} diff --git a/.config/bspwm/updatebar.sh b/.config/bspwm/updatebar.sh new file mode 100755 index 0000000..d583dc0 --- /dev/null +++ b/.config/bspwm/updatebar.sh @@ -0,0 +1,4 @@ +#!/bin/sh +if [ ! -z "$PANEL_FIFO" ]; then + printf '%s\n' "$1" > "$PANEL_FIFO" +fi diff --git a/.config/spectrwm/spectrwm.conf b/.config/spectrwm/spectrwm.conf index 9d66706..6c00be7 100644 --- a/.config/spectrwm/spectrwm.conf +++ b/.config/spectrwm/spectrwm.conf @@ -12,24 +12,24 @@ border_width = 1 color_focus = rgb:ff/6A/00 -color_focus_maximized = rgb:28/28/28 +color_focus_maximized = rgb:ff/6A/00 color_focus_free = rgb:77/77/77 color_unfocus = rgb:47/47/47 color_unfocus_free = rgb:47/47/47 -region_padding = 12 -tile_gap = 12 -region_padding = 12 -disable_border = 1 +tile_gap = -1 +region_padding = 0 +disable_border = 0 # +-------------------------------------------------- # | BAR SETTINGS # +-------------------------------------------------- +bar_enabled = 1 bar_border_width = 4 bar_border = rgb:18/18/18 bar_border_unfocus = rgb:18/18/18 bar_border_free = rgb:18/18/18 bar_color = rgb:18/18/18 -bar_color_free = rgb:18/18/18 +bar_color_free = red bar_color_selected = rgb:18/24/28 bar_font_color = rgb:99/99/99,rgb:ff/6A/00,red bar_font_color_selected = rgb:ff/ff/ff @@ -38,7 +38,29 @@ bar_font = FuraCodeNerdFont-12 bar_action = cbar bar_action_expand = 0 bar_at_bottom = 0 + +# +< Pad with a space +# +A Output of the external script +# +C Window class (from WM_CLASS) +# +D Workspace name +# +F Focus status indicator +# +I Workspace index +# +L Workspace list indicator +# +M Number of iconic (minimized) windows in workspace +# +N Screen number +# +P Window class and instance separated by a colon +# +R Region index +# +S Stacking algorithm +# +T Window instance (from WM_CLASS) +# +U Urgency hint +# +V Program version +# +w Number of windows in workspace +# +W Window name (from _NET_WM_NAME/WM_NAME) +# ++ A literal ‘+’ +# +@ Prefix for text markup sequences + bar_format = +S +L  +R   +I   +M  +W +|1R +A %Y-%m-%d %H:%M +#bar_format = +I +S (+M) +|1R +A %Y-%m-%d %H:%M # +-------------------------------------------------- # | WORKSPACE LAYOUT @@ -46,6 +68,7 @@ bar_format = +S +L  +R   +I   +M  +W +|1R +A % workspace_indicator = listall,markcurrent,markactive,markempty,markurgent,noindexes workspace_mark_active = '' +#workspace_mark_active = '' workspace_mark_current = '+@fg=1;+@fg=0;' workspace_mark_empty = '' workspace_mark_urgent = '+@fg=2;+@fg=0;' @@ -55,9 +78,21 @@ stack_mark_horizontal_flip = '' stack_mark_vertical = '' stack_mark_vertical_flip = '' stack_mark_max = '' -verbose_layout = 1 +stack_mark_floating = '~' +verbose_layout = 0 urgent_enabled = 1 +name = ws[1]:1 +name = ws[2]:2 +name = ws[3]:3 +name = ws[4]:4 +name = ws[5]:5 +name = ws[6]:6 +name = ws[7]:7 +name = ws[8]:8 +name = ws[9]:9 +name = ws[10]:10 + # +-------------------------------------------------- # | FOCUS BEHAVIOR # +-------------------------------------------------- diff --git a/.config/tuir/themes/codevoid.cfg b/.config/tuir/themes/codevoid.cfg new file mode 100644 index 0000000..dcc3eaf --- /dev/null +++ b/.config/tuir/themes/codevoid.cfg @@ -0,0 +1,70 @@ +# Black ansi_233 +# White ansi_251 + +# Sky Blue ansi_202 +# Bluish Green ansi_202 +# Yellow ansi_202 +# Blue ansi_32 +# Vermillion ansi_202 +# Reddish Purple ansi_175 + + +[theme] +; = +Normal = ansi_251 ansi_233 normal +Selected = - ansi_236 normal +SelectedCursor = - - reverse + +TitleBar = ansi_202 - normal +OrderBar = ansi_202 - normal +OrderBarHighlight = ansi_202 - normal+reverse +HelpBar = ansi_202 - normal +Prompt = ansi_202 - normal +NoticeInfo = - - normal +NoticeLoading = - - normal +NoticeError = - - normal +NoticeSuccess = - - normal + +CursorBlock = - - - +CursorBar1 = ansi_175 - - +CursorBar2 = ansi_202 - - +CursorBar3 = ansi_202 - - +CursorBar4 = ansi_202 - - + +CommentAuthor = ansi_32 - normal +CommentAuthorSelf = ansi_202 - normal +CommentCount = - - - +CommentText = - - - +Created = - - - +Downvote = ansi_202 - normal +Gold = ansi_202 - normal +HiddenCommentExpand = - - normal +HiddenCommentText = - - - +MultiredditName = ansi_202 - normal +MultiredditText = - - - +NeutralVote = - - normal +NSFW = ansi_202 - normal+reverse +Saved = ansi_202 - - +Hidden = ansi_202 - - +Score = - - - +Separator = - - normal +Stickied = ansi_202 - - +SubscriptionName = ansi_202 - normal +SubscriptionText = - - - +SubmissionAuthor = ansi_202 - normal +SubmissionFlair = ansi_202 - - +SubmissionSubreddit = ansi_202 - - +SubmissionText = - - - +SubmissionTitle = - - normal +SubmissionTitleSeen = - - - +Upvote = ansi_202 - normal +Link = ansi_32 - underline +LinkSeen = ansi_175 - underline +UserFlair = ansi_202 - normal +New = ansi_202 - normal +Distinguished = ansi_202 - normal +MessageSubject = ansi_32 - normal +MessageLink = ansi_175 - normal +MessageAuthor = ansi_202 - normal +MessageSubreddit = ansi_202 - - +MessageText = - - - diff --git a/.config/tut/themes/codevoid.toml b/.config/tut/themes/codevoid.toml new file mode 100644 index 0000000..07ee47e --- /dev/null +++ b/.config/tut/themes/codevoid.toml @@ -0,0 +1,14 @@ +background="#121212" +text="#CCCCCC" +subtle="#FF6A00" +warning-text="#FF6A00" +text-special-one="#888888" +text-special-two="#AAAAAA" +top-bar-background="#181818" +top-bar-text="#CCCCCC" +status-bar-background="#222222" +status-bar-text="#CCCCCC" +status-bar-view-background="#222222" +status-bar-view-text="#CCCCCC" +list-selected-background="#222222" +list-selected-text="#FFFFFF" diff --git a/.i3/config b/.i3/config index 998a25f..bfcb4e5 100644 --- a/.i3/config +++ b/.i3/config @@ -275,8 +275,8 @@ bindsym $mod+minus scratchpad show bindsym $mod+Shift+minus move scratchpad, scratchpad show # start dmenu (a program launcher) -bindsym $mod+Return fullscreen disable, exec bterm -bindsym $mod+Shift+Return fullscreen disable, exec sterm +bindsym $mod+Return fullscreen disable, exec sterm +bindsym $mod+Shift+Return fullscreen disable, exec bterm bindsym $mod+Control Return fullscreen disable, exec hterm bindsym $mod+End exec i3lock -c "#000000" bindsym $mod+D exec dexec diff --git a/.kshrc b/.kshrc index 6ab2863..a9b5ec9 100644 --- a/.kshrc +++ b/.kshrc @@ -132,6 +132,8 @@ set bell-style none alias kshrc="vim ~/.kshrc" alias muttrc="vim ~/.mutt/rc-common" alias vimrc="vim ~/.vim/vimrc" +alias bspwmrc="vim ~/.config/bspwm/bspwmrc" +alias sxhkdrc="vim ~/.config/bspwm/sxhkdrc" alias vimbrc="vim ~/.config/vimb/config" alias exrc="vim ~/.exrc" alias web-update='ssh home.codevoid.de "cd web && make update && make"' diff --git a/.xsession.sample b/.xsession.sample new file mode 100644 index 0000000..9d46a0d --- /dev/null +++ b/.xsession.sample @@ -0,0 +1,107 @@ +#!/bin/ksh + +# set shell +export ENV=$HOME/.kshrc +. $ENV + +# allow ctrl+alt+backspace to kill X +setxkbmap -option "terminate:ctrl_alt_bksp" + +# capslock shall be escape +setxkbmap -option caps:escape + +# turn this annoying bell off +xset -b + +# set keyboard layout +setxkbmap "de" + +# accelerate keyboard +xset r rate 300 50 + +# accelerate mouse +xinput set-prop /dev/wsmouse "Device Accel Constant Deceleration" 0.4 +xinput set-prop /dev/wsmouse "Device Accel Adaptive Deceleration" 1.2 + +# scroll with middle button +xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation" 1 +xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Button" 2 +xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Axes" 6 7 4 5 + +# xkeyboard preferences +export XKB_DEFAULT_LAYOUT=de +export XKB_DEFAULT_VARIANT=,nodeadkeys +export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle + +# set w3mimg patch for ranger +export W3MIMGDISPLAY_PATH="/usr/local/libexec/w3m/w3mimgdisplay" + +# force webkit to one process mode +export WEBKIT_USE_SINGLE_WEB_PROCESS=1 + +# fixes +#export LIBGL_DRI3_DISABLE=1 # fix video on luakit +#export XLIB_SKIP_ARGB_VISUALS=1 +#export SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0 # fix fullscreen loop +#export FNA3D_OPENGL_FORCE_ES3=1 # fnaifi fix for iris gpu +#export _JAVA_AWT_WM_NONREPARENTING=1 +#export GSK_RENDERER=cairo # render gtk4 in cario instead of opengl + +# accelerate firefox +export MOZ_ACCELERATED=1 +export MOZ_WEBRENDER=1 + +# sndio devices +#export AUDIOPLAYDEVICE=snd/default +#export AUDIORECDEVICE=snd/rec +#export AUDIOMONDEVICE=snd/mon + +# gtk/qt scaling +export QT_AUTO_SCREEN_SCALE_FACTOR=0 +export QT_SCALE_FACTOR=1 +export GDK_DPI_SCALE=1 + +# qt theme +export QT_QPA_PLATFORMTHEME=qt5ct # or lxqt + +# add custom fonts +xset +fp $HOME/.fonts + +# keep cutbuffer and selections in sync +autocutsel -fork +autocutsel -selection PRIMARY -fork + +# set background +xsetroot -solid rgb:22/22/22 +hsetroot -solid "#222222" + +# allow local users to access X +xhost +local: + +# give user access to camara and hid devices +doas chown sdk /dev/video* /dev/uhid* /dev/dri/card* /dev/cua* + +# all those tools... *sigh* +# dunst & +# twmnd & +dunst & +#stalonetray & +xbanish & +#xautolock -time 30 -locker xlock & + +export $(<~/.dbus_address) +gnome-keyring-daemon --replace --components=secrets +dbus-update-activation-environment --all +export GNOME_KEYRING_CONTROL GNOME_KEYRING_SOCKET GNOME_KEYRING_PID + +# huh, we're hipster now +# picom & +#hsetroot -solid "#222" +srandrd /home/sdk/.bin/autorandr-c + +mv $HOME/.xsession-wm $HOME/.xsession-wm.old +mv $HOME/.xsession-errors.log $HOME/.xsession-errors.old +#exec "/usr/local/bin/spectrwm" > $HOME/.xsession-wm 2>&1 +#exec "/usr/local/bin/i3" > $HOME/.xsession-wm 2>&1 +exec "/usr/local/bin/bspwm" > $HOME/.xsession-wm 2>&1 +#exec "/usr/local/bin/notion" > $HOME/.xsession-wm 2>&1