(Uhm please... 🥹)
There are so many things that can be improved in the project and you'll know that if you're using it. Please if you can, take a look at what can be improved and if you can code, help me. If you can't please suggest things that I should fix/prioritize. Thank you 💕
- Arriving at the last theme option and pressing the change theme button throws an error
- Wiki navigation button obscured by the floating toolbar.
- New switch button for booleans not yet bound
- Adding top level keys via right click.
- Resolving globals for values that use them
- Force manual save on certain keys like
monitor
This project is Python (backend) + GTK WebView + Bun (UI), so a few system packages first, then you're good.
hyprsettings.py checks for these at runtime:
- shared libs:
gtk-4,webkit2gtk-4.1,gobject-2.0 - typelibs:
Gtk-4.0,WebKit2-4.1,GObject-2.0
So before anything else, install your distro's GI/GObject + WebKit2GTK packages:
- Arch:
sudo pacman -Sy --needed python-gobject webkit2gtk - Fedora:
sudo dnf install -y python3-gobject webkit2gtk4.1 gtk3 - Debian/Ubuntu/Mint:
sudo apt install -y python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-webkit2-4.1 - Void:
sudo xbps-install -Sy gobject-introspection libwebkit2gtk41 - openSUSE:
sudo zypper install -y python3-gobject python3-gobject-Gdk typelib-1_0-Gtk-4_0 libgtk-4-1 - Alpine:
sudo apk add python3-dev py3-gobject3 webkit2gtk-4.1
Other distros: install Python GI bridge (python3-gi / python3-gobject / pygobject3), WebKit2GTK 4.1, and
GTK/GObject introspection typelibs.
Install these:
Example install commands (Linux):
# just (pick your distro package manager)
sudo pacman -S just
# or: sudo apt install just
# uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# bun
curl -fsSL https://bun.sh/install | bashFrom project root:
just setup_dev
just devWhat those do:
just setup_dev: runsuv sync, thenbun installinsrc/ui-srcjust dev: starts backend + Vite dev server together
Other useful recipes:
just hs
just bld-prev
just build-py
just format
just kill-ports
just generate-new-config-description
just generate-dispatchers
just fmtTooling notes:
just generate-new-config-descriptionupdates data fromtooling/ConfigDescriptionsjust generate-dispatchersrefreshes dispatcher data viatooling/Dispatchers/getdispatchers.pyjust fmtformats thejustfileitself (just --unstable --fmt)
Keep src/ui-src/package.json aligned with real Node imports only.
- Add deps only when importing package names (example:
import tippy from 'tippy.js') - Do not add deps for local file libs (example:
scripts/jslib/*) erudais currently file-based (scripts/jslib/eruda.min.js/ optional HTML script), so do not add it to Bun deps unless you migrate it tonode_modules
If you migrate a library from file import to package import, update src/ui-src/package.json in the same PR.
just setup_dev
just format
just bld-prevIf you only changed UI deps:
cd src/ui-src
bun install
bunx vite build