|/
|\ISS

News
Blog

Wiki

Install KISS
FAQ

Package System
Package Manager
Software

Guidestones

Testimonials
Screenshots
Team

Contact
Donate

GitHub
Git (mirror)


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.