Material Shell – A modern desktop interface for GNOME(material-shell.com) |
Material Shell – A modern desktop interface for GNOME(material-shell.com) |
Simple things like configuring bluetooth, or switching audio... or working with multiple displays are just painful. I expected this when I started using Linux in 1996ish. That was part of the hobbiest experience. These days, I just want to get my work done, and if I can do it with a pretty experience, I'd prefer that.
So if I do i3 again, it'll probably be with XFCE underneath unifying some of the experience. Gnome on the other hand, has its own set of issues that make it annoying.
So I'm with you, I would try this.
This is nothing too complicated, just a session with the right components selected to provide whatever services you need: display management, screen locking, WiFi, etc.
It basically allows you to have a X11 window running i3 inside your usual gnome session. While in full-screen, that gave me a gnome workspace that was effectively i3.
That’s why I created what I believe was the first tiling wm "useless gaps" patch for dwm 10 years ago. Since then, it has been adopted by other wm, i3 being a notable exception.
I don’t use a DE, but I guess a little space between those fat bars and backdrop’d windows might help to see through the bloat.
Does anyone even use gnome online services?
Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.
It is the new Bootstrap, but inconsistent and worse every where else apart from its use in Android apps.
Oh dear. Now I remember why I keep using macOS which actually does it better than 'this'.
I have yet to see an enjoyable material design app. With the same underlying motivations, I have better appreciation of Apple iOS interface guidelines.
Don't know which exact version it was, but I was using Ubuntu 20.04 at the time.
I do have two google accounts and one MS enabled in GOA.
EDIT: For Fedora users, apparently the package is quite outdated and missing some features and fixes. The author is going to make a new release on GitHub and hopefully package maintainers will make an update.
I did find it a bit challenging to figure out where the settings were located (I don't use many GNOME extensions), but once I figured out the settings are on the extensions.gnome.org page for the extension it was lot easier.
It doesn't look like this has one. There's an outstanding PR to add stacking to Pop Shell [0] that I'm hopeful about.
>We are currently only compatible with the one workspace per external monitor mode since it's was the most adapted to my vision of the ideal workflow and also because altering the behavior of GNOME Shell can be a bit complex and maintain multiple mode can be very time consuming. Therefore step after step our code base is becoming more mature and I may be incline to work a second option if there enough demands. But we also have other fundamental stone to build like window resizing.
Seems like figuring how it works across multiple monitors would be a rather basic building block but dev has different priorities it seems.
I did find it a bit challenging to figure out where the settings were located (I don't use many GNOME extensions).
There is just one thing I'm missing from Gnome which is the white dot on top of the time signifying there is an unread notification. With Material Shell I have to manually click the time to see if I have any unread emails or slack messages.
Try meta-shift-space, you will get a floating window that can be dragged and resized with the mouse.
This was an earlier version of Material Shell based on AwesomeWM. At some point the author wanted more animations and custom menu handling. Those are 2 areas AwesomeWM doesn't really handle well.
Anyone try this with multiple monitors?
The video is too fast to allow any actual evaluation of its offerings.
The big buttons in the section 'find your tasks instantaneously' are not necessary.
The gnome interface sucks big time and I don't see this as improvement.
Scrolling gives users a spatial feeling (ie. "what is where in relation to something else") in contrast to just magically letting things appear without animation or transition. There are plenty of UI designs which use scrolling. Sure you can debate whether they are a success or not but I've never head of "Scrolling is a 'no' in serious UI design". That sounds more like a personal preference.
> and tiling should be an option.
As far as I can tell there is nothing stopping you from simply using a workspace per app. Effectively disabling tiling.
The spatial feeling is necessary only if things take more space than needed. In this case, this is not valid. There are no things that take more space than needed. It's simply a distraction.
> As far as I can tell there is nothing stopping you from simply using a workspace per app. Effectively disabling tiling.
What if I want windows to be connected? that feature is not offered.
For example, I could have a 2/3 window on the left and parts of another 2/3 window on the right, and going from the left to the right window then scrolls 1/3 so that the full right window is visible.
Pretty cool, actually.
I will want to try Material Shell, too.
If all you know is focus directional hotkeys you could trivially have to hit focus left 7 times to get to the left monitor for example before hitting super+3 to switch to 3. This is of course horrible.
Your life would be simplified if you had a hotkey to focus output right and focus output left. This makes it not TOO laborious however your life would be simplified MUCH MUCH more if you used the assign directive to assign particular workspaces to particular monitors for example 1-5 on left monitor and 6-0 on right.
You would accomplish this for example by using
workspace 1 output name
workspace 2 output name
...
Then if you watch to switch to 3 on left monitor you don't have to worry about where you are presently you can simply hit super+3 wherever you are.This is a rather common issue for all OS, but even more annoying for tilling WMs since it messes up with the layouts.
The good news is that a lot have been made to fix this in AwesomeWM git-master and more is coming.
What's there:
* If you set the `-- awesome_mode: api-level=5:screen=off` modeline at the top of `rc.lua`, all screens will be virtual rather than tied to a physical screen. In practice this means you can block and act upon physical screen removal. Previously, once the screen was gone, it was gone. Now you can either have full control or have the default handler
* Screen swap: You can swap your primary screen back yo your laptop screen when disconnecting. So at least you don't lose everything.
* Screen splitting: If you have a extra wide or double width monitor, you can split it in multiple virtual screens. This helps since it allows you to have the "main" virtual screen the same aspect ratio as the laptop screen. It means nothing moves when you switch back to the laptop mode.
* Full signals and handlers for everything: By default it's still not perfect, but at least there is sane ways to plug your own logic everywhere in the screen removal and addition process.
* Better mixed DPI: It is now easier to ignore the DPI X11 think it has and override it before the screen gets created. This way, you can ensure your laptop and main screen use something sane when in mirror/presentation mode.
* Tags (workspaces) have a `request::screen` to "save" them when a screen is gone. So you can send them to a screen that still exists without losing the layout.
What's coming:
* There will be rules to apply can screen changes (https://elv13.github.io/declarative_rules/ruled.screen.html). This will allow a declarative syntax to define the behavior on screen change.
* The ability to have "sets of workspaces" you can share across screens (XMonad style). This is an interesting solution to the problem. Since the same "state" can be shared by more than 1 screen, then adding and removing a screen doesn't destroy the state. However this is really complex to bolt on the current design and I have been trying for like 2 years to make it perfect and backward compatible.
What is your problem exactly?
I usually reserve [0] for the laptop, [1], [2], [3] and [4] for my left monitor, and [5] on my right monitor.
It's great that you have the freedom to do so, but you have no right to claim the website is "broken" as a result.
So: just like the site says. Top is the taskbar, which also has a left icon for the current tiling pattern (fullscreen, tiled vertically, etc). The left side panel starts at the top-left with the search button that does the Gnome activities overlay, then a globe icon for each workspace, and a button to create a new workspace. At the bottom of the left panel are the system icons (normally in the upper right in Gnome) and then the clock, crammed into bottom-left.
So I don't hate the tiling, and one of the layout options is "floating" so you can have a workspace full of floating windows. Cool.
My first thought was that the panels are too big -- 48px, which seemed overly large. Luckily this is easily configurable in the extension settings, and updates as you change it so there's no guesswork.
If I switch to floating, or a new workspace, I appear to have no wallpaper behind the windows or the "new workspace" launcher. I liked my wallpaper, and I miss it.
I was going to complain about the globe icons for the workspaces, but it turns out it only preselected those icons because I have browsers primarily in each workspace. It'll pick based on the first open app (I think?) or you can override the icon by right-clicking, or have it display a group of app icons for the open apps in that workspace. This is cool! It's not quite the thumbnail previews of virtual desktops I had in 2004 with Openbox, but It works well.
I'll keep on this for a little while -- I really like that I can turn the whole shebang on and off with a single extension toggle.
Installed apps and running instances of installed apps are different concepts, damnit, and I don't need a phone-like interface that fakes the idea that all apps are "always running" when they are not.
Gnome is so smooth on Nvidia in comparison but in every other way I prefer and still use cinnamon
After going back to mac (for work reasons), It's been a painful experience adjusting to the lack of tiling.
My approach is to use the window manager best suited for the task, but all at the same time.
That means for my highly structured multi-desktop, multi-git-workspace programming tasks I use i3, which is ideal for those.
However for my less structured tasks like writing or consuming documentation, email, and personal web browsing, I use a more conventional, less constrained desktop environment (i.e gnome), which is more ideally suited for those tasks.
If I'm willing to abuse the term window manager a little further, Vim running inside i3 serves as a third window management environment I run in parallel, optimized specifically for code editing.
The trick is that I use i3 in its own separate Linux desktop window (In my case running on a remote machine, but you could just as well do this running in a local VM). this allows me to have both environment successful on the same screen at the same time.
This also has the added benefit of making it very easy to find my code editing window among the tons of other windows I have open.
This is because I have a few applications (Firefox, Terminal) that are really not applications in and of themselves; the applications are really Outlook, JIRA, Confluence, Slack, OpenShift (logged in as cluster admin), OpenShift (logged in as my regular user), that quick terminal session I opened to work on a script, the SSH connection to an OpenStack director, the 'oc rsh' command that I'm using to administrate a PostgreSQL database running in OpenShift, and so on.
This becomes far worse when using multiple monitors. Say I have teams hanging around on my secondary monitor to keep an eye on stuff. I literally just now alt-tabbed into a terminal and then alt-tabbed back to continue writing this comment. As a result, I'm back in Firefox on my primary monitor (as expected) but now I have an unwanted random Firefox window that I forgot was even open on top of Teams on my secondary monitor!
The only window manager I've ever been at home with while using multiple applications, workspaces and monitors has been i3. Specifically I love how it manages multiple monitors in that each has a current workspace, but workspaces are not bound to a particular monitor. So I was able to have my secondary monitor always showing my 'Slack and email' workspace, and switch between my multiple task-based workspaces on my primary monitor and never get confused like I with GNOME where I want to switch to my email tab but to get there I have to remember ahead of time that I have to switch to my first workspace, then switch applications to Firefox, then switch windows to the one with Outlook in it, and finally switch to the Outlook tab...
Anyway. This project looks awesome and I will try it out!
Consider a more descriptive word, such as: - minimal - streamlined - sleek - simple - opinionated - spatial - comprehensive
etc...
The grid layout is interesting but I found it strange that the all tabs are shown along the left side in split mode. It would be interesting to see how the grid differs from the tree layout that i3 uses.
I did like their default hot keys and the side bar for switching work spaces. Ultimately though if you don't like gnome this isn't going to change that. But if you do prefer i3 and want a more nicer environment with all the gnome system management ui's consider using https://regolith-linux.org/
I wonder how this compares with the Gnome tiling Add-on from Pop!_OS that is becoming very popular. But this material shell sounds like a much more holistic approach than just adding tiling to Gnome. I'll definitely try this out.
Kind of like how I go back to x as opposed to wayland because obs can't capture screen (last time I checked).
[1]: https://wiki.archlinux.org/index.php/GNOME/Keyring#Using_the...
I actually don't even use gnome or the gnome session, just bare i3 with lightdm and the gnome keyring unlocks automatically.
I seem to have read somewhere that an open phone manufacturer (Librem?) is using a deeply optimized version of Gnome 3 to overcome its slugginess on less powerful hardware. Are there any chances their optimizations can be merged back so that every platform could take advantage of them?
Off topic, but System76 really seems like a great company. I enjoy my Linux laptop and their software support is good. I am stuck on Apple's platform for the Apple Watch and iPhone (and I like iPads), but I wonder if I would ever buy another Mac laptop. Turnkey Linux systems, like those of System76, Dell, etc. really make using Linux low overhead.
This usage of "anarchy" makes me wonder what is so satisfying to advocates of "tiling". I personally don't have a need for new windows to conform to a strict placement algorithm.
My usability requirement for new windows: a) open the window in a timely manner and make it distinct so I can identify it; b) don't fiddle with my visual field unnecessarily.
I use OpenBox. I make the "active" window distinct using a custom theme. I open what I need and hide the rest in a shaded window and/or virtual desktop until I need it. I find what I need in the menus.
(I won't debate the qualities of Gnome, but I prefer a lighter DE.)
In my opinion, this has been solved perfectly many years ago. I simply use Super+<num> to launch/switch to my 10 most important applications. Supported out-of-the box by both Windows and Gnome and 100% predictable. Every shortcut invocation will launch exactly the right application.
Is there any sort of middle ground tiling solution for people like me?
macOS: try Magnet app, it’s fantastic. Great out of the box config, fairly powerful (caveat: the mouse targets stink; but who uses the mouse anyway?)
Tiling web browsers is especially bad since I use a lot of websites that flip to mobile mode or are just plain unusable when tiled into the wrong shape.
I honestly can't stand global top bars and "system panels" that are nothing more than always-visible launcher menus. They're just a waste of space. IMO Chrome looks ridiculous in the video, with a set of tabs directly underneath the workspace panel tabs.
What I'd really like to see is XFCE with automatic tiling. I can probably script a half-assed version of it myself without too much trouble, but it would be nice to have a full-assed version of that.
That said, I agree with you that it would be nice to have a built-in option to switch between tiling and floating. I've seen that Pop_OS has this, but that's also using Gnome.
I'm having difficulty getting different colours on active vs inactive title bars on regular apps, though. Still working on it occasionally.
I really love it.
A user interface mockup where everything is grouped, spatially oriented, and scrollable.
I'm still waiting for 10gui to break the shackles of our "4-finger" multitouch world
I got fed-up spending way too much tweaking the UI to my "needs". (To be fair, most of the time was spent on the toolbar (polybar, i3bar) configuration). I also realized that I mostly needed tiling for the terminal.
Thus I embraced Gnome UI with a few extensions: unite, dash-to-dock, system-monitor, etc. and started using tmux for the terminal.
I might try Material Shell but I am actually happy with today's Gnome3. Performance is decent, and the level of configuration is enough for me with a few extensions. It is not as stable and polished as MacOSX but there is no blocking point.
N.B: I kept i3 for my work Linux VM due to very limited system resources.
(Can you tell I am required to use macOS at work? /facepalm)
If not, then I don't like that very much. For example the calculator: I don't want it to take 1/3 or 1/4 of the screen. It's like going back into a 35 years ago pre DESQview era.
Edit: nevermind. "In Material Shell windows are tiled. These means they are organised in a predictable way in which they do not overlap".
I guess I like my windows to be not predictable, whatever that means.
If it doesn't have this feature it probably should.
I also rather would like the left panel at the top since window lists aren't important to me anymore (hot corner for overview is so much faster for me finding the window I am looking for)
For the life of me, I can't understand why there are that many GNOME-based desktop environments. I personally dislike most of their approach to UI. Maybe the innards are very pleasant to work with, but it's GTK-based, isn't it? That a somewhat-dated C toolkit, even if it has bindings in other languages. So I kind of doubt that.
And yet - MATE, Cinnamon, XFCE (ok, that's just GTK, not GNOME proper), Unity.
This is not a rant, I'm actually curious why GNOME is that popular, and those projects did not choose some other basis. I mean, that should be possible, right? LXDE switched from GTK to Qt a few years back.
My favourite feature is the ability to tile windows with a little gap between them. Having visibility (even a little) into the wallpaper when you're doing work makes a big difference for me. It's like it grounds you in a more natural frame of reference. I'm sure Mac users can relate to this due to the late introduction of true window maximisation, but as a Windows user I'm coming to appreciate the "non-fullscreen" or "edge-to-edge tiled" working environment.
I think the only thing I really added was audio key support and I changed the menu shortcut...?
I'm not actually sure what the argument is to not use it. (it supports floating windows, if you want that as the default)
At the risk of being the guy who has used it for a minimal amount of time and starts complaining about it because it doesn't work like I'm used to...There are a couple preference things for me that I wish were a little different.
I like gnome's no-frills fullscreen. You only have the app and the top panel stuff. In material-shell, I can SUPER+ESC to get full screen, but I think I want to be able to just mouse-over to the left side to bring up the panel while in full screen. To get to anything at the panel I have to SUPER-ESC first. Which is ok, I'd just rather it optionally auto-hide.
Kind of the same as the left-panel, the top-panel workspace list looks especially jumbled when you have an app like a browser maximized. So you see the workspace list, then your titlebar, then your browser tabs. It just adds extra "business" that I would prefer to not see. And again, enabling fullscreen with SUPER+ESC basically gets me what I want so it's not that big of a deal.
Finally, I understand why people would like it, but for me I would prefer to not have the "+" in the workspace switcher at all. Or at least minimally have it skip being part of my SUPER+A/SUPER+D switching. I REALLY don't like it showing up when nothing is open on my workspace or when I have a vertical split workspace, and only one thing on the screen and it shows the "+" content window. I am so accustomed to just hitting SUPER and then typing the app that I want, its way faster to do that and I'd rather the whole "+" window go away.
All-in-all, I'm pretty satisfied with material-shell and will definitely be using it as my desktop.
You lost me at having to watch a video. Just lead with a screenshot. A video is fine as supplemental marketing, but you NEED a screenshot otherwise you’re losing those first impression opportunities.
My mind is not app-centric. I want the shell where I'm looking at logs, the editor where I'm taking notes, the browser where I'm checking some doc. I don't care to think about which terminal application the shell is inside, select that, then find I've opened a different terminal window and have to search through the windows separately. I don't care whether the doc is loaded in Firefox or Chromium so don't ask me to choose based on that.
IMO app-centric task switching works much, much less effectively than window-centric task switching; I hate that all the major DEs have copied the same basic app-based dock design that has been failing in obvious ways since day one.
(Although Windows can at least configure grouping away, and there's the dash-to-panel extension to make GNOME tolerable again.)
I get that an app-centric view is attractive to app developers, who would love me to be engaging with their brand. And that mobile has its own reasons for putting apps in silos. Does nothing for me as a desktop user though.
The worst offender here is OSX. I still haven't figured out a good way to switch between multiple open windows of the same application, not even the file explorer (Finder). It's a huge pain.
https://cdn.arstechnica.net/wp-content/uploads/archive/kde44...
That way, I could put the service logs/terminal on one side, and the IDE and e.g. running website in another window.
You can get this with i3 or any other tiling window manager, but I found too many cases of odd behaviour with i3 and gave up on it.
Sadly a few things don’t work so well in Wayland. For example, Windows games under Proton work fine on X but not on Wayland/Xwayland (I guess since they’re not Wayland aware they can’t bypass the compositor?)
So, I too will try this project out as it looks like it may be a nice middleground where I can be productive in gnome on X.
Suddenly I'll need a program so I hit windows key, type in the start of the program name, and smash the Enter key. It's super simple. What's the problem?
For example, say you're doing something (eg programming) that requires both the browser and the terminal. While you're at that, you want to do something that also requires both the browser and terminal (eg checking something in a terminal-based todo app to reply something to your coworkers in a web based chat app). Assuming you leave these things open, you now have to do 2 switches (app switch+tab/window switch) to get to whatever you're looking for in the worst case, 1.5 switches on average.
Same here. Gone from GNOME because of this.
I wish a company would make a good portable computer to fit my work style:
- tall 20" x 12" matte screen with built-in stand to raise it up to eye level
- detachable corded tenting keyboard
- detachable corded tenting vertical mouse
- hot-swappable battery with various weights available
- thin 20-foot power cable with magnetic release on both ends
- vertical docking station with battery charge-level indicator
What does "tenting" mean in this case?
So I have ctrl-alt-shift-up and ctrl-alt-shift-down bound to move windows up and down.
gsettings set org.gnome.desktop.wm.keybindings switch-applications '[]'
gsettings set org.gnome.desktop.wm.keybindings switch-windows '["<Alt>Tab"]'
There are more settings like that which you can find in the manual, or from other frustrated users.These settings seem to be stored in a binary format so the resulting rc-files can not easily be commited to git. I keep a dozen lines like the above in a script I run on any new gnome-like desktop to make it somewhat sane.
The idea here is to also use the tilde while alt-tabbing. Also shift comes in handy to wheel back through the applications.
The problem is that when I tabbed back to Firefox, all Firefox windows on all monitors were raised.
And if you expect me to Alt-Tab to terminal, and then remember to use a _different_ keyboard shortcut, that is now no longer so short because I need to holt alt, press tab, release tab and keep holding alt while then pressing ` until the window with Hacker News is selected then... no way pal I'm not even going to go there, this is madness!
- minimal: limited features set aka either you like it in 10 seconds or you don't
- streamlined: good looking?!?
- sleek: combination of streamlined and minimal?
- simple: IMO even more overused than 'modern' and as diverse in its meaning
- opinionated: There is exactly one way of doing it right and either you like it or you don't, but it might come with an extensive feature set compared to minimal.
- spatial: no idea; Endless space? 3D? Depending on my geolocation?!?
- comprehensive: 'Oh, I have to learn something, but not too much'
Modern, on the other hand, means to me: Mainstream look & feel (kinda polished) and with considerable feature set.
Whats your definition?
The metaphor is with the real world: If a put an object somewhere, it stays there. My notebook is in the front-right corner of my desk and nowhere else.
Notably, the "Finder" application in Mac OS used to be spatial. Opening a folder opened a window, and that window would be exactly where it was the last time you opened that folder. Conceptually, the window is the folder.
Here's an article about it from John Siracusa, who is a proponent of spatial interfaces: https://arstechnica.com/gadgets/2003/04/finder/3/
One of the things that all user interfaces do is marshal user attention, and newness or freshness is one tool for that. That can be used to advantage or disadvantage users, but it is a constant pressure for change in user interfaces.
The term Modern in user interfaces tends to translate as “inspired by the Functionalist school of Industrial Design, particularly as exemplified by Dieter Rams at Braun and Apple’s Industrial Design team under Jonny Ive”. There’s functional value to freshness, so the definition isn’t static, but the term Modern means something other than new or contemporary.
It isn’t a waste of time for producers and critics (in the neutral sense) of user interfaces to learn some art history, architectural history, and history of Industrial Design.
I tend to think of the words as staking a position vs its opposite, so you at least have some idea where the product lies on at least one axis.
- minimal vs maximal: "we favor fewer few design elements vs more"
- streamlined vs not streamlined: "we have intentially chosen to focus on a few specific goals"
- sleek vs rough: "we are aiming for a polished appearance"
- simple vs complex: "we prioritize ease of use over supporting lots of use cases"
- opinionated vs configurable: "we have a philosophy of the right way to do this, which this tool supports out of the box; if you have a very specific use case, it might not be for you"
etc..
On the other hand, the opposite of modern is... old fashioned? Isn't almost everything basically modern, then? And how is that necessarily any better?
The alternatives listed as just examples, I would need to understand the program better to come up with a truly apt adjective.
so when I read modern on your description I just chuckled a bit.
in any case great work on this. looks like a ton of work
However, in practice typically means that there are hundreds of edge cases not yet solved.
Agree that it would be better to use more descriptive names.
If they called it "postmodern", would that be acceptable? BTW, do you propose renaming the Museums of Modern Art?
It's clear from GP's post that the problem with 'modern' in this context is that it lacks semantic meaning within the given sentence. As 'modern' has no domain-specific denotative definition, one must turn to its connotation — of some quality that is only available in newer products, not prior ones.
On the other hand, to simply say that something is 'new' in technology is clear: it is a recently-developed or recently-published effort, free of insinuation that there is anything better or worse than what came before it. 'Modern', on the other hand, implies some sort of quality that might not be apparent in prior art.
> If they called it "postmodern", would that be acceptable?
Why would that be acceptable? That would carry even less clear meaning.
> BTW, do you propose renaming the Museums of Modern Art?
In that context, 'modern' has a domain-specific meaning — art made past 1860.
Zero setup, incredible keybindings.
You can install it on top of your existing Distro, as an apt package. And then log out + log back in using new DE.
I had never used a tiling WM before Regolith, i3 seemed too difficult to configure for someone who didn't truly didn't understand the point/benefit of using tiling WM's.
A day into using Regolith on Ubuntu I was hooked. Been using it for years now and it's the best decision I've ever made, productivity skyrocketed and it looks nice.
I tried Pop_OS shell's tiling WM, as I was hopeful, but the keybindings and behavior aren't as nice as Regolith. It does a "swap" animation when changing tile positioning that slows stuff down, and I could never get the gap borders to disappear completely.
I've seen this complaint about GNOME in general before, so I want to mention that animations can be disabled or sped up in GNOME. There's a toggle to disable animations in GNOME completely (using the GNOME tweak tool, in the general setting). There are also add-ons to change their speed (I use Impatience [0]).
Agree. I have used i3 for several years, but tried GNOME again recently to experience with Pop_OS's tiling feature. It was OK-ish, but a bit slow when resizing windows when rearranging / opening / closing windows, even with animations disabled.
I have read about Material Shell before, but did not try it. Gave it a try today, and I am pleasantly surprised so far. The animations get old very quickly, so I do what I always do in GNOME – disable all animations in Tweak Tools. This made the experience as close to i3 as GNOME has ever been for me. I will keep using the Material Shell for a while and stress-test it a bit.
I'd actually somewhat given up trying to keep i3 working nicely and reverted to XFCE (which is at least far less obnoxious then Gnome 3) until I discovered Regolith and have been using it happily ever since.
But really, someone went quite far a couple year ago. Unfortunately he lost interest before the finish line. There is no such thing as a WM port from X11 to wayland. It's a full backend rewrite.
The design that would have worked (after like 4 rewrite), but wasn't completed, was to have a WLroot process, then some custom protocols to talk to an awesome "client". This was a fork of the old codebase with the X11 code stripped out and the implementation of those little private protocols between the wlroot "server" and awesome "client".
Using this model, the event loops lived in different process and AwesomeWM could restart without losing all applications. It did render stuff, including the wibar and clients (without titlebars). But that's about it. It never got to the point you could dog-food it.
In general, I'm happy with Sway, but it would be nice to have an X option that works for my workflow too (gnome doesn't seem to have the screen tearing issues i3 did).
I can have a tab for Thunderbird, Slack, and Jira in my "Communication" workspace, and Meta-A/Meta-D to swap between them.
Each has a little tab in the top bar that highlights the currently selected tab.
Contexts gives additional 'switching' options on different hotkeys, fuzzy window searching+selection, history-based selection, and no mouse interaction required (but it is supported)
I dedicate spaces to tasks, eg communications, monitoring, and 3-4 development task spaces with tools/docs/terminals
I have Contexts setup as follows:
cmd-tab: cycle thru all visible windows of all apps on current space
opt-tab: cycle thru all windows of all apps on all spaces (include hidden/minimized)
cmd-~: cycle thru all windows of focused app on current space (include hidden/minimized)
opt-~: cycle all windows of focused app on all spaces (include hidden/minimized)
cmd-space: activate Alfred
opt-space: search/activate of all running apps on all spaces
Alfred then allows you to add effectively anything you can script/applescript for additional workflows and a complete, keyboard-driven navigation/switching experience, and total deprecation of the slow 10.7+ mission control guiI also use Totalspaces (https://totalspaces.binaryage.com/) to give a 'grid view' spaces overview & manage app-space pinning, Stay (https://cordlessdog.com/stay/) to manage static window placement & sizing, and Sizeup (https://www.irradiatedsoftware.com/sizeup/) for dynamic window movement
> Because Windows and Mac both only show icons as well
Windows (version Vista or worse, because this definitely wasn't a problem in XP) and Mac are defective by design then.
Some wine things don't work properly too, which is somewhat annoying, but I only have one wine application I run very rarely, so it's not too onerous to boot back into i3 for that.
Talking about switching between programs, yes I thought that was a bit weird in the beginning but it came up so rarely that I eventually learned the habit of using alt+§ (on swedish layout). It's not so bad since the key is right above Tab.
Modernism, as applied to the design of tools and other useful objects, was codified by Dieter Rams half a century ago. The recent resurgence of Modernism as applied to computer software and hardware is not the result of inevitable progress. It’s the result of Steve Jobs deliberately choosing Modernism in the early 90s (although this wasn’t apparent in products until his return).
https://ifworlddesignguide.com/design-specials/dieter-rams-1...
This is true! But that's usually a given for projects being promoted via HN posts. Not usually a lot of Show HNs for for old, abandoned projects.
You’ll probably use 100% scaling?
Cmd+Tab switches between applications, and Cmd+~ switches between windows of the current application.
That said, I rarely use Cmd+Tab anymore, I just move the mouse to the top left corner and pick, now that screen could use some UX improvements (i.e. hotkeys for the apps, and maybe grouping, since when you have a lot of open apps, it is hard to find what you are looking for).
«Command line» is still very much alive as well by the way, and underpins a lot of things, say ci/cd.
Unfortunately not. Muffin, the compositor is based on a really old version of Mutter, and it’s missing a lot of performance work and fixes that make latency lower and output less likely to hitch, hidpi works better, etc. They need to just drop their fork and use the upstream version. They haven’t added anything significant to Muffin to justify keeping it—-the differences to gnome are done with other packages.
I user Gnome on Nvidia, but use the open drivers since Nvidia was difficult to get to a stable state.
Did you just install the nvidia drivers from your OS's repo or get them directly from Nvidia?
NB: The free drivers are working splendidly by the way
KDE user here. What you say is false. Xfce is quite primitive in comparison, it has a miniscule amount of features and hence gets away with using less memory. Observational data:
3570M kwin_x11 (window manager)
2512M plasmashell (task panel)
1411M krunner (application launcher)
895M kded5 (?)
532M kactivitymanagerd (multiple desktops)
422M polkit-kde-authentication-agent-1 (?)
389M org_kde_powerdevil (energy settings)
352M kdeconnectd (use mobile phone as remote control)
220M xembedsniproxy (make tray icons work)
277M kaccess (accessibility keys?)
277M ksmserver (?)
276M plasma-browser-integration-host (Firefox can show desktop notifications)
276M kwalletd (password manager)
265M klauncher (?)
265M kglobalaccel5 (global keyboard combos)
213M kscreen_backend_launcher (changing screen orientation and resolution?)
153M kio_http_cache_cleaner (?)
101M kdeinit5 (?)
101M file.so [kdeinit5] file local:/run/user/1000/klauncherXHvFxc.1.slave-socket (?)
69M kdesud (caches sudo password)
7M xsettingsd (apply colour scheme to Gnome applications)
2M start_kdeinit (?)
On top of that, some applications for comparison: 2805M ktorrent (file sharing)
694M konsole (terminal)
402M kate (text editor)
---- 570M xfce4-appfinder
332M tumblerd (makes thumbnail images)
331M Thunar (file manager)
283M xfdesktop
266M xfce4-panel
260M xfce4-session
251M xfce4-notifyd
223M xfconfd
220M xfwm4
205M xfce4-screensaver
190M xfsettingsd
188M wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libactions.so
186M wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libsystray.so
179M xfce4-power-manager
On top of that, some applications for comparison: 411M mousepad (text editor)
363M xfce4-terminal (terminal)
----KDE really has become very bloated. First of all, I cannot uninstall any part of that huge list with the exception of kdeconnectd (don't want/need) or plasma-browser-integration-host (maybe want/need); AFAICT this problem is existing, but not at all pronounced in Xfce.
Due to lazy design choices by the responsible programmers, KDE fails to scale properly down to the user's circumstances or preferences.
• I do not have multiple desktops configured, yet I must spend 532M
• My computer chassis only has a power button that does something in the desktop environment when triggered, and any power saving settings are off, yet I must spend 389M for that
• I do not have any of the five accessibility features enabled, yet I must spend 277M
• I have only one monitor attached, yet I must spend 213M listening for an additional
Then there are many initialisation processes hanging around after the desktop environment has already started. Xfce does not have this problem.
A lot of the processes I cannot even identify in the sense of telling what use they are to me.
Some processes exist only due to their own doing where the responsible programmers painted themselves into a corner (like with the tray icons fiasco), or no one competent stepped in and stopped the submission of a solution that has a simple and superior equivalent.
• Why is there a 153M cache cleaner hanging around resident in memory? This is a job for periodic timer (cron/systemd). Even if real-time cleaning is needed for some bizarre reason, then one would attach an inotify listener to the cache directory, and every time a file is added or changed, a small <1M process executes that calculates the diskspace in use, and only when we are over the threshold, then execute the big cleaning process. Exit the process when done.
• Why is there a daemon for applying the colour scheme? I mean, it's only 7M, but this used to be a checkbox in the settings dialogue.
2. You can disable that feature and use old-style taskbar. In fact it's a prominent toggle in the first-run config window.
The applications which have been converted are much harder to use. For example, I found dconf-editor in particular is now extremely frustrating to use, since it doesn't have a treeview - it's impossible to explore more than one recursive path simultaneously, and the mouse distance between opening a folder to see its contents and going back to its parent is now quite large. The title bar doesn't have enough space to display a long path due to it having lots of other controls in there, and ends up showing something like '/ com / ubuntu / Ab...xy / ap...ons / ap...ons', or worse, only the most nested folder name.
It's also just really ugly: cluttered, busy.
The good thing is there are no - zero - gtk3 apps that I need to use.
For anyone who is accustomed to other metaphors, I'm not terribly surprised by the description horror show. Even as someone who is willing to adapt to change, many of the changes seem to be contrary to usability or efficiency.
Same situation, I use ‘yabai’ on macos, which is similar enough to i3 for me.
Yabai is actually the second iteration of tiling windows that koekeishiya has made and it's super well developed.
https://github.com/kasper/phoenix/
I hacked something together several+ years ago (see below) based on someone else's config, and I've maybe edited it twice since then, so it likely can be substantially improved. Also, I'm sure it's not as slick as a true tiling manager, but I've certainly gotten a lot of mileage out of it:
https://gist.github.com/michaelsbradleyjr/a8ef81982420d06118...
Virtual memory[1] is not at all the same thing as resident memory[2].
I've experienced similar amounts of memory usage to the stats in this article when it comes to KDE vs Xfce memory usage[3].
[1] https://linuxconfig.org/ps-output-difference-between-vsz-vs-...
[2] https://en.wikipedia.org/wiki/Resident_set_size
[3] https://www.forbes.com/sites/jasonevangelho/2019/10/23/bold-...
That does not change anything in the conclusion.
685M kwin_x11
417M plasmashell
161M krunner
74820k kded5
58612k kdeconnectd
53368k polkit-kde-authentication-agent-1
52460k ksmserver
50364k kaccess
49488k plasma-browser-integration-host
48568k kwalletd
44268k kglobalaccel5
44044k org_kde_powerdevil
44020k klauncher
40384k kactivitymanagerd
26068k kdeinit5
24432k xembedsniproxy
21508k kscreen_backend_launcher
18964k file.so [kdeinit5] file local:/run/user/1000/klauncherwpWDlK.1.slave-socket
11672k kio_http_cache_cleaner
3984k kdesud
3652k xsettingsd
96k start_kdeinit
144M kate
96464k konsole
---- 73828k xfdesktop
59788k xfwm4
44508k xfce4-screensaver
38552k xfce4-appfinder
36260k xfce4-panel
29392k xfce4-session
29216k wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libactions.so
27156k wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libsystray.so
27064k Thunar
25284k xfsettingsd
25284k xfsettingsd
25140k tumblerd
17656k xfce4-notifyd
15248k xfce4-power-manager
5880k xfconfd
54492k mousepad
51244k xfce4-terminal
The findings from the article are non-reproducible, too. When I run the desktop environments with a text editor and terminal each, `free -h` reports a clear difference in the "used" column: KDE 5.19.4: 1.2Gi
Xfce 4.14.5: 521MiThe hamburger menu keeps the applications looking clean, if there's anything I use that frequently I'll just use the keyboard shortcut.
It's improving every release, but if you want traditional, I'd choose XFCE.
This is not to say that I insist upon menus. Since I never had much invested in Microsoft Office, I do appreciate the ribbon bar. It does a fairly good job of organizing and exposing functionality in an otherwise complex piece of software. Contrast that with GNOME's approach. It is rather difficult to design a complex piece of software when most of the functionality is hidden behind a single menu.
At the other extreme, you have software that is somehow command driven. The interface can be kept clean by hiding away all of the functionality. (An example of this would be vim.) Yet that is not what GNOME is trying to provide. GNOME is a graphical interface that is supposed to facilitate discoverability. Discoverability will always be a trade-off between visual clutter or a reduced feature set. The only other option is to hide functionality, which is dangerous in a GUI.
Menus are ideal for commands which are individually infrequently used, but collectively frequently used. That is, where any given menu item isn't used often enough to warrant learning the keyboard shortcut (not that Gtk3 menus show shortcuts, because they don't), but the menu as a total is visited to execute a command frequently. Consider things like IDEs, photo manipulation, video editing, sound editing, basically anything with a lot of tools to apply.
I find it particularly ironic that Gimp - the OG Gtk - doesn't use a hamburger menu, because that would be ludicrous.
Something usually lost in "clean" UIs...
Grouping related windows in the task bar makes it frustrating to use it because everything involves multiple clicks. Once you got beyond a certain number of apps the task bar sucked without grouping because there wasn't enough text to display a long enough label to distinguish between windows.
When something takes a long time to load you are incentivized to create a new tab if you might want to come back to that resource rather than waiting for it to load again. This absolutely incentivizes using multiple tabs. If you have 8-12 browser windows + 2 or 3 other windows you are already past the threshold where you have to group windows in the task bar to use it and are now changing tabs by moving your mouse at the way to the bottom of the screen clicking on the browser icon and then hunting for the desired text then clicking again. This is in a word annoying.
if your browser supports tabs you can have 2-3 other windows and 2 browser windows and use an ungrouped taskbar. You can also hit one hotkey to open a new tab or use in browser tab switching in place of all desktop window switching to switch between several. This is much much much better.
Even if all other sins were removed the browser tabs represent a logical grouping and additional context that would be lost with just windows.
I can close them as a group I can book mark them as a group I can save them for later perusal as a group. I can use a side tab extension to more easily switch between a large number of tabs. I can right click on a link and open several links in the background without changing my current context.
They designed a user interface that was only useful for grandma opening 1 browser window at a time and maybe 2 apps at a time.
Ironically the pieces were there with MDI but that was also a bad implementation of the same semantic concept.
For whatever reason, only tiling wms like i3 have ever really delivered at all on the concept of making tabbing a universal thing.
I couldn't open new firefox windows in the background and opening others in the foreground within firefox.
I would have to use i3's horizontal tabs instead of tree style tabs making it harder to read the titles.
I couldn't switch tabs separately from switching windows. This would make having firefox alongside another window suck because it would trivially become hard to navigate. I would have to manually put only the firefox windows in a tabbed layout with the other window outside of it. I would have to focus parent and then focus direction to switch to the other. This would be so for any window I want to use alongside it even briefly.
I couldn't close entire trees of tabs at once. I couldn't close everything except the current tree.
I couldn't save a particular set of tabs as a session to be restored later.
In theory could these features be implemented in an i3 specific nature? Perhaps so long as you are willing to do so for every specific environment and for every individual app.
If we pick 100 apps and the most popular 10 environments and the most desired 10 features we will find we only have 10,000 tasks ahead of us!
Tabbed environments within i3 ARE useful but not as a replacement for tabbed interfaces within applications.
[1] https://www.haiku-os.org/docs/userguide/en/gui.html#stack-ti...
[2] https://superuser.com/questions/848840/triggering-kdes-attac...
[3] https://www.zdnet.com/article/windows-10s-sets-feature-is-go...
If you have the keyboard in another locale (I use ES-intl) that hotkey doesn't make any sense at all: ` is next to "p" in my keyboard, and works only as a dead key. Cmd-` is literally impossible to use on it.
If you are in this situation, do yourself a favor and remap the "move focus to next window" hotkey [1]. It is very useful and I couldn't live without it now.
[1] https://apple.stackexchange.com/questions/280220/how-to-chan...
It's probably worth noting that the defaults remain on common Linux (at least KDE, GNOME, and Cinnamon) and Windows desktop shells with Alt instead of Cmd.
On Linux, Windows, and OSX, adding Shift cycles in reverse order.
I use HyperSwitch[0] on macOS to solve this issue. I use it to override the default Cmd+Tab behavior to cycle through windows on the current desktop. It's become one of the first things I install on a new machine.
My frustration, fundamentally, is that I don't want every app that wants to use some kind of tabbing interface to be different. Use different shortcuts, different models. I would rather the WM/DE provide a holistic approach that can be inclusive of all or at least most of the basic needs you keep listing, and that could be applied to other programs in a uniform way.
That's beyond the imagination of Microsoft apparently (I agree that just making taskbar items clump isn't the same), and beyond the scope of an x11 WM (which doesn't have any meaningful say over the client area of any program on its own). But it's not impossible, and it's not "the wrong way" just because no one's tried or managed to do it yet.
It's not merely that i3 tabs lack features its that it lacks and ought to lack deep integration with the application.