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

New package: pantheon-session-20200331 #20538

Closed
wants to merge 7 commits into from

Conversation

LinArcX
Copy link
Contributor

@LinArcX LinArcX commented Apr 1, 2020

Finally pantheon desktop is ready for void users!

To use it, you have two options:

  1. Install a display manager like lightdm or gdm.(recommended)
    1.1. There is a greeter for pantheon, and i'm going to send it as a separate PR.
  2. Use startx(has some drawback)
    Edit your .xinitrc file like this:
export XDG_SESSION_TYPE=X11
export DESKTOP_SESSION=Pantheon

wingpanel &
plank &
session=${1:-i3}

case $session in
  dwm             ) exec dwm;;
  i3|i3wm         ) exec i3;;
  pantheon        ) exex gnome-session --session=pantheon;;
  *               ) exec $1;;
esac

And run this command:
sh -c "/usr/bin/startx /home/linarcx/.xinitrc pantheon; killall -9 wingpanel; killall -9 plank; killall -9 gala"

Bonus: To make life even easier, make an alias in your .zshrc or .bashrc file:
alias startp='sh -c "/usr/bin/startx ~/.xinitrc pantheon"'

Switchboard

One of core components of pantheon-session is switchboard and its indicators. Please notice that I've intentionally didn't include any switchboard-plugins. Instead I've created most of them as extra packages and you can install them as you want:(I'm going to send them as separate pull requests after this PR merged)

Official:

Unofficial:

  • switchboard-plug-elementary-tweaks [waiting for new release...]

Wingpanel

There are lots of them(Official or Unofficial). I'm tying to create most of them. (like switchboard-plugin, I'm going to send them as separate PRs):

Official:

Unofficial:

Greeter

Hint: to use lightdm-patnehon-greeter, first install lightdm and enable it's service. Then install lightdm-pantheon-greeter. You can set the default greeter by changing the [Seat:*] section of the LightDM configuration file [/etc/lightdm/lightdm.conf], like so:


[Seat:*]
...
greeter-session=lightdm-pantheon-greeter
...

One way to check which greeters are available is to list the files in the /usr/share/xgreeters directory; each .desktop file represents an available greeter. In this example, the lightdm-gtk-greeter and lightdm-kde-greeter greeters are available:

$ ls -1 /usr/share/xgreeters/
lightdm-gtk-greeter.desktop
lightdm-pantheon-greeter.desktop

And the config file of pantheon-greeter[ /etc/lightdm/io.elementary.greeter.conf ] contains:

[greeter]
#activate-numlock=true
#default-wallpaper=<path-to-your-favorite-background-image>
#high-contrast=false
#onscreen-keyboard=false
#screensaver-timeout=60

Theme & Icons

@LinArcX LinArcX changed the title Pantheon pantheon-session-20200331 Apr 1, 2020
@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 1, 2020

@xtraeme You don't review this PR?

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 1, 2020

This pr is ready!

Actually that pr is based on my initial attempts. He didn't even change my name!

@LinArcX LinArcX force-pushed the pantheon branch 3 times, most recently from fa9b5c5 to 681fd25 Compare April 1, 2020 15:54
Copy link
Contributor

@CameronNemo CameronNemo left a comment

Choose a reason for hiding this comment

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

Overall this looks good, but I have a few concerns that I wrote in-line. The issues are pretty similar so I will explain them once here:

  • cmake is rarely needed to build elementary software these days. Most packages will use meson in place of cmake, and (almost?) never both at the same time.
  • vala-devel is for software that links to the vala utility libraries. Most applications written in Vala will not need it. It is only really useful for IDEs and text editors that need to do syntax highlighting etc. Usually you will want to put valac (the vala compiler) in hostmakedepends.
  • subpackages that contain development headers typically have a depends line that looks like depends="${makedepends} ${sourcepkg}>=${version}_${revision}". You can see many examples of this in the void-packages repo already.

common/shlibs Outdated Show resolved Hide resolved
srcpkgs/AppStream/template Outdated Show resolved Hide resolved
srcpkgs/gala/template Outdated Show resolved Hide resolved
srcpkgs/gala/template Outdated Show resolved Hide resolved
srcpkgs/pantheon-applications-menu/template Outdated Show resolved Hide resolved
srcpkgs/pantheon-dpms-helper/template Outdated Show resolved Hide resolved
srcpkgs/pantheon-session/files/pantheon-mimeapps.list Outdated Show resolved Hide resolved
srcpkgs/pantheon-session/template Outdated Show resolved Hide resolved
srcpkgs/wingpanel/template Outdated Show resolved Hide resolved
@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 1, 2020

Failed in some architectures. For instance:

Should i add vala to hostmakedepends?

@LinArcX LinArcX changed the title pantheon-session-20200331 New package: pantheon-session-20200331 Apr 1, 2020
@CameronNemo
Copy link
Contributor

meson.build:1:0: ERROR: Could not execute Vala compiler "valac"

See my message above about vala-devel vs. valac and when you want to use each one. Use the commits from #20429 as-is -- they successfully cross compile just fine.

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 2, 2020

meson.build:1:0: ERROR: Could not execute Vala compiler "valac"

See my message above about vala-devel vs. valac and when you want to use each one. Use the commits from #20429 as-is -- they successfully cross compile just fine.

Ok. But i'm confused about one thing:
Should i include shared libraries in development package or main package?

@LinArcX LinArcX force-pushed the pantheon branch 2 times, most recently from 5d49726 to 6f62ee5 Compare April 3, 2020 07:22
@CameronNemo
Copy link
Contributor

The last update looks great. My only remaining concern is if there are any missing runtime dependencies. These can be hard to detect if you are not working from the base install. I would suggest spinning up a minimal void installation in a VM and installing these packages, then making sure they work well without having to install anything else. I do not think this concern should be a blocker for merging, we can always easily add those missing deps later.

Thanks for your hard work on this!

@Anachron
Copy link
Contributor

@LinArcX would you be kind enough and tell me which PRs (and pkgs) I have to recompile because you've fixed some issues with them? Thank you!

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 11, 2020

@Anachron

Due to this issue, I've added pantheon-agent-polkit as runtime dependency of pantheon-session.

Just re-compile pantheon-session.

Edit: A dirty way:
Can you see these messages across this long PR?

LinArcX force-pushed the LinArcX:pantheon branch from ad2c4a6 to cd541c0 2 days ago

Grab those hash IDs and make a url in your browser like this:
https://github.com/void-linux/void-packages/compare/<first-hash>..<second-hash>

And search for LinArcX there.

@Anachron
Copy link
Contributor

Anachron commented Apr 11, 2020

@LinArcX I've reapplied this PR as patch on my gitsrc, recompiled pantheon-session and created a new live-ISO which sadly always crashes now.

So now I disable my lightdm auto-launch and try to figure out why that is.

Meanwhile I've created a meta package for all default elementary apps which makes it easier for me to package & install pantheon.

# Template file for 'pantheon-apps-default'
pkgname=pantheon-apps-default
version=1.0.0
revision=1
build_style=meta
depends="io.elementary.terminal io.elementary.calculator io.elementary.files
 io.elementary.icons io.elementary.calendar io.elementary.code
 io.elementary.music io.elementary.videos io.elementary.photos
 io.elementary.print pantheon-screenshot"
short_desc="Default Pantheon applications"
maintainer="Anachron <[email protected]>"
license="LGPL-2.1-or-later"
homepage="https://github.com/elementary"

Edit: Turns out the polkit-agent keeps crashing:
https://i.imgur.com/71ukWsl.png

Manually running it gives me Unable to init Server: Could not connect: Connection Refused.

Maybe this is the issue?

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 11, 2020

@Anachron I experienced crash after latest changes randomly. But i didn't know that we shouldn't insert this entry:
io.elementary.desktop.agent-polkit;

Into this file:
/usr/share/gnome-session/sessions/pantheon.session

So, please remove that entry from above file and try again.

Edit: Seems every crash somehow related to this file. :)

@Anachron
Copy link
Contributor

Anachron commented Apr 11, 2020

I've added myself to polkitd and remove that entry from pantheon.session and then logged in and tried running the polkit-daemon myself, which spawns this error:
https://i.imgur.com/bHWQiu1.png
(dbus is running, and so is polkitd)

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 11, 2020

There is no need to add yourself to polkitd and also there is no need to run polkit-daemon. You should only care about to watch if this command running at the background or not:
/usr/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit

@Anachron
Copy link
Contributor

Anachron commented Apr 11, 2020

Sorry if I wasn't clear enough, I tried running that polkit agent you mentioned and yet still receive the same error.

Edit: lsof /usr/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit gives no output. I can't even manually put it into xinitrc or alike because no matter which user I run it under it keeps telling me Connection Refused.

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 11, 2020

Could you please give me the content of this file:
/etc/xdg/autostart/io.elementary.desktop.agent-polkit.desktop

@Anachron
Copy link
Contributor

Sure

@LinArcX
Copy link
Contributor Author

LinArcX commented Apr 19, 2020

There is no need for those /etc/skel/* files. Since dockitems can be customized by user. Other 6 files can be package like pantheon-session...

Done.

I experienced crash after latest changes randomly. But i didn't know that we shouldn't insert this entry:
io.elementary.desktop.agent-polkit;
Into this file:
/usr/share/gnome-session/sessions/pantheon.session
So, please remove that entry from above file and try again

Done.

And also i removed dpms-helper dependency. it's last commit is May,18, 2018
And i don't think there is no need for it. (I didn't get any runtime issue about it).

@Anachron
Copy link
Contributor

Anachron commented Apr 23, 2020

Opening the Power switchboard plug crashes now with the message Settings schema io.elementary.power is not installed.

We still have the issue for me that the User Session menu cannot be used at all.

Also now when we install wingpanel indicators before the lightdm login there are two wingpanels spawned, one from lightdm user and the other one from the local user logging in which renders both wingpanels unusable.

Last but not least the locales default to english even though everything in the ENV and filesystem is set to de_DE.UTF8. (just using the shell in the LiveISO loads the correct locale)

Edit:
Maybe we can also package https://github.com/elementary/default-settings?

@Chocimier
Copy link
Member

Any progress?

@LinArcX
Copy link
Contributor Author

LinArcX commented Jul 24, 2020

@Chocimier

On real machine, I hadn't any issue with it.(for about two months)

@Anachron
Copy link
Contributor

Anachron commented Sep 8, 2020

@LinArcX can you check it on a Virtual Machine as well and see if you can confirm my issues?
I have no real hardware yet on which I could test my Pantheon image.

@ericonr ericonr added the new-package This PR adds a new package label Dec 20, 2020
@LinArcX
Copy link
Contributor Author

LinArcX commented Feb 13, 2021

@Anachron
TBH I don't have enough time to spend more on this pr.

If anybody interest, can continue my work and finish this.

@CameronNemo
Copy link
Contributor

@LinArcX feel free to close the PR if you do not intend to update the branch

@LinArcX LinArcX closed this Feb 14, 2021
@ericonr
Copy link
Member

ericonr commented Feb 15, 2021

@ahesford and I have closed the related individual PRs.

If there was some specific application out of those that you still wish to include, feel free to reopen the PR for it.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 16, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
new-package This PR adds a new package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants