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

pantheon: init at 5.0 #48637

Merged
merged 6 commits into from Jan 24, 2019
Merged

Conversation

worldofpeace
Copy link
Contributor

@worldofpeace worldofpeace commented Oct 17, 2018

Description of Change

Add the elementary/pantheon desktop to NixOS!

Notes

  • I didn't add the things to, idk, release-combined.nix because I'm not familiar with that.
  • I should probably move gsignond: init at 1.0.7 #43133 here because I did it separately for some reason

Things Done

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
  • Tested via one or more NixOS tests
    • elementary
  • Tested on Physical Machines
  • Fits CONTRIBUTING.md.

How To Test

There's https://elementary.cachix.org which can be used as a binary cache.
The packages are built directly off of this branch.

configuration.nix
services.xserver.enable = true;
services.xserver.desktopManager.elementary.enable = true;
services.xserver.desktopManager.default = "pantheon";
services.xserver.displayManager.lightdm.enable = true;
services.xserver.displayManager.lightdm.greeters.elementary.enable = true;

We have to set services.xserver.desktopManager.default = "pantheon"; because sessions from extraSessionFilePackages aren't picked automatically as the default session.

Possible solutions were discussed around here #43992 (comment).

In a VM

Ignore these errors as I can't reproduce them while on a physical machine.
Bluetooth error is pretty expected also.

** (io.elementary.switchboard:1744): CRITICAL **: 21:39:27.969: Manager.vala:64: Error calling StartServiceByName for org.bluez: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'org.bluez': timed out (service_start_timeout=25000ms)

Could't connect to accessibility bus: Failed to connect to socket /tmp/dbus-nF2hddXdYT: Connection refused
On a Physical Machine

Make sure that the home directory doesn't have any .gtkrc* or .dmrc lying around.

If you have a last saved session or something it won't go into the elementary session.
Running this fixed that for me:

dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetXSession string:pantheon

Where User1000 is User and the uid of the user.


Current Issues

1. There's no system sounds using elementary-sound-theme

Needs a sounds module mentioned in #47173

  1. elementary-greeter doesn't have a panel with indicators from wingpanel

No idea on this one.

  1. glib setup hook doesn't move networkmanagerapplet schemas

See: #45043

This causes connection from wingpanel-indicator-network to be impossible.

I'm currently doing this horrible "workaround" .

4. elementary-greeter can appear really weird on displays less than 1920x1080 and maybe above

Clearly evident in a screenshot:

lightdm

Also note on certain displays that meet that criteria, the font looks awful.

  1. switchboard-plug-onlineaccounts isn't functional

Here's the output of authentication on NixOS and elementary.

Also it requests to enter a password for Default Keyring.
It probably shouldn't.

6. switchboard-plug-pantheon-shell can't enumerate system wallpapers directory

Upstream Issue: elementary/switchboard-plug-pantheon-shell#151

  1. after locking desktop (or after first login) cursor theme is switched to adwaita

  2. switchboard-plug-print always requests some sort of authentication

  3. enabling both elementary and gnome3 isn't possible

Build fails with:

error: The unique option `networking.networkmanager.basePackages.modemmanager' is defined multiple times, in `nixos/modules/services/x11/desktop-managers/elementary.nix' and `nixos/modules/services/x11/desktop-managers/gnome3.nix'.

Notable Compromises

gnome3.mutter328

We have to keep mutter 3.28 around for elementary's gala and greeter until they get around to adapting to all the API breaking changes in libmutter-3.

patched gnome-settings-daemon

In order for light-locker to kick in, we have to control certain DPMS settings ourselves that are otherwise managed by G-S-D yet ignored by light-locker. This requires a helper package and a patched G-S-D.

Don't really have much of choice here based off of this comment here elementary/greeter#92 (comment)


Unpackaged Software

They remain as such because they're non-functional, problematic, or untested on distros other than Ubuntu.

List of programs and upstream issues

Though switchboard-plug-useraccounts isn't really useful on NixOS for obvious reasons 😄

Thank you @jtojnar so much for all the guidance! 🎆 🎆 🎆

nixos/modules/services/x11/desktop-managers/elementary.nix Outdated Show resolved Hide resolved
nixos/modules/services/x11/desktop-managers/elementary.nix Outdated Show resolved Hide resolved
nixos/modules/services/x11/desktop-managers/elementary.nix Outdated Show resolved Hide resolved
pkgs/desktops/elementary/contractor/default.nix Outdated Show resolved Hide resolved
pkgs/desktops/elementary/elementary-greeter/default.nix Outdated Show resolved Hide resolved
# for `wingpanel -g`
--prefix PATH : "${wingpanel-with-indicators}/bin"

# TODO: they should be using meson for this
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure I understand. Could you be more specific?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think I meant they could use meson to get an absolute path

@jtojnar
Copy link
Contributor

jtojnar commented Oct 18, 2018

More to come later.

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
checking for references to /build in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3...
/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
checking for references to /build in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3...
/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@worldofpeace
Copy link
Contributor Author

Heh, wonder which commit made the eval succeed.

@worldofpeace
Copy link
Contributor Author

If i try to enable both gnome3 and elementary this happens

error: The unique option `networking.networkmanager.basePackages.modemmanager' is defined multiple times, in `nixos/modules/services/x11/desktop-managers/elementary.nix' and `nixos/modules/services/x11/desktop-managers/gnome3.nix'.

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3
checking for references to /build in /nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3...
/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3
checking for references to /build in /nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3...
/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/3y30hs0sdln3x9pk7bibk6rg3f6bd74h-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

/nix/store/h8w7fpbhvcs8wvpc32rqzcnyikj561lz-faba-icon-theme-4.3

@GrahamcOfBorg
Copy link

Success on aarch64-linux (full log)

Attempted: faba-icon-theme

Partial log (click to expand)

Installing subdir /build/source/Faba to /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3/share/icons/Faba
Running custom install script '/build/source/meson/post_install.py'
glibPreFixupPhase
hicolorPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3
checking for references to /build in /nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3...
/nix/store/2nh2rza1p1v749niwc5r381wshkpx2am-faba-icon-theme-4.3

@worldofpeace
Copy link
Contributor Author

Ok, I think all that's left is

After this is merged I will migrate all the issues out of here, add a Pantheon label and project.

@worldofpeace
Copy link
Contributor Author

@jtojnar Any idea what

gsd-xsettings Failed to get current display configuration state: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.Mutter.DisplayConfig" does not exist

Means?

@worldofpeace
Copy link
Contributor Author

So I made this a bit better getting rid of some more session path, as I found I had some of it in a stash already.

Though the commit got squashed so here are the changes.

@worldofpeace worldofpeace changed the title elementary: init a 5.0 Juno pantheon: init at 5.0 Jan 24, 2019
@worldofpeace worldofpeace merged commit 2912e6c into NixOS:staging Jan 24, 2019
@worldofpeace
Copy link
Contributor Author

Hope that was fine 😄

Thank you so much to @jtojnar and @davidak 🎇

@dtzWill
Copy link
Member

dtzWill commented Jan 28, 2019

Yay! I apologize if I'm using a slightly dated version, but in case it's useful...

I ran into an assert failure due to bad pname usage (this may have been reverted on master but I like it so kept it), fix was relatively straightforward. Please apply if this looks good, or bug me and I'll make a PR or something :).

dtzWill@663293e

@worldofpeace
Copy link
Contributor Author

Yay! I apologize if I'm using a slightly dated version, but in case it's useful...

I ran into an assert failure due to bad pname usage (this may have been reverted on master but I like it so kept it), fix was relatively straightforward. Please apply if this looks good, or bug me and I'll make a PR or something :).

dtzWill@663293e

Yeah I actually wanted to switch to repoName and jtojnar also suggested appName or projectName.
I think repoName or projectName would make the most sense for what's it's used for.

It would be really nice if you'd pr that for all pantheon 😄 ❇️

@vcunat
Copy link
Member

vcunat commented Feb 1, 2019

See f55f45f (gst-ffmpeg removal).

vcunat added a commit that referenced this pull request Feb 1, 2019
This fixes evaluation.  I'm not sure why pantheon.elementary-videos
was mixing gst 1 with old gst-ffmpeg.
/cc #48637, #50220.
dtzWill pushed a commit to dtzWill/nixpkgs that referenced this pull request Feb 5, 2019
This fixes evaluation.  I'm not sure why pantheon.elementary-videos
was mixing gst 1 with old gst-ffmpeg.
/cc NixOS#48637, NixOS#50220.
@worldofpeace worldofpeace mentioned this pull request Aug 5, 2019
10 tasks
@bobby285271 bobby285271 mentioned this pull request Aug 11, 2021
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants