Apper - Make it wait a few minutes?

I have Leap 15.0 on a laptop, and now also an Intel NUC, both using WiFi most of the time, and Network Manager. When it first boots up and the Plasma desktop starts, Apper complains because there is no Internet access. Is there a way to make Apper wait a few minutes, to give enough time for the WiFi to connect? (I connect manually on the laptop, automatically on the NUC). I don’t mind Apper, it works fine, once there’s a connection, so I don’t want to remove it.

Actually, the update applet is not “apper”.

In any case, the easy solution is to make sure that you are connected before you login. (Well, another easy solution is to disable the update applet in system tray settings, which is my preference.)

Right click on the NetworkManager in the tray, and select “Edit connections”. Edit your WiFi connection. Go to the security tab. There should be an option (I seem to remember that its an icon that looks like a diskette). There, you can set where to save the password. Set it to save the password unencrypted in a file. This is not as dangerous as it might sound.

Then go back to the general tab (not sure what it is called, and not running NetworkManager at present so I can’t check), but it is the leftmost tab when editing the connection. There should be an option to share this connection with all users. Select that option. It will require the root password when you save the changes.

With those two changes, WiFi should now connect before you login.

Configure NM to allow all users. Don’t have NM installed at the moment so I forget the exact location and wording.

This will start NM earlier.

The problem with the Intel NUC is that the WiFi signal is weak in the room it’s in, so it takes a long time to connect, after a few pop-up “complaints”. And allowing all users requires my root password every time. I guess I’d rather just disable the update applet. How is that done?

For the laptop, I don’t have it set to automatically connect, but I would just disable the update applet on that, too. That seems like the best solution, I can manually update in Yast.

No, it doesn’t.

Well, okay, it does if the network key is stored in kwallet. But if you switch it to be stored in a file, unencrypted (as I described in my earlier reply), then it does not require the root password. The network key is then stored by NetworkManager in a file readable only by root. And it connects before anybody is logged in.

Yes, if connection is slow, you could delay your login to allow more time.

I guess I’d rather just disable the update applet. How is that done?

Right click on the tray and select “System Tray Settings”. Then uncheck the box for “Software Updates”.

I found how to get rid of the update applet, finally. I right clicked on the triangle for “show hidden icons”, and found the “System Tray Settings”. Clicked on that, and unchecked “Software Updates”. It took me a while to figure that out. So that fixed that problem. As for the multiple notifications while it tried to connect to WiFi, I set Network Manager to not automatically connect. I now connect manually, everything is good now!

Thanks for all the help!

You could check the contents of the package “plasma5-pk-updates” – I also have the same issue as that being experienced by the thread’s originator and, usually work around the problem by booting the Laptop first with “battery-only”, then login – to setup the WLAN connection – KWallet and so on … – and then plug in the power cable to kick off the Plasma PackageKit updates.

  • My real issue is, that it checks for updates every time I log in despite, having the thing setup for “check for updates daily” …
  • I notice that, there are update settings for “Also check for updates via wireless connections” and “Also check for updates if on battery”.

I am facing almost the same Situation as the thread opener and i would also like to be able to specify how many seconds/minutes after user logon my System starts to check for updates.
Sure, its a workaround to make the network connection available earlier but there are still situations where i’d like to have the update check starting delayed
(or even checking for a usable internet connection before trying to connect, but that would raise the question on how to distinguish an offline repository and a unusable network connection)

So my question still is: Is there a way to make kpackagekit(?) start delayed after user login?

It’s the desktop applet, rather than “packagekitd” that causes your problem.

No, I don’t know of a way of telling it to delay startup.

Just fixed this on my Leap 15 install:

  • Go to Systemsettings - Connections, tick the connection concerned
  • Check Enable for all users, this will ask for the root password when applied
  • Go to Wifi Security tab, select Store for all users, unencrypted
  • Click Apply, enter root password
  • On next reboot the wifi connection will start before the updater applet will attempt to start, and will NOT ask for the root password.

This is a possible solution for anyone that wants to delay a system update on boot that uses PackageKit, not just the specific scenario described by the @OP in this thread. May be useful for anyone who simply doesn’t want the system update to run immediately on boot, but also doesn’t mind updating after a delay. Haven’t looked into how YaST system update works, so this PackageKit change may not affect that.

I don’t run any systems that automatically update on boot (I run Desktops that don’t do that),
So I can’t test on my own systems…

Need someone to test the following script which inserts a 5 minute wait any time PackageKit is invoked.

Note that this code is <very> Alpha (untested) with a very high possibility of unintended consequences,
Primarily that daily updates will be affected as well although i doubt anyone would really care about that…

Slow booting systems may need to increase the 300 seconds sleep.

Directions:
Paste the following into an elevated console or create an executable script.
Execute.

Since this code affects only packagekit, there should not be any danger affecting the general operation of the system.
I don’t know if packagekit.service is supposed to be enabled on some systems, it’s disabled on my systems.

cat >> /etc/systemd/system/packagekit.service << EOF

[Unit]Description=PackageKit Daemon
# PK doesn't know how to do anything on ostree-managed systems;
# currently the design is to have dedicated daemons like
# eos-updater and rpm-ostree, and gnome-software talks to those.
ConditionPathExists=!/run/ostree-booted


[Service]
Type=dbus
BusName=org.freedesktop.PackageKit
User=root
ExecStart=/bin/sleep 300 && /usr/lib/packagekitd
EOF

If you want to undo, simply run the following command in an elevated console

rm /etc/systemd/system/packagekit.service

YMMV,
TSU

@tsu2:
The default unit configuration file (not the modified one you’ve placed in ‘/etc/systemd/system/’) for systemd PackageKit service located in ‘/usr/lib/systemd/system/’ doesn’t have an “[Install]” section and, therefore, it’s “static”:

  • The default PackageKit systemd service can neither be ‘enabled’ nor ‘disabled’: it’s started if and only if another unit needs it «via the D-Bus
    » …

Thx,
Installing the one I’ve provided follows standard and recommended methods for a custom Unit file to over-ride the default, so no rules are broken.

If it works, great.
And if it doesn’t then it can be removed as described which is how systemd is designed.

TSU