Desktop state is neatly organized using freedesktop standards. Since components are so modular, it's trivial to replace or modify any of them using any client program you wish.
This is peak "Year of the Linux Desktop" behavior
why does my desktop background need state
But ya I agree Cosmic is very nice. I think it's doing a good job of bringing innovations from the indie window manager world to the full graphical desktop world. Also Rust + wgpu + Iced is a very cool stack.
why does my desktop background need state
What if your background is a slideshow? Or what if it changes depending on what time of day it is or what the system's current theme is? Or what directories it should search for background images in? Even though COSMIC does not yet support all these features, they're setting a foundation for COSMIC to be expanded upon in the future in a way that's entirely unique in the Linux space rn.
Ya that's totally fair. I just thought it was funny that the desktop background was one of the only two apps that appear to have state on your system.
Speaking of the Cosmic background, since they are already rendering it with the GPU they should let you specify a custom frag shader for it. Then you could have some really wild desktop eye candy.
I love everything I’m seeing about this desktop! I haven’t been able to find info on it but if they add an option to use horizontal workspaces rather than the vertical layout then I might drop Sway for cosmic
option to use horizontal workspaces rather than the vertical layout
This option has already been implemented in the COSMIC alpha which can be downloaded from the System76 website as part of POP!_OS 24.04 alpha or installed on various Linux distros like Fedora, Nix and Arch.
If you press
super+W
you get a workspaces overview a la GNOME overview or KDE Plasma's overview where one can move windows around to different workspaces graphically.It also supports both floating,
manualwindow snapping, anddynamicmanual tiling and configuration via text files.
Does the base directory specification actually specify that directories in
$XDG_CONFIG_HOME
must use the full namespace & id as their name? I assumed it'd be here but I don't see it mentioned. I understand the idea behind it, to prevent conflicts between programs with the same name, but I've always really hated programs that do that because it's such a pain to remember the full path to what I'm looking for.I don't believe it is part of the spec but as a way of organizing modules it's incredibly useful in case System76 builds out a way to use third-party modules in COSMIC where you'd be able to easily switch between using a third party module or a S76 one without any fear of conflicts. S76 has said they're looking to host a COSMIC extensions store so it's looking like they're engineering around that.
The use of
.local/state
dirs is also really nice since it separates window state from configuration. On KDE Plasma, these values are not separated which doesn't make switching configurations fully reproducible.COSMIC doesn't have any technical debt or backwards compatibility concerns that KDE and GNOME have so we get to see things like this more frequently. All the learned lessons of KDE and GNOME can be readily applied to COSMIC and the fact that it's backed by a hardware manufacturer is literally what all the "Here's what Linux needs to do to succeed" dorks have been saying this whole time.
As soon as there's a stable release, I'm switching to it on my Bazzite install, since they plan to support it officially. I really liked Cosmic Shell when I first switched off Windows. I've been on KDE for a while but I'm all aboard the Rust train and ditching years and years of technical debt.
Is it FreeDesktop standard to organize config files by java standards? What files are in all those folders and how big are they?
Since components are so modular, it's trivial to replace or modify any of them using any client program you wish.
Is there a window manager component I can replace? I'm in the market for a programmable Wayland compositor, since the only one im aware of is river, which is extremely minimal.
Well just desktop extensions similar to GNOME extensions. The files in those folders are just config files in the ron format. For example, In the CosmicBackground subdir there's two files called
all
andsame-on-all
all contains
( output: "all", source: Path("<path-to-image>"), filter_by_theme: true, rotation_frequency: 300, filter_method: Lanczos, scaling_mode: Zoom, sampling_method: Alphanumeric, )
while same-on-all contains
true
This is a boon compared to GNOME's dconf or KDE's multitud of RC dotfiles.
Is that Java or just a fully qualified domain that Java also tends to use for packages?
Maybe? It's not a Rust standard that I'm aware of and it doesn't make sense to use the full prefix when you're already in
~/.config/cosmic
.That said, at least its a uniforn standard. Can't say the same for KDE.
Desktop state is neatly organized using freedesktop standards. Since components are so modular, it's trivial to replace or modify any of them using any client program you wish.
What does this mean?
S76 devs have stated they're not going to expose all the possible configurations you can make to COSMIC via the settings app (taking a more GNOME approach rather than a KDE one) but that third-party developers can create COSMIC-tweaks esque applications to modify a part of a desktop beyond the exposed GUI settings. Applets will work in the same way with a handful of 1st party applets that can be accompanied by community ones.