Worker (file manager)

@X512 can you produce a mini guide how to port linux program with wayland compatibility layer ? For example worker commander, it uses Xlib, freetype and harfbuzz.

http://boomerangsworld.de/cms/worker/requirements.html

You can’t port X11 applications with the Wayland compatibility layer (well, maybe if xwayland worked, but that’d be a bit inefficient.)

I actually tried running Worker on top of Xlibe. It compiles and runs, but there’s a lot of redraw errors making most text obscured by other content. I didn’t manage to figure out what the problem was there, but it’s probably something relatively simple to fix once the problem has been identified.

I’m not familiar with Worker internals, so I’m not entirely sure what it’s trying to do that’s going wrong. I considered asking its developer, but I didn’t want to bother them unnecessarily…

Emailed the author of Worker Ralf Hoffman about 2 years ago, so think we won’t bother him much with this:

Krusader already ported to Haiku, but some ex-Amigians want to see Worker in Haiku too :slight_smile:
What would be easiest to port Worker on ? Haiku has wxwidgets qt and sdl lib.
Some people may be interested in doing this port.

I really can’t tell which is easier. I use a self-written GUI library
which resembles the look and feel of Amiga GUIs. This use a lot of low
level X drawing routines which might be relatively easy to port to SDL,
however it also makes extensive use of X window for each single GUI
element and its event handling and I think there is no replacement for
that in SDL.

It is probably a little bit easier to port it to Qt, but the widget
library I use is not well separated from the underlying X system so
there are a lot of dependencies. Also, you probably need to adjust or
create custom Qt widgets to mimic the look and behavior of the X11 widgets.

A quick’n’dirty hack might be relatively fast to achieve (a couple of
days to few weeks), but for a complete, fully functional replacement it
will probably take much longer. But I can’t really tell, since I don’t
have much knowledge about Qt anyways.

That sounds like he might be amenable to some back-and-forth by which he can indicate what X11 features he is using which Xlibe does not implement correctly. I might see about emailing him myself, then.

1 Like

I spent a bunch of time fixing behavioral differences in Xlibe today. And now:

There’s still redraw glitches, as you can see, but it does seem to (mostly) work now.

22 Likes

Wonderful!!!

1 Like

@waddlesplash Xlibe was updated recently, can you try to run the latest Worker ?

There are still drawing glitches. They appear to boil down to clearing operations apparently not happening as expected, i.e. regions are repeatedly over-drawn and text stacks up on top of itself.

Forcing full redraws (e.g. moving a window overtop another) causes things to be redrawn correctly, so there’s probably some minor bug here.

Well, I fixed the redraw problems, but that revealed that Worker depends on overlapping-siblings behavior too, just like Tk… :frowning:

It doesn’t seem to have the event-handling problems here like Tk does, though, so I made some modifications to the sibling-clipping patch I had and got something at least partially working for that. But it still doesn’t behave correctly, and I’m not entirely sure why. Maybe I’ll ask one of the other developers to take a look…

3 Likes

Hi there waddlesplash, it is quite sometime (2022) since we last talked about worker. it is good to see that you & others have continued to give it some time & try to get it functioning properly.

Do you have any new info’ to add to this? I ask as i’ve been using worker as my frontend on linux for appoaching 17 years now. i’m kind of addicted to it. :slight_smile:

1 Like

Nothing has changed since my last reply of Nov 2023; the redraw problems for sibling-clipping haven’t been solved. My attempts at manually altering BView clipping with BRegions didn’t seem to work properly, though it’s possible my code isn’t fully correct.

Thanks for your reply @waddlesplash . i just had my fingers crossed & asked due to reading something about an X11 related upgrade. but really, it is all knowledge that is above my pay grade. :wink:

Thanks for all the work you have done for Haiku, you know it is much appreciated by so many.

2 Likes

Same here. I never had an Amiga myself but I used (and I’m still using) Worker for a long time. It’s a great file manager but overlooked in the GNU/Linux world, in favor of more eye-candy file managers (even though Worker is actually far superior in therms of features). No surprises there, flashy apps always take the lion’s share.

Of course I would love to see Worker ported on Haiku, but in the meantime I use Midnight Commander instead. It’s the closest thing to Worker I am aware of (and arguably even more fearure-rich). MC is as fast and keyboard-centric as Worker, at the cost of a somewhat more cryptic UI.

Needless to say I second that.

3 Likes

Thanks for your reply @Pap. :smiley:

I did have an Amiga, they were the machines that got me my lifelong addiction to computer’s (OS’s in particular).
Jonathon Potter’s Directory Opus (Dopus) addicted me to that kind of file management tool.

I think that Worker is far more full featured than Dopus was. but hey, a lot of years have gone by since the 2nd half of the 80’s & the early part of the 90’s (in particular), when Commodore did their most horribly slow & ugly self-destruct.

You would think that they were trying to do everything just right, so that the Amiga wouldn’t have a chance of being picked up by a good size company that could have continued on with the Amiga’s development.

Anyway, past history now.

Worker is awesome, i feel somewhat lost using a computer that doesn’t have Worker on it. :slight_smile:

One day the stars will align & Haiku will have Worker available to do its thing, for those that know & love it.

Cheers Pap, catch you later.

I am guessing avfs can be ported as well. avfs can be used as an independent library, but was developed for Worker itself as its virtual filesystem (mainly used to open compressed files “on the fly”), Without it, Worker would essentially be “handicapped”.

Indeed they did everything that could possibly go wrong, as if they wanted to intentionally commit suicide…

I think that without avfs, you would still be able to compress/decompress files. though you would have to supply all of the software, instead of most of them coming incorporated in the Worker package.

I would be a bit clunky in places i suppose. That built in configuration language certainly offers some options, & then you have the ability to run bash & lua scripts & strings too.

I could be wrong, but i think avfs wasn’t being used when i first started using Worker. Udiskie support came in quite a bit later too.

1 Like

Worker 5.2.1 has been released recently: Worker file manager

3 Likes

I’m sure i’ve posted the following link elsewhere in the forum (possibly earlier in this thread?), it is a link to a wiki page that i wrote for Manjaro Linux, many years ago. it has only been modified slightly since then, but still holds up for the ever developing Worker :slight_smile:

1 Like