sync
parent
5036284a9d
commit
f0233090d3
|
@ -63,7 +63,7 @@
|
|||
"F164 709E 5FC7 B32B AEC7 9F37 1F2E 76AC E3F5 31C8"))))
|
||||
(channel
|
||||
(name 'ajattix)
|
||||
(url "http://ajattix.loophole.site/hashirama/ajattix.git")
|
||||
(url "https://git.ajattix.org/hashirama/ajattix.git")
|
||||
(branch "main")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
|
|
56
config.scm
56
config.scm
|
@ -15,8 +15,11 @@
|
|||
(rosenthal packages binaries)
|
||||
(rosenthal packages emacs-xyz)
|
||||
(guix transformations)
|
||||
(gnu packages python-xyz)
|
||||
(gnu packages audio)
|
||||
(gnu packages librewolf)
|
||||
(gnu packages sync)
|
||||
(gnu packages qt)
|
||||
(gnu packages gdb)
|
||||
(gnu packages graphics)
|
||||
(gnu packages java)
|
||||
|
@ -31,6 +34,9 @@
|
|||
(rde features bluetooth)
|
||||
(gnu packages gcc)
|
||||
(gnu packages pulseaudio)
|
||||
(gnu packages enchant)
|
||||
(gnu packages hunspell)
|
||||
(gnu packages upnp)
|
||||
(gnu packages tor)
|
||||
(gnu packages commencement)
|
||||
(gnu packages guile-xyz)
|
||||
|
@ -125,7 +131,10 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
(firmware (list linux-firmware))
|
||||
|
||||
(locale "en_US.utf8")
|
||||
(kernel-arguments (list "modprobe.blacklist=hid-nintendo"))
|
||||
(kernel-arguments (list "modprobe.blacklist=hid-nintendo"
|
||||
"noatime"
|
||||
|
||||
))
|
||||
(timezone "America/Manaus")
|
||||
(keyboard-layout (keyboard-layout "us"))
|
||||
(host-name "lisp-machine")
|
||||
|
@ -160,13 +169,20 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
cmus
|
||||
emacs-ox-hugo
|
||||
sbcl-coleslaw
|
||||
numix-gtk-theme
|
||||
tor
|
||||
ibus
|
||||
python-psutil
|
||||
python-schedule
|
||||
xsel
|
||||
gerbera
|
||||
ibus
|
||||
dconf
|
||||
gimp
|
||||
blender
|
||||
gimp-resynthesizer
|
||||
wmctrl
|
||||
imagemagick
|
||||
zpaq
|
||||
libwebp
|
||||
libreoffice
|
||||
librewolf
|
||||
|
@ -174,6 +190,7 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
ardour
|
||||
noise-repellent
|
||||
;;
|
||||
;; nextcloud-client
|
||||
xprop
|
||||
fzf
|
||||
zstd
|
||||
|
@ -186,6 +203,7 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
xrdb
|
||||
noisetorch
|
||||
mpv
|
||||
qtwebengine ;; required by some applications, like anki
|
||||
;;emasc-everywhere
|
||||
xdotool
|
||||
xprop
|
||||
|
@ -216,6 +234,8 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
bluez
|
||||
blueman
|
||||
;; ime
|
||||
enchant
|
||||
hunspell
|
||||
fcitx5
|
||||
fcitx5-gtk
|
||||
fcitx5-qt
|
||||
|
@ -260,15 +280,19 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
;; font-apple-color-emoji
|
||||
picom
|
||||
feh
|
||||
xmodmap
|
||||
;; ================
|
||||
;; haskell
|
||||
cabal-install
|
||||
;; deps for xmonad
|
||||
xmonad
|
||||
xmobar
|
||||
ghc ;; ridiculous, gcc and ghc are runtime dependencies , yet people didnt put in the package description
|
||||
ghc-xmonad-contrib
|
||||
;; ==================
|
||||
gcc
|
||||
gcc-toolchain
|
||||
xmessage
|
||||
ghc-xmonad-contrib
|
||||
xmodmap
|
||||
rofi
|
||||
linux-libre-headers
|
||||
;;--------
|
||||
|
@ -284,6 +308,7 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
;; Below is the list of system services. To search for available
|
||||
;; services, run 'guix system search KEYWORD' in a terminal.
|
||||
(services
|
||||
|
||||
(append (list (simple-service 'my-zfs-loader
|
||||
kernel-module-loader-service-type
|
||||
'("zfs"))
|
||||
|
@ -302,8 +327,10 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
(compression-algorithm 'xz)
|
||||
(priority 100)))
|
||||
;; (service oci-forgejo-service-type)
|
||||
(set-xorg-configuration
|
||||
(xorg-configuration (keyboard-layout keyboard-layout)))
|
||||
(set-xorg-configuration
|
||||
(xorg-configuration
|
||||
|
||||
(keyboard-layout keyboard-layout)))
|
||||
(udev-rules-service '8bitdo %8bitdo-udev-rules)
|
||||
|
||||
(service nix-service-type)
|
||||
|
@ -316,7 +343,8 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
|
||||
)
|
||||
|
||||
%desktop-services)
|
||||
%desktop-services)
|
||||
|
||||
)
|
||||
|
||||
(bootloader (bootloader-configuration
|
||||
|
@ -347,16 +375,6 @@ KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3
|
|||
;; "223baecf-e5f4-453f-90c7-d33edbbae145"
|
||||
;; 'ext4))
|
||||
;; (type "ext4"))
|
||||
(file-system
|
||||
(mount-point "/mnt/Quartz")
|
||||
(device (uuid
|
||||
"b0e97572-255c-4f6e-9a0a-9a89ae99f1a5"
|
||||
'ext4))
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
(mount-point "/mnt/Sources")
|
||||
(device (uuid
|
||||
"c01d762b-0c91-43c0-9c80-e048c4abe939"
|
||||
'ext4))
|
||||
(type "ext4"))
|
||||
|
||||
|
||||
%base-file-systems)))
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
;; See the "Replicating Guix" section in the manual.
|
||||
|
||||
(use-modules (gnu home)
|
||||
(radix packages)
|
||||
(radix packages image-viewers)
|
||||
(gnu home services desktop)
|
||||
(gnu packages)
|
||||
(gnu services)
|
||||
|
@ -16,6 +18,7 @@
|
|||
(gnu packages ebook)
|
||||
(gnu home services syncthing)
|
||||
(gnu packages tor)
|
||||
(gnu packages sync)
|
||||
(gnu packages package-management)
|
||||
(gnu packages syncthing)
|
||||
(guix gexp)
|
||||
|
@ -121,6 +124,7 @@
|
|||
;;unrar
|
||||
qtmultimedia
|
||||
sylpheed
|
||||
zpaq
|
||||
;; xpad-module
|
||||
unzip
|
||||
zip
|
||||
|
@ -133,6 +137,7 @@
|
|||
gnupg
|
||||
xprop
|
||||
;;nicotine+
|
||||
nextcloud-client
|
||||
yt-dlp
|
||||
higan
|
||||
librewolf
|
||||
|
@ -200,10 +205,11 @@
|
|||
pavucontrol-qt
|
||||
mpv
|
||||
emacs
|
||||
ueberzug++
|
||||
(specifications->packages
|
||||
(list "steam"
|
||||
"guile"
|
||||
"ueberzug++"
|
||||
;; "ueberzug++"
|
||||
"fcitx5-gtk4"
|
||||
"fcitx5-qt"
|
||||
"fcitx5-gtk"
|
||||
|
@ -212,6 +218,7 @@
|
|||
"unrar"
|
||||
"nicotine+"
|
||||
"librewolf"
|
||||
"zpaq"
|
||||
"gimp"
|
||||
"foliate"
|
||||
"tor-client"
|
||||
|
@ -230,10 +237,12 @@
|
|||
("update" . "guix pull && sudo guix system reconfigure .config/guix/config.scm")
|
||||
("lf" . "~/.local/bin/lf/lfrun")
|
||||
("ps2" . "nohup flatpak run --filesystem=/mnt/Data net.pcsx2.PCSX2 > /dev/null 2>&1 &")
|
||||
("ocr" . "sudo /nix/var/nix/profiles/default/bin/manga_ocr")
|
||||
("ll" . "ls -l")
|
||||
("ls" . "ls -p --color=auto")
|
||||
("run_code" . "g++ -o main main.cc -Ofast -std=c++23 -s -flto -march=native -I ~/dev/ajatt/hakurei/include/ && ./main")
|
||||
("rgf" . "rg --files | rg")
|
||||
("dufh" . "/nix/var/nix/profiles/default/bin/duf -hide-fs tmpfs,ext4,devtmpfs,vfat")
|
||||
("mpv" . "mpv --audio-pitch-correction=yes --vf=setpts=PTS/1")
|
||||
("record" . "ffmpeg -f x11grab -r 23 -s 1366x768 -i $DISPLAY -f pulse -i nui_mic_remap -filter_complex '[1:a]volume=2.0[a]' -map 0:v -map '[a]' -c:v libx264 -pix_fmt yuv420p -preset ultrafast -crf 23 -y /tmp/output.mp4")
|
||||
("isolate" . "guix shell --container --network --preserve='^DISPLAY$' \
|
||||
|
|
|
@ -42,7 +42,7 @@ if [ ! -f "$input_file" ]; then
|
|||
fi
|
||||
|
||||
# Output folder and file paths
|
||||
output_folder="$HOME/Videos/converted_for_compatibility"
|
||||
output_folder="/mnt/Zonai/Videos/converted_for_compatibility"
|
||||
output_filename="compatible-$(basename "$input_file" | sed 's/[^a-zA-Z0-9._-]/_/g')"
|
||||
output_file="$output_folder/$output_filename"
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import zipfile
|
||||
from PIL import Image
|
||||
import sys
|
||||
from io import BytesIO
|
||||
|
||||
def extract_cover(epub, output_path, size):
|
||||
for fileinfo in epub.filelist:
|
||||
if fileinfo.filename.lower().endswith(('.jpg', '.jpeg', '.png')):
|
||||
cover = epub.open(fileinfo.filename)
|
||||
im = Image.open(BytesIO(cover.read()))
|
||||
im.thumbnail((size, size), Image.LANCZOS)
|
||||
im.save(os.path.join(output_path, os.path.basename(input_file) + '.png'), "PNG")
|
||||
return True
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
input_file = sys.argv[1]
|
||||
output_path = os.environ.get('THUMBNAIL_DIR', os.path.dirname(input_file))
|
||||
size = int(sys.argv[2])
|
||||
|
||||
epub = zipfile.ZipFile(input_file, "r")
|
||||
if extract_cover(epub, output_path, size):
|
||||
exit(0)
|
||||
else:
|
||||
print("Error extracting cover")
|
||||
exit(1)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
while true
|
||||
do
|
||||
PID=$(pgrep element)
|
||||
if [ -n "$PID" ]; then
|
||||
echo "Killing element (PID: $PID)"
|
||||
kill -9 $PID
|
||||
echo "element killed successfully!"
|
||||
fi
|
||||
sleep 1
|
||||
done
|
|
@ -0,0 +1,5 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
LOG_FILE="/tmp/element_exit.log"
|
||||
|
||||
setsid nohup ~/.local/bin/focus.sh > "$LOG_FILE" 2>&1 &
|
|
@ -0,0 +1,3 @@
|
|||
export LD_LIBRARY_PATH=~/Documents/lib
|
||||
|
||||
~/.local/bin/gd-tools
|
Binary file not shown.
|
@ -0,0 +1,5 @@
|
|||
export GTK_IM_MODULE=fcitx
|
||||
export QT_IM_MODULE=fcitx
|
||||
export XMODIFIERS=@im=fcitx
|
||||
|
||||
goldendict
|
Binary file not shown.
|
@ -51,10 +51,16 @@ case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
|
|||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.epub)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
epub-thumbnailer "$1" "$CACHE" 1024
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
|
||||
[ ! -f "$CACHE" ] && \
|
||||
~/.local/bin/epub_thumbnailer.sh "$1" "$CACHE" 1024
|
||||
if [ -f "$CACHE" ]; then
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
else
|
||||
print "Error extracting cover"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*.cbz|*.cbr|*.cbt)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
comicthumb "$1" "$CACHE" 1024
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/sh
|
||||
|
||||
image() {
|
||||
if [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ]; then
|
||||
printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG"
|
||||
exit 1
|
||||
else
|
||||
chafa "$1" -s "$4x"
|
||||
fi
|
||||
}
|
||||
|
||||
batorcat() {
|
||||
file="$1"
|
||||
shift
|
||||
if command -v bat > /dev/null 2>&1
|
||||
then
|
||||
bat --color=always --style=plain --pager=never "$file" "$@"
|
||||
else
|
||||
cat "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))"
|
||||
|
||||
case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
|
||||
*.tgz|*.tar.gz) tar tzf "$1" ;;
|
||||
*.tar.bz2|*.tbz2) tar tjf "$1" ;;
|
||||
*.tar.txz|*.txz) xz --list "$1" ;;
|
||||
*.tar) tar tf "$1" ;;
|
||||
*.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;;
|
||||
*.rar) unrar l "$1" ;;
|
||||
*.md) glow -s dark "$1" ;;
|
||||
*.7z) 7z l "$1" ;;
|
||||
*.[1-8]) man "$1" | col -b ;;
|
||||
*.o) nm "$1";;
|
||||
*.torrent) transmission-show "$1" ;;
|
||||
*.iso) iso-info --no-header -l "$1" ;;
|
||||
*.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;;
|
||||
*.doc) catdoc "$1" ;;
|
||||
*.docx) docx2txt "$1" - ;;
|
||||
*.xml|*.html) w3m -dump "$1";;
|
||||
*.xls|*.xlsx)
|
||||
ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batorcat --language=csv
|
||||
;;
|
||||
*.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka)
|
||||
exiftool "$1"
|
||||
;;
|
||||
*.pdf)
|
||||
[ ! -f "${CACHE}.jpg" ] && \
|
||||
pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
|
||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.epub)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
epub-thumbnailer "$1" "$CACHE" 1024
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.cbz|*.cbr|*.cbt)
|
||||
[ ! -f "$CACHE" ] && \
|
||||
comicthumb "$1" "$CACHE" 1024
|
||||
image "$CACHE" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
|
||||
[ ! -f "${CACHE}.jpg" ] && \
|
||||
ffmpegthumbnailer -i "$1" -o "${CACHE}.jpg" -s 0 -q 5
|
||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.gif|*.jfif)
|
||||
image "$1" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.svg)
|
||||
[ ! -f "${CACHE}.jpg" ] && \
|
||||
convert "$1" "${CACHE}.jpg"
|
||||
image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
|
||||
;;
|
||||
*.ino)
|
||||
batorcat --language=cpp "$1"
|
||||
;;
|
||||
*)
|
||||
batorcat "$1"
|
||||
;;
|
||||
esac
|
||||
exit 0
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
MULLVAD="/nix/var/nix/profiles/default/bin/mullvad-daemon"
|
||||
LOG_FILE="/tmp/mullvad.log"
|
||||
|
||||
|
||||
# Create the log directory if it doesn't exist
|
||||
mkdir -p "$(dirname "$LOG_FILE")"
|
||||
|
||||
|
||||
# Check if Navidrome is already running
|
||||
if pgrep -x "mullvad" > /dev/null; then
|
||||
echo "mullvad is already running. Exiting."
|
||||
else
|
||||
# Run Navidrome command, redirecting output to the log file and detaching it from the terminal
|
||||
setsid nohup $MULLVAD > "$LOG_FILE" 2>&1 &
|
||||
echo "mullvad started and detached from the terminal."
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -1,19 +1,46 @@
|
|||
#!/bin/sh
|
||||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
export THUMBNAIL_DIR="$HOME/.cache/lf/epub"
|
||||
|
||||
set -e
|
||||
|
||||
# Define cleanup function to close file descriptor and remove FIFO file
|
||||
cleanup() {
|
||||
exec 3>&-
|
||||
rm "$FIFO_UEBERZUG"
|
||||
rm "$FIFO_UEBERZUG"
|
||||
}
|
||||
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
lf "$@"
|
||||
else
|
||||
[ ! -d "$HOME/.cache/lf" ] && mkdir --parents "$HOME/.cache/lf"
|
||||
export FIFO_UEBERZUG="$HOME/.cache/lf/ueberzug-$$"
|
||||
mkfifo "$FIFO_UEBERZUG"
|
||||
ueberzug layer -s <"$FIFO_UEBERZUG" -p json &
|
||||
exec 3>"$FIFO_UEBERZUG"
|
||||
trap cleanup EXIT
|
||||
lf "$@" 3>&-
|
||||
fi
|
||||
# Check if running over SSH and exit if true
|
||||
[[ -n $SSH_CLIENT || -n $SSH_TTY ]] && exit 0
|
||||
|
||||
# Create necessary directories
|
||||
[[ ! -d $HOME/.cache/lf ]] && mkdir -p "$HOME/.cache/lf"
|
||||
export FIFO_UEBERZUG="$HOME/.cache/lf/ueberzug-$$"
|
||||
mkfifo "$FIFO_UEBERZUG"
|
||||
|
||||
# Start ueberzugpp in background
|
||||
ueberzugpp layer -s <"$FIFO_UEBERZUG" -p json &
|
||||
exec 3>"$FIFO_UEBERZUG"
|
||||
trap cleanup EXIT
|
||||
|
||||
case "$1" in
|
||||
*.epub)
|
||||
EPUB_FILE="$1"
|
||||
THUMBNAIL_DIR="$HOME/.cache/lf/epub"
|
||||
mkdir -p "$THUMBNAIL_DIR"
|
||||
THUMBNAIL_PATH="${THUMBNAIL_DIR}/${EPUB_FILE%.epub}.png"
|
||||
|
||||
# Check if the thumbnail exists, if not, generate it
|
||||
if [[ ! -f $THUMBNAIL_PATH ]]; then
|
||||
$HOME/.config/lf/epub_thumbnailer.sh "$EPUB_FILE" 256
|
||||
fi
|
||||
|
||||
# Open the generated thumbnail with nsxiv
|
||||
nsxiv "$THUMBNAIL_DIR" &
|
||||
# just a workaround, will fix to display the file instead of the
|
||||
# whole folder
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
export QT_XCB_GL_INTEGRATION=none
|
||||
export QTWEBENGINE_CHROMIUM_FLAGS="--disable-seccomp-filter-sandbox"
|
||||
export DISABLE_QT5_COMPAT=1
|
||||
|
||||
# Run Anki with nohup, redirecting output to a log file
|
||||
nohup flatpak run net.ankiweb.Anki > anki.log 2>&1 &
|
||||
nohup /nix/var/nix/profiles/default/bin/anki-bin > anki.log 2>&1 &
|
||||
|
||||
# Disown the process to remove it from the shell's job table
|
||||
disown
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
|
||||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
send_most_recent_image_via_telegram() {
|
||||
# Specify the correct folder paths
|
||||
folder_path_x="/mnt/Data/mpv-screenshots/"
|
||||
folder_path_y="/mnt/Data/mpv-screenshots/screenshots/"
|
||||
|
||||
# Check if both folders exist
|
||||
if [ ! -d "$folder_path_x" ] || [ ! -d "$folder_path_y" ]; then
|
||||
echo "Error: One or both folders do not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Get the most recent file from FolderX
|
||||
most_recent_x=$(find "$folder_path_x" -maxdepth 1 \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o -iname "*.bmp" -o -iname "*.tiff" \) -exec stat --format='%Y %n' {} + | sort -nr | head -n 1)
|
||||
|
||||
# Get the most recent file from FolderY
|
||||
most_recent_y=$(find "$folder_path_y" -maxdepth 1 \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o -iname "*.bmp" -o -iname "*.tiff" \) -exec stat --format='%Y %n' {} + | sort -nr | head -n 1)
|
||||
|
||||
# Compare the modification times and choose the most recent file
|
||||
if [ "$(echo "$most_recent_x" | cut -d' ' -f 1)" -gt "$(echo "$most_recent_y" | cut -d' ' -f 1)" ]; then
|
||||
most_recent_file="$most_recent_x"
|
||||
else
|
||||
most_recent_file="$most_recent_y"
|
||||
fi
|
||||
|
||||
# Check if telegram-desktop is installed
|
||||
if ! command -v telegram-desktop &> /dev/null; then
|
||||
echo "Error: telegram-desktop is not installed."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Activate telegram-desktop window
|
||||
wmctrl -x -a telegram-desktop
|
||||
|
||||
# Send the most recent image file via telegram-desktop
|
||||
telegram-desktop -sendpath "$(echo "$most_recent_file" | cut -d' ' -f 2-)"
|
||||
echo "Sent most recent image file via telegram-desktop: $(echo "$most_recent_file" | cut -d' ' -f 2-)"
|
||||
}
|
||||
|
||||
# Execute the function
|
||||
send_most_recent_image_via_telegram
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
|
||||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
send_most_recent_video_via_telegram() {
|
||||
# Specify the correct folder path
|
||||
folder_path="$HOME/Videos"
|
||||
|
||||
# Check if the folder exists
|
||||
if [ ! -d "$folder_path" ]; then
|
||||
echo "Error: Folder does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check if the folder is empty
|
||||
if [ -z "$(find "$folder_path" -maxdepth 1 \( -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.avi" -o -iname "*.mov" -o -iname "*.flv" -o -iname "*.wmv" -o -iname "*.mpg" -o -iname "*.mpeg" -o -iname "*.webm" \) -print -quit)" ]; then
|
||||
echo "Error: Folder does not contain any video files."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Get the most recent video file
|
||||
most_recent_video=$(find "$folder_path" -maxdepth 1 \( -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.avi" -o -iname "*.mov" -o -iname "*.flv" -o -iname "*.wmv" -o -iname "*.mpg" -o -iname "*.mpeg" -o -iname "*.webm" \) -exec stat --format='%Y %n' {} + | sort -nr | head -n 1 | cut -d ' ' -f 2-)
|
||||
file_path="$most_recent_video"
|
||||
|
||||
# Check if telegram-desktop is installed
|
||||
if ! command -v telegram-desktop &> /dev/null; then
|
||||
echo "Error: telegram-desktop is not installed."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Activate telegram-desktop window
|
||||
wmctrl -x -a telegram-desktop
|
||||
|
||||
# Send the most recent video file via telegram-desktop
|
||||
telegram-desktop -sendpath "$file_path"
|
||||
echo "Sent most recent video file via telegram-desktop: $file_path"
|
||||
}
|
||||
|
||||
# Execute the function
|
||||
send_most_recent_video_via_telegram
|
|
@ -0,0 +1,58 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
lua=$(which lua)
|
||||
pid=$$
|
||||
"$lua" <<EOF
|
||||
-- Set the directory containing the wallpapers
|
||||
local wallpaper_dir = "~/wallpapers"
|
||||
|
||||
-- Get a list of all files in the directory
|
||||
local files = {}
|
||||
for file in io.popen("find " .. wallpaper_dir .. " -type f -print0 | xargs -0 -I {} echo {}"):lines() do
|
||||
table.insert(files, file)
|
||||
end
|
||||
|
||||
print("Files:")
|
||||
for i, file in ipairs(files) do
|
||||
print(file)
|
||||
end
|
||||
|
||||
-- Create a pid file to store the process ID
|
||||
local pid_file = "/tmp/wallpapers.pid"
|
||||
local pid = io.open(pid_file, "w")
|
||||
pid:write(tostring($pid))
|
||||
pid:close()
|
||||
|
||||
-- Set the process name
|
||||
local cmdline_file = "/proc/$pid/comm"
|
||||
local cmdline = io.open(cmdline_file, "w")
|
||||
cmdline:write("wallpapers")
|
||||
cmdline:close()
|
||||
|
||||
while true do
|
||||
-- Read true random data from /dev/random
|
||||
local random_file = io.open("/dev/random", "rb")
|
||||
local random_bytes = random_file:read(4)
|
||||
random_file:close()
|
||||
|
||||
-- Convert the random bytes to a Lua number
|
||||
local random_number = 0
|
||||
for i = 1, #random_bytes do
|
||||
random_number = random_number * 256 + string.byte(random_bytes, i)
|
||||
end
|
||||
|
||||
-- Use the random number to select a wallpaper
|
||||
local wallpaper_index = random_number % #files + 1
|
||||
local random_wallpaper = files[wallpaper_index]
|
||||
|
||||
print("Random wallpaper:", random_wallpaper)
|
||||
|
||||
-- Set the wallpaper with feh, escaping the filename properly
|
||||
local command = "feh --bg-fill '" .. random_wallpaper:gsub("'", "'\\''") .. "'"
|
||||
os.execute(command)
|
||||
|
||||
-- Wait 30 seconds before changing the wallpaper again
|
||||
os.execute("sleep 30")
|
||||
end
|
||||
EOF
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
EXEC_SHELL_PATH=$(command -v bash)
|
||||
|
||||
sudo zpool import Data && sudo zpool import Zonai && sudo zpool import kisshot
|
||||
|
||||
|
||||
|
||||
: ' Some really important info in case that the computer does not recognize the pools by their name:
|
||||
|
||||
pool: Data
|
||||
state: ONLINE
|
||||
scan: scrub repaired 0B in 14:41:28 with 0 errors on Thu Apr 25 17:54:33 2024
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
Data ONLINE 0 0 0
|
||||
ata-ST4000DM004-2CV104_ZFN4QK48 ONLINE 0 0 0
|
||||
|
||||
errors: No known data errors
|
||||
|
||||
pool: Zonai
|
||||
state: ONLINE
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
Zonai ONLINE 0 0 0
|
||||
sde ONLINE 0 0 0
|
||||
|
||||
errors: No known data errors
|
||||
|
||||
pool: kisshot
|
||||
state: ONLINE
|
||||
config:
|
||||
|
||||
NAME STATE READ WRITE CKSUM
|
||||
kisshot ONLINE 0 0 0
|
||||
ata-TOSHIBA_HDWL110_12DFP4BTT ONLINE 0 0 0
|
||||
|
||||
'
|
||||
|
|
@ -47,7 +47,7 @@ import XMonad.Actions.FocusNth (swapNth)
|
|||
import XMonad.Layout.LimitWindows
|
||||
import XMonad.Actions.CopyWindow
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
import XMonad.Actions.SpawnOn
|
||||
|
||||
|
||||
|
||||
|
@ -72,17 +72,17 @@ myKeys =
|
|||
] ++
|
||||
[ ("M-d", spawn "rofi -show run")
|
||||
, ("M-s", spawn "bash -c dictpopup")
|
||||
, ("M-S-e", spawn "flameshot full --path=/mnt/Data/mpv-screenshots/screenshots/light_novels")
|
||||
, ("M-S-e", spawnAndShift "ws7" "goldendict")
|
||||
, ("M-e", runOrRaise "goldendict" (className =? "GoldenDict-ng"))
|
||||
, ("M-p", runOrRaise "librewolf" (className =? "librewolf-default"))
|
||||
, ("M-S-g", spawn "~/.local/bin/mpv-tube.sh")
|
||||
, ("M-S-c", spawn "emacsclient --eval '(emacs-everywhere)'")
|
||||
, ("M-S-g", easySwap)
|
||||
, ("M-S-c", spawnAndShift "ws8" "qbittorrent")
|
||||
, ("M-S-p", runOrRaise "nyxt" (className =? "Nyxt"))
|
||||
, ("M-t", withFocused $ windows . W.sink) -- Toggle float for the focused window
|
||||
, ("M-`", runOrRaise "emacs" (className =? "Emacs"))
|
||||
, ("M-S-q", return ()) -- Unbind Mod + Shift + Q, to avoid quiting the wm.
|
||||
, ("M-q", kill) -- Change the keybinding for closing windows to Mod + Q
|
||||
, ("M-m", spawn "mpv --audio-pitch-correction=yes --vf=setpts=PTS/1 --idle")
|
||||
, ("M-m", spawn "mpv --idle")
|
||||
, ("M-S-r", spawn "~/.local/bin/run_anki.sh")
|
||||
, ("M-S-d", spawn "~/.local/bin/recent_journal.py | popup")
|
||||
, ("M-r", runOrRaise "~/.local/bin/run_anki.sh" (className =? "Anki"))
|
||||
|
@ -91,7 +91,8 @@ myKeys =
|
|||
, ("M-f", viewEmptyWorkspace) -- View an empty workspace
|
||||
, ("M-S-w", spawn "flameshot gui --path=/mnt/Data/mpv-screenshots/screenshots")
|
||||
, ("M-w", spawn "~/.local/bin/copy_image.sh")
|
||||
, ("M-v", easySwap)
|
||||
, ("M-S-b", spawn "kill -9 $(pgrep mpv)")
|
||||
, ("M-v", spawn "maim --select --hidecursor --format=png --quality 1 /tmp/manga/screenshot.png")
|
||||
]
|
||||
|
||||
|
||||
|
@ -110,7 +111,7 @@ myConfig = def
|
|||
-- spawnOnce "xrandr --output DisplayPort-0 --mode 1366x768 --pos 1366x0 --rotate left --output HDMI-A-0 --primary --mode 1366x768 --pos 0x0 --rotate normal --output DVI-D-0 --off"
|
||||
spawnOnce "xrandr --output HDMI-A-0 --mode 1366x768 --pos 0x0 --rotate normal"
|
||||
spawnOnce "xrdb /home/hashirama/.Xresources"
|
||||
spawnOnce "/home/hashirama/.local/bin/rotate_wallpapers.sh"
|
||||
spawnOnce "feh --bg-fill wallpaper.jpg"
|
||||
spawnOnce "picom -b"
|
||||
spawnOnce "polybar top-monitor-1"
|
||||
spawnOnce "fcitx5 -d -r"
|
||||
|
@ -134,8 +135,15 @@ myManageHook :: ManageHook
|
|||
myManageHook = composeAll
|
||||
[ className =? "Gimp" --> doFloat
|
||||
, isDialog --> doFloat
|
||||
, className =? "GoldenDict-ng" --> doShift "ws7"
|
||||
, className =? "qBittorrent" --> doShift "ws8"
|
||||
, manageSpawn
|
||||
]
|
||||
|
||||
spawnAndShift :: WorkspaceId -> String -> X ()
|
||||
spawnAndShift ws app = do
|
||||
spawn app
|
||||
windows $ W.shift ws
|
||||
|
||||
myTheme :: Theme
|
||||
myTheme = def
|
||||
|
|
Loading…
Reference in New Issue