From f8d84d60686bc53a6911fb8336a6e791b45e03c8 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:36:22 +0700 Subject: [PATCH] multimonitor for osk --- .config/ags/modules/bar/normal/tray.js | 2 +- .config/ags/modules/cheatsheet/main.js | 7 ------ .config/ags/modules/onscreenkeyboard/main.js | 2 +- .../onscreenkeyboard/onscreenkeyboard.js | 4 ++-- .config/ags/modules/session/main.js | 6 ++--- .config/ags/modules/session/sessionscreen.js | 22 +++++++++---------- .config/ags/modules/sideleft/sideleft.js | 5 ----- .../modules/sideleft/tools/quickscripts.js | 2 +- .config/ags/modules/sideright/quicktoggles.js | 6 ++--- 9 files changed, 22 insertions(+), 34 deletions(-) diff --git a/.config/ags/modules/bar/normal/tray.js b/.config/ags/modules/bar/normal/tray.js index 6d55549d2..71ca062ca 100644 --- a/.config/ags/modules/bar/normal/tray.js +++ b/.config/ags/modules/bar/normal/tray.js @@ -7,7 +7,7 @@ const SysTrayItem = (item) => Button({ className: 'bar-systray-item', child: Icon({ hpack: 'center', - icon: item.icon, + icon: `${item.icon}`, setup: (self) => self.hook(item, (self) => self.icon = item.icon), }), setup: (self) => self diff --git a/.config/ags/modules/cheatsheet/main.js b/.config/ags/modules/cheatsheet/main.js index 68b6baff0..9e0189a50 100644 --- a/.config/ags/modules/cheatsheet/main.js +++ b/.config/ags/modules/cheatsheet/main.js @@ -62,12 +62,6 @@ const CheatsheetHeader = () => Widget.CenterBox({ }), }); -const ClickOutsideToClose = () => Widget.EventBox({ - onPrimaryClick: () => App.closeWindow('cheatsheet'), - onSecondaryClick: () => App.closeWindow('cheatsheet'), - onMiddleClick: () => App.closeWindow('cheatsheet'), -}); - export default (id) => PopupWindow({ name: `cheatsheet${id}`, layer: 'overlay', @@ -76,7 +70,6 @@ export default (id) => PopupWindow({ child: Widget.Box({ vertical: true, children: [ - ClickOutsideToClose(), Widget.Box({ vertical: true, className: "cheatsheet-bg spacing-v-15", diff --git a/.config/ags/modules/onscreenkeyboard/main.js b/.config/ags/modules/onscreenkeyboard/main.js index f7ed5adb8..dc07070be 100644 --- a/.config/ags/modules/onscreenkeyboard/main.js +++ b/.config/ags/modules/onscreenkeyboard/main.js @@ -6,5 +6,5 @@ export default (id) => PopupWindow({ name: `osk${id}`, showClassName: 'osk-show', hideClassName: 'osk-hide', - child: OnScreenKeyboard(), + child: OnScreenKeyboard({ id: id }), }); diff --git a/.config/ags/modules/onscreenkeyboard/onscreenkeyboard.js b/.config/ags/modules/onscreenkeyboard/onscreenkeyboard.js index 229b1eab5..4e8c3445e 100644 --- a/.config/ags/modules/onscreenkeyboard/onscreenkeyboard.js +++ b/.config/ags/modules/onscreenkeyboard/onscreenkeyboard.js @@ -215,7 +215,7 @@ const KeyboardWindow = () => Box({ }), }); -export default () => { +export default ({ id }) => { const kbWindow = KeyboardWindow(); const gestureEvBox = EventBox({ child: kbWindow }) const gesture = Gtk.GestureDrag.new(gestureEvBox); @@ -249,7 +249,7 @@ export default () => { gesture.connect('drag-end', () => { var offset = gesture.get_offset()[2]; if (offset > 50) { - App.closeWindow('osk'); + App.closeWindow(`osk${id}`); } else { kbWindow.setCss(` diff --git a/.config/ags/modules/session/main.js b/.config/ags/modules/session/main.js index 41148931d..4329edba1 100644 --- a/.config/ags/modules/session/main.js +++ b/.config/ags/modules/session/main.js @@ -2,12 +2,12 @@ import Widget from 'resource:///com/github/Aylur/ags/widget.js'; import SessionScreen from "./sessionscreen.js"; import PopupWindow from '../.widgethacks/popupwindow.js'; -export default () => PopupWindow({ // On-screen keyboard - name: 'session', +export default (id = '') => PopupWindow({ // On-screen keyboard + name: `session${id}`, visible: false, keymode: 'exclusive', layer: 'overlay', exclusivity: 'ignore', anchor: ['top', 'bottom', 'left', 'right'], - child: SessionScreen(), + child: SessionScreen({ id: id }), }) \ No newline at end of file diff --git a/.config/ags/modules/session/sessionscreen.js b/.config/ags/modules/session/sessionscreen.js index 338ea8ef0..e0306ff87 100644 --- a/.config/ags/modules/session/sessionscreen.js +++ b/.config/ags/modules/session/sessionscreen.js @@ -59,16 +59,16 @@ const SessionButton = (name, icon, command, props = {}, colorid = 0) => { }); } -export default () => { +export default ({ id = '' }) => { // lock, logout, sleep - const lockButton = SessionButton('Lock', 'lock', () => { App.closeWindow('session'); execAsync(['loginctl', 'lock-session']).catch(print) }, {}, 1); - const logoutButton = SessionButton('Logout', 'logout', () => { App.closeWindow('session'); execAsync(['bash', '-c', 'pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER']).catch(print) }, {}, 2); - const sleepButton = SessionButton('Sleep', 'sleep', () => { App.closeWindow('session'); execAsync(['bash', '-c', 'systemctl suspend || loginctl suspend']).catch(print) }, {}, 3); + const lockButton = SessionButton('Lock', 'lock', () => { App.closeWindow(`session${id}`); execAsync(['loginctl', 'lock-session']).catch(print) }, {}, 1); + const logoutButton = SessionButton('Logout', 'logout', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER']).catch(print) }, {}, 2); + const sleepButton = SessionButton('Sleep', 'sleep', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'systemctl suspend || loginctl suspend']).catch(print) }, {}, 3); // hibernate, shutdown, reboot - const hibernateButton = SessionButton('Hibernate', 'downloading', () => { App.closeWindow('session'); execAsync(['bash', '-c', 'systemctl hibernate || loginctl hibernate']).catch(print) }, {}, 4); - const shutdownButton = SessionButton('Shutdown', 'power_settings_new', () => { App.closeWindow('session'); execAsync(['bash', '-c', 'systemctl poweroff || loginctl poweroff']).catch(print) }, {}, 5); - const rebootButton = SessionButton('Reboot', 'restart_alt', () => { App.closeWindow('session'); execAsync(['bash', '-c', 'systemctl reboot || loginctl reboot']).catch(print) }, {}, 6); - const cancelButton = SessionButton('Cancel', 'close', () => App.closeWindow('session'), { className: 'session-button-cancel' }, 7); + const hibernateButton = SessionButton('Hibernate', 'downloading', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'systemctl hibernate || loginctl hibernate']).catch(print) }, {}, 4); + const shutdownButton = SessionButton('Shutdown', 'power_settings_new', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'systemctl poweroff || loginctl poweroff']).catch(print) }, {}, 5); + const rebootButton = SessionButton('Reboot', 'restart_alt', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'systemctl reboot || loginctl reboot']).catch(print) }, {}, 6); + const cancelButton = SessionButton('Cancel', 'close', () => App.closeWindow(`session${id}`), { className: 'session-button-cancel' }, 7); const sessionDescription = Widget.Box({ vertical: true, @@ -104,9 +104,9 @@ export default () => { vertical: true, children: [ Widget.EventBox({ - onPrimaryClick: () => App.closeWindow('session'), - onSecondaryClick: () => App.closeWindow('session'), - onMiddleClick: () => App.closeWindow('session'), + onPrimaryClick: () => App.closeWindow(`session${id}`), + onSecondaryClick: () => App.closeWindow(`session${id}`), + onMiddleClick: () => App.closeWindow(`session${id}`), }), Widget.Box({ hpack: 'center', diff --git a/.config/ags/modules/sideleft/sideleft.js b/.config/ags/modules/sideleft/sideleft.js index 377273517..1869d0b85 100644 --- a/.config/ags/modules/sideleft/sideleft.js +++ b/.config/ags/modules/sideleft/sideleft.js @@ -77,11 +77,6 @@ export default () => Box({ hexpand: true, css: 'min-width: 2px;', children: [ - EventBox({ - onPrimaryClick: () => App.closeWindow('sideleft'), - onSecondaryClick: () => App.closeWindow('sideleft'), - onMiddleClick: () => App.closeWindow('sideleft'), - }), widgetContent, ], setup: (self) => self diff --git a/.config/ags/modules/sideleft/tools/quickscripts.js b/.config/ags/modules/sideleft/tools/quickscripts.js index 417a51945..2416429f7 100644 --- a/.config/ags/modules/sideleft/tools/quickscripts.js +++ b/.config/ags/modules/sideleft/tools/quickscripts.js @@ -76,7 +76,7 @@ export default () => SidebarModule({ className: 'sidebar-module-scripts-button', child: scriptStateIcon, onClicked: () => { - App.closeWindow('sideleft'); + closeEverything(); execAsync([`bash`, `-c`, `${userOptions.apps.terminal} fish -C "${script.command}"`]).catch(print) .then(() => { scriptStateIcon.label = 'done'; diff --git a/.config/ags/modules/sideright/quicktoggles.js b/.config/ags/modules/sideright/quicktoggles.js index 3fe788525..e18a3bb72 100644 --- a/.config/ags/modules/sideright/quicktoggles.js +++ b/.config/ags/modules/sideright/quicktoggles.js @@ -41,7 +41,7 @@ export const ToggleIconBluetooth = (props = {}) => Widget.Button({ }, onSecondaryClickRelease: () => { execAsync(['bash', '-c', `${userOptions.apps.bluetooth}`]).catch(print); - App.closeWindow('sideright'); + closeEverything(); }, child: BluetoothIndicator(), setup: (self) => { @@ -227,8 +227,8 @@ export const ModulePowerIcon = (props = {}) => Widget.Button({ className: 'txt-small sidebar-iconbutton', tooltipText: 'Session', onClicked: () => { - App.toggleWindow('session'); - App.closeWindow('sideright'); + closeEverything(); + Utils.timeout(1, () => App.openWindow('session')); }, child: MaterialIcon('power_settings_new', 'norm'), setup: button => {