Compare commits

...

10 commits

Author SHA1 Message Date
d67d89a6ef added back audio remote tool 2024-12-13 21:28:06 +01:00
5eb91c6806 added option to list path to mytools dir 2024-12-13 20:19:44 +01:00
692845b707 make it look nicer 2024-12-13 20:04:00 +01:00
40c7c325e7 added argparse and upload parameter 2024-12-13 20:02:45 +01:00
ca90979e8f added list_ips tool 2024-12-01 03:10:02 +01:00
1f9956a2cb fix shebang 2024-11-27 02:26:56 +01:00
fc8f40ff9d now python 2024-11-27 01:18:00 +01:00
eafdc2c98d added failglop and LC_ALL 2024-11-27 01:17:30 +01:00
88b0833a27 f*** performance; readability! 2024-11-24 02:12:01 +01:00
c0deb9d71d for performance 2024-11-24 02:06:19 +01:00
15 changed files with 183 additions and 30 deletions

View file

@ -1,6 +1,8 @@
#/usr/bin/env bash #!/usr/bin/env bash
# docstring=simple mixer gui app, for the desktop # docstring=simple mixer gui app, for the desktop
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
mixxc \ mixxc \
--anchor right \ --anchor right \

View file

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=just shows the current capacity # docstring=just shows the current capacity
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
cat /sys/class/power_supply/BAT0/capacity cat /sys/class/power_supply/BAT0/capacity

2
brght
View file

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=simplifies the brightnessctl command # docstring=simplifies the brightnessctl command
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
# when invoked without parameter will print current brightness in percent # when invoked without parameter will print current brightness in percent
# it accepts a parameter from 0 to 100 for brightness. Please ommit the % symbol. # it accepts a parameter from 0 to 100 for brightness. Please ommit the % symbol.

View file

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=transcript of youtube videos # docstring=transcript of youtube videos
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
TEMP_FOLDER='/tmp/dlp-trnsrpt' TEMP_FOLDER='/tmp/dlp-trnsrpt'
mkdir -p "$TEMP_FOLDER" mkdir -p "$TEMP_FOLDER"

View file

@ -1,5 +1,23 @@
#!/usr/bin/env bash #!/usr/bin/env python
# docstring=disable hyprland blur for performance # 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()

46
list_ips Executable file
View file

@ -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()

45
mserve
View file

@ -1,15 +1,40 @@
#!/usr/bin/env bash #!/usr/bin/env python
# docstring=serve files with http. # docstring=serve files with http.
set -E -o pipefail
miniserve \ import subprocess as sp
--auth=guest:Super9000! \ import argparse
--color-scheme-dark=monokai \
--qrcode \
--dirs-first \
--hide-version-footer \
--show-wget-footer \
--title="Rano's quick share"
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 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__":
main()
# implement a switch for easy --upload-files=DIR # implement a switch for easy --upload-files=DIR

21
mytools
View file

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# docstring=lists all tools and their docstrings # docstring=lists all tools and their docstrings
import argparse
import os import os
import os.path as path import os.path as path
@ -7,6 +8,8 @@ CFG = {
"max_lines": 20, "max_lines": 20,
"offset": 20 "offset": 20
} }
SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
def parse_docstring(file_path, max_lines=CFG["max_lines"]): def parse_docstring(file_path, max_lines=CFG["max_lines"]):
""" """
@ -38,15 +41,14 @@ def offset(element, offset=CFG["offset"]):
return " " * (offset - element_length) return " " * (offset - element_length)
def main(): def list_tools():
""" """
lists all tools and their docstring from the same directory this sits in 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: for element in list_dir:
element_path = path.join(script_path, element) element_path = path.join(SCRIPT_PATH, element)
if path.isfile(element_path): if path.isfile(element_path):
print(element, end="") print(element, end="")
docstring = parse_docstring(element_path) docstring = parse_docstring(element_path)
@ -55,5 +57,16 @@ def main():
print() 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__": if __name__ == "__main__":
main() main()

View file

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=searches the nix store with find # docstring=searches the nix store with find
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
find /nix/store/ -maxdepth 1 -iname '*'"$@"'*' find /nix/store/ -maxdepth 1 -iname '*'"$@"'*'

22
nswitch
View file

@ -2,21 +2,27 @@
# from https://github.com/0atman/noboilerplate/blob/main/scripts/38-nixos.md#dont-use-nix-env # 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 # docstring=quick edit (or ling xD) for nixos config
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
cd ~/Projects/NixOS/ cd ~/Projects/NixOS/
nvim nvim
nix fmt . &>/dev/null
git diff -U0 *.nix
echo "Do you want to rebuild NixOS? [y/N]" printf ">>> auto formating ..."
read -r YESNO 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 if ! [[ "${YESNO,,}" == "y" ]]; then
echo "Exiting ..." printf ">>> Exiting ...\n"
exit 1 exit 1
fi fi
echo "Rebuilding NixOS" printf ">>> Rebuilding NixOS\n"
sudo nixos-rebuild switch &>nixos-switch.log || ( sudo nixos-rebuild switch | tee nixos-switch.log || (
cat nixos-switch.log | grep --color error && false) grep --color error nixos-switch.log && false)
gen=$(nixos-rebuild list-generations | grep current) gen=$(nixos-rebuild list-generations | grep current)
git commit -am "$gen" git commit -am "$gen"

30
remote-audio Executable file
View file

@ -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

View file

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=have and create multiple rustdesk profiles # docstring=have and create multiple rustdesk profiles
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
# define frist element in argument list as profile name # define frist element in argument list as profile name
RUSTDESK_PROFILE="$1" RUSTDESK_PROFILE="$1"

View file

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=do a screenshots on wayland compositors # docstring=do a screenshots on wayland compositors
set -E -o pipefail 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 grim -g "$(slurp -o -r -c '#ff0000ff')" - | satty --filename - --fullscreen --output-filename ~/Media/Pictures/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png

7
scrnl
View file

@ -4,8 +4,7 @@
from os import environ from os import environ
import os.path as path import os.path as path
import subprocess as sp import subprocess as sp
from sys import exit as sysexit import sys
from sys import argv as sysargv
SCRIPT_FILENAME = path.basename(__file__) SCRIPT_FILENAME = path.basename(__file__)
HOME = environ["HOME"] HOME = environ["HOME"]
@ -27,7 +26,7 @@ def kctl(*args):
print(f"Wrapped options form {SCRIPT_FILENAME}:") print(f"Wrapped options form {SCRIPT_FILENAME}:")
print(" list list all available profiles") print(" list list all available profiles")
sysexit(completed.returncode) sys.exit(completed.returncode)
def list_profiles(config_path=CFG["config_path"]): def list_profiles(config_path=CFG["config_path"]):
@ -39,7 +38,7 @@ def list_profiles(config_path=CFG["config_path"]):
def main(): def main():
arguments = sysargv[1:] arguments = sys.argv[1:]
match arguments[0]: match arguments[0]:
case "list": case "list":
list_profiles() list_profiles()

2
webcam
View file

@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# docstring=open the webcam or v4l2 /dev/video* device # docstring=open the webcam or v4l2 /dev/video* device
set -E -o pipefail set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
if [[ "-h" == "$1" ]]; then if [[ "-h" == "$1" ]]; then
echo "-l list devices" echo "-l list devices"