# Needed Colours - accent_colour_1 - accent_colour_2 - accent_colour_3 - primary_colour - background_colour - shadow_colour - inactive_colour # TODO - [ ] Astal - [x] Bar - [x] Notifications - [x] Quick controls - [ ] ~Wlogout replacement~ - [x] Media controls - [ ] AppLauncher (possibly, if anyrun is no good, probably not) - [ ] OSD (see [here](https://github.com/Aylur/astal/tree/main/examples/gtk3/js)) - [x] Open Window List for bar when hovering over window title and per-workspace when hovering over workspace - [ ] Text recognition - [ ] Theming - [x] Vivado dark mode - [x] GTK - [x] QT (via environment variable) - [x] ~Librewolf~ - [x] Astal - [x] Hyprland - [x] Rofi - [x] ~nvim~ - [x] yazi - [x] kitty - [ ] DisplayManager (see https://github.com/apognu/tuigreet?tab=readme-ov-file#theming and https://github.com/ratatui/ratatui/blob/main/ratatui-core/src/style/color.rs) - [ ] Cursor (maybe stick with oreo cursor, or otherwise find good replacement) - [x] Rofi - [x] ~Spotlight-Search (or replace with anyrun) or multiple modes with different keybinds~ - [x] ~Wallpaper selector (that automatically triggers the theming script)~ - [x] Kitty - [x] ~Configure colours~ - [ ] Hyprland - [ ] Keybinds: Resize window, move window, open calculator, plus more programs - [ ] Read docs - [ ] battery management - [ ] Programs - [ ] New image viewer (eog, vimiv) - [x] Other pdf reader (maybe -> zathura) - [x] Maybe TUI archive manager (~felix-rs~, ouch in yazi) - [ ] Lazygit: Configure - [ ] Nvim (other repo) - [x] Replace notification handler (noice) - [ ] Configure formatters (of Java, Cpp, TS/JS/Vue, Python) - [ ] Maybe: Add extra configs to commentbox - [ ] Remove trouble (useless for my purposes) - [ ] Yazi - [x] More keybinds - [ ] Configure - [ ] Drag and drop support? - [ ] Check out plugins - [x] Use as file picker - [ ] SDDM - [ ] Replace with LightDM or ensure theming works, but prefer replacing, consider greetd + tuigreet - [ ] Scripts - [ ] Installer (after the basic OS setup is done (= from chroot onwards)) - [x] Theming script - [x] Installer for configs - [ ] Vivado cleanup (run after vivado and hope vivado is blocking (or simply execute vivado in /tmp)) - [x] migrate to zoxide from autojump - [ ] properly swap escape and caps (at lowest level possible) Using astal (https://aylur.github.io/astal, which is gjs based), write a component that takes as argument a UIComponent array (pre-defined interface) and depending on what subclass of that interface it is renders a different component for each element. I have the type definitions of UIComponent below. The possible subclasses are LargeUIComponent, MediumUIComponent, ListUIComponent and CalculationUIComponent. Design-wise, I would like to have something similar to GNOME's layout.