diff options
| -rw-r--r-- | src/modules/session.tsx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/modules/session.tsx b/src/modules/session.tsx index 7d04870..1c58d48 100644 --- a/src/modules/session.tsx +++ b/src/modules/session.tsx @@ -1,10 +1,19 @@ import { execAsync } from "astal"; -import { Astal, Gtk } from "astal/gtk3"; +import { App, Astal, Gtk } from "astal/gtk3"; import PopupWindow from "../widgets/popupwindow"; -const Item = ({ icon, label, cmd }: { icon: string; label: string; cmd: string }) => ( +const Item = ({ icon, label, cmd, isDefault }: { icon: string; label: string; cmd: string; isDefault?: boolean }) => ( <box vertical className="item"> - <button cursor="pointer" onClicked={() => execAsync(cmd).catch(console.error)}> + <button + cursor="pointer" + onClicked={() => execAsync(cmd).catch(console.error)} + setup={self => + isDefault && + self.hook(App, "window-toggled", (_, window) => { + if (window.name === "session" && window.visible) self.grab_focus(); + }) + } + > <label className="icon" label={icon} /> </button> <label className="label" label={label} /> @@ -22,7 +31,7 @@ export default () => ( > <box vertical halign={Gtk.Align.CENTER} valign={Gtk.Align.CENTER} className="inner"> <box> - <Item icon="logout" label="Logout" cmd="uwsm stop" /> + <Item icon="logout" label="Logout" cmd="uwsm stop" isDefault /> <Item icon="cached" label="Reboot" cmd="systemctl reboot" /> </box> <box> |