Compare commits

..

3 Commits

Author SHA1 Message Date
15ce9525fd update scripts 2023-11-15 11:16:12 -05:00
1ef84890f9 update package list 2023-11-15 10:54:07 -05:00
64c21eceab modify configs 2023-11-15 10:53:05 -05:00
43 changed files with 440 additions and 405 deletions

View File

@ -1,5 +0,0 @@
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux-fallback.img
options rd.luks.name=e7ff5b82-f145-4fae-be2a-388314977783=cryptlvm rd.luks.options=discard root=/dev/ssd/root resume=/dev/ssd/swap rw add_efi_memmap kernel=30

View File

@ -1,5 +0,0 @@
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=e7ff5b82-f145-4fae-be2a-388314977783=cryptlvm rd.luks.options=discard root=/dev/ssd/root resume=/dev/ssd/swap rw add_efi_memmap kernel=30

View File

@ -3,7 +3,7 @@
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
# MODULES=(piix ide_disk reiserfs)
MODULES=()
# BINARIES
@ -29,32 +29,31 @@ FILES=()
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect modconf block filesystems fsck)
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev modconf block filesystems fsck)
# HOOKS=(base udev block filesystems)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev systemd autodetect modconf keyboard keymap block sd-encrypt lvm2 filesystems fsck)
# usr, fsck and shutdown hooks.
HOOKS=(base udev systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems resume fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
@ -65,9 +64,3 @@ HOOKS=(base udev systemd autodetect modconf keyboard keymap block sd-encrypt lvm
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"

View File

@ -1,5 +1,6 @@
no-greeting
no-permission-warning
lock-never
#keyserver-options timeout=10
keyserver hkps://hkps.pool.sks-keyservers.net:443
#keyserver hkp://pgp.mit.edu:11371

View File

@ -1 +0,0 @@
/home/default/syncthing/default/scripts/login-notify

View File

@ -1,136 +0,0 @@
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##
##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias WEBSERVERS = www1, www2, www3
##
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
#
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
#
# Cmnd_Alias DEBUGGERS = /usr/bin/gdb, /usr/bin/lldb, /usr/bin/strace, \
# /usr/bin/truss, /usr/bin/bpftrace, \
# /usr/bin/dtrace, /usr/bin/dtruss
#
# Cmnd_Alias PKGMAN = /usr/bin/apt, /usr/bin/dpkg, /usr/bin/rpm, \
# /usr/bin/yum, /usr/bin/dnf, /usr/bin/zypper, \
# /usr/bin/pacman
##
## Defaults specification
##
## Preserve editor environment variables for visudo.
## To preserve these for all commands, remove the "!visudo" qualifier.
Defaults!/usr/bin/visudo env_keep += "SUDO_EDITOR EDITOR VISUAL"
##
## Use a hard-coded PATH instead of the user's to find commands.
## This also helps prevent poorly written scripts from running
## artbitrary commands under sudo.
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/bin"
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods. Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to disable "use_pty" when running commands as root.
## Commands run as non-root users will run in a pseudo-terminal,
## not the user's own terminal, to prevent command injection.
# Defaults>root !use_pty
##
## Uncomment to run commands in the background by default.
## This can be used to prevent sudo from consuming user input while
## a non-interactive command runs if "use_pty" or I/O logging are
## enabled. Some commands may not run properly in the background.
# Defaults exec_background
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
## Sudo will create up to 2,176,782,336 I/O logs before recycling them.
## Set maxseq to a smaller number if you don't have unlimited disk space.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
# Defaults maxseq = 1000
##
## Uncomment to disable intercept and log_subcmds for debuggers and
## tracers. Otherwise, anything that uses ptrace(2) will be unable
## to run under sudo if intercept_type is set to "trace".
# Defaults!DEBUGGERS !intercept, !log_subcmds
##
## Uncomment to disable intercept and log_subcmds for package managers.
## Some package scripts run a huge number of commands, which is made
## slower by these options and also can clutter up the logs.
# Defaults!PKGMAN !intercept, !log_subcmds
##
## Runas alias specification
##
##
## User privilege specification
##
root ALL=(ALL:ALL) ALL
default ALL=(ALL:ALL) ALL
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL:ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL:ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
## Read drop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d

View File

@ -5,7 +5,6 @@ BindsTo=sway-session.target
[Service]
Type=simple
ExecStart=/usr/bin/wayvnc
Environment="WAYLAND_DISPLAY=wayland-1"
Restart=on-failure
RestartSec=1
TimeoutStopSec=10

0
home/default/.bashrc Executable file → Normal file
View File

View File

@ -1,3 +0,0 @@
[window]
opacity=0.85
decorations="None"

View File

@ -6,8 +6,8 @@ ShowShuangpinMode=True
PageSize=7
# Enable Spell
SpellEnabled=True
# Enable Symbols
SymbolsEnabled=True
# Enable Emoji
EmojiEnabled=True
# Enable Chaizi
ChaiziEnabled=True
# Enable Characters in Unicode CJK Extension B
@ -20,8 +20,8 @@ CloudPinyinIndex=1
CloudPinyinAnimation=True
# Always show Cloud Pinyin place holder
KeepCloudPinyinPlaceHolder=False
# Preedit Mode
PreeditMode="Composing pinyin"
# Show preedit within application
PreeditInApplication=True
# Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning=True
# Show complete pinyin in preedit
@ -70,20 +70,6 @@ FirstRun=False
[NextCandidate]
0=Tab
[CurrentCandidate]
0=space
1=KP_Space
[CommitRawInput]
0=Return
1=KP_Enter
2=Control+Return
3=Control+KP_Enter
4=Shift+Return
5=Shift+KP_Enter
6=Control+Shift+Return
7=Control+Shift+KP_Enter
[ChooseCharFromPhrase]
0=bracketleft
1=bracketright
@ -91,10 +77,17 @@ FirstRun=False
[FilterByStroke]
0=grave
[QuickPhraseTriggerRegex]
0=.(/|@)$
1=^(www|bbs|forum|mail|bbs)\\.
2=^(http|https|ftp|telnet|mailto):
[QuickPhrase trigger]
0=www.
1=ftp.
2=http:
3=mail.
4=bbs.
5=forum.
6=https:
7=ftp:
8=telnet:
9=mailto:
[Fuzzy]
# ue -> ve
@ -133,6 +126,4 @@ L_N=False
S_SH=False
# z <-> zh
Z_ZH=False
# Correction Layout
Correction=None

View File

@ -1,8 +1,4 @@
profile {
output "LG Electronics LG IPS QHD 201NTPCGD520" enable scale 1.30 position 0,0 mode 2560x1440@75Hz
output "LG Electronics LG IPS QHD 309NTABDW064" enable scale 1.30 position 1974,0 mode 2560x1440@75Hz
}
profile {
output "BOE 0x0BCA Unknown" enable scale 1.75 position 0,0 mode 2256x1504@59.999Hz
output "LG Electronics LG IPS QHD 201NTPCGD520" enable scale 1.30 position 0,0 mode 2560x1440@60Hz
output "LG Electronics LG ULTRAWIDE 0x00000101" enable position 1968,0 mode 2560x1080@60Hz
}

View File

@ -7,7 +7,7 @@ border-size=1
border-color=#333333
border-radius=3
icons=0
font=IBMPlexMono 11
font='IBM Plex Mono' 11
default-timeout=0
padding=10

View File

@ -1,3 +0,0 @@
" set default vim register to normal clipboard
set clipboard+=unnamedplus
colorscheme vim

View File

@ -1,3 +1,3 @@
set preview_images true
set preview_images_method ueberzug
set preview_images_method kitty
map DD shell trash %s

View File

@ -9,7 +9,7 @@ set $down j
set $up k
set $right l
set $term alacritty
set $term kitty
set $menu rofi -show combi | xargs swaymsg exec --
# wallpaper
@ -43,10 +43,8 @@ exec_always {
# timeout
exec swayidle -w \
timeout 300 'playerctl -a pause' \
timeout 300 'swaylock' \
timeout 300 'playerctl -a pause && swaylock' \
timeout 600 'swaymsg "output * dpms off"' \
timeout 15 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' \
before-sleep 'playerctl -a pause' \
lock 'swaylock' \
resume 'swaymsg "output * dpms on"'
@ -220,6 +218,9 @@ bindsym XF86Search exec $menu
# screenshot
bindsym Ctrl+Shift+p exec ~/scripts/screenshot
# record screen
# bindsym Ctrl+Alt+p exec ~/scripts/record-screen
### gaps
gaps inner 25
# smart_gaps on
@ -229,9 +230,6 @@ bindsym $mod+Shift+d border toggle
bindsym $mod+m exec makoctl dismiss
bindsym $mod+n exec makoctl restore
# wayvnc
bindsym $mod+Shift+o exec wayvncctl output-cycle
### styles
# class border backgr text
@ -242,13 +240,6 @@ client.unfocused #222222 #222222 #AAAAAA
# font
font pango: IBMPlexMono Regular 10
input "5215:621:SINO_WEALTH_GXT_144_Gaming_Mouse" {
accel_profile "flat"
dwt disabled
left_handed disabled
pointer_accel -0.78
}
# wacom
input "1386:770:Wacom_Intuos_PT_S_Pen" {
accel_profile "flat"

View File

@ -1,14 +1,12 @@
# qt5ct
export QT_QPA_PLATFORMTHEME=qt5ct
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_STYLE_OVERRIDE=Adwaita-Dark
# waybar
export XDG_CURRENT_DESKTOP=sway
# gtk
export GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc
export GTK_THEME=Adwaita:dark
export GTK_THEME=Materia:dark
# ibus
export GTK_IM_MODULE=fcitx

View File

@ -1,7 +0,0 @@
#!/usr/bin/env sh
set -eou pipefail
echo "$1" | wget-titles-from-urls >> titles.txt
echo "$1" | youtube-audio
ls -Art | tail -n 1 | xargs -d '\n' kid3
standardize-music

View File

@ -0,0 +1,23 @@
#!/usr/bin/env sh
set -eou pipefail
# Old script to get json url for some reason? Don't know why I did this
# youtube-dl -j --flat-playlist -a - | \
# jq -r '.id' | \
# sed 's_^_https://youtu.be/_' | \
# wget-titles-from-urls >> titles.txt
test -f append.txt
if [[ $? -ne 0 ]]; then
echo No append.txt found! Cannot append
exit
fi
if [[ ! -s append.txt ]]; then
echo append.txt is empty
exit
fi
cat append.txt | wget-titles-from-urls >> titles.txt
cat append.txt | youtube-audio
> append.txt

46
home/default/scripts/booksplit Executable file
View File

@ -0,0 +1,46 @@
#!/bin/sh
# Requires ffmpeg (audio splitting) and my `tag` wrapper script.
[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit
echo "Enter the album/book title:"; read -r booktitle
echo "Enter the artist/author:"; read -r author
echo "Enter the publication year:"; read -r year
inputaudio="$1"
# Get a safe file name from the book.
#escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
escbook="$(echo "$booktitle" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && exit 1
# As long as the extension is in the tag script, it'll work.
ext="opus"
#ext="${1#*.}"
# Get the total number of tracks from the number of lines.
total="$(wc -l < "$2")"
while read -r x;
do
end="$(echo "$x" | cut -d' ' -f1)"
[ -n "$start" ] &&
echo "From $start to $end; $track $title"
file="$escbook/$(printf "%.2d" "$track") - $author - $esctitle.$ext"
[ -n "$start" ] && echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -to "$end" -vn "$file" &&
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
title="$(echo "$x" | cut -d' ' -f 2-)"
# esctitle="$(echo "$title" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
esctitle="$(echo "$title" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
track="$((track+1))"
start="$end"
done < "$2"
# The last track must be done outside the loop.
echo "From $start to the end: $title"
file="$escbook/$track - $author - $esctitle.$ext"
echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -vn "$file" &&
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"

View File

@ -0,0 +1,32 @@
#!/usr/bin/env sh
# rename .MKV -> .MKV
count=`ls -1 *.JPG 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename MKV mkv *.MKV
fi
# convert to opus
count=`ls -1 *.mkv 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.mkv; do
ffmpeg -i "$i" "${i%.mkv}.opus";
rm "$i";
done
fi
# rename .WEBM -> .webm
count=`ls -1 *.WEBM 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename WEBM webm *.WEBM
fi
# convert to opus
count=`ls -1 *.webm 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.webm; do
ffmpeg -i "$i" "${i%.webm}.opus";
rm "$i";
done
fi

0
home/default/scripts/del-macos-folders Executable file → Normal file
View File

View File

@ -1,8 +1,64 @@
#!/usr/bin/env sh
set -ou pipefail
for dir in */; do
name=`echo "$dir" | sed 's/\/$//g'`
(cd $dir && echo "#EXTM3U" > "$name.m3u" && ls | grep -v -E '\.txt|\.m3u' >> "$name.m3u")
# Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder
PLAYLIST_FOLDER="/home/default/Music/playlists/mpd" # Playlist folder for mpd
PREFIX="music/playlists" # relative links to add to playlists, based on mpd virtual file structure
EXTENSIONS=("mp3" "opus" "flac" "m4a" "mkv" "webm")
# Disable nullglob and set pattern matching to fix spaces
shopt -s nullglob
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
cd $PLAYLIST_FOLDER || { echo "Could not cd into PLAYLIST_FOLDER"; exit 1; }
parent=`basename $PWD`
# Delete old generated playlists
if [[ -f "*.gen.m3u" ]]; then
rm *.gen.m3u
fi
if [[ -f ".trackNames" ]]; then
rm .trackNames
fi
# For all playlist directories to generate
for playlistDir in ../*; do
if [[ -d "$playlistDir" ]] && [[ "$playlistDir" != "../$parent" ]]; then
# playlist filename needed for mpd
playlist=`echo "$playlistDir" | sed "s/^\.\.\///g"`
# escaped version of filename needed for bash
escaped=`printf '%q\n' "$playlist"`
# echo "playlist=$playlist"
# echo "escaped=$escaped"
# touch file
> "$playlist.gen.m3u"
# write all files with newlines
> .track-names
for EXT in ${EXTENSIONS[@]}; do
# echo `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c`
if [[ `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c` != 0 ]]; then
ls -1 ../$escaped/*.$EXT >> .track-names 2> /dev/null
# echo `ls -1 ../$playlist/*.$EXT >> 2> /dev/null`
fi
done
# echo `cat .track-names`
cat .track-names | while IFS="" read -r song || [ -n "$song" ] ; do
unprefixed=`echo "$song" | sed "s/^\.\.\///g"`
# echo "$PREFIX/$unprefixed"
echo "$PREFIX/$unprefixed" >> "$playlist.gen.m3u"
done < .track-names
if [[ -f ".track-names" ]]; then
rm .track-names
fi
fi
done
IFS=$SAVEIFS

View File

@ -1,4 +1,7 @@
#!/usr/bin/env bash
set -eou pipefail
sudo bash -c 'echo $(pacman -Qqe) | tr " " "\n" | sort > /packages.txt'
echo $(pacman -Qqe) | \
tr " " "\n" | \
sort \
> /packages.txt

View File

@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
for i in *.mp3; do ffmpeg -i "$i" -c:a libopus "${i%.*}.opus"; done
trash *.mp3

View File

@ -1,8 +1,5 @@
#!/usr/bin/env sh
set -eoux pipefail
rm -rf ~/.cache
sudo rm -rf /var/cache/pacman/pkg/*
yay -Sc --noconfirm
sudo pacman -Sc --noconfirm
sudo journalctl --vacuum-size=1G

View File

@ -2,5 +2,5 @@
# record video
dir=~/Downloads/temp
(cd $dir && wf-recorder -g "$(slurp)" -a alsa_output.pci-0000_0b_00.4.analog-stereo.monitor --file=$(date +%Y-%m-%d_%H-%m-%s).mp4)
(cd $dir && wf-recorder -g "$(slurp)" --audio --file=$(date +%Y-%m-%d_%H-%m-%s).mp4)
xdg-open $dir

View File

@ -6,17 +6,11 @@ if [ $count != 0 ]; then
rename JPG jpg *.JPG
fi
# rename .jpeg -> .jpg
count=`ls -1 *.jpeg 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename jpeg jpg *.jpeg
fi
# remove exif except orientation from .jpg
count=`ls -1 *.jpg 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.jpg; do
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi
@ -30,7 +24,7 @@ fi
count=`ls -1 *.png 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.png; do
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi

View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail
echo stopping pipewire-media-session...
systemctl --user stop pipewire-media-session
echo stopping pipewire...
systemctl --user stop pipewire
echo starting pipewire...
systemctl --user start pipewire
echo starting pipewire-media-session...
systemctl --user start pipewire-media-session

View File

@ -1,13 +1,12 @@
#!/usr/bin/env bash
set -euox pipefail
pkill -f blueman-manager || true
set -euo pipefail
echo stopping bluetooth...
sudo systemctl stop bluetooth-autoconnect
sudo systemctl stop bluetooth
sudo modprobe -r btusb
sudo rmmod btusb
echo starting bluetooth...
sudo modprobe btusb
sudo systemctl start bluetooth
sudo rfkill unblock bluetooth
sudo systemctl start bluetooth-autoconnect

16
home/default/scripts/scrub-ufw Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
echo "Stopping firewall and allowing everyone..."
ipt="/usr/bin/iptables"
## Failsafe - die if /sbin/iptables not found
[ ! -x "$ipt" ] && { echo "$0: \"${ipt}\" command not found."; exit 1; }
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X
$ipt iptables -t raw -F
$ipt -t raw -X

View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
cat input.txt | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-

View File

@ -1,53 +0,0 @@
#!/usr/bin/env sh
set -ou pipefail
count=`ls -1 *.OGG 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename OGG ogg *.OGG
fi
count=`ls -1 *.ogg 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.ogg; do
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
done
fi
count=`ls -1 *.WEBM 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename WEBM webm *.WEBM
fi
count=`ls -1 *.webm 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.webm; do
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
done
fi
count=`ls -1 *.OPUS 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename OPUS opus *.OPUS
fi
count=`ls -1 *.opus 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.opus; do
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
done
fi
count=`ls -1 *.M4A 2>/dev/null | wc -l`
if [ $count != 0 ]; then
rename M4A m4a *.M4A
fi
count=`ls -1 *.m4a 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.m4a; do
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
done
fi
shopt -s nullglob
rsgain custom --skip-existing --lowercase --tagmode=i *.mp3 *.flac

View File

@ -1,21 +0,0 @@
#!/usr/bin/env sh
set -eou pipefail
sudo mkdir -p /run/media/default
echo "mounting /run/media/default/MUSIC"
sudo fsck -fy /dev/disk/by-uuid/E6F8-C183 || true
sudo mkdir /run/media/default/MUSIC || true
sudo mount -U E6F8-C183 /run/media/default/MUSIC
echo "syncing music..."
sudo rsync --info=progress2 -W -r --delete /home/default/Music/* /run/media/default/MUSIC/
sudo sync /run/media/default/MUSIC/
cd /run/media/default/MUSIC
sudo /home/default/scripts/generate-playlists
cd /home/default
echo "unmounting /run/media/default/MUSIC"
sudo umount /dev/disk/by-uuid/E6F8-C183
sudo rmdir /run/media/default/MUSIC

View File

@ -1,21 +0,0 @@
#!/usr/bin/env sh
set -eou pipefail
sudo mkdir -p /run/media/default
echo "mounting /run/media/default/MUSIC"
sudo fsck -fy /dev/disk/by-uuid/4619-9B49 || true
sudo mkdir -p /run/media/default/MUSIC || true
sudo mount -U 4619-9B49 /run/media/default/MUSIC
echo "syncing music..."
sudo rsync --info=progress2 -W -r --delete /home/default/Music/* /run/media/default/MUSIC/
sudo sync /run/media/default/MUSIC/
cd /run/media/default/MUSIC
sudo /home/default/scripts/generate-playlists
cd /home/default
echo "unmounting /run/media/default/MUSIC"
sudo umount /run/media/default/MUSIC
sudo rmdir /run/media/default/MUSIC

View File

@ -1,9 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
if compgen -G "/home/default/syncthing/*/.stversions/*" > /dev/null; then
rm -rf /home/default/syncthing/*/.stversions/*
echo "deleted all .stversions"
else
echo "no .stversions to remove"
fi

View File

@ -1,5 +0,0 @@
#!/usr/bin/env sh
set -eou pipefail
system-update-mirrors
pacman -Syuw --noconfirm

View File

@ -1,6 +0,0 @@
#!/usr/bin/env bash
set -eoux pipefail
system-free-space
yay --noconfirm -Syu --overwrite \*
system-free-space

59
home/default/scripts/tag Executable file
View File

@ -0,0 +1,59 @@
#!/bin/sh
err() { echo "Usage:
tag [OPTIONS] file
Options:
-a: artist/author
-t: song/chapter title
-A: album/book title
-n: track/chapter number
-N: total number of tracks/chapters
-d: year of publication
-g: genre
-c: comment
You will be prompted for title, artist, album and track if not given." && exit 1 ;}
while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in
a) artist="${OPTARG}" ;;
t) title="${OPTARG}" ;;
A) album="${OPTARG}" ;;
n) track="${OPTARG}" ;;
N) total="${OPTARG}" ;;
d) date="${OPTARG}" ;;
g) genre="${OPTARG}" ;;
c) comment="${OPTARG}" ;;
f) file="${OPTARG}" ;;
*) printf "Invalid option: -%s\\n" "$OPTARG" && err ;;
esac done
shift $((OPTIND - 1))
file="$1"
[ ! -f "$file" ] && echo "Provide file to tag." && err
[ -z "$title" ] && echo "Enter a title." && read -r title
[ -z "$artist" ] && echo "Enter an artist." && read -r artist
[ -z "$album" ] && echo "Enter an album." && read -r album
[ -z "$track" ] && echo "Enter a track number." && read -r track
case "$file" in
*.ogg) echo "Title=$title
Artist=$artist
Album=$album
Track=$track
Total=$total
Date=$date
Genre=$genre
Comment=$comment" | vorbiscomment -w "$file" ;;
*.opus) echo "Title=$title
Artist=$artist
Album=$album
Track=$track
Total=$total
Date=$date
Genre=$genre
Comment=$comment" | opustags -i -S "$file" ;;
*.mp3) eyeD3 -Q --remove-all -a "$artist" -A "$album" -t "$title" -n "$track" -N "$total" -Y "$date" "$file" ;;
*) echo "File type not implemented yet." ;;
esac

View File

@ -2,7 +2,7 @@
# --embed-thumbnail \
# --audio-format opus \
yt-dlp \
youtube-dl \
--ignore-errors \
-f bestaudio \
--rm-cache-dir \

View File

@ -1,58 +1,75 @@
7zip
adwaita-dark
adwaita-qt5-git
adwaita-qt6-git
adobe-source-han-sans-jp-fonts
adobe-source-han-sans-kr-fonts
aic94xx-firmware
alacritty
amd-ucode
android-udev
anki-bin
arch-install-scripts
arduino-ide-bin
asdf-vm
atomicparsley
atool
autoconf
automake
base
base-devel
bash
bash-completion
beets
bind
binutils
bison
blueman
bluetooth-autoconnect
brightnessctl
bzip2
calibre
cbonsai
ccache
cheese
chromium
cnrdrvcups-lb
code
coreutils
cowsay
cpupower
cpupower-gui
cryptsetup
cups
cups-pdf
darktable
ddclient
device-mapper
dhcpcd
dialog
dino
diffutils
direnv
dosfstools
downgrade
dxvk-bin
e2fsprogs
efibootmgr
electrum
elinks
esp-idf
emacs
esptool
etcher-bin
evince
exfat-utils
evolution
f2fs-tools
fail2ban
fakeroot
fcitx5
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk
fcitx5-pinyin-zhwiki
fcitx5-qt
fcitx5-solarized
ffmpegthumbnailer
file
filesystem
findutils
firefox
flex
font-manager
fortune-mod
fortune-mod-acecombat
fortune-mod-calvin
fortune-mod-confucius
fortune-mod-doctorwho-new-series
@ -62,81 +79,119 @@ fortune-mod-hitchhiker
fortune-mod-matrix
fortune-mod-portal-game
fortune-mod-starwars
fprintd
framework-system-git
freecad
freerdp
fstl
fwbuilder
fwupd
gajim
gamemode
gawk
gcc
gcc-libs
gdlauncher-bin
gdm
gedit
geoclue
gettext
gimp
git
git-lfs
glibc
gnome-disk-utility
gnome-firmware
gnome-sound-recorder
gnu-free-fonts
gnu-netcat
gnutls
gparted
gphoto2
grep
grim
grub
gsmartcontrol
gsound
gst-libav
gst-plugins-bad
gst-plugins-ugly
gstreamer-vaapi
gtk-engine-murrine
gtk-vnc
gvfs-gphoto2
gutenprint
gwakeonlan
hamradio-menus
gzip
handbrake
hddtemp
hexedit
highlight
htop
hugin
hunspell-en_us
iio-sensor-proxy
ibus-uniemoji-git
inkscape
inotify-tools
iotop
iproute2
iputils
itstool
iucode-tool
iw
jammr
jansson
jq
kanshi
kcm-wacomtablet
kdeconnect
kdocker
keepassxc
kid3
kitty
kochmorse
krita
lagrange
leap-motion-driver
leptonica
less
lib32-gamemode
lib32-giflib
lib32-gnutls
lib32-gst-plugins-base-libs
lib32-gtk3
lib32-libappindicator-gtk2
lib32-libappindicator-gtk3
lib32-libgpg-error
lib32-libjpeg-turbo
lib32-libldap
lib32-libpng
lib32-libpulse
lib32-libva
lib32-libva-mesa-driver
lib32-libxcomposite
lib32-libxinerama
lib32-libxslt
lib32-mesa-vdpau
lib32-mpg123
lib32-ocl-icd
lib32-openal
lib32-sqlite
lib32-v4l-utils
lib32-vkd3d
lib32-vulkan-icd-loader
libappindicator-gtk3
libdvdcss
libffado
libglvnd
libgnome-keyring
libgooglepinyin
libime
libjbig-shared
libjpeg6-turbo
libpinyin
libpng
libreoffice-extension-languagetool
libreoffice-still
libretro-overlays
libretro-shaders-slang
librewolf-bin
libva-mesa-driver
libva-utils
libvncserver
libxkbcommon
licenses
linux
linux-firmware
linux-firmware-qlogic
@ -147,6 +202,8 @@ lshw
lsp-plugins
ltunify-git
lvm2
m4
make
mako
mallard-ducktype
man-db
@ -159,11 +216,11 @@ mediainfo
mesa
minecraft-launcher
mixxx
mkinitcpio-firmware
mousetweaks
mpc
mpv
mpv-mpris
mqtt-explorer
mumble
namcap
nano
@ -173,7 +230,7 @@ neofetch
neovim
networkmanager
network-manager-applet
networkmanager-openvpn
nginx-mod-fancyindex
nmap
nomacs
noto-fonts-cjk
@ -182,42 +239,55 @@ noto-fonts-extra
ntfs-3g
ntp
nvtop
obs-studio
ocl-icd
odt2txt
opencc
opendesktop-fonts
openh264
openshot
openvpn
opustags
overdue
package-query
pacman-contrib
paman
papirus-icon-theme
patch
pavucontrol
pciutils
perl
perl-image-exiftool
perl-rename
picard
piper
pipewire-alsa
pipewire-jack
pipewire-pulse
pixman
pkgconf
pkgstats
playerctl
playonlinux
polkit-gnome
postgresql
postgresql-libs
prismlauncher
procps-ng
psensor
psmisc
pv
pyside2
python
python-axolotl
python-levenshtein
python-matplotlib
python-mutagen
python-pip
python-pyasyncore
python-pycryptodome
python-pyenchant
python-pylast
python-pynvim
python-wxpython
qbittorrent
qt5ct
qt5-graphicaleffects
qt5-imageformats
quodlibet
ranger
rar
@ -227,20 +297,24 @@ remmina
retroarch
retroarch-assets-xmb
rofi
rsgain
rsnapshot
rsync
samsung_magician-consumer-ssd
seahorse
sed
shadow
shellcheck
shotcut
signal-desktop
simple-scan
slurp
smartmontools
s-nail
sndio
ssh-audit
sshpass
stalonetray
steam
steam-native-runtime
sudo
sway
swaybg
@ -250,9 +324,24 @@ syncplay
syncthing
syncthing-gtk
sysfsutils
systemd-sysvcompat
systemd-ui
tar
telegram-desktop
thunderbird
texinfo
texlive-basic
texlive-bibtexextra
texlive-bin
texlive-fontsextra
texlive-formatsextra
texlive-games
texlive-humanities
texlive-latexextra
texlive-mathscience
texlive-music
texlive-pictures
texlive-pstricks
texlive-publishers
tlp
tmux
traceroute
@ -261,13 +350,15 @@ tree
ttf-dejavu
ttf-ibm-plex
ttf-joypixels
ttf-liberation
ttf-ms-fonts
ttf-opensans
ttf-symbola-free
ttf-ubuntu-font-family
ueberzugpp
unicode-emoji
upd72020x-fw
usbutils
util-linux
vi
vim
vkd3d
@ -278,7 +369,6 @@ vulkan-mesa-layers
vulkan-radeon
vulkan-tools
w3m
wacomtablet
wakeonlan
waybar
wayland-utils
@ -286,6 +376,8 @@ wayvnc
wd719x-firmware
wdisplays
wf-recorder
wget
which
wine-staging
winetricks
wireguard-tools
@ -293,8 +385,9 @@ wl-clipboard
wol
wpa_supplicant
xclip
xdg-desktop-portal-gtk
xdg-desktop-portal
xdg-desktop-portal-wlr
xf86-input-wacom
xf86-video-amdgpu
xfsprogs
xorg-xdpyinfo
@ -304,4 +397,6 @@ xorg-xwayland
xsel
xterm
yay-bin
youtube-dl-git
yt-dlp
zimg

View File

@ -28,7 +28,7 @@ please let me know if i've forgotten one!
- waybar (topbar)
- swayidle (idle daemon)
- swaylock (lockscreen)
- alacritty (terminal)
- kitty (terminal)
- ranger (file browser)
- rofi (launcher)
- mako (notification daemon)