Comments (4)
Looking forward to this! I played a bit with penrose when looking for a programmable WM to program with rust, but then switched my system over to wayland, and haven't found any programmable compositor that I could get to the point I was with xmonad (despite my lack of haskell programming knowledge).
Some info that can be useful to you:
- I also started reading the wayland book, it's from the guy who wrote wlroots. It looks like it's hosted on SourceHut, which seems to be currently offline because of a massive DDOS attack.
- there is also jay that works as a programmable compositor to build one's tiling wm that I'm playing with.
from penrose.
qtile: https://github.com/qtile/qtile may be a good reference as well as they have a both a wayland and x11 backend
from penrose.
Thanks for the links @nabajour! Particularly the context around why the wayland book is currently offline (hopefully the source is available somewhere so I can nab an offline copy for future reference 🤞) I'd spotted jay
previously but hadn't included it in my list as it looks like it handles implementing the Wayland protocol itself which probably isn't the way I'm going to go with this? Still worth a look though, just might be a little harder to unpick the pieces I want to learn from!
If I'm able to pull off what I'm aiming for then you should be able to swap out the X back end in Penrose for a new Wayland one and mostly keep the rest of your setup unchanged. I need to read up and experiment with things around how interacting with client programs works (particularly the sorts of things that you might do with something like xdotool
) before I can settle on the new trait that will be replacing XConn
. If you have any tips or links along those lines I'd appreciate a steer in right direction 🙂
from penrose.
hopefully the source is available somewhere so I can nab an offline copy for future reference
The wayland book is still offline, but it looks like the source is available on Drew Devault's sourcehut. It's buildable with mdbook.
I'd spotted
jay
previously but hadn't included it in my list as it looks like it handles implementing the Wayland protocol itself which probably isn't the way I'm going to go with this? Still worth a look though, just might be a little harder to unpick the pieces I want to learn from!
It's interesting to see how stuff is done from scratch, but yes, smithay might be a better starting point, or something based on wlroots. I saw some things missing in jay that depend on extensions, so those might need to be reimplemented from scratch in this case...
from penrose.
Related Issues (20)
- Look into supporting re-rendering the built in status bar without requiring an XEvent HOT 1
- Holding onto destroyed client Xids in a state extension breaks NamedScratchpad behaviour HOT 5
- toggle full screeen example HOT 1
- Add a BSP manual tiling layout HOT 1
- Find an alternative to pango/cairo for penrose_ui HOT 3
- Question: Are you sure file redirection can be used in `Exec=` of `Desktop Entry` HOT 1
- weird behavior caused by reload HOT 6
- Escape key not functional HOT 4
- Error: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" }) HOT 1
- penrose crashes due to unknown client and using expect. prefer if let HOT 2
- Ability to cycle to next/previous tag HOT 6
- Allow the use of other bars e.g. polybar HOT 5
- penrose_ui: Setting background color of status bar to black (0x000000 or 0x000000ff) results in crash HOT 1
- Question: Use xmodmap-pke-umberwm? HOT 4
- ActiveWindowName won't respect max_chars HOT 4
- Hidden scratchpad workspaces can end up being mapped to a screen and cause flicker HOT 1
- SpawnOnStartup - 'then' method cannot be invoked on a trait object
- Adding AltGr as a modifier HOT 2
- Add the ability to combine `Query`s into composite Queries HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from penrose.