Configure for .stowrc

This commit is contained in:
Ian Keane 2022-07-08 22:10:57 -04:00
parent e58bb4c0a0
commit 1091129506
132 changed files with 4 additions and 18 deletions

1
slackware/home/.stowrc Normal file
View file

@ -0,0 +1 @@
--target=~

View file

@ -0,0 +1,6 @@
# ~/.bash_profile
#
# Get the aliases and functions
[ -f $HOME/.bashrc ] && . $HOME/.bashrc
[[ -f ~/.bashrc ]] && . ~/.bashrc

View file

@ -0,0 +1,23 @@
# .bashrc
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
alias vlime='sbcl --load ~/.vim/plugins/vlime/lisp/start-vlime.lisp'
PS1='[\u@\h \W]\$ '
alias screenfetch='clear && screenfetch -t'
export DISPLAY=:0
export LIBGL_ALWAYS_INDIRECT=1
export FZF_DEFAULT_COMMAD="find -L"
export PATH="$PATH:/opt/mssql-tools/bin:/home/green/.local/bin"
stty -ixon # disable ctrl-s terminal freeze
# Enable GPG ssh auth
#export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
#gpgconf --launch gpg-agent
[ -f ~/.fzf.bash ] && source ~/.fzf.bash

View file

@ -0,0 +1,29 @@
# This is `bat`s configuration file. Each line either contains a comment or
# a command-line option that you want to pass to `bat` by default. You can
# run `bat --help` to get a list of all possible configuration options.
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
# for a list of all available themes
#--theme="TwoDark"
# Enable this to use italic text on the terminal. This is not supported on all
# terminal emulators (like tmux, by default):
#--italic-text=always
# Uncomment the following line to disable automatic paging:
#--paging=never
# Uncomment the following line if you are using less version >= 551 and want to
# enable mouse scrolling support in `bat` when running inside tmux. This might
# disable text selection, unless you press shift.
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
# Syntax mappings: map a certain filename pattern to a language.
# Example 1: use the C++ syntax for Arduino .ino files
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
#--map-syntax "*.ino:C++"
#--map-syntax ".ignore:Git Ignore"
--style='changes,grid,header-filename'
# -f
--color=always

View file

@ -0,0 +1 @@
#/usr/bin/fish

View file

@ -0,0 +1,18 @@
#!/bin/sh
# https://stackoverflow.com/questions/69138165/how-to-get-the-rgb-values-of-a-256-color-palette-terminal-color
xdef="$HOME/.Xresources"
colors=( $( sed -re '/^!/d; /^$/d; /^#/d; s/(\*color)([0-9]):/\10\2:/g;' $xdef | grep 'color[01][0-9]:' | sort | sed 's/^.*: *//g' )
)
echo
for i in {0..7}; do echo -en "\e[$((30+$i))m ${colors[i]} \u2588\u2588 \e[0m\n"; done
echo
for i in {8..15}; do echo -en "\e[1;$((22+$i))m ${colors[i]} \u2588\u2588 \e[0m\n"; done
echo -e "\n"

View file

@ -0,0 +1,7 @@
#!/bin/sh
for i in {0..255} ; do
printf "\x1b[38;5;${i}m%3d " "${i}"
if (( $i == 15 )) || (( $i > 15 )) && (( ($i-15) % 12 == 0 )); then
echo;
fi
done

View file

@ -0,0 +1,19 @@
#!
# bg's need # in front
# start flavours
norm_fg="#C0C5CE"
norm_bg="#1B2B34"
sel_fg="#1B2B34"
sel_bg="#99C794"
# end flavours
dmenu_run \
-i \
-fn BitstreamVeraSansMono:size=11 \
-l 15 \
-nf "$norm_fg" \
-nb "$norm_bg" \
-sf "$sel_fg" \
-sb "$sel_bg"

View file

@ -0,0 +1,18 @@
#!/bin/sh
# The famous "get a menu of emojis to copy" script.
# Get user selection via dmenu from emoji file.
chosen=$(cut -d ';' -f1 ~/.local/share/emoji | dmenu -i -l 30 | sed "s/ .*//")
# Exit if none chosen.
[ -z "$chosen" ] && exit
# If you run this command with an argument, it will automatically insert the
# character. Otherwise, show a message that the emoji has been copied.
if [ -n "$1" ]; then
xdotool type "$chosen"
else
printf "$chosen" | xclip -selection clipboard
notify-send "'$chosen' copied to clipboard." &
fi

248
slackware/home/bin/scripts/fcp Executable file
View file

@ -0,0 +1,248 @@
#!/bin/sh
# TODO:
# * Look into ssh-hp :). (ie the slowness from ssh may just be from small
# buffers).
# * bring back stderr, currently there is no notification of errors, not even
# ENODIR or device full.
# * fcp src1 src2 src3 ... dst/ doesn't work (but glob does).
# Need to take the last positional arg as dest (and unset it) then use
# positional args at sources. Go through each one and make sure they are all
# local because we don't support mixed remote and local.
# * Doesn't work when the remote end is android. Although if I ssh over and run
# the fcp_ script manually it does work!?! (Maybe something about android
# tar, saw something else (what?) making a fifo instead of pipe.)
# * There are a couple of calls to eval in which any redirect characters
# (angle brackets) could lose our output. They need to be escaped.
# * Not sure about the handling of paths ending in slash or not is proper.
# (Eg where we rename the dest file.)
# I assume if it has no slash it the directory being sent should be renamed
# to the destination name
# (unless it is an existing directory on the dest host).
# * If the receiving (connecting) nc is started before the sending (server)
# one it will wait for one second and try again. They are started in the
# right order but if there are delays in starting the interpreter or
# something that sleep may have to be changed to something more robust.
# * If you want something more sophisticated look at http://www.slac.stanford.edu/~abh/bbcp/
portno=4365
comp=""
usage() {
cat <<EOM
Usage: $(basename $0) [-c] [-p portno] [--] [srchost:]srcpath [[dsthost:]dstpath]
Copy files between hosts on a network. Uses tar and netcat (nc) for
transferring data and ssh for setting up the transport.
\`dstpath\` defaults to the current directory, use "-" to get a tarball on
stdout.
Options:
-c Tell tar to use gzip compression.
-p portno Port used by netcat. Defaults to $portno.
EOM
}
a1="$1"
# Do a seperated gotopt run so we cat get the return code.
getopt -Q -o hcp: -l help -- "${@}" >/dev/null || {
ret=$?
usage
exit $ret
}
eval "set -- $(getopt -o hcp: -l help -- "${@}")"
# Sometimes set and/or getopt leave a -- there when it shouldn't be
[ "$a1" != "--" ] && [ "$1" = "--" ] && shift
while [ -n "$1" ];do
case "$1" in
-h|--help)
usage
exit
;;
-c) comp="-z" ;;
-p)
portno="$2"
shift
;;
--)
shift
break
;;
-*)
echo "Unrecognized argument: $1"
usage
exit 1
;;
*) break ;;
esac
shift
done
while [ -n "$1" ];do
case "$1" in
*)
if [ -z "$srcpath" ];then
srcpath="$1"
elif [ -z "$dstpath" ];then
dstpath="$1"
else
echo "Too many positional arguments (expected 2)." >&2
echo "Try escaping any globs in the destination path." >&2
usage
exit 1
fi
;;
esac
shift
done
if [ -z "$srcpath" ];then
usage
exit 1
fi
[ "$srcpath" = "." ] && srcpath="./"
[ "$srcpath" = ".." ] && srcpath="../"
[ "$dstpath" = "." ] && dstpath="./"
[ "$dstpath" = ".." ] && dstpath="../"
[ -z "$dstpath" ] && dstpath="./"
case "$srcpath" in
*\\:*) continue ;;
*:*)
srchost="${srcpath%%:*}"
srcpath="${srcpath#*:}"
;;
esac
case "$dstpath" in
*\\:*) continue ;;
*:*)
dsthost="${dstpath%%:*}"
dstpath="${dstpath#*:}"
;;
esac
sendcmd() {
dsthost="${1#*@}"
srcpath="$2"
srcdir="$(dirname "$srcpath")"
srcbase="$(basename "$srcpath")"
dstpath="$3"
[ "${dstpath%/}" = "$dstpath" ] && dstbase="$(basename "$dstpath")"
cat <<EOS
#!/bin/sh
srcdir="\$(eval echo "${srcdir}")"
cd "\$srcdir" || echo \$?
# Use find here to expand any globs. Eval doesn't like filenames with parens
# in them. This can leave us with multiple newline seperated files hence we
# pass them to tar below via stdin.
srcbase="\$(find . -maxdepth 1 -name "${srcbase}" -exec basename {} \\;)"
# Fallback in case the above failed for whatever reason.
[ -z "\$srcbase" ] && srcbase="${srcbase}"
if ! [ -d "\$srcdir/\$srcbase" ] && [ -n "$dstbase" ] && [ "$dstbase" != "-" ] ;then
trans="--transform=s/\${srcbase}\$/$dstbase/"
else
# dummy argument so there isn't an empty "" passed to tar
trans=--check-device
fi
tar --help 2>/dev/null | grep -q check-device || trans=v
pv=pv
type pv >/dev/null 2>&1 || pv=cat
# Try nc twice, with a one second timeout. In case we get called before the
# remote end has started up. May need to come up with something more
# sophisticated in situations where we have to wait longer for the initial
# setup.
echo "\$srcbase" | tar -cT- ${comp} "\$trans" |
\$pv | ( nc -q 0 -w 3 "${dsthost#*@}" $portno 2>/dev/null ||
{ sleep 1 && nc -q 0 -w 3 "${dsthost#*@}" $portno ; } )
EOS
}
recvcmd() {
dstpath="$1"
srcbase="$(basename "$2")"
cat <<EOS
#!/bin/sh
dstpath="\$(eval echo ${dstpath})"
dstbase="\$(basename "\${dstpath}")"
if [ -d "\$dstpath" ] || [ "\${dstpath%/}" != "\$dstpath" ] ;then
dstdir="\$dstpath"
# dummy argument so there isn't an empty "" passed to tar
trans=--check-device
else
# Strip trailing component and rename the incoming root object to that.
# I hope that is what was intended. If not make sure dstpath is
# terminated with a slash (/).
dstdir="\$(dirname "\$dstpath")"
trans="--transform=s/^\([\.\/]*\)${srcbase}/\\1\$dstbase/"
fi
tar --help 2>/dev/null | grep -q check-device || trans=-v
pv=pv
type pv >/dev/null 2>&1 || pv=cat
if [ "\$dstbase" != '-' ] ;then
mkdir -p "\$dstdir" || exit \$?
cd "\$dstdir" || exit \$?
fi
nc -lp $portno -w 20 | \$pv | {
if [ "\$dstbase" != '-' ] ;then
tar -x ${comp} "\$trans"
else
cat
fi
}
EOS
}
rpc() {
ssh "$1" "export ff=/tmp/fcp_$$_\$\$_cmd ; cat > \$ff ; nohup sh -c \"sh \$ff && rm -f \$ff\" </dev/null >/dev/null 2>&1 &"
[ $? -ne 0 ] && echo "Try escaping any ':' in a path if it is not supposed to be a host seperator." >&2
}
myip() {
# dig and nslookup and hosts aren't on all machines and don't look in
# /etc/hosts. Getent isn't everywhere and sometimes returns ipv6 addreses on
# non-ipv6 enabled hosts. getent ahostsv4 I don't know how prevalent that is.
tip="$(ping -c1 -W0.1 ${1#*@} 2>&1 | tr -d '():' | awk '/^PING/{print $3}')"
[ -n "$tip" ] &&
ip route get "$tip" | sed -n 's/^.*src \([^ ]*\).*$/\1/p'
}
if [ -n "$dsthost" ] && [ -n "$srchost" ];then
recvcmd "$dstpath" "$srcpath" | rpc "$dsthost"
sendcmd "$dsthost" "$srcpath" "$dstpath" | rpc "$srchost"
exit $?
elif [ -n "$dsthost" ];then
recvcmd "$dstpath" "$srcpath" | rpc "$dsthost"
sendcmd "$dsthost" "$srcpath" "$dstpath" > /tmp/fcp_$$_cmd
sh /tmp/fcp_$$_cmd
rm /tmp/fcp_$$_cmd
exit $?
elif [ -n "$srchost" ];then
dsthost="$(myip "$srchost")"
[ -z "$dsthost" ] && {
echo "Couldn't find route to $srchost" >&2
exit 1
}
recvcmd "$dstpath" "$srcpath" > /tmp/fcp_$$_cmd
sh /tmp/fcp_$$_cmd &
sendcmd "$dsthost" "$srcpath" "$dstpath" | rpc "$srchost"
wait
rm /tmp/fcp_$$_cmd
exit $?
else
srcdir="$(dirname "$srcpath")"
srcbase="$(basename "$srcpath")"
if [ -d "$dstpath" ] || [ "${dstpath%/}" != "$dstpath" ];then
dstdir="$dstpath"
else
dstdir="$(dirname "$dstpath")"
fi
# TODO: Handle file renames.
dstpath="`eval echo ${dstpath}`"
mkdir -p "$dstpath"
tar -C "$srcdir" -c "$srcbase" | tar -C "$dstdir" -x
exit $?
fi

View file

@ -0,0 +1,15 @@
#!/usr/bin/fish
set gap (bspc config window_gap)
if [ $gap = 40 ]
set new_gap 18
else if [ $gap = 18 ]
set new_gap 12
else if [ $gap = 12 ]
set new_gap 0
else if [ $gap = 0 ]
set new_gap 40
end
bspc config window_gap $new_gap

View file

@ -0,0 +1 @@
/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser "https://everblue.atlassian.net/browse/"$1 &

View file

@ -0,0 +1,4 @@
#!/usr/local/bin/fish
#
kill -9 (ps -a | grep chalice | grep -v tmux | grep -v killchalice | cut -c1-5) &> /dev/null
kill -9 (ps -a | grep chalice | grep -v tmux | cut -c1-5)

View file

@ -0,0 +1,7 @@
#!/usr/bin/fish
if [ (xkblayout-state print "%n") = "Russian" ]
setxkbmap -layout us
else
setxkbmap -layout ru
end

View file

@ -0,0 +1,37 @@
#!/usr/bin/fish
bsp-layout next --layouts tall,grid,rgrid,tiled
set layout (bsp-layout get)
if ps -aux | grep layoutcycle | grep -v grep
exit
else if [ $layout = "tall" ]
notify-send -t 1000 "Layout: Tall" (echo \
" ______________ \n" \
" | |____| \n" \
" | |____| \n" \
" | |____| \n" \
" |________|____| " )
else if [ $layout = "grid" ]
notify-send -t 1000 "Layout: hGrid" (echo \
" ____________ \n" \
" | | | | \n" \
" |___|___|___| \n" \
" | | | | \n" \
" |___|___|___| " )
else if [ $layout = "rgrid" ]
vgrid
notify-send -t 1000 "Layout: vGrid" (echo \
" ____________ \n" \
" |_____|_____| \n" \
" |_____|_____| \n" \
" |_____|_____| " )
else if [ $layout = "tiled" ]
notify-send -t 1000 "Layout: Tiled" (echo \
" ______________ \n" \
" | | | \n" \
" | |____| \n" \
" | | | | \n" \
" |________|__|_| " )
end

View file

@ -0,0 +1,9 @@
#!/usr/bin/fish
if ps -a | grep lemonbar
pkill lemonbar
end
sleep .1 &&
~/.config/lemonbar/lemonbar.fish | lemonbar -pb -f "BitstreamVeraSansMono:size=12" -B "#343D46" -F "#CDD3DE" &
sleep .1 &&
xdo above -t (xdo id -n root) (xdo id -n lemonbar)

View file

@ -0,0 +1 @@
osascript -e 'display notification "done!" with title "Notification"'

View file

@ -0,0 +1,3 @@
#!/bin/bash
git fetch --all -p; git branch -vv | grep ": gone]" | awk '{ print $1 }' | xargs -r -n 1 git branch -D

View file

@ -0,0 +1,4 @@
#!/usr/bin/fish
if ps -aux | grep picom | grep -v grep
pkill picom
end

View file

@ -0,0 +1,87 @@
#!/usr/bin/python3
import sys
import requests
import json
from termcolor import colored
# sample request:
# [
# {
# "_id": "629672ecb982f4a1be3a7dd6",
# "device": "xDrip-DexcomG5",
# "date": 1654026986232,
# "dateString": "2022-05-31T19:56:26.232Z",
# "sgv": 185,
# "delta": 0.996,
# "direction": "Flat",
# "type": "sgv",
# "filtered": 0,
# "unfiltered": 0,
# "rssi": 100,
# "noise": 1,
# "sysTime": "2022-05-31T19:56:26.232Z",
# "utcOffset": -240,
# "mills": 1654026986232
# }
# ]
tmux = '--tmux' in sys.argv
lemonbar = '--lb' in sys.argv
down = '\u2193' # ↓
falling = '\u2798' # ➘
flat = '\u2192' # →
rising = '\u279a' # ➚
up = '\u2191' # ↑
url = 'http://blood.dump.town'
options = '/api/v1/entries.json?count=1&token=phone-7631d7eebc79825b'
try:
res = requests.get(url + options)
except:
sys.exit()
sugar = res.json()[0]
delta = sugar['delta']
sgv = sugar['sgv']
direction = sugar['direction']
if delta < -10:
arrow = down
if delta >= -10 and delta < -1:
arrow = falling
if delta >= -1 and delta <= 1:
arrow = flat
if delta > 1 and delta <= 10:
arrow = rising
if delta > 10:
arrow = up
if (sgv >= 225 or sgv <= 80):
color = 'red'
elif ((sgv >= 180 and sgv <= 225)
or (sgv <= 100 and sgv >= 80)):
color = 'yellow'
else:
color = 'green'
if tmux:
print(f'#[bg={color}] ' +
str(round(sugar['sgv'], 1)) + ' ' +
arrow + ' ' +
'(' + str(delta) + ')'
)
elif lemonbar:
print(str(round(sugar['sgv'], 1)) + ' ' +
arrow + ' ' +
'(' + str(delta) + ')'
)
else:
print(colored(str(sugar['sgv']) +
' ' + arrow + ' ' +
'(' + str(delta) + ')',
color))

View file

@ -0,0 +1,6 @@
#!/usr/bin/fish
set theme (flavours list | tr ' ' '\n' | dmenu)
flavours apply $theme &&
eval ~/.config/base16-shell/scripts/base16-$theme.sh

View file

@ -0,0 +1,11 @@
#!/usr/bin/fish
if ps -aux | grep picom | grep -v grep
pkill picom
end
sleep 0.2
picom \
--conf /dev/null \
-i 0.8 \
--active-opacity 1.0 \
--focus-exclude "x = 0 && y = 0 && override_redirect = true" &

View file

@ -0,0 +1,31 @@
#! /bin/sh
sxhkd &
bspc monitor -d I II III IV V VI VII VIII IX X
bspc rule -a Gimp desktop='^8' state=floating follow=on
bspc rule -a Chromium desktop='^2'
bspc rule -a mplayer2 state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
# start flavours
bspc config normal_border_color "#343D46"
bspc config active_border_color "#99C794"
bspc config focused_border_color "#99C794"
bspc config presel_feedback_color "#5FB3B3"
# end flavours
bspc config border_width 2
bspc config window_gap 12
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true
lemonlaunch &
xsetroot -cursor_name left_ptr &
notify-send "thots" "$(fortune)" -c 15

View file

@ -0,0 +1,465 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# start flavours
frame_color = "#C0C5CE"
separator_color = "#C0C5CE"
[urgency_low]
background = "#99C794"
foreground = "#D8DEE9"
timeout = 10
[urgency_normal]
background = "#4F5B66"
foreground = "#C0C5CE"
timeout = 10
[urgency_critical]
background = "#F99157"
foreground = "#65737E"
timeout = 0
# end flavours
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 0
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
# frame_color = "#aaaaaa"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 0
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
# separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 128
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
#[urgency_low]
# # IMPORTANT: colors have to be defined in quotation marks.
# # Otherwise the "#" and following would be interpreted as a comment.
# background = "#222222"
# foreground = "#888888"
# timeout = 10
# # Icon for notifications with low urgency, uncomment to enable
# #default_icon = /path/to/icon
#[urgency_normal]
# background = "#285577"
# foreground = "#ffffff"
# timeout = 10
# # Icon for notifications with normal urgency, uncomment to enable
# #default_icon = /path/to/icon
#[urgency_critical]
# background = "#900000"
# foreground = "#ffffff"
# frame_color = "#ff0000"
# timeout = 0
# # Icon for notifications with critical urgency, uncomment to enable
# #default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View file

@ -0,0 +1,3 @@
#Auto-Complete function for AWSume
complete --command awsume --arguments '(awsume-autocomplete)'

View file

@ -0,0 +1,7 @@
complete --command fisher --exclusive --long help --description "Print help"
complete --command fisher --exclusive --long version --description "Print version"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"

View file

@ -0,0 +1,19 @@
complete --command nvm --exclusive --long version --description "Print version"
complete --command nvm --exclusive --long help --description "Print help"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate a version in the current shell"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed versions"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List versions available to install matching optional regex"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
test -e $nvm_data && string split ' ' <$nvm_data/.index
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall a version"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
_nvm_list | string split ' ' | string replace system ''
)"
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
set --query nvm_default_version && echo default
)"

View file

@ -0,0 +1,189 @@
# copy this into ~/.config/fish/completions/ to enable autocomplete for the watson time tracker
#
function __fish_watson_needs_sub -d "provides a list of sub commands"
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'watson' ]
return 0
end
return 1
end
function __fish_watson_using_command -d "determine if watson is using the passed command"
set cmd (commandline -opc)
if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
return 0
end
return 1
end
return 1
end
function __fish_watson_get_projects -d "return a list of projects"
command watson projects
end
function __fish_watson_get_tags -d "return a list of tags"
command watson tags
end
function __fish_watson_has_project -d "determine if watson is using a passed command and if it has a project"
set cmd (commandline -opc)
if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
if contains "$cmd[3]" (__fish_watson_get_projects)
return 0
end
end
end
return 1
end
function __fish_watson_has_from -d "determine if watson is using a passed command and if it is using from"
set cmd (commandline -opc)
if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
if contains -- "$cmd[3]" -f --from
return 0
end
end
end
return 1
end
function __fish_watson_get_frames -d "return a list of frames" #TODO, use watson logs to get more info
command watson frames
end
function __fish_watson_needs_project -d "check if we need a project"
set cmd (commandline -opc)
if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ]
if [ $argv[1] = $cmd[2] ]
for i in $cmd
if contains $i (__fish_watson_get_projects)
return 1 # return 1 because we alredy have a project
end
end
return 0 # we are using $argv as our command and the command does not contain any projects
end
end
return 1
end
# if a backend.url is set, use it in the command description
if [ -e ~/.config/watson/config ]
set url_string (command watson config backend.url 2> /dev/null)
if test -n "$url_string"
set url $url_string
end
else
set url "a remote Crick server"
end
# ungrouped
complete -f -c watson -n '__fish_watson_needs_sub' -a cancel -d "Cancel the last start command"
complete -f -c watson -n '__fish_watson_needs_sub' -a frames -d "Display the list of all frame IDs"
complete -f -c watson -n '__fish_watson_needs_sub' -a help -d "Display help information"
complete -f -c watson -n '__fish_watson_needs_sub' -a projects -d "Display the list of projects"
complete -f -c watson -n '__fish_watson_needs_sub' -a sync -d "sync your work with $url"
complete -f -c watson -n '__fish_watson_needs_sub' -a tags -d "Display the list of tags"
# add
complete -f -c watson -n '__fish_watson_needs_sub' -a add -d "Add time for project with tag(s) that was not tracked live"
complete -f -c watson -n '__fish_watson_using_command add' -s f -l from -d "Start date for add"
complete -f -c watson -n '__fish_watson_has_from add' -s t -l to -d "end date for add"
complete -f -c watson -n '__fish_watson_using_command add' -s c -l confirm-new-project -d "Confirm addition of new project"
complete -f -c watson -n '__fish_watson_using_command add' -s b -l confirm-new-tag -d "Confirm addition of new tag"
# aggregate
complete -f -c watson -n '__fish_watson_needs_sub' -a aggregate -d "Display a report of the time spent on each project aggregated by day"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s c -l current -d "include the running frame"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s C -l no-current -d "exclude the running frame (default)"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s f -l from -d "Start date for aggregate"
complete -f -c watson -n '__fish_watson_has_from aggregate' -s t -l to -d "end date for aggregate"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s j -l json -d "output json"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s s -l csv -d "output csv"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s g -l pager -d "view through pager"
complete -f -c watson -n '__fish_watson_using_command aggregate' -s G -l no-pager -d "don't vew through pager"
# config
complete -f -c watson -n '__fish_watson_needs_sub' -a config -d "Get and set configuration options"
complete -f -c watson -n '__fish_watson_using_command config' -s e -l edit -d "Edit the config with an editor"
# edit
complete -f -c watson -n '__fish_watson_needs_sub' -a edit -d "Edit a frame"
complete -f -c watson -n '__fish_watson_using_command edit' -a "(__fish_watson_get_frames)"
# log
complete -f -c watson -n '__fish_watson_needs_sub' -a log -d "Display sessions during the given timespan"
complete -f -c watson -n '__fish_watson_using_command log' -s c -l current -d "include the running frame"
complete -f -c watson -n '__fish_watson_using_command log' -s C -l no-current -d "exclude the running frame (default)"
complete -f -c watson -n '__fish_watson_using_command log' -s f -l from -d "Start date for log"
complete -f -c watson -n '__fish_watson_has_from log' -s t -l to -d "end date for log"
complete -f -c watson -n '__fish_watson_using_command log' -s y -l year -d "show the last year"
complete -f -c watson -n '__fish_watson_using_command log' -s m -l month -d "show the last month"
complete -f -c watson -n '__fish_watson_using_command log' -s l -l luna -d "show the last lunar cycle"
complete -f -c watson -n '__fish_watson_using_command log' -s w -l week -d "show week-to-day"
complete -f -c watson -n '__fish_watson_using_command log' -s d -l day -d "show today"
complete -f -c watson -n '__fish_watson_using_command log' -s a -l all -d "show all"
complete -f -c watson -n '__fish_watson_using_command log' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_using_command log' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)"
complete -f -c watson -n '__fish_watson_using_command log' -s j -l json -d "output json"
complete -f -c watson -n '__fish_watson_using_command log' -s s -l csv -d "output csv"
complete -f -c watson -n '__fish_watson_using_command log' -s g -l pager -d "view through pager"
complete -f -c watson -n '__fish_watson_using_command log' -s G -l no-pager -d "don't vew through pager"
# merge
complete -f -c watson -n '__fish_watson_needs_sub' -a merge -d "merge existing frames with conflicting ones"
complete -f -c watson -n '__fish_watson_using_command merge' -s f -l force -d "silently merge"
# remove
complete -f -c watson -n '__fish_watson_needs_sub' -a remove -d "Remove a frame"
complete -f -c watson -n '__fish_watson_using_command remove' -a "(__fish_watson_get_frames)"
complete -f -c watson -n '__fish_watson_using_command remove' -s f -l force -d "silently remove"
# rename
complete -f -c watson -n '__fish_watson_needs_sub' -a rename -d "Rename a project or tag"
complete -f -c watson -n '__fish_watson_using_command rename' -a "(__fish_watson_get_projects) (__fish_watson_get_tags)"
# report
complete -f -c watson -n '__fish_watson_needs_sub' -a report -d "Display a report of time spent"
complete -f -c watson -n '__fish_watson_using_command report' -s c -l current -d "include the running frame"
complete -f -c watson -n '__fish_watson_using_command report' -s C -l no-current -d "exclude the running frame (default)"
complete -f -c watson -n '__fish_watson_using_command report' -s f -l from -d "Start date for report"
complete -f -c watson -n '__fish_watson_has_from report' -s t -l to -d "end date for report"
complete -f -c watson -n '__fish_watson_using_command report' -s y -l year -d "show the last year"
complete -f -c watson -n '__fish_watson_using_command report' -s m -l month -d "show the last month"
complete -f -c watson -n '__fish_watson_using_command report' -s l -l luna -d "show the last lunar cycle"
complete -f -c watson -n '__fish_watson_using_command report' -s w -l week -d "show week-to-day"
complete -f -c watson -n '__fish_watson_using_command report' -s d -l day -d "show today"
complete -f -c watson -n '__fish_watson_using_command report' -s a -l all -d "show all"
complete -f -c watson -n '__fish_watson_using_command report' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_using_command report' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)"
complete -f -c watson -n '__fish_watson_using_command report' -s j -l json -d "output json"
complete -f -c watson -n '__fish_watson_using_command report' -s s -l csv -d "output csv"
complete -f -c watson -n '__fish_watson_using_command report' -s g -l pager -d "view through pager"
complete -f -c watson -n '__fish_watson_using_command report' -s G -l no-pager -d "don't vew through pager"
# restart
complete -f -c watson -n '__fish_watson_needs_sub' -a restart -d "Restart monitoring time for a stopped project"
complete -f -c watson -n '__fish_watson_using_command restart' -s s -l stop -d "stop running project"
complete -f -c watson -n '__fish_watson_using_command restart' -s S -l no-stop -d "do not stop running project"
complete -f -c watson -n '__fish_watson_using_command restart' -a "(__fish_watson_get_frames)"
# start
complete -f -c watson -n '__fish_watson_needs_sub' -a start -d "Start monitoring time for a project"
complete -f -c watson -n '__fish_watson_needs_project start' -a "(__fish_watson_get_projects)"
complete -f -c watson -n '__fish_watson_has_project start' -a "+(__fish_watson_get_tags)"
# status
complete -f -c watson -n '__fish_watson_needs_sub' -a status -d "Display when the current project was started and time spent"
complete -f -c watson -n '__fish_watson_using_command status' -s p -l project -d "only show project"
complete -f -c watson -n '__fish_watson_using_command status' -s t -l tags -d "only show tags"
complete -f -c watson -n '__fish_watson_using_command status' -s e -l elapsed -d "only show elapsed time"
# stop
complete -f -c watson -n '__fish_watson_needs_sub' -a stop -d "Stop monitoring time for the current project"
complete -f -c watson -n '__fish_watson_using_command stop' -l at -d "Stop frame at this time (YYYY-MM-DDT)?HH:MM(:SS)?"

View file

@ -0,0 +1,28 @@
function _nvm_install --on-event nvm_install
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
set --universal nvm_data $XDG_DATA_HOME/nvm
set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist
test ! -d $nvm_data && command mkdir -p $nvm_data
echo "Downloading the Node distribution index..." 2>/dev/null
_nvm_index_update $nvm_mirror $nvm_data/.index
end
function _nvm_update --on-event nvm_update
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
set --universal nvm_data $XDG_DATA_HOME/nvm
set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist
end
function _nvm_uninstall --on-event nvm_uninstall
command rm -rf $nvm_data
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
end
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
nvm use $nvm_default_version >/dev/null
end

View file

@ -0,0 +1,7 @@
# Path to Oh My Fish install.
set -q XDG_DATA_HOME
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
or set -gx OMF_PATH "$HOME/.local/share/omf"
# Load Oh My Fish configuration.
source $OMF_PATH/init.fish

View file

@ -0,0 +1,15 @@
set EDITOR vim
set PAGER bat
set BROWSER firefox
# if status --is-interactive
# set BASE16_SHELL "$HOME/.config/base16-shell/"
# source "$BASE16_SHELL/profile_helper.fish"
# end
begin
set --local AUTOJUMP_PATH $HOME/.config/fish/functions/autojump.fish
if test -e $AUTOJUMP_PATH
source $AUTOJUMP_PATH
end
end

View file

@ -0,0 +1,2 @@
jorgebucaran/fisher
jorgebucaran/nvm.fish

View file

@ -0,0 +1,38 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR _fish_abbr_mux:tmuxinator
SETUVAR _fisher_jorgebucaran_2F_fisher_files:/Users/iankeane/\x2econfig/fish/functions/fisher\x2efish\x1e/Users/iankeane/\x2econfig/fish/completions/fisher\x2efish
SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:/Users/iankeane/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e/Users/iankeane/\x2econfig/fish/functions/_nvm_list\x2efish\x1e/Users/iankeane/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e/Users/iankeane/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e/Users/iankeane/\x2econfig/fish/functions/nvm\x2efish\x1e/Users/iankeane/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e/Users/iankeane/\x2econfig/fish/completions/nvm\x2efish
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejorgebucaran/nvm\x2efish
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:005fd7
SETUVAR fish_color_comment:990000
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:009900
SETUVAR fish_color_error:ff0000
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:00afff
SETUVAR fish_color_quote:999900
SETUVAR fish_color_redirection:00afff
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings
SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_user_paths:/home/green/scripts\x1e/home/green/\x2elocal/bin\x1e/home/green/\x2ecargo/bin\x1e/usr/games\x1e/Users/iankeane/\x2elocal/bin\x1e/Users/iankeane/\x2egem/ruby/3\x2e1\x2e0/bin\x1e/usr/local/Cellar/ruby/3\x2e1\x2e2/bin
SETUVAR nvm_data:/Users/iankeane/\x2elocal/share/nvm
SETUVAR nvm_mirror:https\x3a//nodejs\x2eorg/dist

View file

@ -0,0 +1,16 @@
function _nvm_index_update --argument-names mirror index
if not command curl --location --silent $mirror/index.tab >$index.temp
command rm -f $index.temp
echo "nvm: Can't update index, host unavailable: \"$mirror\"" >&2
return 1
end
command awk -v OFS=\t '
/v0.9.12/ { exit } # Unsupported
NR > 1 {
print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
}
' $index.temp >$index
command rm -f $index.temp
end

View file

@ -0,0 +1,11 @@
function _nvm_list
set --local versions $nvm_data/*
set --query versions[1] &&
string match --entire --regex -- (string match --regex -- "v\d.+" $versions |
string escape --style=regex |
string join "|"
) <$nvm_data/.index
command --all node |
string match --quiet --invert --regex -- "^$nvm_data" && echo system
end

View file

@ -0,0 +1,4 @@
function _nvm_version_activate --argument-names v
set --global --export nvm_current_version $v
set --prepend PATH $nvm_data/$v/bin
end

View file

@ -0,0 +1,5 @@
function _nvm_version_deactivate --argument-names v
test "$nvm_current_version" = "$v" && set --erase nvm_current_version
set --local index (contains --index -- $nvm_data/$v/bin $PATH) &&
set --erase PATH[$index]
end

View file

@ -0,0 +1,112 @@
set -gx AUTOJUMP_SOURCED 1
# set user installation path
if test -d ~/.autojump
set -x PATH ~/.autojump/bin $PATH
end
# Set ostype, if not set
if not set -q OSTYPE
set -gx OSTYPE (bash -c 'echo ${OSTYPE}')
end
# enable tab completion
complete -x -c j -a '(autojump --complete (commandline -t))'
# set error file location
if test (uname) = "Darwin"
set -gx AUTOJUMP_ERROR_PATH ~/Library/autojump/errors.log
else if test -d "$XDG_DATA_HOME"
set -gx AUTOJUMP_ERROR_PATH $XDG_DATA_HOME/autojump/errors.log
else
set -gx AUTOJUMP_ERROR_PATH ~/.local/share/autojump/errors.log
end
if test ! -d (dirname $AUTOJUMP_ERROR_PATH)
mkdir -p (dirname $AUTOJUMP_ERROR_PATH)
end
# change pwd hook
function __aj_add --on-variable PWD
status --is-command-substitution; and return
autojump --add (pwd) >/dev/null 2>>$AUTOJUMP_ERROR_PATH &
end
# misc helper functions
function __aj_err
# TODO(ting|#247): set error file location
echo -e $argv 1>&2; false
end
# default autojump command
function j
switch "$argv"
case '-*' '--*'
autojump $argv
case '*'
set -l output (autojump $argv)
# Check for . and attempt a regular cd
if [ $output = "." ]
cd $argv
else
if test -d "$output"
set_color red
echo $output
set_color normal
cd $output
else
__aj_err "autojump: directory '"$argv"' not found"
__aj_err "\n$output\n"
__aj_err "Try `autojump --help` for more information."
end
end
end
end
# jump to child directory (subdirectory of current path)
function jc
switch "$argv"
case '-*'
j $argv
case '*'
j (pwd) $argv
end
end
# open autojump results in file browser
function jo
set -l output (autojump $argv)
if test -d "$output"
switch $OSTYPE
case 'linux*'
xdg-open (autojump $argv)
case 'darwin*'
open (autojump $argv)
case cygwin
cygstart "" (cygpath -w -a (pwd))
case '*'
__aj_err "Unknown operating system: \"$OSTYPE\""
end
else
__aj_err "autojump: directory '"$argv"' not found"
__aj_err "\n$output\n"
__aj_err "Try `autojump --help` for more information."
end
end
# open autojump results (child directory) in file browser
function jco
switch "$argv"
case '-*'
j $argv
case '*'
jo (pwd) $argv
end
end

View file

@ -0,0 +1,3 @@
#AWSume alias to source the AWSume script
alias awsume="source (which awsume.fish)"

View file

@ -0,0 +1,19 @@
# This script was automatically generated by the broot program
# More information can be found in https://github.com/Canop/broot
# This function starts broot and executes the command
# it produces, if any.
# It's needed because some shell commands, like `cd`,
# have no useful effect if executed in a subshell.
function br --wraps=broot
set -l cmd_file (mktemp)
if broot --outcmd $cmd_file $argv
read --local --null cmd < $cmd_file
rm -f $cmd_file
eval $cmd
else
set -l code $status
rm -f $cmd_file
return $code
end
end

View file

@ -0,0 +1,3 @@
function dunsttest --wraps='notify-send -u low "test" && notify-send -u normal "test" && notify-send -u critical "test"' --description 'alias dunsttest notify-send -u low "test" && notify-send -u normal "test" && notify-send -u critical "test"'
notify-send -u low "test" && notify-send -u normal "test" && notify-send -u critical "test" $argv;
end

View file

@ -0,0 +1,3 @@
function fish_mode_prompt
# NOOP - Disable vim mode indicator
end

View file

@ -0,0 +1,48 @@
function fish_prompt
set -l last_command_status $status
set -l symbol 'π'
set -l normal_color (set_color normal)
set -l branch_color (set_color yellow)
set -l meta_color (set_color red)
set -l symbol_color (set_color blue -o)
set -l error_color (set_color red -o)
if git_is_repo
echo -n -s $branch_color (git_branch_name) $normal_color
set -l git_meta ""
if test (command git ls-files --others --exclude-standard | wc -w 2> /dev/null) -gt 0
set git_meta "$git_meta?"
end
if test (command git rev-list --walk-reflogs --count refs/stash 2> /dev/null)
set git_meta "$git_meta\$"
end
if git_is_touched
git_is_dirty && set git_meta "$git_meta"
git_is_staged && set git_meta "$git_meta"
end
set -l commit_count (command git rev-list --count --left-right (git remote)/(git_branch_name)"...HEAD" 2> /dev/null)
if test $commit_count
set -l behind (echo $commit_count | cut -f 1)
set -l ahead (echo $commit_count | cut -f 2)
if test $behind -gt 0
set git_meta "$git_meta🠋"
end
if test $ahead -gt 0
set git_meta "$git_meta🠉"
end
end
if test $git_meta
echo -n -s $meta_color " " $git_meta " " $normal_color
else
echo -n -s " "
end
end
if test $last_command_status -eq 0
echo -n -s $symbol_color $symbol " " $normal_color
else
echo -n -s $error_color $symbol " " $normal_color
end
end

View file

@ -0,0 +1,211 @@
function fisher --argument-names cmd --description "A plugin manager for Fish"
set --query fisher_path || set --local fisher_path $__fish_config_dir
set --local fisher_version 4.3.1
set --local fish_plugins $__fish_config_dir/fish_plugins
switch "$cmd"
case -v --version
echo "fisher, version $fisher_version"
case "" -h --help
echo "Usage: fisher install <plugins...> Install plugins"
echo " fisher remove <plugins...> Remove installed plugins"
echo " fisher update <plugins...> Update installed plugins"
echo " fisher update Update all installed plugins"
echo " fisher list [<regex>] List installed plugins matching regex"
echo "Options:"
echo " -v or --version Print version"
echo " -h or --help Print this help message"
echo "Variables:"
echo " \$fisher_path Plugin installation path. Default: ~/.config/fish"
case ls list
string match --entire --regex -- "$argv[2]" $_fisher_plugins
case install update remove
isatty || read --local --null --array stdin && set --append argv $stdin
set --local install_plugins
set --local update_plugins
set --local remove_plugins
set --local arg_plugins $argv[2..-1]
set --local old_plugins $_fisher_plugins
set --local new_plugins
if ! set --query argv[2]
if test "$cmd" != update
echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
else if test ! -e $fish_plugins
echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
end
set arg_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins)
end
for plugin in $arg_plugins
test -e "$plugin" && set plugin (realpath $plugin)
contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
end
if set --query argv[2]
for plugin in $new_plugins
if contains -- "$plugin" $old_plugins
test "$cmd" = remove &&
set --append remove_plugins $plugin ||
set --append update_plugins $plugin
else if test "$cmd" = install
set --append install_plugins $plugin
else
echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
end
end
else
for plugin in $new_plugins
contains -- "$plugin" $old_plugins &&
set --append update_plugins $plugin ||
set --append install_plugins $plugin
end
for plugin in $old_plugins
contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
end
end
set --local pid_list
set --local source_plugins
set --local fetch_plugins $update_plugins $install_plugins
echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
for plugin in $fetch_plugins
set --local source (command mktemp -d)
set --append source_plugins $source
command mkdir -p $source/{completions,conf.d,functions}
fish --command "
if test -e $plugin
command cp -Rf $plugin/* $source
else
set temp (command mktemp -d)
set name (string split \@ $plugin) || set name[2] HEAD
set url https://codeload.github.com/\$name[1]/tar.gz/\$name[2]
echo Fetching (set_color --underline)\$url(set_color normal)
if curl --silent \$url | tar -xzC \$temp -f - 2>/dev/null
command cp -Rf \$temp/*/* $source
else
echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
command rm -rf $source
end
command rm -rf \$temp
end
set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
" &
set --append pid_list (jobs --last --pid)
end
wait $pid_list 2>/dev/null
for plugin in $fetch_plugins
if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
if set --local index (contains --index -- "$plugin" $install_plugins)
set --erase install_plugins[$index]
else
set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
end
end
end
for plugin in $update_plugins $remove_plugins
if set --local index (contains --index -- "$plugin" $_fisher_plugins)
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
if contains -- "$plugin" $remove_plugins
for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
emit {$name}_uninstall
end
printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var
end
command rm -rf $$plugin_files_var
functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
complete --erase --command $name
end
set --erase _fisher_plugins[$index]
set --erase $plugin_files_var
end
end
if set --query update_plugins[1] || set --query install_plugins[1]
command mkdir -p $fisher_path/{functions,conf.d,completions}
end
for plugin in $update_plugins $install_plugins
set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
set --local files $source/{functions,conf.d,completions}/*
if set --local index (contains --index -- $plugin $install_plugins)
set --local user_files $fisher_path/{functions,conf.d,completions}/*
set --local conflict_files
for file in (string replace -- $source/ $fisher_path/ $files)
contains -- $file $user_files && set --append conflict_files $file
end
if set --query conflict_files[1] && set --erase install_plugins[$index]
echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
continue
end
end
for file in (string replace -- $source/ "" $files)
command cp -Rf $source/$file $fisher_path/$file
end
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files)
contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
contains -- $plugin $install_plugins && set --local event install || set --local event update
printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var
for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var)
source $file
if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
emit {$name}_$event
end
end
end
command rm -rf $source_plugins
set --query _fisher_plugins[1] || set --erase _fisher_plugins
set --query _fisher_plugins &&
printf "%s\n" $_fisher_plugins >$fish_plugins ||
command rm -f $fish_plugins
set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
test "$total" != "0 0 0" && echo (string join ", " (
test $total[1] = 0 || echo "Installed $total[1]") (
test $total[2] = 0 || echo "Updated $total[2]") (
test $total[3] = 0 || echo "Removed $total[3]")
) plugin/s
case \*
echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
end
end
## Migrations ##
function _fisher_fish_postexec --on-event fish_postexec
if functions --query _fisher_list
fisher update >/dev/null 2>/dev/null
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
test -e $XDG_DATA_HOME/fisher && command rm -rf $XDG_DATA_HOME/fisher
functions --erase _fisher_list _fisher_plugin_parse
set --erase fisher_data
end
functions --erase _fisher_fish_postexec
end

View file

@ -0,0 +1,3 @@
function mediamount --wraps='mount_smbfs //wizard:Dexter706@tower/media mnt/media' --description 'alias mediamount=mount_smbfs //wizard:Dexter706@tower/media mnt/media'
mount_smbfs //wizard:Dexter706@tower/media mnt/media $argv;
end

View file

@ -0,0 +1,3 @@
function now --wraps='date +%a%l:%M%p' --wraps=date\ \'+\%a\ \%l:\%M\%p\' --description alias\ now\ date\ \'+\%a\ \%l:\%M\%p\'
date '+%a %l:%M%p' $argv;
end

View file

@ -0,0 +1,206 @@
function nvm --argument-names cmd v --description "Node version manager"
if test -z "$v" && contains -- "$cmd" install use
for file in .nvmrc .node-version
set file (_nvm_find_up $PWD $file) && read v <$file && break
end
if test -z "$v"
echo "nvm: Invalid version or missing \".nvmrc\" file" >&2
return 1
end
end
switch "$cmd"
case -v --version
echo "nvm, version 2.2.6"
case "" -h --help
echo "Usage: nvm install <version> Download and activate the specified Node version"
echo " nvm install Install version from nearest .nvmrc file"
echo " nvm use <version> Activate a version in the current shell"
echo " nvm use Activate version from nearest .nvmrc file"
echo " nvm list List installed versions"
echo " nvm list-remote List versions available to install"
echo " nvm list-remote <regex> List versions matching a given regular expression"
echo " nvm current Print the currently-active version"
echo " nvm uninstall <version> Uninstall a version"
echo "Options:"
echo " -v or --version Print version"
echo " -h or --help Print this help message"
echo "Variables:"
echo " nvm_arch Override architecture, e.g. x64-musl"
echo " nvm_mirror Set the Node download mirror"
echo " nvm_default_version Set the default version for new shells"
case install
_nvm_index_update $nvm_mirror $nvm_data/.index || return
string match --entire --regex -- (_nvm_version_match $v) <$nvm_data/.index | read v alias
if ! set --query v[1]
echo "nvm: Invalid version number or alias: \"$argv[2..-1]\"" >&2
return 1
end
if test ! -e $nvm_data/$v
set --local os (command uname -s | string lower)
set --local ext tar.gz
set --local arch (command uname -m)
switch $os
case aix
set arch ppc64
case sunos
case linux
case darwin
case {MSYS_NT,MINGW\*_NT}\*
set os win
set ext zip
case \*
echo "nvm: Unsupported operating system: \"$os\"" >&2
return 1
end
switch $arch
case i\*86
set arch x86
case x86_64
set arch x64
case arm64
string match --regex --quiet "v(?<major>\d+)" $v
if test "$os" = darwin -a $major -lt 16
set arch x64
end
case armv6 armv6l
set arch armv6l
case armv7 armv7l
set arch armv7l
case armv8 armv8l aarch64
set arch arm64
end
set --query nvm_arch && set arch $nvm_arch
set --local dir "node-$v-$os-$arch"
set --local url $nvm_mirror/$v/$dir.$ext
command mkdir -p $nvm_data/$v
echo -e "Installing Node \x1b[1m$v\x1b[22m $alias"
echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m"
if ! command curl --progress-bar --location $url \
| command tar --extract --gzip --directory $nvm_data/$v 2>/dev/null
command rm -rf $nvm_data/$v
echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2
return 1
end
echo -en "\033[F\33[2K\x1b[0m"
if test "$os" = win
command mv $nvm_data/$v/$dir $nvm_data/$v/bin
else
command mv $nvm_data/$v/$dir/* $nvm_data/$v
command rm -rf $nvm_data/$v/$dir
end
end
if test $v != "$nvm_current_version"
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
_nvm_version_activate $v
end
printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
case use
test $v = default && set v $nvm_default_version
_nvm_list | string match --entire --regex -- (_nvm_version_match $v) | read v __
if ! set --query v[1]
echo "nvm: Can't use Node \"$argv[2..-1]\", version must be installed first" >&2
return 1
end
if test $v != "$nvm_current_version"
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
test $v != system && _nvm_version_activate $v
end
printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
case uninstall
if test -z "$v"
echo "nvm: Not enough arguments for command: \"$cmd\"" >&2
return 1
end
test $v = default && test ! -z "$nvm_default_version" && set v $nvm_default_version
_nvm_list | string match --entire --regex -- (_nvm_version_match $v) | read v __
if ! set -q v[1]
echo "nvm: Node version not installed or invalid: \"$argv[2..-1]\"" >&2
return 1
end
printf "Uninstalling Node %s %s\n" $v (string replace ~ \~ "$nvm_data/$v/bin/node")
_nvm_version_deactivate $v
command rm -rf $nvm_data/$v
case current
_nvm_current
case ls list
_nvm_list | _nvm_list_format (_nvm_current) $argv[2]
case lsr {ls,list}-remote
_nvm_index_update $nvm_mirror $nvm_data/.index || return
_nvm_list | command awk '
FILENAME == "-" && (is_local[$1] = FNR == NR) { next } {
print $0 (is_local[$1] ? " ✓" : "")
}
' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2]
case \*
echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h)" >&2
return 1
end
end
function _nvm_find_up --argument-names path file
test -e "$path/$file" && echo $path/$file || begin
test "$path" != / || return
_nvm_find_up (command dirname $path) $file
end
end
function _nvm_version_match --argument-names v
string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $v |
string replace --filter --regex -- '^v?(\d+)' 'v$1' |
string escape --style=regex ||
string lower '\b'$v'(?:/\w+)?$'
end
function _nvm_list_format --argument-names current regex
command awk -v current="$current" -v regex="$regex" '
$0 ~ regex {
aliases[versions[i++] = $1] = $2 " " $3
pad = (n = length($1)) > pad ? n : pad
}
END {
if (!i) exit 1
while (i--)
printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n",
versions[i], aliases[versions[i]])
}
'
end
function _nvm_current
command --search --quiet node || return
set --query nvm_current_version && echo $nvm_current_version || echo system
end
function _nvm_node_info
set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm)))
test -f $npm_path/package.json || set --local npm_version_default (command npm --version)
command node --eval "
console.log(process.version)
console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version)
console.log(process.execPath.replace(require('os').homedir(), '~'))
"
end

View file

@ -0,0 +1,3 @@
function vim --wraps=nvim --description 'alias vim nvim'
nvim $argv;
end

View file

@ -0,0 +1,3 @@
function w --wraps=watson --description 'alias w=watson'
watson $argv;
end

View file

@ -0,0 +1,66 @@
[[items]]
file = "~/.config/dunst/dunstrc"
template = "dunst"
rewrite = false
hook = "pkill dunst"
# fzf, bat, vim, dunst, lemonbar, dmenu, ls_colors?, st, bspwm
# [[items]]
# file = "~/.config/flavours/env.fish"
# template = "environment"
# rewrite = true
# hook = "~/.config/flavours/env.fish && lemonlaunch"
# # TODO: reload all env dependent things ?
[[items]]
file = "~/scripts/lemonlaunch"
template = "lemonlaunch"
rewrite = true
hook = "lemonlaunch &"
[[items]]
file = "~/.config/bspwm/bspwmrc"
template = "bspwm"
rewrite = false
hook = "bspc wm -r"
[[items]]
file = "~/.Xresources"
template = "xresources"
rewrite = false
start = "/* start flavours */"
end = "/* end flavours */"
hook = "xrdb -load .Xresources && pidof st | xargs kill -s USR1"
[[items]]
file = "~/.config/sxhkd/sxhkdrc"
template = "sxhkd"
rewrite = false
hook = "pkill -USR1 -x sxhkd"
# TODO: actually, make dmenu aliases and redefine them here
# TODO: cleanup sxhkdrc stuff ?
# [[items]]
# file = "~/repos/st/config.h"
# template = "st"
# rewrite = true
# hook = ""
# # TODO: don't rewrite whole file probably
[[items]]
file = "~/.config/nvim/lua/init.lua"
template = "nvim"
rewrite = false
start = "-- start flavours"
end = "-- end flavours"
hook = "echo 'loaded'"
[[items]]
file = "~/scripts/dmenu_run_top"
template = "dmenu_run_top"
rewrite = false
start = "# start flavours"
end = "# end flavours"
hook = ""

View file

@ -0,0 +1,34 @@
#!/usr/bin/fish
set -e FLAV01
set -e FLAV02
set -e FLAV03
set -e FLAV04
set -e FLAV05
set -e FLAV06
set -e FLAV07
set -e FLAV08
set -e FLAV09
set -e FLAV10
set -e FLAV11
set -e FLAV12
set -e FLAV13
set -e FLAV14
set -e FLAV15
set -e FLAV16
set -Ux FLAV01 "#ebdbb2"
set -Ux FLAV02 "#d5c4a1"
set -Ux FLAV03 "#bdae93"
set -Ux FLAV04 "#665c54"
set -Ux FLAV05 "#504945"
set -Ux FLAV06 "#3c3836"
set -Ux FLAV07 "#282828"
set -Ux FLAV08 "#9d0006"
set -Ux FLAV09 "#af3a03"
set -Ux FLAV10 "#f9f5d7"
set -Ux FLAV11 "#f9f5d7"
set -Ux FLAV12 "#9d0006"
set -Ux FLAV13 "#b57614"
set -Ux FLAV14 "#79740e"
set -Ux FLAV15 "#427b58"
set -Ux FLAV16 "#076678"

View file

@ -0,0 +1,3 @@
default:
extension: .toml
output: colors

View file

@ -0,0 +1,42 @@
# Base16 {{scheme-name}} - amfora color config
# {{scheme-author}}
[theme]
bg = "#{{base00-hex}}"
fg = "#{{base05-hex}}"
bottombar_label = "#{{base0E-hex}}"
bottombar_text = "#{{base05-hex}}"
bottombar_bg = "#{{base01-hex}}"
tab_num = "#{{base02-hex}}"
tab_divider = "#{{base04-hex}}"
amfora_link = "#{{base0B-hex}}"
foreign_link = "#{{base03-hex}}"
link_number = "#{{base03-hex}}"
btn_bg = "#{{base01-hex}}"
btn_text = "#{{base05-hex}}"
input_modal_bg = "#{{base01-hex}}"
input_modal_text = "#{{base05-hex}}"
input_modal_field_bg = "#{{base00-hex}}"
input_modal_field_text = "#{{base05-hex}}"
info_modal_bg = "#{{base01-hex}}"
info_modal_text = "#{{base05-hex}}"
error_modal_bg = "#{{base01-hex}}"
error_modal_text = "#{{base0F-hex}}"
yesno_modal_bg = "#{{base01-hex}}"
yesno_modal_text = "#{{base05-hex}}"
tofu_modal_bg = "#{{base01-hex}}"
tofu_modal_text = "#{{base05-hex}}"
subscription_modal_bg = "#{{base01-hex}}"
subscription_modal_text = "#{{base05-hex}}"
hdg_1 = "#{{base09-hex}}"
hdg_2 = "#{{base0A-hex}}"
hdg_3 = "#{{base0D-hex}}"
regular_text = "#{{base05-hex}}"
preformatted_text = "#{{base0C-hex}}"
list_text = "#{{base05-hex}}"

View file

@ -0,0 +1,4 @@
bspc config normal_border_color "#{{base01-hex}}"
bspc config active_border_color "#{{base14-hex}}"
bspc config focused_border_color "#{{base14-hex}}"
bspc config presel_feedback_color "#{{base15-hex}}"

View file

@ -0,0 +1,3 @@
default:
extension: .dunstrc
output: themes

View file

@ -0,0 +1,4 @@
norm_fg="#{{base05-hex}}"
norm_bg="#{{base00-hex}}"
sel_fg="#{{base00-hex}}"
sel_bg="#{{base0B-hex}}"

View file

@ -0,0 +1,3 @@
default:
extension: .dunstrc
output: themes

View file

@ -0,0 +1,17 @@
frame_color = "#{{base01-hex}}"
separator_color = "#{{base05-hex}}"
[urgency_low]
background = "#{{base14-hex}}"
foreground = "#{{base07-hex}}"
timeout = 10
[urgency_normal]
background = "#{{base02-hex}}"
foreground = "#{{base05-hex}}"
timeout = 10
[urgency_critical]
background = "#{{base09-hex}}"
foreground = "#{{base03-hex}}"
timeout = 0

View file

@ -0,0 +1,34 @@
#!/usr/bin/fish
set -e FLAV01
set -e FLAV02
set -e FLAV03
set -e FLAV04
set -e FLAV05
set -e FLAV06
set -e FLAV07
set -e FLAV08
set -e FLAV09
set -e FLAV10
set -e FLAV11
set -e FLAV12
set -e FLAV13
set -e FLAV14
set -e FLAV15
set -e FLAV16
set -Ux FLAV01 "#{{base01-hex}}"
set -Ux FLAV02 "#{{base02-hex}}"
set -Ux FLAV03 "#{{base03-hex}}"
set -Ux FLAV04 "#{{base04-hex}}"
set -Ux FLAV05 "#{{base05-hex}}"
set -Ux FLAV06 "#{{base06-hex}}"
set -Ux FLAV07 "#{{base07-hex}}"
set -Ux FLAV08 "#{{base08-hex}}"
set -Ux FLAV09 "#{{base09-hex}}"
set -Ux FLAV10 "#{{base10-hex}}"
set -Ux FLAV11 "#{{base11-hex}}"
set -Ux FLAV12 "#{{base12-hex}}"
set -Ux FLAV13 "#{{base13-hex}}"
set -Ux FLAV14 "#{{base14-hex}}"
set -Ux FLAV15 "#{{base15-hex}}"
set -Ux FLAV16 "#{{base16-hex}}"

View file

@ -0,0 +1,7 @@
default:
extension: .config
output: bash
fish:
extension: .fish
output: fish

View file

@ -0,0 +1,30 @@
# Base16 {{scheme-name}}
# Author: {{scheme-author}}
_gen_fzf_default_opts() {
local color00='#{{base00-hex}}'
local color01='#{{base01-hex}}'
local color02='#{{base02-hex}}'
local color03='#{{base03-hex}}'
local color04='#{{base04-hex}}'
local color05='#{{base05-hex}}'
local color06='#{{base06-hex}}'
local color07='#{{base07-hex}}'
local color08='#{{base08-hex}}'
local color09='#{{base09-hex}}'
local color0A='#{{base0A-hex}}'
local color0B='#{{base0B-hex}}'
local color0C='#{{base0C-hex}}'
local color0D='#{{base0D-hex}}'
local color0E='#{{base0E-hex}}'
local color0F='#{{base0F-hex}}'
export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS"\
" --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D"\
" --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C"\
" --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D"
}
_gen_fzf_default_opts

View file

@ -0,0 +1,32 @@
# Base16 {{scheme-name}}
# Author: {{scheme-author}}
set -l color00 '#{{base00-hex}}'
set -l color01 '#{{base01-hex}}'
set -l color02 '#{{base02-hex}}'
set -l color03 '#{{base03-hex}}'
set -l color04 '#{{base04-hex}}'
set -l color05 '#{{base05-hex}}'
set -l color06 '#{{base06-hex}}'
set -l color07 '#{{base07-hex}}'
set -l color08 '#{{base08-hex}}'
set -l color09 '#{{base09-hex}}'
set -l color0A '#{{base0A-hex}}'
set -l color0B '#{{base0B-hex}}'
set -l color0C '#{{base0C-hex}}'
set -l color0D '#{{base0D-hex}}'
set -l color0E '#{{base0E-hex}}'
set -l color0F '#{{base0F-hex}}'
set -l FZF_NON_COLOR_OPTS
for arg in (echo $FZF_DEFAULT_OPTS | tr " " "\n")
if not string match -q -- "--color*" $arg
set -a FZF_NON_COLOR_OPTS $arg
end
end
set -Ux FZF_DEFAULT_OPTS "$FZF_NON_COLOR_OPTS"\
" --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D"\
" --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C"\
" --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D"

View file

@ -0,0 +1,9 @@
#!/usr/bin/fish
if ps -a | grep lemonbar
pkill lemonbar
end
sleep .1 &&
~/.config/lemonbar/lemonbar.fish | lemonbar -pb -f "BitstreamVeraSansMono:size=12" -B "#{{base01-hex}}" -F "#{{base06-hex}}" &
sleep .1 &&
xdo above -t (xdo id -n root) (xdo id -n lemonbar)

View file

@ -0,0 +1,3 @@
default:
extension: .dunstrc
output: themes

View file

@ -0,0 +1,18 @@
require('base16-colorscheme').setup({
base00 = '#{{base00-hex}}',
base01 = '#{{base01-hex}}',
base02 = '#{{base02-hex}}',
base03 = '#{{base03-hex}}',
base04 = '#{{base04-hex}}',
base05 = '#{{base05-hex}}',
base06 = '#{{base06-hex}}',
base07 = '#{{base07-hex}}',
base08 = '#{{base08-hex}}',
base09 = '#{{base09-hex}}',
base0A = '#{{base0A-hex}}',
base0B = '#{{base0B-hex}}',
base0C = '#{{base0C-hex}}',
base0D = '#{{base0D-hex}}',
base0E = '#{{base0E-hex}}',
base0F = '#{{base0F-hex}}'
})

View file

@ -0,0 +1,7 @@
default:
extension: .config.py
output: themes/default
minimal:
extension: .config.py
output: themes/minimal

View file

@ -0,0 +1,300 @@
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
# Base16 qutebrowser template by theova
# {{scheme-name}} scheme by {{scheme-author}}
base00 = "#{{base00-hex}}"
base01 = "#{{base01-hex}}"
base02 = "#{{base02-hex}}"
base03 = "#{{base03-hex}}"
base04 = "#{{base04-hex}}"
base05 = "#{{base05-hex}}"
base06 = "#{{base06-hex}}"
base07 = "#{{base07-hex}}"
base08 = "#{{base08-hex}}"
base09 = "#{{base09-hex}}"
base0A = "#{{base0A-hex}}"
base0B = "#{{base0B-hex}}"
base0C = "#{{base0C-hex}}"
base0D = "#{{base0D-hex}}"
base0E = "#{{base0E-hex}}"
base0F = "#{{base0F-hex}}"
# set qutebrowser colors
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
c.colors.completion.fg = base05
# Background color of the completion widget for odd rows.
c.colors.completion.odd.bg = base01
# Background color of the completion widget for even rows.
c.colors.completion.even.bg = base00
# Foreground color of completion widget category headers.
c.colors.completion.category.fg = base0A
# Background color of the completion widget category headers.
c.colors.completion.category.bg = base00
# Top border color of the completion widget category headers.
c.colors.completion.category.border.top = base00
# Bottom border color of the completion widget category headers.
c.colors.completion.category.border.bottom = base00
# Foreground color of the selected completion item.
c.colors.completion.item.selected.fg = base05
# Background color of the selected completion item.
c.colors.completion.item.selected.bg = base02
# Top border color of the selected completion item.
c.colors.completion.item.selected.border.top = base02
# Bottom border color of the selected completion item.
c.colors.completion.item.selected.border.bottom = base02
# Foreground color of the matched text in the selected completion item.
c.colors.completion.item.selected.match.fg = base0B
# Foreground color of the matched text in the completion.
c.colors.completion.match.fg = base0B
# Color of the scrollbar handle in the completion view.
c.colors.completion.scrollbar.fg = base05
# Color of the scrollbar in the completion view.
c.colors.completion.scrollbar.bg = base00
# Background color of disabled items in the context menu.
c.colors.contextmenu.disabled.bg = base01
# Foreground color of disabled items in the context menu.
c.colors.contextmenu.disabled.fg = base04
# Background color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.bg = base00
# Foreground color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.fg = base05
# Background color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.bg = base02
#Foreground color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.fg = base05
# Background color for the download bar.
c.colors.downloads.bar.bg = base00
# Color gradient start for download text.
c.colors.downloads.start.fg = base00
# Color gradient start for download backgrounds.
c.colors.downloads.start.bg = base0D
# Color gradient end for download text.
c.colors.downloads.stop.fg = base00
# Color gradient stop for download backgrounds.
c.colors.downloads.stop.bg = base0C
# Foreground color for downloads with errors.
c.colors.downloads.error.fg = base08
# Font color for hints.
c.colors.hints.fg = base00
# Background color for hints. Note that you can use a `rgba(...)` value
# for transparency.
c.colors.hints.bg = base0A
# Font color for the matched part of hints.
c.colors.hints.match.fg = base05
# Text color for the keyhint widget.
c.colors.keyhint.fg = base05
# Highlight color for keys to complete the current keychain.
c.colors.keyhint.suffix.fg = base05
# Background color of the keyhint widget.
c.colors.keyhint.bg = base00
# Foreground color of an error message.
c.colors.messages.error.fg = base00
# Background color of an error message.
c.colors.messages.error.bg = base08
# Border color of an error message.
c.colors.messages.error.border = base08
# Foreground color of a warning message.
c.colors.messages.warning.fg = base00
# Background color of a warning message.
c.colors.messages.warning.bg = base0E
# Border color of a warning message.
c.colors.messages.warning.border = base0E
# Foreground color of an info message.
c.colors.messages.info.fg = base05
# Background color of an info message.
c.colors.messages.info.bg = base00
# Border color of an info message.
c.colors.messages.info.border = base00
# Foreground color for prompts.
c.colors.prompts.fg = base05
# Border used around UI elements in prompts.
c.colors.prompts.border = base00
# Background color for prompts.
c.colors.prompts.bg = base00
# Background color for the selected item in filename prompts.
c.colors.prompts.selected.bg = base02
# Foreground color for the selected item in filename prompts.
c.colors.prompts.selected.fg = base05
# Foreground color of the statusbar.
c.colors.statusbar.normal.fg = base0B
# Background color of the statusbar.
c.colors.statusbar.normal.bg = base00
# Foreground color of the statusbar in insert mode.
c.colors.statusbar.insert.fg = base00
# Background color of the statusbar in insert mode.
c.colors.statusbar.insert.bg = base0D
# Foreground color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.fg = base00
# Background color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.bg = base0C
# Foreground color of the statusbar in private browsing mode.
c.colors.statusbar.private.fg = base00
# Background color of the statusbar in private browsing mode.
c.colors.statusbar.private.bg = base01
# Foreground color of the statusbar in command mode.
c.colors.statusbar.command.fg = base05
# Background color of the statusbar in command mode.
c.colors.statusbar.command.bg = base00
# Foreground color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.fg = base05
# Background color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.bg = base00
# Foreground color of the statusbar in caret mode.
c.colors.statusbar.caret.fg = base00
# Background color of the statusbar in caret mode.
c.colors.statusbar.caret.bg = base0E
# Foreground color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.fg = base00
# Background color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.bg = base0D
# Background color of the progress bar.
c.colors.statusbar.progress.bg = base0D
# Default foreground color of the URL in the statusbar.
c.colors.statusbar.url.fg = base05
# Foreground color of the URL in the statusbar on error.
c.colors.statusbar.url.error.fg = base08
# Foreground color of the URL in the statusbar for hovered links.
c.colors.statusbar.url.hover.fg = base05
# Foreground color of the URL in the statusbar on successful load
# (http).
c.colors.statusbar.url.success.http.fg = base0C
# Foreground color of the URL in the statusbar on successful load
# (https).
c.colors.statusbar.url.success.https.fg = base0B
# Foreground color of the URL in the statusbar when there's a warning.
c.colors.statusbar.url.warn.fg = base0E
# Background color of the tab bar.
c.colors.tabs.bar.bg = base00
# Color gradient start for the tab indicator.
c.colors.tabs.indicator.start = base0D
# Color gradient end for the tab indicator.
c.colors.tabs.indicator.stop = base0C
# Color for the tab indicator on errors.
c.colors.tabs.indicator.error = base08
# Foreground color of unselected odd tabs.
c.colors.tabs.odd.fg = base05
# Background color of unselected odd tabs.
c.colors.tabs.odd.bg = base01
# Foreground color of unselected even tabs.
c.colors.tabs.even.fg = base05
# Background color of unselected even tabs.
c.colors.tabs.even.bg = base00
# Background color of pinned unselected even tabs.
c.colors.tabs.pinned.even.bg = base0C
# Foreground color of pinned unselected even tabs.
c.colors.tabs.pinned.even.fg = base07
# Background color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.bg = base0B
# Foreground color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.fg = base07
# Background color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.bg = base02
# Foreground color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.fg = base05
# Background color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.bg = base02
# Foreground color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.fg = base05
# Foreground color of selected odd tabs.
c.colors.tabs.selected.odd.fg = base05
# Background color of selected odd tabs.
c.colors.tabs.selected.odd.bg = base02
# Foreground color of selected even tabs.
c.colors.tabs.selected.even.fg = base05
# Background color of selected even tabs.
c.colors.tabs.selected.even.bg = base02
# Background color for webpages if unset (or empty to use the theme's
# color).
# c.colors.webpage.bg = base00

View file

@ -0,0 +1,300 @@
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
# Base16 qutebrowser template by theova and Daniel Mulford
# {{scheme-name}} scheme by {{scheme-author}}
base00 = "#{{base00-hex}}"
base01 = "#{{base01-hex}}"
base02 = "#{{base02-hex}}"
base03 = "#{{base03-hex}}"
base04 = "#{{base04-hex}}"
base05 = "#{{base05-hex}}"
base06 = "#{{base06-hex}}"
base07 = "#{{base07-hex}}"
base08 = "#{{base08-hex}}"
base09 = "#{{base09-hex}}"
base0A = "#{{base0A-hex}}"
base0B = "#{{base0B-hex}}"
base0C = "#{{base0C-hex}}"
base0D = "#{{base0D-hex}}"
base0E = "#{{base0E-hex}}"
base0F = "#{{base0F-hex}}"
# set qutebrowser colors
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
c.colors.completion.fg = base05
# Background color of the completion widget for odd rows.
c.colors.completion.odd.bg = base00
# Background color of the completion widget for even rows.
c.colors.completion.even.bg = base00
# Foreground color of completion widget category headers.
c.colors.completion.category.fg = base0D
# Background color of the completion widget category headers.
c.colors.completion.category.bg = base00
# Top border color of the completion widget category headers.
c.colors.completion.category.border.top = base00
# Bottom border color of the completion widget category headers.
c.colors.completion.category.border.bottom = base00
# Foreground color of the selected completion item.
c.colors.completion.item.selected.fg = base05
# Background color of the selected completion item.
c.colors.completion.item.selected.bg = base02
# Top border color of the selected completion item.
c.colors.completion.item.selected.border.top = base02
# Bottom border color of the selected completion item.
c.colors.completion.item.selected.border.bottom = base02
# Foreground color of the matched text in the selected completion item.
c.colors.completion.item.selected.match.fg = base05
# Foreground color of the matched text in the completion.
c.colors.completion.match.fg = base09
# Color of the scrollbar handle in the completion view.
c.colors.completion.scrollbar.fg = base05
# Color of the scrollbar in the completion view.
c.colors.completion.scrollbar.bg = base00
# Background color of disabled items in the context menu.
c.colors.contextmenu.disabled.bg = base01
# Foreground color of disabled items in the context menu.
c.colors.contextmenu.disabled.fg = base04
# Background color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.bg = base00
# Foreground color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.fg = base05
# Background color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.bg = base02
#Foreground color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.fg = base05
# Background color for the download bar.
c.colors.downloads.bar.bg = base00
# Color gradient start for download text.
c.colors.downloads.start.fg = base00
# Color gradient start for download backgrounds.
c.colors.downloads.start.bg = base0D
# Color gradient end for download text.
c.colors.downloads.stop.fg = base00
# Color gradient stop for download backgrounds.
c.colors.downloads.stop.bg = base0C
# Foreground color for downloads with errors.
c.colors.downloads.error.fg = base08
# Font color for hints.
c.colors.hints.fg = base00
# Background color for hints. Note that you can use a `rgba(...)` value
# for transparency.
c.colors.hints.bg = base0A
# Font color for the matched part of hints.
c.colors.hints.match.fg = base05
# Text color for the keyhint widget.
c.colors.keyhint.fg = base05
# Highlight color for keys to complete the current keychain.
c.colors.keyhint.suffix.fg = base05
# Background color of the keyhint widget.
c.colors.keyhint.bg = base00
# Foreground color of an error message.
c.colors.messages.error.fg = base00
# Background color of an error message.
c.colors.messages.error.bg = base08
# Border color of an error message.
c.colors.messages.error.border = base08
# Foreground color of a warning message.
c.colors.messages.warning.fg = base00
# Background color of a warning message.
c.colors.messages.warning.bg = base0E
# Border color of a warning message.
c.colors.messages.warning.border = base0E
# Foreground color of an info message.
c.colors.messages.info.fg = base05
# Background color of an info message.
c.colors.messages.info.bg = base00
# Border color of an info message.
c.colors.messages.info.border = base00
# Foreground color for prompts.
c.colors.prompts.fg = base05
# Border used around UI elements in prompts.
c.colors.prompts.border = base00
# Background color for prompts.
c.colors.prompts.bg = base00
# Background color for the selected item in filename prompts.
c.colors.prompts.selected.bg = base02
# Foreground color for the selected item in filename prompts.
c.colors.prompts.selected.fg = base05
# Foreground color of the statusbar.
c.colors.statusbar.normal.fg = base05
# Background color of the statusbar.
c.colors.statusbar.normal.bg = base00
# Foreground color of the statusbar in insert mode.
c.colors.statusbar.insert.fg = base0C
# Background color of the statusbar in insert mode.
c.colors.statusbar.insert.bg = base00
# Foreground color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.fg = base0A
# Background color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.bg = base00
# Foreground color of the statusbar in private browsing mode.
c.colors.statusbar.private.fg = base0E
# Background color of the statusbar in private browsing mode.
c.colors.statusbar.private.bg = base00
# Foreground color of the statusbar in command mode.
c.colors.statusbar.command.fg = base04
# Background color of the statusbar in command mode.
c.colors.statusbar.command.bg = base01
# Foreground color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.fg = base0E
# Background color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.bg = base01
# Foreground color of the statusbar in caret mode.
c.colors.statusbar.caret.fg = base0D
# Background color of the statusbar in caret mode.
c.colors.statusbar.caret.bg = base00
# Foreground color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.fg = base0D
# Background color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.bg = base00
# Background color of the progress bar.
c.colors.statusbar.progress.bg = base0D
# Default foreground color of the URL in the statusbar.
c.colors.statusbar.url.fg = base05
# Foreground color of the URL in the statusbar on error.
c.colors.statusbar.url.error.fg = base08
# Foreground color of the URL in the statusbar for hovered links.
c.colors.statusbar.url.hover.fg = base09
# Foreground color of the URL in the statusbar on successful load
# (http).
c.colors.statusbar.url.success.http.fg = base0B
# Foreground color of the URL in the statusbar on successful load
# (https).
c.colors.statusbar.url.success.https.fg = base0B
# Foreground color of the URL in the statusbar when there's a warning.
c.colors.statusbar.url.warn.fg = base0E
# Background color of the tab bar.
c.colors.tabs.bar.bg = base00
# Color gradient start for the tab indicator.
c.colors.tabs.indicator.start = base0D
# Color gradient end for the tab indicator.
c.colors.tabs.indicator.stop = base0C
# Color for the tab indicator on errors.
c.colors.tabs.indicator.error = base08
# Foreground color of unselected odd tabs.
c.colors.tabs.odd.fg = base05
# Background color of unselected odd tabs.
c.colors.tabs.odd.bg = base00
# Foreground color of unselected even tabs.
c.colors.tabs.even.fg = base05
# Background color of unselected even tabs.
c.colors.tabs.even.bg = base00
# Background color of pinned unselected even tabs.
c.colors.tabs.pinned.even.bg = base0B
# Foreground color of pinned unselected even tabs.
c.colors.tabs.pinned.even.fg = base00
# Background color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.bg = base0B
# Foreground color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.fg = base00
# Background color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.bg = base02
# Foreground color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.fg = base05
# Background color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.bg = base02
# Foreground color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.fg = base05
# Foreground color of selected odd tabs.
c.colors.tabs.selected.odd.fg = base05
# Background color of selected odd tabs.
c.colors.tabs.selected.odd.bg = base02
# Foreground color of selected even tabs.
c.colors.tabs.selected.even.fg = base05
# Background color of selected even tabs.
c.colors.tabs.selected.even.bg = base02
# Background color for webpages if unset (or empty to use the theme's
# color).
c.colors.webpage.bg = base00

View file

@ -0,0 +1,3 @@
default:
extension: .dunstrc
output: themes

View file

@ -0,0 +1,4 @@
set norm_bg "#{{base01-hex}}"
set norm_fg "#{{base06-hex}}"
set sel_bg "#{{base14-hex}}"
set sel_fg "#{{base01-hex}}"

View file

@ -0,0 +1,3 @@
default:
extension: .conf
output: colors

View file

@ -0,0 +1,30 @@
# COLOUR (base16)
# default statusbar colors
set-option -g status-style "fg=#{{base04-hex}},bg=#{{base01-hex}}"
# default window title colors
set-window-option -g window-status-style "fg=#{{base04-hex}},bg=default"
# active window title colors
set-window-option -g window-status-current-style "fg=#{{base0A-hex}},bg=default"
# pane border
set-option -g pane-border-style "fg=#{{base01-hex}}"
set-option -g pane-active-border-style "fg=#{{base02-hex}}"
# message text
set-option -g message-style "fg=#{{base05-hex}},bg=#{{base01-hex}}"
# pane number display
set-option -g display-panes-active-colour "#{{base0B-hex}}"
set-option -g display-panes-colour "#{{base0A-hex}}"
# clock
set-window-option -g clock-mode-colour "#{{base0B-hex}}"
# copy mode highligh
set-window-option -g mode-style "fg=#{{base04-hex}},bg=#{{base02-hex}}"
# bell
set-window-option -g window-status-bell-style "fg=#{{base01-hex}},bg=#{{base08-hex}}"

View file

@ -0,0 +1,6 @@
default:
extension: .Xresources
output: xresources
default-256:
extension: -256.Xresources
output: xresources

View file

@ -0,0 +1,54 @@
! Base16 {{scheme-name}}
! Scheme: {{scheme-author}}
#define base00 #{{base00-hex}}
#define base01 #{{base01-hex}}
#define base02 #{{base02-hex}}
#define base03 #{{base03-hex}}
#define base04 #{{base04-hex}}
#define base05 #{{base05-hex}}
#define base06 #{{base06-hex}}
#define base07 #{{base07-hex}}
#define base08 #{{base08-hex}}
#define base09 #{{base09-hex}}
#define base0A #{{base0A-hex}}
#define base0B #{{base0B-hex}}
#define base0C #{{base0C-hex}}
#define base0D #{{base0D-hex}}
#define base0E #{{base0E-hex}}
#define base0F #{{base0F-hex}}
*foreground: base05
#ifdef background_opacity
*background: [background_opacity]base00
#else
*background: base00
#endif
*cursorColor: base05
*color0: base00
*color1: base08
*color2: base0B
*color3: base0A
*color4: base0D
*color5: base0E
*color6: base0C
*color7: base05
*color8: base03
*color9: base08
*color10: base0B
*color11: base0A
*color12: base0D
*color13: base0E
*color14: base0C
*color15: base07
! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
! use 'shell' template to set these if necessary
*color16: base09
*color17: base0F
*color18: base01
*color19: base02
*color20: base04
*color21: base06

View file

@ -0,0 +1,49 @@
#define base00 #{{base00-hex}}
#define base01 #{{base01-hex}}
#define base02 #{{base02-hex}}
#define base03 #{{base03-hex}}
#define base04 #{{base04-hex}}
#define base05 #{{base05-hex}}
#define base06 #{{base06-hex}}
#define base07 #{{base07-hex}}
#define base08 #{{base08-hex}}
#define base09 #{{base09-hex}}
#define base0A #{{base0A-hex}}
#define base0B #{{base0B-hex}}
#define base0C #{{base0C-hex}}
#define base0D #{{base0D-hex}}
#define base0E #{{base0E-hex}}
#define base0F #{{base0F-hex}}
*foreground: base05
#ifdef background_opacity
*background: [background_opacity]base00
#else
*background: base00
#endif
*cursorColor: base05
!black
*color0: base00
*color8: base03
!red
*color1: base08
*color9: base09
!green
*color2: base0B
*color10: base0B
!yellow
*color3: base0A
*color11: base0A
!blue
*color4: base0D
*color12: base0D
!magenta
*color5: base0E
*color13: base0E
!cyan
*color6: base0C
*color14: base0C
!white
*color7: base05
*color15: base07

View file

@ -0,0 +1,7 @@
default:
extension: .config
output: colors
recolor:
extension: .config
output: recolors

View file

@ -0,0 +1,35 @@
# Base16 {{scheme-name}}
# Author: {{scheme-author}}
set default-bg "#{{base00-hex}}"
set default-fg "#{{base01-hex}}"
set statusbar-fg "#{{base04-hex}}"
set statusbar-bg "#{{base02-hex}}"
set inputbar-bg "#{{base00-hex}}"
set inputbar-fg "#{{base07-hex}}"
set notification-bg "#{{base00-hex}}"
set notification-fg "#{{base07-hex}}"
set notification-error-bg "#{{base00-hex}}"
set notification-error-fg "#{{base08-hex}}"
set notification-warning-bg "#{{base00-hex}}"
set notification-warning-fg "#{{base08-hex}}"
set highlight-color "#{{base0A-hex}}"
set highlight-active-color "#{{base0D-hex}}"
set completion-bg "#{{base01-hex}}"
set completion-fg "#{{base0D-hex}}"
set completion-highlight-fg "#{{base07-hex}}"
set completion-highlight-bg "#{{base0D-hex}}"
set recolor-lightcolor "#{{base00-hex}}"
set recolor-darkcolor "#{{base06-hex}}"
set recolor "false"
set recolor-keephue "false"

View file

@ -0,0 +1,32 @@
# Base16 {{scheme-name}}
# Author: {{scheme-author}}
set default-bg "#{{base00-hex}}"
set default-fg "#{{base01-hex}}"
set statusbar-fg "#{{base04-hex}}"
set statusbar-bg "#{{base02-hex}}"
set inputbar-bg "#{{base00-hex}}"
set inputbar-fg "#{{base07-hex}}"
set notification-bg "#{{base00-hex}}"
set notification-fg "#{{base07-hex}}"
set notification-error-bg "#{{base00-hex}}"
set notification-error-fg "#{{base08-hex}}"
set notification-warning-bg "#{{base00-hex}}"
set notification-warning-fg "#{{base08-hex}}"
set highlight-color "#{{base0A-hex}}"
set highlight-active-color "#{{base0D-hex}}"
set completion-bg "#{{base01-hex}}"
set completion-fg "#{{base0D-hex}}"
set completion-highlight-fg "#{{base07-hex}}"
set completion-highlight-bg "#{{base0D-hex}}"
set recolor-lightcolor "#{{base00-hex}}"
set recolor-darkcolor "#{{base06-hex}}"

View file

@ -0,0 +1 @@
For repo-specific config, use .git/config in the repo itself

View file

@ -0,0 +1,3 @@
[user]
email = ian@keane.sh
name = Ian Keane

View file

@ -0,0 +1,25 @@
#!/usr/bin/fish
while true
set batt_str (battery)
set batt_emoji = ""
switch $batt_str
case "Full*"
set batt_emoji "✔️"
set batt (battery | cut -d ' ' -f2)%
case 'Discharging*'
set batt_emoji "🔋"
set batt (battery | cut -d ' ' -f2)%
case 'Not*'
set batt_emoji "X"
set batt (battery | cut -d ' ' -f3)%
case 'Charging*'
set batt_emoji "⚡"
set batt (battery | cut -d ' ' -f2)%
end
echo -e "%{c}$(now) %{r}$(sugar --lb) $batt_emoji $batt "
sleep 1
end

View file

@ -0,0 +1,122 @@
# interpreter for shell commands
set shell /usr/bin/fish
# set '-eu' options for shell commands
# These options are used to have safer shell commands. Option '-e' is used to
# exit on error and option '-u' is used to give error for unset variables.
# Option '-f' disables pathname expansion which can be useful when $f, $fs, and
# $fx variables contain names with '*' or '?' characters. However, this option
# is used selectively within individual commands as it can be limiting at
# times.
# set shellopts '-eu'
# set internal field separator (IFS) to "\n" for shell commands
# This is useful to automatically split file names in $fs and $fx properly
# since default file separator used in these variables (i.e. 'filesep' option)
# is newline. You need to consider the values of these options and create your
# commands accordingly.
# set ifs "\n"
# leave some space at the top and the bottom of the screen
set scrolloff 10
# use enter for shell commands
map <enter> shell
# execute current file (must be executable)
map x $$f
map X !$f
# dedicated keys for file opener actions
# map o &mimeopen $f
# map O $mimeopen --ask $f
# define a custom 'open' command
# This command is called when current file is not a directory. You may want to
# use either file extensions and/or mime types here. Below uses an editor for
# text files and a file opener for the rest.
cmd open ${{
test -L $f && set f (readlink -f $f)
switch (file --mime-type $f -b)
case "text/*"
$EDITOR $f
case "video/*"
mpv $f
end
}}
map o open
# extra open for alternative action on file, e.g. add to playlist in mpv, open
# in new windwo
# cmd altOpen ${{
# test -L $f && f=$(readlink -f $f)
# case $(file --mime-type $f -b) in
# text/*) $EDITOR $fx;;
# video/*) mpv $fx;;
# *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
# esac
# }}
# define a custom 'rename' command without prompt for overwrite
# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
# map r push :rename<space>
# make sure trash folder exists
# %mkdir -p ~/.trash
# move current file or selected files to trash folder
# (also see 'man mv' for backup/overwrite options)
cmd trash %set -f; mv $fx ~/.trash
# define a custom 'delete' command
# cmd delete ${{
# set -f
# printf "$fx\n"
# printf "delete?[y/n]"
# read ans
# [ "$ans" = "y" ] && rm -rf $fx
# }}
# use '<delete>' key for either 'trash' or 'delete' command
# map <delete> trash
# map <delete> delete
# extract the current file with the right command
# (xkcd link: https://xkcd.com/1168/)
cmd extract ${{
set -f
case $f in
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
*.tar.gz|*.tgz) tar xzvf $f;;
*.tar.xz|*.txz) tar xJvf $f;;
*.zip) unzip $f;;
*.rar) unrar x $f;;
*.7z) 7z x $f;;
esac
}}
# compress current file or selected files with tar and gunzip
cmd tar ${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}
# compress current file or selected files with zip
cmd zip ${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}
# extract
# zip
# moveto fzf with bat
set previewer '~/.config/lf/scope'

View file

@ -0,0 +1,40 @@
db_file "~/.config/mpd/database"
log_file "~/.config/mpd/log"
music_directory "/mnt/media/music"
playlist_directory "~/.config/mpd/playlists"
pid_file "~/.config/mpd/pid"
state_file "~/.config/mpd/state"
sticker_file "~/.config/mpd/sticker.sql"
auto_update "yes"
bind_to_address "127.0.0.1"
restore_paused "yes"
max_output_buffer_size "16384"
audio_output {
type "alsa"
name "alsa for audio soundcard"
# mixer_type "software"
}
audio_output {
type "fifo"
name "toggle_visualizer"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
audio_output {
type "pulse"
name "PulseAudio Output"
#server "localhost" # optional
#sink "alsa_output" # optional
}
audio_output {
type "alsa"
name "MPD"
device "pulse"
mixer_control "Master"
}

View file

@ -0,0 +1,480 @@
##############################################################
## This is the example bindings file. Copy it to ##
## ~/.ncmpcpp/bindings or $XDG_CONFIG_HOME/ncmpcpp/bindings ##
## and set up your preferences ##
##############################################################
#
#def_key "mouse"
# mouse_event
#
#def_key "up"
# scroll_up
#
#def_key "shift-up"
# select_item
# scroll_up
#
#def_key "down"
# scroll_down
#
#def_key "shift-down"
# select_item
# scroll_down
#
#def_key "["
# scroll_up_album
#
#def_key "]"
# scroll_down_album
#
#def_key "{"
# scroll_up_artist
#
#def_key "}"
# scroll_down_artist
#
#def_key "page_up"
# page_up
#
#def_key "page_down"
# page_down
#
#def_key "home"
# move_home
#
#def_key "end"
# move_end
#
#def_key "insert"
# select_item
#
#def_key "enter"
# enter_directory
#
#def_key "enter"
# toggle_output
#
#def_key "enter"
# run_action
#
def_key "enter"
play_item
#
#def_key "space"
# add_item_to_playlist
#
#def_key "space"
# toggle_lyrics_update_on_song_change
#
#def_key "space"
# toggle_visualization_type
#
#def_key "delete"
# delete_playlist_items
#
#def_key "delete"
# delete_browser_items
#
#def_key "delete"
# delete_stored_playlist
#
#def_key "right"
# next_column
#
#def_key "right"
# slave_screen
#
#def_key "right"
# volume_up
#
#def_key "+"
# volume_up
#
#def_key "left"
# previous_column
#
#def_key "left"
# master_screen
#
#def_key "left"
# volume_down
#
#def_key "-"
# volume_down
#
#def_key ":"
# execute_command
#
#def_key "tab"
# next_screen
#
#def_key "shift-tab"
# previous_screen
#
#def_key "f1"
# show_help
#
#def_key "1"
# show_playlist
#
#def_key "2"
# show_browser
#
#def_key "2"
# change_browse_mode
#
#def_key "3"
# show_search_engine
#
#def_key "3"
# reset_search_engine
#
#def_key "4"
# show_media_library
#
#def_key "4"
# toggle_media_library_columns_mode
#
#def_key "5"
# show_playlist_editor
#
#def_key "6"
# show_tag_editor
#
#def_key "7"
# show_outputs
#
#def_key "8"
# show_visualizer
#
#def_key "="
# show_clock
#
#def_key "@"
# show_server_info
#
#def_key "s"
# stop
#
#def_key "p"
# pause
#
#def_key ">"
# next
#
#def_key "<"
# previous
#
#def_key "ctrl-h"
# jump_to_parent_directory
#
#def_key "ctrl-h"
# replay_song
#
#def_key "backspace"
# jump_to_parent_directory
#
#def_key "backspace"
# replay_song
#
#def_key "f"
# seek_forward
#
#def_key "b"
# seek_backward
#
#def_key "r"
# toggle_repeat
#
#def_key "z"
# toggle_random
#
#def_key "y"
# save_tag_changes
#
#def_key "y"
# start_searching
#
#def_key "y"
# toggle_single
#
#def_key "R"
# toggle_consume
#
#def_key "Y"
# toggle_replay_gain_mode
#
#def_key "T"
# toggle_add_mode
#
#def_key "|"
# toggle_mouse
#
#def_key "#"
# toggle_bitrate_visibility
#
#def_key "Z"
# shuffle
#
#def_key "x"
# toggle_crossfade
#
#def_key "X"
# set_crossfade
#
#def_key "u"
# update_database
#
#def_key "ctrl-s"
# sort_playlist
#
#def_key "ctrl-s"
# toggle_browser_sort_mode
#
#def_key "ctrl-s"
# toggle_media_library_sort_mode
#
#def_key "ctrl-r"
# reverse_playlist
#
#def_key "ctrl-f"
# apply_filter
#
#def_key "ctrl-_"
# select_found_items
#
#def_key "/"
# find
#
#def_key "/"
# find_item_forward
#
#def_key "?"
# find
#
#def_key "?"
# find_item_backward
#
#def_key "."
# next_found_item
#
#def_key ","
# previous_found_item
#
#def_key "w"
# toggle_find_mode
#
#def_key "e"
# edit_song
#
#def_key "e"
# edit_library_tag
#
#def_key "e"
# edit_library_album
#
#def_key "e"
# edit_directory_name
#
#def_key "e"
# edit_playlist_name
#
#def_key "e"
# edit_lyrics
#
#def_key "i"
# show_song_info
#
#def_key "I"
# show_artist_info
#
#def_key "g"
# jump_to_position_in_song
#
#def_key "l"
# show_lyrics
#
#def_key "ctrl-v"
# select_range
#
#def_key "v"
# reverse_selection
#
#def_key "V"
# remove_selection
#
#def_key "B"
# select_album
#
#def_key "a"
# add_selected_items
#
#def_key "c"
# clear_playlist
#
#def_key "c"
# clear_main_playlist
#
#def_key "C"
# crop_playlist
#
#def_key "C"
# crop_main_playlist
#
#def_key "m"
# move_sort_order_up
#
#def_key "m"
# move_selected_items_up
#
#def_key "n"
# move_sort_order_down
#
#def_key "n"
# move_selected_items_down
#
#def_key "M"
# move_selected_items_to
#
#def_key "A"
# add
#
#def_key "S"
# save_playlist
#
#def_key "o"
# jump_to_playing_song
#
#def_key "G"
# jump_to_browser
#
#def_key "G"
# jump_to_playlist_editor
#
#def_key "~"
# jump_to_media_library
#
#def_key "E"
# jump_to_tag_editor
#
#def_key "U"
# toggle_playing_song_centering
#
#def_key "P"
# toggle_display_mode
#
#def_key "\\"
# toggle_interface
#
#def_key "!"
# toggle_separators_between_albums
#
#def_key "L"
# toggle_lyrics_fetcher
#
#def_key "F"
# fetch_lyrics_in_background
#
#def_key "alt-l"
# toggle_fetching_lyrics_in_background
#
#def_key "ctrl-l"
# toggle_screen_lock
#
#def_key "`"
# toggle_library_tag_type
#
#def_key "`"
# refetch_lyrics
#
#def_key "`"
# add_random_items
#
#def_key "ctrl-p"
# set_selected_items_priority
#
#def_key "q"
# quit
#
#
#def_key "f"
# find
#def_key "f"
# find_item_forward
def_key "+"
show_clock
def_key "="
volume_up
def_key "j"
scroll_down
def_key "k"
scroll_up
def_key "ctrl-u"
page_up
#push_characters "kkkkkkkkkkkkkkk"
def_key "ctrl-d"
page_down
#push_characters "jjjjjjjjjjjjjjj"
def_key "u"
page_up
#push_characters "kkkkkkkkkkkkkkk"
def_key "d"
page_down
#push_characters "jjjjjjjjjjjjjjj"
def_key "h"
previous_column
def_key "l"
next_column
def_key "."
show_lyrics
def_key "n"
next_found_item
def_key "N"
previous_found_item
# not used but bound
def_key "J"
move_sort_order_down
def_key "K"
move_sort_order_up
def_key "h"
jump_to_parent_directory
def_key "l"
enter_directory
def_key "l"
run_action
def_key "l"
play_item
def_key "m"
show_media_library
def_key "m"
toggle_media_library_columns_mode
def_key "t"
show_tag_editor
def_key "v"
show_visualizer
def_key "G"
move_end
def_key "g"
move_home
#jump_to_position_in_song
def_key "U"
update_database
def_key "s"
reset_search_engine
def_key "s"
show_search_engine
def_key "f"
show_browser
def_key "f"
change_browse_mode
def_key "x"
delete_playlist_items
def_key "P"
show_playlist

View file

@ -0,0 +1,40 @@
browser qutebrowser
#show-read-feeds no
auto-reload yes
external-url-viewer "urlscan -dc -r 'linkhandler {}'"
bind-key j down
bind-key k up
bind-key j next articlelist
bind-key k prev articlelist
bind-key J next-feed articlelist
bind-key K prev-feed articlelist
bind-key G end
bind-key g home
bind-key d pagedown
bind-key u pageup
bind-key l open
bind-key h quit
bind-key a toggle-article-read
bind-key n next-unread
bind-key N prev-unread
bind-key D pb-download
bind-key U show-urls
bind-key x pb-delete
color listnormal cyan default
color listfocus black yellow standout bold
color listnormal_unread blue default
color listfocus_unread yellow default bold
color info red black bold
color article cyan default
# browser linkhandler
macro , open-in-browser
macro t set browser "tsp youtube-dl --add-metadata -ic"; open-in-browser ; set browser linkhandler
macro a set browser "tsp youtube-dl --add-metadata -xic -f bestaudio/best"; open-in-browser ; set browser linkhandler
macro v set browser "setsid nohup mpv"; open-in-browser ; set browser linkhandler
macro w set browser "w3m"; open-in-browser ; set browser linkhandler
macro p set browser "dmenuhandler"; open-in-browser ; set browser linkhandler
macro c set browser "xsel -b <<<" ; open-in-browser ; set browser linkhandler

View file

@ -0,0 +1,342 @@
" vim-plug {{{
" Automatic installation
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.nvim/plugins')
packloadall
Plug 'chriskempson/base16-vim'
Plug 'junegunn/vim-easy-align'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin --all' }
" Plug 'https://gitlab.com/lstwn/broot.vim'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
" Plug 'dense-analysis/ale'
Plug 'airblade/vim-gitgutter'
" Plug 'itchyny/lightline.vim'
Plug 'tpope/vim-repeat'
" Plug 'haya14busa/incsearch.vim'
Plug 'sheerun/vim-polyglot'
" Plug 'nvie/vim-flake8'
" Plug 'wolf-dog/lightline-sceaduhelm.vim'
Plug 'tpope/vim-fugitive'
Plug 'justinmk/vim-sneak'
Plug 'jgdavey/tslime.vim'
Plug 'vimwiki/vimwiki'
Plug 'simnalamburt/vim-mundo'
Plug 'tpope/vim-dadbod'
Plug 'junegunn/gv.vim'
Plug 'rbong/vim-flog'
Plug 'tpope/vim-unimpaired'
Plug 'guns/vim-clojure-static' " syntax
Plug 'tpope/vim-fireplace'
Plug 'guns/vim-sexp'
Plug 'tpope/vim-sexp-mappings-for-regular-people'
Plug 'alvan/vim-closetag'
Plug 'mattn/emmet-vim'
Plug 'chrisbra/colorizer'
Plug 'christoomey/vim-tmux-navigator'
Plug 'tpope/vim-rhubarb'
Plug 'zhaozg/vim-diagram'
Plug 'fatih/vim-go'
Plug 'diepm/vim-rest-console'
Plug 'pangloss/vim-javascript'
Plug 'leafgarland/typescript-vim'
Plug 'MaxMEllon/vim-jsx-pretty'
Plug 'peitalin/vim-jsx-typescript'
Plug 'jremmen/vim-ripgrep'
Plug 'francoiscabrol/ranger.vim'
" Plug 'https://github.com/moll/vim-bbye'
Plug 'jlanzarotta/bufexplorer'
Plug 'dbeniamine/cheat.sh-vim'
Plug 'skyuplam/broot.nvim'
Plug 'rbgrouleff/bclose.vim'
call plug#end()
"}}}
" unmaps {{{
let g:bclose_no_plugin_maps=1
" }}}
" appearance {{{
syntax on " Enable syntax
set encoding=utf-8 " Keep utf-8 encoding
set scrolloff=2 " Keep at least 3 lines above and below cursor
set showmode " Something something buffers
set showcmd " Show command in bottom bar
set wildmenu " Visual autocomplete for command menu
set wildmode=list:longest " Show all completions on tab
set laststatus=2 " Last window will always have statusline
set showmatch " Highlight matching [{()}]
set cursorline " Highlight current line
highlight GitGutterAdd ctermbg=black guibg=black
highlight SignColumn guibg=black ctermbg=black
let g:ctrlsf_default_root="project"
" remove underline on current line number
hi CursorLineNr cterm=bold
hi StatusLine ctermbg=Black
hi WinSeparator guibg=None
" " Lightline
" let g:lightline = { 'colorscheme': 'sceaduhelm' }
" set fillchars+=vert:│
" command! LightlineReload call LightlineReload()
" function! LightlineReload()
" call lightline#init()
" call lightline#colorscheme()
" call lightline#update()
" endfunction
" Invisible characters
set list
set listchars=tab:▸\ ,eol
set laststatus=3
" }}}
" Folding {{{
set foldenable " Enable folding
set foldmethod=marker " Fold sections by marker
set foldlevel=0 " Fold by default
set modelines=1 " Check final line of file for modeline
" }}}
" behavior {{{
set nocompatible " Turn off vi compatability nonsense
set hidden " Hide buffer when opening new file
set visualbell " Use visual bell instead of beeping
set ttyfast " Improves smoothness and drawing
set backspace=indent,eol,start " Always allow backspacing
set undofile " Make .un file for persistent undo
set number
set lazyredraw " Redraw only when necessary
set updatetime=100 " Make updates happen faster (gitgutter)
set splitright " Make split to right by default
set splitbelow
set winheight=30 " Soft minimum window height (active)
set winminheight=6 " Hard minimum window height (inactive)
set winwidth=90 " Window width for current window
set winminwidth=30 " Hard minimum for window width
set t_vb= " No visual bell ever
let g:sneak#use_ic_scs=1
set virtualedit=block
set noswapfile
set undodir=~/.nvim/undo
let g:markdown_folding=1
au FileType markdown setlocal foldlevel=99
let g:bufExplorerSplitHorzSize=8 " New split window is n rows high.
let g:bufExplorerDefaultHelp=0 " Do not show default help.
"}}}
" searching {{{
set gdefault " Remove default g flag on search
set ignorecase " Ignore case for searches
set smartcase " Case-specific only when uppercase
set hlsearch " Don't continue to highlight searched phrases.
set incsearch " But do search as characters are entered
"}}}
" tab settings {{{
set tabstop=4 " Number of visual spaces per tab
set softtabstop=4 " Should always = tabstop
set shiftwidth=4 " Indent/outdent by 4 columns
set expandtab " Tabs are spaces
set shiftround " Always indent/outdent to the nearest tabstop
" Make search terms more visible
highlight Visual ctermbg=DarkGreen ctermfg=Black
set autoindent " Auto indentation
"}}}
" hjkl {{{
" Disable arrow keys in normal and visual mode
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
" Make j and k move by screen line, not file line
nnoremap j gj
nnoremap k gk
"}}}
" {{{ web dev
autocmd FileType html,css,javascript,typescript,typescriptreact
\ set expandtab smarttab softtabstop=2 shiftwidth=2 tabstop=2
" Emmet tab size
let g:user_emmet_settings = {
\ 'indentation' : ' '
\}
" }}}
" split pane navigation {{{
" nnoremap <C-h> <C-w>h
" nnoremap <C-j> <C-w>j
" nnoremap <C-k> <C-w>k
" nnoremap <C-l> <C-w>l
nnoremap <C-c> :close <cr>
nnoremap <C-n> :bn <cr>
nnoremap <C-p> :bp <cr>
let g:tmux_navigator_disable_when_zoomed = 1
"}}}
" git commands {{{
nmap ghv <Plug>(GitGutterPreviewHunk)
nmap ghn <Plug>(GitGutterNextHunk)
nmap ghp <Plug>(GitGutterPrevHunk)
nmap ghf <Plug>(GitGutterFold)
nmap ghs <Plug>(GitGutterStageHunk)
" Controls fugitive diff split direction
set diffopt=vertical
"}}}
" plugin modification {{{
" FZF
map <C-s> :FZF<cr>
" map <C-s> :tabNext<cr>
" This is the default extra key bindings
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit' }
" Default fzf layout
" - down / up / left / right
let g:fzf_layout = { 'down': '~30%' }
" Customize fzf colors to match your color scheme
let g:fzf_colors =
\ { 'fg': [ 'fg', 'Normal'],
\ 'bg': [ 'bg', 'Normal'],
\ 'hl': [ 'fg', 'Comment'],
\ 'fg+': [ 'fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': [ 'bg', 'CursorLine', 'CursorColumn'],
\ 'hl+': [ 'fg', 'Statement'],
\ 'info': [ 'fg', 'PreProc'],
\ 'border': [ 'fg', 'Ignore'],
\ 'prompt': [ 'fg', 'Conditional'],
\ 'pointer': [ 'fg', 'Exception'],
\ 'marker': [ 'fg', 'Keyword'],
\ 'spinner': [ 'fg', 'Label'],
\ 'header': [ 'fg', 'Comment'] }
" EasyAlign
"" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)
"}}}
" vimwiki {{{
let g:vimwiki_list = [
\ {'name': 'work', 'path': '~/.vim/work'},
\ {'name': 'home', 'path': '~/.vim/home'},
\ {'name': 'blog', 'path': '~/.vim/blog'},
\ {'name': 'vim', 'path': '~/.vim/vim'},
\ ]
let g:vimwiki_syntax = 'markdown'
let g:vimwiki_ext = '.md'
let g:vimwiki_automatic_nested_syntaxes = 1
let g:vimwiki_links_space_char = '_'
"}}}
" diffs {{{
hi DiffAdd cterm=none ctermfg=DarkGray ctermbg=Green
hi DiffChange cterm=none ctermfg=DarkGray ctermbg=Yellow
hi DiffDelete cterm=bold ctermfg=DarkGray ctermbg=Red
hi DiffText cterm=none ctermfg=DarkGray ctermbg=LightBlue
" better diffs
set diffopt+=internal,algorithm:patience
" }}}
" buffers {{{
let g:bufExplorerDisableDefaultKeyMapping=1 " Disable mapping.
"}}}
" broot {{{
" let g:broot_default_conf_path=expand('~/.config/broot/conf.hjson')
" let g:broot_replace_netrw=1
" let g:loaded_netrwPlugin=1 " use broot for :E/T/V/Hexplore
"}}}
"" ALE {{{
" let g:ale_linters = {'javascript': ['tsserver'],
" \ 'typescript': ['tsserver'],
" \ 'typescriptreact': ['tsserver'],
" \ 'python': ['flake8'],
" \ 'css': ['csslint'],
" \ 'dockerfile': ['hadolint'],
" \ 'yaml': ['yamllint'] }
" let g:ale_fixers = {
" \ '*': ['remove_trailing_lines', 'trim_whitespace'] }
" " let g:ale_set_loclist = 0
" " let g:ale_set_quickfix = 1
" let g:ale_set_quickfix = 0
" let g:ale_set_loclist = 0
" let g:ale_fix_on_save = 1
""}}}
" leaders {{{
:let mapleader = ","
" Underline with line of the same length
nnoremap <leader>- yypv$r-
" Insert date on current line
nnoremap <leader>d k :r !date <cr>
nnoremap <leader>se :Explore<cr>
nnoremap <leader>st :Texplore<cr>
nnoremap <leader>sv :Vexplore<cr>
nnoremap <leader>sh :Hexplore<cr>
nmap <leader>h :map <leader><cr>
" nnoremap <leader>ad :ALEDetail<cr>
" nnoremap <leader>ag :ALEGoToDefinition<cr>
" nnoremap <leader>al :ALEPopulateQuickfix<cr>
" nnoremap <leader>an :ALENext<cr>
" nnoremap <leader>ap :ALEPrevious<cr>
" nnoremap <leader>ar :ALERename<cr>
nnoremap <leader>b :BufExplorerHorizontalSplit<cr>
"}}}
"
lua require('init')
" folding options {{{
" folding options, this must be last in file
" vim:foldmethod=marker:foldlevel=0
" }}}

View file

@ -0,0 +1,11 @@
-- require('keybindings')
-- require('package')
-- require('config')
-- Global options: vim.o
-- Local to window: vim.wo
-- Local to buffer: vim.bo
vim.opt.expandtab = true
vim.opt.shiftwidth = 2
vim.opt.softtabstop = 2

View file

@ -0,0 +1,199 @@
require('keybindings')
require('packages')
require('config')
-- Treesitter Confirg
require('nvim-treesitter.configs').setup {
ensure_installed = {
"c", "lua", "rust", "python", "typescript", "bash", "clojure",
"comment", "commonlisp", "fennel", "fish", "json", "html", "markdown",
"make", "toml", "tsx", "vim", "yaml"
},
highlight = {
enable = true,
},
indent = {
enable = true,
}
}
-- LSP Language Installer
local lsp_installer = require("nvim-lsp-installer")
-- Setup lspconfig.
local on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
-- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts)
end
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
lsp_installer.on_server_ready(function(server)
local opts = {
on_attach = on_attach,
capabilities = capabilities,
}
if server.name == "sumneko_lua" then
opts.settings = {
Lua = {
diagnostics = {
globals = {'vim', 'use'}
},
}
}
end
server:setup(opts)
end)
-- Needed for LuaSnip
require("luasnip/loaders/from_vscode").lazy_load()
local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local luasnip = require("luasnip")
-- LSP Completion
local cmp = require('cmp')
cmp.setup({
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
end,
},
completion = { autocomplete = false },
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
-- ['<C-a>'] = cmp.mapping.complete(), -- use supertab
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<C-n>'] = cmp.mapping(cmp.mapping.select_next_item(), {'i','c'}),
['<C-p>'] = cmp.mapping(cmp.mapping.select_prev_item(), {'i','c'}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' }, -- For luasnip users.
},
{
{ name = 'buffer' },
})
})
-- Set configuration for specific filetype.
cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it.
}, {
{ name = 'buffer' },
})
})
-- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.
-- require('lspconfig').sumneko_lua.setup {
-- on_attach = on_attach,
-- capabilities = capabilities,
-- }
-- require('lspconfig')['tsserver'].setup {
-- capabilities = capabilities
-- }
-- require('lspconfig')['tsserver'].setup {
-- capabilities = capabilities
-- }
-- TODO figure out fold stuff later
-- vim.opt.foldmethod = "expr"
-- vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
-- vim.opt.foldnestmax = 1
vim.opt.completeopt = "menu" -- keep omnicomplete from spawning new buffer
-- Autoformatting
require("formatter").setup {
logging = false,
log_level = vim.log.levels.WARN,
filetype = {
-- lua = {
-- require("formatter.filetypes.lua").stylua,
-- },
python = {
require("formatter.filetypes.python").black,
},
["*"] = {
require("formatter.filetypes.any").remove_trailing_whitespace
}
}
}
-- You will likely want to reduce updatetime which affects CursorHold
-- note: this setting is global and should be set only once
vim.o.updatetime = 250
vim.cmd [[autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
-- Base16 colors
-- start flavours
require('base16-colorscheme').setup({
base00 = '#e7e6df',
base01 = '#929181',
base02 = '#878573',
base03 = '#6c6b5a',
base04 = '#5f5e4e',
base05 = '#302f27',
base06 = '#22221b',
base07 = '#ba6236',
base08 = '#ae7313',
base09 = '#a5980d',
base0A = '#7d9726',
base0B = '#5b9d48',
base0C = '#36a166',
base0D = '#5f9182',
base0E = '#9d6c7c',
base0F = '#{{base0G-hex}}'
})
-- end flavours

View file

@ -0,0 +1,24 @@
-- vim.api.nvim_set_keymap({mode}, {keymap}, {mapped to}, {options})
local keymap = vim.api.nvim_set_keymap
local opts = { noremap = true } -- don't recursively remap things
keymap('n', '?', ':tabNext<CR>', opts)
-- keymap('n', 'gp', ':tabprevious<CR>', opts)
-- local function nkeymap(key, map)
-- keymap('n', key, map, opts)
-- end
-- nkeymap('gd', ':lua vim.lsp.buf.definition()<cr>')
-- nkeymap('gD', ':lua vim.lsp.buf.declaration()<cr>')
-- nkeymap('gi', ':lua vim.lsp.buf.implementation()<cr>')
-- nkeymap('gw', ':lua vim.lsp.buf.document_symbol()<cr>')
-- nkeymap('gw', ':lua vim.lsp.buf.workspace_symbol()<cr>')
-- nkeymap('gr', ':lua vim.lsp.buf.references()<cr>')
-- nkeymap('gt', ':lua vim.lsp.buf.type_definition()<cr>')
-- nkeymap('K', ':lua vim.lsp.buf.hover()<cr>')
-- nkeymap('<c-k>', ':lua vim.lsp.buf.signature_help()<cr>')
-- nkeymap('<leader>af', ':lua vim.lsp.buf.code_action()<cr>')
-- nkeymap('<leader>rn', ':lua vim.lsp.buf.rename()<cr>')

View file

@ -0,0 +1,17 @@
require('packer').startup(function()
use 'wbthomason/packer.nvim'
use 'nvim-treesitter/nvim-treesitter'
use 'williamboman/nvim-lsp-installer'
use 'neovim/nvim-lspconfig'
use 'hrsh7th/cmp-nvim-lsp'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-cmdline'
use 'hrsh7th/nvim-cmp'
use 'L3MON4D3/LuaSnip'
use 'rafamadriz/friendly-snippets'
use 'saadparwaiz1/cmp_luasnip'
use 'onsails/lspkind-nvim'
use 'mhartington/formatter.nvim'
use 'RRethy/nvim-base16'
end)

View file

@ -0,0 +1,157 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
_G._packer = _G._packer or {}
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/green/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/green/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/green/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/green/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/green/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
LuaSnip = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/LuaSnip",
url = "https://github.com/L3MON4D3/LuaSnip"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-cmdline"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/cmp-cmdline",
url = "https://github.com/hrsh7th/cmp-cmdline"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-path"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
cmp_luasnip = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
url = "https://github.com/saadparwaiz1/cmp_luasnip"
},
["formatter.nvim"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/formatter.nvim",
url = "https://github.com/mhartington/formatter.nvim"
},
["friendly-snippets"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/friendly-snippets",
url = "https://github.com/rafamadriz/friendly-snippets"
},
["lspkind-nvim"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/lspkind-nvim",
url = "https://github.com/onsails/lspkind-nvim"
},
["nvim-base16"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/nvim-base16",
url = "https://github.com/RRethy/nvim-base16"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-lsp-installer"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/nvim-lsp-installer",
url = "https://github.com/williamboman/nvim-lsp-installer"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["packer.nvim"] = {
loaded = true,
path = "/home/green/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
}
}
time([[Defining packer_plugins]], false)
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

View file

@ -0,0 +1,2 @@
theme default
theme pie

View file

@ -0,0 +1 @@
stable

View file

@ -0,0 +1 @@
pie

View file

@ -0,0 +1,195 @@
# vi: ft=dosini
[main]
# Enables context sensitive auto-completion. If this is disabled, all
# possible completions will be listed.
smart_completion = True
# Display the completions in several columns. (More completions will be
# visible.)
wider_completion_menu = False
# Multi-line mode allows breaking up the sql statements into multiple lines. If
# this is set to True, then the end of the statements must have a semi-colon.
# If this is set to False then sql statements can't be split into multiple
# lines. End of line (return) is considered as the end of the statement.
multi_line = False
# If multi_line_mode is set to "psql", in multi-line mode, [Enter] will execute
# the current input if the input ends in a semicolon.
# If multi_line_mode is set to "safe", in multi-line mode, [Enter] will always
# insert a newline, and [Esc] [Enter] or [Alt]-[Enter] must be used to execute
# a command.
multi_line_mode = psql
# Destructive warning mode will alert you before executing a sql statement
# that may cause harm to the database such as "drop table", "drop database"
# or "shutdown".
destructive_warning = True
# Enables expand mode, which is similar to `\x` in psql.
expand = False
# Enables auto expand mode, which is similar to `\x auto` in psql.
auto_expand = False
# If set to True, table suggestions will include a table alias
generate_aliases = False
# log_file location.
# In Unix/Linux: ~/.config/pgcli/log
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\log
# %USERPROFILE% is typically C:\Users\{username}
log_file = default
# keyword casing preference. Possible values: "lower", "upper", "auto"
keyword_casing = auto
# casing_file location.
# In Unix/Linux: ~/.config/pgcli/casing
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\casing
# %USERPROFILE% is typically C:\Users\{username}
casing_file = default
# If generate_casing_file is set to True and there is no file in the above
# location, one will be generated based on usage in SQL/PLPGSQL functions.
generate_casing_file = False
# Casing of column headers based on the casing_file described above
case_column_headers = True
# history_file location.
# In Unix/Linux: ~/.config/pgcli/history
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\history
# %USERPROFILE% is typically C:\Users\{username}
history_file = default
# Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO"
# and "DEBUG". "NONE" disables logging.
log_level = INFO
# Order of columns when expanding * to column list
# Possible values: "table_order" and "alphabetic"
asterisk_column_order = table_order
# Whether to qualify with table alias/name when suggesting columns
# Possible values: "always", "never" and "if_more_than_one_table"
qualify_columns = if_more_than_one_table
# When no schema is entered, only suggest objects in search_path
search_path_filter = False
# Default pager.
# By default 'PAGER' environment variable is used
# pager = less -SRXF
# Timing of sql statements and table rendering.
timing = True
# Show/hide the informational toolbar with function keymap at the footer.
show_bottom_toolbar = True
# Table format. Possible values: psql, plain, simple, grid, fancy_grid, pipe,
# ascii, double, github, orgtbl, rst, mediawiki, html, latex, latex_booktabs,
# textile, moinmoin, jira, vertical, tsv, csv.
# Recommended: psql, fancy_grid and grid.
table_format = psql
# Syntax Style. Possible values: manni, igor, xcode, vim, autumn, vs, rrt,
# native, perldoc, borland, tango, emacs, friendly, monokai, paraiso-dark,
# colorful, murphy, bw, pastie, paraiso-light, trac, default, fruity
syntax_style = default
# Keybindings:
# When Vi mode is enabled you can use modal editing features offered by Vi in the REPL.
# When Vi mode is disabled emacs keybindings such as Ctrl-A for home and Ctrl-E
# for end are available in the REPL.
vi = True
# Error handling
# When one of multiple SQL statements causes an error, choose to either
# continue executing the remaining statements, or stopping
# Possible values "STOP" or "RESUME"
on_error = STOP
# Set threshold for row limit. Use 0 to disable limiting.
row_limit = 1000
# Skip intro on startup and goodbye on exit
less_chatty = False
# Postgres prompt
# \t - Current date and time
# \u - Username
# \h - Short hostname of the server (up to first '.')
# \H - Hostname of the server
# \d - Database name
# \p - Database port
# \i - Postgres PID
# \# - "@" sign if logged in as superuser, '>' in other case
# \n - Newline
# \dsn_alias - name of dsn alias if -D option is used (empty otherwise)
# \x1b[...m - insert ANSI escape sequence
# eg: prompt = '\x1b[35m\u@\x1b[32m\h:\x1b[36m\d>'
prompt = '\u@\h:\d> '
# Number of lines to reserve for the suggestion menu
min_num_menu_lines = 4
# Character used to left pad multi-line queries to match the prompt size.
multiline_continuation_char = ''
# The string used in place of a null value.
null_string = '<null>'
# manage pager on startup
enable_pager = True
# Use keyring to automatically save and load password in a secure manner
keyring = True
# Custom colors for the completion menu, toolbar, etc.
[colors]
completion-menu.completion.current = 'bg:#ffffff #000000'
completion-menu.completion = 'bg:#008888 #ffffff'
completion-menu.meta.completion.current = 'bg:#44aaaa #000000'
completion-menu.meta.completion = 'bg:#448888 #ffffff'
completion-menu.multi-column-meta = 'bg:#aaffff #000000'
scrollbar.arrow = 'bg:#003333'
scrollbar = 'bg:#00aaaa'
selected = '#ffffff bg:#6666aa'
search = '#ffffff bg:#4444aa'
search.current = '#ffffff bg:#44aa44'
bottom-toolbar = 'bg:#222222 #aaaaaa'
bottom-toolbar.off = 'bg:#222222 #888888'
bottom-toolbar.on = 'bg:#222222 #ffffff'
search-toolbar = 'noinherit bold'
search-toolbar.text = 'nobold'
system-toolbar = 'noinherit bold'
arg-toolbar = 'noinherit bold'
arg-toolbar.text = 'nobold'
bottom-toolbar.transaction.valid = 'bg:#222222 #00ff5f bold'
bottom-toolbar.transaction.failed = 'bg:#222222 #ff005f bold'
literal.string = '#ba2121'
literal.number = '#666666'
keyword = 'bold #008000'
# style classes for colored table output
output.header = "#00ff5f bold"
output.odd-row = ""
output.even-row = ""
output.null = "#808080"
# Named queries are queries you can execute by name.
[named queries]
# DSN to call by -D option
[alias_dsn]
# example_dsn = postgresql://[user[:password]@][netloc][:port][/dbname]
# Format for number representation
# for decimal "d" - 12345678, ",d" - 12,345,678
# for float "g" - 123456.78, ",g" - 123,456.78
[data_formats]
decimal = ""
float = ""

View file

@ -0,0 +1 @@
map bw shell wal -i %s

View file

@ -0,0 +1,264 @@
# 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 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-browser, X, flag f = chromium-browser -- "$@"
ext x?html?, has chromium, X, flag f = chromium -- "$@"
ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
ext x?html?, has opera, X, flag f = opera -- "$@"
ext x?html?, has firefox, X, flag f = firefox -- "$@"
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
#-------------------------------------------
ext csv = sc-im "$@"
ext xls = sc-im "$@"
ext xlsx = sc-im "$1"
#-------------------------------------------
# Misc
#-------------------------------------------
# Define the "editor" for text files as first action
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
mime ^text, label pager = "$PAGER" -- "$@"
!mime ^text, label editor, ext xml|json|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
!mime ^text, label pager, ext xml|json|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"
#--------------------------------------------
# Audio without X
#-------------------------------------------
mime ^audio|ogg$, terminal, has mpv = mpv -- "$@"
mime ^audio|ogg$, terminal, has mplayer2 = mplayer2 -- "$@"
mime ^audio|ogg$, terminal, has mplayer = mplayer -- "$@"
ext midi?, terminal, has wildmidi = wildmidi -- "$@"
#--------------------------------------------
# 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 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 -- "$@"
#--------------------------------------------
# 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-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 pdf, has open, X, flag f = open "$@"
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 -- "$@"
ext djvu, has djview, X, flag f = djview -- "$@"
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
#-------------------------------------------
# Image Viewing:
#-------------------------------------------
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
mime ^image/svg, has display, X, flag f = display -- "$@"
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
mime ^image, has feh, X, flag f = feh -- "$@"
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 nomacs, X, flag f = nomacs -- "$@"
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
ext xcf, X, flag f = gimp -- "$@"
#-------------------------------------------
# Archives
#-------------------------------------------
# avoid password prompt by providing empty password
ext 7z, has 7z = 7z -p l "$@" | "$PAGER"
# This requires atool
ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | "$PAGER"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | "$PAGER"
ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@"
ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@"
# Listing and extracting archives without atool:
ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | "$PAGER"
ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done
ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done
ext zip, has unzip = unzip -l "$1" | less
ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done
ext ace, has unace = unace l "$1" | less
ext ace, has unace = for file in "$@"; do unace e "$file"; done
ext rar, has unrar = unrar l "$1" | less
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
#-------------------------------------------
# Flag t fallback terminals
#-------------------------------------------
# Rarely installed terminal emulators get higher priority; It is assumed that
# if you install a rare terminal emulator, you probably use it.
# gnome-terminal/konsole/xterm on the other hand are often installed as part of
# a desktop environment or as fallback terminal emulators.
mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
mime ^ranger/x-terminal-emulator, has st = st -e "$@"
mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
#-------------------------------------------
# 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 = ${VISUAL:-$EDITOR} -- "$@"
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
# The very last action, so that it's never triggered accidentally, is to execute a program:
mime application/x-executable = "$1"

View file

@ -0,0 +1,122 @@
#############################################################################
# A minimal rTorrent configuration that provides the basic features
# you want to have in addition to the built-in defaults.
#
# See https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template
# for an up-to-date version.
#############################################################################
## Instance layout (base paths)
method.insert = cfg.basedir, private|const|string, (cat,"/home/green/rtorrent/")
method.insert = cfg.download, private|const|string, (cat,(cfg.basedir),"download/")
method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),"log/")
method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
method.insert = cfg.session, private|const|string, (cat,(cfg.basedir),".session/")
method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/")
## Create instance directories
execute.throw = sh, -c, (cat,\
"mkdir -p \"",(cfg.download),"\" ",\
"\"",(cfg.logs),"\" ",\
"\"",(cfg.session),"\" ",\
"\"",(cfg.watch),"/load\" ",\
"\"",(cfg.watch),"/start\" ")
## Listening port for incoming peer traffic (fixed; you can also randomize it)
network.port_range.set = 50000-50000
network.port_random.set = no
## Tracker-less torrent and UDP tracker support
## (conservative settings for 'private' trackers, change for 'public')
dht.mode.set = disable
protocol.pex.set = no
trackers.use_udp.set = no
## Peer settings
throttle.max_uploads.set = 100
throttle.max_uploads.global.set = 250
throttle.min_peers.normal.set = 20
throttle.max_peers.normal.set = 60
throttle.min_peers.seed.set = 30
throttle.max_peers.seed.set = 80
trackers.numwant.set = 80
protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
## Limits for file handle resources, this is optimized for
## an `ulimit` of 1024 (a common default). You MUST leave
## a ceiling of handles reserved for rTorrent's internal needs!
network.http.max_open.set = 50
network.max_open_files.set = 600
network.max_open_sockets.set = 300
## Memory resource usage (increase if you have a large number of items loaded,
## and/or the available resources to spend)
pieces.memory.max.set = 1800M
network.xmlrpc.size_limit.set = 4M
## Basic operational settings (no need to change these)
session.path.set = (cat, (cfg.session))
directory.default.set = (cat, (cfg.download))
log.execute = (cat, (cfg.logs), "execute.log")
#log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log")
execute.nothrow = sh, -c, (cat, "echo >",\
(session.path), "rtorrent.pid", " ",(system.pid))
## Other operational settings (check & adapt)
encoding.add = utf8
system.umask.set = 0027
system.cwd.set = (directory.default)
network.http.dns_cache_timeout.set = 25
schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
#pieces.hash.on_completion.set = no
#view.sort_current = seeding, greater=d.ratio=
#keys.layout.set = qwerty
#network.http.capath.set = "/etc/ssl/certs"
#network.http.ssl_verify_peer.set = 0
#network.http.ssl_verify_host.set = 0
## Some additional values and commands
method.insert = system.startup_time, value|const, (system.time)
method.insert = d.data_path, simple,\
"if=(d.is_multi_file),\
(cat, (d.directory), /),\
(cat, (d.directory), /, (d.name))"
method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent"
## Watch directories (add more as you like, but use unique schedule names)
## Add torrent
schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent")))
## Add & download straight away
schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent")))
## Run the rTorrent process as a daemon in the background
## (and control via XMLRPC sockets)
#system.daemon.set = true
#network.scgi.open_local = (cat,(session.path),rpc.socket)
#execute.nothrow = chmod,770,(cat,(session.path),rpc.socket)
## Logging:
## Levels = critical error warn notice info debug
## Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
print = (cat, "Logging to ", (cfg.logfile))
log.open_file = "log", (cfg.logfile)
log.add_output = "info", "log"
#log.add_output = "tracker_debug", "log"
### END of rtorrent.rc ###

View file

@ -0,0 +1,197 @@
#
# wm independent hotkeys
#
# start flavours
set norm_bg "#343D46"
set norm_fg "#CDD3DE"
set sel_bg "#99C794"
set sel_fg "#343D46"
# end flavours
# terminal emulator
super + Return
st
# program launcher
# super + @space
# dmenu_run -l 15 -i -nf $(xrdb -query | grep '^*foreground' | cut -f2) -nb $(xrdb -query | grep '^*background' | cut -f2) -sb $(xrdb -query | grep -m 1 '*color4' | cut -f2) -sf $(xrdb -query | grep '^*foreground' | cut -f2)
super + @space
dmenu_run -l 15 -i -nf $norm_fg -nb $norm_bg -sb $sel_bg -sf $sel_fg
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
#super + {_,shift + }w
super + q
# bspc node -{c,k}
bspc node -c
# alternate between the tiled and monocle layout
# super + m
# bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest node
super + g
bspc node -s biggest
#
# state/flags
#
super + s
sleep .2 && scrot -s -e 'xclip -selection clipboard -t image/png -i $f'
# set the window state
super + {t,shift + t,shift + f,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
#super + {p,b,comma,period}
# bspc node -f @{parent,brother,first,second}
# focus the next/previous node in the current desktop
#super + {_,shift + }c
# bspc node -f {next,prev}.local
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + 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
# super + 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
# super + alt + shift + {h,j,k,l}
# bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# Resize windows
# https://old.reddit.com/r/bspwm/comments/r5stxu/resizing_windows_nicely_in_my_opinion/
super + alt + {h,j,k,l}
{bspc node @parent/second -z left -20 0; \
bspc node @parent/first -z right -20 0, \
bspc node @parent/second -z top 0 +20; \
bspc node @parent/first -z bottom 0 +20, \
bspc node @parent/first -z bottom 0 -20; \
bspc node @parent/second -z top 0 -20, \
bspc node @parent/first -z right +20 0; \
bspc node @parent/second -z left +20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
# super + d
# dmenu_run -l 15 -i
# super + d
# dmenu_run -l 15 -i
super + d
dmenu_run_top
super + w
gapcycle
super + shift + w
layoutcycle && sleep .1
super + m
{bspc rule -a \* -o state=floating && st -e ncmpcpp}
# st -e bspc node -t ~floating && ncmpcpp
super + p
st -e vim $(tree -iaf -I .cache | dmenu)
super + n
{bspc rule -a \* -o state=floating && st -e newsboat}
super + shift + n
{bspc rule -a \* -o state=floating && st -e nmtui}
super + c
{bspc rule -a \* -o state=floating && st -e calcurse -D ~/.config/calcurse }
# Increase/descrease gap size
# super + z
# bspc config window_gap $(($(bspc config window_gap) - 3))
# super + shift + z
# bspc config window_gap $(($(bspc config window_gap) + 3))
super + r
{bspc rule -a \* -o state=floating && st -e ranger}
super + b
exec qutebrowser
super + x
languagecycle
# After quitting bar, reset spaces: bspc config top_padding 0 or bottom_padding

View file

@ -0,0 +1,50 @@
# [Created by task 2.6.2 3/22/2022 10:29:27]
# Taskwarrior program configuration file.
# For more documentation, see https://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
# You can also refence environment variables:
# variable=$HOME/task
# variable=$VALUE
# Use the command 'task show' to see all defaults and overrides
# Files
data.location=/home/green/.task
# To use the default location of the XDG directories,
# move this configuration file from ~/.taskrc to ~/.config/task/taskrc and uncomment below
#data.location=~/.local/share/task
#hooks.location=~/.config/task/hooks
# Color theme (uncomment one to use)
#include light-16.theme
#include light-256.theme
#include dark-16.theme
#include dark-256.theme
#include dark-red-256.theme
# include dark-green-256.theme
#include dark-blue-256.theme
#include dark-violets-256.theme
include dark-yellow-green.theme
#include dark-gray-256.theme
#include dark-gray-blue-256.theme
#include solarized-dark-256.theme
#include solarized-light-256.theme
#include no-color.theme
#
color.project.unraid=yellow
color.project.workflow=green
color.project.home=color5 # purple
color.project.renovation=blue
color.project.aws=color6 # ???
report.list.columns=id,depends.indicator,priority,project,recur.indicator,description.count
report.list.labels=ID,D,P,Project,R,Description

Some files were not shown because too many files have changed in this diff Show more