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 # The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules # run. Advanced users may wish to specify all system modules
# in this array. For instance: # in this array. For instance:
# MODULES=(usbhid xhci_hcd) # MODULES=(piix ide_disk reiserfs)
MODULES=() MODULES=()
# BINARIES # BINARIES
@ -29,32 +29,31 @@ FILES=()
# 'filesystems' is _required_ unless you specify your fs modules in MODULES # 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples: # Examples:
## This setup specifies all modules in the MODULES setting above. ## 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) # HOOKS=(base)
# #
## This setup will autodetect all modules for your system and should ## This setup will autodetect all modules for your system and should
## work as a sane default ## 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. ## This setup will generate a 'full' image which supports most systems.
## No autodetection is done. ## 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. ## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. ## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) # HOOKS=(base udev block mdadm encrypt filesystems)
# #
## This setup loads an lvm2 volume group. ## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev modconf block lvm2 filesystems fsck) # HOOKS=(base udev block lvm2 filesystems)
# #
## NOTE: If you have /usr on a separate partition, you MUST include the ## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks. # usr, fsck and shutdown hooks.
HOOKS=(base udev systemd autodetect modconf keyboard keymap block sd-encrypt lvm2 filesystems fsck) HOOKS=(base udev systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems resume fsck)
# COMPRESSION # 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. # is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip" #COMPRESSION="gzip"
#COMPRESSION="bzip2" #COMPRESSION="bzip2"
#COMPRESSION="lzma" #COMPRESSION="lzma"
@ -65,9 +64,3 @@ HOOKS=(base udev systemd autodetect modconf keyboard keymap block sd-encrypt lvm
# COMPRESSION_OPTIONS # COMPRESSION_OPTIONS
# Additional options for the compressor # Additional options for the compressor
#COMPRESSION_OPTIONS=() #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-greeting
no-permission-warning no-permission-warning
lock-never
#keyserver-options timeout=10 #keyserver-options timeout=10
keyserver hkps://hkps.pool.sks-keyservers.net:443 keyserver hkps://hkps.pool.sks-keyservers.net:443
#keyserver hkp://pgp.mit.edu:11371 #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] [Service]
Type=simple Type=simple
ExecStart=/usr/bin/wayvnc ExecStart=/usr/bin/wayvnc
Environment="WAYLAND_DISPLAY=wayland-1"
Restart=on-failure Restart=on-failure
RestartSec=1 RestartSec=1
TimeoutStopSec=10 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 PageSize=7
# Enable Spell # Enable Spell
SpellEnabled=True SpellEnabled=True
# Enable Symbols # Enable Emoji
SymbolsEnabled=True EmojiEnabled=True
# Enable Chaizi # Enable Chaizi
ChaiziEnabled=True ChaiziEnabled=True
# Enable Characters in Unicode CJK Extension B # Enable Characters in Unicode CJK Extension B
@ -20,8 +20,8 @@ CloudPinyinIndex=1
CloudPinyinAnimation=True CloudPinyinAnimation=True
# Always show Cloud Pinyin place holder # Always show Cloud Pinyin place holder
KeepCloudPinyinPlaceHolder=False KeepCloudPinyinPlaceHolder=False
# Preedit Mode # Show preedit within application
PreeditMode="Composing pinyin" PreeditInApplication=True
# Fix embedded preedit cursor at the beginning of the preedit # Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning=True PreeditCursorPositionAtBeginning=True
# Show complete pinyin in preedit # Show complete pinyin in preedit
@ -70,20 +70,6 @@ FirstRun=False
[NextCandidate] [NextCandidate]
0=Tab 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] [ChooseCharFromPhrase]
0=bracketleft 0=bracketleft
1=bracketright 1=bracketright
@ -91,10 +77,17 @@ FirstRun=False
[FilterByStroke] [FilterByStroke]
0=grave 0=grave
[QuickPhraseTriggerRegex] [QuickPhrase trigger]
0=.(/|@)$ 0=www.
1=^(www|bbs|forum|mail|bbs)\\. 1=ftp.
2=^(http|https|ftp|telnet|mailto): 2=http:
3=mail.
4=bbs.
5=forum.
6=https:
7=ftp:
8=telnet:
9=mailto:
[Fuzzy] [Fuzzy]
# ue -> ve # ue -> ve
@ -133,6 +126,4 @@ L_N=False
S_SH=False S_SH=False
# z <-> zh # z <-> zh
Z_ZH=False Z_ZH=False
# Correction Layout
Correction=None

View File

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

View File

@ -7,7 +7,7 @@ border-size=1
border-color=#333333 border-color=#333333
border-radius=3 border-radius=3
icons=0 icons=0
font=IBMPlexMono 11 font='IBM Plex Mono' 11
default-timeout=0 default-timeout=0
padding=10 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 true
set preview_images_method ueberzug set preview_images_method kitty
map DD shell trash %s map DD shell trash %s

View File

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

View File

@ -1,14 +1,12 @@
# qt5ct # qt5ct
export QT_QPA_PLATFORMTHEME=qt5ct export QT_QPA_PLATFORMTHEME=qt5ct
export QT_AUTO_SCREEN_SCALE_FACTOR=1 export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_STYLE_OVERRIDE=Adwaita-Dark
# waybar # waybar
export XDG_CURRENT_DESKTOP=sway export XDG_CURRENT_DESKTOP=sway
# gtk # gtk
export GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc export GTK_THEME=Materia:dark
export GTK_THEME=Adwaita:dark
# ibus # ibus
export GTK_IM_MODULE=fcitx 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 #!/usr/bin/env sh
set -ou pipefail set -ou pipefail
for dir in */; do # Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder
name=`echo "$dir" | sed 's/\/$//g'`
(cd $dir && echo "#EXTM3U" > "$name.m3u" && ls | grep -v -E '\.txt|\.m3u' >> "$name.m3u") 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 done
IFS=$SAVEIFS

View File

@ -1,4 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -eou pipefail 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 #!/usr/bin/env sh
set -eoux pipefail set -eoux pipefail
rm -rf ~/.cache
sudo rm -rf /var/cache/pacman/pkg/*
yay -Sc --noconfirm yay -Sc --noconfirm
sudo pacman -Sc --noconfirm
sudo journalctl --vacuum-size=1G sudo journalctl --vacuum-size=1G

View File

@ -2,5 +2,5 @@
# record video # record video
dir=~/Downloads/temp 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 xdg-open $dir

View File

@ -6,17 +6,11 @@ if [ $count != 0 ]; then
rename JPG jpg *.JPG rename JPG jpg *.JPG
fi 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 # remove exif except orientation from .jpg
count=`ls -1 *.jpg 2>/dev/null | wc -l` count=`ls -1 *.jpg 2>/dev/null | wc -l`
if [ $count != 0 ]; then if [ $count != 0 ]; then
for i in *.jpg; do for i in *.jpg; do
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i" exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done done
fi fi
@ -30,7 +24,7 @@ fi
count=`ls -1 *.png 2>/dev/null | wc -l` count=`ls -1 *.png 2>/dev/null | wc -l`
if [ $count != 0 ]; then if [ $count != 0 ]; then
for i in *.png; do for i in *.png; do
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i" exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done done
fi 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 #!/usr/bin/env bash
set -euox pipefail set -euo pipefail
pkill -f blueman-manager || true
echo stopping bluetooth... echo stopping bluetooth...
sudo systemctl stop bluetooth-autoconnect
sudo systemctl stop bluetooth sudo systemctl stop bluetooth
sudo modprobe -r btusb sudo rmmod btusb
echo starting bluetooth... echo starting bluetooth...
sudo modprobe btusb sudo modprobe btusb
sudo systemctl start bluetooth 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 \ # --embed-thumbnail \
# --audio-format opus \ # --audio-format opus \
yt-dlp \ youtube-dl \
--ignore-errors \ --ignore-errors \
-f bestaudio \ -f bestaudio \
--rm-cache-dir \ --rm-cache-dir \

View File

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

View File

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