import Apps from "gi://AstalApps"
import { App, Astal, Gdk, Gtk } from "astal/gtk3"
import { Variable } from "astal"
const MAX_ITEMS = 8
function hide() {
App.get_window("launcher")!.hide()
}
function AppButton({ app }: { app: Apps.Application }) {
return
}
export default function Applauncher() {
const { CENTER } = Gtk.Align
const apps = new Apps.Apps()
const width = Variable(1000)
const text = Variable("")
const list = text(text => apps.fuzzy_query(text).slice(0, MAX_ITEMS))
const onEnter = () => {
apps.fuzzy_query(text.get())?.[0].launch()
hide()
}
return {
text.set("")
width.set(self.get_current_monitor().workarea.width)
}}
onKeyPressEvent={function (self, event: Gdk.Event) {
if (event.get_keyval()[1] === Gdk.KEY_Escape)
self.hide()
}}>
w / 2)} expand onClick={hide} />
text.set(self.text)}
onActivate={onEnter}
/>
{list.as(list => list.map(app => (
)))}
l.length === 0)}>
w / 2)} expand onClick={hide} />
}