lumina-desktop / lumina

Lumina Desktop Environment
http://lumina-desktop.org
BSD 3-Clause "New" or "Revised" License
532 stars 116 forks source link

Add GUI option to switch window managers #446

Closed slicer69 closed 7 years ago

slicer69 commented 7 years ago

I recently discovered Lumina can support a variety of window managers, not just Fluxbox. Which I think is great. Since there does not appear to be a way to switch window managers from within the Settings panel, I added one under the General Options module.

This is a fairly small patch which allows the user to select the Fluxbox, Kwin or Openbox window manager from within the GUI. It'll be pretty easy to add support for selecting other WMs later if people want them.

lumina-wm-change-patch.txt

q5sys commented 7 years ago

Thanks for the patch!

While this is above my pay-grade to make a decision on (that's for Ken making that big Window Manager Money ;) haha), some things come to mind.

Ideologically, I love the idea of giving users the option to make decision... but if we do this, we have to support it. This is where my main area of concern is. While technically you can run Lumina-DE on top of other Window Managers, there are problems if one does so. For example the keyboard shortcuts are tied with Fluxbox, if you switch out Window Managers none of them will not work as defined in Lumina-Config. Trying to change anything in lumina-config for keyboard shortcuts will be ineffective.

While we could definitely change things to make the window manager user selectable and have everything work, I feel that the amount of work this entails would be significant, We talked shortly about switching to Enlightenment until the Window Manager was complete, but we decided that it would end up being wasted man hours that could otherwise be put towards advancing the Lumina Window Manager, which is our end goal.

slicer69 commented 7 years ago

The reason I wrote this patch is Lumina already has a flag in the configuration file for switching Window Managers. This patch doesn't really change any functionality, just makes it possible to adjust the WindowManager= variable in the config file without editing the file in a text editor. Ken already supplied the ability to change window managers, I just made it a point-n-click feature.

q5sys commented 7 years ago

Right, but by exposing that option in the GUI, I feel we are accepting responsibility to support the problems that users will face when they decide to take advantage of the option that we've made possible by a single mouse click. Power users that do this on their own, will understand that sometimes it's dangerous to 'going it alone', and we aren't providing any kittens to help. If we make this easily switchable by a simple mouse click, those that aren't power users will find themselves at a loss when things are broken all over the place.

As I said, it it's my place to make a decision, just voicing my thoughts.

slicer69 commented 7 years ago

I think those are fair observations. Though I have two counter points:

  1. We could add a little tool-tip or something that says, "Running a WM other than Fluxbox is not supported." That would be a quick, one-line adjustment and absolve the team of supporting people like me who prefer alternative WMs."

  2. It's really rare to see a non-power user run Lumina. I think TrueOS is the only platform which runs Lumina by default and it's in the niche of people who want a rolling release FreeBSD on the desktop. (Which is mostly power users.) Everyone else who runs Lumina is manually installing it to replace an existing desktop environment, which is a power user thing to do. I think it's unlikely a non-experienced user is going to run Lumina and adjust the window manager without recognizing they are in "here be dragons" territory.

q5sys commented 7 years ago

As long as we add some visual cue that let's people know it's unsupported I'd have no problem with it... as I said ideologically I like giving users options (when possible) to do whatever they want beyond what we do as defaults.

beanpole135 commented 7 years ago

Here is my 2-cents:

  1. As long as there is a visible/prominent warning about changing the WM and how many other things may not work afterwards I am fine with putting the option into lumina-config.

  2. It might be a bit of a yo-yo effect to put this in right before Lumina 2 is ready (Lumina 2 does not support changing WM - I will be posting public details about version 2 coming here soon), since the current plan was for 1.3 to be the last of the 1.x series.

  3. I might be able to release a trivially-modified 1.4 version prior to version 2.0 (more as a legacy/archived version of the 1.x.branch), but again that might cause some waves with two very different releases in a short time-frame.

Thoughts?

slicer69 commented 7 years ago
  1. I will update the patch to feature a warning about changing the window manager.

  2. Can I ask why version 2 will not support changing the WM? Or, for that matter, is this a feature that can be added back into the 2.x series? I was thrilled to find 1.x can support alternative WMs as Fluxbox was not ideal for my workflow.

  3. A minor 1.4 update would be nice to have. And it would give people a solid base to fall back to if 2.x introduces a lot of changes.

beanpole135 commented 7 years ago

1 & 3. Sounds good. You update your patch and I promise to release a 1.4 update before 2.0 is released. 👍

  1. While you should wait for the public announcement/details about Lumina 2, let me leave you with this quick note about what it is that should answer your question:

Lumina 2 is a "next generation" desktop environment which destroys the artificial boundaries between desktop, window manager, screensaver, and other components traditionally used by open source system interfaces. This provides a streamlined interface with a strong focus on session security and management.

slicer69 commented 7 years ago

I will take that deal! I've added a quick check that warns the user their window manager is not supported if they select anything other than Fluxbox. (See attached.) The new patch combines my previous changes with the warning so it can be applied as one patch.

RE: #2 It'll be interesting to see what an all-in-one desktop environment brings to the table.

new-wm-gui-patch.txt

q5sys commented 7 years ago

When I get home I'll test this to make everything is working nicely. (I believe you, but as a matter of prudence I need to personally verify). If all looks good I'll commit this. Thanks for sending it in.

slicer69 commented 7 years ago

That's okay, I wouldn't trust me to write perfect code on the first pass. :) Please let me know if you run into any problems. I was a little worried that the patch might not work if no WM could be found, but it looks like Lumina defaults to Fluxbox if no other option can be located.

q5sys commented 7 years ago

heh, I don't trust myself to write perfect code on the first pass. ;)

q5sys commented 7 years ago

Patch applied and tested. New option available in the UI. https://github.com/trueos/lumina/commit/bfae544f7b6e862c1103cbd035c2ffe1f62bfa1e

q5sys commented 7 years ago

After further testing I've reverted the patch. https://github.com/trueos/lumina/commit/d2f9e3240c914f3620910d6039be8b438502c27d

While the UI option stuff works properly, use of this option is destructive. I didn't realize this until I logged out to test something else and then tried to go back to Lumina. A) The first time you use this, there is a blank menu entry that is populated which is ostensibly the entry for Lumina, but there is no code to reflect this fact. This blank entry goes away after you change the WM once. B) This means there is no way you can re-select Lumina again. This is a one way transition away from Lumina to other desktops. C) If you change the option to another WM, then change back to the 'blank' entry before closing lumina-config... when you log back in you will get a hybrid of Lumina and Fluxbox both trying to control things. None of the Lumina themeing will be applied, and you will get the Fluxbox panel and the Lumina Panel.

That will need to be resolved before this is committed again.

slicer69 commented 7 years ago

Wouldn't this issue only arise if a person was using Lumina 2.0 dev code? There isn't any Lumina window manager option in the 1.x branch so far as I know. And this patch is for the 1.x branch of the desktop. Am I wrong and there is an active Lumina WM in the 1.x branch of the code?

q5sys commented 7 years ago

I'm not using the Lumina v2 dev code, so that's not related. I dont have time to look into it right now, but I think when you change what window manager you want to use, it's messing with the lumina startup routine. The ~/.config/lumina-desktop/logs/wm.log is nothing but errors after a user uses this option.

q5sys commented 7 years ago

screenshot-2017-07-23-20-15-07 wm.log.txt

slicer69 commented 7 years ago

The part I'm confused about is when you say it is not possible to select "Lumina" as the window manager. If you're not using the 2.0 dev branch then there should not be a "Lumina" window manager option. The default window manager for Lumina 1.x is Fluxbox.

There may be an issue if the patch is not detecting Fluxbox on your system, removing the option to revert to it. Is Fluxbox not one of the options in the settings panel?

q5sys commented 7 years ago

Well there are technically two ways that you can run Flubox... A) You can run Fluxbox by itself with it handling everything. B) You can run Fluxbox as the WM for Lumina where Lumina handles everything else.

There is no way to distinguish between these two options. So instead you end up getting in the weird state I'm in which is shown in the photo I posted, where Lumina loads, but Fluxbox overrides Lumina with themeing and you end up with the Lumina Panel and the Fluxbox slit.

Both options need to be available for users to choose. The whole point of this patch is that users are given the freedom to choose what WM they want to use with Lumina.

slicer69 commented 7 years ago

Interesting. I don't have any custom themes or settings on my system so it doesn't make any difference whether I take the default (blank) or specifically set Fluxbox, it all ends up looking the same. I will make some tweaks to the patch and see if I can smooth out the transition moving away from the default and back.

slicer69 commented 7 years ago

I think I've got it all worked out now. The options panel now displays "Lumina" as a possible WM option. If this "Lumina" option is selected, then we simply remove the "WindowManager=" field from the config file and the desktop falls back to its sane defaults.

If anything other than the default "Lumina" option is selected, the user sees a warning that their selection is not supported and their selection is written to the config file.

I have tested this with the default/Lumina option, explicitly using Fluxbox and Kwin and they are all working for me, so I think I've got the wrinkles ironed out.

corrected-wm-option-patch.txt

q5sys commented 7 years ago

Thanks for the modified patch. I'll try to make time tonight to test it out.

q5sys commented 7 years ago

@slicer69 On my machine, changing the entry doesn't register with lumina-config so the save option never presents itself so you can save the change you made. I can try on another machine tomorrow, to make sure it's not some weird thing on my machine. Did you test this locally on your machine?

q5sys commented 7 years ago

Also... removing /usr/local/bin/fluxbox from the session file will launch lumina properly, however since fluxbox is not running at all... you end up losing window frames, and the task manager no longer works since it cant get a list of active windows.

slicer69 commented 7 years ago

I definitely tested this on my machine and the save button always shows up when a different entry is selected from the drop-down box. And I can confirm removing Fluxbox from the system settings file still allows me to switch between windows. I cannot duplicate the issues you're reporting.

q5sys commented 7 years ago

@slicer69 thanks for reporting back. I'll test this on a vanilla machine tomorrow or this weekend. Perhaps I wasn't clear. I am able to switch between windows, what I was trying to explain was that the task bar does not display anything because it was not able to get the window list from fluxbox since it wasn't running.(at least when I tested it)

slicer69 commented 7 years ago

I understand what you mean now. I can confirm that when I'm running the "Lumina" window manager (ie no "WindowManager=" variable is set, that my task manager/task switcher works. It shows all open windows and lets me switch between them.

q5sys commented 7 years ago

I just tested this on a brand new fresh install. After changing the window manager drop down to openbox, no save option is given. screenshot-2017-07-28-18-20-14

slicer69 commented 7 years ago

I don't know what to tell you, it's working here. As you can see in the code any time the window manager drop-down changes it sends a signal that indicates a setting has been changed, which triggers the Save button to show up. Assuming the selection has changed there shouldn't be any way the Save button isn't toggled. I've tested it across three window managers.

If you don't feel comfortable accepting the patch as it is, that's okay. It does what I want it to do and I can just apply it to future versions of Lumina when they come out.

q5sys commented 7 years ago

My screw up, I missed the connection line in the patch. derp. Patch committed: https://github.com/trueos/lumina/commit/e841802fc6b1db9d15766baa328ced73d39f6d71