Compare commits

..

3 commits

5 changed files with 72 additions and 37 deletions

38
config/ags/bin/tablet-toggle.sh Executable file
View file

@ -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

View file

@ -5,7 +5,7 @@ import { CurrentWindow } from './current-window.js';
import { Workspaces } from './workspaces.js'; import { Workspaces } from './workspaces.js';
import { OskToggle } from './osk-toggle.js'; import { OskToggle } from './osk-toggle.js';
import { Heart } from './heart.js'; import { Heart } from './heart.js';
import { TabletToggle } from './tablet-toggle.js'; import { TabletToggle } from './tablet-toggle.js';
export const Bar = Window({ export const Bar = Window({
name: 'left-bar', name: 'left-bar',

View file

@ -1,12 +1,27 @@
const { Box, Label } = ags.Widget;
const { subprocess } = ags.Utils;
import { EventBox } from '../common.js'; import { EventBox } from '../common.js';
export const TabletToggle = EventBox({ export const TabletToggle = EventBox({
className: 'toggle-off', className: 'toggle-off',
onPrimaryClickRelease: '', onPrimaryClickRelease: function() {
child: ags.Widget.Box({ 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', className: 'tablet-toggle',
vertical: false, vertical: false,
child: ags.Widget.Label({ child: Label({
label: " 󰦧 ", label: " 󰦧 ",
}), }),
}), }),

View file

@ -1,22 +1,14 @@
// https://github.com/Aylur/dotfiles/blob/f03e58ba0d3b56f1144631c179ab27357e466753/.config/ags/modules/hyprland.js#L4
import Gdk from 'gi://Gdk';
const display = Gdk.Display.get_default();
const { App } = ags;
const { Hyprland, Applications } = ags.Service; const { Hyprland, Applications } = ags.Service;
const { execAsync, lookUpIcon } = ags.Utils; const { execAsync } = ags.Utils;
const { Box, Button, EventBox, Label, Icon } = ags.Widget; const { Box, Button, Label, Revealer } = ags.Widget;
export const Workspace = ({ i, } = {}) => import { EventBox } from '../common.js';
ags.Widget.Revealer({
const Workspace = ({ i } = {}) =>
Revealer({
transition: "slide_right", transition: "slide_right",
child: EventBox({ child: EventBox({
onPrimaryClickRelease: () => execAsync(`hyprctl dispatch workspace ${i}`).catch(print), onPrimaryClickRelease: () => execAsync(`hyprctl dispatch workspace ${i}`).catch(print),
onHover: box => {
box.window.set_cursor(Gdk.Cursor.new_from_name(display, 'pointer'));
},
onHoverLost: box => {
box.window.set_cursor(null);
},
child: Box({ child: Box({
className: 'button', className: 'button',
child: Label(`${i}`), child: Label(`${i}`),
@ -33,32 +25,22 @@ ags.Widget.Revealer({
}), }),
}); });
var prev = Hyprland.active.workspace.id;
export const Workspaces = props => Box({ export const Workspaces = props => Box({
className: 'workspaces panel-button', className: 'workspaces',
children: [EventBox({ children: [EventBox({
child: Box({ child: Box({
children: Array.from({ length: 15 }, (_, i) => i + 1).map(i => Workspace({ i: i})),
connections: [[Hyprland, box => { connections: [[Hyprland, box => {
let workspaces = []; let workspaces = [];
Hyprland.workspaces.forEach(ws => {
if (ws.id > 0) workspaces.push(ws);
});
new Promise(resolve => { box.children.forEach(rev => rev.reveal_child = false);
workspaces.forEach(ws => {
Hyprland.workspaces.forEach(ws => { box.children[ws.id - 1].reveal_child = true;
if (ws.id > 0) workspaces.push(ws);
});
resolve();
}).then(value => {
box.children.forEach(rev => rev.reveal_child = false);
workspaces.forEach(ws => {
box.children[ws.id - 1].reveal_child = true;
});
}); });
}]], }]],
children: Array.from({ length: 15 }, (_, i) => i + 1).map(i => Workspace({ i: i})),
}), }),
})], })],
}); });

View file

@ -11,7 +11,7 @@
networking.hostName = "wim"; networking.hostName = "wim";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.networkmanager.wifi.backend = "iwd"; networking.networkmanager.wifi.backend = "wpa_supplicant";
# Set your time zone. # Set your time zone.
time.timeZone = "America/Montreal"; time.timeZone = "America/Montreal";