From ba200fb9b727b87b46a4b76772fe19448c602869 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 5 Sep 2023 13:25:32 -0400 Subject: [PATCH] feat(ags): make logic behind tablet mode toggle --- config/ags/bin/tablet-toggle.sh | 38 ++++++++++++++++++++++++++++++ config/ags/js/bar/bar.js | 2 +- config/ags/js/bar/tablet-toggle.js | 21 ++++++++++++++--- 3 files changed, 57 insertions(+), 4 deletions(-) create mode 100755 config/ags/bin/tablet-toggle.sh diff --git a/config/ags/bin/tablet-toggle.sh b/config/ags/bin/tablet-toggle.sh new file mode 100755 index 00000000..253deba1 --- /dev/null +++ b/config/ags/bin/tablet-toggle.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +tablet() { + gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true + + brightnessctl -d tpacpi::kbd_backlight s 0 + + "$HYPR_PATH"/autorotate.sh & + + evtest --grab "/dev/input/by-path/platform-i8042-serio-0-event-kbd" & + evtest --grab "/dev/input/by-path/platform-i8042-serio-1-event-mouse" & + evtest --grab "/dev/input/by-path/platform-AMDI0010:02-event-mouse" & + evtest --grab "/dev/input/by-path/platform-thinkpad_acpi-event" & + evtest --grab "/dev/video-bus" & +} + +laptop() { + gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false + + brightnessctl -d tpacpi::kbd_backlight s 2 + + killall -r autorotate.sh + killall -r evtest +} + +toggle () { + if [[ "$(gsettings get org.gnome.desktop.a11y.applications screen-keyboard-enabled)" == "false" ]]; then + echo "Tablet" + tablet > /dev/null + else + echo "Laptop" + laptop > /dev/null + fi +} + +if [[ $1 == "toggle" ]];then + toggle +fi diff --git a/config/ags/js/bar/bar.js b/config/ags/js/bar/bar.js index 3971b5f0..2bddcd9c 100644 --- a/config/ags/js/bar/bar.js +++ b/config/ags/js/bar/bar.js @@ -5,7 +5,7 @@ import { CurrentWindow } from './current-window.js'; import { Workspaces } from './workspaces.js'; import { OskToggle } from './osk-toggle.js'; import { Heart } from './heart.js'; -import { TabletToggle } from './tablet-toggle.js'; +import { TabletToggle } from './tablet-toggle.js'; export const Bar = Window({ name: 'left-bar', diff --git a/config/ags/js/bar/tablet-toggle.js b/config/ags/js/bar/tablet-toggle.js index 65463253..e6628ba7 100644 --- a/config/ags/js/bar/tablet-toggle.js +++ b/config/ags/js/bar/tablet-toggle.js @@ -1,12 +1,27 @@ +const { Box, Label } = ags.Widget; +const { subprocess } = ags.Utils; + import { EventBox } from '../common.js'; export const TabletToggle = EventBox({ className: 'toggle-off', - onPrimaryClickRelease: '', - child: ags.Widget.Box({ + onPrimaryClickRelease: function() { + subprocess( + ['bash', '-c', '/home/matt/.nix/config/ags/bin/tablet-toggle.sh toggle'], + (output) => { + print(output) + if (output == 'Tablet') { + TabletToggle.toggleClassName('toggle-on', true); + } else { + TabletToggle.toggleClassName('toggle-on', false); + } + }, + ); + }, + child: Box({ className: 'tablet-toggle', vertical: false, - child: ags.Widget.Label({ + child: Label({ label: " 󰦧 ", }), }),