SawfishWM / sawfish

Sawfish Window-Manager
GNU General Public License v2.0
162 stars 32 forks source link

Is sawfish dead yet? #53

Open gtusr opened 1 year ago

gtusr commented 1 year ago

If so, what's the next best option?

RobertZenz commented 1 year ago

I'd see Sawfish as pretty much feature-complete, therefor there aren't that many releases outside of bug fixes (that and the maintainers ain't got that much time, as far as I'm aware). Are you encountering a bug or problem that needs fixing?

salewski commented 1 year ago

On 2023-04-05 16:14:10, gtusr @.***> spake thus:

If so, what's the next best option?

Nope, it's not dead. I know I'm not the only one using it daily -- quite heavily, and on multiple machines. But it "just works", so there's not much churn.

gtusr commented 1 year ago

Are you encountering a bug or problem that needs fixing?

Just wondering if there are any limitations to using Sawfish directly on top of Wayland without installing a full desktop environment like Gnome or KDE?

RobertZenz commented 1 year ago

Just wondering if there are any limitations to using Sawfish directly on top of Wayland without installing a full desktop environment like Gnome or KDE?

Well, you got this wrong. You see, every Wayland advocate will happily tell you that "Wayland is just a protocol", and that's true. There's a "reference" compositor which is called Weston, which is bare-bones, and everything else is left to everyone else. To "support Wayland" one must implement a complete Wayland compositor, that includes implementing and handling of rendering, hardware acceleration, input, clipboard, window management, screenshots, capturing of the desktop for streaming and so on. In short, every Wayland compositor must basically implement all the functionality which is currently provided by the X.org server. In my opinion, the big Wayland motto is "It's somebody elses problem now", because that is exactly what it is, Wayland is just a protocol, everyone must implement everything. If there is no Wayland protocol for something, then the compositors are left to their own devices to implement that functionality, which means that all the Wayland clients (GUI frameworks) must implement that compositor specific function, and so on. Additionally, GNOME slightly disagrees on a few key functionalities (window decorations), which makes it a little bit worse for everyone.

So the questions "when will Wayland support Sawfish?" or "when will Sawfish support Wayland?" are incorrect, the correct question is "when will someone write a complete Wayland compositor (including rendering, hardware acceleration, input, clipboard, window management, screenshots, capturing of the desktop for streaming and so on) which will behave like Sawfish?"...I guess we all know the answer to that one.

teika-kazura commented 1 year ago

@OP: Don't abuse issue trackers to chat. That will annoy developers. Use reddit or so instead.

That said, how about qtile? It's written in python, and supports wayland. Other "configurable" and/or hackable wm/wayland compositor is xmonad/waymonad, but it's in haskell, not recommendable for most.

Regards.

Navaneethan3 commented 1 month ago

Is anyone using sawfish window manager here on debian 12?I have xfce as default desktop environment. I installed sawfish window manager.based on sawfish wikihttps://sawfish.fandom.com/wiki/User_Guide I need to add these lines:-

xscreensaver -no-splash & sawfish & xfce-mcs-manager xfce4-panel & exec xfdesktop To /.xsession file. Where in xsessions file should I need to add? After which line?.Is the above mentioned the only step i have to do to make sawfish working with xfce?

salewski commented 1 month ago

[Had an email problem; apologies if you get two copies of this.]

@.***: If you are subscribed to the 'sawfish' mailing list, we should move this conversation there:

  https://sawfish.fandom.com/wiki/Community#Mailing_List

]

On 2024-09-15 10:10:32, L0n0n0k @.***> spake thus:

Is anyone using sawfish window manager here on debian 12?I have xfce as default desktop environment.

I'm using Sawfish on Debian, but I don't have any machines that are are "pure" Debian 12.x. And I'm not using XFCE. Nevertheless, I'll see if I can help you out.

The exact details will vary based on how you start X11. The below assumes you boot into a Linux virtual console ("text console"), login to your shell, and then type startx.

First of all, you can certainly use Sawfish as the window manager when using the XFCE desktop environment. But are you aware that you do not necessarily need a desktop environment? In other words, you can run Sawish (or any X11 window manager) by itself, and avoid the overhead and complexity of a "desktop environment" if you so wish.

I installed sawfish window manager.based on sawfish wikihttps://sawfish.fandom.com/wiki/User_Guide I need to add these lines:-

xscreensaver -no-splash & sawfish & xfce-mcs-manager xfce4-panel & exec xfdesktop To /.xsession file. Where in xsessions file should I need to add? After which line?.Is the above mentioned the only step i have to do to make sawfish working with xfce?

I think those instructions are out-of-date. AFAICT, there is no xfce-mcs-manager program in Debian any more.

Fundamentally, what you want to do is add lines to the file .xsession in your $HOME directory. Create the file if it does not exist:

     $ cd    # changes to your $HOME directory

     $ pwd
     /home/YOUR_USER_NAME

     $ file .xsession
     .xsession: cannot open `.xsession' (No such file or directory)

     $ printf '%s\n\n' '#!/bin/sh' >> .xsession
     $ chmod 0750 .xsession

The .xsession file is a shell script that gets executed by the X11 startup machinery to control what programs run under X11. On Debian, you can read about the X11 startup process via:

     $ man 1 startx

and:

     $ man 5 XSession

You can start any X11 apps you want from the .xsession file. Most people will start at least one terminal app (e.g., 'xterm') so they have at least one window in which they can issue commands, even if the rest of the X11 session doesn't start correctly (for whatever reason).

In the instructions you posted above, notice that most commands are ended with an ampersand character (&). That has the effect of running them "in the background", the same as if the commands were run that way from a shell prompt. It is important that all of the long-running commands (except for the last; see below) be launched this way so that they will run concurrently. Without the ampersand(s), the apps would run sequentially, one at a time, which is not what you want.

The very last command in the script is special. It MUST NOT be run in the background. The reason is that when the .xsession script completes, that is the signal to the calling process (the X11 startup machinery) to say that X should shut down.

The window manager is a special application in X11. Historically, it was the last program started from an .xsession file. To run Sawfish as the window manager without a desktop environment, the .xsession file could have the following as the last (and possibly only) line in the file:

     exec /usr/bin/sawfish

A "desktop environment" still needs a window manager (the default window manager supplied with XFCE is called xfwm4), but then you want to run the window manager in the background, and the desktop environment in the foreground. A minimal example of that might look like this:

     /usr/bin/sawfish &
     exec /usr/bin/xfce4-session

If that works for you, then you could add in other bits. E.g.,:

     /usr/bin/xscreensaver -no-splash &
     /usr/bin/sawfish &
     exec /usr/bin/xfce4-session

You may need to do something else to prevent xfce4-session from trying to start the default XFCE window manager. I'm not sure, but I hope the above helps.

-Al

Navaneethan3 commented 1 month ago

@salewski which desktop environment you use?

salewski commented 1 month ago

On 2024-09-29 09:57:26, L0n0n0k @.***> spake thus:

@salewski which desktop environment you use?

I do not use a desktop environment -- just a window manager (Sawfish, of course).

The last line in my '~/.xsession' file is (effectively):

     exec /path/to/sawfish