From 5bbcf9d290dc0f17eea45c7b0e1fc44264945871 Mon Sep 17 00:00:00 2001 From: XeonSquared Date: Thu, 25 Aug 2022 13:37:47 +1000 Subject: [PATCH] added brightness and rotation controls, still WIP --- brightness-down.png | Bin 0 -> 4695 bytes brightness-up.png | Bin 0 -> 4484 bytes init.lua | 64 ++++++++++++++++++++++++++++++++++-- rotate-left.png | Bin 0 -> 6258 bytes rotate-right.png | Bin 0 -> 6163 bytes rotate.lua | 77 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 brightness-down.png create mode 100644 brightness-up.png create mode 100644 rotate-left.png create mode 100644 rotate-right.png create mode 100755 rotate.lua diff --git a/brightness-down.png b/brightness-down.png new file mode 100644 index 0000000000000000000000000000000000000000..e7de9452dd7012cfb01b0f815844591d6f196744 GIT binary patch literal 4695 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 literal 0 HcmV?d00001 diff --git a/rotate-right.png b/rotate-right.png new file mode 100644 index 0000000000000000000000000000000000000000..fd391f987b36436f2dc773fb02c1d05441964cc2 GIT binary patch literal 6163 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 literal 0 HcmV?d00001 diff --git a/rotate.lua b/rotate.lua new file mode 100755 index 0000000..d740af3 --- /dev/null +++ b/rotate.lua @@ -0,0 +1,77 @@ +#!/usr/bin/env lua +local tA = {...} +local direction = tA[1] +local disp = tA[2] or "LVDS-0" +local orientations = {"normal", "right", "inverted", "left"} +local ctms = {["normal"]="1 0 0 0 1 0 0 0 1", +["inverted"]="-1 0 1 0 -1 1 0 0 1", +["left"]="0 -1 1 1 0 0 0 0 1", +["right"]="0 1 0 -1 0 1 0 0 1"} +--[[ +xrandr -q --verbose +LVDS-0 connected 800x1280+0+0 (0x43) left (normal left inverted right x axis y axis) 0mm x 0mm + +NEW_ROT="normal" +CTM="1 0 0 0 1 0 0 0 1" + +NEW_ROT="inverted" +CTM="-1 0 1 0 -1 1 0 0 1" + +NEW_ROT="left" +CTM="0 -1 1 1 0 0 0 0 1" + +NEW_ROT="right" +CTM="0 1 0 -1 0 1 0 0 1" +]] +local function nextRight(o) + local current = 1 + for k,v in pairs(orientations) do + if o == v then + current = k + end + end + local ret = current + 1 + if ret > #orientations then + ret = 1 + end + return orientations[ret] +end + +local function nextLeft(o) + local current = 1 + for k,v in pairs(orientations) do + if o == v then + current = k + end + end + local ret = current - 1 + if ret < 1 then + ret = #orientations + end + return orientations[ret] +end + +local f = io.popen("xrandr -q --verbose","r") +c=f:read("*a") +f:close() +local line = (c:match("\n("..disp:gsub("%p","%%%1") .. ".-)\n")) +print(line) +local orientation = line:match("%S+ %S+ %S+ %S+ (%S+) ") + +local f = io.popen("xinput --list","r") +local xin=f:read("*a"):lower() +f:close() +--⎜ ↳ Elan Touchscreen id=6 [slave pointer (2)] +local touchscreen = (xin:match("touch.*screen%s-id=(%d+)")) + +print(orientation) +print(nextLeft(orientation)) +print(nextRight(orientation)) +local newRot = nextRight(orientation) +if direction == "left" then + newRot = nextLeft(orientation) +end +print(string.format("xrandr --output %s --rotate %s",disp,newRot)) +os.execute(string.format("xrandr --output %s --rotate %s",disp,newRot)) +print(string.format("xinput set-prop %s 'Coordinate Transformation Matrix' %s",touchscreen,ctms[newRot])) +os.execute(string.format("xinput set-prop %s 'Coordinate Transformation Matrix' %s",touchscreen,ctms[newRot]))