Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

143 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slime Shell

A slime-skinned bar suite for Omarchy: a shader-drawn bar of dripping ooze (or sinew, or bone), widgets that float in it, panels that drip out of it, and a command centre, app launcher and notifications to match. Everything takes its colours from your Omarchy theme, and it runs on any screen edge and any screen size.

Slime bar, print shading

Command centre Launcher
System tab Audio panel

Looks

Mix a material (slime, sinew, bone, plain, muscle — striated fibres, tendon plaques and burn scarring, the fibres stretching into strands down the drips) with a shape (classic, pills, islands, notch, blob — the three sections huddled together in the middle of the edge as one slime) and a shading style (soft, anime, manga, print, cel, sketch):

Sinew pills Bone notch Slime islands, manga

Drips

Pick how the ooze moves (Settings → Motion → Drip style, or omarchy-shell slime-shell drip <style>):

Style
drip — the default drip
honey — slow and thick honey
rain — fast, thin and many rain
tar — crawling, fat and few tar
frozen — hang still frozen
stringy — hang by strands that thin as the glob pulls away, snap, and let it scatter; neighbouring drips (and widget drips) are webbed together in lattices stringy
lava lamp — globs of every shape bud off, pinch apart and sink lava lamp
gelatinous — the whole body jiggles and holds on to its goo; only the odd small bead is shaken loose, falling like rain gelatinous
cava — the drips become an audio visualizer: each hangs as far as the music under it reaches (bass on the left, treble on the right), a bead of goo swelling at its tip. Cava runs only while this style is picked. Settings → Motion then shows its own knobs: style (drips, or ripple —
no drips; the goo's whole underside swells and ripples with the music),
number of bars, bass → treble or mirrored (bass in the middle), sensitivity (auto or fixed), reach, thickness and smoothing

…and how much of it there is (Drip amount):

Amount
dry dry
ooze ooze
gush gush
torrent — longer and more of them torrent
variable — each drip waxes and wanes variable

Fonts

The system font, or a display face for clocks, temperatures and headings (small text stays in the rounded, readable Sniglet):

Font styles

* Styro, Nippo and Array are free Fontshare fonts whose licence doesn't allow bundling them, so Slime Shell doesn't ship them: download them from Fontshare and install them (e.g. copy the .otf files to ~/.local/share/fonts and run fc-cache -f) and they show up as font options.

Slime icons

The slimes on the workspaces, the agents robot and the launcher can be pale paper (they pop off the ooze), the theme's colours (each workspace a different hue), or shaded with the bar gradient (Settings → Slime, or the workspaces' right-click menu):

Slime icon colours

Debris and easter eggs

With bar debris on, eyeballs, bones, teeth, bubbles, frogs, hats, swords and tankards drift through the bar and behind the command centre, the launcher, every widget panel and the karaoke's lyric drips (matched to the material: teeth and eyes in sinew, bones and skulls in bone). Every bit comes in its own size — some a good deal bigger — but never too big for the goo it's floating in. In a lyric drip they ride along inside the bead as it sinks, and burst out and scatter with the words when it pops. Now and then a little adventurer — a gnome, goblin, skeleton, knight, wizard or priest — gets stuck in a fat drip and falls off with it, or turns up trapped in a panel's ooze.

What's in it

  • The bar (slime.bar) — Omarchy's bar engine (layout, drag-to-reorder, popouts, IPC) with the slime skin painted behind it. Top, bottom, left or right; widgets bob in the goo.

  • Command centre — Home (quick toggles, clock, cloud-shaped weather, sound, the media monster, calendar, notifications), System (adventurers marching on a dungeon), Wallpapers (the theme's, plus any you drop in ~/Pictures/SlimeS-Wallpapers — stills, or videos and gifs that play as motion wallpapers, muted and looping, paused while a window is fullscreen or you're idle; each section folds away; sort by name or type, and switch on a timer — in order or shuffled, from the theme's, yours or all), Tasks, Start-Up (apps to launch at login, and on which workspace — it adds one hook line to ~/.config/hypr/autostart.lua) and Settings tabs. It fits any screen: capped to the space there is (tall tabs scroll) and scaled down on narrow or portrait screens. Keyboard driven too: arrows move a highlight between controls, Enter presses, ←/→ turn sliders, 1–6 or Ctrl+Tab switch tabs, t folds the tab sidebar down to icons (or the arrow at its corner), ? shows the keys (Settings → Command centre to turn it off). Its text size has its own slider (80–140%).

  • Widgets — launcher, workspaces, agents (its robot gets worried as your session usage climbs), media, clock & weather, indicators, tray, treasure chest (widget picker), bluetooth, network, audio, display, power, keyboard layout, system update, spacers. See docs/widgets.md for what every click does.

  • Karaoke (SlimeS-Karaoke, the media widget) — a lich, wizard, priest, dryad, witch, wand-stuffed slime or wisp (right-click to choose) casting the visualizer — that's its idle form. Left-click the caster (or the visualizer) and it sings, a ♪ bubble on its shoulder: each line of the song's lyrics hangs from the bar as a round bead of goo on a neck, sinking lower as the line is sung, the word being sung lit in a glossy bubble of goo (the rest still to come fainter); when the line ends the neck snaps and the bead drops and bursts into droplets, words scattering, as the next line drips down. The beads take the bar's material, colours, shading and debris, and never block a click. Lyrics come from LRCLIB (only the artist, title, album and length are sent; cached per song). Right-click for the caster, the visualizer, karaoke on/off, the whole song (every line in a big drip panel, the current one lit; click a line to jump there), refresh lyrics and which player to follow. Hover for a drip card with the album art, track, progress and which player to follow (whatever's playing, or stick to one). While hovering it — or the media slime in the command centre — Space plays/pauses and M mutes; a middle click plays/pauses too:

    Media hover card, with each caster

  • Spacers — as many as you like, each holding plain ooze, a sagging lump or any floating bit; scroll to resize, right-click for options.

  • Launcher — fuzzy search over apps, every Omarchy menu command (> for commands only) and your files (/ for files only); drips from the bar when clicked, floats centred when summoned by keybind. Set in a castle the slime has swallowed: towers and a broken wall sunk in the goo, blocks of its shattered top drifting up, the king, queen, princess, knights, a jester and a horse adrift with goblins, skeletons, slimes, a witch and a lich. Results bob in the ooze, bubble up as you scroll, and can sit in bubbles (the bubbles button, or slime-launcher bubbles on|off).

  • Dock (SlimeS-Dock) — apps, folders and files in a lump of the bar's own slime on any edge the bar isn't on, dripping like the bar. Centred or at either end (where it melts into the bar or the corner slime), optionally hidden until hovered — hidden, it draws nothing at all. + oozes out a panel to search and add apps; drag folders and files onto it; right-click an icon for a slime menu to launch, move or remove it:

    The dock

  • Notifications — toasts drip out of the bar (top bar).

  • Slime-Tasks — a todo, task-log and progress suite in the command centre's Tasks tab, or as a pop-out over everything (omarchy-shell slime-shell tasks). The slime has swallowed a whole tavern: signs on a beam, mead barrels, a bar, broken boards, and bards, knights, rogues and orcs adrift in the goo. Todos with sub-todos, coloured groups and super groups (groups of groups); pictures pinned to sub-todos (a drip-panel file picker, or drop them on); a live task log that you and your agents (slime-tasks) write to while sub-todos shift across to do / in progress / done, tagged super group › group › todo › sub-todo and viewable per todo or across everything by todo, group or super group (L jumps from any of them to its part of the log); progress by group with an archive that takes and gives back whole groups and super groups. Fully keyboard driven, drag to reorder, plain markdown in ~/Documents/Slime-Notes so Envy or any notes app can open it: docs/tasks.md.

    Slime-Tasks: todos Slime-Tasks: task log

The bar

  • Drag widgets to reorder them. In the pills shape, drop one onto the middle of another to join their pills. Inside a joined pill, drag a widget between its pill-mates to shuffle it, or onto one to swap them. Drag it to either end of the pill and two markers appear: the one just inside swaps it with the end widget, the one just past the end splits it into its own pill. A spacer on its own gets a pill of its own.
  • Above or behind windows — draw the drips over your windows or tucked behind them (toggleLayer, or Settings → Slime).
  • Any plugin — third-party Omarchy bar widgets work as normal and float in the goo; their panels open from the bar, or from Settings → Widgets.

Install

Needs an up-to-date Omarchy (the Quickshell-based shell) plus git, jq and python3. Optional: cava for the visualizers and the cava drip style; qt6-multimedia (plus ffmpeg and imagemagick for their thumbnails) for video and gif wallpapers; qt6-shadertools if you edit the shader.

git clone https://github.com/DasPoxy/slime-shell.git ~/Work/slime-shell
~/Work/slime-shell/bin/slime-shell use

use links the plugins into ~/.config/omarchy/plugins/, backs up your current bar layout, switches the bar to Slime, swaps in Slime's notification server and restarts the shell. It also links slime-tasks into ~/.local/bin and makes ~/Pictures/SlimeS-Wallpapers. To go back:

~/Work/slime-shell/bin/slime-shell restore     # your previous bar, exactly
~/Work/slime-shell/bin/slime-shell status
~/Work/slime-shell/bin/slime-shell install     # just (re)link the plugins

The plugins are symlinks into the clone, so editing the repo changes the live bar (restart with omarchy restart shell to be sure).

Keybinds

Nothing is bound for you. Suggested lines for ~/.config/hypr/bindings.lua (unbind anything already on those keys first with hl.unbind("...")):

o.bind("SUPER + ALT + C",          "Slime command centre",       "omarchy-shell slime-shell toggleTab home")
o.bind("SUPER + R",                "Slime launcher",             "omarchy-shell slime-launcher apps")
o.bind("SUPER + ALT + S",          "Slime settings",             "omarchy-shell slime-shell toggleTab settings")
o.bind("SUPER + ALT + M",          "Slime system monitor",       "omarchy-shell slime-shell toggleTab system")
o.bind("SUPER + ALT + X",          "Slime tasks",                "omarchy-shell slime-shell toggleTab tasks")
o.bind("SUPER + ALT + W",          "Slime wallpapers",           "omarchy-shell slime-shell toggleTab wallpapers")
o.bind("SUPER + CTRL + SHIFT + Z", "Slime above/behind windows", "omarchy-shell slime-shell toggleLayer")
o.bind("SUPER + CTRL + SHIFT + RETURN", "Slime-Tasks pop-out",      "omarchy-shell slime-shell tasks")

Other IPC for binds or scripts:

omarchy-shell slime-shell toggle | open | close | tab <name> | toggleTab <name>
omarchy-shell slime-shell tasks                  # Slime-Tasks pop-out
omarchy-shell slime-shell material slime|sinew|bone|plain|muscle
omarchy-shell slime-shell shape classic|pills|islands|notch|blob
omarchy-shell slime-shell shading 0|1|2|3|4|5    # soft, anime, manga, print, cel, sketch
omarchy-shell slime-shell drip drip|honey|rain|tar|frozen|stringy|lava|gelatinous|cava
omarchy-shell slime-shell cava drips|ripple         # the cava style's look
omarchy-shell slime-shell dock toggle|on|off|apps|top|bottom|left|right|start|center|end|autohide|pinned
omarchy-shell slime-shell corners on|off|toggle
omarchy-shell slime-shell wallpaper <path>       # a still, or a video / gif to play
omarchy-shell slime-shell nextWallpaper          # the next one (the Wallpapers tab's switching order)
omarchy-shell slime-shell layer above|behind     # draw over or behind windows
omarchy-shell slime-shell toggleLayer            # flip between the two
omarchy-shell slime-shell color <theme role>     # accent, green, cyan, …
omarchy-shell slime-shell gradient <theme role>  # the gradient partner, auto or none
omarchy-shell slime-shell fps <n>                # 0 pauses the animation
omarchy-shell slime-shell egg                    # (shh) summon a trapped adventurer
omarchy-shell slime-launcher apps | icons | bubbles on|off
omarchy-shell slime-media toggle | next | previous
omarchy-shell slime-media karaoke | lyrics        # karaoke on/off, the whole song's lyrics
omarchy-shell slime-media follow <player>         # "" follows whatever's playing
omarchy-shell slime-plugins toggle
omarchy-shell slime-workspaces menu
omarchy-shell slime-clock settings
omarchy-shell shell toggle <widget id>           # any bar widget's panel, e.g. slime.audio

Settings

Command centre → Settings (sections fold open and closed):

  • Command centre — keyboard navigation on / off, and a text size slider (80–140%) for the command centre and its tabs (the bar clock keeps its own size, in its menu)
  • Desktop styling — rounded screen corners (off / small / medium / large) and slime patches in the corners across from the bar, mirroring its look
  • Dock (SlimeS-Dock) — a dock of apps, folders and files made of the bar's own slime, on any screen edge the bar isn't on (move the bar onto it and the dock moves across); centred or at either end — at the end next to the bar it sits just past the bar and melts into it, one slime bracketing the corner; at the far end it melts into the corner slime; optionally hidden until hovered; three icon sizes. The + on the dock oozes out a panel to search apps and add or remove them (↑↓, Enter, Esc); drag folders or files onto the dock to pin them; right-click an icon for a little drip of a menu to launch, move or remove it (↑↓ Enter, Esc or a click elsewhere closes it). Pins live in ~/.config/omarchy/slime-shell/dock.json.
  • Slime — colour, gradient partner, material, bar position, bar shape (classic, pills, islands, notch, blob), draw above/behind windows, bar debris, slime icon colours, shading (soft, anime, manga, print, cel, sketch)
  • Font & clock — system font or a display face (blobby, drippy, bubble, runic; styro, nippo, array when installed), date/time order
  • Motion — frame rate, drip style, drip amount; with the cava style, its bar count, bass → treble or mirrored, sensitivity, reach, thickness and smoothing
  • Updates — check GitHub, update & restart
  • Widgets — each Slime widget's settings; whether Power shows without a battery and System update without updates; and a button for every bar widget (yours and third-party) that drips its panel open

Skin settings are saved in ~/.config/omarchy/slime-shell/skin.json (dock pins in dock.json, start-up apps in startup.json, beside it); per-widget settings in the widget's entry in ~/.config/omarchy/shell.json.

Updating

Settings → Updates → Check for updates, then Update & restart (it only fast-forwards, and stays off if you have local changes). Or by hand:

git -C ~/Work/slime-shell pull && omarchy restart shell

Layout of the repo

Path What
plugins/slime.bar/ the bar; shaders/slime.frag (the skin), commandcenter/ (tabs, slime_tasks.py, slime-startup), dock/ (the dock's icons, menu and apps panel), ui/ (shared panels, monsters, gear, debris, the motion-wallpaper player), fonts/
plugins/slime.* widgets, mostly cloned from Omarchy's and restyled
plugins/slime.notifications/ notification service
layouts/default.json the bar layout slime-shell use installs
bin/slime-shell install / use / restore / status
bin/clone-omarchy-plugin clone another Omarchy plugin as slime.<name>
bin/slime-tasks the tasks backend on the command line (for agents)
docs/ widget reference, tasks guide, pictures
spike/ the original standalone prototype

How it's drawn: one signed-distance-field shader draws the whole scene (bar, drips, bulbs under widgets, panels, the command centre). The bar window is exactly the bar — so widget panels, including third-party ones, size and place themselves as they would on Omarchy's own bar — and a second, fixed-size, click-through window just past it carries the drips and the command centre. Both run the same shader with the same inputs, so the goo is seamless across them. The corner patches and the dock are more small windows running that shader with their own shapes.

After editing the shader, recompile it:

/usr/lib/qt6/bin/qsb --qt6 -o plugins/slime.bar/shaders/slime.frag.qsb plugins/slime.bar/shaders/slime.frag

Credits

Built on Omarchy's shell plugins (MIT). Fonts: Chewy (Apache-2.0); Rubik Wet Paint, Rubik Bubbles, Sniglet, MedievalSharp and IM Fell English (SIL OFL). Styro, Nippo and Array (Fontshare) are not included — see Fonts above. Licences in plugins/slime.bar/fonts/.

Licence

MIT — see LICENSE, which also carries Omarchy's MIT notice for the parts derived from its plugins. Fonts keep their own licences.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages