forked from Shinonome/dots-hyprland
make session multimonitor (#424)
This commit is contained in:
@@ -52,7 +52,7 @@ const Windows = () => [
|
|||||||
SideLeft(),
|
SideLeft(),
|
||||||
SideRight(),
|
SideRight(),
|
||||||
forMonitors(Osk),
|
forMonitors(Osk),
|
||||||
Session(),
|
forMonitors(Session),
|
||||||
userOptions.dock.enabled ? forMonitors(Dock) : null,
|
userOptions.dock.enabled ? forMonitors(Dock) : null,
|
||||||
...(userOptions.appearance.fakeScreenRounding ? [
|
...(userOptions.appearance.fakeScreenRounding ? [
|
||||||
forMonitors((id) => Corner(id, 'top left', true)),
|
forMonitors((id) => Corner(id, 'top left', true)),
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import Widget from 'resource:///com/github/Aylur/ags/widget.js';
|
|||||||
import SessionScreen from "./sessionscreen.js";
|
import SessionScreen from "./sessionscreen.js";
|
||||||
import PopupWindow from '../.widgethacks/popupwindow.js';
|
import PopupWindow from '../.widgethacks/popupwindow.js';
|
||||||
|
|
||||||
export default (id = '') => PopupWindow({ // On-screen keyboard
|
export default (id = 0) => PopupWindow({ // On-screen keyboard
|
||||||
name: `session${id}`,
|
name: `session${id}`,
|
||||||
visible: false,
|
visible: false,
|
||||||
keymode: 'exclusive',
|
keymode: 'exclusive',
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ const SessionButton = (name, icon, command, props = {}, colorid = 0) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ({ id = '' }) => {
|
export default ({ id = 0 }) => {
|
||||||
// lock, logout, sleep
|
// lock, logout, sleep
|
||||||
const lockButton = SessionButton('Lock', 'lock', () => { App.closeWindow(`session${id}`); execAsync(['loginctl', 'lock-session']).catch(print) }, {}, 1);
|
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 logoutButton = SessionButton('Logout', 'logout', () => { App.closeWindow(`session${id}`); execAsync(['bash', '-c', 'pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER']).catch(print) }, {}, 2);
|
||||||
@@ -98,8 +98,8 @@ export default ({ id = '' }) => {
|
|||||||
return Widget.Box({
|
return Widget.Box({
|
||||||
className: 'session-bg',
|
className: 'session-bg',
|
||||||
css: `
|
css: `
|
||||||
min-width: ${monitors[(id == '' ? 0 : id)].width}px;
|
min-width: ${monitors[id].width}px;
|
||||||
min-height: ${monitors[(id == '' ? 0 : id)].height}px;
|
min-height: ${monitors[id].height}px;
|
||||||
`, // idk why but height = screen height doesn't fill
|
`, // idk why but height = screen height doesn't fill
|
||||||
vertical: true,
|
vertical: true,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ export const ModulePowerIcon = (props = {}) => Widget.Button({
|
|||||||
tooltipText: 'Session',
|
tooltipText: 'Session',
|
||||||
onClicked: () => {
|
onClicked: () => {
|
||||||
closeEverything();
|
closeEverything();
|
||||||
Utils.timeout(1, () => App.openWindow('session'));
|
Utils.timeout(1, () => openWindowOnAllMonitors('session'));
|
||||||
},
|
},
|
||||||
child: MaterialIcon('power_settings_new', 'norm'),
|
child: MaterialIcon('power_settings_new', 'norm'),
|
||||||
setup: button => {
|
setup: button => {
|
||||||
|
|||||||
@@ -47,11 +47,11 @@ globalThis['openWindowOnAllMonitors'] = (name) => {
|
|||||||
globalThis['closeEverything'] = () => {
|
globalThis['closeEverything'] = () => {
|
||||||
const numMonitors = Gdk.Display.get_default()?.get_n_monitors() || 1;
|
const numMonitors = Gdk.Display.get_default()?.get_n_monitors() || 1;
|
||||||
for (let i = 0; i < numMonitors; i++) {
|
for (let i = 0; i < numMonitors; i++) {
|
||||||
App.closeWindow(`cheatsheet${i}`);
|
|
||||||
App.closeWindow(`click2close${i}`);
|
App.closeWindow(`click2close${i}`);
|
||||||
|
App.closeWindow(`cheatsheet${i}`);
|
||||||
|
App.closeWindow(`session${i}`);
|
||||||
}
|
}
|
||||||
App.closeWindow('sideleft');
|
App.closeWindow('sideleft');
|
||||||
App.closeWindow('sideright');
|
App.closeWindow('sideright');
|
||||||
App.closeWindow('overview');
|
App.closeWindow('overview');
|
||||||
App.closeWindow('session');
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ bind = Super, N, exec, ags -t 'sideright'
|
|||||||
bind = Super, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);'
|
bind = Super, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() ? false : !openMusicControls.value);'
|
||||||
bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);'
|
bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);'
|
||||||
bind = Super, K, exec, for ((i=0; i<$(xrandr --listmonitors | grep -c 'Monitor'); i++)); do ags -t "osk""$i"; done
|
bind = Super, K, exec, for ((i=0; i<$(xrandr --listmonitors | grep -c 'Monitor'); i++)); do ags -t "osk""$i"; done
|
||||||
bind = Control+Alt, Delete, exec, ags -t 'session'
|
bind = Control+Alt, Delete, exec, for ((i=0; i<$(xrandr --listmonitors | grep -c 'Monitor'); i++)); do ags -t "session""$i"; done
|
||||||
bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);'
|
bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);'
|
||||||
bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);'
|
bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);'
|
||||||
bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);'
|
bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);'
|
||||||
|
|||||||
Reference in New Issue
Block a user