Custom Desktop Environment - Wayland support

Moving this to its own topic.

1 Like

I am willing to help with this!

As a contributor to SwayWM window manager, I strongly believe rolling our own DE that is user-friendly is doable.

SwayWM has many taskbars like Waybar which also supports systray icons
SwayWM has many start menus but most popular are Wofi, Yofi and bemenu
SwayWM has a screenlock and saver called swaylock
Slightly modifying SwayWM configuration files allows for easy

SwayWM which is based on Wlroots is much more popular than Wayfire and thus more actively maintained.

I am willing to help with this in any way I can. Would you like me to show what packages are needed for these features and to verify if they are available in bookworm, or do you need me to show some configuration files?

1 Like

Excellent!

  1. packages list

Yes, that is one thing that is needed. A list of packages installable from bookworm (or trixie if this comes for the next major release) from packages.debian.org.

“Ideally” [1] a list of packages where you could start with Kicksecure CLI and then run:

sudo apt install --no-install-recommends package-list

This is the part most help is needed with.

  1. kicksecure-meta-packages

Can you make head or tail of kicksecure-meta-packages debian/control?

If yes, please comment on the current style. See if support for the custom DE could be added there. Not crucial. I could handle that part if this is difficult.

  1. naming

How would this custom DE be called? This matters also for kicksecure-meta-packages so the meta packages can get a good name. Also not crucial. I might invent something in absence of suggestions.

  1. config names and contents

Yes. The less configs we need to carry, the better. At least initially. This is also a part where help is very much needed.

How many configs, size approximately?

  1. Then these configs would need to be shipped here:
  1. other feedback

Sounds reasonable?


[1] There are reasons why --no-install-recommends is used during the build process. In short: to install only the required packages, safe space, understand the dependencies. Details:
Debian Packages - Kicksecure chapter Technical Information in Kicksecure wiki

Without --no-install-recommends I would have to figure that out by myself which would take a lot more time. But even without --no-install-recommends would still be very helpful.

1 Like
  1. package list

For starters, here are list of package that are required for a bare-bone installation of SwayWM with nothing in it:

sway

Yes, only the package sway is needed for absolute bare-bone installation.
Of course it goes without saying that packages related to drivers (like mesa) are needed as well.

For more features / “add-ons”,

SwayWM and Wayland-related packages seem to be all present in Debian bookworm, matter of fact, they even have a full Wiki page about it: https://wiki.debian.org/sway which is always a good indication that their community is serious about maintaining (and updating) those packages.

sway package as well as many related / misc wayland packages are present in bookworm with relatively minimal dependencies : Debian -- Details of package sway in bookworm

  1. kicksecure-meta-packages

I apologize but I do not understand exactly what is needed in this step.

  1. naming

Well since swayWM is released under MIT license, we are allowed to name it whatever we want.
WhonixWM and HardenedWM are good candidates but I am bad with naming stuff.

  1. config names and content

SwayWM comes with ok defaults for most experienced i3 users, sample config files are located in /etc/sway/config and are meant to be copied to ~/.config/sway/config in order to take effect.

Foot terminal emulator needs some config as well since the font is small by default
config file. Copying default config file from /etc/xdg/foot/foot.ini to ~/.config/foot/foot.ini

Those are things right off the bat in my mind, there are more but nothing crazy at all
My sway config size is 6.9kb, most of it are comments / documentation by the developers. So these configuration files are pretty tiny to say the least.

  1. Then these configs would need to be shipped here

Will do.

  1. other feedback

I am excited about this, however, window managers, even “easy” to use ones like swayWM who is i3-compliant, are still difficult for average user to use, do you want me to attempt to configure it so it is as mouse friendly as possible perhaps then share the configs? I believe it is doable :slight_smile:

One last thing, I understand Whonix is based on KickSecure, and we are supposed to do the testing on a instance of KickSecure ? Is doing it on Whonix an issue?

1 Like

Lock screen will be on Kicksecure (lower case S) only.

Does it have a taskbar yet?

What does that do?

features:

  • scroll up
  • save log to file
  • increase font size

supported?

The repository GitHub - Kicksecure/kicksecure-meta-packages needs to be modified to ship this list of packages. The action is in file debian/control. I can handle that part if difficult.

Open Source licenses often (?) don’t give rights to trademarks. Copyright and trademarks are different things.

On the other hand, Whonix with Xfce wasn’t an issue. Nobody got confused or offended. Whonix with Sway would be fine too in theory as a name.

The DE wouldn’t be necessarily a Sway DE. The compositor would be 1 part of it.

HardenedWM or perhaps Wayland something.

This is actually crucial. Usability shouldn’t be (much) worse than Xfce.

Just now noticed Sway is a tiling window manager as opposed to a stacking window manager.

Quote https://www.reddit.com/r/swaywm/comments/puopfy/unpopular_opinion_sway_does_not_have_sane/

Tiling wms aren’t for the faint of heart and are on purpose simple.

I’ve generally not been a fan of Linux on desktop but I still use it because it seems like the least worst option. That being said, I would never recommend anyone who likes GNOME to use sway or go anywhere near any window manager, not just sway. The experience that GNOME offers is at the opposite end of a spectrum to what window managers offer.

Sway is not meant for inexperienced users. If it doesn’t work for you, that is okay, you have plenty of other choices.

So if this is true, that’s a blocker.

Without that, my other points don’t matter unless the compositor can be swapped to have a laymen friendly, mouse friendly experience similar to Xfce / Microsoft Windows.

Not a big deal as that part remains very similar for Kicksecure and Whonix.

1 Like

Oh sorry, forgot to add that package waybar (available in bookworm) is the taskbar, it supports systrays, icons, custom fonts and even custom scripts (will definitely come in handy)

I personally do not use this package, however, It implements some KDE Idle protocol which is a protocol for wayland to “signal” applications on when user activity started and when it ceased, some applications find that information useful but so far I always use sway without it and no issues encounter so this package can effectively be ignored.

Actually, swayWM is by default a tiling window manager, however it can too work as a stacking window manager with the press of 1 key Mod + Shift + Space (Mod means Windows key) and all keys can be configured.

Yes, sway is not meant for inexperienced users by default. One can totally configure it to use as little keyboard as possible. Even when not configured, it is very easy to use with very few key shortcuts needed, much like i3 window manager.

1 Like

Is it worth doing that kind of reconfiguration? And will the end result at least as simple/difficult as Xfce?

Is it even worth going through that reconfiguration effort? Would it be maintainable going forward with Sway upgrades that might come?

Or do we have a better Wayland capable window manager available which is meant for inexperienced by default so we don’t have to bend another tool?

1 Like

Sway is a “stable” project as in, they do not update to deprecate configuration files.

They usually release a stable release every 6 months to a year mainly containing bug fixes and some feature support like touchpads etc

You can check github project releases for proof of these claims: GitHub - swaywm/sway: i3-compatible Wayland compositor

Is it worth it? Well from a security perceptive, a window manager is a lot more secure than a desktop enviroment be it xfce, kde or gnome. since they pull a lot of packages not necessarily needed by Whonix they increase attack surface substantially

None that I am aware of. I think swaywm is the simplest because it is a i3-clone but with wayland

I am not pushing swaywm I am just saying, if I wanted to roll my own wayland-only DE with security in mind, I would totally use sway as the base. but that’s just me

1 Like

I am not sure because I haven’t seen any example distribution or config which would demonstrate its usability, how it compares to Xfce.

1 Like

Welp I figured since Whonix is a research project, why not be the first ones to use such thing?

Research anonymity and security. Not research of turning a computer expert focused wm into a newbie wm.

Have you read the thread?
This was not a discussion about if it improves security, because it does improve security substantially, compared to any DE on the market at least. @Patrick was talking about the usability and saying a concern about fact no distro ships with swaywm by default.

It’s actually surprisingly simple to turn a “computer expert focused wm” into a “newbie wm”, like I said I can do all the work related to that.

Please do us all a favor and chime in with helpful insight regarding the topic “Custom Desktop Enviroment - Wayland support”, if no helpful insight then fine but at least read the thread.

1 Like

What “features” does a most minimal Xfce even have? Calling it “features” because for most these are just a given.

  • window decorations
    • close button
    • minimize button
    • maximize button
    • icon in titlebar
    • title in the titlebar
  • a concept of the “currently active window”
  • basic key shortcuts such as “alt + F4” to close the currently active window
  • stacking window manager, one window can be drawn over another
  • click a window title bar and move it by mouse

It seems icon in titlebar is already not possible? As per

I haven’t seen any screenshot of sway yet where it has “basic” window decorations.

And it’s surprising that nobody attempted something like that yet?

Somebody on reddit how to re-create a simple Windows 98 style but nobody answered how that could be done. (https://www.reddit.com/r/swaywm/comments/p9e89b/window_decorations_and_borders/)

Let’s see if that is possible by describing the “basic” features of Xfce.

Feel free to try, but I need to manage expectations. If it is a worse usability experience than Xfce or eating massive development time, then the risk is that this won’t become the default / replacement for Xfce.

1 Like
  • window decorations
    it has a close button. For a title bar with icon and title on the window it’s self though, it does require a simple configuration change as default is hide windows titlebar.

  • a concept of the “currently active window”
    by default active window gets large blue borders, and using waybar it also displays in the middle of the bar nicely.

  • basic key shortcuts such as “alt + F4” to close the currently active window
    most shortcuts work well on sway, default for close currencly active window is mod key (windows key) + q, however, like everything this can too be customized to be alt + F4.

  • stacking window manager, one window can be drawn over another
    pressing mod key + f makes the window stacking, i guess there is configuration option to make all windows stacking by default. and yes, stacking windows can be dragged by mouse, resized and drawn over another

  • click a window title bar and move it by mouse
    sway supports this by default in both stacking windows mode and tiling window modes

Sway by default does not have a proper icon for windows because titlebar its self is hidden by default, last i checked icons are there if titlebar is enabled. all can be done via configuration

I will look into this more seriously soon sharing pictures and configuration files.

1 Like