Compare commits

...

2 commits

Author SHA1 Message Date
Tobias Reisinger cc1c39d20d
Add linkwarden for qutebrowser 2024-03-08 21:34:22 +01:00
Tobias Reisinger f0c444ce6c
Update some configs 2024-03-08 18:31:33 +01:00
10 changed files with 109 additions and 10 deletions

View file

@ -16,6 +16,7 @@ fi
if [ -z "$1" ]
then
host_backup_run
sleep 3
exit 0
fi

View file

@ -17,10 +17,10 @@ if [ -z "$action" ]; then
fi
case "$action" in
backup-shutdown) _menu_shutdown_backup && systemctl poweroff -i ;;
shutdown) systemctl poweroff -i ;;
reboot) systemctl reboot ;;
soft-reboot) systemctl soft-reboot ;;
logout) systemctl --user exit ;;
autostart) autostart-manage run ;;
*) ;; esac
"backup-shutdown") _menu_shutdown_backup && systemctl poweroff -i ;;
"shutdown") systemctl poweroff -i ;;
"reboot") systemctl reboot ;;
"soft-reboot") systemctl soft-reboot ;;
"logout") systemctl --user exit ;;
"autostart") autostart-manage run ;;
"*") ;; esac

View file

@ -126,15 +126,14 @@ groups = ["graphical"]
[[autoinstall]]
type = "exe"
source = "https://git.serguzim.me/serguzim/teamspeak-query-lib/raw/branch/main/ts-control"
source = "https://git.serguzim.me/serguzim/teamspeak-query-lib/releases/download/latest/ts-control"
target = "ts-control"
groups = ["graphical", "personal"]
[[autoinstall]]
type = "exe"
source = "https://git.serguzim.me/serguzim/teamspeak-query-lib/actions/runs/latest/artifacts/teamspeak-query-lib"
source = "https://git.serguzim.me/serguzim/teamspeak-query-lib/releases/download/latest/teamspeak-query-lib"
target = "teamspeak-query-lib"
pipe = "zcat"
groups = ["graphical", "personal"]

View file

@ -2,6 +2,8 @@
export DRONE_SERVER='https://ci.serguzim.me'
export LINKWARDEN_URL="https://bookmarks.serguzim.me"
export OPENFAAS_URL="https://faas.serguzim.me"
export WOODPECKER_SERVER="https://ci.serguzim.me"

View file

@ -46,6 +46,10 @@ export QT_QPA_PLATFORMTHEME="qt5ct"
export PASSWORD_STORE_ENABLE_EXTENSIONS=true
export STCONFDIR="$XDG_CONFIG_HOME/syncthing"
export STDATADIR="$XDG_DATA_HOME/syncthing"
export STNODEFAULTFOLDER="true"
export TERMINAL="alacritty"
export TIME_STYLE="long-iso"

View file

@ -1,9 +1,11 @@
import keybindings
import common
import linkwarden
config.load_autoconfig()
keybindings.init(config)
common.init(c)
linkwarden.init()
import socket
if socket.gethostname() == 'portalo':

View file

@ -24,6 +24,9 @@ def init(c):
c.bind(',Po', 'spawn --userscript qutebrowser-keepassxc --only-otp --key ' + gpg_key, mode='normal')
c.bind(',Pp', 'spawn --userscript qutebrowser-keepassxc --autotype --key ' + gpg_key, mode='normal')
c.unbind('M')
c.bind('M', 'spawn --userscript qutebrowser-linkwarden', mode='normal')
c.bind(',q', 'spawn --userscript qr {url}')
c.bind(',Q', 'hint links spawn --userscript qr {hint-url}')

View file

@ -0,0 +1,47 @@
import os
import json
import urllib.request
linkwarden_url = os.environ.get('LINKWARDEN_URL')
linkwarden_token = os.environ.get('LINKWARDEN_TOKEN')
def get_links(cursor):
request = urllib.request.Request(linkwarden_url + "/api/v1/links?sort=0&cursor=" + str(cursor), headers={
'Authorization': 'Bearer ' + linkwarden_token
})
response = urllib.request.urlopen(request)
data = response.read().decode("utf-8")
data = data.replace("\\n", " ").replace("\\r", " ").replace("\\t", " ")
data = ' '.join(data.split())
return json.loads(data).get("response", [])
def init():
if linkwarden_url is None or linkwarden_token is None:
return
links = []
cursor = 0
while True:
new_links = get_links(cursor)
links += new_links
if len(new_links):
cursor = new_links[-1]["id"]
else:
break
with open(os.path.expanduser("~/.config/qutebrowser/bookmarks/urls"), "w+") as f:
for link in links:
url = link.get("url")
if not url:
continue
title = link.get("name")
if not title:
title = link.get("description")
if not title:
title = ""
f.write(url + " " + title + "\n")
f.close()

View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
get_collections() {
curl -H "Authorization: Bearer $LINKWARDEN_TOKEN" \
-H "Accept: application/json" \
"$LINKWARDEN_URL/api/v1/collections" 2>/dev/null \
| jq -r '.response | map_values(.name)[]'
}
collection=$(get_collections | $DMENU -p "Collection: ")
url=$QUTE_URL
name=$(echo "$QUTE_TITLE" | $DMENU -p "Title: ")
payload=$(jq -n \
--arg u "$url" \
--arg n "$name" \
--arg c "$collection" \
'{
url: $u,
name: $n,
collection: {name: $c},
tags: []
}')
response=$(curl -sS --fail-with-body \
-H "Authorization: Bearer $LINKWARDEN_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST \
-d "$payload" \
"$LINKWARDEN_URL/api/v1/links" 2>&1)
code="$?"
if [ "$code" -ne 0 ]
then
response=$(echo "$response" | sed 's/"/\\"/g' | sed 's/$/ - /g' | tr -d '\n' | sed 's/ - $//g')
echo "message-error \"Failed to save link: $response\"" >> "$QUTE_FIFO"
fi

View file

@ -27,6 +27,8 @@
"position",
"length"
],
"title-len": 50,
"artist-len": 25,
"player-icons": {
"default": "󰎈",
"chromium": "",