Compare commits

..

34 Commits

Author SHA1 Message Date
2cafd2fb75 add laptop changes 2025-05-31 22:40:46 -04:00
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
42 changed files with 404 additions and 439 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=e7ff5b82-f145-4fae-be2a-388314977783=cryptlvm rd.luks.options=discard root=/dev/ssd/root resume=/dev/ssd/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=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=(piix ide_disk reiserfs) # MODULES=(usbhid xhci_hcd)
MODULES=() MODULES=()
# BINARIES # BINARIES
@ -29,31 +29,32 @@ 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 block filesystems) # HOOKS=(base udev autodetect modconf block filesystems fsck)
# #
## 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 block filesystems) # HOOKS=(base udev modconf block filesystems fsck)
# #
## This setup assembles a pata mdadm array with an encrypted root FS. ## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. ## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev block mdadm encrypt filesystems) # HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
# #
## This setup loads an lvm2 volume group on a usb device. ## This setup loads an lvm2 volume group.
# HOOKS=(base udev block lvm2 filesystems) # HOOKS=(base udev modconf block lvm2 filesystems fsck)
# #
## 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, fsck and shutdown hooks. # usr and fsck hooks.
HOOKS=(base udev systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems resume fsck) HOOKS=(base udev systemd autodetect modconf keyboard keymap block sd-encrypt lvm2 filesystems fsck)
# COMPRESSION # COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression # Use this to compress the initramfs image. By default, zstd 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"
@ -64,3 +65,9 @@ HOOKS=(base udev systemd autodetect keyboard sd-vconsole modconf block sd-encryp
# 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,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
@ -77,17 +91,10 @@ FirstRun=False
[FilterByStroke] [FilterByStroke]
0=grave 0=grave
[QuickPhrase trigger] [QuickPhraseTriggerRegex]
0=www. 0=.(/|@)$
1=ftp. 1=^(www|bbs|forum|mail|bbs)\\.
2=http: 2=^(http|https|ftp|telnet|mailto):
3=mail.
4=bbs.
5=forum.
6=https:
7=ftp:
8=telnet:
9=mailto:
[Fuzzy] [Fuzzy]
# ue -> ve # ue -> ve
@ -126,4 +133,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,8 @@
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
}
profile {
output "BOE 0x0BCA Unknown" enable scale 1.75 position 0,0 mode 2256x1504@59.999Hz
} }

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,75 +1,58 @@
adobe-source-han-sans-jp-fonts 7zip
adobe-source-han-sans-kr-fonts adwaita-dark
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
bash base-devel
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
coreutils code
cowsay cowsay
cpupower cpupower
cpupower-gui cpupower-gui
cryptsetup
cups
cups-pdf
darktable darktable
ddclient
device-mapper
dhcpcd dhcpcd
dialog dialog
diffutils dino
direnv direnv
dosfstools
downgrade downgrade
dxvk-bin dxvk-bin
e2fsprogs
efibootmgr efibootmgr
electrum electrum
elinks elinks
emacs esp-idf
esptool
etcher-bin etcher-bin
evince evince
evolution exfat-utils
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
@ -79,119 +62,81 @@ 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
fstl freerdp
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
grep gphoto2
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
gutenprint gtk-vnc
gvfs-gphoto2
gwakeonlan gwakeonlan
gzip hamradio-menus
handbrake handbrake
hddtemp hddtemp
hexedit
highlight highlight
htop htop
hugin hugin
hunspell-en_us hunspell-en_us
ibus-uniemoji-git iio-sensor-proxy
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
libva-mesa-driver librewolf-bin
libva-utils libva-utils
libvncserver libvncserver
libxkbcommon
licenses
linux linux
linux-firmware linux-firmware
linux-firmware-qlogic linux-firmware-qlogic
@ -202,8 +147,6 @@ lshw
lsp-plugins lsp-plugins
ltunify-git ltunify-git
lvm2 lvm2
m4
make
mako mako
mallard-ducktype mallard-ducktype
man-db man-db
@ -216,11 +159,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
@ -230,7 +173,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,55 +182,42 @@ 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
procps-ng prismlauncher
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-pycryptodome python-pyasyncore
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
@ -297,24 +227,20 @@ remmina
retroarch retroarch
retroarch-assets-xmb retroarch-assets-xmb
rofi rofi
rsnapshot rsgain
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
@ -324,24 +250,9 @@ syncplay
syncthing syncthing
syncthing-gtk syncthing-gtk
sysfsutils sysfsutils
systemd-sysvcompat
systemd-ui systemd-ui
tar
telegram-desktop telegram-desktop
texinfo thunderbird
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
@ -350,15 +261,13 @@ 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
@ -369,6 +278,7 @@ vulkan-mesa-layers
vulkan-radeon vulkan-radeon
vulkan-tools vulkan-tools
w3m w3m
wacomtablet
wakeonlan wakeonlan
waybar waybar
wayland-utils wayland-utils
@ -376,8 +286,6 @@ wayvnc
wd719x-firmware wd719x-firmware
wdisplays wdisplays
wf-recorder wf-recorder
wget
which
wine-staging wine-staging
winetricks winetricks
wireguard-tools wireguard-tools
@ -385,9 +293,8 @@ wl-clipboard
wol wol
wpa_supplicant wpa_supplicant
xclip xclip
xdg-desktop-portal xdg-desktop-portal-gtk
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
xf86-input-wacom
xf86-video-amdgpu xf86-video-amdgpu
xfsprogs xfsprogs
xorg-xdpyinfo xorg-xdpyinfo
@ -397,6 +304,4 @@ 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)
- kitty (terminal) - alacritty (terminal)
- ranger (file browser) - ranger (file browser)
- rofi (launcher) - rofi (launcher)
- mako (notification daemon) - mako (notification daemon)