[AGS] Cleanup
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { Variable } from "astal";
|
||||
import { App, Astal, Gdk, Gtk } from "astal/gtk4";
|
||||
import AstalApps from "gi://AstalApps";
|
||||
|
||||
const MAX_ITEMS = 8;
|
||||
|
||||
function hide() {
|
||||
App.get_window("launcher")!.hide();
|
||||
}
|
||||
|
||||
const Launcher = () => {
|
||||
const { CENTER } = Gtk.Align;
|
||||
const apps = new AstalApps.Apps();
|
||||
const width = Variable(1000);
|
||||
|
||||
const text = Variable("");
|
||||
const visible = Variable(false);
|
||||
const list = text((text) => apps.fuzzy_query(text).slice(0, MAX_ITEMS));
|
||||
const onEnter = () => {
|
||||
apps.fuzzy_query(text.get())?.[0].launch();
|
||||
hide();
|
||||
};
|
||||
return <window
|
||||
name="launcher"
|
||||
visible={visible()}
|
||||
anchor={Astal.WindowAnchor.TOP | Astal.WindowAnchor.BOTTOM}
|
||||
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||
keymode={Astal.Keymode.ON_DEMAND}
|
||||
application={App}
|
||||
onShow={(self) => {
|
||||
width.set(self.get_current_monitor().geometry.width);
|
||||
}}
|
||||
onKeyPressed={(self, keyval) => {
|
||||
if (keyval === Gdk.KEY_Escape) self.hide();
|
||||
}}
|
||||
child={
|
||||
<box></box>
|
||||
}
|
||||
>
|
||||
</window>
|
||||
}
|
||||
|
Reference in New Issue
Block a user