Initialize projects
With ags init you can initialize a project, which generates a basic template
function Bar() {
const [counter, setCounter] = createState(0)
const time = createPoll("", 1000, "date")
return (
<window visible anchor={TOP | LEFT | RIGHT}>
<centerbox>
<label $type="start" label={time} />
<button $type="end" onClicked={() => setCounter((c) => c + 1)}>
<label label={counter((c) => `clicked ${c} times`)} />
</button>
</centerbox>
</window>
)
}function BatteryLabel() {
const percentage = createBinding(Battery.get_default(), "percentage")
return <label label={percentage((p) => `${Math.round(p * 100)}%`)} />
}
function MediaPlayers() {
const players = createBinding(Mpris.get_default(), "players")
return (
<For each={players}>
{(player) => (
<button
label={createBinding(player, "title")}
onClicked={() => player.play_pause()}
/>
)}
</For>
)
}button {
animation: wiggle 2s linear infinite;
}
@keyframes wiggle {
0% { transform: rotateZ(0); }
7% { transform: rotateZ(0); }
15% { transform: rotateZ(-15deg); }
20% { transform: rotateZ(10deg); }
25% { transform: rotateZ(-10deg); }
30% { transform: rotateZ(6deg); }
35% { transform: rotateZ(-4deg); }
40% { transform: rotateZ(0); }
100% { transform: rotateZ(0); }
}
Delta Shell by Sinomor

Epik Shell by ezerinz

colorshell by retrozinndev

OkPanel by John Oberhauser

Marble Shell by Aylur