dotfiles
This commit is contained in:
parent
63748f0746
commit
e0540495a0
11
bin/autotranslate
Executable file
11
bin/autotranslate
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
[ -n "$dmenu" ] || dmenu=dmenu
|
||||||
|
|
||||||
|
lang="$LANG"
|
||||||
|
# lots of potentially wrong assumptions here
|
||||||
|
printf "%s\n" "$lang" | grep "_" >/dev/null 2>&1 \
|
||||||
|
&& lang="$(printf "%s\n" "$lang" | cut -d '_' -f 1)" \
|
||||||
|
|| lang=en
|
||||||
|
|
||||||
|
printf "%s\n" "$(xclip -o)" | translate auto $lang | "$($dmenu -p "Press Escape to dismiss.")"
|
54
bin/batterymonitor
Executable file
54
bin/batterymonitor
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
POLLING_FREQUENCY=1
|
||||||
|
|
||||||
|
# ISO 8601
|
||||||
|
alias date="date '+%Y-%m-%dT%T'"
|
||||||
|
|
||||||
|
emit() {
|
||||||
|
printf "[%s] " "$(date)"
|
||||||
|
echo "$@"
|
||||||
|
}
|
||||||
|
get_current_level() {
|
||||||
|
# adapted from other script i wrote, also in the public domain
|
||||||
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
# this is a dirty hack.
|
||||||
|
# acpi | awk '{print $4}' will print the battery percentage,
|
||||||
|
# and s/,$// strips the trailing comma.
|
||||||
|
# acpi -a will just print the power adapter status.
|
||||||
|
printf "%b" "$(acpi | awk '{print $4}' | sed 's/,$//')"
|
||||||
|
return 0
|
||||||
|
elif [ "$(uname)" = "NetBSD" ]; then
|
||||||
|
printf "%b" "$(envstat -s acpibat0:charge \
|
||||||
|
| sed 1,2d \
|
||||||
|
| cut -d ':' -f 2 \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| cut -d '.' -f 1)"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
printf "get_battery_status: unsupported OS" >>/dev/stderr
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
! get_current_level >/dev/null \
|
||||||
|
&& printf "Unable to get battery status on this system.\n" >>/dev/stderr \
|
||||||
|
&& exit 1 \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
current_level=$(get_current_level)
|
||||||
|
previous_level=$current_level
|
||||||
|
|
||||||
|
emit "$(printf "Current level: %d%%" "$current_level")"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
current_level=$(get_current_level)
|
||||||
|
if ! [ $current_level -eq $previous_level ]; then
|
||||||
|
[ $current_level -lt $previous_level ] \
|
||||||
|
&& emit "$(printf "Discharged: %d%% -> %d%%\n" $previous_level $current_level )" \
|
||||||
|
|| emit "$(printf " Charged: %d%% -> %d%%\n" $previous_level $current_level )"
|
||||||
|
previous_level=$current_level
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep $POLLING_FREQUENCY
|
||||||
|
done
|
211
bin/data
Executable file
211
bin/data
Executable file
@ -0,0 +1,211 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# depends on https://git.sr.ht/~trinity/utilities (particularly fdivide(1),
|
||||||
|
# gt(1), and stris(1))
|
||||||
|
# there are issues with the POSIX shell implementations included in this script
|
||||||
|
# and particularly with stris
|
||||||
|
|
||||||
|
# on Linux only:
|
||||||
|
# these files (separated by newlines) will have the current CPU temperature
|
||||||
|
# multiplied by $CPU_TEMP_SCALE. this script divides the file contents by scale
|
||||||
|
# and displays that temperature (assumed to be in Celsius units)
|
||||||
|
CPU_TEMP_FILES="/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp2_input
|
||||||
|
/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp3_input"
|
||||||
|
CPU_TEMP_SCALE=1000
|
||||||
|
|
||||||
|
# format for the date (by default in this script, ISO 8601)
|
||||||
|
alias date="date '+%Y-%m-%dT%T'"
|
||||||
|
|
||||||
|
DELIMITER=" || "
|
||||||
|
|
||||||
|
# how fast to refresh the display (in seconds, will be substituted with 1 if
|
||||||
|
# not an integer)
|
||||||
|
INTERVAL=1
|
||||||
|
|
||||||
|
# enable if you have issues with missing `stris` etc. will save negligible time
|
||||||
|
# with shells that don't spawn new processes for test(1)
|
||||||
|
# fdivide_posix() may not be fully working yet, so it's not enabled by default
|
||||||
|
#POSIXLY_CORRECT=1
|
||||||
|
|
||||||
|
# this URL will have in plain text the public IP address from which it was
|
||||||
|
# accessed
|
||||||
|
#PUBLIC_IP_FETCH_URL="http://ifconfig.io/"
|
||||||
|
#PUBLIC_IP_FETCH_URL="https://ifconfig.io"
|
||||||
|
#PUBLIC_IP_FETCH_URL="http://icanhazip.com"
|
||||||
|
PUBLIC_IP_FETCH_URL="https://icanhazip.com"
|
||||||
|
PUBLIC_IP6_FETCH_URL="$PUBLIC_IP_FETCH_URL"
|
||||||
|
|
||||||
|
get_battery_status() {
|
||||||
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
# this is a dirty hack.
|
||||||
|
# acpi | awk '{print $4}' will print the battery percentage,
|
||||||
|
# and s/,$// strips the trailing comma.
|
||||||
|
# acpi -a will just print the power adapter status.
|
||||||
|
printf "%b" "$(acpi | awk '{print $4}' | sed 's/,$//') ($(acpi -a))"
|
||||||
|
return
|
||||||
|
elif [ "$(uname)" = "NetBSD" ]; then
|
||||||
|
printf "%b%%" "$(envstat -s acpibat0:charge \
|
||||||
|
| sed 1,2d \
|
||||||
|
| cut -d ':' -f 2 \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| cut -d '.' -f 1)"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
printf "get_battery_status: unsupported OS"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_cpu_temp() {
|
||||||
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
RETVAL=""
|
||||||
|
# iterate over files, adjust, print out "%dC "
|
||||||
|
for file in $CPU_TEMP_FILES;
|
||||||
|
do RETVAL="$RETVAL$(fdivide $(cat $file) $CPU_TEMP_SCALE)C "
|
||||||
|
done
|
||||||
|
# in-line python (bet you've never seen that before) that
|
||||||
|
# strips off trailing whitespace. could be done with sed but
|
||||||
|
# this was more fun
|
||||||
|
printf "%b" "$RETVAL" \
|
||||||
|
| python -c "from sys import stdin; print(stdin.read().rstrip() + '\n')"
|
||||||
|
return
|
||||||
|
elif [ "$(uname)" = "NetBSD" ]; then
|
||||||
|
printf "%bC" "$(envstat -s coretemp0:'cpu0 temperature' \
|
||||||
|
| sed 1,2d \
|
||||||
|
| cut -d ':' -f 2 \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| cut -d '.' -f 1)"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
printf "get_cpu_temp: unsupported OS"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_current_desktop() {
|
||||||
|
case "$WM" in
|
||||||
|
(bspwm) printf "[%b] " "$(bspc query -D -d focused --names)" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
get_memory_usage() {
|
||||||
|
if [ "$(uname)" = "Linux" ]; then
|
||||||
|
printf "%b" \
|
||||||
|
"$(free | head -n 2 | tail -n 1 \
|
||||||
|
| awk '{print $3 " used / " $2 " total"}')"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_public_ip() {
|
||||||
|
PUBLIC_IP4="$(curl -4 "$PUBLIC_IP_FETCH_URL" --no-progress-meter 2>/dev/null \
|
||||||
|
|| printf "-1")"
|
||||||
|
PUBLIC_IP6="$(curl -6 "$PUBLIC_IP6_FETCH_URL" --no-progress-meter 2>/dev/null \
|
||||||
|
|| printf "-1")"
|
||||||
|
if [ "$PUBLIC_IP4" = "-1" ] && [ "$PUBLIC_IP6" = "-1" ]; then
|
||||||
|
printf "[error fetching address]"
|
||||||
|
elif [ "$PUBLIC_IP4" = "-1" ]; then
|
||||||
|
printf "%b" "$PUBLIC_IP6"
|
||||||
|
elif [ "$PUBLIC_IP6" = "-1" ]; then
|
||||||
|
printf "%b" "$PUBLIC_IP4"
|
||||||
|
else
|
||||||
|
printf "%b / %b" "$PUBLIC_IP4" "$PUBLIC_IP6"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# slow, so fetch it in advance
|
||||||
|
PUBLIC_IP="$(get_public_ip)"
|
||||||
|
|
||||||
|
printbar() {
|
||||||
|
printf "%b" "$(get_current_desktop)"
|
||||||
|
printf "%b" "$(date)"
|
||||||
|
printf "%b" "$DELIMITER"
|
||||||
|
printf "%b" "BAT: $(get_battery_status)"
|
||||||
|
printf "%b" "$DELIMITER"
|
||||||
|
printf "%b" "CPU: $(get_cpu_temp)"
|
||||||
|
printf "%b" "$DELIMITER"
|
||||||
|
printf "%b" "PuIP: $PUBLIC_IP"
|
||||||
|
#printf "%b" "$DELIMITER"
|
||||||
|
#printf "%b" "MEM: $(get_memory_usage)"
|
||||||
|
printf "\n"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# the following is for error prevention and doesn't need to be changed #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# POSIX shell version of fdivide
|
||||||
|
fdivide_posix() {
|
||||||
|
[ -n "$2" ] && [ -n "$1" ] && [ -z "$3" ] \
|
||||||
|
|| return 1
|
||||||
|
printf "%b\n" "$(($1/$2))"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# [ -gt ] with better syntax
|
||||||
|
gt_posix() {
|
||||||
|
while [ -n "$2" ]; do
|
||||||
|
[ "$1" -gt "$2" ] \
|
||||||
|
|| return 1
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# limited POSIX shell version of stris
|
||||||
|
# BROKEN REGEX. MUSTFIX.
|
||||||
|
stris_posix() {
|
||||||
|
[ -n "$2" ] || return 1
|
||||||
|
case "$1" in
|
||||||
|
(int)
|
||||||
|
# https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer
|
||||||
|
printf "$2" | grep '^-?[0-9]+$' >/dev/null \
|
||||||
|
&& return 0 \
|
||||||
|
|| return 1
|
||||||
|
;;
|
||||||
|
(uint)
|
||||||
|
printf "$2" | grep '^[0-9]+$' >/dev/null \
|
||||||
|
&& return 0 \
|
||||||
|
|| return 1
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# check to make sure we have non-standard utilities
|
||||||
|
|
||||||
|
[ -n "$POSIXLY_CORRECT" ] || ! which fdivide >/dev/null 2>&1 \
|
||||||
|
&& alias fdivide="fdivide_posix" \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
[ -n "$POSIXLY_CORRECT" ] || ! which gt >/dev/null 2>&1 \
|
||||||
|
&& alias gt="gt_posix" \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
[ -n "$POSIXLY_CORRECT" ] || ! which stris >/dev/null 2>&1 \
|
||||||
|
&& alias stris="stris_posix" \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
# check to make sure customizeable vars are in proper format
|
||||||
|
|
||||||
|
[ -n "$INTERVAL" ] && stris int "$INTERVAL" \
|
||||||
|
|| INTERVAL=1
|
||||||
|
|
||||||
|
[ -n "$CPU_TEMP_SCALE" ] && stris int "$CPU_TEMP_SCALE" \
|
||||||
|
&& gt "$CPU_TEMP_SCALE" 0 \
|
||||||
|
|| CPU_TEMP_SCALE=1
|
||||||
|
|
||||||
|
[ -n "$CPU_TEMP_FILES" ] \
|
||||||
|
|| alias get_cpu_temp="printf '[no temperature files specified]\n'"
|
||||||
|
|
||||||
|
# main loop
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
printbar
|
||||||
|
sleep "$INTERVAL"
|
||||||
|
done
|
36
bin/mnt
Executable file
36
bin/mnt
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
DEV="/dev"
|
||||||
|
MNT="/mnt"
|
||||||
|
# will not be split when used
|
||||||
|
SUDO="doas"
|
||||||
|
|
||||||
|
# preliminary checks
|
||||||
|
[ -n "$2" ] || [ -z "$1" ] \
|
||||||
|
&& printf "Usage: %b [device in %b/]\n" "$0" "$DEV" >>/dev/stderr \
|
||||||
|
&& exit 1 \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
# no need to priviledge escalate if we're already root
|
||||||
|
! [ "$(id -u)" = 0 ] \
|
||||||
|
|| SUDO=""
|
||||||
|
|
||||||
|
# exhaustive checks to ensure $DEV/$1 exists and that $MNT/$1 can be safely used as a mountpoint
|
||||||
|
! [ -d "$MNT/$1" ] && [ -a "$MNT/$1" ] \
|
||||||
|
&& printf "%b: '%b/%b' already exists, but isn't a directory.\n" "$0" "$MNT" "$1" >>/dev/stderr \
|
||||||
|
&& exit 1 \
|
||||||
|
|| true
|
||||||
|
[ -d "$MNT/$1" ] \
|
||||||
|
|| mkdir "$MNT/$1"
|
||||||
|
! [ "$(ls -A "$MNT/$1" | wc -l | xargs echo)" = 0 ] \
|
||||||
|
&& printf "%b: '%b/%b' is a directory, but isn't empty.\n" "$0" "$MNT" "$1" >>/dev/stderr \
|
||||||
|
&& exit 1 \
|
||||||
|
|| true
|
||||||
|
! [ -e "/dev/$1" ] \
|
||||||
|
&& printf "%b: '%b/%b' doesn't exist.\n" "$0" "$DEV" "$1" >>/dev/stderr \
|
||||||
|
&& exit 1 \
|
||||||
|
|| true
|
||||||
|
|
||||||
|
# ok, we're safe
|
||||||
|
"$SUDO" mount "$DEV/$1" "$MNT/$1"
|
39
bin/music
Executable file
39
bin/music
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# DistroTube's dm-radio fixed and in POSIX shell
|
||||||
|
|
||||||
|
alias nonzero="test -n"
|
||||||
|
|
||||||
|
nonzero "$MUSIC_PLAYER" || MUSIC_PLAYER=mpv
|
||||||
|
nonzero "$DMENU" || DMENU=dmenu
|
||||||
|
|
||||||
|
# tab delimits name from URL
|
||||||
|
STATIONS="\
|
||||||
|
50s Rewind https://zeno.fm/radio/50s-rewind/
|
||||||
|
60s Rewind https://zeno.fm/radio/60s-rewind/
|
||||||
|
70s Rewind https://zeno.fm/radio/70s-rewind/
|
||||||
|
80s Rewind https://zeno.fm/radio/80s-rewind/
|
||||||
|
90s Rock https://zeno.fm/radio/90s-rock/
|
||||||
|
The 2000s https://zeno.fm/radio/the-2000s/
|
||||||
|
Classical Radio https://zeno.fm/radio/classical-radio/
|
||||||
|
Classical Relaxation https://zeno.fm/radio/radio-christmas-non-stop-classical/
|
||||||
|
Classic Rock https://zeno.fm/radio/classic-rockdnb2sav8qs8uv/
|
||||||
|
Gangsta49 https://zeno.fm/radio/gangsta49/
|
||||||
|
HipHop49 https://zeno.fm/radio/hiphop49/
|
||||||
|
Madhouse Country Radio https://zeno.fm/radio/madhouse-country-radio/
|
||||||
|
PopMusic https://zeno.fm/radio/popmusic74vyurvmug0uv/
|
||||||
|
PopStars https://zeno.fm/radio/popstars/
|
||||||
|
RadioMetal https://zeno.fm/radio/radio-metal/
|
||||||
|
RocknRoll Radio https://zeno.fm/radio/rocknroll-radio994c7517qs8uv/
|
||||||
|
Cancel nop://
|
||||||
|
"
|
||||||
|
|
||||||
|
selection="$(printf "%s\n" "$STATIONS" | grep -F "$(printf "%s\n" "$STATIONS" | cut -f 1 | dmenu) ")"
|
||||||
|
|
||||||
|
if [ "$selection" = "Cancel nop://" ]
|
||||||
|
then exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill -f http || printf "%s: mpv not running.\n" "$0" 1>&2
|
||||||
|
printf "%s\n" "$selection" | cut -f 2 | xargs mpv
|
33
bin/rotate
Executable file
33
bin/rotate
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROTATION_FILE="$HOME/.rotation"
|
||||||
|
SCREEN="$1"
|
||||||
|
|
||||||
|
_core(){
|
||||||
|
case "$1" in
|
||||||
|
1) xrandr --output "$SCREEN" --rotate normal ;;
|
||||||
|
2) xrandr --output "$SCREEN" --rotate left ;;
|
||||||
|
3) xrandr --output "$SCREEN" --rotate inverted ;;
|
||||||
|
4) xrandr --output "$SCREEN" --rotate right ;;
|
||||||
|
*) return 1
|
||||||
|
esac
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -e "$ROTATION_FILE" ]
|
||||||
|
then ROTATION="$(dd <"$ROTATION_FILE" 2>/dev/null)"
|
||||||
|
if ! _core "$ROTATION"
|
||||||
|
then _core 1
|
||||||
|
ROTATION=2
|
||||||
|
else ROTATION=$(printf "%s + 1\n" "$ROTATION" | bc)
|
||||||
|
! [ "$ROTATION" -gt 4 ] \
|
||||||
|
|| ROTATION=1
|
||||||
|
fi
|
||||||
|
else _core 1
|
||||||
|
ROTATION=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "%s\n" "$ROTATION" >"$ROTATION_FILE"
|
||||||
|
|
||||||
|
exit 0
|
12
bin/transform
Executable file
12
bin/transform
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
argv0="$0"
|
||||||
|
usage(){
|
||||||
|
printf "Usage: %s (un) [XRandR output]\n" "$argv0" 1>&2
|
||||||
|
exit 64 # sysexits(3) EX_USAGE
|
||||||
|
}
|
||||||
|
if [ -n "$2" ] && [ "$1" = un ]
|
||||||
|
then xrandr --output "$2" --transform none
|
||||||
|
elif [ -n "$1" ]
|
||||||
|
then "$DISPLAYM_CONFIG/xrandr_transform.sh" "$1"
|
||||||
|
else usage
|
||||||
|
fi
|
85
bin/translate
Executable file
85
bin/translate
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# googletrans comes with a translate(1) command line application but I don't
|
||||||
|
# like its UI.
|
||||||
|
|
||||||
|
import sys;
|
||||||
|
|
||||||
|
stdin = sys.stdin;
|
||||||
|
stdout = sys.stdout;
|
||||||
|
stderr = sys.stderr;
|
||||||
|
|
||||||
|
_exit = exit;
|
||||||
|
exit = sys.exit;
|
||||||
|
|
||||||
|
def printf(s, *args):
|
||||||
|
return fprintf(stdout, s, *args);
|
||||||
|
|
||||||
|
def fprintf(f, s, *args):
|
||||||
|
printing = s if len(args) == 0 else (s % args);
|
||||||
|
return f.write(printing);
|
||||||
|
|
||||||
|
try:
|
||||||
|
import googletrans;
|
||||||
|
except:
|
||||||
|
printf(
|
||||||
|
"%s: This Python script requires the \"googletrans\" library.\n",
|
||||||
|
sys.argv[0]
|
||||||
|
);
|
||||||
|
|
||||||
|
def usage(name):
|
||||||
|
fprintf(
|
||||||
|
stderr, "Usage: %s [source language] [destination language]\n",
|
||||||
|
name
|
||||||
|
);
|
||||||
|
exit(1);
|
||||||
|
|
||||||
|
def main(argc, argv):
|
||||||
|
accepted_languages = set(list(googletrans.LANGCODES)
|
||||||
|
+ list(googletrans.LANGUAGES) + [ "auto" ]);
|
||||||
|
good = True;
|
||||||
|
isatty = stdout.isatty();
|
||||||
|
translator = googletrans.Translator();
|
||||||
|
|
||||||
|
if argc != 3:
|
||||||
|
usage(argv[0]);
|
||||||
|
|
||||||
|
src = argv[1].lower();
|
||||||
|
dest = argv[2].lower();
|
||||||
|
for arg in [ src, dest ]:
|
||||||
|
if not(arg in accepted_languages):
|
||||||
|
good = False;
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: %s: Language not recognized.\n",
|
||||||
|
argv[0], arg);
|
||||||
|
if(not(good)):
|
||||||
|
fprintf(stderr, "The following languages and language codes are"
|
||||||
|
+ " recognized:\n");
|
||||||
|
print(googletrans.LANGCODES);
|
||||||
|
exit(1);
|
||||||
|
|
||||||
|
try:
|
||||||
|
text = stdin.read().split('\n')[:-1]
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
fprintf(stderr, "%s: Cancelled (keyboard interrupt).\n", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
for line in text:
|
||||||
|
try:
|
||||||
|
translation = translator.translate(line, src=src, dest=dest);
|
||||||
|
except:
|
||||||
|
fprintf(stderr, "%s: %s ->%s\n\t%s\n",
|
||||||
|
argv[0], line, dest, "Error trying to translate.");
|
||||||
|
if isatty:
|
||||||
|
fprintf(stdout,
|
||||||
|
"%s -> %s\n"
|
||||||
|
+ "\t%s -> %s\n"
|
||||||
|
+ "\tGiven pronunciation: %s\n",
|
||||||
|
translation.origin, translation.text,
|
||||||
|
translation.src, translation.dest,
|
||||||
|
translation.pronunciation
|
||||||
|
);
|
||||||
|
else:
|
||||||
|
fprintf(stdout, "%s\n", translation.text);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
exit(main(len(sys.argv), sys.argv));
|
158
bin/volume
Executable file
158
bin/volume
Executable file
@ -0,0 +1,158 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
argv0="$0"
|
||||||
|
|
||||||
|
# ADDING A NEW SOUND SERVER/CLIENT/WHATEVERIDK
|
||||||
|
# `volume a` and `volume s` are the system dependent functions.
|
||||||
|
|
||||||
|
# `volume a $2` must set the volume to $2, an integer value. This should be a
|
||||||
|
# percentage, 100% being the loudest possible volume that can be output by
|
||||||
|
# hardware without quality loss. Percentages above 100% will be allowable in
|
||||||
|
# software if using percentage units. If percentage units are implausible to
|
||||||
|
# implement, system units are okay (e.g. 0-$arbitrary scale versus 0-100).
|
||||||
|
|
||||||
|
# `volume s` must output the current volume in integer form in whatever units
|
||||||
|
# are being used by `volume a` on the given system.
|
||||||
|
|
||||||
|
VOLUME_TMP_FILE="$HOME/.volume-previous"
|
||||||
|
|
||||||
|
if [ "$(uname)" = "NetBSD" ]; then
|
||||||
|
backend="NetBSD"
|
||||||
|
elif command -v pactl >/dev/null; then
|
||||||
|
backend="pulseaudio"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unknown_system(){
|
||||||
|
printf "%s: Unknown system.\n" "$argv0" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
usage(){
|
||||||
|
printf "\
|
||||||
|
Usage: %b {function} (operand)\n" "$argv0"
|
||||||
|
printf "\
|
||||||
|
Functions:
|
||||||
|
'+' - shortcut to \"relative \$2\"
|
||||||
|
'-' - shortcut to \"relative -\$2\"
|
||||||
|
absolute - change sound output to absolute unit
|
||||||
|
help,'' - print this help output
|
||||||
|
mute - toggle mute/unmute
|
||||||
|
relative - change sound output relative to current status
|
||||||
|
status - print current sound output in system unit
|
||||||
|
"
|
||||||
|
printf "\
|
||||||
|
The options are matched with [char]*. So \"%b help\"
|
||||||
|
works the same as \"%b h\".
|
||||||
|
|
||||||
|
" "$argv0" "$argv0"
|
||||||
|
printf "\
|
||||||
|
The backend detected is %b.
|
||||||
|
" "$backend"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# $1 becomes 'help' if previously empty
|
||||||
|
[ -n "$1" ] \
|
||||||
|
&& argv1="$1" \
|
||||||
|
|| argv1=help
|
||||||
|
|
||||||
|
case "$argv1" in
|
||||||
|
#
|
||||||
|
# SYSTEM DEPENDENT
|
||||||
|
#
|
||||||
|
(a*)
|
||||||
|
[ -n "$2" ] && [ -z "$3" ] || usage
|
||||||
|
|
||||||
|
case "$backend" in
|
||||||
|
NetBSD)
|
||||||
|
# NetBSD 9.2 STABLE 2021-07
|
||||||
|
audioctl -w play.gain=$2 >/dev/null
|
||||||
|
;;
|
||||||
|
|
||||||
|
pulseaudio)
|
||||||
|
# pactl 15.0 compiled+linked with libpulse 15.0.0
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ $2%
|
||||||
|
;;
|
||||||
|
|
||||||
|
*) unknown_system
|
||||||
|
esac
|
||||||
|
exit 0 ;;
|
||||||
|
(s*)
|
||||||
|
[ -z "$2" ] || usage
|
||||||
|
|
||||||
|
case "$backend" in
|
||||||
|
NetBSD)
|
||||||
|
# hacky
|
||||||
|
audioctl -a \
|
||||||
|
| grep "play\.gain" \
|
||||||
|
| cut -d '=' -f 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
pulseaudio)
|
||||||
|
# really hacky, gets the job done
|
||||||
|
# gets the volume % of Lchan specifically
|
||||||
|
pactl get-sink-volume @DEFAULT_SINK@ \
|
||||||
|
| sed q \
|
||||||
|
| cut -d '/' -f 2 \
|
||||||
|
| xargs echo \
|
||||||
|
| sed s/'%'//
|
||||||
|
;;
|
||||||
|
|
||||||
|
*) unknown_system ;;
|
||||||
|
esac
|
||||||
|
exit 0 ;;
|
||||||
|
#
|
||||||
|
# SYSTEM independent
|
||||||
|
#
|
||||||
|
(+)
|
||||||
|
[ -n "$2" ] && [ -z "$3" ] \
|
||||||
|
&& "$argv0" r "$2" \
|
||||||
|
|| usage
|
||||||
|
;;
|
||||||
|
(-)
|
||||||
|
[ -n "$2" ] && [ -z "$3" ] \
|
||||||
|
&& "$argv0" r -"$2" \
|
||||||
|
|| usage
|
||||||
|
;;
|
||||||
|
(m*)
|
||||||
|
[ -z "$2" ] || usage
|
||||||
|
# restore previous volume if there is one
|
||||||
|
if [ -e "$VOLUME_TMP_FILE" ]; then
|
||||||
|
"$argv0" a "$(cat "$VOLUME_TMP_FILE")" \
|
||||||
|
&& rm "$VOLUME_TMP_FILE" \
|
||||||
|
&& printf "Unmuted.\n" \
|
||||||
|
&& exit 0 \
|
||||||
|
|| printf "Error restoring previous volume.\n" \
|
||||||
|
>/dev/stderr \
|
||||||
|
&& exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# otherwise, make new file with previous volume
|
||||||
|
|
||||||
|
# dd used rather than shell redirect so it's easy to determine
|
||||||
|
# whether or not the file write worked
|
||||||
|
if ! printf "%b" "$("$argv0" s)" \
|
||||||
|
| dd >"$VOLUME_TMP_FILE" 2>/dev/null
|
||||||
|
then
|
||||||
|
printf "Error writing to file.\n" >/dev/stderr
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# and then of course mute
|
||||||
|
"$argv0" a 0
|
||||||
|
printf "Muted.\n"
|
||||||
|
|
||||||
|
exit 0 ;;
|
||||||
|
(r*)
|
||||||
|
[ -n "$2" ] && [ -z "$3" ] \
|
||||||
|
|| usage
|
||||||
|
|
||||||
|
if ! newval="$(printf "%s %s + p\n" "$("$argv0" s)" "$(printf "%s\n" "$2" | sed 's/^-/_/')" | dc)"; then
|
||||||
|
printf "%b: Error finding new value for volume.\n" "$argv0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
"$argv0" a "$newval"
|
||||||
|
exit $? ;;
|
||||||
|
(h*) usage ;;
|
||||||
|
(*) usage ;;
|
||||||
|
esac
|
81
dotfiles/.Xresources
Normal file
81
dotfiles/.Xresources
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#define AMBER #FFBD00
|
||||||
|
#define BLACK #000000
|
||||||
|
#define PINK #FFDBDB
|
||||||
|
#define WHITE #FFFFFF
|
||||||
|
|
||||||
|
#define FOREGROUND PINK
|
||||||
|
#define BACKGROUND BLACK
|
||||||
|
|
||||||
|
! unscii font
|
||||||
|
*faceName: unscii:antialias=false
|
||||||
|
*faceSize: 12
|
||||||
|
|
||||||
|
*cursorColor: FOREGROUND
|
||||||
|
*Foreground: FOREGROUND
|
||||||
|
*Background: BACKGROUND
|
||||||
|
|
||||||
|
! xterm specific stuff
|
||||||
|
xterm*loginshell: true
|
||||||
|
xterm*locale: UTF-8
|
||||||
|
xterm*titleModes: 16
|
||||||
|
xterm*metaSendsEscape: true
|
||||||
|
xterm*utf8: 1
|
||||||
|
xterm*utf8Fonts: 1
|
||||||
|
xterm*utf8Title: true
|
||||||
|
|
||||||
|
! I used to use these but they make it really hard to see default Lynx.
|
||||||
|
|
||||||
|
! "quantified colors" but every nybble
|
||||||
|
! is decremented ======================
|
||||||
|
! black/dark-gray
|
||||||
|
!*.color0: #000000
|
||||||
|
!*.color8: #343434
|
||||||
|
! red/orange
|
||||||
|
!*.color1: #DE9591
|
||||||
|
!*.color9: #D09E74
|
||||||
|
! green/aquamarine
|
||||||
|
!*.color2: #70B880
|
||||||
|
!*.color10: #49BB9E
|
||||||
|
! amber/yellow
|
||||||
|
!*.color3: #958350
|
||||||
|
!*.color11: #B7B763
|
||||||
|
! blue/violet
|
||||||
|
!*.color4: #92A7DE
|
||||||
|
!*.color12: #BB9BDC
|
||||||
|
! magenta/rose
|
||||||
|
!*.color5: #D592CB
|
||||||
|
!*.color13: #E190B1
|
||||||
|
! cyan/azure
|
||||||
|
!*.color6: #40B9BC
|
||||||
|
!*.color14: #63B2D3
|
||||||
|
! gray/white
|
||||||
|
!*.color7: #707070
|
||||||
|
!*.color15: #B0B0B0
|
||||||
|
! =====================================
|
||||||
|
|
||||||
|
! "quantified colors" =================
|
||||||
|
! black/dark-gray
|
||||||
|
!*.color0: #101010
|
||||||
|
!*.color8: #454545
|
||||||
|
! red/orange
|
||||||
|
!*.color1: #EFA6A2
|
||||||
|
!*.color9: #E0AF85
|
||||||
|
! green/aquamarine
|
||||||
|
!*.color2: #80C990
|
||||||
|
!*.color10: #5ACCAF
|
||||||
|
! amber/yellow
|
||||||
|
!*.color3: #A69460
|
||||||
|
!*.color11: #C8C874
|
||||||
|
! blue/violet
|
||||||
|
!*.color4: #A3B8EF
|
||||||
|
!*.color12: #CCACED
|
||||||
|
! magenta/rose
|
||||||
|
!*.color5: #E6A3DC
|
||||||
|
!*.color13: #F2A1C2
|
||||||
|
! cyan/azure
|
||||||
|
!*.color6: #50CACD
|
||||||
|
!*.color14: #74C3E4
|
||||||
|
! gray/white
|
||||||
|
!*.color7: #808080
|
||||||
|
!*.color15: #C0C0C0
|
||||||
|
! =====================================
|
47
dotfiles/.aliases
Executable file
47
dotfiles/.aliases
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# audio drive
|
||||||
|
#alias audio="sudo mount -L 'AUDIO' /mnt/audio"
|
||||||
|
|
||||||
|
alias awk="nawk"
|
||||||
|
alias b="$BROWSER"
|
||||||
|
alias cls="clear"
|
||||||
|
alias cp="cp -iv"
|
||||||
|
alias doas="$SUDO"
|
||||||
|
alias e="$EDITOR"
|
||||||
|
alias ipconfig="ifconfig"
|
||||||
|
#alias ls="9 ls"
|
||||||
|
alias ls="ls -1A"
|
||||||
|
alias mpv="LIBGL_ALWAYS_SOFTWARE=1 mpv --vo=x11"
|
||||||
|
alias mullvad="curl https://am.i.mullvad.net/connected"
|
||||||
|
alias mv="mv -iv"
|
||||||
|
alias p="ping 1.1.1.1"
|
||||||
|
|
||||||
|
# media hard drive
|
||||||
|
alias partone="sudo mount -L 'PARTONE' /mnt/partone"
|
||||||
|
alias prat="$HOME/src/packrat/prat"
|
||||||
|
|
||||||
|
pyenv() {
|
||||||
|
eq $# 0 \
|
||||||
|
&& . ./bin/activate \
|
||||||
|
|| . $1/bin/activate
|
||||||
|
}
|
||||||
|
|
||||||
|
alias sensors="watch sensors"
|
||||||
|
alias sudo="$SUDO"
|
||||||
|
alias try="PREFIX=/home/trinity/src/trilsd/ /home/trinity/src/trilsd/dist/try"
|
||||||
|
|
||||||
|
# Wacom Intuos 2
|
||||||
|
#alias taboff="xsetwacom set 'Wacom Intuos2 6x8 Pen stylus' MapToOutput LVDS-1"
|
||||||
|
#alias tabon="xsetwacom set 'Wacom Intuos2 6x8 Pen stylus' MapToOutput VGA-1"
|
||||||
|
|
||||||
|
alias units="units --history /dev/null"
|
||||||
|
alias v="$VISUAL"
|
||||||
|
alias weather="curl wttr.in/lewiston+maine?m"
|
||||||
|
|
||||||
|
webm() {
|
||||||
|
ffmpeg -i $1 -c:v libvpx -b:v 1M -c:a libvorbis "$(printf "%b" "$1" | awk -F '.' '{print $1}')".webm
|
||||||
|
}
|
||||||
|
|
||||||
|
alias y=youtube-dl
|
||||||
|
alias yay="paru"
|
15
dotfiles/.config/bspwm/bspwmrc
Executable file
15
dotfiles/.config/bspwm/bspwmrc
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
bspc config active_border_color '#FFCACA'
|
||||||
|
bspc config focus_follows_pointer true
|
||||||
|
bspc config focused_border_color '#FFFFFF'
|
||||||
|
bspc config normal_border_color '#FFDBDB'
|
||||||
|
bspc config window_gap 0
|
||||||
|
bspc monitor LVDS1 -d 1 2 3 4
|
||||||
|
xrandr | grep ' connected ' | awk '{print $1}' | grep VGA >/dev/null 2>&1 \
|
||||||
|
&& bspc monitor VGA1 -d 5 6 7 8 \
|
||||||
|
|| true
|
||||||
|
bspc rule -a XClock manage=off # thanks emanuele6
|
||||||
|
bspc rule -a xload manage=off
|
||||||
|
xdo lower -NXClock
|
||||||
|
xdo lower -Nxload
|
||||||
|
data | lemonbar -bf '-*-unscii-*-*-*-*-*-*-*-*-*-*-*-*' -F '#FFDBDB'
|
0
dotfiles/.config/displaym/p@�I@8@1@@@hh���pp��
Normal file
0
dotfiles/.config/displaym/p@�I@8@1@@@hh���pp��
Normal file
24
dotfiles/.config/displaym/bspwm_sxhkdrc
Normal file
24
dotfiles/.config/displaym/bspwm_sxhkdrc
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# thanks weedsmokingjew
|
||||||
|
|
||||||
|
mod1 + {_,shift + }F4
|
||||||
|
bspc node -{c,k}
|
||||||
|
mod1 + {_,shift + }q
|
||||||
|
bspc node -{c,k}
|
||||||
|
|
||||||
|
mod1 + {_,shift + }{1-4}
|
||||||
|
bspc {desktop -f,node -d} '^{1-4}'
|
||||||
|
|
||||||
|
mod1 + shift + e
|
||||||
|
[ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit? This will end your X session.") ] && bspc quit
|
||||||
|
|
||||||
|
mod1 + f
|
||||||
|
bspc node -t '~fullscreen'
|
||||||
|
|
||||||
|
mod1 + {h,j,k,l}
|
||||||
|
bspc node -f {west,south,north,east}
|
||||||
|
|
||||||
|
mod1 + shift + {h,j,k,l}
|
||||||
|
bspc node -s {west,south,north,east}
|
||||||
|
|
||||||
|
mod1 + shift + r
|
||||||
|
bspc wm -r && pkill -USR1 -x sxhkd
|
27
dotfiles/.config/displaym/i3wm_sxhkdrc
Executable file
27
dotfiles/.config/displaym/i3wm_sxhkdrc
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
mod1 + F4
|
||||||
|
i3-msg kill
|
||||||
|
|
||||||
|
mod1 + {h,j,k,l}
|
||||||
|
i3-msg focus {left,down,up,right}
|
||||||
|
|
||||||
|
mod1 + f
|
||||||
|
i3-msg fullscreen toggle
|
||||||
|
mod1 + F11
|
||||||
|
i3-msg fullscreen toggle
|
||||||
|
|
||||||
|
mod1 + {s,w}
|
||||||
|
i3-msg layout {stacking,tabbed}
|
||||||
|
mod1 + e
|
||||||
|
i3-msg layout toggle split
|
||||||
|
|
||||||
|
mod1 + space
|
||||||
|
i3-msg focus mode_toggle
|
||||||
|
|
||||||
|
mod1 + shift + space
|
||||||
|
i3-msg floating toggle
|
||||||
|
|
||||||
|
mod1 + shift + {h,j,k,l}
|
||||||
|
i3-msg move {left,down,up,right}
|
||||||
|
|
||||||
|
mod1 + shift + e
|
||||||
|
[ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit? This will end your X session.") ] && i3-msg exit
|
50
dotfiles/.config/displaym/sxhkdrc
Executable file
50
dotfiles/.config/displaym/sxhkdrc
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
XF86AudioMute
|
||||||
|
volume m
|
||||||
|
XF86Audio{Lower,Raise}Volume
|
||||||
|
volume r {-5,5}
|
||||||
|
XF86Launch1
|
||||||
|
$TERMINAL
|
||||||
|
|
||||||
|
XF86TaskPane
|
||||||
|
rotate LVDS1
|
||||||
|
|
||||||
|
control + shift + Escape
|
||||||
|
$TERMINAL -e htop
|
||||||
|
Print
|
||||||
|
scrot
|
||||||
|
|
||||||
|
mod1 + {9,0}
|
||||||
|
volume r {-5,5}
|
||||||
|
# cred 4 https://github.com/patrickbolle/dotfiles/
|
||||||
|
mod1 + equal
|
||||||
|
light -A 5
|
||||||
|
mod1 + shift + equal
|
||||||
|
light -A 1
|
||||||
|
mod1 + minus
|
||||||
|
light -U 5
|
||||||
|
mod1 + shift + minus
|
||||||
|
light -U 1
|
||||||
|
|
||||||
|
mod1 + shift + r
|
||||||
|
pkill -USR1 sxhkd
|
||||||
|
|
||||||
|
mod1 + t
|
||||||
|
dmenu="dmenu -fn unscii -l 1 -nb #000 -nf #FFDBDB -sb #000 -sf #FFDBDB" autotranslate
|
||||||
|
|
||||||
|
mod1 + shift + i
|
||||||
|
pkill dmenubar
|
||||||
|
|
||||||
|
mod1 + d
|
||||||
|
dmenu_run -fn unscii -nb '#000' -nf '#FFDBDB' -p '$' -sb '#FFDBDB' -sf '#000'
|
||||||
|
|
||||||
|
mod1 + Return
|
||||||
|
$TERMINAL
|
||||||
|
|
||||||
|
mod1 + v
|
||||||
|
$TERMINAL -e aiomixer
|
||||||
|
|
||||||
|
mod1 + b
|
||||||
|
$BROWSER
|
||||||
|
|
||||||
|
mod1 + m
|
||||||
|
volume m
|
144
dotfiles/.config/i3/config
Normal file
144
dotfiles/.config/i3/config
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
# i3 config file (v4)
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod1
|
||||||
|
|
||||||
|
# Font for window titles
|
||||||
|
font pango:unscii 12
|
||||||
|
|
||||||
|
# keybindings
|
||||||
|
exec_always --no-startup-id sxhkd
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# start pulseaudio
|
||||||
|
exec --no-startup-id pulseaudio --start
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace number $ws1
|
||||||
|
bindsym $mod+2 workspace number $ws2
|
||||||
|
bindsym $mod+3 workspace number $ws3
|
||||||
|
bindsym $mod+4 workspace number $ws4
|
||||||
|
bindsym $mod+5 workspace number $ws5
|
||||||
|
bindsym $mod+6 workspace number $ws6
|
||||||
|
bindsym $mod+7 workspace number $ws7
|
||||||
|
bindsym $mod+8 workspace number $ws8
|
||||||
|
bindsym $mod+9 workspace number $ws9
|
||||||
|
bindsym $mod+0 workspace number $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec [ "Yes." = $(printf "No.\nYes." | dmenu -p "You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.") ] && i3-msg exit
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym h resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
|
# finds out, if available)
|
||||||
|
bar {
|
||||||
|
status_command i3status
|
||||||
|
separator_symbol " // "
|
||||||
|
|
||||||
|
# defaults
|
||||||
|
# colors {
|
||||||
|
# background #ffffff
|
||||||
|
# statusline #000000
|
||||||
|
# separator #ff0000
|
||||||
|
# focused_workspace #4c7899 #285577 #ffffff
|
||||||
|
# active_workspace #333333 #5f676a #ffffff
|
||||||
|
# inactive_workspace #333333 #222222 #888888
|
||||||
|
# urgent_workspace #2f343a #900000 #ffffff
|
||||||
|
# binding_mode #2f343a #900000 #ffffff
|
||||||
|
# }
|
||||||
|
|
||||||
|
colors {
|
||||||
|
background #ffdbdb
|
||||||
|
statusline #000000
|
||||||
|
separator #ff0000
|
||||||
|
# border bg text
|
||||||
|
focused_workspace #ff0000 #ff0000 #ffffff
|
||||||
|
active_workspace #ffffff #ffffff #000000
|
||||||
|
inactive_workspace #000000 #000000 #ffffff
|
||||||
|
urgent_workspace #2f343a #900000 #ff0000
|
||||||
|
binding_mode #2f343a #900000 #ffffff
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# color customization
|
||||||
|
# class border bg text indicator child_border
|
||||||
|
client.focused #ff0000 #ffffff #ff0000 #2e9ef4 #ff0000
|
||||||
|
client.focused_inactive #ffffff #ffffff #000000 #484e50 #000000
|
||||||
|
client.unfocused #000000 #000000 #ff0000 #292d2e #ffffff
|
||||||
|
client.urgent #900000 #900000 #ffffff #900000 #900000
|
||||||
|
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
|
||||||
|
|
||||||
|
client.background #ffffff
|
||||||
|
|
||||||
|
# Wallpaper
|
||||||
|
exec --no-startup-id feh --bg-center /home/trinity/Pictures/Wallpapers/akirablast.jpg
|
||||||
|
|
||||||
|
# moving workspaces
|
||||||
|
bindsym $mod+Shift+greater move container to output right
|
||||||
|
bindsym $mod+Shift+less move container to output left
|
||||||
|
|
||||||
|
# Gaps
|
||||||
|
#gaps inner 10
|
||||||
|
#gaps outer 10
|
||||||
|
#gaps horizontal 10
|
||||||
|
#gaps vertical 10
|
||||||
|
#gaps top 10
|
||||||
|
#gaps right 10
|
||||||
|
#gaps bottom 10
|
||||||
|
#gaps left 10
|
||||||
|
|
||||||
|
# disables titlebars
|
||||||
|
new_window 1pixel
|
53
dotfiles/.config/i3status/config
Normal file
53
dotfiles/.config/i3status/config
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# i3status configuration file.
|
||||||
|
# see "man i3status" for documentation.
|
||||||
|
|
||||||
|
# It is important that this file is edited as UTF-8.
|
||||||
|
# The following line should contain a sharp s:
|
||||||
|
# ß
|
||||||
|
# If the above line is not correctly displayed, fix your editor first!
|
||||||
|
|
||||||
|
general {
|
||||||
|
colors = false
|
||||||
|
interval = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
#order += "ipv6"
|
||||||
|
order += "wireless _first_"
|
||||||
|
order += "ethernet _first_"
|
||||||
|
order += "battery all"
|
||||||
|
order += "disk /"
|
||||||
|
#order += "load"
|
||||||
|
order += "memory"
|
||||||
|
order += "tztime local"
|
||||||
|
|
||||||
|
wireless _first_ {
|
||||||
|
format_up = "wlan0: (%quality at %essid) %ip"
|
||||||
|
format_down = "wlan0 DOWN"
|
||||||
|
}
|
||||||
|
|
||||||
|
ethernet _first_ {
|
||||||
|
format_up = "eth0: %ip (%speed)"
|
||||||
|
format_down = "eth0 DOWN"
|
||||||
|
}
|
||||||
|
|
||||||
|
battery all {
|
||||||
|
format = "%status %percentage %remaining"
|
||||||
|
}
|
||||||
|
|
||||||
|
disk "/" {
|
||||||
|
format = "%avail"
|
||||||
|
}
|
||||||
|
|
||||||
|
#load {
|
||||||
|
# format = "%1min"
|
||||||
|
#}
|
||||||
|
|
||||||
|
memory {
|
||||||
|
format = "%used/%available"
|
||||||
|
threshold_degraded = "1G"
|
||||||
|
format_degraded = "MEMORY < %available"
|
||||||
|
}
|
||||||
|
|
||||||
|
tztime local {
|
||||||
|
format = "%Y-%m-%dT%H:%M:%S"
|
||||||
|
}
|
52
dotfiles/.config/sxhkd/sxhkdrc-base
Executable file
52
dotfiles/.config/sxhkd/sxhkdrc-base
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
XF86AudioMicMute
|
||||||
|
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
XF86AudioMute
|
||||||
|
pactl -- set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
XF86Audio{Lower,Raise}Volume
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ {"-5%","+5%"}
|
||||||
|
XF86Audio{Play,Pause,Next,Prev}
|
||||||
|
playerctl {play,pause,next,previous}
|
||||||
|
XF86Launch1
|
||||||
|
$TERMINAL
|
||||||
|
|
||||||
|
control + shift + Escape
|
||||||
|
$TERMINAL -e htop
|
||||||
|
Print
|
||||||
|
scrot
|
||||||
|
|
||||||
|
# cred 4 https://github.com/patrickbolle/dotfiles/
|
||||||
|
mod1 + equal
|
||||||
|
light -A 5
|
||||||
|
mod1 + shift + equal
|
||||||
|
light -A 1
|
||||||
|
mod1 + minus
|
||||||
|
light -U 5
|
||||||
|
mod1 + shift + minus
|
||||||
|
light -U 1
|
||||||
|
|
||||||
|
mod1 + shift + r
|
||||||
|
pkill -USR1 sxhkd
|
||||||
|
|
||||||
|
mod1 + i
|
||||||
|
ps aux | grep dmenubar | grep -v grep && pkill dmenubar; \
|
||||||
|
data | /home/trinity/src/dmenubar/dmenubar -b
|
||||||
|
|
||||||
|
mod1 + shift + i
|
||||||
|
pkill dmenubar
|
||||||
|
|
||||||
|
mod1 + d
|
||||||
|
dmenu_run
|
||||||
|
|
||||||
|
mod1 + Return
|
||||||
|
$TERMINAL
|
||||||
|
|
||||||
|
mod1 + v
|
||||||
|
$TERMINAL -e pulsemixer
|
||||||
|
|
||||||
|
mod1 + b
|
||||||
|
$BROWSER
|
||||||
|
|
||||||
|
mod1 + m
|
||||||
|
pactl -- set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
mod1 + shift + m
|
||||||
|
pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
8
dotfiles/.config/ytfeed-config.txt
Normal file
8
dotfiles/.config/ytfeed-config.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
auto_refresh_feeds: -1
|
||||||
|
cap: 200
|
||||||
|
consumption_file_name: /home/trinity/.ytfeed/consumption.txt
|
||||||
|
feed_directory: /home/trinity/.ytfeed/feeds/
|
||||||
|
xml_storage_directory: /home/trinity/.ytfeed/feeds/
|
||||||
|
video_downloader: youtube-dlp
|
||||||
|
viewer: youtube-dl-mpv
|
||||||
|
web_browser: firefox-developer-edition
|
110
dotfiles/.ctwmrc
Normal file
110
dotfiles/.ctwmrc
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# BEGIN ctwmrc
|
||||||
|
# thanks to https://datagubbe.se/twm/
|
||||||
|
NoDefaults
|
||||||
|
DontShowWelcomeWindow
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
TitleFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
ResizeFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
MenuFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
IconFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
IconManagerFont "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
|
||||||
|
Color {
|
||||||
|
TitleBackground "#FFDBDB"
|
||||||
|
TitleForeground "#000000"
|
||||||
|
BorderColor "#FFDBDB"
|
||||||
|
BorderTileBackground "#206090"
|
||||||
|
BorderTileForeground "#206090"
|
||||||
|
|
||||||
|
MenuBackground "Gray"
|
||||||
|
MenuForeground "Black"
|
||||||
|
MenuShadowColor "#004070"
|
||||||
|
MenuTitleBackground "#C06077"
|
||||||
|
MenuTitleForeground "White"
|
||||||
|
}
|
||||||
|
|
||||||
|
WindowRing
|
||||||
|
WindowRingExclude {
|
||||||
|
"xload"
|
||||||
|
"xclock"
|
||||||
|
}
|
||||||
|
|
||||||
|
Cursors {
|
||||||
|
Frame "left_ptr"
|
||||||
|
Title "left_ptr"
|
||||||
|
Icon "left_ptr"
|
||||||
|
IconMgr "hand2"
|
||||||
|
Move "fleur"
|
||||||
|
Resize "fleur"
|
||||||
|
Menu "sb_left_arrow"
|
||||||
|
Button "hand2"
|
||||||
|
Wait "watch"
|
||||||
|
Select "dot"
|
||||||
|
Destroy "pirate"
|
||||||
|
}
|
||||||
|
|
||||||
|
NoBorder {
|
||||||
|
"xclock"
|
||||||
|
"xload"
|
||||||
|
}
|
||||||
|
|
||||||
|
NoTitle {
|
||||||
|
"TWM Icon Manager"
|
||||||
|
"xload"
|
||||||
|
"xclock"
|
||||||
|
"feh"
|
||||||
|
"xeyes"
|
||||||
|
}
|
||||||
|
|
||||||
|
Function "move-and-raise" {
|
||||||
|
f.move
|
||||||
|
f.deltastop
|
||||||
|
f.raise
|
||||||
|
}
|
||||||
|
|
||||||
|
Function "deiconify-and-raise" {
|
||||||
|
f.deiconify
|
||||||
|
f.raise
|
||||||
|
}
|
||||||
|
Function "next-and-raise" {
|
||||||
|
f.downiconmgr
|
||||||
|
f.raise
|
||||||
|
}
|
||||||
|
|
||||||
|
Button3 = : root : f.menu "apps"
|
||||||
|
|
||||||
|
Button1 = : title : f.function "move-and-raise"
|
||||||
|
Button2 = : title : f.delete
|
||||||
|
Button3 = : title : f.menu "winops"
|
||||||
|
Button1 = : frame : f.function "move-and-raise"
|
||||||
|
Button2 = : frame : f.nop
|
||||||
|
Button3 = : frame : f.resize
|
||||||
|
|
||||||
|
Button1 = : iconmgr : f.function "deiconify-and-raise"
|
||||||
|
Button2 = : iconmgr : f.lower
|
||||||
|
Button3 = : iconmgr : f.iconify
|
||||||
|
|
||||||
|
# on NetBSD with non-modular Xorg, bitmaps are stored in
|
||||||
|
# /usr/X11R7/include/X11/bitmaps
|
||||||
|
LeftTitleButton ":xlogo" = f.menu "winops"
|
||||||
|
RightTitleButton "vertmax.xbm" = f.zoom
|
||||||
|
RightTitleButton "close.xbm" = f.delete
|
||||||
|
|
||||||
|
menu "winops" {
|
||||||
|
"Delete" f.delete
|
||||||
|
"Destroy" f.destroy
|
||||||
|
"Fullscreen Zoom" f.fullscreenzoom
|
||||||
|
"Full Zoom" f.fullzoom
|
||||||
|
"Identify" f.identify
|
||||||
|
"Initial size" f.initsize
|
||||||
|
}
|
||||||
|
|
||||||
|
# Workspace Menu
|
||||||
|
menu "apps" {
|
||||||
|
"Workspace" f.title
|
||||||
|
"Restart" f.restart
|
||||||
|
"Exit" f.quit
|
||||||
|
}
|
||||||
|
|
||||||
|
# END twmrc
|
10
dotfiles/.env
Normal file
10
dotfiles/.env
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
if [ "$0" = "bash" ] || [ "$0" = "-bash" ]; then complete -c man which; fi
|
||||||
|
|
||||||
|
PS1="; "
|
||||||
|
PS2="; "
|
||||||
|
PS3="; "
|
||||||
|
|
||||||
|
set -o vi
|
||||||
|
|
||||||
|
. $HOME/.aliases
|
||||||
|
. $HOME/.cargo/env
|
16
dotfiles/.profile
Normal file
16
dotfiles/.profile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
BROWSER=firefox; export BROWSER
|
||||||
|
DISPLAYM_CONFIG="$HOME/.config/displaym"; export DISPLAYM_CONFIG
|
||||||
|
DOOMWADDIR=/mnt/partone/misc/doomwads/; export DOOMWADDIR
|
||||||
|
EDITOR=ed; export EDITOR
|
||||||
|
PAGER="less"; export PAGER
|
||||||
|
PLAN9=/usr/local/plan9; export PLAN9
|
||||||
|
PATH="$HOME/bin/:$HOME/bin/oneliners/:$PATH:/usr/pkg/bin:/usr/pkg/sbin:/usr/pkg/qt5/bin:$PLAN9/bin"; export PATH
|
||||||
|
SUDO="sudo"; export SUDO
|
||||||
|
TERMINAL="uxterm"; export TERMINAL
|
||||||
|
UNITS_SYSTEM="si"; export UNITS_SYSTEM
|
||||||
|
VISUAL=vi; export VISUAL
|
||||||
|
WALLPAPER="$HOME/Pictures/Wallpapers/ghibli_wars.jpg"
|
||||||
|
|
||||||
|
ENV=$HOME/.env; export ENV
|
||||||
|
. $ENV
|
||||||
|
rm -f "/home/trinity/.profile.profile-check"
|
18
dotfiles/.vimrc
Normal file
18
dotfiles/.vimrc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
set bg=dark
|
||||||
|
set mouse=
|
||||||
|
set nocp
|
||||||
|
set noexpandtab
|
||||||
|
set noim
|
||||||
|
set nois
|
||||||
|
set nu
|
||||||
|
set relativenumber
|
||||||
|
set rnu
|
||||||
|
set ruler
|
||||||
|
set tabstop=8
|
||||||
|
set term=xterm
|
||||||
|
set tf
|
||||||
|
set title
|
||||||
|
set tty=xterm
|
||||||
|
set vb
|
||||||
|
set nowrap
|
||||||
|
syntax on
|
24
dotfiles/clone.sh
Executable file
24
dotfiles/clone.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
alias cp="$(which cp)"
|
||||||
|
SRC="$HOME"
|
||||||
|
DEST="$(pwd)"
|
||||||
|
[ "$(printf "Abort.\nContinue.\n" | dmenu -p "Copying from '$SRC' to '$DEST'. Continue?")" = "Continue." ] || exit
|
||||||
|
set -x
|
||||||
|
|
||||||
|
for dir in $(cat manifest_dir); do
|
||||||
|
if ! [ -d "$SRC/$dir" ]; then
|
||||||
|
printf "Directory missing from SRC: %b\n" "$dir"
|
||||||
|
false
|
||||||
|
else
|
||||||
|
mkdir -p "$DEST/$dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for file in $(cat manifest_file); do
|
||||||
|
if ! [ -e "$SRC/$file" ]; then
|
||||||
|
printf "File missing from SRC: %b\n" "$file"
|
||||||
|
false
|
||||||
|
else
|
||||||
|
cp "$SRC/$file" "$DEST/$file"
|
||||||
|
fi
|
||||||
|
done
|
13
dotfiles/manifest_dir
Normal file
13
dotfiles/manifest_dir
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
.config/
|
||||||
|
.config/bspwm/
|
||||||
|
.config/displaym/
|
||||||
|
.config/displaym/bspwm
|
||||||
|
.config/displaym/ctwm
|
||||||
|
.config/displaym/i3wm
|
||||||
|
.config/i3/
|
||||||
|
.config/i3status/
|
||||||
|
.config/sxhkd/
|
||||||
|
.config/sxhkd/
|
||||||
|
.config/sxhkd/
|
||||||
|
bin/
|
||||||
|
src/dmenu/
|
24
dotfiles/manifest_file
Normal file
24
dotfiles/manifest_file
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
.Xresources
|
||||||
|
.aliases
|
||||||
|
.ctwmrc
|
||||||
|
.env
|
||||||
|
.profile
|
||||||
|
.vimrc
|
||||||
|
.config/bspwm/bspwmrc
|
||||||
|
.config/displaym/.xinitrc
|
||||||
|
.config/displaym/sxhkdrc
|
||||||
|
.config/displaym/bspwm/.xinitrc
|
||||||
|
.config/displaym/bspwm/start.sh
|
||||||
|
.config/displaym/bspwm/sxhkdrc
|
||||||
|
.config/displaym/ctwm/.xinitrc
|
||||||
|
.config/displaym/ctwm/start.sh
|
||||||
|
.config/displaym/i3wm/.xinitrc
|
||||||
|
.config/displaym/i3wm/sxhkdrc
|
||||||
|
.config/i3/config
|
||||||
|
.config/i3status/config
|
||||||
|
bin/batterymonitor
|
||||||
|
bin/data
|
||||||
|
bin/displaym
|
||||||
|
bin/mnt
|
||||||
|
bin/volume
|
||||||
|
src/dmenu/config.h
|
17
dotfiles/misc/PKGBUILD_doas-sudo
Normal file
17
dotfiles/misc/PKGBUILD_doas-sudo
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Maintainer: deven <trinity at trinitydotmoe>
|
||||||
|
# VERY LIGHTLY modified version of the AUR package opendoas-sudo
|
||||||
|
pkgname=doas-sudo
|
||||||
|
pkgver=1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="A symlink for using the port of BSD's doas(1) as a drop-in replacement to sudo"
|
||||||
|
arch=('any')
|
||||||
|
url="https://github.com/slicer69/doas"
|
||||||
|
license=('MIT')
|
||||||
|
depends=('doas')
|
||||||
|
provides=('sudo')
|
||||||
|
conflicts=('sudo')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -d "$pkgdir"/usr/bin
|
||||||
|
ln -s $(which doas) "$pkgdir"/usr/bin/sudo
|
||||||
|
}
|
38
dotfiles/misc/README.txt
Normal file
38
dotfiles/misc/README.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# dotfiles/scripts
|
||||||
|
# Basic scripts to rebuild a system.
|
||||||
|
# Usage:
|
||||||
|
# bash README.txt arch
|
||||||
|
|
||||||
|
# packages/bootstrap - bare minimum programs. Necessary for system use.
|
||||||
|
# Install these before running this script.
|
||||||
|
|
||||||
|
mkdir -p $HOME/bin # executables
|
||||||
|
mkdir -p $HOME/src # source code
|
||||||
|
|
||||||
|
if [ $1 = "arch" ]; then
|
||||||
|
sudo pacman -S $(cat packages/all packages/*arch_pacman*)
|
||||||
|
|
||||||
|
bash arch_yay.sh
|
||||||
|
yay -S $(cat packages/*arch_yay*)
|
||||||
|
|
||||||
|
bash doas-sudo.sh arch
|
||||||
|
# you can undo this with pacman -S sudo
|
||||||
|
|
||||||
|
elif [ $1 = "artix" ]; then
|
||||||
|
sudo pacman -S $(cat packages/all packages/*artix_pacman*)
|
||||||
|
|
||||||
|
bash arch_yay.sh
|
||||||
|
yay -S $(cat packages/*artix_yay*)
|
||||||
|
|
||||||
|
bash doas-sudo.sh arch
|
||||||
|
# you can undo this with pacman -S sudo
|
||||||
|
|
||||||
|
elif [ $1 = "debian" ]; then
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
bash dotfiles.sh
|
13
dotfiles/misc/arch_yay.sh
Executable file
13
dotfiles/misc/arch_yay.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
source ./cdecho.sh
|
||||||
|
|
||||||
|
YAYURL="https://aur.archlinux.org/yay.git"
|
||||||
|
|
||||||
|
cde $HOME/src
|
||||||
|
git clone $YAYURL || printf "yay already downloaded\n"
|
||||||
|
cde yay
|
||||||
|
git pull
|
||||||
|
makepkg -si
|
||||||
|
yay -V
|
15
dotfiles/misc/cc.sh
Normal file
15
dotfiles/misc/cc.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CC="$(which cc)"
|
||||||
|
|
||||||
|
which tcc >/dev/null
|
||||||
|
|
||||||
|
if [ -h "$CC" ]; then
|
||||||
|
unlink "$CC"
|
||||||
|
ln -s "$(which tcc)" "$CC"
|
||||||
|
else
|
||||||
|
printf "$0: \$(which cc), $(which cc), is not a symbolic link\n" >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
4
dotfiles/misc/cdecho.sh
Normal file
4
dotfiles/misc/cdecho.sh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cde() {
|
||||||
|
cd $1
|
||||||
|
printf "Entered %s.\n" $(pwd)
|
||||||
|
}
|
18
dotfiles/misc/dash_sh.sh
Normal file
18
dotfiles/misc/dash_sh.sh
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
which sh >/dev/null 2>&1 \
|
||||||
|
|| exit 1
|
||||||
|
|
||||||
|
SH_LOCATION="$(which sh)"
|
||||||
|
|
||||||
|
[ -L "$SH_LOCATION" ] \
|
||||||
|
|| exit 1
|
||||||
|
|
||||||
|
which dash >/dev/null 2>&1 \
|
||||||
|
|| exit 1
|
||||||
|
|
||||||
|
unlink "$SH_LOCATION"
|
||||||
|
|
||||||
|
ln -s "$(which dash)" "$SH_LOCATION"
|
12
dotfiles/misc/doas-sudo.sh
Executable file
12
dotfiles/misc/doas-sudo.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
source ./cdecho.sh
|
||||||
|
|
||||||
|
if [ $1 = "arch" ]; then
|
||||||
|
mkdir -p $HOME/src/doas-sudo
|
||||||
|
cp PKGBUILD_doas-sudo $HOME/src/doas-sudo/PKGBUILD
|
||||||
|
|
||||||
|
cde $HOME/src/doas-sudo
|
||||||
|
makepkg -si
|
||||||
|
fi
|
45
dotfiles/misc/dotfiles.sh
Executable file
45
dotfiles/misc/dotfiles.sh
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# could be more succinct in places but it works
|
||||||
|
|
||||||
|
source ./cdecho.sh
|
||||||
|
|
||||||
|
# retrieve dotfiles
|
||||||
|
cde $HOME/src
|
||||||
|
git clone https://github.com/devenblake/dotfiles.git
|
||||||
|
cde dotfiles
|
||||||
|
|
||||||
|
# unscii
|
||||||
|
curl http://pelulamu.net/unscii/unscii-16-full.ttf -o $HOME/.local/share/fonts/unscii-16-full.ttf
|
||||||
|
fc-cache
|
||||||
|
|
||||||
|
# basic configs
|
||||||
|
cp {.Xresources,.aliases,.bashrc,.profile} $HOME/
|
||||||
|
ln -s $HOME/.Xresources $HOME/.Xdefaults
|
||||||
|
|
||||||
|
# dmenu
|
||||||
|
cde $HOME/src
|
||||||
|
if [ git clone https://git.suckless.org/dmenu ]; then
|
||||||
|
cde dmenu
|
||||||
|
cp $HOME/dotfiles/src/dmenu/config.h ./
|
||||||
|
make
|
||||||
|
[ "Yes." = $(printf "No.\nYes." | ./dmenu -p "Install dmenu?") ] && sudo make install
|
||||||
|
fi
|
||||||
|
|
||||||
|
# i3wm
|
||||||
|
mkdir -p $HOME/.config/i3
|
||||||
|
mkdir $HOME/.config/i3status
|
||||||
|
cde $HOME/.config/
|
||||||
|
cp $HOME/src/dotfiles/.config/i3/config i3/
|
||||||
|
cp $HOME/src/dotfiles/.config/i3status/config i3status/
|
||||||
|
|
||||||
|
# winamp skin (checks to see if audacious is installed first)
|
||||||
|
sudo mkdir -p /usr/share/audacious/Skins/
|
||||||
|
which audacious && sudo curl https://archive.org/download/winampskin_Sailor_Moon_Gang/Sailor_Moon_Gang.wsz -o /usr/share/audacious/Skins/Sailor_Moon_Gang.wsz || printf "[ERROR] Could not curl audacious skin.\n"
|
||||||
|
|
||||||
|
# wallpaper
|
||||||
|
cde $HOME
|
||||||
|
mkdir -p $HOME/Pictures/Wallpapers
|
||||||
|
curl https://ia801502.us.archive.org/3/items/asuka-98/Asuka%2098.jpg -o Pictures/Wallpapers/Asuka\ 98.jpg || printf "[ERROR] Could not curl wallpaper.\n"
|
||||||
|
|
||||||
|
xrdb -load .Xresources
|
9
dotfiles/misc/dsic.sh
Executable file
9
dotfiles/misc/dsic.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
SIC_C=$HOME/src/sic/sic.c
|
||||||
|
cp "$SIC_C" ./
|
||||||
|
|
||||||
|
sed -e 's/No channel to send to/No channel to which to send./' -e '170s/sic/dsic/' <sic.c >dsic.c
|
||||||
|
|
||||||
|
diff sic.c dsic.c
|
||||||
|
[ "$(printf "No.\nYes.\n" | dmenu -p "Write changes?")" = "Yes." ] && mv "$SIC_C" "$SIC_C".bak && mv dsic.c "$SIC_C"
|
31
dotfiles/misc/grammy/icons.sh
Normal file
31
dotfiles/misc/grammy/icons.sh
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# icon fetcher
|
||||||
|
# i made this script to fetch icons for my grandmother and put them in icons/
|
||||||
|
# so i wouldn't have to fetch the icons for her desktop when i made her a new
|
||||||
|
# system.
|
||||||
|
# i could have downloaded all the icons and put them into a repo for her but
|
||||||
|
# this uses less space
|
||||||
|
|
||||||
|
# all these icons are on the internet archive so if the local sites change
|
||||||
|
# they'll still be available
|
||||||
|
|
||||||
|
icons_folder="~/Pictures/icons/"
|
||||||
|
|
||||||
|
! which curl && printf "$0: missing dependency: curl\n" >/dev/stderr && exit 1
|
||||||
|
|
||||||
|
mkdir -p "$icons_folder"
|
||||||
|
cd "$icons_folder"
|
||||||
|
|
||||||
|
curl -o "989wclz.com.png" "https://web.archive.org/web/20200629174002if_/https://989wclz.com/wp-content/themes/wclz/img/touch-icon-144.png"
|
||||||
|
curl -o "amazon.com.ico" "https://web.archive.org/web/20200718050400if_/https://www.amazon.com/favicon.ico"
|
||||||
|
curl -o "bangordailynews.com.png" "http://web.archive.org/web/20200721195123if_/https://i0.wp.com/bdn-data.s3.amazonaws.com/uploads/2020/06/BDN-logo_green-3-1.png"
|
||||||
|
curl -o "theguardian.com.png" "https://web.archive.org/web/20200720041457if_/https://assets.guim.co.uk/images/favicons/fee5e2d638d1c35f6d501fa397e53329/152x152.png"
|
||||||
|
curl -o "centralmaine.com.png" "https://web.archive.org/web/20200720023956if_/https://multifiles.pressherald.com/uploads/sites/2/2014/06/apple-touch-icon-iphone-retina-display.png"
|
||||||
|
curl -o "dictionary.com.png" "https://web.archive.org/web/20200719135458if_/https://www.dictionary.com/hp-assets/dcom_favicon-1bff2f1b49c077ed504e55c3649f2a4b.png"
|
||||||
|
curl -o "google.com.jpg" "https://web.archive.org/web/20170621105937if_/https://yt3.ggpht.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAAAAAA/OixOH_h84Po/s900-c-k-no/photo.jpg"
|
||||||
|
curl -o "longfellowsgreenhouses.com.jpg" "https://web.archive.org/web/20200718173559im_/https://longfellowsgreenhouses.com/wp-content/uploads/2020/03/Longfellows-Logo-Light-Green.jpg"
|
||||||
|
curl -o "mainepublic.org.png" "https://d3kle7qwymxpcy.cloudfront.net/images/broadcasts/e5/8e/30457/1/c300.png"
|
||||||
|
curl -o "news.google.com.png" "https://upload.wikimedia.org/wikipedia/commons/0/0b/Google_News_icon.png"
|
||||||
|
curl -o "newscentermaine.com.png" "https://web.archive.org/web/20200721190548if_/https://www.newscentermaine.com/assets/favicons/WCSH.png?ver=2.4.7.4"
|
||||||
|
curl -o "pressherald.com.png" "https://multifiles.pressherald.com/uploads/sites/4/2014/06/apple-touch-icon-iphone-retina-display.png"
|
||||||
|
curl -o "weather.com.png" "https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/The_Weather_Channel_logo_2005-present.svg/1200px-The_Weather_Channel_logo_2005-present.svg.png"
|
38
dotfiles/misc/grammy/image.sh
Executable file
38
dotfiles/misc/grammy/image.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
argv0="$0"
|
||||||
|
argv1="$1"
|
||||||
|
argv2="$2"
|
||||||
|
|
||||||
|
FILE_NAME="image.img.gz"
|
||||||
|
COMPACT="gzip -c"
|
||||||
|
EXTRACT="gzip -cd"
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
printf "Usage: $argv0 {save,deploy} [device]
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
$argv0 save /dev/sda1 # images installation at /dev/sda1
|
||||||
|
$argv0 deploy /dev/sda # deploys saved image to /dev/sda
|
||||||
|
|
||||||
|
In-program constants (edit this script to change them):
|
||||||
|
\$FILE_NAME - where to save/read the image
|
||||||
|
\$COMPACT - command to compact the image (such as \"gzip -c\" to
|
||||||
|
compress with gzip)
|
||||||
|
\$EXTRACT - command to extract the image (such as \"gzip -cd\" to
|
||||||
|
extract gzip)\n"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -n "$argv2" ] || usage
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
case "$argv1" in
|
||||||
|
(save) $COMPACT <"$argv2" >"$FILE_NAME" ;;
|
||||||
|
(deploy) $EXTRACT <"$FILE_NAME" >"$argv2" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
8
dotfiles/misc/motd
Normal file
8
dotfiles/misc/motd
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Welcome to Trinity's Thinkpad X200T.
|
||||||
|
|
||||||
|
Unauthorized access is a violation of
|
||||||
|
United States federal law according to
|
||||||
|
the Computer Fraud and Abuse Act, 18
|
||||||
|
USC Section 1030.
|
||||||
|
|
||||||
|
Mess with the best, die like the rest.
|
30
dotfiles/misc/nmap.sh
Normal file
30
dotfiles/misc/nmap.sh
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# builds and installs nmap 7.80 because the fucking pieces of shit that
|
||||||
|
# maintain nmap decided to make 7.90+ NONFREE.
|
||||||
|
# i do like nmap and i have nothing personal against the actual maintainers.
|
||||||
|
# but come ON.
|
||||||
|
|
||||||
|
# anyway...
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
FILENAME="nmap-7.80.tar.bz2"
|
||||||
|
ORIGINAL_DIST_BZ2="https://nmap.org/dist/nmap-7.80.tar.bz2"
|
||||||
|
ARCHIVED_DIST_BZ2="http://web.archive.org/web/20200922062002/https://nmap.org/dist/nmap-7.80.tar.bz2"
|
||||||
|
|
||||||
|
cd $HOME/src
|
||||||
|
|
||||||
|
curl "$ORIGINAL_DIST_BZ2" >"$FILENAME" || curl "$ARCHIVED_DIST_BZ2" >"$FILENAME"
|
||||||
|
|
||||||
|
bzip2 -cd <"$FILENAME" | tar -x
|
||||||
|
|
||||||
|
# see, i could do complicated math to determine this based on the filename, or
|
||||||
|
# i could hard-code this and let it error if i've inexplicably grabbed
|
||||||
|
# nmap-7.8.1
|
||||||
|
|
||||||
|
cd "nmap-7.8.0"
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
45
dotfiles/misc/oneliners.sh
Executable file
45
dotfiles/misc/oneliners.sh
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# This is the place for the scripts that are a bit more involved than can be
|
||||||
|
# expressed in shell aliases or functions, or that I want to access from dmenu.
|
||||||
|
# These are pretty messy but most of them work. Pretty easy for bugs to hide in
|
||||||
|
# here so I go in with pesticide often.
|
||||||
|
|
||||||
|
set -x
|
||||||
|
mkdir -p $HOME/bin/oneliners || exit
|
||||||
|
cd $HOME/bin/oneliners
|
||||||
|
|
||||||
|
SUDO=doas
|
||||||
|
SHEBANG="#!/bin/sh\n"
|
||||||
|
BASH_SHEBANG="#!/bin/bash\n"
|
||||||
|
|
||||||
|
DMENU_LINES="40"
|
||||||
|
|
||||||
|
# private bookmarks
|
||||||
|
printf $SHEBANG'$BROWSER file://$HOME/bookmarks.html\n' >bmarks
|
||||||
|
|
||||||
|
# deemix
|
||||||
|
printf $SHEBANG'python $HOME/src/deemix-pyweb/deemix-pyweb.py\n' >deemix
|
||||||
|
|
||||||
|
# settings for specific monitors
|
||||||
|
printf $SHEBANG'xrandr --output HDMI-1 --auto --mode 720x480 --right-of LVDS-1\n' >1702
|
||||||
|
printf $SHEBANG'xrandr --output VGA-1 --auto --right-of LVDS-1\n' >mv720
|
||||||
|
|
||||||
|
# more monitor settings
|
||||||
|
printf $SHEBANG"xrandr --output HDMI-1 --off\n" >hdmioff
|
||||||
|
printf $SHEBANG"xrandr --output VGA-1 --off\n" >vgaoff
|
||||||
|
|
||||||
|
# youtube-dl stuff
|
||||||
|
printf $SHEBANG"youtube-dl --add-metadata -i -o \"$HOME/%%(upload_date)s %%(title)s.%%(ext)s\" \"\$@\"\n" >youtube-dlo
|
||||||
|
printf $SHEBANG"youtube-dlo -f \"bestvideo[vcodec=vp9]+bestaudio[acodec=opus]\" \"\$@\"\n" >youtube-dlp
|
||||||
|
printf $SHEBANG"youtube-dlp -f \$(youtube-dl -F \$1 | tail +4 | dmenu -p \"Choose a format.\" -l $DMENU_LINES | awk '{ print \$1 }') \"\$@\"\n" >youtube-dl-interactive
|
||||||
|
printf $SHEBANG"youtube-dl-interactive \"\$@\" -o - | mpv -\n" >youtube-dl-mpv
|
||||||
|
|
||||||
|
# sxhkd
|
||||||
|
printf $SHEBANG"cd '$HOME/.config/sxhkd/'
|
||||||
|
cat sxhkdrc-base sxhkdrc-bspwm >sxhkdrc
|
||||||
|
pkill sxhkd -USR1\n" >sxhkd-bspwm-reload
|
||||||
|
|
||||||
|
set +x
|
||||||
|
|
||||||
|
ls && [ $(printf "Yes.\nNo." | dmenu -p "Any risky files?") = "No." ] && printf "Making executable.\n" && chmod +x *
|
6
dotfiles/misc/sic.sh
Executable file
6
dotfiles/misc/sic.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
mkdir -p $HOME/src
|
||||||
|
cd $HOME/src
|
||||||
|
git clone https://git.suckless.org/sic
|
||||||
|
cd $HOME/src/dotfiles/scripts
|
||||||
|
./dsic.sh # apply patches
|
8
dotfiles/misc/spacer.sh
Executable file
8
dotfiles/misc/spacer.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# creates an 8GB empty file in the root dir
|
||||||
|
# that way when the alarm bells go off you can delete it to save a couple
|
||||||
|
# minutes before the system really runs out of disk
|
||||||
|
BS=512; COUNT=16777216 # 512 * 16777216 = 8GB
|
||||||
|
! [ -e /spacer.img ] || return 1 || exit 1
|
||||||
|
dd bs=$BS count=$COUNT </dev/zero >spacer.img
|
||||||
|
$SUDO mv ./spacer.img /spacer.img
|
16
dotfiles/misc/unscii-16-full.sh
Executable file
16
dotfiles/misc/unscii-16-full.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
[ "$(id -u)" = "0" ] \
|
||||||
|
&& LOCATION="/usr/share/fonts/unscii" \
|
||||||
|
|| LOCATION="$HOME/.fonts"
|
||||||
|
|
||||||
|
mkdir -p "$LOCATION"
|
||||||
|
|
||||||
|
curl "http://viznut.fi/unscii/unscii-16-full.otf" \
|
||||||
|
>"$LOCATION/unscii-16-full.otf"
|
||||||
|
curl "http://viznut.fi/unscii/unscii-16-full.pcf" \
|
||||||
|
>"$LOCATION/unscii-16-full.pcf"
|
||||||
|
curl "http://viznut.fi/unscii/unscii-16-full.ttf" \
|
||||||
|
>"$LOCATION/unscii-16-full.ttf"
|
74
dotfiles/packages/all
Normal file
74
dotfiles/packages/all
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
alsa-plugins-nice
|
||||||
|
alsa-utils
|
||||||
|
anki
|
||||||
|
audacious
|
||||||
|
curl
|
||||||
|
dvdbackup
|
||||||
|
ed
|
||||||
|
feh
|
||||||
|
ffmpeg
|
||||||
|
gcc
|
||||||
|
git
|
||||||
|
gparted
|
||||||
|
gperf
|
||||||
|
gwenview
|
||||||
|
htop
|
||||||
|
inetutils
|
||||||
|
iptables
|
||||||
|
k3b
|
||||||
|
kate
|
||||||
|
kdenlive
|
||||||
|
krita
|
||||||
|
lame
|
||||||
|
linux-headers
|
||||||
|
lynx
|
||||||
|
macchanger
|
||||||
|
make
|
||||||
|
man-pages
|
||||||
|
mercurial
|
||||||
|
moc
|
||||||
|
moreutils
|
||||||
|
mpv
|
||||||
|
net-tools
|
||||||
|
nmap
|
||||||
|
p7zip
|
||||||
|
pkgfile
|
||||||
|
powertop
|
||||||
|
progress
|
||||||
|
pulseaudio
|
||||||
|
pulseaudio-alsa
|
||||||
|
pulseaudio-utils
|
||||||
|
pulsemixer
|
||||||
|
python3
|
||||||
|
qbittorrent
|
||||||
|
qemu
|
||||||
|
rsync
|
||||||
|
s-tui
|
||||||
|
screen
|
||||||
|
scrot
|
||||||
|
sed
|
||||||
|
smartmontools
|
||||||
|
thunar
|
||||||
|
thunderbird
|
||||||
|
ttf-liberation
|
||||||
|
tlp
|
||||||
|
twin
|
||||||
|
units
|
||||||
|
unrar
|
||||||
|
unzip
|
||||||
|
util-linux
|
||||||
|
vim
|
||||||
|
virt-manager
|
||||||
|
vlc
|
||||||
|
wget
|
||||||
|
wireguard-tools
|
||||||
|
xclip
|
||||||
|
xf86-input-libinput
|
||||||
|
xf86-input-wacom
|
||||||
|
xf86-video-intel
|
||||||
|
xscreensaver
|
||||||
|
xterm
|
||||||
|
zathura
|
||||||
|
zathura-cb
|
||||||
|
zathura-djvu
|
||||||
|
zathura-ps
|
12
dotfiles/packages/alpine_apk
Normal file
12
dotfiles/packages/alpine_apk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
build-base
|
||||||
|
consolekit2
|
||||||
|
dbus
|
||||||
|
dbus-x11
|
||||||
|
firefox
|
||||||
|
libx11-dev
|
||||||
|
libxft-dev
|
||||||
|
libxinerama-dev
|
||||||
|
neofetch
|
||||||
|
tcc
|
||||||
|
udev
|
||||||
|
xorg-xserver
|
1
dotfiles/packages/arch_pacman
Normal file
1
dotfiles/packages/arch_pacman
Normal file
@ -0,0 +1 @@
|
|||||||
|
virtualbox-host-modules-arch
|
7
dotfiles/packages/artix_pacman
Normal file
7
dotfiles/packages/artix_pacman
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
acpid
|
||||||
|
acpid-openrc
|
||||||
|
fuse-openrc
|
||||||
|
iwd-openrc
|
||||||
|
libvirt-openrc
|
||||||
|
openresolv
|
||||||
|
wireguard-openrc
|
8
dotfiles/packages/bootstrap
Normal file
8
dotfiles/packages/bootstrap
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
ed
|
||||||
|
gcc
|
||||||
|
git
|
||||||
|
less
|
||||||
|
linux
|
||||||
|
make
|
35
dotfiles/packages/common-arch_pacman-artix_pacman
Normal file
35
dotfiles/packages/common-arch_pacman-artix_pacman
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
asp
|
||||||
|
base-devel
|
||||||
|
clisp
|
||||||
|
cpupower
|
||||||
|
dhcpcd
|
||||||
|
firefox-developer-edition
|
||||||
|
fuse2
|
||||||
|
gvim
|
||||||
|
i3status
|
||||||
|
iputils
|
||||||
|
iw
|
||||||
|
iwd
|
||||||
|
jre11-openjdk
|
||||||
|
jre8-openjdk
|
||||||
|
kimageformats
|
||||||
|
libreoffice-fresh
|
||||||
|
light
|
||||||
|
ntfs-3g
|
||||||
|
otf-ipafont
|
||||||
|
pulseaudio-alsa
|
||||||
|
pulseaudio-bluetooth
|
||||||
|
python-pip
|
||||||
|
qemu-arch-extra
|
||||||
|
qt5-imageformats
|
||||||
|
stalonetray
|
||||||
|
ttf-dejavu
|
||||||
|
vi
|
||||||
|
which
|
||||||
|
wireshark-cli
|
||||||
|
xorg-server
|
||||||
|
xorg-xauth
|
||||||
|
xorg-xinit
|
||||||
|
xorg-xrdb
|
||||||
|
youtube-dl
|
||||||
|
zathura-pdf-mupdf
|
24
dotfiles/packages/common-arch_yay-artix_yay
Normal file
24
dotfiles/packages/common-arch_yay-artix_yay
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
aic94xx-firmware
|
||||||
|
bitwarden
|
||||||
|
bitwarden-cli
|
||||||
|
bitwarden-dmenu
|
||||||
|
dashbinsh
|
||||||
|
discord_arch_electron
|
||||||
|
doas
|
||||||
|
freedownloadmanager
|
||||||
|
google-chrome
|
||||||
|
gzdoom
|
||||||
|
i3-gaps
|
||||||
|
i3-swallow
|
||||||
|
instagram-scraper
|
||||||
|
iwgtk
|
||||||
|
lemonbar-git
|
||||||
|
makebootfat
|
||||||
|
minecraft-launcher
|
||||||
|
mullvad-vpn-beta
|
||||||
|
multimc5
|
||||||
|
spotify
|
||||||
|
steam
|
||||||
|
tor-browser
|
||||||
|
wd719x-firmware
|
||||||
|
zoom
|
2
dotfiles/packages/common-arch_yay-artix_yay-debian_apt
Normal file
2
dotfiles/packages/common-arch_yay-artix_yay-debian_apt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
moon-buggy
|
||||||
|
syncterm
|
5
dotfiles/packages/debian_apt
Normal file
5
dotfiles/packages/debian_apt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
build-essential
|
||||||
|
fonts-dejavu
|
||||||
|
libreoffice
|
||||||
|
linux-tools-common
|
||||||
|
linux-tools-generic
|
19
man/dotfiles.md
Normal file
19
man/dotfiles.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# devenblake/dotfiles
|
||||||
|
Pretty config stuff.
|
||||||
|
|
||||||
|

|
||||||
|
For this configuration, [posted on r/unixporn on 2020-09-25](https://www.reddit.com/r/unixporn/comments/izpvwp/i3gaps_basic_but_it_works/), refer to the [state of the repository around 2020-09-26](https://git.sr.ht/~trinity/dotfiles/tree/7d0a35b6d06c2bb46990087c6a6c4b2a2685d49c) or so.
|
||||||
|
|
||||||
|
My setup has changed drastically since then.
|
||||||
|
|
||||||
|
My shell aliases are in `.aliases` and my general shell configuration is in `.env`.
|
||||||
|
I use `dash` as my shell. I sort of miss tab-completion but it's worth it so I know everything I do is reproducible.
|
||||||
|
|
||||||
|
Refer to `scripts/` for scripts that help me keep everything organized, except for `clone.sh` (which clones all my dotfiles to `~/src/dotfiles/`, where I keep my local copy of this repo).
|
||||||
|
|
||||||
|
A list of all the packages I use is available in `scripts/packages/`, organized by repository availability.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
See `LICENSE` for the repository license if you want but basically all code, unless otherwise stated, is released unencumbered into the public domain.
|
||||||
|
A notable exception to this is `src/dmenu/config.h` which is licensed under the MIT/X Consortium license as is dmenu; this license can be found in `licenses/DMENU`.
|
Loading…
Reference in New Issue
Block a user