summaryrefslogtreecommitdiff
path: root/examples/js/applauncher
diff options
context:
space:
mode:
authorAylur <[email protected]>2025-01-16 17:37:00 +0100
committerAylur <[email protected]>2025-01-16 17:37:04 +0100
commit9e8634d892c559c5b44565a68bf35b13cbcb5572 (patch)
tree36a8b911e919959cdf64d3c64646f5066c6a2523 /examples/js/applauncher
parentbc796ac226800c43e724e27f53f410c157acaffe (diff)
add: gtk3 ts popover example
closes #224 closes #157
Diffstat (limited to 'examples/js/applauncher')
-rw-r--r--examples/js/applauncher/README.md5
-rw-r--r--examples/js/applauncher/app.ts9
-rw-r--r--examples/js/applauncher/style.scss1
-rw-r--r--examples/js/applauncher/widget/Applauncher.scss59
-rw-r--r--examples/js/applauncher/widget/Applauncher.tsx87
5 files changed, 0 insertions, 161 deletions
diff --git a/examples/js/applauncher/README.md b/examples/js/applauncher/README.md
deleted file mode 100644
index 682adf1..0000000
--- a/examples/js/applauncher/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Applauncher
-
-![launcher](https://github.com/user-attachments/assets/2695e3bb-dff4-478a-b392-279fe638bfd3)
-
-Using [Apps](https://aylur.github.io/astal/guide/libraries/apps).
diff --git a/examples/js/applauncher/app.ts b/examples/js/applauncher/app.ts
deleted file mode 100644
index d6c9e1c..0000000
--- a/examples/js/applauncher/app.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { App } from "astal/gtk3"
-import style from "./style.scss"
-import Applauncher from "./widget/Applauncher"
-
-App.start({
- instanceName: "launcher",
- css: style,
- main: Applauncher,
-})
diff --git a/examples/js/applauncher/style.scss b/examples/js/applauncher/style.scss
deleted file mode 100644
index ba13eed..0000000
--- a/examples/js/applauncher/style.scss
+++ /dev/null
@@ -1 +0,0 @@
-@use "./widget/Applauncher.scss"
diff --git a/examples/js/applauncher/widget/Applauncher.scss b/examples/js/applauncher/widget/Applauncher.scss
deleted file mode 100644
index ae2453d..0000000
--- a/examples/js/applauncher/widget/Applauncher.scss
+++ /dev/null
@@ -1,59 +0,0 @@
-@use "sass:string";
-
-@function gtkalpha($c, $a) {
- @return string.unquote("alpha(#{$c},#{$a})");
-}
-
-// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
-$fg-color: #{"@theme_fg_color"};
-$bg-color: #{"@theme_bg_color"};
-
-window#launcher {
- all: unset;
-
- box.Applauncher {
- background-color: $bg-color;
- border-radius: 11px;
- margin: 1rem;
- padding: .8rem;
- box-shadow: 2px 3px 8px 0 gtkalpha(black, .4);
-
- entry {
- margin-bottom: .8rem;
- }
-
- button {
- min-width: 0;
- min-height: 0;
- padding: .5rem;
-
- icon {
- font-size: 3em;
- margin-right: .3rem;
- }
-
- label.name {
- font-weight: bold;
- font-size: 1.1em
- }
-
- label.description {
- color: gtkalpha($fg-color, .8);
- }
- }
-
- box.not-found {
- padding: 1rem;
-
- icon {
- font-size: 6em;
- color: gtkalpha($fg-color, .7);
- }
-
- label {
- color: gtkalpha($fg-color, .9);
- font-size: 1.2em;
- }
- }
- }
-}
diff --git a/examples/js/applauncher/widget/Applauncher.tsx b/examples/js/applauncher/widget/Applauncher.tsx
deleted file mode 100644
index c7bac68..0000000
--- a/examples/js/applauncher/widget/Applauncher.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-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 <button
- className="AppButton"
- onClicked={() => { hide(); app.launch() }}>
- <box>
- <icon icon={app.iconName} />
- <box valign={Gtk.Align.CENTER} vertical>
- <label
- className="name"
- truncate
- xalign={0}
- label={app.name}
- />
- {app.description && <label
- className="description"
- wrap
- xalign={0}
- label={app.description}
- />}
- </box>
- </box>
- </button>
-}
-
-export default function Applauncher() {
- const { CENTER } = Gtk.Align
- const apps = new Apps.Apps()
-
- 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 <window
- name="launcher"
- anchor={Astal.WindowAnchor.TOP | Astal.WindowAnchor.BOTTOM}
- exclusivity={Astal.Exclusivity.IGNORE}
- keymode={Astal.Keymode.ON_DEMAND}
- application={App}
- onShow={() => text.set("")}
- onKeyPressEvent={function (self, event: Gdk.Event) {
- if (event.get_keyval()[1] === Gdk.KEY_Escape)
- self.hide()
- }}>
- <box>
- <eventbox widthRequest={4000} expand onClick={hide} />
- <box hexpand={false} vertical>
- <eventbox heightRequest={100} onClick={hide} />
- <box widthRequest={500} className="Applauncher" vertical>
- <entry
- placeholderText="Search"
- text={text()}
- onChanged={self => text.set(self.text)}
- onActivate={onEnter}
- />
- <box spacing={6} vertical>
- {list.as(list => list.map(app => (
- <AppButton app={app} />
- )))}
- </box>
- <box
- halign={CENTER}
- className="not-found"
- vertical
- visible={list.as(l => l.length === 0)}>
- <icon icon="system-search-symbolic" />
- <label label="No match found" />
- </box>
- </box>
- <eventbox expand onClick={hide} />
- </box>
- <eventbox widthRequest={4000} expand onClick={hide} />
- </box>
- </window>
-}