wiki / desktops / kde Edit this page
Edited (10c5a07) at 2020-09-23 by Dilyn Corner
KDE
________________________________________________________________________________
KDE [0] is desktop environment which consists of the Plasma Desktop, the KDE
Frameworks, and a collection of free and open source, cross-platform programs.
The project makes integral use of the Qt framework [1] to help provide a
uniform experience for users between all of the software a user will install.
$/dilyn-corner/KISS-kde is still considered to be under heavy development. While
the desktop environment works quite well, many things have yet to be tested. If
you run into bugs, problems, or have suggestions, submit issues or pull requests
on the GitHub page!
Note that, due to the KISS Guidestones [2], the $/dilyn-corner/KISS-kde project
is entirely community maintained. It will always remain separate from the core
KISS project, including the community repository. Specifically, KDE violates the
software inclusion guidestone. dbus, logind, pam, and wayland are all required
to install and use KDE.
Index
________________________________________________________________________________
- Getting Started [0.0]
- From Scratch [1.0]
- Prerequisites [1.1]
- Installing [1.2]
- The KISS-kde tarball [2.0]
- Starting KDE [3.0]
- Console [3.1]
- Login Manager [3.2]
- Post-Install [4.0]
- kwinft [4.1]
- sddm [4.2]
- Extras [4.3]
- How You Can Help [5.0]
- References [6.0]
[0.0] Getting Started
________________________________________________________________________________
To begin using the K Desktop Environment there are two choices. The first option
is to use a prebuilt tarball similar to the KISS release tarballs and install it
analogously to how one installs KISS. The second is to build every package from
source from an existing KISS installation or from a Live CD.
[1.0] From Scratch
________________________________________________________________________________
KDE can also be installed from an existing KISS installation. While this
method takes far longer, it offers more fine-grained control on the overall
system. The use of your own C(XX)FLAGS, smaller packages (e.g. mesa), as
as well as choosing $KISS_ROOT. Overall build time is approximately 800x the
time it takes for you to build coreutils. Most of this time is spent
building qt5-webengine. A KISS package of qt5, qt5-declarative, and
qt5-webengine are available on the GitHub page [3] to offer some time saving.
You have two choices on what to install: plasma-desktop or plasma. Building
plasma-desktop will pull in the minimum required dependencies for a working
KDE environment, plus a few extra niceities such as a system settings manager,
the breeze icon theme, and fonts. Alternatively, plasma is a meta-package that
includes things like an info center, a bug/crash reporting framework, additional
plasma wallpapers, and bluedevil. It's basically KDE with all of the frills. Opt
for plasma-desktop if you only want to selectively include these. For instance
if you know you will not need bluetooth, you have no need for bluedevil.
[1.1] Prerequisites
____________________________________________________________________________
First, fetch the required repositories and add them to your $KISS_PATH. Omit
any repositories you already have, just ensure that community comes AFTER
KISS-kde/extra. These repositories may be stored anywhere; assume they are
in $HOME.
+--------------------------------------------------------------------------+
| |
| $ git clone https://github.com/kisslinux/community |
| $ git clone https://github.com/dilyn-corner/KISS-kde |
| |
| $ export KISS_PATH="$HOME/KISS-kde/extra:$KISS_PATH" |
| $ export KISS_PATH="$HOME/KISS-kde/plasma:$KISS_PATH" |
| $ export KISS_PATH="$HOME/KISS-kde/frameworks:$KISS_PATH" |
| $ export KISS_PATH="$KISS_PATH:$HOME/community/community" |
| |
+--------------------------------------------------------------------------+
Next, enure that you have the proper required packages installed. These
include eudev, dbus, coreutils, and gnugrep. The former two are both runtime
dependencies, but the latter are both build-time requirements. As such, feel
free to remove them at the end if you wish!
coreutils and gnugrep both provide files which conflict with other KISS
packages, such as busybox. To ensure we are using the correct programs when
we attempt to build plasma, we use the alternatives system! For more
information on this system, see [4].
If you want to get an idea for how long it will take to build the entire
plasma-desktop dependency tree, you can time the coreutils build and multiply
that time by ~800 to get a rough estimate of the time in minutes.
+--------------------------------------------------------------------------+
| |
| $ kiss b eudev dbus coreutils gnugrep |
| $ kiss i eudev dbus coreutils gnugrep |
| $ kiss a coreutils /usr/bin/realpath |
| $ kiss a coreutils /usr/bin/mktemp |
| $ kiss a coreutils /usr/bin/ln |
| $ kiss a gnugrep /usr/bin/grep |
| |
+--------------------------------------------------------------------------+
Note that if you currently have packages like xorg-server installed, you
might want to rebuild them to pickup on the new eudev they can take
advantage of. If you do not currently have xorg-server installed, you will
want to get it. A pure wayland KDE is both untested and unlikely to work.
+--------------------------------------------------------------------------+
| |
| $ kiss b xorg-server libinput xf86-input-libinput |
| $ kiss i xorg-server libinput xf86-input-libinput |
| |
+--------------------------------------------------------------------------+
Make sure you do not currently have qt5 installed. The build files have been
tweaked for this repository to make use of dbus and eudev. As a result,
carrying over the community version of these packages will lead to unknown
problems. If you would like to skip building them and instead install the
prebuilt packages provided on the GitHub page, install the dependencies
and do
+--------------------------------------------------------------------------+
| |
| $ ver=2020.08 |
| $ qtver=5.15.0-1 |
| $ url=https://github.com/dilyn-corner/KISS-kde/releases/download/$ver |
| |
| $ wget $url/qt5.$qtver.tar.gz \ |
| -O qt5\#$qtver.tar.gz |
| $ wget $url/qt5-declarative.$qtver.tar.gz \ |
| -O qt5-declarative\#$qtver.tar.gz |
| $ wget $url/qt5-webengine.$qtver.tar.gz \ |
| -O qt5-webengine\#$qtver.tar.gz |
| |
| $ kiss i qt5 |
| $ kiss i qt5-declarative |
| $ kiss i qt5-webengine |
| |
+--------------------------------------------------------------------------+
[1.2] Installing
____________________________________________________________________________
Now that all of the build requirements are taken care of, we can install
the desktop environment. Make your choice between plasma-desktop or plasma,
and build them by
+--------------------------------------------------------------------------+
| |
| $ kiss b plasma-desktop && kiss i plasma-desktop |
| |
+--------------------------------------------------------------------------+
Optionally, enable and start the eudev and dbus services:
+--------------------------------------------------------------------------+
| |
| $ ln -s /etc/sv/dbus /var/service |
| $ ln -s /etc/sv/udevd /var/service |
| |
| $ sv up dbus |
| $ sv up udevd |
| |
+--------------------------------------------------------------------------+
No services are required to be running in order to start a plasma session.
However, starting the eudev service provides certain useful features such as
automatic device detection and hotplugging.
[2.0] The KISS-kde tarball
________________________________________________________________________________
Similarly to KISS itself, a tarball containing a fully-functional KISS with
KDE setup is available from the GitHub repository [3]. This archive can be
chrooted into or directly unpacked to '/'. Note that it is 500+MB in size.
It is built from a kiss-chroot archive with identical generic C(XX)FLAGS.
NOTE: In general, it is a security risk to install prebuilt packages. This
archive is provided as a courtesy by $/dilyn-corner. Always verify the
authenticity of packages, and the identities of packagers!
The KISS-kde archive is a fully installed version of plasma-desktop. See [1.0]
for the distinction between plasma-desktop and plasma.
To download the latest release,
+------------------------------------------------------------------------------+
| |
| $ ver=2020.08 |
| $ url=https://github.com/dilyn-corner/KISS-kde/releases/download/$ver |
| $ wget $url/kiss-kde-$ver.tar.xz |
| |
+------------------------------------------------------------------------------+
It is strongly recommended to verify the checksums to avoid problems like
using a partially downloaded archive.
+------------------------------------------------------------------------------+
| |
| $ wget $url/kiss-kde-$ver.tar.xz.sha256 |
| $ sha256sum -c < kiss-kde-$ver.tar.xz.sha256 |
| |
+------------------------------------------------------------------------------+
After setting up your disks, mount your desired root partition to '/mnt' and
to install the latest release,
+------------------------------------------------------------------------------+
| |
| $ tar xf kiss-kde-$ver.tar.xz -C /mnt --strip-components 1 |
| |
+------------------------------------------------------------------------------+
and enter the chroot environment,
+------------------------------------------------------------------------------+
| |
| $ ./mnt/bin/kiss-chroot /mnt |
| |
+------------------------------------------------------------------------------+
The only remaining work to be done is creating a kernel, choosing a
bootloader, and adding users. For help with kernels, see @/kernel. For help
with bootloaders, see @/boot. The archive already includes dosfstools and
e2fsprogs.
Refer to the official installation guide [5] for small tweaks you may wish to make,
such as user management or changing your hostname.
NOTE: Please ensure you have cgroup support enabled in your kernel [6]!
It is recommended that you change the root password; the default is "toor".
If you would like to start a wayland session instead of an X session, swap which
line is (un)commented in /root/.xinitrc:
+------------------------------------------------------------------------------+
| |
| $ vi .xinitrc |
| $ startx |
| |
+------------------------------------------------------------------------------+
Finally,
+------------------------------------------------------------------------------+
| |
| $ exit |
| $ reboot |
| $ startx |
| |
+------------------------------------------------------------------------------+
You should now be greeted with a fresh Plasma Desktop!
[3.0] Starting KDE
________________________________________________________________________________
You have two choices on how to launch KDE. Either you can start it directly from
the console, or you can make use of a login manager.
[3.1] Console
____________________________________________________________________________
Launching a KDE session directly from the console is very straightforward.
If you would like to use wayland instead of X, replace x11 by wayland in the
below command.
Simply add a line to your xinitrc file:
+--------------------------------------------------------------------------+
| |
| $ launch="exec dbus-launch --exit-with-session startplasma-x11" |
| $ echo "$launch" >> "$HOME/.xinitrc" |
| |
+--------------------------------------------------------------------------+
[3.2] Login Manager
____________________________________________________________________________
The KISS-kde repository also includes sddm [7], the Simple Desktop Display
Manager, as an option for a login manager. Enabling it is very easy and it
comes preconfigured with the breeze theme. First, build and install sddm.
+--------------------------------------------------------------------------+
| |
| $ kiss b sddm && kiss i sddm |
| |
+--------------------------------------------------------------------------+
Then, enable the relevant services. polkit and elogind should already be
installed if you followed the prior instructions. If not, install them in
the usual way.
NOTE: by default, it may not be possible for root to login via sddm. Best
practices would dictate that you login as a unprivileged user.
+--------------------------------------------------------------------------+
| |
| $ ln -s /etc/sv/polkitd /var/service |
| $ ln -s /etc/sv/elogind /var/service |
| $ ln -s /etc/sv/sddm /var/service |
| |
| $ sv up polkitd |
| $ sv up elogind |
| $ sv up sddm |
| |
+--------------------------------------------------------------------------+
If everything went well, sddm should immediately launch after you start the
sddm service.
[4.0] Post-Install
________________________________________________________________________________
Everything you do from here on is to customize your new Plasma Desktop to your
own needs! No further setup or configuration is required. However, there are a
few things available to you that you can change, if you so choose.
[4.1] kwinft
____________________________________________________________________________
kwinft [8] is a composited window manager for X11 and Wayland systems. Most
of the differences between kwinft and kwin are in the underlying code;
kwinft is designed to have better coding practices and be well-organized.
However, any features that appear in kwinft can be expected to eventually
show up in kwin. So if you prefer a more bleeding edge, potentially better
window manager for KDE, kwinft is an option. You can either swap to kwinft
from an existing KDE install or start immediately with using it. All you are
required to do is uncomment the kwinft lines in the dependencies list of
plasma-{desktop,workspace}, and comment out kwin in the same packages. Then,
+--------------------------------------------------------------------------+
| |
| $ pkill X |
| |
| $ KISS_FORCE=1 kiss r kwin kwayland-server |
| |
| $ kiss b kwinft && kiss i kwinft |
| |
| $ kiss b plasma-workspace && kiss i plasma-workspace |
| $ kiss b plasma-desktop && kiss i plasma-desktop |
| |
| $ startx |
| |
+--------------------------------------------------------------------------+
[4.2] sddm
____________________________________________________________________________
sddm can be configured quite heavily. Configuration is read from
/etc/sddm.conf. If it does not exist, you can generate it:
+--------------------------------------------------------------------------+
| |
| $ sddm --example-config >> /etc/sddm.conf |
| |
+--------------------------------------------------------------------------+
You can manually edit this file to allow for autologins, changing themes,
changing the user icons, or even changing the range of UIDs that can login
through sddm.
Alternatively, configuration can be done graphically during a plasma
session. Simply install sddm-kcm and a sddm configuration section in
systemsettings should become available.
+--------------------------------------------------------------------------+
| |
| $ kiss b sddm-kcm && kiss i sddm-kcm |
| |
+--------------------------------------------------------------------------+
[4.3] Extras
____________________________________________________________________________
Many things are included in KISS-kde/extra. Most exist as supplements to
items in the framework or plasma, but many are for KDE Applications.
However, there are a few that might be of interest to most users. This
includes kvantum (a robust theme engine) [9], sddm (a login manager), and
latte-dock (a dock app) [10].
Separate from these are the KDE Applications, such as krita or dolphin.
These are located in KISS-kde/kdeapps. Add the repository to your $KISS_PATH
in order to install them! Some useful (and working) applications include
dolphin and konsole. Over time, the list of working KDE Applications should
grow!
[5.0] How You Can Help
________________________________________________________________________________
The KISS-kde project is always looking for more contributors. Whether it is
fixing build errors, submitting patches, or adding applications, every
contribution is welcome!
For a current list of project milestones, check out the first section of the
README at $/dilyn-corner/KISS-kde.
[6.0] References
________________________________________________________________________________
[0] https://kde.org
[1] https://qt.io
[2] https://k1ss.org/guidestones
[3] https://github.com/dilyn-corner/KISS-kde/releases
[4] https://k1ss.org/package-manager#3.2
[5] https://k1ss.org/install
[6] http://linuxfromscratch.org/blfs/view/svn/general/elogind.html
[7] https://wiki.archlinux.org/index.php/SDDM
[8] https://gitlab.com/kwinft/kwinft
[9] https://github.com/tsujan/Kvantum
[10] https://github.com/KDE/latte-dock
________________________________________________________________________________
Dylan Araps (C) 2019-2020
Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.