From 5adf91302a3c781b8e0dde070f273cf65e7506d2 Mon Sep 17 00:00:00 2001 From: ranomier Date: Wed, 27 Nov 2024 01:17:30 +0100 Subject: [PATCH 1/8] added failglob and LC_ALL --- audio_mixer | 2 ++ battery | 2 ++ brght | 2 ++ dlp-trnsrpt | 2 ++ mserve | 25 +++++++++++++++---------- nstore-find | 2 ++ nswitch | 2 ++ rustdesk_profile | 2 ++ screenshot | 2 ++ webcam | 2 ++ 10 files changed, 33 insertions(+), 10 deletions(-) diff --git a/audio_mixer b/audio_mixer index 32fddb6..bff1c30 100755 --- a/audio_mixer +++ b/audio_mixer @@ -1,6 +1,8 @@ #/usr/bin/env bash # docstring=simple mixer gui app, for the desktop set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 mixxc \ --anchor right \ diff --git a/battery b/battery index 736b359..eda06d7 100755 --- a/battery +++ b/battery @@ -1,5 +1,7 @@ #!/usr/bin/env bash # docstring=just shows the current capacity set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 cat /sys/class/power_supply/BAT0/capacity diff --git a/brght b/brght index cc735e3..ac217a6 100755 --- a/brght +++ b/brght @@ -1,6 +1,8 @@ #!/usr/bin/env bash # docstring=simplifies the brightnessctl command set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 # when invoked without parameter will print current brightness in percent # it accepts a parameter from 0 to 100 for brightness. Please ommit the % symbol. diff --git a/dlp-trnsrpt b/dlp-trnsrpt index cb6a015..f36619f 100755 --- a/dlp-trnsrpt +++ b/dlp-trnsrpt @@ -1,6 +1,8 @@ #!/usr/bin/env bash # docstring=transcript of youtube videos set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 TEMP_FOLDER='/tmp/dlp-trnsrpt' mkdir -p "$TEMP_FOLDER" diff --git a/mserve b/mserve index 07123d7..7bbb7bf 100755 --- a/mserve +++ b/mserve @@ -1,15 +1,20 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # docstring=serve files with http. -set -E -o pipefail -miniserve \ - --auth=guest:Super9000! \ - --color-scheme-dark=monokai \ - --qrcode \ - --dirs-first \ - --hide-version-footer \ - --show-wget-footer \ - --title="Rano's quick share" +import subprocess as sp +def run(): + sp.run(["miniserve", + "--auth=guest:Super9000!", + "--color-scheme-dark=monokai", + "--qrcode", + "--dirs-first", + "--hide-version-footer", + "--show-wget-footer", + "--title=Rano's quick share" + ]) + +if __name__ == "__main__": + run() # implement a switch for easy --upload-files=DIR diff --git a/nstore-find b/nstore-find index 27999e1..0a5820d 100755 --- a/nstore-find +++ b/nstore-find @@ -1,5 +1,7 @@ #!/usr/bin/env bash # docstring=searches the nix store with find set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 find /nix/store/ -maxdepth 1 -iname '*'"$@"'*' diff --git a/nswitch b/nswitch index 4bfdec9..69c75af 100755 --- a/nswitch +++ b/nswitch @@ -2,6 +2,8 @@ # from https://github.com/0atman/noboilerplate/blob/main/scripts/38-nixos.md#dont-use-nix-env # docstring=quick edit (or ling xD) for nixos config set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 cd ~/Projects/NixOS/ nvim diff --git a/rustdesk_profile b/rustdesk_profile index c2fbec3..332adff 100755 --- a/rustdesk_profile +++ b/rustdesk_profile @@ -1,6 +1,8 @@ #!/usr/bin/env bash # docstring=have and create multiple rustdesk profiles set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 # define frist element in argument list as profile name RUSTDESK_PROFILE="$1" diff --git a/screenshot b/screenshot index c2c7ce2..a2af902 100755 --- a/screenshot +++ b/screenshot @@ -1,5 +1,7 @@ #!/usr/bin/env bash # docstring=do a screenshots on wayland compositors set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 grim -g "$(slurp -o -r -c '#ff0000ff')" - | satty --filename - --fullscreen --output-filename ~/Media/Pictures/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png diff --git a/webcam b/webcam index 10e75fb..8fc6d6d 100755 --- a/webcam +++ b/webcam @@ -1,6 +1,8 @@ #!/usr/bin/env bash # docstring=open the webcam or v4l2 /dev/video* device set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 if [[ "-h" == "$1" ]]; then echo "-l list devices" From 8530750afc4b70704af6953468762461de3f9b0f Mon Sep 17 00:00:00 2001 From: ranomier Date: Wed, 27 Nov 2024 01:18:00 +0100 Subject: [PATCH 2/8] now python --- hyprperf | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/hyprperf b/hyprperf index 9d45779..26969ab 100755 --- a/hyprperf +++ b/hyprperf @@ -1,5 +1,23 @@ -#!/usr/bin/env bash +#!/usr/bin/env python # docstring=disable hyprland blur for performance -set -E -o pipefail +import subprocess as sp +import json -hyprctl keyword decoration:blur:enabled false +def getoption(optionstring): + json_str = sp.run(["hyprctl", "-j", "getoption", optionstring], + capture_output=True, + text=True).stdout + + return json.loads(json_str) + +def set_blur(setstr): + return sp.run(["hyprctl", "keyword", "decoration:blur:enabled", setstr]) + +def main(): + if getoption("decoration:blur:enabled")["int"] == 1: + set_blur("false") + else: + set_blur("true") + +if __name__ == "__main__": + main() From 84b98480f8192c6d40d7d6178fbe72228f37e0bb Mon Sep 17 00:00:00 2001 From: ranomier Date: Wed, 27 Nov 2024 02:26:56 +0100 Subject: [PATCH 3/8] fix shebang --- audio_mixer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audio_mixer b/audio_mixer index bff1c30..ed83e4a 100755 --- a/audio_mixer +++ b/audio_mixer @@ -1,4 +1,4 @@ -#/usr/bin/env bash +#!/usr/bin/env bash # docstring=simple mixer gui app, for the desktop set -E -o pipefail shopt -s failglob From a17ede229c21f14394bf502dd0060f53d24d6636 Mon Sep 17 00:00:00 2001 From: ranomier Date: Sun, 1 Dec 2024 03:10:02 +0100 Subject: [PATCH 4/8] added list_ips tool --- list_ips | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 list_ips diff --git a/list_ips b/list_ips new file mode 100755 index 0000000..14b079d --- /dev/null +++ b/list_ips @@ -0,0 +1,46 @@ +#!/usr/bin/env python +#docstring=dirty tool to simplify the output of ip dramaticly +import subprocess as sp +import json + +CFG = { + "iface_allow_list": ["eth", "enp", "wlp", "wlan"], + "show_ip4": True, + "show_ip6": False, +} + +def filter_interfaces(): + output = json.loads( + sp.run(["ip", "-j", "addr", "show"], + text=True, + capture_output=True).stdout) + filtered_list=[] + for interface in output: + for allowed in CFG["iface_allow_list"]: + if allowed in interface["ifname"]: + filtered_list.append(interface) + return filtered_list + +def ip_string(interface): + conn_list = "" + for conn in interface["addr_info"]: + if conn["family"] == "inet" and CFG["show_ip4"] or conn["family"] == "inet6" and CFG["show_ip6"]: + conn_list += (conn["local"] + "/" + str(conn["prefixlen"])) + ", " + return conn_list.rstrip(", ") + +def pretty(interfaces): + longest_member = 0 + for interface in interfaces: + if len(interface["ifname"]) > longest_member: + longest_member = len(interface["ifname"]) + + for interface in interfaces: + len_diff = longest_member - len(interface["ifname"]) + print(interface["ifname"], ": ", " " * len_diff, ip_string(interface), sep="") + + + +def main(): + pretty(filter_interfaces()) +if __name__ == "__main__": + main() From 82ec329d2ffc28e0f7be7e1c60e827f542a7f988 Mon Sep 17 00:00:00 2001 From: ranomier Date: Fri, 13 Dec 2024 20:02:45 +0100 Subject: [PATCH 5/8] added argparse and upload parameter --- mserve | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/mserve b/mserve index 7bbb7bf..563f193 100755 --- a/mserve +++ b/mserve @@ -2,19 +2,39 @@ # docstring=serve files with http. import subprocess as sp +import argparse +CFG = { + "base": [ + "miniserve", + "--auth=guest:Super9000!", + "--color-scheme-dark=monokai", + "--qrcode", + "--dirs-first", + "--hide-version-footer", + "--show-wget-footer", + "--title=Rano's quick share", + ], + "folder": "./" +} -def run(): - sp.run(["miniserve", - "--auth=guest:Super9000!", - "--color-scheme-dark=monokai", - "--qrcode", - "--dirs-first", - "--hide-version-footer", - "--show-wget-footer", - "--title=Rano's quick share" - ]) +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("-u", "--upload", help="enable upload", action="store_true") + args = ap.parse_args() + + cmd = CFG["base"] + + if args.upload: + cmd.extend(["--upload-files=./", "--overwrite-files"]) + + cmd.append(CFG["folder"]) + + try: + sp.run(cmd) + except KeyboardInterrupt: + print("\ninterrupted by user") if __name__ == "__main__": - run() + main() # implement a switch for easy --upload-files=DIR From eb54e1b5180383204cac0620c1650b2d2c1ca541 Mon Sep 17 00:00:00 2001 From: ranomier Date: Fri, 13 Dec 2024 20:04:00 +0100 Subject: [PATCH 6/8] make it look nicer --- nswitch | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/nswitch b/nswitch index 69c75af..7f5e213 100755 --- a/nswitch +++ b/nswitch @@ -7,18 +7,22 @@ export LC_ALL=C.UTF8 cd ~/Projects/NixOS/ nvim -nix fmt . &>/dev/null -git diff -U0 *.nix -echo "Do you want to rebuild NixOS? [y/N]" -read -r YESNO +printf ">>> auto formating ..." +nix fmt . &> /dev/null +printf " DONE!\n" + +git diff -U0 # "*.nix" + +printf ">>> Do you want to rebuild NixOS? [y/N]\n" +printf "<<< " && read -r YESNO if ! [[ "${YESNO,,}" == "y" ]]; then - echo "Exiting ..." + printf ">>> Exiting ...\n" exit 1 fi -echo "Rebuilding NixOS" -sudo nixos-rebuild switch &>nixos-switch.log || ( - cat nixos-switch.log | grep --color error && false) +printf ">>> Rebuilding NixOS\n" +sudo nixos-rebuild switch | tee nixos-switch.log || ( + grep --color error nixos-switch.log && false) gen=$(nixos-rebuild list-generations | grep current) git commit -am "$gen" From c7d98f6d300ffabeacf2e8d5e6a031139691aa50 Mon Sep 17 00:00:00 2001 From: ranomier Date: Fri, 13 Dec 2024 20:19:44 +0100 Subject: [PATCH 7/8] added option to list path to mytools dir --- mytools | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/mytools b/mytools index fc44975..806d67c 100755 --- a/mytools +++ b/mytools @@ -1,5 +1,6 @@ #!/usr/bin/env python3 # docstring=lists all tools and their docstrings +import argparse import os import os.path as path @@ -7,6 +8,8 @@ CFG = { "max_lines": 20, "offset": 20 } +SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__)) + def parse_docstring(file_path, max_lines=CFG["max_lines"]): """ @@ -38,15 +41,14 @@ def offset(element, offset=CFG["offset"]): return " " * (offset - element_length) -def main(): +def list_tools(): """ lists all tools and their docstring from the same directory this sits in """ - script_path = os.path.dirname(os.path.realpath(__file__)) - list_dir = sorted(os.listdir(script_path)) + list_dir = sorted(os.listdir(SCRIPT_PATH)) for element in list_dir: - element_path = path.join(script_path, element) + element_path = path.join(SCRIPT_PATH, element) if path.isfile(element_path): print(element, end="") docstring = parse_docstring(element_path) @@ -55,5 +57,16 @@ def main(): print() +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("-p", "--path", help="output path to tools directory", action="store_true") + args = ap.parse_args() + + if args.path: + print(SCRIPT_PATH) + else: + list_tools() + + if __name__ == "__main__": main() From 25bd9060af4ab599ca7a8e4f3cbd2ec09d1ff31f Mon Sep 17 00:00:00 2001 From: ranomier Date: Fri, 13 Dec 2024 21:28:06 +0100 Subject: [PATCH 8/8] added back audio remote tool --- remote-audio | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 remote-audio diff --git a/remote-audio b/remote-audio new file mode 100755 index 0000000..d50540e --- /dev/null +++ b/remote-audio @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +#docstring=remote audio through roc-toolkit +#!TODO! use list_ips +#roc-recv -s rtp+rs8m://0.0.0.0:10001 -r rs8m://0.0.0.0:10002 -o alsa://default +#roc-send -s rtp+rs8m://192.168.178.40:10001 -r rs8m://192.168.178.40:10002 -i alsa://default +set -E -o pipefail +shopt -s failglob +export LC_ALL=C.UTF8 + +start() { + roc-recv -s rtp+rs8m://0.0.0.0:10001 -r rs8m://0.0.0.0:10002 -o alsa://default & + roc-send -s rtp+rs8m://192.168.178.40:10001 -r rs8m://192.168.178.40:10002 -i alsa://default & +} + +stop() { + killall roc-send + killall roc-recv +} + +stop9() { + killall -9 roc-send + killall -9 roc-recv +} + +if [[ -z "$1" ]]; then + #start() + start +else + $1 +fi