diff options
author | Ensa <@> | 2020-05-01 17:39:45 -0700 |
---|---|---|
committer | Ensa <@> | 2020-05-01 17:39:45 -0700 |
commit | 2b52ba86897ed947976d560fc1a1eb1a8499c451 (patch) | |
tree | d1a0d2d82a7907d308b99bbd3fc827cfad20f981 | |
parent | c4632455cff4a5097a3a35ad9d0531388776d028 (diff) | |
download | cfg-2b52ba86897ed947976d560fc1a1eb1a8499c451.tar.gz |
cwm added, general updates, etc
bother made the WM detection and X startup file detection more robust comm-sel replaced 6cord with cordless made the default case do nothing so it's less annoying lh removed ipc-server garbage changed the audio group to allow for streaming audio to mpv (this works with livestream audio files) mbsync-cron moved config file to $XDG_CONFIG_HOME/mbsync/mbsyncrc made error exits actually error (helps with crontab -n) renamed old popmail touch file to something more nominally appropriate same with notify-send --app-name cwmrc reading it, DEPENDENCIES.md, and `man cwmrc` will more than explain everything in here. except the commented binds, these are behaviours cwm does not have. completions.ksh self-explanatory. read it. diraliases added ~bin for user binaries dir added ~ksh for ksh config dir added ~pass for password database kshrc added safeguards for ensuring used directories exist switched lfcd source to a test and source prompt.ksh better sep symbols git branch occupies less space lfrc added auto-upload to ttm.sh, bound to t init.vim switched colourscheme to zellner removed syntastic checker specifiers, now uses aggregate checks. syntastic_c_compiler set to cc, symlink your preferred compiler to ~bin/cc switched ectags to ctags enabled folds shrc ALTSCR: terminal you want to use for programs that already have scrollback. set to "$TERMINAL" if you don't have one. fiddled with LESS, hopefully better now $TODO is the file todo(1) uses. ENV: file ksh sources on startup. 6cord.toml removed because it's abandoned now. colors-wal-dwm.h removed because i don't use dwm anymore. dunstrc, zathurarc now uses cozette font
-rw-r--r-- | DEPENDENCIES.md | 61 | ||||
-rwxr-xr-x | bin/bother | 16 | ||||
-rwxr-xr-x | bin/comm-sel | 6 | ||||
-rwxr-xr-x | bin/lh | 12 | ||||
-rwxr-xr-x | bin/mbsync-cron | 23 | ||||
-rwxr-xr-x | bin/pw | 25 | ||||
-rw-r--r-- | config/cwmrc | 148 | ||||
-rw-r--r-- | config/ksh/completions.ksh | 44 | ||||
-rw-r--r-- | config/ksh/diraliases | 4 | ||||
-rw-r--r-- | config/ksh/kshrc | 8 | ||||
-rw-r--r-- | config/ksh/prompt.ksh | 6 | ||||
-rw-r--r-- | config/lf/lfrc | 9 | ||||
-rw-r--r-- | config/nvim/init.vim | 13 | ||||
-rw-r--r-- | config/shrc | 11 | ||||
-rw-r--r-- | config/wal/templates/6cord.toml | 14 | ||||
-rw-r--r-- | config/wal/templates/colors-wal-dwm.h | 13 | ||||
-rw-r--r-- | config/wal/templates/dunstrc | 2 | ||||
-rw-r--r-- | config/wal/templates/zathurarc | 2 |
18 files changed, 320 insertions, 97 deletions
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md index a2b356e..eef05a1 100644 --- a/DEPENDENCIES.md +++ b/DEPENDENCIES.md @@ -18,15 +18,20 @@ each and every file in this repository can be altered by anyone with any goal, i # bin/ * mbsync-cron: populate local maildirs and notify the user if there is new mail * [isync](https://isync.sourceforge.net) - * properly configured `$HOME/.mbsync` (One Group per email account) + * properly configured `$XDG_CONFIG_HOME/mbsync/mbsync` (One Group per email account) * libnotify (notifies the user for new mail and the subject line of said mail) * `$XDG_DATA_HOME` +* bother: urgently notifies you with the contents of $HOME/today + * opt: `$XFILE`: the location of the file that starts your X session + * please define this if you don't use .xsession or .xinitrc + * notify-send (the entire point of the script) + * `$HOME`/today (bother reads this file and sends it as a notification) + * pgrep (checks to see if your window manager is up yet) * comm-sel: a handy menu for spawning communication clients * [epic5](https://epicsol.org) - * [6cord](https://gitlab.com/diamondburned/6cord) + * [cordless](https://github.com/bios-marcel/cordless) * [scli](https://github.com/isamert/scli) * [dmenu](https://dmenu.suckless.org) (provides a menu for selecting which client to start) - * notify-send (notifies the user that they made an invalid choice) * opt: st-altscreen (build of st that doesn't have scrollback or extra bindings, doesnt interfere with programs and is generally smaller) * `$TERMINAL` * lh: a script that takes a URL as input and does different things depending on what the URL links to @@ -48,8 +53,6 @@ each and every file in this repository can be altered by anyone with any goal, i * prompt: makes prompting the user for particular actions easier * [dmenu](https://dmenu.suckless.org) * pw: generates a password of variable length - * opt: xclip (enables pw's mode copying the generated password to the clipboard or the primary selection) - * opt: libnotify (notifies the user that the password is generated, how long the password will be kept in the clipboard/primary selection for, and when the clipboard/primary selection is cleared.) * rsschk: takes a URL as an argument and adds it to newsboat's url file, with an optional second argument specifying a category * libnotify (notifies the user of improper usage, and whether or not they should probably edit the url file manually to add a category.) * [newsboat](https://newsboat.org) @@ -60,21 +63,52 @@ each and every file in this repository can be altered by anyone with any goal, i * opt: xdg-user-dir (lets you change the directory bg.png has to be in) * xwallpaper (sets the wallpaper) # config/ -* lfrc: configuration file for [lf](https://github.com/gokcehan/lf) +* cwmrc: config for [cwm](https://man.openbsd.org/cwm) + * [Cozette](https://github.com/slavfox/cozette) font + * st + * slock + * `$TERMINAL` + * `$ALTSCR` + * `$EDITOR` + * `$BROWSER` + * `$HOMEPAGE` + * `$COMM` + * `kpcli` + * bin/lh + * xclip + * `$MUSIC` + * `$MAILER` + * `$RSS` + * `$FILE` + * `$READER` + * `$SCR` + * xdg-user-dir + * mpc + * [sndioctl](https://man.openbsd.org/sndioctl) + * xbacklight + * bin/prompt + * [doas](https://man.openbsd.org/doas) + * [oxbar](https://github.com/ryanflannery/oxbar) + * xdotool +* lf/lfrc: configuration file for [lf](https://github.com/gokcehan/lf) * opt: bin/opener (for opening files) + * opt: curl (for uploading temporary content to the [ttm.sh](https://ttm.sh) site) * shrc: shell environment, particularly for bin/shenv * neovim (`$EDITOR`) * lf (`$FILE`) * st (`$TERMINAL`) + * st-altscreen (`$ALTSCR`) * firefox (`$BROWSER`) * bin/comm-sel (`$COMM`) * zathura (`$READER`) * neomutt (`$MAILER`) * ncmpcpp (`$MUSIC`) * newsboat (`$RSS`) - * ksh (`$ISH` `$ZDOTDIR`) + * ksh (`$ENV`) + * config/ksh (`$ENV`) * maim (`$SCR`) * slock (`$LOCK`) + * opt: [todo](https://tildegit.org/tomasino/todo) * opt: go (`$GOPATH`) * opt: cargo (`$CARGO_HOME`) * opt: mednafen (`$MEDNAFEN_HOME`) @@ -86,12 +120,21 @@ configuration files for ksh * mpv (for mpvpin() to work) * exports.ksh * opt: pfetch (`$PF_INFO`) +* completions.ksh + * `$XDG_CACHE_HOME` +## wal +config templates for [wal](https://github.com/dylanaraps/pywal) +* templates/ + * dunstrc + * [Cozette](https://github.com/slavfox/cozette) font + * zathurarc + * [Cozette](https://github.com/slavfox/cozette) font # data/ * mailcap: helps neomutt figure out what to do with particular MIME types - * $EDITOR + * `$EDITOR` * lynx * [mpv](https://mpv.io) - * $READER + * `$READER` ## applications/ * doc.desktop * [zathura](https://pwmt.org/projects/zathura) diff --git a/bin/bother b/bin/bother index 701b1a4..1d97791 100755 --- a/bin/bother +++ b/bin/bother @@ -1,7 +1,21 @@ #!/bin/sh # puts up a critical notification if $HOME/today exists, containing the contents of that file. +if [ -z "$XFILE" ]; then +if [ -f $HOME/.xsession ]; then + XFILE=xsession +elif [ -f $HOME/.xinitrc ]; then + XFILE=xinitrc +fi +fi +if grep -q "dwm" $XFILE; then + WM=dwm +elif grep -q 'exec' $XFILE; then + WM=$(grep 'exec' $XFILE|cut -f 2 -d ' ' -) +else + WM=$(last -1 $XFILE) +fi if [ -f "$HOME"/today ]; then - until pgrep -x dwm>/dev/null + until pgrep $WM>/dev/null do true done diff --git a/bin/comm-sel b/bin/comm-sel index 0678679..6ef97d9 100755 --- a/bin/comm-sel +++ b/bin/comm-sel @@ -6,9 +6,9 @@ if command -v st-altscreen>/dev/null; then TERMINAL="st-altscreen" fi -case "$(dmenu_path|grep -E "epic5$|6cord|scli$"|dmenu -p "choose chat app:")" in +case "$(dmenu_path|grep -E "epic5$|cordless|scli$"|dmenu -p "choose chat app:")" in epic5) $TERMINAL -c comm -e epic5 -l "$XDG_CONFIG_HOME/epic/epicrc" ensa&;; - 6cord) $TERMINAL -c comm -e env TERM=xterm 6cord&;; + cordless) $TERMINAL -c comm -e cordless&;; scli) $TERMINAL -c comm -e scli&;; - *) notify-send "comm-sel error" "invalid program selection"&&return 1;; + *) return;; esac diff --git a/bin/lh b/bin/lh index e4bdf0c..25a2f62 100755 --- a/bin/lh +++ b/bin/lh @@ -1,16 +1,14 @@ #!/bin/sh # lh: the Link Handler # takes one path or URL as its argument, launches the appropriate program for this. -### differs from Luke Smith's linkhandler in cleaner code, inclusion of epub/pdf handling, proper interpretation of twitch video URLs, and livestream handling with streamlink (twitch only for now, tipping me off to URL schemes to look for for other streaming sites would be appreciated.) # if $1 isn't provided, spawn $BROWSER and exit. this allows lh to be used as a pseudo-browser. [ -z "$1" ] && exec "$BROWSER" - case "$1" in *mkv|*webm|*mp4) - mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet "$1" >/dev/null 2>&1 & ;; - *youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*twitch.tv/videos/*) - mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet --ytdl "$1" >/dev/null 2>&1 & ;; + mpv "$1" >/dev/null 2>&1 & ;; + *youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*twitch.tv/videos/*|*twitch.tv/*/v/*) + mpv --ytdl "$1" >/dev/null 2>&1 & ;; *twitch.tv/*) STREAMQUAL="$(streamlink "$1"|\ grep "Available streams"|tr " " "\n"|grep -E "[0-9]"|tr -d ,|\ @@ -19,8 +17,8 @@ case "$1" in *png|*jpg|*jpe|*jpeg|*gif) IMGPATH="/tmp/$(echo "$1"|sed "s/.*\\///")" curl -sL "$1" >"$IMGPATH"&&sxiv -a "$IMGPATH">/dev/null 2>&1 & ;; - *mp3|*m4a|*flac|*aiff|*opus|*mp3?source*) - curl -LO "$1" >/dev/null 2>&1 & ;; + *mp3|*m4a|*flac|*aiff|*opus|*ogg|*mp3?source*) + mpv "$1" >/dev/null 2>&1 & ;; *epub|*pdf|*djvu) BOOKPATH="/tmp/$(echo "$1"|sed "s/.*\\///")" if [ -n "$READER" ]; then diff --git a/bin/mbsync-cron b/bin/mbsync-cron index dd69c01..fc611c2 100755 --- a/bin/mbsync-cron +++ b/bin/mbsync-cron @@ -6,12 +6,13 @@ # there is an internet connection. if ! pgrep -u "${USER:=$LOGNAME}" >/dev/null; then printf '%s not logged in. quitting...\n' "$USER" >/dev/stderr - exit + exit 1; elif pgrep -x mbsync >/dev/null; then printf 'mbsync is already running. quitting...\n' >/dev/stderr - exit + exit 1; elif ! ping -q -c 1 1.1.1.1 >/dev/null; then printf 'no internet connection, quitting...\n' >/dev/stderr + exit 1; fi export DISPLAY=:0 @@ -21,9 +22,9 @@ if ! [ -d "$XDG_DATA_HOME/neomutt" ]; then fi # check account for new mail, notify for new content syncandnotify() { - mbsync "$account">/dev/null 2>&1 - # $new holds an index of all mail since the last time popmail ran - new=$(find "$XDG_DATA_HOME/mail/$account/inbox/new/" -type f -newer "$XDG_DATA_HOME/neomutt/.popmail-last" 2> /dev/null) + mbsync -c "$XDG_CONFIG_HOME/mbsync/mbsyncrc" "$account">/dev/null 2>&1 + # $new holds an index of all mail since the last time mbsync-cron ran + new=$(find "$XDG_DATA_HOME/mail/$account/inbox/new/" -type f -newer "$XDG_DATA_HOME/neomutt/.mbsc-last" 2> /dev/null) # $newcount is the number of new mails newcount=$(printf '%s\n' "$new" | sed '/^\s*$/d' | wc -l | tr -d " ") # send $newcount to a file specific to $account @@ -31,7 +32,7 @@ syncandnotify() { printf ' %s' "$newcount" > "$XDG_DATA_HOME/mail/$account/note" # don't notify if there isn't new mail if [ "$newcount" -gt "0" ]; then - notify-send --app-name="popmail" "mail fetcher" "new mail for profile $account! [$newcount]" & + notify-send --app-name="mbsync-cron" "mail fetcher" "new mail for profile $account! [$newcount]" & # reduce output if you have a lot of new mail if [ "$newcount" -lt "16" ]; then for file in $new; do @@ -40,7 +41,7 @@ syncandnotify() { from=$(awk '/^From: / && ++n ==1,/^\<.*\>:/' "$file" | awk '{ $1=""; if (NF>=3)$NF=""; print $0 }' | sed '1!d'| sed '1,/From/s/From: //') # modified version of broken $subject variable, only prints the first subject line (so forwards are slightly unclear) subject=$(awk '/^Subject: / && ++n == 1,/^\<.*\>: / && ++i == 2' "$file" | sed '$D' | grep -m 1 '^Subject: ' | sed 's/Subject: //') - notify-send --app-name="popmail" "$from:" "$subject" & + notify-send --app-name="mbsync-cron" "$from:" "$subject" & # sleep for half a second to avoid notification clog sleep .5 done @@ -48,10 +49,10 @@ syncandnotify() { fi } -# if popmail is given arguments, treat them as accounts to get mail from. +# if mbsync-cron is given arguments, treat them as accounts to get mail from. # otherwise, scan the mbsync config to get account names if [ "$#" -eq "0" ]; then - accounts="$(awk '/^Group/ {print $2}' "$HOME/.mbsyncrc")" + accounts="$(awk '/^Group/ {print $2}' "$XDG_CONFIG_HOME/mbsync/mbsyncrc")" else accounts=$* fi @@ -71,5 +72,5 @@ if cat "$XDG_DATA_HOME"/mail/*/note|grep -q '[1-9]'; then else printf '\n'>"$XDG_DATA_HOME/mail/note" fi -#create/update modification time on an empty file that indicates the time of the last run of popmail -touch "$XDG_DATA_HOME/neomutt/.popmail-last" +#create/update modification time on an empty file that indicates the time of the last run of mbsync-cron +touch "$XDG_DATA_HOME/neomutt/.mbsc-last" diff --git a/bin/pw b/bin/pw index cec9e54..fa33761 100755 --- a/bin/pw +++ b/bin/pw @@ -1,25 +1,4 @@ #!/bin/sh -# generates a password of length $1, sends it to stdout if $2 is blank. -# if $2 is clip, sends it to the X clipboard and clears it after 10 seconds. -# if $2 is anything else, sends it to the X primary selection and clears it after 10 seconds -if [ "$1" = "-h" ]; then - printf 'usage: %s [-h]|LENGTH [clip|pri]\n' "$(basename $0)">/dev/stderr - return 1 -fi +# generates a password of length $1. PW=$(tr -cd "[:alnum:][:punct:]"</dev/urandom|fold -w "$1"|head -1) -if [ -n "$2" ]; then - # streamline selection variation by using $SEL - if [ "$2" = "clip" ]; then - SEL="-sel clip" - else - SEL="" - fi - # backgrounds so the user doesn't have to wait 10 seconds to get a prompt again - { - printf "%s" "$PW"|xclip $SEL -i&¬ify-send "Password Generated" "$1-character password generated. It will clear in 10 seconds." - sleep 10 - printf '\0'|xclip $SEL -i&¬ify-send "Clipboard Cleared" "Generated password cleared from clipboard." - } & -else - printf '%s\n' "$PW" -fi +printf '%s\n' "$PW" diff --git a/config/cwmrc b/config/cwmrc new file mode 100644 index 0000000..34ff841 --- /dev/null +++ b/config/cwmrc @@ -0,0 +1,148 @@ +#gap for status bar +gap 13 0 0 0 +#enable sticky groups +sticky yes +#autogroup rules +autogroup 1 St +autogroup 3 mail +autogroup 4 comm +autogroup 5 music +autogroup 5 mpv +autogroup 8 tabbed +autogroup 9 pass +#aesthetics +fontname "Cozette:pixelsize=11" +borderwidth 1 +color activeborder "#6b996b" +color inactiveborder "#4c4635" +color groupborder "#3c7b7f" +color ungroupborder "#cc3214" +color menubg "#14130e" +color menufg "#b7a980" +color font "#3d6266" +color selfont "#72694f" +#binds +#don't want any default keys +unbind-key all +unbind-mouse all +#program list +command term st +command lock slock +#program spawning +#bind-key 4-d dmenu_run +bind-key 4-d menu-exec +bind-key 4S-d menu-cmd +bind-key 4C-d menu-window-hidden +bind-key 4-Return terminal +#bind-key 4S-Return "sh -c \"$TERMINAL -c popup" +bind-key 4-e "sh -c \"$ALTSCR -t nvim -e env TERM=stterm-16color $EDITOR\"" +#bind-key 4S-e "sh -c \"$TERMINAL -t nvim -c popup -e env TERM=stterm-16color $EDITOR" +bind-key 4-w "sh -c \"$BROWSER $HOMEPAGE\"" +bind-key 4S-c "sh -c \"$COMM\"" +bind-key 4-a "sh -c \"$TERMINAL -c pass -e kpcli --kdb=$XDG_DATA_HOME/KeePass/database.kdbx\"" +bind-key 4-s "sh -c \"lh `xclip -o`\"" +bind-key 4S-s "sh -c \"lh `xclip -sel clip -o`\"" +bind-key 4-m "sh -c \"$ALTSCR -c musictui -e $MUSIC\"" +bind-key 4-c "sh -c \"$ALTSCR -c mail -e $MAILER\"" +bind-key 4-n "sh -c \"$ALTSCR -e $RSS\"" +bind-key 4-r "sh -c \"$ALTSCR -e $FILE\"" +bind-key 4S-r "sh -c \"$READER\"" +bind-key 4-p "sh -c \"$SCR $(xdg-user-dir PICTURES)/screenshot-$(date +%Y-%m-%d_%T).png\"" +bind-key 4S-p "sh -c \"$SCR -s $(xdg-user-dir PICTURES)/screenshot-$(date +%Y-%m-%d_%T).png\"" +bind-key 4S-comma "mpc -q prev" +bind-key 4S-period "mpc -q next" +bind-key 4-apostrophe "mpc -q single" +bind-key 4-comma "mpc -q repeat" +bind-key 4-period "mpc -q toggle" +bind-key 4C-period "mpc -q volume +5" +bind-key 4C-comma "mpc -q volume -5" +bind-key 4CS-period "mpc -q volume +15" +bind-key 4CS-comma "mpc -q volume -15" +bind-key 4-equal "sndioctl -q output.level=+0.05" +bind-key 4-minus "sndioctl -q output.level=-0.05" +bind-key 4S-plus "sndioctl -q output.level=+0.15" +bind-key 4S-minus "sndioctl -q output.level=-0.15" +bind-key 4S-m "sndioctl -q output.mute=!" +bind-key 4C-equal "xbacklight -inc 5" +bind-key 4C-minus "xbacklight -dec 5" +bind-key 4CS-equal "xbacklight -inc 15" +bind-key 4CS-minus "xbacklight -dec 15" +bind-key 4-x lock +bind-key 4S-x "sh -c \"prompt 'shutdown computer?' 'doas shutdown -p now'\"" +bind-key 4S-BackSpace "sh -c \"prompt 'reboot computer?' 'doas shutdown -r now'\"" +bind-key 4-b "sh -c \"pkill oxbar||oxbar -F $XDG_CONFIG_HOME/oxbar.conf\"" +#window nav +bind-key 4-j window-cycle +bind-key 4-k window-rcycle +#bind-key 4-i incnmaster {.i = +1 } +#bind-key 4-o incnmaster {.i = -1 } +#bind-key 4-h setmfact {.f = -0.05} +#bind-key 4-l setmfact {.f = +0.05} +#window moving +bind-key 4S-h window-move-left +bind-key 4S-j window-move-down +bind-key 4S-k window-move-up +bind-key 4S-l window-move-right +bind-key 4SM-h window-move-left-big +bind-key 4SM-j window-move-down-big +bind-key 4SM-k window-move-up-big +bind-key 4SM-l window-move-right-big +#window resize +bind-key 4C-h window-resize-left +bind-key 4C-j window-resize-down +bind-key 4C-k window-resize-up +bind-key 4C-l window-resize-right +bind-key 4CM-h window-resize-left-big +bind-key 4CM-j window-resize-down-big +bind-key 4CM-k window-resize-up-big +bind-key 4CM-l window-resize-right-big +#bind-key 4-space zoom +bind-key 4-Tab group-cycle +bind-key 4S-Tab group-rcycle +#window killing +bind-key 4-q window-close +bind-key 4S-q "sh -c \"kill -9 `xdotool getwindowfocus getwindowpid`\"" +#layouts +bind-key 4-f window-maximize +bind-key 4S-f window-fullscreen +bind-key 4-t window-vtile +bind-key 4S-t window-vmaximize +bind-key 4-y window-htile +bind-key 4S-y window-hmaximize +#bind-key 4S-space togglefloating +#special window modification +bind-key 4-0 group-toggle-all +bind-key 4S-0 window-stick +bind-key 4C-0 window-hide +#exits +bind-key 4-F2 restart +bind-key 4S-Escape quit +#group designation/nav +bind-key 4-g window-group +bind-key 4-1 group-only-1 +bind-key 4S-1 window-movetogroup-1 +bind-key 4C-1 group-toggle-1 +bind-key 4-2 group-only-2 +bind-key 4S-2 window-movetogroup-2 +bind-key 4C-2 group-toggle-2 +bind-key 4-3 group-only-3 +bind-key 4S-3 window-movetogroup-3 +bind-key 4C-3 group-toggle-3 +bind-key 4-4 group-only-4 +bind-key 4S-4 window-movetogroup-4 +bind-key 4C-4 group-toggle-4 +bind-key 4-5 group-only-5 +bind-key 4S-5 window-movetogroup-5 +bind-key 4C-5 group-toggle-5 +bind-key 4-6 group-only-6 +bind-key 4S-6 window-movetogroup-6 +bind-key 4C-6 group-toggle-6 +bind-key 4-7 group-only-7 +bind-key 4S-7 window-movetogroup-7 +bind-key 4C-7 group-toggle-7 +bind-key 4-8 group-only-8 +bind-key 4S-8 window-movetogroup-8 +bind-key 4C-8 group-toggle-8 +bind-key 4-9 group-only-9 +bind-key 4S-9 window-movetogroup-9 +bind-key 4C-9 group-toggle-9 diff --git a/config/ksh/completions.ksh b/config/ksh/completions.ksh new file mode 100644 index 0000000..d241be8 --- /dev/null +++ b/config/ksh/completions.ksh @@ -0,0 +1,44 @@ +#!/bin/ksh + +COMPLETIONFILES="$XDG_CACHE_HOME/ksh/precompletions" +if ! [[ -d $COMPLETIONFILES ]]; then + mkdir -p $COMPLETIONFILES; +fi +#pkg_* completions {{{1 +if ! [[ -e $COMPLETIONFILES/packages ]]; then + update_completion_packages +fi + +#set -A complete_pa -- $(<$COMPLETIONFILES/packages) +set -A complete_pd -- $(ls -1 /var/db/pkg) +#set -A complete_pi -- $complete_pa + +# }}} + +#man completions {{{2 +if ! [[ -e $COMPLETIONFILES/manpages ]]; then + update_completion_manpages +fi + +#set -A complete_man -- $(<$COMPLETIONFILES/manpages) + + +# }}} + +# pip completions {{{3 + +set -A complete_pip_1 -- install download uninstall freeze list show check config search wheel hash help +set -A complete_pip_2 -- --user +set -A complete_pip_3 -- --upgrade + +# pass completions +update_complete_pass() { + pass_list=$(pass ls) + set -A complete_pass_1 -- init passphrase add import show export ls + set -A complete_pass_2 -- $pass_list +} +update_complete_pass +pass_export() { pass export "$1" && update_complete_pass; } +pass_show() { pass show "$1" && update_complete_pass; } + +# }}} diff --git a/config/ksh/diraliases b/config/ksh/diraliases index f4546a5..99f710d 100644 --- a/config/ksh/diraliases +++ b/config/ksh/diraliases @@ -7,4 +7,6 @@ alias -d "src=$HOME/src"\ "data=$XDG_DATA_HOME"\ "write=$HOME/doc/writing"\ "crit=$HOME/doc/writing/critique"\ - "bin=$HOME/.local/bin" + "bin=$HOME/.local/bin"\ + "ksh=$HOME/.config/ksh"\ + "pass=$HOME/.local/share/pass" diff --git a/config/ksh/kshrc b/config/ksh/kshrc index bd8f48b..36350d0 100644 --- a/config/ksh/kshrc +++ b/config/ksh/kshrc @@ -7,9 +7,15 @@ fi FPATH=$XDG_CONFIG_HOME/ksh/functions HISTFILE=$XDG_DATA_HOME/ksh/histfile +if ! [[ -d $HISTFILE ]]; then + mkdir -p $HISTFILE; +fi HISTSIZE=5000 HISTCONTROL="ignoredups" TMPDIR=$XDG_CACHE_HOME/ksh +if ! [[ -d $TMPDIR ]]; then + mkdir -p $TMPDIR; +fi # shortcut for cloning GITHUB="https://github.com" # make pfetch show what i want @@ -24,7 +30,7 @@ fi set -o vi #load ksh external configs -. $XDG_CONFIG_HOME/lf/lfcd.sh +[[ -f "$XDG_CONFIG_HOME/lf/lfcd.sh" ]] && . "$XDG_CONFIG_HOME/lf/lfcd.sh" [[ -f "$KSHCONFIG/diraliases" ]] && . "$KSHCONFIG/diraliases" [[ -f "$XDG_CONFIG_HOME/aliasrc" ]] && . "$XDG_CONFIG_HOME/aliasrc" [[ -f "$KSHCONFIG/completions.ksh" ]] && . "$KSHCONFIG/completions.ksh" diff --git a/config/ksh/prompt.ksh b/config/ksh/prompt.ksh index e5dfaf5..c56d441 100644 --- a/config/ksh/prompt.ksh +++ b/config/ksh/prompt.ksh @@ -1,6 +1,6 @@ #!/bin/ksh -SEP="" -RSEP="" +SEP="" +RSEP="" #_PS1='\[\033['; #_END='m\]'; #_CLEAR=0; _FG_BLACK=30; _BG_BLACK=40 @@ -14,7 +14,7 @@ RSEP="" vcs() { if git status >/dev/null 2>&1; then _GIT_BRANCH="$(git branch|grep -F '*'|sed 's/* //')" - printf ' %s\n' "$_GIT_BRANCH" + printf ' %s' "$_GIT_BRANCH" fi } PS1='\[\033[7;32m\]$?\[\033[0;32;45m\]$SEP\[\033[0;7;35m\]\A$RSEP\[\033[0;1;31m\]\u\[\033[0;32m\]@\[\033[1;34m\]\h\[\033[7;36m\]$SEP\[\033[7m\]\w$RSEP\[\033[0;32m\]$(vcs)\n\[\033[0;32m\]\$\[\033[0m\] ' diff --git a/config/lf/lfrc b/config/lf/lfrc index e5e58cd..138c470 100644 --- a/config/lf/lfrc +++ b/config/lf/lfrc @@ -9,6 +9,14 @@ cmd open ${{ opener $f }} +cmd ttmsh ${{ + TTMURL="curl -F 'file=@-' https://ttm.sh < $f" + if [ -n "$TTMURL" ]; then + echo "$TTMURL"|tee "$HOME/ttmsh"|xclip -r + done + notify-send 'successfully uploaded to ttm!' 'link copied to selection, backup is in $HOME/ttmsh' +}} + cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 # binds @@ -19,3 +27,4 @@ map <enter> shell map R reload map x $$f map X !$f +map t ttmsh diff --git a/config/nvim/init.vim b/config/nvim/init.vim index 0632b5d..64e6dfe 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -34,7 +34,7 @@ call plug#end() " end of vim-plug related lines -colo delek +colo zellner " productivity binds @@ -79,9 +79,8 @@ let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 -let g:syntastic_c_checkers = ["cppcheck"] -let g:syntastic_cpp_checkers = ["cppcheck"] -let g:syntastic_sh_checkers = ["shellcheck", "sh"] +let g:syntastic_aggregate_errors = 1 +let g:syntastic_c_compiler = "cc" " lightline config set noshowmode @@ -98,11 +97,11 @@ set path+=** cno w!! exe 'sil! w !doas tee % >/dev/null' <bar> e! nno <space> :noh<return><space> " add a ctags shortcut like a shitty goblin -com! MakeTags !ectags -R . -" make make work when im learning c -autocmd BufRead $HOME/src/me/c-practice/*.c set makeprg=pcc\ -ansi\ % +com! MakeTags !ctags ./* " calcurse notes should be treated as markdown autocmd BufRead,BufNewFile /tmp/calcurse* set filetype=markdown autocmd BufRead,BufNewFile ~/.local/share/calcurse/notes/* set filetype=markdown " ksh should work autocmd FileType ksh let g:is_kornshell = 1 +" good folds +set foldmethod=marker diff --git a/config/shrc b/config/shrc index bc5162e..3529cb1 100644 --- a/config/shrc +++ b/config/shrc @@ -10,20 +10,27 @@ export EDITOR="nvim" export FILE="lf" export PAGER="less" export TERMINAL="st" +export ALTSCR="st-altscreen" export BROWSER="firefox" export COMM="comm-sel" export READER="zathura" export MAILER="neomutt" export MUSIC="ncmpcpp" export RSS="newsboat" -export ISH="ksh" export SCR="maim" export LOCK="slock" -export LESS='-iMRS -x2' +#less args +export LESS='-iFMRX~ -x2' +#locale info export LANGUAGE="en" export LANG="POSIX.UTF-8" export LC_ALL="POSIX.UTF-8" +#lscolor export CLICOLOR=1 +#todo(1) +export TODO="$HOME/doc/todo" +#ksh +export ENV="$XDG_CONFIG_HOME/ksh/kshrc" #cleanup paths export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" diff --git a/config/wal/templates/6cord.toml b/config/wal/templates/6cord.toml deleted file mode 100644 index 52b5321..0000000 --- a/config/wal/templates/6cord.toml +++ /dev/null @@ -1,14 +0,0 @@ -# comment to get vim to recognize the ft -token = "" -[ properties ] - true-color = false - default-name-color = "{color7}" - mention-color = "{color5}" - mention-self-color = "{color14}" - compact-mode = false - syntax-highlight-colorscheme = "native" - show-emoji-urls = false - shorten-url = false - command-prefix = "[${{CHANNEL}}] " - default-status = "" - diff --git a/config/wal/templates/colors-wal-dwm.h b/config/wal/templates/colors-wal-dwm.h deleted file mode 100644 index eeea645..0000000 --- a/config/wal/templates/colors-wal-dwm.h +++ /dev/null @@ -1,13 +0,0 @@ -static const char norm_fg[] = "{color4}"; -static const char norm_bg[] = "{color0}"; -static const char norm_border[] = "{color8}"; - -static const char sel_fg[] = "{color1}"; -static const char sel_bg[] = "{color0}"; -static const char sel_border[] = "{color9}"; - -static const char *colors[][3] = {{ - /* fg bg border */ - [SchemeNorm] = {{ norm_fg, norm_bg, norm_border }}, // unfocused wins - [SchemeSel] = {{ sel_fg, sel_bg, sel_border }}, // the focused win -}}; diff --git a/config/wal/templates/dunstrc b/config/wal/templates/dunstrc index 61972d6..39a9a5e 100644 --- a/config/wal/templates/dunstrc +++ b/config/wal/templates/dunstrc @@ -24,7 +24,7 @@ idle_threshold = 120 ### Text ### - font = Terminus Medium 8 + font = Cozette Medium 8 line_height = 0 markup = full diff --git a/config/wal/templates/zathurarc b/config/wal/templates/zathurarc index ebb74ca..558b341 100644 --- a/config/wal/templates/zathurarc +++ b/config/wal/templates/zathurarc @@ -32,4 +32,4 @@ set render-loading-fg "{color15}" set window-title-home-tilde true set statusbar-basename true set selection-clipboard clipboard -set font "SauceCodePro Nerd Font Mono 10" +set font "Cozette 10" |