summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2023-11-06 10:51:50 +0000
committerdavidovski <david@davidovski.xyz>2023-11-06 10:51:50 +0000
commit57aad4d5284bfecfbe8c3d30dd5ae5c65534ac68 (patch)
tree809702e5292a14449b18c5894f1d5a5df824f92c
parent42984d6686db60a392a66934144e480f72597e72 (diff)
Update tablet script
-rwxr-xr-xconfig/bspwm/bspwmrc2
-rw-r--r--config/gtk-3.0/bookmarks5
-rw-r--r--config/mpd/mpd.conf2
-rwxr-xr-xscripts/mpc_add_query.sh5
-rwxr-xr-xscripts/mpc_add_recent.sh7
-rwxr-xr-xscripts/tablet78
6 files changed, 67 insertions, 32 deletions
diff --git a/config/bspwm/bspwmrc b/config/bspwm/bspwmrc
index aaa92ec..bad91bf 100755
--- a/config/bspwm/bspwmrc
+++ b/config/bspwm/bspwmrc
@@ -45,7 +45,7 @@ bspc config focus_follows_pointer false
bspc config normal_border_color "$COLOR_SECONDARY"
bspc config active_border_color "$COLOR_SECONDARY"
bspc config focused_border_color "$COLOR_PRIMARY"
-wmname bspwm
+wmname
sleep 1
diff --git a/config/gtk-3.0/bookmarks b/config/gtk-3.0/bookmarks
index f1aa247..d6229a6 100644
--- a/config/gtk-3.0/bookmarks
+++ b/config/gtk-3.0/bookmarks
@@ -1,6 +1,4 @@
file:///home/david/docs/lmms
-file:///home/x/pics/screenshot
-file:///home/david/hd1/important
file:///home/david/docs docs
file:///home/david/pics pics
file:///home/david/dl dl
@@ -8,9 +6,6 @@ file:///home/david/video video
file:///home/david/music music
file:///home/david/pics/screenshot screenshot
file:///home/david/docs/proj proj
-file:///home/david/hd1/library library
file:///tmp tmp
-file:///home/david/docs/school
file:///home/david/video/anime
-file:///home/david/lmms
file:///home/david/docs/proj/ardour
diff --git a/config/mpd/mpd.conf b/config/mpd/mpd.conf
index c507226..5dd1296 100644
--- a/config/mpd/mpd.conf
+++ b/config/mpd/mpd.conf
@@ -15,7 +15,7 @@ audio_output {
audio_output {
type "pulse"
- name "mpd pulse"
+ name "mpd pulse"
}
#audio_output {
diff --git a/scripts/mpc_add_query.sh b/scripts/mpc_add_query.sh
new file mode 100755
index 0000000..adc820a
--- /dev/null
+++ b/scripts/mpc_add_query.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+query=${1}
+cd ~/music
+find . -iname "*$query*" -type f | while read -r line; do mpc insert "${line#./}"; done
diff --git a/scripts/mpc_add_recent.sh b/scripts/mpc_add_recent.sh
new file mode 100755
index 0000000..7465e0e
--- /dev/null
+++ b/scripts/mpc_add_recent.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+# add recently added files to the playlist
+
+count=${1:-10}
+
+cd ~/music
+find . -type f -print0 | xargs -0 stat -c"%Y %n" | sort -n | tail -${count} |cut -d' ' -f2- | while read -r line; do mpc insert "${line#./}"; done
diff --git a/scripts/tablet b/scripts/tablet
index 7e91a55..0cd6144 100755
--- a/scripts/tablet
+++ b/scripts/tablet
@@ -2,49 +2,75 @@
import sys
import numpy as np
import os
+from Xlib import X, display
+from Xlib.ext import randr
-if len(sys.argv) < 3:
- print("Usage: tablet [dev number] [property number] [scale factor] [aspect ratio]")
+import subprocess
+import re
+
+# this is horriffic, gets the list of all screens
+screens = [ (lambda s: [int(x) for x in (s.split("+")[1], s.split("+")[2], s.split("x")[0].split("/")[0], s.split("x")[1].split("/")[0])])(l.split(" ")[3]) for l in str(subprocess.check_output(["xrandr", "--listmonitors"])).split("\\n") if len(l.split(" ")) > 2]
+
+#if len(sys.argv) < 3:
+# print("Usage: tablet [dev number] [property number] [scale factor] [aspect ratio]")
#Arguments
-dev = sys.argv[1]
-prop = sys.argv[2]
-scale = float(sys.argv[3])
-tablet_ratio = (lambda s: float(s[0]) / float(s[1]))(sys.argv[4].split(":")) if len(sys.argv) > 4 else 16/9
+scale = float(sys.argv[1]) if len(sys.argv) > 1 else 1
+#tablet_ratio = (lambda s: float(s[0]) / float(s[1]))(sys.argv[4].split(":")) if len(sys.argv) > 4 else 16/9
+tablet_ratio = 16/9
+
+
+input_items = list(filter(lambda i: i[0], zip(subprocess.check_output(["xinput", "list", "--id-only"]).decode("ascii").split("\n"), subprocess.check_output(["xinput", "list", "--name-only"]).decode("ascii").split("\n"))))
+
+input_items = sorted(input_items, key=(lambda i: int(i[0])))
+
+print("Input devices found:")
-#Layout of screens: (x, y, w, h)
-#screens = [
-# (0, 0, 1280, 1024),
-# (1280, 0, 2560, 1440),
-# (3840, 0, 1080, 1920),
-# (4920, 0, 1080, 1920),
-#]
+for item in input_items:
+ print(f"{item[0]}: {item[1]}")
-screens = [
- (0, 0, 1920, 1080),
- (1920, 0, 2560, 1440),
-]
+print()
+dev = input("Select input device (id) to use: ")
+
+
+prop = [ re.search(r"\((.+)\)", line).group(1) for line in subprocess.check_output(["xinput", "list-props", dev]).decode("ascii").split("\n") if re.search("Coordinate Transformation Matrix", line) ][0]
+
+if len(screens) == 1:
+ target = screens[1]
+else:
+ print("Multiple screens detected:\n")
+ for i, screen in enumerate(screens):
+ print(f"{i}: {screen}")
+
+ print()
+ targetno = input("Enter screen to map to (0): ")
+
+ if targetno:
+ target = screens[int(targetno)]
+ else:
+ target = screens[0]
-#TODO find this with xrandr
-target = screens[1]
#Physical offset of the selected screen
offsetx = target[0]
offsety = target[1]
#Size of the full screen areas
-sh = 1080
-sw = 1920 + 2560
-#TODO calculate using list of screens
+sh, sw = 0, 0
+
+for screen in screens:
+ if screen[0]+screen[2] > sw:
+ sw = screen[0] + screen[2]
+ if screen[1]+screen[3] > sh:
+ sh = screen[1] + screen[3]
#Aspect ratio of the tablet, to avoid weird scaling problems
#Size of the tablet
-#Prioritize the with when scaling between aspect ratios
+#Prioritize the width when scaling between aspect ratios
tw = target[2]
th = tw / tablet_ratio
-print(tw, "x", th)
if "-r" in sys.argv or "-l" in sys.argv:
th = target[2]
@@ -84,5 +110,7 @@ if "-l" in sys.argv:
arr = np.squeeze(np.asarray(transform))
-os.system(" ".join(["xinput set-prop", dev, prop, " ".join([str(x) for x in [arr[0, 0], arr[0, 1], arr[0, 2], arr[1, 0], arr[1, 1], arr[1, 2], arr[2, 0], arr[2, 1], arr[2, 2]]])]))
+cmd = " ".join(["xinput set-prop", dev, prop, " ".join([str(x) for x in [arr[0, 0], arr[0, 1], arr[0, 2], arr[1, 0], arr[1, 1], arr[1, 2], arr[2, 0], arr[2, 1], arr[2, 2]]])])
+print(cmd)
+os.system(cmd)
#alias tablet2="xinput set-prop 18 156 2.45 0 -0.725 0 2.45 -0.725 0 0 1"