forked from Shinonome/dots-hyprland
make session multimonitor (#424)
This commit is contained in:
@@ -52,7 +52,7 @@ const Windows = () => [
|
||||
SideLeft(),
|
||||
SideRight(),
|
||||
forMonitors(Osk),
|
||||
Session(),
|
||||
forMonitors(Session),
|
||||
userOptions.dock.enabled ? forMonitors(Dock) : null,
|
||||
...(userOptions.appearance.fakeScreenRounding ? [
|
||||
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 PopupWindow from '../.widgethacks/popupwindow.js';
|
||||
|
||||
export default (id = '') => PopupWindow({ // On-screen keyboard
|
||||
export default (id = 0) => PopupWindow({ // On-screen keyboard
|
||||
name: `session${id}`,
|
||||
visible: false,
|
||||
keymode: 'exclusive',
|
||||
|
||||
@@ -59,7 +59,7 @@ const SessionButton = (name, icon, command, props = {}, colorid = 0) => {
|
||||
});
|
||||
}
|
||||
|
||||
export default ({ id = '' }) => {
|
||||
export default ({ id = 0 }) => {
|
||||
// lock, logout, sleep
|
||||
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);
|
||||
@@ -98,8 +98,8 @@ export default ({ id = '' }) => {
|
||||
return Widget.Box({
|
||||
className: 'session-bg',
|
||||
css: `
|
||||
min-width: ${monitors[(id == '' ? 0 : id)].width}px;
|
||||
min-height: ${monitors[(id == '' ? 0 : id)].height}px;
|
||||
min-width: ${monitors[id].width}px;
|
||||
min-height: ${monitors[id].height}px;
|
||||
`, // idk why but height = screen height doesn't fill
|
||||
vertical: true,
|
||||
children: [
|
||||
|
||||
@@ -228,7 +228,7 @@ export const ModulePowerIcon = (props = {}) => Widget.Button({
|
||||
tooltipText: 'Session',
|
||||
onClicked: () => {
|
||||
closeEverything();
|
||||
Utils.timeout(1, () => App.openWindow('session'));
|
||||
Utils.timeout(1, () => openWindowOnAllMonitors('session'));
|
||||
},
|
||||
child: MaterialIcon('power_settings_new', 'norm'),
|
||||
setup: button => {
|
||||
|
||||
@@ -47,11 +47,11 @@ globalThis['openWindowOnAllMonitors'] = (name) => {
|
||||
globalThis['closeEverything'] = () => {
|
||||
const numMonitors = Gdk.Display.get_default()?.get_n_monitors() || 1;
|
||||
for (let i = 0; i < numMonitors; i++) {
|
||||
App.closeWindow(`cheatsheet${i}`);
|
||||
App.closeWindow(`click2close${i}`);
|
||||
App.closeWindow(`cheatsheet${i}`);
|
||||
App.closeWindow(`session${i}`);
|
||||
}
|
||||
App.closeWindow('sideleft');
|
||||
App.closeWindow('sideright');
|
||||
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, 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 = 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 = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);'
|
||||
bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);'
|
||||
|
||||
Reference in New Issue
Block a user