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
set -E -o pipefail
shopt -s failglob
export LC_ALL=C.UTF8
mixxc \
--anchor right \

View file

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

2
brght
View file

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

View file

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

View file

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

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

21
mytools
View file

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

View file

@ -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 '*'"$@"'*'

22
nswitch
View file

@ -2,21 +2,27 @@
# 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
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"

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
# 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"

View file

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

7
scrnl
View file

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

2
webcam
View file

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