Compare commits
10 commits
5b9d9d3e50
...
d67d89a6ef
Author | SHA1 | Date | |
---|---|---|---|
d67d89a6ef | |||
5eb91c6806 | |||
692845b707 | |||
40c7c325e7 | |||
ca90979e8f | |||
1f9956a2cb | |||
fc8f40ff9d | |||
eafdc2c98d | |||
88b0833a27 | |||
c0deb9d71d |
15 changed files with 183 additions and 30 deletions
|
@ -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 \
|
||||
|
|
2
battery
2
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
|
||||
|
|
2
brght
2
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.
|
||||
|
|
|
@ -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"
|
||||
|
|
24
hyprperf
24
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()
|
||||
|
|
46
list_ips
Executable file
46
list_ips
Executable 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
45
mserve
|
@ -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
21
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()
|
||||
|
|
|
@ -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
22
nswitch
|
@ -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
30
remote-audio
Executable 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
|
|
@ -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"
|
||||
|
|
|
@ -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
7
scrnl
|
@ -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
2
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"
|
||||
|
|
Loading…
Add table
Reference in a new issue