Updated: November 27, 2017
Today, we shall pimp. Pimp this distro into submission. Make it good. My review of the situation reveals many glaring problems - hardware issues all over the place, problems with media playback, software conflicts, system hangs and freezes, and many other annoyances.
In this guide, I would like to show you a long series of tricks, workarounds and changes you will need to exact upon your openSUSE Leap 42.3 box so that it appears modern, fully cooperates with your hardware, and offers you all the delights of day-to-day stuff. Let us begin the ordeal.
Of course, this is not the first time I've written a guide on how to make SUSE more accessible. You should read my essential pimping article to cover all the basics - new repos, media codecs, media codec conflicts, extra software, and more. This is the starting point, and then we will elaborate on that.
In general, the necessary media codecs include, minimal set (music):
zypper install gstreamer-fluendo-mp3 flash-player
Full set of goodies:
zypper install ffmpeg lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav libdvdcss2
An additional note on potential conflicts while installing new software, specifically plugins for your music and videos. There could be several repos offering the same content, with different versions.
The solution is to "affix" certain software to a particular repository.
zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_42.3/
Once upon a time, accessing Windows drives was easy. You just did it. But security zealots, following a big fiasco on servers, introduced mandatory user authentication into the Samba protocol, because they were worried about the security of their shi ... and since, Samba is not fun.
In particular, VLC for openSUSE, from third party repos, may come without the SMB module compiled. In general, this will prevent you from playing remote files, but with the necessary credentials in the SMB module, you can work around this. Except there is no module available.
One workaround is to try a different repo - there are several options available, and like the media codecs, you will need to make sure to pin VLC to the correct source. Another is to do the following:
Grab the VLC binary (/usr/bin/vlc) from another distro where you know the SMB access has been correctly configured and works, like for instance my Kubuntu 17.04 Zesty. Save it under /usr/bin but with a different name, e.g. vlc-kubuntu. You can check that both these programs use the same shared libraries with ldd. Indeed, they should work on pretty much any recent distro. Then, launch the 'borrowed' version. Open the preferences, navigate to the access section, configure the SMB module with the right username, password and domain. Exit VLC. Start the 'bad' version, and it should now give you the option to play remote files without any additional authentication.
If you wish to install new icons, there's a chance the system utility will be broken, and will not set them up correctly. Even if you manually install icons, e.g. copy them over from another distribution and into your home directory, the icon sets may not display in the system settings. For 100% compatibility, you must copy them under /usr/share/icons. Then, it will work.
OpenSUSE 42.3 has three different screens - the login one, which normally features a layout similar to your desktop, and it will not change if you alter the wallpaper, the loading splash screen that will be presented while you wait for the Plasma desktop to start, and the lock screen that will show in certain situations, like waking from sleep.
These three screens usually are different, so if you want to make them common, more professional, or just speed up your desktop loading then you need to make some small modifications. Let's start with the login screen.
You will need to edit the SDDM module through system settings. You can choose whichever style you want and then replace the background image. In my case, I opted for the same image as the desktop wallpaper.
Splash screen change to none will also make your logins ever so slightly faster.
Lastly, we edit the screen lock. Make it look like the desktop for best effect.
Plasma comes with a sophisticated and granular power management system. You can customize how the desktop responds to your actions, including the power button. Very innocent, very helpful. By default, it will offer many different choices, but you can set the action to whatever you want, like for example, suspend.
If you encounter problems launching Steam, you may see this:
Assert( Assertion Failed: Could not open connection to X ):../steamexe/updateui_xwin.cpp:339
Installing breakpad exception handler for appid(steam)/version(1.0)
sh: /home/roger/.local/share/Steam/steam_msg.sh: No such file or directory
crash_20170824135611_3.dmp: Uploading dump (out-of-process)
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[2017-08-24 13:56:11] Startup - updater built Nov 23 2016 01:05:42
../steamexe/updateui_xwin.cpp (339) : Assertion Failed: Could not open connection to X
../steamexe/main.cpp (525) : Assertion Failed: failed to initialize update status ui, or create initial window
/home/roger/.local/share/Steam/steam.sh: line 444: no match: ssfn*
crash_20170824135611_3.dmp: Finished uploading minidump (out-of-process): success = yes
crash_20170824135611_3.dmp: response: CrashID=bp-6b668caf-df34-4f2e-9fb6-a06c22170824
crash_20170824135611_3.dmp: file ''/tmp/dumps/crash_20170824135611_3.dmp'', upload yes: ''CrashID=bp-6b668caf-df34-4f2e-9fb6-a06c22170824''
To work around the problem, execute the following bit of magic:
Once Steam self-updates, it should be fine.
OpenSUSE may complain about the installation of these programs due to signature verification failures. You will see this both via YaST and on the command line. You can ignore the errors to continue with the software setup.
Error: INVALID:skypeforlinux-22.214.171.124-1.x86_64 (file-28fb849d): Signature verification failed [4-Signatures public key is not available]
Warning, this is a fairly radical change, and you should only do this if you fully understand what you're doing. In general, OpenSUSE 42.3 ships with kernel 4.4, which presents a big problem, due to various problems in the network stack with the Realtek Wireless card, and the crippling GPU hangs during normal desktop usage with a somewhat higher use of the graphics stack, caused by bugs in the Intel graphics driver, which requires a new kernel, at least version 4.9. So, in between doing nothing and actually trying to use openSUSE, this is a possible workaround for hardware-related bugs and issues.
You can enable the openSUSE Kernel HEAD repository, which offers latest kernel builds. In my case, this was kernel 4.13, at the time this article was written. The steps required to complete this operation include adding the repo and then upgrading the kernel. Of course, you need to reboot to get the desired changes.
Now, for you, this may do nothing, make things worse - or possibly solve some fairly big problems. For me, this resolved the network and GPU issues, improved performance, and extended battery life by about 50%. So there.
zypper addrepo -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo
Adding repository 'kernel-repo' .......................................[done]
Repository 'kernel-repo' successfully added
zypper dist-upgrade -r kernel-repo
The following NEW package is going to be installed:
The following 2 packages are going to be upgraded:
The following 2 packages are going to change vendor:
kernel-firmware openSUSE -> obs://build.opensuse.org/Kernel
ucode-amd openSUSE -> obs://build.opensuse.org/Kernel
2 packages to upgrade, 1 new, 2 to change vendor.
Overall download size: 106.8 MiB. Already cached: 0 B. After the operation, additional 338.5 MiB will be used.
As you recall, Bluetooth cannot be turned on, even with the kernel upgrade. This is weird and pointless. The lsmod utility shows that the right drivers are loaded into memory, so it would appear to be a userspace problem. We need to use the command line to troubleshoot.
Run the Bluedevil utility from the command line. If you try as root, you will probably have X connectivity errors, which you can try to solve by exporting your display and using the xvfb-run tool, but that's not the main point now.
The thing is, if you try to "fix" the Bluetooth, you will get the following error:
Icon theme "elementary" not found.
Icon theme "ubuntu-mono-dark" not found.
Icon theme "Mint-X" not found.
bluedevil.wizard: Manager initialized
bluedevil.wizard: Initialize Discover Page
BluezQt: Cannot open /dev/rfkill for writing!
BluezQt: PendingCall Error: "Blocked through rfkill"
The Bluetooth applet does not have access to a device, hence it cannot switch from blocked to unblocked mode. You can chmod 666 the device, which some may consider a security issue. Alternatively, you can use the rfkill tool to control the radios.
zypper install rfkill
rfkill unblock bluetooth
Now rerun the wizard, and it should be fine.
Ah, happy times. We talked about this in a separate article. You will need to add some extra libraries in order to get the required, smooth anti-aliasing settings. Please read.
There you go. This is the rather exhaustive, sad list of things you will most likely need to do in order to be able to use openSUSE Leap 42.3 as intended. Or just on a level that is actually usable. Hardware problems, crashes, hangs, problems with media, remote access, even basic desktop customization. Not a happy list.
I like this guide, because it should help you enjoy yourselves, should you or must you choose openSUSE for your Linux desktop, for whatever reason. The best alternative is to actually use a different system, but then, if not, here's a comprehensive set of tweaks and changes that should hopefully help you get a stable, efficient, practical system. Take care and happy Linuxing. That's all folks.