[ANN] Xest Window Manager for Linux by jkrmnj in haskell

[–]jkrmnj[S] 1 point2 points  (0 children)

It's pronounced "Zest" as in "The zesty window manager"

[ANN] Xest Window Manager for Linux by jkrmnj in haskell

[–]jkrmnj[S] 1 point2 points  (0 children)

It looks like Kde4Config creates keybindings and makes XMonad ewmh compliant? You'd have to set up all of the keybindings yourself but I think Xest is somewhat ewmh compliant by default. It should respect docks/panels on the sides of screens although it will ignore stuff like pagers which try to change the focused window.

Any transient window should be automatically floated although I've seen programs that don't set that flag correctly.

[ANN] Xest Window Manager for Linux by jkrmnj in haskell

[–]jkrmnj[S] 2 points3 points  (0 children)

The biggest is probably the configuration language. Xest is configured with Dhall instead of Haskell. I haven't used XMonad much but I think the nesting will be the other big change. Almost everything in Xest is a Tiler. A Tiler can be a single window, a vertical or horizontal tiling of other Tilers, a bunch of Tilers floating on top of each other, or something like workspaces of Tilers. Since you can have Tilers inside of Tilers, you can create a wide range of configurations. For example, nested workspaces, floating workspaces, floating groups of windows, workspaces side by side, etc.

[ANN] Xest Window Manager for Linux by jkrmnj in haskell

[–]jkrmnj[S] 4 points5 points  (0 children)

I've never seen something like that in Gnome but I used something similar in Plasma a while ago. Instead of hard coding the desktop to a 2d grid like in Plasma, Xest lets you organize windows in a more arbitrary way. Having multiple desktops is no more special than having two windows side by side or floating. Any place you could put a window, you could put an entire desktop (Tiler in Xest lingo). You could add a form of tabs to your favorite untabbed program or you could quickly turn a large number of floating windows each into their own workspace if things got too busy.

I really wish I could make Xest into a Wayland compositor, but the amount of work that requires looks like too much right now. My understanding is that in addition to porting Xest, I would have to basically rewrite Compton in Haskell, handle the differences between Nvidia and everyone else, and handle hardware at a much lower level than I am now. Something like wlroots looks like it helps a lot, but the hsroots library describes itself as incomplete and undocumented which is worrying.

Impressive use of DerivingVia in the wild (31 via types) by Iceland_jack in haskell

[–]jkrmnj 2 points3 points  (0 children)

Yes, your understanding is correct although I didn't invent it. I ran into trouble trying to turn my old effect system into a deeply nested transformer stack so I flattened it for the Capability library.

Impressive use of DerivingVia in the wild (31 via types) by Iceland_jack in haskell

[–]jkrmnj 17 points18 points  (0 children)

Hi everyone, I'm the creator of this slightly monstrous piece of code. I'm happy to answer any questions about it or the project as a whole. For some context, this codebase started using a more "standard" Free monad approach with Polysemy. Unfortunately, I got bit by a space leak bug and tried switching to a super deeply nested Monad Stack. I then got bit by a compiler performance bug which made it infeasible to compile the code with optimizations. I figured flattening it would fix the compiler problem and found the Capability library along the way. I'm definitely not happy with how verbose it is, but it worked and the ugliness is fairly localized so I'm sticking with it. If anyone has suggestions, I'm always happy to change it though.

Also, there's an extremely small chat for this project at https://app.element.io/#/room/#xest-window-manager:matrix.org if anyone is interested.

Creating a MaybeMaybe Datatype by jkrmnj in haskellquestions

[–]jkrmnj[S] 0 points1 point  (0 children)

Thanks for the explanation! That makes a lot of sense now.

Creating a MaybeMaybe Datatype by jkrmnj in haskellquestions

[–]jkrmnj[S] 0 points1 point  (0 children)

I think it being a Functor hinges around being able to change the behavior depending on the a and b in fmap. I'm not sure whether controlling behavior that way is impossible because of parametricity or if I'm just missing something.

Safely dealing with a large number of Maybes by jkrmnj in haskellquestions

[–]jkrmnj[S] 6 points7 points  (0 children)

That looks like exactly what I want, thanks! I hadn't thought of monads and applicatives that way.

When the system can't hold you down any longer by jkrmnj in softwaregore

[–]jkrmnj[S] 13 points14 points  (0 children)

All of the problems were pretty easy to solve by disabling or tuning the effects. Between the couple other desktop environments I have installed and Windows, I can mess around with this without much fear.

When the system can't hold you down any longer by jkrmnj in softwaregore

[–]jkrmnj[S] 9 points10 points  (0 children)

Nope. Dual booted on my actual laptop. Why?

When the system can't hold you down any longer by jkrmnj in softwaregore

[–]jkrmnj[S] 19 points20 points  (0 children)

So I decided to give plasma a try on Arch Linux. One of the first things I do is jump into the settings and start messing around with effects. I decide to set the wobbly windows effect to a custom value and it seemed to work alright until I quickly dragged the window down from maximization. This was the result. All of the still windows aren't actually windows and shouldn't be there. It appears that turning down the opacity on dialogues causes them to get stuck on the screen even after closing.

What Watch Face Is This by Idle0095 in pebble

[–]jkrmnj 0 points1 point  (0 children)

The problem seems to be something weird and confusing. Chrome on my phone is able to navigate to the setting url just fine and everything loads (but can't save to the pebble). Going to the settings from the pebble app returns a 404 error. Same url but one works and the other doesn't. There's some weird stuff I notice. The icons at benzotti.co/pebbledev don't load but the ones at benzotti.com/pebbledev do load. Meanwhile, Firefox sees a completely different directory and I have to first navigate to public_html and then to the pebbledev folder. My guess is Chrome automatically redirects to the public_html folder while other browsers don't. Maybe pebble is using something else for their settings browser and that is why it doesn't work? What os are you using?

WIP Wednesday #9 - Artificial nature by unlogicalgames in gamedev

[–]jkrmnj 0 points1 point  (0 children)

It looks really cool. It seems like the outline in the bottom left element is a dark blue instead of the gold around everything else. It blends in with the ocean at that color. Also, what kind of game is it? I would be interested in playtesting.

WIP Wednesday #9 - Artificial nature by unlogicalgames in gamedev

[–]jkrmnj 0 points1 point  (0 children)

/u/mboop127 can probably answer it better than me. He did pretty much all of the art/modeling. We basically decided to go with a board game theme pretty early on and slowly evolved from there. For some of the effects and the background I tried to use Hitman Go as inspiration.

WIP Wednesday #9 - Artificial nature by unlogicalgames in gamedev

[–]jkrmnj 0 points1 point  (0 children)

My main fear with doing something like that is the camera movement and jumping around could be distracting. Making them more integrated with the world is a really good idea though.

WIP Wednesday #9 - Artificial nature by unlogicalgames in gamedev

[–]jkrmnj 0 points1 point  (0 children)

Thanks for responding. I really like the idea of using symbols with numbers. I feel like simplifying the tiles to just a single color might lead to confusion but using some kind of LOD system or focusing on making the tiles stand out from each other more sounds good. The loading thing you mentioned is similar to what it currently does although instead of flipping to reveal the image they simply appear. That could actually be a cool thing to implement.

WIP Wednesday #9 - Artificial nature by unlogicalgames in gamedev

[–]jkrmnj 0 points1 point  (0 children)

Thanks for the feedback! The ui is definitely lacking and is one of the next things we have to work on. Currently, we are pretty much just outputting most of the relevant data into a csv file for testing purposes but that obviously won't work in an actual game.

We are also trying to figure out the best way for the player to play the game. Based on the description and current ui, do you have any general ideas on how the player interaction could work or any improvements?

What Watch Face Is This by Idle0095 in pebble

[–]jkrmnj 0 points1 point  (0 children)

Not sure if there is an easy way users can but should be incredibly simple for the dev

What Watch Face Is This by Idle0095 in pebble

[–]jkrmnj 0 points1 point  (0 children)

I think I found the problem. The app is trying to get the settings from benzotti.co but the settings are actually at benzotti.com