init
This commit is contained in:
Executable
+3
@@ -0,0 +1,3 @@
|
||||
Credits to *<u><a href="https://github.com/swindlesmccoop/">Swindles McCoop</a></u>* for **edsc**, **sb-liisten, sb-memory, sb-volume, sb-cputemp, sb-cpuusage, sb-network, and sb-battery**. Really useful tools.
|
||||
|
||||
(same username on [https://git.cbps.xyz/swindlesmccoop](git.cbps.xyz) he's my daddy btw i love him)
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env sh
|
||||
VIDEO_SIZE="1920x1080"
|
||||
DISPLAY_NUM=":0.0"
|
||||
AUDIO_SOURCE="default"
|
||||
FPS="60"
|
||||
OUTPUT_FILE="recording_$(date +%Y%m%d_%H%M%S).mkv"
|
||||
AUDIO_BITRATE="128k"
|
||||
record() {
|
||||
local out_file="${1:-$OUTPUT_FILE}"
|
||||
echo "Starting screen + mic recording..."
|
||||
echo "Resolution: $VIDEO_SIZE @ ${FPS}fps"
|
||||
echo "Audio source: $AUDIO_SOURCE"
|
||||
echo "Output: $out_file"
|
||||
ffmpeg -y \
|
||||
-thread_queue_size 1024 \
|
||||
-f x11grab -framerate "$FPS" -video_size "$VIDEO_SIZE" -i "$DISPLAY_NUM" \
|
||||
-thread_queue_size 1024 \
|
||||
-f pulse -i "$AUDIO_SOURCE" \
|
||||
-c:v h264_nvenc -preset p1 -rc vbr -cq 23 \
|
||||
-pix_fmt yuv420p \
|
||||
-c:a aac -b:a "$AUDIO_BITRATE" \
|
||||
-vsync 1 \
|
||||
"$out_file"
|
||||
}
|
||||
show_help() {
|
||||
echo "Usage: $0 record [output_file]"
|
||||
}
|
||||
if [ "$1" = "--record" ]; then
|
||||
record "$2"
|
||||
else
|
||||
show_help
|
||||
fi
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
AUR_URL="https://aur.archlinux.org"
|
||||
TIMEOUT=5
|
||||
|
||||
if curl -s --head --fail --max-time "$TIMEOUT" "$AUR_URL" > /dev/null; then
|
||||
echo "Unfortunately, the AUR is up."
|
||||
else
|
||||
echo "AUR IS DOWN"
|
||||
fi
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
def read_file(path):
|
||||
try:
|
||||
with open(path, "r") as f:
|
||||
return f.read().strip()
|
||||
except:
|
||||
return None
|
||||
|
||||
def get_battery_info():
|
||||
capacity = read_file("/sys/class/power_supply/BAT1/capacity")
|
||||
status = read_file("/sys/class/power_supply/BAT1/status")
|
||||
ac_online = read_file("/sys/class/power_supply/ACAD/online")
|
||||
|
||||
try:
|
||||
percent = int(capacity)
|
||||
except (TypeError, ValueError):
|
||||
percent = None
|
||||
|
||||
charging = (status == "Charging") or (ac_online == "1")
|
||||
return charging, percent
|
||||
|
||||
def print_symbol():
|
||||
charging, percent = get_battery_info()
|
||||
|
||||
if percent is None:
|
||||
print("[?]")
|
||||
return
|
||||
|
||||
if charging and percent >= 90:
|
||||
print("[++]")
|
||||
elif charging and percent < 30:
|
||||
print("[-+]")
|
||||
elif charging:
|
||||
print("[+]")
|
||||
elif not charging and percent < 30:
|
||||
print("[--]")
|
||||
else:
|
||||
print("[-]")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print_symbol()
|
||||
Executable
+118
@@ -0,0 +1,118 @@
|
||||
#!/bin/sh
|
||||
|
||||
WMENU="wmenu"
|
||||
DMENU="dmenu"
|
||||
BROWSER="firefox-bin"
|
||||
NOTIFY="notify-send"
|
||||
|
||||
CHOICES="Paulgo
|
||||
URL
|
||||
Incognito URL
|
||||
YouTube
|
||||
Codeberg
|
||||
Tildegit
|
||||
IPLeak
|
||||
Safebooru
|
||||
Wikipedia"
|
||||
|
||||
notify() {
|
||||
"$NOTIFY" "$1" "$2" 2>/dev/null
|
||||
}
|
||||
|
||||
run_wmenu() {
|
||||
printf '%s\n' "$1" | $WMENU -p "$2"
|
||||
}
|
||||
|
||||
run_dmenu() {
|
||||
printf '' | $DMENU -p "$1"
|
||||
}
|
||||
|
||||
urlencode() {
|
||||
python3 -c "import sys, urllib.parse as ul; print(ul.quote_plus(sys.argv[1]))" "$1"
|
||||
}
|
||||
|
||||
open_url() {
|
||||
url="$1"
|
||||
if pgrep -x "$BROWSER" >/dev/null; then
|
||||
"$BROWSER" --new-tab "$url" &
|
||||
else
|
||||
"$BROWSER" "$url" &
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
choice=$(run_wmenu "$CHOICES" "Where to?")
|
||||
[ -z "$choice" ] && notify "Error" "No selection made" && exit 1
|
||||
|
||||
case "$choice" in
|
||||
Codeberg)
|
||||
repo=$(run_dmenu "Username & repo (user/repo):")
|
||||
[ -z "$repo" ] && notify "Error" "No input" && exit 1
|
||||
open_url "https://codeberg.org/$repo"
|
||||
;;
|
||||
Tildegit)
|
||||
repo=$(run_dmenu "Username & repo (user/repo):")
|
||||
[ -z "$repo" ] && notify "Error" "No input" && exit 1
|
||||
open_url "https://tildegit.org/$repo"
|
||||
;;
|
||||
IPLeak)
|
||||
open_url "https://ipleak.net"
|
||||
;;
|
||||
Paulgo)
|
||||
query=$(run_dmenu "Search Paulgo:")
|
||||
[ -z "$query" ] && notify "Error" "No input" && exit 1
|
||||
qenc=$(urlencode "$query")
|
||||
open_url "https://paulgo.io/search?q=$qenc"
|
||||
;;
|
||||
Wikipedia)
|
||||
query=$(run_dmenu "Search Wikipedia:")
|
||||
[ -z "$query" ] && notify "Error" "No input" && exit 1
|
||||
qenc=$(urlencode "$query")
|
||||
open_url "https://en.wikipedia.org/wiki/Special:Search?search=$qenc"
|
||||
;;
|
||||
URL)
|
||||
url=$(run_dmenu "Enter URL:")
|
||||
[ -z "$url" ] && notify "Error" "No URL entered" && exit 1
|
||||
case "$url" in
|
||||
http*) ;;
|
||||
*) url="https://$url" ;;
|
||||
esac
|
||||
open_url "$url"
|
||||
;;
|
||||
"Incognito URL")
|
||||
url=$(run_dmenu "Enter incognito URL:")
|
||||
[ -z "$url" ] && notify "Error" "No URL entered" && exit 1
|
||||
case "$url" in
|
||||
http*) ;;
|
||||
*) url="https://$url" ;;
|
||||
esac
|
||||
"$BROWSER" --private-window "$url" &
|
||||
;;
|
||||
YouTube)
|
||||
query=$(run_dmenu "Search YouTube:")
|
||||
[ -z "$query" ] && notify "Error" "No input" && exit 1
|
||||
qenc=$(urlencode "$query")
|
||||
open_url "https://youtube.com/results?search_query=$qenc"
|
||||
;;
|
||||
Safebooru)
|
||||
query=$(run_dmenu "Search Safebooru:")
|
||||
[ -z "$query" ] && notify "Error" "No input" && exit 1
|
||||
qenc=$(urlencode "$query")
|
||||
open_url "https://safebooru.org/index.php?page=post&s=list&tags=$qenc"
|
||||
;;
|
||||
*)
|
||||
notify "Error" "Invalid selection: $choice"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
for cmd in "$WMENU" "$DMENU" "$BROWSER" "$NOTIFY"; do
|
||||
if ! command -v "$cmd" >/dev/null 2>&1; then
|
||||
echo "Error: required command '$cmd' not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
main
|
||||
|
||||
Executable
BIN
Binary file not shown.
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
word=${1:-$(xclip -o -selection primary 2>/dev/null || wl-paste 2>/dev/null)}
|
||||
|
||||
# Check for empty word or special characters
|
||||
[[ -z "$word" || "$word" =~ [\/] ]] && notify-send -h string:bgcolor:#bf616a -t 3000 "Invalid input." && exit 0
|
||||
|
||||
query=$(curl -s --connect-timeout 5 --max-time 10 "https://api.dictionaryapi.dev/api/v2/entries/en_US/$word")
|
||||
|
||||
# Check for connection error (curl exit status stored in $?)
|
||||
[ $? -ne 0 ] && notify-send -h string:bgcolor:#bf616a -t 3000 "Connection error." && exit 1
|
||||
|
||||
# Check for invalid word response
|
||||
[[ "$query" == *"No Definitions Found"* ]] && notify-send -h string:bgcolor:#bf616a -t 3000 "Invalid word." && exit 0
|
||||
|
||||
# Show only first 3 definitions
|
||||
def=$(echo "$query" | jq -r '[.[].meanings[] | {pos: .partOfSpeech, def: .definitions[].definition}] | .[:3].[] | "\n\(.pos). \(.def)"')
|
||||
|
||||
# Requires a notification daemon to be installed
|
||||
notify-send "$word -" "$def"
|
||||
|
||||
|
||||
### MORE OPTIONS :)
|
||||
|
||||
# Show first definition for each part of speech (thanks @morgengabe1 on youtube)
|
||||
# def=$(echo "$query" | jq -r '.[0].meanings[] | "\(.partOfSpeech): \(.definitions[0].definition)\n"')
|
||||
|
||||
# Show all definitions
|
||||
# def=$(echo "$query" | jq -r '.[].meanings[] | "\n\(.partOfSpeech). \(.definitions[].definition)"')
|
||||
|
||||
# Regex + grep for just definition, if anyone prefers that to jq
|
||||
# def=$(grep -Po '"definition":"\K(.*?)(?=")' <<< "$query")
|
||||
|
||||
# bold=$(tput bold) # Print text bold with echo, for visual clarity
|
||||
# normal=$(tput sgr0) # Reset text to normal
|
||||
# echo "${bold}Definition of $word"
|
||||
# echo "${normal}$def"
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
RUN_WITH_PROXY() {
|
||||
BINARY=$1
|
||||
shift
|
||||
if [ -n "$BINARY" ]; then
|
||||
exec "$BINARY" --proxy-server="socks5://127.0.0.1:65000" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
GET_VESKTOP() {
|
||||
if command -v vesktop >/dev/null 2>&1; then
|
||||
echo "$(command -v vesktop)"
|
||||
elif command -v vesktop-bin >/dev/null 2>&1; then
|
||||
echo "$(command -v vesktop-bin)"
|
||||
elif command -v flatpak >/dev/null 2>&1 && flatpak list --ids | grep -q "dev.vencord.Vesktop"; then
|
||||
echo "flatpak run dev.vencord.Vesktop"
|
||||
fi
|
||||
}
|
||||
|
||||
GET_DISCORD() {
|
||||
if command -v linux-discord >/dev/null 2>&1; then
|
||||
echo "$(command -v linux-discord)"
|
||||
elif command -v flatpak >/dev/null 2>&1 && flatpak list --ids | grep -q "com.discordapp.Discord"; then
|
||||
echo "flatpak run com.discordapp.Discord"
|
||||
fi
|
||||
}
|
||||
|
||||
OS=$(uname -s)
|
||||
|
||||
if [ "$OS" = "FreeBSD" ]; then
|
||||
CMD=$(GET_DISCORD)
|
||||
RUN_WITH_PROXY $CMD "$@"
|
||||
elif [ "$OS" = "Linux" ]; then
|
||||
CMD=$(GET_VESKTOP)
|
||||
RUN_WITH_PROXY $CMD "$@"
|
||||
else
|
||||
linux-discord --proxy-server="socks5://127.0.0.1:65000" "$@"
|
||||
fi
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
DMENU_ARGS = [
|
||||
"dmenu",
|
||||
"-i",
|
||||
"-fn", "JetBrainsMono Nerd Font-10",
|
||||
"-nb", "#121212",
|
||||
"-nf", "#e0e0e0",
|
||||
"-sb", "#222222",
|
||||
"-sf", "#e0e0e0",
|
||||
"-l", "10",
|
||||
"-p", "Launch:",
|
||||
]
|
||||
|
||||
DESKTOP_DIRS = [
|
||||
Path.home() / ".local/share/applications",
|
||||
Path.home() / ".local/share/flatpak/exports/share/applications",
|
||||
Path("/var/lib/flatpak/exports/share/applications"),
|
||||
Path("/usr/share/applications"),
|
||||
Path("/usr/local/share/applications"),
|
||||
]
|
||||
|
||||
INVALID_EXEC_PREFIXES = ("wine", "wscript", "rundll32", "winhlp32", "hh ")
|
||||
|
||||
|
||||
def parse_desktop_file(path: Path):
|
||||
"""
|
||||
Returns (name, exec_cmd) or (None, None) if the file should be skipped.
|
||||
Handles: NoDisplay=true, Hidden=true, missing Name/Exec, field codes, env wrappers.
|
||||
"""
|
||||
props = {}
|
||||
in_desktop_entry = False
|
||||
|
||||
try:
|
||||
with path.open(encoding="utf-8", errors="replace") as f:
|
||||
for line in f:
|
||||
line = line.rstrip("\n")
|
||||
if line.startswith("["):
|
||||
in_desktop_entry = line == "[Desktop Entry]"
|
||||
continue
|
||||
if not in_desktop_entry or "=" not in line:
|
||||
continue
|
||||
key, _, value = line.partition("=")
|
||||
key = key.strip()
|
||||
if key not in props:
|
||||
props[key] = value.strip()
|
||||
except OSError:
|
||||
return None, None
|
||||
|
||||
if props.get("NoDisplay", "").lower() == "true":
|
||||
return None, None
|
||||
if props.get("Hidden", "").lower() == "true":
|
||||
return None, None
|
||||
if props.get("Type", "") != "Application":
|
||||
return None, None
|
||||
|
||||
name = props.get("Name")
|
||||
exec_raw = props.get("Exec")
|
||||
|
||||
if not name or not exec_raw:
|
||||
return None, None
|
||||
|
||||
exec_cmd = clean_exec(exec_raw)
|
||||
|
||||
if not exec_cmd:
|
||||
return None, None
|
||||
|
||||
lower = exec_cmd.lower()
|
||||
if any(lower.startswith(p) for p in INVALID_EXEC_PREFIXES):
|
||||
return None, None
|
||||
|
||||
terminal = props.get("Terminal", "").lower() == "true"
|
||||
if terminal:
|
||||
term = os.environ.get("TERMINAL", "xterm")
|
||||
exec_cmd = f"{term} -e {exec_cmd}"
|
||||
|
||||
return name, exec_cmd
|
||||
|
||||
|
||||
def clean_exec(exec_raw: str) -> str:
|
||||
tokens = exec_raw.split()
|
||||
cleaned = []
|
||||
for token in tokens:
|
||||
if token.startswith("%") and len(token) == 2 and token[1].isalpha():
|
||||
continue
|
||||
cleaned.append(token)
|
||||
return " ".join(cleaned).strip()
|
||||
|
||||
|
||||
def collect_apps():
|
||||
seen_stems = {}
|
||||
for directory in DESKTOP_DIRS:
|
||||
if not directory.is_dir():
|
||||
continue
|
||||
for desktop_file in sorted(directory.glob("*.desktop")):
|
||||
stem = desktop_file.stem.lower()
|
||||
if stem not in seen_stems:
|
||||
seen_stems[stem] = desktop_file
|
||||
|
||||
apps = {}
|
||||
for desktop_file in seen_stems.values():
|
||||
name, cmd = parse_desktop_file(desktop_file)
|
||||
if name and cmd and name not in apps:
|
||||
apps[name] = cmd
|
||||
return apps
|
||||
|
||||
|
||||
def run_dmenu(app_names: list[str]) -> str | None:
|
||||
names_input = "\n".join(sorted(app_names, key=str.casefold)).encode()
|
||||
try:
|
||||
result = subprocess.run(
|
||||
DMENU_ARGS,
|
||||
input=names_input,
|
||||
capture_output=True,
|
||||
)
|
||||
except FileNotFoundError:
|
||||
sys.exit("error: dmenu not found in PATH")
|
||||
|
||||
if result.returncode != 0:
|
||||
return None
|
||||
|
||||
return result.stdout.decode().strip()
|
||||
|
||||
|
||||
def launch(cmd: str):
|
||||
subprocess.Popen(
|
||||
cmd,
|
||||
shell=True,
|
||||
stdin=subprocess.DEVNULL,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
start_new_session=True,
|
||||
)
|
||||
|
||||
|
||||
def main():
|
||||
apps = collect_apps()
|
||||
|
||||
if not apps:
|
||||
sys.exit("error: no applications found")
|
||||
|
||||
selected = run_dmenu(list(apps.keys()))
|
||||
|
||||
if not selected:
|
||||
return
|
||||
|
||||
cmd = apps.get(selected)
|
||||
if not cmd:
|
||||
sys.exit(f"error: no command found for '{selected}'")
|
||||
|
||||
launch(cmd)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/zsh
|
||||
xclip -sel clipboard
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
if [ -z "$1" ]; then
|
||||
SCRIPT=$(find . -type f | fzfse)
|
||||
else
|
||||
SCRIPT="$1"
|
||||
fi
|
||||
|
||||
if [ -z "$SCRIPT" ]; then
|
||||
echo 'Usage: edsc [file]'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
emacsclient -c -nw "$SCRIPT"
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
kitty -e emacsclient -c $1
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
emacsclient -c $1
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from numpy.f2py.f2py2e import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
# Credits to Swindles McCoop
|
||||
# Coast's configuration of Firemenu
|
||||
# ## Bravemenu
|
||||
set -e
|
||||
DMENU_CMD="dmenu -i -fn Cozette:size=13 -nb #151821 -nf #a9b1d6 -sb #414868 -sf #c0caf5"
|
||||
CHOICES="URL
|
||||
Google
|
||||
YouTube
|
||||
Spotify
|
||||
Discord
|
||||
Git.gay
|
||||
Github
|
||||
DeepSeek
|
||||
ChatGPT
|
||||
4chan
|
||||
Proton Inbox
|
||||
Proton Drive
|
||||
Google Inbox
|
||||
Ente Auth"
|
||||
|
||||
CHOICE=$(printf "$CHOICES" | $DMENU_CMD -p "Bravemenu ")
|
||||
SWALLOW=
|
||||
|
||||
case $CHOICE in
|
||||
"URL") printf '' | $DMENU_CMD -p 'Enter URL(s):' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"Discord") $SWALLOW brave https://discord.com/app/ > /dev/null ;;
|
||||
"Spotify") $SWALLOW brave https://open.spotify.com/ > /dev/null ;;
|
||||
"DeepSeek") $SWALLOW brave https://chat.deepseek.com/ > /dev/null ;;
|
||||
"ChatGPT") $SWALLOW brave https://chatgpt.com/ > /dev/null ;;
|
||||
#"Github") $SWALLOW brave https://github.com/ > /dev/null ;;
|
||||
"Github") printf '' | $DMENU_CMD -p 'Repository:' | sed 's|^|https://github.com/|' | sed 's/ /%20/g' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"Git.gay") printf '' | $DMENU_CMD -p 'Repository:' | sed 's|^|https://git.gay/|' | sed 's/ /%20/g' | xargs $SWALLOW brave > /dev/null ;;
|
||||
#"Git.gay") $SWALLOW brave https://git.gay/ > /dev/null ;;
|
||||
"Google") printf '' | $DMENU_CMD -p 'Search:' | sed 's|^|https://google.com/search?q=|' | sed 's/ /%20/g' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"Link") printf '' | $DMENU_CMD -p 'Enter URL(s):' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"YouTube") printf '' | $DMENU_CMD -p 'Search:' | sed 's|^|https://youtube.com/results?search_query=|' | sed 's/ /%20/g' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"4chan") printf '3\na\naco\nadv\nan\nb\nbant\nbiz\nc\ncgl\nck\ncm\nco\nd\ndiy\ne\nf\nfa\nfit\ng\ngd\ngif\nh\nhc\nhis\nhm\nhr\ni\nic\nint\njp\nk\nlgbt\nlit\nm\nmlp\nmu\nn\nnews\no\nout\np\npo\npol\npw\nqa\nqst\nr\nr9k\ns\ns4s\nsci\nsoc\nsp\nt\ntg\ntoy\ntrv\ntv\nu\nv\nvg\nvip\nvm\nvmg\nvp\nvr\nvrpg\nvst\nvt\nw\nwg\nwsg\nwsr\nx\nxs\ny' | $DMENU_CMD -p 'Board letter:' | sed 's|^|https://4chan.org/|' | xargs $SWALLOW brave > /dev/null ;;
|
||||
"Proton Inbox") printf '' | $SWALLOW brave https://mail.proton.me/u/0/inbox > /dev/null ;;
|
||||
"Proton Drive") printf '' | $SWALLOW brave https://drive.proton.me/ > /dev/null ;;
|
||||
"Google Inbox") printf '' | $SWALLOW brave https://mail.google.com/mail/u/0/ ;;
|
||||
"Ente Auth") printf '' | $SWALLOW brave https://auth.ente.io/auth ;;
|
||||
esac
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
fzf --layout=reverse --height 40%
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/zsh
|
||||
|
||||
grub_screen() {
|
||||
clear
|
||||
echo -e "\n\n\t GNU GRUB 2.06"
|
||||
echo -e "\n"
|
||||
echo -e "\t Minimal BASH-like line editing is supported. For the first word, TAB"
|
||||
echo -e "\t lists possible command completions. Anywhere else TAB lists possible"
|
||||
echo -e "\t device or file completions."
|
||||
echo -e "\n"
|
||||
}
|
||||
|
||||
grub_screen
|
||||
|
||||
# Fake GRUB prompt
|
||||
while true; do
|
||||
echo -ne " grub> "
|
||||
read -r command
|
||||
case $command in
|
||||
exit|quit)
|
||||
clear
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo -e "\t Unknown command. Press a key to continue..."
|
||||
read -r dummy
|
||||
;;
|
||||
esac
|
||||
done
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3
|
||||
import sys
|
||||
from hyfetch.__main__ import run_rust
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(run_rust())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3
|
||||
import sys
|
||||
from hyfetch.__main__ import run_rust
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(run_rust())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3
|
||||
import sys
|
||||
from hyfetch.__main__ import run_py
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(run_py())
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python3
|
||||
import subprocess
|
||||
import sys
|
||||
import signal
|
||||
|
||||
try:
|
||||
# Find PID(s) of running 'radio' process (matching name)
|
||||
out = subprocess.check_output(["pgrep", "-f", "radio"])
|
||||
pids = [int(pid) for pid in out.decode().strip().split()]
|
||||
except subprocess.CalledProcessError:
|
||||
print("No running 'radio' process found.")
|
||||
sys.exit(1)
|
||||
|
||||
for pid in pids:
|
||||
try:
|
||||
# Send SIGKILL (kill -9) to each found pid
|
||||
subprocess.run(["kill", "-9", str(pid)])
|
||||
print(f"Killed PID {pid}")
|
||||
except Exception as e:
|
||||
print(f"Failed to kill PID {pid}: {e}")
|
||||
Executable
+124
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env python3
|
||||
import ast
|
||||
import operator
|
||||
import math
|
||||
import sys
|
||||
|
||||
_OPERATORS = {
|
||||
ast.Add: operator.add,
|
||||
ast.Sub: operator.sub,
|
||||
ast.Mult: operator.mul,
|
||||
ast.Div: operator.truediv,
|
||||
ast.Mod: operator.mod,
|
||||
ast.Pow: operator.pow,
|
||||
ast.USub: operator.neg,
|
||||
ast.UAdd: operator.pos,
|
||||
ast.FloorDiv: operator.floordiv,
|
||||
}
|
||||
|
||||
_MATH_FUNCS = {name: getattr(math, name) for name in dir(math) if not name.startswith("_") and callable(getattr(math, name))}
|
||||
_MATH_FUNCS.update({
|
||||
"abs": abs,
|
||||
"round": round,
|
||||
"factorial": math.factorial,
|
||||
"degrees": math.degrees,
|
||||
"radians": math.radians,
|
||||
"isclose": math.isclose,
|
||||
"isfinite": math.isfinite,
|
||||
"isinf": math.isinf,
|
||||
"isnan": math.isnan,
|
||||
"log2": math.log2,
|
||||
"log10": math.log10,
|
||||
"log": math.log,
|
||||
"exp": math.exp,
|
||||
"expm1": math.expm1,
|
||||
"fsum": math.fsum,
|
||||
"gamma": math.gamma,
|
||||
"lgamma": math.lgamma,
|
||||
"trunc": math.trunc,
|
||||
"max": max,
|
||||
"min": min,
|
||||
"sum": sum,
|
||||
})
|
||||
|
||||
_CONSTANTS = {
|
||||
"pi": math.pi,
|
||||
"e": math.e,
|
||||
"tau": math.tau,
|
||||
"inf": math.inf,
|
||||
"nan": math.nan,
|
||||
}
|
||||
|
||||
class matheval(ast.NodeVisitor):
|
||||
def visit(self, node):
|
||||
if isinstance(node, ast.Expression):
|
||||
return self.visit(node.body)
|
||||
return super().visit(node)
|
||||
|
||||
def visit_BinOp(self, node):
|
||||
left = self.visit(node.left)
|
||||
right = self.visit(node.right)
|
||||
op_type = type(node.op)
|
||||
if op_type in _OPERATORS:
|
||||
return _OPERATORS[op_type](left, right)
|
||||
raise ValueError(f"Unsupported binary operator {op_type.__name__}")
|
||||
|
||||
def visit_UnaryOp(self, node):
|
||||
operand = self.visit(node.operand)
|
||||
op_type = type(node.op)
|
||||
if op_type in _OPERATORS:
|
||||
return _OPERATORS[op_type](operand)
|
||||
raise ValueError(f"Unsupported unary operator {op_type.__name__}")
|
||||
|
||||
def visit_Call(self, node):
|
||||
if not isinstance(node.func, ast.Name):
|
||||
raise ValueError("Only simple function calls allowed")
|
||||
func_name = node.func.id
|
||||
if func_name not in _MATH_FUNCS:
|
||||
raise ValueError(f"Unknown function '{func_name}'")
|
||||
args = [self.visit(arg) for arg in node.args]
|
||||
return _MATH_FUNCS[func_name](*args)
|
||||
|
||||
def visit_Name(self, node):
|
||||
if node.id in _CONSTANTS:
|
||||
return _CONSTANTS[node.id]
|
||||
raise ValueError(f"Unknown identifier '{node.id}'")
|
||||
|
||||
def visit_Constant(self, node):
|
||||
if isinstance(node.value, (int, float)):
|
||||
return node.value
|
||||
raise ValueError(f"Unsupported constant type: {type(node.value).__name__}")
|
||||
|
||||
def visit_List(self, node):
|
||||
return [self.visit(el) for el in node.elts]
|
||||
|
||||
def visit_Tuple(self, node):
|
||||
return tuple(self.visit(el) for el in node.elts)
|
||||
|
||||
def generic_visit(self, node):
|
||||
raise ValueError(f"Unsupported expression: {type(node).__name__}")
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: math '<expression>'")
|
||||
print("Example: math 'sin(pi/2) + 2^3'")
|
||||
sys.exit(1)
|
||||
|
||||
expr = " ".join(sys.argv[1:])
|
||||
expr = expr.replace("^", "**")
|
||||
expr = expr.replace("\n", "")
|
||||
|
||||
try:
|
||||
tree = ast.parse(expr, mode="eval")
|
||||
evaluator = matheval()
|
||||
result = evaluator.visit(tree)
|
||||
if isinstance(result, float) and result.is_integer():
|
||||
print(int(result))
|
||||
else:
|
||||
print(result)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+57
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
CONFIG_FILE="${HOME}/.config/mksymlink.conf"
|
||||
TARGET_BASE="${HOME}/.config"
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 [-c config_file] [-t target_base]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts "c:t:h" opt; do
|
||||
case "$opt" in
|
||||
c) CONFIG_FILE="$OPTARG" ;;
|
||||
t) TARGET_BASE="$OPTARG" ;;
|
||||
h) usage ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "Error: config file '$CONFIG_FILE' does not exist" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
. "$CONFIG_FILE"
|
||||
|
||||
if [ -z "$MAIN" ]; then
|
||||
echo "Error: MAIN is not set in config file" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
mkdir -p "$TARGET_BASE"
|
||||
|
||||
for entry in $list; do
|
||||
TARGET=$(echo "$entry" | cut -d= -f1)
|
||||
SRC_REL=$(echo "$entry" | cut -d= -f2)
|
||||
SRC="$MAIN/$SRC_REL"
|
||||
TARGET_PATH="$TARGET_BASE/$TARGET"
|
||||
|
||||
if [ ! -e "$SRC" ]; then
|
||||
echo "Warning: source '$SRC' does not exist, skipping" 1>&2
|
||||
continue
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$TARGET_PATH")"
|
||||
|
||||
if [ -L "$TARGET_PATH" ]; then
|
||||
rm "$TARGET_PATH"
|
||||
elif [ -e "$TARGET_PATH" ]; then
|
||||
echo "Warning: target '$TARGET_PATH' exists and is not a symlink, skipping" 1>&2
|
||||
continue
|
||||
fi
|
||||
|
||||
ln -s "$SRC" "$TARGET_PATH"
|
||||
echo "Created symlink: $TARGET_PATH -> $SRC"
|
||||
done
|
||||
|
||||
Executable
+126
@@ -0,0 +1,126 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
local launcher = "dmenu"
|
||||
|
||||
local dmenu_args = {
|
||||
"-i",
|
||||
"-fn", "JetBrainsMono Nerd Font-10",
|
||||
"-nb", "#121212",
|
||||
"-nf", "#e0e0e0",
|
||||
"-sb", "#222222",
|
||||
"-sf", "#e0e0e0",
|
||||
"-l", "10",
|
||||
}
|
||||
|
||||
local music_dir = "/home/coast/Music"
|
||||
local max_length = 30
|
||||
local default_icon = "/usr/share/icons/hicolor/48x48/apps/musical-note.png"
|
||||
|
||||
local function build_menu(prompt)
|
||||
if launcher == "rofi" then
|
||||
return string.format("rofi -dmenu -i -p '%s'", prompt)
|
||||
else
|
||||
local args = "dmenu"
|
||||
for _, v in ipairs(dmenu_args) do
|
||||
args = args .. " '" .. v .. "'"
|
||||
end
|
||||
args = args .. string.format(" -p '%s'", prompt)
|
||||
return args
|
||||
end
|
||||
end
|
||||
|
||||
local function escape(str)
|
||||
return str:gsub("'", "'\\''")
|
||||
end
|
||||
|
||||
local function capture(cmd)
|
||||
local f = io.popen(cmd, 'r')
|
||||
local s = f:read('*a')
|
||||
f:close()
|
||||
return s:gsub("^%s*(.-)%s*$", "%1")
|
||||
end
|
||||
|
||||
local function truncate(str, len)
|
||||
if #str > len then
|
||||
return str:sub(1, len) .. "..."
|
||||
end
|
||||
return str
|
||||
end
|
||||
|
||||
local function get_cover(song_file)
|
||||
if not song_file or song_file == "" then return default_icon end
|
||||
local full_path = music_dir .. "/" .. song_file
|
||||
local dir = full_path:match("(.*[/\\])") or music_dir
|
||||
local names = {"cover.jpg", "cover.png", "folder.jpg", "folder.png", "front.jpg", "front.png"}
|
||||
for _, name in ipairs(names) do
|
||||
local path = dir .. name
|
||||
local f = io.open(path, "r")
|
||||
if f then
|
||||
f:close()
|
||||
return path
|
||||
end
|
||||
end
|
||||
return default_icon
|
||||
end
|
||||
|
||||
local action = arg[1]
|
||||
|
||||
if action == "shuf" then
|
||||
os.execute("mpc random on >/dev/null && notify-send 'Shuffle enabled'")
|
||||
os.exit(0)
|
||||
elseif action == "shufno" then
|
||||
os.execute("mpc random off >/dev/null && notify-send 'Shuffle disabled'")
|
||||
os.exit(0)
|
||||
elseif action == "next" then
|
||||
os.execute("mpc next >/dev/null")
|
||||
os.exit(0)
|
||||
elseif action == "prev" then
|
||||
os.execute("mpc prev >/dev/null")
|
||||
os.exit(0)
|
||||
elseif action == "toggle" then
|
||||
os.execute("mpc toggle >/dev/null")
|
||||
os.exit(0)
|
||||
elseif action == "current" then
|
||||
local current = capture("mpc current")
|
||||
if current ~= "" then io.write(current .. "\n") end
|
||||
os.exit(0)
|
||||
elseif action == "info" then
|
||||
local file = capture("mpc --format '%file%' current")
|
||||
local title = capture("mpc current")
|
||||
local cover = get_cover(file)
|
||||
os.execute(string.format("notify-send 'Currently Playing' '%s' -i '%s'", escape(title), cover))
|
||||
os.exit(0)
|
||||
elseif action == "album" then
|
||||
local album = capture("mpc list album | " .. build_menu("Select Album"))
|
||||
if album ~= "" then
|
||||
os.execute(string.format("mpc clear >/dev/null && mpc find album '%s' | mpc add && mpc play >/dev/null", escape(album)))
|
||||
end
|
||||
os.exit(0)
|
||||
elseif action == "artist" then
|
||||
local artist = capture("mpc list artist | " .. build_menu("Select Artist"))
|
||||
if artist ~= "" then
|
||||
os.execute(string.format("mpc clear >/dev/null && mpc find artist '%s' | mpc add && mpc play >/dev/null", escape(artist)))
|
||||
end
|
||||
os.exit(0)
|
||||
elseif action == "search" then
|
||||
local menu = "mpc --format '%title% - %artist% - %album%\t%file%' search any '' | " .. build_menu("Search music")
|
||||
local choice = capture(menu)
|
||||
if choice == "" then os.exit(0) end
|
||||
local file = choice:match("\t(.-)$")
|
||||
if file then
|
||||
os.execute(string.format("mpc clear >/dev/null && mpc add '%s' >/dev/null && mpc play >/dev/null", escape(file)))
|
||||
os.exit(0)
|
||||
end
|
||||
elseif action == "reload" then
|
||||
os.execute("mpc update && mpc clear && mpc add / && mpc play >/dev/null")
|
||||
os.execute("notify-send 'Library refreshed. Now playing...'")
|
||||
os.exit(0)
|
||||
end
|
||||
|
||||
os.execute("mpc play >/dev/null 2>&1")
|
||||
os.execute("mpc volume 15 >/dev/null 2>&1")
|
||||
local file = capture("mpc --format '%file%' current")
|
||||
local title = capture("mpc current")
|
||||
local cover = get_cover(file)
|
||||
local display = truncate(title, max_length)
|
||||
os.execute(string.format("notify-send 'Now playing...' '%s' -i '%s'", escape(display), cover))
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3.13
|
||||
import sys
|
||||
from nodeenv import main
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(main())
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from numpy._configtool import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3.13
|
||||
import sys
|
||||
from pyright.cli import entrypoint
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(entrypoint())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3.13
|
||||
import sys
|
||||
from pyright.langserver import entrypoint
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(entrypoint())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3.13
|
||||
import sys
|
||||
from pyright.cli import entrypoint
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(entrypoint())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/python3.13
|
||||
import sys
|
||||
from pyright.langserver import entrypoint
|
||||
if __name__ == '__main__':
|
||||
if sys.argv[0].endswith('.exe'):
|
||||
sys.argv[0] = sys.argv[0][:-4]
|
||||
sys.exit(entrypoint())
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/nix/store/1ki8jq5sax0hm1sqbw0jk6qnqpy417zx-python3-3.13.5/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from qrcode.console_scripts import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+75
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
import subprocess
|
||||
import time
|
||||
from pathlib import Path
|
||||
import threading
|
||||
import json
|
||||
import tempfile
|
||||
import urllib.request
|
||||
import websocket
|
||||
# 128kbps Opus
|
||||
URL="https://radio.animebits.moe/stream/stream128.ogg"
|
||||
# 256kbps Opus
|
||||
#URL="https://radio.animebits.moe/stream/stream256.ogg"
|
||||
# ~148kbps VBR AAC
|
||||
#URL="https://radio.animebits.moe/stream/stream128.aac"
|
||||
# ~192kbps VBR MP3
|
||||
#URL="https://radio.animebits.moe/stream/stream192.mp3"
|
||||
# Lossless FLAC
|
||||
#URL="https://radio.animebits.moe/stream/stream.flac"
|
||||
#config file & pid
|
||||
CONF = Path.home() / ".config" / "radiorc"
|
||||
PID = Path.home() / ".config" / "radio-pid"
|
||||
with open(CONF) as f:
|
||||
VOL = f.read().strip()
|
||||
def notify(title, image_url=None):
|
||||
icon_path = None
|
||||
if image_url:
|
||||
try:
|
||||
tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".png")
|
||||
urllib.request.urlretrieve(image_url, tmp.name)
|
||||
icon_path = tmp.name
|
||||
except:
|
||||
icon_path = None
|
||||
args = ["notify-send", title]
|
||||
if icon_path:
|
||||
args += ["-i", icon_path]
|
||||
subprocess.run(args)
|
||||
def ws_listener():
|
||||
def on_message(ws, message):
|
||||
data = json.loads(message)
|
||||
if "data" in data and "title" in data["data"]:
|
||||
title = data["data"]["title"]
|
||||
image = data["data"].get("album_cover")
|
||||
notify(title, image)
|
||||
def on_error(ws, error):
|
||||
pass
|
||||
def on_close(ws, close_status_code, close_msg):
|
||||
time.sleep(1)
|
||||
run_ws()
|
||||
def on_open(ws):
|
||||
pass
|
||||
def run_ws():
|
||||
ws = websocket.WebSocketApp("wss://radio.animebits.moe/api/events/basic",
|
||||
on_message=on_message,
|
||||
on_error=on_error,
|
||||
on_close=on_close,
|
||||
on_open=on_open)
|
||||
ws.run_forever()
|
||||
run_ws()
|
||||
threading.Thread(target=ws_listener, daemon=True).start()
|
||||
while True:
|
||||
try:
|
||||
print("Playing now...")
|
||||
subprocess.run(["notify-send", "Playing now..."])
|
||||
proc = subprocess.Popen(["mpv", "--no-video", f"--volume={VOL}", URL])
|
||||
with open(PID, "w") as f:
|
||||
f.write(str(proc.pid))
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
subprocess.run(["notify-send", "Stopping now..."])
|
||||
print("\nStopping now...")
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"Something broke... trying again... Error: {e}")
|
||||
time.sleep(2)
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
systemctl restart --user emacs.service
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
WINEPREFIX=$HOME/.wine
|
||||
prime-run wine /home/coast/files/rimworld/RimWorldWin64.exe
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
batteries=(/sys/class/power_supply/BAT*)
|
||||
# Check if any battery directories exist
|
||||
found=false
|
||||
for b in "${batteries[@]}"; do
|
||||
if [ -d "$b" ]; then
|
||||
found=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$found" = false ]; then
|
||||
echo "None"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
first=true
|
||||
for battery in /sys/class/power_supply/BAT*; do
|
||||
if [ -d "$battery" ]; then
|
||||
if [ -r "$battery/capacity" ]; then
|
||||
capacity=$(<"$battery/capacity")
|
||||
else
|
||||
capacity=0
|
||||
fi
|
||||
if [ "$first" = true ]; then
|
||||
echo -n "${capacity}%"
|
||||
first=false
|
||||
else
|
||||
echo -n " ${capacity}%"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo
|
||||
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
_linux() {
|
||||
sensors $1 | awk '/^temp1/ {print $2}' | sed 's/+//'
|
||||
}
|
||||
|
||||
_openbsd() {
|
||||
[ "$1" = "-f" ] && printf "$(expr $(sysctl | grep hw.sensors.cpu0.temp0 | sed 's/\.00.*//' | sed 's/.*=//') \* 9 / 5 + 32 2> /dev/null)°F" || sysctl | grep hw.sensors.cpu0.temp0 | sed 's/.*=//' | sed 's/\.00//' | sed 's/ deg/°/'
|
||||
}
|
||||
|
||||
_freebsd() {
|
||||
C_TEMP=$(sysctl hw.acpi.thermal.tz0.temperature | sed 's/^.* //' )
|
||||
[ "$1" = "-f" ] && printf "$(expr $(printf $C_TEMP | sed 's/\..C//') \* 9 / 5 + 32)°F" || printf "$C_TEMP" | sed 's/C/°C/'
|
||||
}
|
||||
|
||||
case $(uname) in
|
||||
Linux) _linux "$@" ;;
|
||||
OpenBSD) _openbsd "$@" ;;
|
||||
FreeBSD) _freebsd "$@" ;;
|
||||
esac
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
#Display CPU usage percentage
|
||||
|
||||
_openbsd() {
|
||||
CPUS=$(sysctl | grep 'hw.ncpuonline' | sed 's/^.*=//')
|
||||
TOTALUSAGE=$(ps aux | awk '{print $3}' | sed '1d' | sort | paste -s -d+ - | bc)
|
||||
USAGE=$(printf "$TOTALUSAGE / $CPUS\n" | bc -l)
|
||||
printf "$USAGE" | grep "^\.[0-9]" > /dev/null && printf "0$(printf $USAGE | cut -c1-3)%%" || printf "$(printf "$USAGE" | cut -c1-4)%%\n"
|
||||
}
|
||||
|
||||
_freebsd() {
|
||||
CPUS="$(sysctl hw.ncpu | sed 's/^.*: //')"
|
||||
FREE=$(ps -o %cpu -p $(pgrep -S idle) | tail -n 1)
|
||||
TPP=$(expr $CPUS \* 100)
|
||||
TOTALUSAGE=$(printf "$TPP - $FREE" | bc -l)
|
||||
USAGE=$(printf "$TOTALUSAGE / $CPUS" | bc -l | cut -c -4)
|
||||
printf "$USAGE" | egrep "\.[0-9]{3}" > /dev/null && printf "0$(printf $USAGE | cut -c -3)%%\n" || printf -- "$USAGE%%\n"
|
||||
}
|
||||
|
||||
_linux() {
|
||||
TOTALUSAGE="$(ps axch -o cmd,%cpu --sort=-%cpu | sed 's/ //' | grep -E -o " [0-9].*" | sed 's/ //' | paste -s -d+ - | bc)"
|
||||
USAGE="$(printf "$(printf "$TOTALUSAGE / $(nproc)\n" | bc -l | cut -c1-4)%%\n")"
|
||||
printf -- "$USAGE%" | grep "^\.[0-9]" > /dev/null && printf -- "0$(printf -- $USAGE% | cut -c1-3)%%" || printf -- "$(printf -- "$USAGE%" | cut -c1-4)%%\n"
|
||||
}
|
||||
|
||||
case $(uname) in
|
||||
Linux) _linux ;;
|
||||
OpenBSD) _openbsd ;;
|
||||
FreeBSD) _freebsd ;;
|
||||
esac
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
#Liisten for the status bar
|
||||
|
||||
#options
|
||||
LOOPCOUNT=1 #however many times you want the song to play minus one (for technical reasons)
|
||||
SONGDIR="$HOME/music/brstm"
|
||||
cd "$SONGDIR"
|
||||
|
||||
MODE=$(printf "Random\nForever" | dmenu -i)
|
||||
|
||||
playsong () {
|
||||
vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt
|
||||
STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
|
||||
ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
|
||||
echo "Now playing: \"$(echo $SONG | sed 's/\.brstm//')\""
|
||||
mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --ab-loop-count="$LOOPCOUNT" "$SONG"
|
||||
}
|
||||
|
||||
forever () {
|
||||
SONG="$(command ls -1 | dmenu -i)"
|
||||
vgmstream-cli -m "$SONG" > /tmp/brstminfo.txt
|
||||
STARTLOOP="$(grep "seconds" /tmp/brstminfo.txt | head -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
|
||||
ENDLOOP="$(grep "seconds" /tmp/brstminfo.txt | tail -n 1 | sed 's/.*(//' | sed 's/ seconds)//')"
|
||||
mpv --ab-loop-a="$STARTLOOP" --ab-loop-b="$ENDLOOP" --loop-file=inf "$SONG"
|
||||
}
|
||||
|
||||
random () {
|
||||
while true; do
|
||||
RANDNUM=$(shuf -i 1-$(ls -1 | wc -l) -n 1)
|
||||
SONG="$(command ls | head -n $RANDNUM | tail -n 1)"
|
||||
playsong
|
||||
done
|
||||
}
|
||||
|
||||
case "$MODE" in
|
||||
Forever) forever ;;
|
||||
Random) random ;;
|
||||
esac
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
_openbsd() {
|
||||
TOTAL="$(free | awk '/^Mem:/ {print $2}')"
|
||||
MUSED="$(top -b -n 1 | grep -o 'Real.*' | sed 's/Real: //' | sed 's/\/.*//')"
|
||||
printf "$MUSED" | egrep "[0-9]{4}" > /dev/null && FUSED="$(printf "$MUSED" | cut -c -2 | sed 's/./.&/2')G" || FUSED=$MUSED
|
||||
printf "$FUSED/$TOTAL\n"
|
||||
}
|
||||
|
||||
_freebsd() {
|
||||
TOTAL="$(freecolor -om | awk '/^Mem:/ {print $2}')"
|
||||
MUSED="$(freecolor -om | awk '/^Mem:/ {print $3}')"
|
||||
printf "$MUSED" | egrep "[0-9]{4}" > /dev/null && FUSED="$(printf "$MUSED" | cut -c -2 | sed 's/./.&/2')G" || FUSED=""$MUSED"M"
|
||||
printf "$TOTAL" | egrep "[0-9]{4}" > /dev/null && TOTAL="$(printf "$TOTAL" | cut -c -2 | sed 's/./.&/2')G" || FUSED=$TOTAL
|
||||
printf "$FUSED/$TOTAL\n"
|
||||
}
|
||||
|
||||
_linux() {
|
||||
MUSED="$(free -m | awk '/^Mem:/ {print $3}')"
|
||||
echo "$MUSED"
|
||||
}
|
||||
|
||||
case $(uname) in
|
||||
Linux) _linux ;;
|
||||
OpenBSD) _openbsd ;;
|
||||
FreeBSD) _freebsd ;;
|
||||
esac
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
# Show local IP and transfer if connected to the internet. Opens $NETWORKMANAGER on click
|
||||
NETWORKMANAGER=connman-gtk
|
||||
ifconfig | grep ".*inet.*netmask" | tail -n 1 | sed 's/inet //g' | sed 's/ netmask.*//g' | sed 's/ //g' | sed 's/ //g'
|
||||
|
||||
case $BLOCK_BUTTON in
|
||||
1) $NETWORKMANAGER ;;
|
||||
esac
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
swap_used_kib=$(awk '/SwapTotal/ {total=$2} /SwapFree/ {free=$2} END {print total - free}' /proc/meminfo)
|
||||
|
||||
swap_used_mib=$((swap_used_kib / 1024))
|
||||
|
||||
echo "${swap_used_mib}"
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
_bsd() {
|
||||
sndioctl -n output.level | sed 's/0\.//' | sed 's/.$/%/' | sed 's/\.//'
|
||||
}
|
||||
|
||||
_linux() {
|
||||
printf "$(pamixer --get-volume)%%\n"
|
||||
}
|
||||
|
||||
case $(uname) in
|
||||
Linux) _linux ;;
|
||||
*BSD) _bsd ;;
|
||||
esac
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
printf "Title: "
|
||||
read TITLE
|
||||
printf "Sound device (ex: default, 1, 2): "
|
||||
read SNDDEV
|
||||
|
||||
TITLE="$(echo $TITLE | sed 's/ /_/g')"
|
||||
DIRNAME="$TITLE-$(date '+%s')"
|
||||
mkdir -p "$HOME/videos/screencasts/$DIRNAME"
|
||||
|
||||
ffmpeg -loglevel fatal -video_size 1600x900 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -preset veryfast "$HOME/videos/screencasts/$DIRNAME/video.mkv" & printf "Video recording started.\n"
|
||||
aucat -f snd/$SNDDEV -o "$HOME/videos/screencasts/$DIRNAME/audio.wav" > /dev/null & printf "Audio recording started.\n\n"
|
||||
|
||||
printf "Press enter to stop recording"
|
||||
read lol
|
||||
kill $(pgrep ffmpeg)
|
||||
kill $(pgrep aucat)
|
||||
|
||||
cd "$HOME/videos/screencasts/$DIRNAME"
|
||||
ffmpeg -loglevel fatal -i video.mkv -i audio.wav -c copy final.mkv
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
DIR="$HOME/Pictures/Screenshots"
|
||||
FILE="$DIR/shot_$(date +%s).png"
|
||||
|
||||
mkdir -p "$DIR"
|
||||
maim -s "$FILE"
|
||||
xclip -selection clipboard -t image/png -i "$FILE"
|
||||
notify-send "Region Captured" "Saved and copied to clipboard"
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
maim -i "$(xdotool getactivewindow)" /tmp/shot.png
|
||||
xclip -selection clipboard -t image/png -i /tmp/shot.png
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
DIR="$HOME/Pictures/Screenshots"
|
||||
mkdir -p "$DIR"
|
||||
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||
FINAL_FILE="$DIR/screenshot_$TIMESTAMP.png"
|
||||
TEMP_FULLSCREEN=$(mktemp /tmp/fullscreen_XXXXXX.png)
|
||||
grim "$TEMP_FULLSCREEN"
|
||||
TEMP_FILE=$(mktemp /tmp/screenshot_XXXXXX.png)
|
||||
grim -g "$(slurp)" "$TEMP_FILE"
|
||||
cp "$TEMP_FILE" "$FINAL_FILE"
|
||||
wl-copy < "$TEMP_FILE"
|
||||
notify-send "Screenshot" "Saved to $FINAL_FILE" -i "$TEMP_FILE"
|
||||
rm "$TEMP_FILE" "$TEMP_FULLSCREEN"
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import secrets
|
||||
import subprocess
|
||||
|
||||
BASE_DIR = "/home/coast/.local/src/wall"
|
||||
|
||||
wallpapers = []
|
||||
for root, dirs, files in os.walk(BASE_DIR):
|
||||
for file in files:
|
||||
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
|
||||
wallpapers.append(os.path.join(root, file))
|
||||
|
||||
if not wallpapers:
|
||||
print("No wallpapers found!")
|
||||
exit(1)
|
||||
|
||||
chosen_wallpaper = secrets.choice(wallpapers)
|
||||
print(chosen_wallpaper)
|
||||
subprocess.run(["swaybg", "-i", chosen_wallpaper, "-m", "fill"])
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
WALL_DIR="/home/coast/.local/src/wall"
|
||||
SUBDIR=$(find "$WALL_DIR" -mindepth 1 -maxdepth 1 -type d | shuf -n1)
|
||||
FILE=$(find "$SUBDIR" -type f \( -iname '*.jpg' -o -iname '*.png' -o -iname '*.jpeg' \) | shuf -n1)
|
||||
if [[ -n "$FILE" ]]; then
|
||||
swaymsg output '*' bg "$FILE" fill
|
||||
fi
|
||||
@@ -0,0 +1,2 @@
|
||||
#!sh
|
||||
flatpak run org.vinegarhq.Sober
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from stacki3 import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
cd "$HOME/Downloads/MeowGun" && wine meowgun.exe
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
cd "/home/coast/.wine/drive_c/WolfQuest/" && env WINEDLLOVERRIDES="winhttp=n,b" wine64.bin WolfQuestAE.exe
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
wlr-randr --output eDP-1 --off &
|
||||
|
||||
(
|
||||
if ! pgrep -x foot >/dev/null; then
|
||||
foot -s
|
||||
fi
|
||||
) &
|
||||
|
||||
(
|
||||
if ! pgrep -x udiskie >/dev/null; then
|
||||
/usr/bin/udiskie
|
||||
fi
|
||||
) &
|
||||
|
||||
|
||||
(
|
||||
if ! pgrep -x swaybg >/dev/null; then
|
||||
swaybg -i "/home/coast/.local/src/wall/landscapes/1685466762541384.jpg" &
|
||||
fi
|
||||
) &
|
||||
|
||||
(
|
||||
if ! pgrep -x polkit-gnome-authentication-agent >/dev/null; then
|
||||
/usr/libexec/polkit-gnome-authentication-agent-1
|
||||
fi
|
||||
) &
|
||||
|
||||
(
|
||||
if ! pgrep -x eww >/dev/null; then
|
||||
eww daemon &
|
||||
eww open-many year month day &
|
||||
else
|
||||
pkill eww
|
||||
eww daemon &
|
||||
eww open-many year month day &
|
||||
fi
|
||||
) &
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
export WAYLAND_DISPLAY=wayland-0
|
||||
export XDG_CURRENT_DESKTOP=niri
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
export XWAYLAND_DISPLAY=:1
|
||||
|
||||
xwayland-satellite &
|
||||
niri &
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
dbus-run-session qtile start -b wayland
|
||||
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
COMMAND="$*"
|
||||
BINARY="$(printf "$COMMAND" | sed 's/ .*//')"
|
||||
ARGS="$(printf "$COMMAND" | sed "s/$BINARY //")"
|
||||
|
||||
main() {
|
||||
WINID=$(xdo id)
|
||||
xdo hide $WINID
|
||||
$BINARY "$ARGS" || $BINARY $ARGS
|
||||
xdo show $WINID
|
||||
}
|
||||
|
||||
[ "$1" = "" ] && printf "Error: You must provide at least one argument.\nExample usage: swallow mpv ~/videos/AmericanPsycho.mkv\n" || main "$@"
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
# Open encrypted swap manually
|
||||
|
||||
/usr/bin/cryptsetup open /dev/nvme0n1p2 cryptswap
|
||||
/usr/sbin/swapon /dev/dm-1
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env sh
|
||||
# Close encrypted swap manually
|
||||
|
||||
swapoff /dev/dm-1
|
||||
cryptsetup close cryptswap
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Date
|
||||
date=$(date "+%I:%M %p")
|
||||
|
||||
# CPU temp
|
||||
cpu=$(sensors | grep "Package" | cut -f 1-3,5 -d " ")
|
||||
|
||||
# Alsa master volume
|
||||
volume=$(amixer get Master | grep "Right:" | cut -f 7,8 -d " ")
|
||||
|
||||
# Battery percentage
|
||||
batt=""
|
||||
for b in /sys/class/power_supply/BAT*; do
|
||||
if [ -d "$b" ]; then
|
||||
if [ -r "$b/capacity" ]; then
|
||||
cap=$(<"$b/capacity")
|
||||
else
|
||||
cap=0
|
||||
fi
|
||||
if [ -z "$batt" ]; then
|
||||
batt="${cap}%"
|
||||
else
|
||||
batt="$batt ${cap}%"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# If no battery found
|
||||
if [ -z "$batt" ]; then
|
||||
batt="None"
|
||||
fi
|
||||
|
||||
# Status bar
|
||||
echo "BAT: $batt | $date"
|
||||
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/lib/python-exec/python3.13/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from tabulate import _main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(_main())
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
outputs_json="$(niri msg --json outputs)"
|
||||
|
||||
echo "$outputs_json" | jq -c '.[]' | while read -r out; do
|
||||
name=$(echo "$out" | jq -r '.name')
|
||||
dpms=$(echo "$out" | jq -r '.dpms')
|
||||
|
||||
if [ "$dpms" = "On" ]; then
|
||||
echo "Turning off $name"
|
||||
niri msg output "$name" dpms off
|
||||
fi
|
||||
done
|
||||
Executable
BIN
Binary file not shown.
Executable
+79
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env lua
|
||||
|
||||
local home = os.getenv("home") or os.getenv("HOME")
|
||||
local cache_dir = home .. "/.cache"
|
||||
local zig_cache = cache_dir .. "/zig"
|
||||
local proxy_cmd = "ssh -o ProxyCommand='nc -X 5 -x 127.0.0.1:65000 %h %p'"
|
||||
|
||||
local project_dir = arg[1] or (home .. "/Projects/river/river")
|
||||
|
||||
local function run(cmd)
|
||||
local ok = os.execute(cmd)
|
||||
if not ok then
|
||||
io.stderr:write("failed: " .. cmd .. "\n")
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
||||
local function fetch_git_dep(path, commit)
|
||||
local name = path:match("([^/]+)$"):gsub("^zig%-", "")
|
||||
local tmp = cache_dir .. "/" .. name .. "-tmp"
|
||||
local tarball = cache_dir .. "/" .. name .. ".tar.gz"
|
||||
|
||||
run("rm -rf " .. tmp)
|
||||
run('GIT_SSH_COMMAND="' .. proxy_cmd .. '" git clone git@codeberg.org:' .. path .. ".git " .. tmp)
|
||||
run("git -C " .. tmp .. " checkout " .. commit)
|
||||
run("tar -czf " .. tarball .. " -C " .. cache_dir .. " " .. name .. "-tmp")
|
||||
run("zig fetch --global-cache-dir " .. zig_cache .. " file://" .. tarball)
|
||||
run(
|
||||
"sed -i '/\\."
|
||||
.. name
|
||||
.. ' = /,/\\.hash/{s|.url = "[^"]*"|.url = "file://'
|
||||
.. tarball
|
||||
.. "\"|}' "
|
||||
.. project_dir
|
||||
.. "/build.zig.zon"
|
||||
)
|
||||
end
|
||||
|
||||
local function fetch_https_dep(url)
|
||||
local filename = url:match("([^/]+)$")
|
||||
local name = filename:gsub("^zig%-", ""):gsub("%-v?[0-9].*$", ""):gsub("%.tar%.gz$", "")
|
||||
local tarball = cache_dir .. "/" .. filename
|
||||
|
||||
run('GIT_SSH_COMMAND="' .. proxy_cmd .. '" curl -x socks5h://127.0.0.1:65000 -Lo ' .. tarball .. " " .. url)
|
||||
run("zig fetch --global-cache-dir " .. zig_cache .. " file://" .. tarball)
|
||||
run(
|
||||
"sed -i '/\\."
|
||||
.. name
|
||||
.. ' = /,/\\.hash/{s|.url = "[^"]*"|.url = "file://'
|
||||
.. tarball
|
||||
.. "\"|}' "
|
||||
.. project_dir
|
||||
.. "/build.zig.zon"
|
||||
)
|
||||
end
|
||||
|
||||
run("git -C " .. project_dir .. " pull")
|
||||
|
||||
local zon = io.open(project_dir .. "/build.zig.zon", "r")
|
||||
if not zon then
|
||||
io.stderr:write("cant open build.zig.zon\n")
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
for line in zon:lines() do
|
||||
local path, commit = line:match("git%+https://codeberg%.org/([^?]+)%?ref=[^#]+#([a-f0-9]+)")
|
||||
if path and commit then
|
||||
fetch_git_dep(path, commit)
|
||||
else
|
||||
local url = line:match('"(https://codeberg%.org/[^"]+%.tar%.gz)"')
|
||||
if url then
|
||||
fetch_https_dep(url)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
zon:close()
|
||||
|
||||
run("cd " .. project_dir .. " && zig build -Doptimize=ReleaseSafe --prefix " .. home .. "/.local install")
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env sh
|
||||
if [ -z "$1" ]; then
|
||||
echo "usage: $0 <file>"
|
||||
exit 1
|
||||
fi
|
||||
FILE="$1"
|
||||
RESPONSE=$(curl -s -X POST \
|
||||
-F "file=@${FILE}" \
|
||||
https://coast.is-terrible.com/api/files/create)
|
||||
URL=$(echo "$RESPONSE" | jq -r '.url')
|
||||
THUMBNAIL_URL=$(echo "$RESPONSE" | jq -r '.thumb')
|
||||
DELETION_URL=$(echo "$RESPONSE" | jq -r '.del_url')
|
||||
ERROR=$(echo "$RESPONSE" | jq -r '.error')
|
||||
if [ "$ERROR" != "null" ]; then
|
||||
echo "Error uploading file: $ERROR"
|
||||
exit 1
|
||||
fi
|
||||
echo "file uploaded successfully!"
|
||||
echo "url: $URL"
|
||||
echo "thumbnail url: $THUMBNAIL_URL"
|
||||
echo "deletion url: $DELETION_URL"
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
RED = "\033[0;31m"
|
||||
RESET = "\033[0m"
|
||||
|
||||
def main():
|
||||
if os.geteuid() != 0:
|
||||
print(f"{RED}[!] Superuser access is required{RESET}")
|
||||
sys.exit(1)
|
||||
|
||||
if not os.path.exists("/dev/sda"):
|
||||
print(f"{RED}[!] USB not found!{RESET}")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"{RED}[*] Decrypting /dev/sda1...{RESET}")
|
||||
try:
|
||||
subprocess.run(["cryptsetup", "open", "/dev/sda1", "sda1_crypt"], check=True)
|
||||
subprocess.run(["mount", "/dev/mapper/sda1_crypt", "/mnt/usb", "--mkdir"], check=True)
|
||||
print(f"{RED}[*] Decrypted and mounted to /mnt/usb!{RESET}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"{RED}[!] Error: {e}{RESET}")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
RED = "\033[0;31m"
|
||||
RESET = "\033[0m"
|
||||
|
||||
def run(cmd, fail_msg):
|
||||
try:
|
||||
subprocess.run(cmd, check=True)
|
||||
except subprocess.CalledProcessError:
|
||||
print(f"{RED}[!] {fail_msg}{RESET}")
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
if os.geteuid() != 0:
|
||||
print(f"{RED}[!] Superuser access is required{RESET}")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"{RED}[*] Unmounting /mnt/usb...{RESET}")
|
||||
run(["umount", "/mnt/usb"], "Failed to unmount /mnt/usb")
|
||||
|
||||
print(f"{RED}[*] Closing encrypted device...{RESET}")
|
||||
run(["cryptsetup", "close", "sda1_crypt"], "Failed to close mapper device")
|
||||
|
||||
print(f"{RED}[*] Unmounted and closed successfully!{RESET}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+75
@@ -0,0 +1,75 @@
|
||||
#!awk -f
|
||||
|
||||
function uwuify(s, o) {
|
||||
o = s
|
||||
|
||||
# r/l -> w/W
|
||||
o = gensub(/[rl]/, "w", "g", o)
|
||||
o = gensub(/[RL]/, "W", "g", o)
|
||||
|
||||
# n + vowel -> ny
|
||||
o = gensub(/N([AEIOU])/, "NY\\1", "g", o)
|
||||
o = gensub(/([nN])([aeiouAEIOU])/, "\\1y\\2", "g", o)
|
||||
|
||||
# soft c before e/i
|
||||
o = gensub(/c([ie])/, "sh\\1", "g", o)
|
||||
o = gensub(/C([ie])/, "Sh\\1", "g", o)
|
||||
o = gensub(/C([IE])/, "SH\\1", "g", o)
|
||||
|
||||
# th -> d
|
||||
o = gensub(/th/, "d", "g", o)
|
||||
o = gensub(/Th/, "D", "g", o)
|
||||
o = gensub(/TH/, "D", "g", o)
|
||||
|
||||
# ove -> uv
|
||||
o = gensub(/ove/, "uv", "g", o)
|
||||
o = gensub(/OVE/, "UV", "g", o)
|
||||
|
||||
# ing -> in’
|
||||
o = gensub(/ing\b/, "in’", "g", o)
|
||||
o = gensub(/ING\b/, "IN’", "g", o)
|
||||
|
||||
# punctuation uwuifier
|
||||
o = gensub(/!+/, " owo~ ", "g", o)
|
||||
o = gensub(/\?+/, " uwu?", "g", o)
|
||||
o = gensub(/\.{3}/, "… >w< ", "g", o)
|
||||
|
||||
return o
|
||||
}
|
||||
|
||||
function uwuify_line(line, pre, post, uw_pre, diff, fullseq, num, newnum, newseq) {
|
||||
if (match(line, /^(.*:)/)) {
|
||||
pre = substr(line, 1, RLENGTH)
|
||||
post = substr(line, RLENGTH + 1)
|
||||
|
||||
uw_pre = uwuify(pre)
|
||||
diff = length(uw_pre) - length(pre)
|
||||
|
||||
if (match(uw_pre, /\033\[[0-9]+C/)) {
|
||||
fullseq = substr(uw_pre, RSTART, RLENGTH)
|
||||
if (match(fullseq, /\033\[([0-9]+)C/, m)) {
|
||||
num = m[1]
|
||||
newnum = num - diff
|
||||
if (newnum < 0) newnum = 0
|
||||
newseq = "\033[" newnum "C"
|
||||
uw_pre = substr(uw_pre, 1, RSTART - 1) newseq substr(uw_pre, RSTART + RLENGTH)
|
||||
}
|
||||
}
|
||||
|
||||
return uw_pre uwuify(post)
|
||||
}
|
||||
return uwuify(line)
|
||||
}
|
||||
|
||||
{
|
||||
# Kitty image protocol lines stay raw
|
||||
if ($0 ~ /\033_G/) {
|
||||
print $0
|
||||
} else if ($0 ~ /\033\[[0-9]+C/) {
|
||||
out = uwuify_line($0)
|
||||
print out
|
||||
} else {
|
||||
out = uwuify($0)
|
||||
print out
|
||||
}
|
||||
}
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
vesktop --ozone-platform=wayland
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from win2xcur.main.win2xcur import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/lib/python-exec/python3.13/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from websocket._wsdump import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/python3.13
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
from win2xcur.main.x2wincur import main
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pyudev
|
||||
import subprocess
|
||||
|
||||
context = pyudev.Context()
|
||||
monitor = pyudev.Monitor.from_netlink(context)
|
||||
monitor.filter_by(subsystem='block')
|
||||
|
||||
for device in iter(monitor.poll, None):
|
||||
if device.action == 'add':
|
||||
print(f"New device detected: {device.device_node}")
|
||||
subprocess.run(f"notify-send 'New device connected: {device.device_node}'", shell=True)
|
||||
Reference in New Issue
Block a user