Plans
Write a wayland compositor
Honestly, this one's kinda hard to get with a good integration with systemd going. It's a complicated spec, and niri and cosmic have already done a really good job at it.1
Implement an Xscreensaver equivalent for wayland, in rust
This should be fairly straightforward.
ext-session-lock-v1 already takes care of most of the
security features that xscreensaver implements. All that's needed is
a UI toolkit and the ability to load gifs. awww, the
wallpaper daemon should have the code for loading gifs and caching
them into memory. gtklock should already contain the
code to launch the gtk dialog box and such. There is a POC gtk4 port
as well, and I'd likely base it off of that and allow folks to load
gifs. And that should be done. However, it'd be in C, so a rust port
would also be needed.
Edit: this will help
Create your own OS
Should be doable in the long run? Atleast qemu emulation and init to sh shouldn't be impossible.
Contribute to jellyfin and allow it to stream media, particularly books
This is especially annoying as I have to load the entire book every single time or I have to download it to the local device.
UPDATE: Maybe not anymore, Kavita works sooo welll!
Create a package manager that can be used akin to nix, but easier
supac
is already a thing, and is pretty usable too! Check it out!
Create a mechanism to easily describe and hold bwrap wrappers
- This should have all the bells and whistles, like having portal access and such.
- It should work well.
- There's a default list of allowed seccomp-whitelists, should look into that too.
- Wrap around with the config and such.
- Desktop entries for launchers as well if possible.
- Integrate with supac?
- Relevant
- Parse TOML and then use that to create it?
- Provide optional starter template to the tool for further generation
- How will it have portal access? Need to see that part. UPDATE: It cannot.
- Relevant
- Portal support needs to be baked in the application and used at runtime, you cannot intercept filesystem requests or such and redirect them to the portal.
Create a mechanism to manage dotfiles right alongside packages in supac
- Probably work by keeping symlinks/specifying links directly all over the place?
- Basically create a living code-based system to interact with the entire OS
- Need to flesh it out
Create an entire shell UI/framework of your own
Needs the bare minimum of this all:
Basic system stuff:
- sound
- brightness
- network interfaces
- bluetooth
- notification support
- lock screen support
- system tray
- polkit daemon
- idle inhibitor and idle timer
Actual system stuff:
- CPU utilization per-core
- Disk utilization
- process management API
- uptime
- clock
- temperature monitor
- Battery management
- filesystem indexing
- DBus snooping
random interfaces:
- unix socket abstractions
- screencasting support ala xdg-desktop-portal-gnome
- niri workspace support
random pickers and stuff:
- color picker/color creator
- wallpaper
- clipboard
- emoji picker
Things to consider:
- iced? Is it too complex? Maybe the libcosmic fork. It sure seems interesting though
- Fully rust? There are haskell forks. Do you want external contributions?
- gtk4 + libadwaita? Not sure how much that'd fare though. It can be extremely expensive to work with it.
Answer: go for iced: it's based on rendered state, and allows you to basically update parts of it instead of the whole view
Create a launcher using nushell
This will be fun. Use input list for this. Support
the following features from vicinae: Relevant
- applications
Create a rust binary to output a kitty panel detail
- niri current workspace name (using socket)
- volume levels (see how ironbar does it)
- current volume source
- bluetooth source
- wifi speed
- tailscale status
- battery level
- time and date
- CPU temp
- CPU freq
- CPU usage
- memory usage
contribute TUIs using pimalaya project
Foo↩︎