Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plasma 6 #286522

Merged
merged 24 commits into from
Feb 28, 2024
Merged

Plasma 6 #286522

merged 24 commits into from
Feb 28, 2024

Conversation

K900
Copy link
Contributor

@K900 K900 commented Feb 5, 2024

Description of changes

Yes, the entire thing. I'm sorry in advance.

This is basically a copy of https://github.com/nix-community/kde2nix/, with minimal changes to keep things building.

Some words on the design:

  • the meat of the packaging is actually the scripts in maintainers/scripts/kde that generate the package expressions and metadata
    • generating expressions saves a huge amount of work updating the package sets, and is based on the data used by upstream in CI, so it is known to generally be highly accurate
  • pkgs/kde is kind of arbitrary, and so is pkgs.kdePackages, but it's definitely easier to keep everything in one scope for this, as there's a lot of cross-pollination
    • the package set is entirely self-contained for now, but third party applications will probably want to pull from it eventually
  • it's a little weird to have Qt5 and Qt6 versions of things being built very differently, but the Qt5 stuff will go away in the next few months, so this is a temporary state
  • the module is mostly based on the Plasma 5 one, but somewhat slimmed down
  • the test is still running on X11, even though Wayland is the default upstream, because our tooling can't really do Wayland yet :(

Me and others have been running this as a daily driver during the betas/RCs, and it's been very stable so far.

The version included right now is 6.0-rc2, the final release is in a few weeks, and I hope to merge it then unless there are major objections.

Also, big thanks to everyone who tested and fixed things, including, but not limited to:
@jansol @mjm @raphaelr @rsniezek @SuperSandro2000

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

pkgs/kde/default.nix Outdated Show resolved Hide resolved
@K900 K900 force-pushed the plasma-6 branch 2 times, most recently from 95959c7 to c193931 Compare February 5, 2024 17:40
pkgs/by-name/li/libappimage/xdg-utils-cxx.nix Outdated Show resolved Hide resolved
pkgs/by-name/li/libappimage/xdg-utils-cxx.nix Outdated Show resolved Hide resolved
pkgs/by-name/li/libappimage/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/li/libappimage/package.nix Outdated Show resolved Hide resolved
pkgs/by-name/li/libappimage/package.nix Outdated Show resolved Hide resolved
Comment on lines +179 to +178
# FIXME: modules should link subdirs of `/share` rather than relying on this
"/share"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this be the chance to fix this even if it is lots of work?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally yes, but I don't really have the spoons for it now.

nixos/modules/services/x11/desktop-managers/plasma6.nix Outdated Show resolved Hide resolved
.editorconfig Show resolved Hide resolved
Copy link
Member

@SuperSandro2000 SuperSandro2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My browser died reviewing this 💀 Can we splitt the autogenerated bits into extra commits to make it somewhat managable?

Also I tried to not repeat myself or focus to much on the details, so one comment could apply to multiple files that have the same pattern.

@SuperSandro2000
Copy link
Member

Forgot something since github ate my first review comment: This should definitely be under pkgs/desktops/{plasma6,kde,..} or the like

@K900
Copy link
Contributor Author

K900 commented Feb 5, 2024

Can we splitt the autogenerated bits into extra commits to make it somewhat managable?

Probably a good idea. Done.

@K900
Copy link
Contributor Author

K900 commented Feb 5, 2024

Forgot something since github ate my first review comment: This should definitely be under pkgs/desktops/{plasma6,kde,..} or the like

Questionable, because at least Frameworks definitely doesn't belong under desktops no matter how you stretch it.

@Naxdy
Copy link
Contributor

Naxdy commented Mar 1, 2024

One thing I noticed is that Application Launcher does not show new applications I recently installed. Applications that I recently uninstalled still show up with blank icons, clicking them does not work obviously.

I just noticed kmail was not installed so I added it to my nix config and rebooted. But it still does not show up in the application menu.

I'm experiencing the same (or a similar) problem. For me, newly installed apps show up, but apps that have changed (pointed to a new path in the nix store) don't change in the app launcher.

@Naxdy
Copy link
Contributor

Naxdy commented Mar 1, 2024

I think plasma seems to hard resolve the .../share path to the one in the nix store. All desktop apps I've checked point to the same path in the nix store ( /nix/store/fkx44c7ghr3v8jj3zwa33jgyn59r0g00-user-environment/share/applications ). For some reason, this resolution seems to be cached somewhere. Not sure where yet, but I'll keep investigating.

@Naxdy
Copy link
Contributor

Naxdy commented Mar 1, 2024

So, the problem seems to be that when a new ksycoca6_..... file is created in the .cache, plasma just completely ignores it and happily continues to use whichever one it has been using. A workaround (for now) is to manually run rm ~/.cache/ksycoca* (or add it to your activation scripts, lol) after every nixos-rebuild, and this should take care of things.

Still, it'd be nice to know if this is a NixOS issue, or an upstream issue. Feels like it could be either?

@Lyndeno
Copy link
Contributor

Lyndeno commented Mar 1, 2024

So, the problem seems to be that when a new ksycoca6_..... file is created in the .cache, plasma just completely ignores it and happily continues to use whichever one it has been using. A workaround (for now) is to manually run rm ~/.cache/ksycoca* (or add it to your activation scripts, lol) after every nixos-rebuild, and this should take care of things.

Still, it'd be nice to know if this is a NixOS issue, or an upstream issue. Feels like it could be either?

If anyone else if affected: #292632

@dotlambda
Copy link
Member

Do also note that if you use Plasma 6, it's probably a good idea to make sure all your manually installed KDE applications come from pkgs.kdePackages and not from the old pkgs.libsForQt5.

There are a few lines like

angelfish = libsForQt5.kdeGear.angelfish

in pkgs/top-level/aliases.nix. Should we update them to use kdePackages?

@meirisoda
Copy link

Newly installed packages do not show up for me as well, regardless of if it's a KDE package or not.

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

Do also note that if you use Plasma 6, it's probably a good idea to make sure all your manually installed KDE applications come from pkgs.kdePackages and not from the old pkgs.libsForQt5.

There are a few lines like

angelfish = libsForQt5.kdeGear.angelfish

in pkgs/top-level/aliases.nix. Should we update them to use kdePackages?

I want to do that a bit later, as part of a bigger migration from Plasma 5 to 6.

@Kasper24
Copy link

Kasper24 commented Mar 2, 2024

Does anyone else settings app missing most of the options? I can't even set display settings...
image

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

This looks like you might be running the Qt5 version of systemsettings?

@eric-hansen
Copy link

The only other issue I'm running into now is when I go to log out (to restart my KDE session, for example) it hangs on a black screen with a "_" in the top-left.

What display manager are you using?

Sorry for the late response. I'm using SDDM currently. Is there a better/preferred option?

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

SDDM is what you want, yes. Check the logs for display-manager.services.

@padhia
Copy link

padhia commented Mar 2, 2024

  • adding scripts to ~/.config/plasma-workspace/env/"script that does something" seems to not work anymore. It works on arch plasma6 and worked on nixos plasma5.

I too have this issue on Plasma 6. Since it works for the OP on Arch, I am hoping this gets fixed soon on NixOS.

Thank you for packaging Plasma 6 so quickly after the release!

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

How are you starting Plasma if those scripts don't work for you?

@padhia
Copy link

padhia commented Mar 2, 2024

I start plasma using SDDM (I hope that's what you were asking). I use home-manager to place a script in ~/.config/plasma-workspace/env. It worked perfectly on plasma 5.

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

What are the contents of the script?

@padhia
Copy link

padhia commented Mar 2, 2024

It contains only one line: export SSH_AUTH_SOCK=$HOME/....

@K900
Copy link
Contributor Author

K900 commented Mar 2, 2024

That should really be handled with environment.sessionVariables or similar. The issue is likely not that the script isn't running, but that it's not affecting the environment of the processes that aren't direct children of Plasma.

@padhia
Copy link

padhia commented Mar 2, 2024

Yes, a different parent could explain why the environment variable isn't available.

I set it that way because I wanted that environment variable set only if I am running, say a local Konsole session, that is part of the GUI session, but do not want that variable set when I ssh remotely.

@Kasper24
Copy link

Kasper24 commented Mar 2, 2024

This looks like you might be running the Qt5 version of systemsettings?

Why is this happening? I don't have plasma5 enabled

@mahadisabot
Copy link

where can I get the iso which includes plasma 6?

@aktaboot
Copy link
Contributor

aktaboot commented Mar 3, 2024

Why is this happening? I don't have plasma5 enabled
@Kasper24

make sure you don't have explicit referencing of libsForQt5, and use kdePackages instead

@mjm
Copy link
Contributor

mjm commented Mar 3, 2024

where can I get the iso which includes plasma 6?

https://hydra.nixos.org/job/nixos/trunk-combined/nixos.iso_plasma6.x86_64-linux/latest/download-by-type/file/iso

@sdht0
Copy link
Contributor

sdht0 commented Mar 5, 2024

On plasma6-x11 with intel graphics, I'm getting an occasional hang, where it seems kwin itself gets stuck for 2-3 seconds. Related logs below. Any idea if this could be a NixOS config specific issue? Else will file an upstream bug.

kwin_x11[1109]: kwin_core: XCB error: 152 (BadDamage), sequence: 44279, resource id: 18966973, major code: 143 (DAMAGE), minor code: 2 (Destroy)
kwin_x11[1109]: kwin_core: XCB error: 3 (BadWindow), sequence: 44280, resource id: 60817466, major code: 129 (SHAPE), minor code: 6 (Input)

I'm also getting locale (i18n.defaultLocale = 'en_CA.UTF-8') related errors in the log for org.kde.powerdevil.backlighthelper/sddm-helper, although there does not seem to be any practical issue.

Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.

@i-can-not-program
Copy link

Ark does not have 7-zip, lrzip, and unarchiver plugins which are all included by default in the plasma5 version.

@NixOS NixOS locked as off-topic and limited conversation to collaborators Oct 7, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.