Compare commits

..

33 Commits

Author SHA1 Message Date
33a73e4bf6 fix music scripts 2025-05-05 09:23:23 -04:00
70bac5be34 add gaming mouse 2024-12-02 14:09:18 -05:00
59f0106d5e tweak song script 2024-12-02 14:09:18 -05:00
777b011479 update monitor config 2024-11-29 22:15:33 -05:00
acab78d596 add new changes 2024-11-02 15:38:28 -04:00
a30bef3b29 improve scripts 2024-11-02 15:38:09 -04:00
ec66d63089 update packages 2024-09-21 15:56:51 -04:00
1739580bb2 improve replaygain tagging 2024-09-21 15:56:51 -04:00
1244faa0e9 add replaygain tagger 2024-09-21 15:56:51 -04:00
85823dc511 update fcitx5 config 2024-09-21 15:56:51 -04:00
2d16fe1338 improve scripts 2024-09-21 15:56:51 -04:00
b555b50451 improve sway locking 2024-09-21 15:56:51 -04:00
42278169d5 improve scripts 2024-09-21 15:56:51 -04:00
50087596d0 update fcitx5 config 2024-05-22 15:49:32 -04:00
6a91454943 use dark mode for qt5 and 6 2024-05-22 15:48:58 -04:00
8bcf1a838f update packages 2024-05-22 15:43:29 -04:00
0460efb2e5 add neovim settings 2024-05-22 15:40:44 -04:00
dcf6c34fec improve scripts 2024-05-08 14:25:20 -04:00
fee028a501 add sudoers 2024-05-08 14:24:25 -04:00
3b2b41703f update packages 2024-05-08 14:24:25 -04:00
e56e0e41d2 add bootloader entries 2024-05-08 14:24:25 -04:00
c92d6e43f5 switch to alacritty to fix lag bug for now 2024-05-08 14:24:25 -04:00
262e95e42e remove some unused scripts 2024-05-02 22:41:20 -04:00
1f800423ec improve bluetooth restart script 2024-05-02 22:41:20 -04:00
6a242b158e add standardize-music script 2024-05-02 22:41:20 -04:00
09fea918af use yt-dlp 2024-03-22 16:22:38 -04:00
91ed57b89f improve wayvnc integration 2024-03-22 16:22:21 -04:00
def626a207 fix media kanshi config 2024-03-01 18:51:37 -05:00
6529a5f7f2 remove more packages 2024-01-21 12:00:06 -05:00
6003c3df32 update packages 2024-01-21 11:41:54 -05:00
1738913e09 remove broken screen record script 2024-01-21 11:41:39 -05:00
443d10db43 update pinyin config 2024-01-21 11:40:36 -05:00
157509fdba remove pipewire-media-session 2024-01-21 11:40:04 -05:00
41 changed files with 369 additions and 327 deletions

View File

@ -0,0 +1,5 @@
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux-fallback.img
options rd.luks.name=3927d3f3-175f-4b72-9e05-395ef5664c81=cryptlvm rd.luks.options=discard root=/dev/ssd1/root resume=/dev/ssd1/swap rw add_efi_memmap kernel=30

5
boot/loader/entries/arch.conf Executable file
View File

@ -0,0 +1,5 @@
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=3927d3f3-175f-4b72-9e05-395ef5664c81=cryptlvm rd.luks.options=discard root=/dev/ssd1/root resume=/dev/ssd1/swap rw add_efi_memmap kernel=30

View File

@ -1,6 +1,5 @@
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

1
etc/ssh/sshrc Normal file
View File

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

136
etc/sudoers Normal file
View File

@ -0,0 +1,136 @@
## 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,6 +5,7 @@ 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 Normal file → Executable file
View File

View File

@ -0,0 +1,3 @@
[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 Emoji # Enable Symbols
EmojiEnabled=True SymbolsEnabled=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
# Show preedit within application # Preedit Mode
PreeditInApplication=True PreeditMode="Composing pinyin"
# 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,6 +70,20 @@ 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
@ -126,4 +140,6 @@ 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,4 +1,4 @@
profile { profile {
output "LG Electronics LG IPS QHD 201NTPCGD520" enable scale 1.30 position 0,0 mode 2560x1440@60Hz output "LG Electronics LG IPS QHD 201NTPCGD520" enable scale 1.30 position 0,0 mode 2560x1440@75Hz
output "LG Electronics LG ULTRAWIDE 0x00000101" enable position 1968,0 mode 2560x1080@60Hz output "LG Electronics LG IPS QHD 309NTABDW064" enable scale 1.30 position 1974,0 mode 2560x1440@75Hz
} }

View File

@ -0,0 +1,3 @@
" 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 kitty set preview_images_method ueberzug
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 kitty set $term alacritty
set $menu rofi -show combi | xargs swaymsg exec -- set $menu rofi -show combi | xargs swaymsg exec --
# wallpaper # wallpaper
@ -43,8 +43,10 @@ exec_always {
# timeout # timeout
exec swayidle -w \ exec swayidle -w \
timeout 300 'playerctl -a pause && swaylock' \ timeout 300 'playerctl -a pause' \
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"'
@ -218,9 +220,6 @@ 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
@ -230,6 +229,9 @@ 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
@ -240,6 +242,13 @@ 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,12 +1,14 @@
# 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 GTK_THEME=Materia:dark export GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc
export GTK_THEME=Adwaita:dark
# ibus # ibus
export GTK_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx

7
home/default/scripts/add-song Executable file
View File

@ -0,0 +1,7 @@
#!/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

@ -1,23 +0,0 @@
#!/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

View File

@ -1,46 +0,0 @@
#!/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

@ -1,32 +0,0 @@
#!/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 Normal file → Executable file
View File

View File

@ -1,64 +1,8 @@
#!/usr/bin/env sh #!/usr/bin/env sh
set -ou pipefail set -ou pipefail
# Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder for dir in */; do
name=`echo "$dir" | sed 's/\/$//g'`
PLAYLIST_FOLDER="/home/default/Music/playlists/mpd" # Playlist folder for mpd (cd $dir && echo "#EXTM3U" > "$name.m3u" && ls | grep -v -E '\.txt|\.m3u' >> "$name.m3u")
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,7 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -eou pipefail set -eou pipefail
echo $(pacman -Qqe) | \ sudo bash -c 'echo $(pacman -Qqe) | tr " " "\n" | sort > /packages.txt'
tr " " "\n" | \
sort \
> /packages.txt

View File

@ -1,5 +0,0 @@
#!/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

@ -2,5 +2,5 @@
# record video # record video
dir=~/Downloads/temp dir=~/Downloads/temp
(cd $dir && wf-recorder -g "$(slurp)" --audio --file=$(date +%Y-%m-%d_%H-%m-%s).mp4) (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)
xdg-open $dir xdg-open $dir

View File

@ -6,11 +6,17 @@ 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
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i" /usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done done
fi fi
@ -24,7 +30,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
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i" /usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done done
fi fi

View File

@ -1,12 +0,0 @@
#!/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,12 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euox 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 rmmod btusb sudo modprobe -r btusb
echo starting bluetooth... echo starting bluetooth...
sudo modprobe btusb sudo modprobe btusb
sudo systemctl start bluetooth sudo systemctl start bluetooth
sudo systemctl start bluetooth-autoconnect sudo rfkill unblock bluetooth

View File

@ -1,16 +0,0 @@
#!/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

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

View File

@ -0,0 +1,53 @@
#!/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

21
home/default/scripts/sync-car Executable file
View File

@ -0,0 +1,21 @@
#!/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

@ -0,0 +1,21 @@
#!/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

@ -0,0 +1,9 @@
#!/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

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

View File

@ -1,5 +1,8 @@
#!/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

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

View File

@ -1,59 +0,0 @@
#!/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 \
youtube-dl \ yt-dlp \
--ignore-errors \ --ignore-errors \
-f bestaudio \ -f bestaudio \
--rm-cache-dir \ --rm-cache-dir \

View File

@ -1,15 +1,21 @@
adobe-source-han-sans-jp-fonts adobe-source-han-sans-jp-fonts
adobe-source-han-sans-kr-fonts 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 autoconf
automake automake
base base
base-devel
bash bash
bash-completion bash-completion
beets beets
@ -17,7 +23,6 @@ bind
binutils binutils
bison bison
blueman blueman
bluetooth-autoconnect
brightnessctl brightnessctl
bzip2 bzip2
calibre calibre
@ -26,19 +31,17 @@ ccache
cheese cheese
chromium chromium
cnrdrvcups-lb cnrdrvcups-lb
corectrl
coreutils coreutils
cowsay cowsay
cpupower
cpupower-gui
cryptsetup cryptsetup
cups cups
cups-pdf
darktable darktable
ddclient
device-mapper device-mapper
dhcpcd dhcpcd
dialog dialog
diffutils diffutils
dino
direnv direnv
downgrade downgrade
dxvk-bin dxvk-bin
@ -46,11 +49,9 @@ e2fsprogs
efibootmgr efibootmgr
electrum electrum
elinks elinks
emacs
esptool esptool
etcher-bin etcher-bin
evince evince
evolution
f2fs-tools f2fs-tools
fail2ban fail2ban
fakeroot fakeroot
@ -65,11 +66,9 @@ ffmpegthumbnailer
file file
filesystem filesystem
findutils findutils
firefox
flex 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
@ -80,15 +79,15 @@ fortune-mod-matrix
fortune-mod-portal-game fortune-mod-portal-game
fortune-mod-starwars fortune-mod-starwars
freecad freecad
fstl freerdp
fwbuilder fwbuilder
fwupd fwupd
gajim
gamemode gamemode
gawk gawk
gcc gcc
gcc-libs gcc-libs
gdlauncher-bin gdlauncher-bin
gdm
gedit gedit
geoclue geoclue
gettext gettext
@ -102,7 +101,9 @@ gnome-sound-recorder
gnu-free-fonts gnu-free-fonts
gnu-netcat gnu-netcat
gnutls gnutls
google-chrome
gparted gparted
gphoto2
grep grep
grim grim
grub grub
@ -113,49 +114,41 @@ gst-plugins-bad
gst-plugins-ugly gst-plugins-ugly
gstreamer-vaapi gstreamer-vaapi
gtk-engine-murrine gtk-engine-murrine
gutenprint gvfs-gphoto2
gwakeonlan gwakeonlan
gzip gzip
handbrake handbrake
hddtemp hddtemp
hexedit
highlight highlight
htop htop
hugin hugin
hunspell-en_us hunspell-en_us
ibus-uniemoji-git
inkscape inkscape
inotify-tools inotify-tools
iotop iotop
iperf
iproute2 iproute2
iputils iputils
itstool itstool
iucode-tool
iw iw
jammr jammr
jansson 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-giflib
lib32-gnutls lib32-gnutls
lib32-gst-plugins-base-libs lib32-gst-plugins-base-libs
lib32-gtk3
lib32-libappindicator-gtk2
lib32-libappindicator-gtk3
lib32-libgpg-error lib32-libgpg-error
lib32-libjpeg-turbo
lib32-libldap lib32-libldap
lib32-libpng lib32-libpng
lib32-libpulse lib32-libpulse
@ -169,7 +162,6 @@ lib32-mpg123
lib32-ocl-icd lib32-ocl-icd
lib32-openal lib32-openal
lib32-sqlite lib32-sqlite
lib32-v4l-utils
lib32-vkd3d lib32-vkd3d
lib32-vulkan-icd-loader lib32-vulkan-icd-loader
libappindicator-gtk3 libappindicator-gtk3
@ -187,6 +179,7 @@ libreoffice-extension-languagetool
libreoffice-still libreoffice-still
libretro-overlays libretro-overlays
libretro-shaders-slang libretro-shaders-slang
librewolf-bin
libva-mesa-driver libva-mesa-driver
libva-utils libva-utils
libvncserver libvncserver
@ -220,7 +213,6 @@ mousetweaks
mpc mpc
mpv mpv
mpv-mpris mpv-mpris
mqtt-explorer
mumble mumble
namcap namcap
nano nano
@ -230,7 +222,7 @@ neofetch
neovim neovim
networkmanager networkmanager
network-manager-applet network-manager-applet
nginx-mod-fancyindex networkmanager-openvpn
nmap nmap
nomacs nomacs
noto-fonts-cjk noto-fonts-cjk
@ -239,17 +231,15 @@ noto-fonts-extra
ntfs-3g ntfs-3g
ntp ntp
nvtop nvtop
obs-studio
ocl-icd ocl-icd
odt2txt odt2txt
opencc opencc
opendesktop-fonts opendesktop-fonts
openh264
openshot openshot
opustags opustags
overdue overdue
package-query package-query
pacman-contrib
paman
papirus-icon-theme papirus-icon-theme
patch patch
pavucontrol pavucontrol
@ -258,6 +248,7 @@ perl
perl-image-exiftool perl-image-exiftool
perl-rename perl-rename
picard picard
piper
pipewire-alsa pipewire-alsa
pipewire-jack pipewire-jack
pipewire-pulse pipewire-pulse
@ -268,6 +259,7 @@ playerctl
playonlinux playonlinux
polkit-gnome polkit-gnome
postgresql-libs postgresql-libs
prismlauncher
procps-ng procps-ng
psensor psensor
psmisc psmisc
@ -284,7 +276,6 @@ python-pyenchant
python-pylast python-pylast
python-pynvim python-pynvim
python-wxpython python-wxpython
qbittorrent
qt5ct qt5ct
qt5-graphicaleffects qt5-graphicaleffects
qt5-imageformats qt5-imageformats
@ -297,6 +288,7 @@ remmina
retroarch retroarch
retroarch-assets-xmb retroarch-assets-xmb
rofi rofi
rsgain
rsnapshot rsnapshot
rsync rsync
samsung_magician-consumer-ssd samsung_magician-consumer-ssd
@ -305,43 +297,35 @@ sed
shadow shadow
shellcheck shellcheck
shotcut shotcut
signal-desktop
simple-scan simple-scan
slurp slurp
smartmontools smartmontools
s-nail s-nail
sndio sndio
speedtest-cli
ssh-audit ssh-audit
sshpass sshpass
stalonetray stalonetray
steam steam
steam-native-runtime
sudo sudo
sway sway
swaybg swaybg
swayidle swayidle
swaylock swaylock
swayrst-git
syncplay syncplay
syncthing syncthing
syncthing-gtk syncthing-gtk
sysfsutils sysfsutils
systemd-resolvconf
systemd-sysvcompat systemd-sysvcompat
systemd-ui systemd-ui
tar tar
telegram-desktop telegram-desktop
texinfo texinfo
texlive-basic
texlive-bibtexextra
texlive-bin texlive-bin
texlive-fontsextra thunderbird
texlive-formatsextra
texlive-games
texlive-humanities
texlive-latexextra
texlive-mathscience
texlive-music
texlive-pictures
texlive-pstricks
texlive-publishers
tlp tlp
tmux tmux
traceroute traceroute
@ -355,12 +339,14 @@ ttf-ms-fonts
ttf-opensans ttf-opensans
ttf-symbola-free ttf-symbola-free
ttf-ubuntu-font-family ttf-ubuntu-font-family
ueberzugpp
unicode-emoji unicode-emoji
upd72020x-fw upd72020x-fw
usbutils usbutils
util-linux util-linux
vi vi
vim vim
visual-studio-code-bin
vkd3d vkd3d
vlc vlc
vnstat vnstat
@ -369,6 +355,7 @@ vulkan-mesa-layers
vulkan-radeon vulkan-radeon
vulkan-tools vulkan-tools
w3m w3m
wacomtablet
wakeonlan wakeonlan
waybar waybar
wayland-utils wayland-utils
@ -396,7 +383,6 @@ xorg-xinput
xorg-xwayland xorg-xwayland
xsel xsel
xterm xterm
yay-bin yay
youtube-dl-git
yt-dlp yt-dlp
zimg 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)
- kitty (terminal) - alacritty (terminal)
- ranger (file browser) - ranger (file browser)
- rofi (launcher) - rofi (launcher)
- mako (notification daemon) - mako (notification daemon)