[0.0] INSTALL KISS
________________________________________________________________________________
Welcome to the installation guide for KISS Linux.
The installation utilizes a tarball which is unpacked to '/'. This same tarball
is also directly usable as a chroot from any Linux distribution.
A live-CD from a another distribution is required to bootstrap KISS. It does not
matter which distribution is used so long as it includes 'tar' and other basic
utilities.
From this point on, the guide assumes you have booted a live-CD, are logged
in as root, have your disks, partitions and filesystems setup and have an
internet connection.
See: @/wiki/storage/disks for information on setting up disks
[1.0] The Process
________________________________________________________________________________
- Install KISS [2.0]
- Download the latest release [2.1]
- Verify the checksums (recommended) [2.2]
- Verify the signature (recommended) [2.3]
- Unpack the tarball [2.4]
- Enter the chroot [2.5]
- Setup repositories [3.0]
- Setting KISS_PATH [3.1]
- Official repositories [3.2]
- Community [3.3]
- Universe [3.4]
- Enable repository signing [4.0]
- Build and install gnupg1 [4.1]
- Import My Key [4.2]
- Enable Signature Verification [4.3]
- Rebuild KISS [5.0]
- Modify Compiler Options (optional) [5.1]
- Update All Base Packages [5.2]
- Rebuild All Packages [5.3]
- Userspace tools [6.0]
- Filesystem utilities [6.1]
- Device management [6.2]
- WiFi [6.3]
- Dynamic IP addressing [6.4]
- The hostname [7.0]
- The kernel [8.0]
- Install required packages [8.1]
- Download the kernel sources [8.2]
- Download firmware blobs [8.3]
- Configure the kernel [8.4]
- Build the kernel [8.5]
- Install the kernel [8.6]
- The bootloader [9.0]
- Recommended [9.1]
- Build and install grub [9.2]
- Setup grub [9.3]
- Install init scripts [10.0]
- Set a root password [11.0]
- Add a normal user [12.0]
- Install Xorg [13.0]
- Add your user to the relevant groups [13.1]
- Further steps [14.0]
[2.0] Install KISS
________________________________________________________________________________
NOTE: Disks should be setup and fully mounted to /mnt.
Start by declaring a variable.
+------------------------------------------------------------------------------+
| |
| $ ver=2021.7-1 |
| $ url=https://github.com/kiss-community/repo/releases/download/$ver |
| |
+------------------------------------------------------------------------------+
[2.1] Download the latest release
____________________________________________________________________________
+--------------------------------------------------------------------------+
| |
| $ wget "$url/kiss-chroot-$ver.tar.xz" |
| |
+--------------------------------------------------------------------------+
[2.2] Verify the checksums (recommended)
____________________________________________________________________________
This step verifies that the release matches the checksums generated upon
its creation and also ensures that the download completed successfully.
+--------------------------------------------------------------------------+
| |
| $ wget "$url/kiss-chroot-$ver.tar.xz.sha256" |
| $ sha256sum -c < "kiss-chroot-$ver.tar.xz.sha256" |
| |
+--------------------------------------------------------------------------+
[2.3] Verify the signature (recommended)
____________________________________________________________________________
This step verifies that the release was signed by its maintainer, Dilyn
Corner. If the live OS of your choice does not include GPG, this step can
also be done on another machine (with the same tarball).
+--------------------------------------------------------------------------+
| Download the armored ASCII file. |
+--------------------------------------------------------------------------+
| |
| $ wget "$url/kiss-chroot-$ver.tar.xz.asc" |
| |
+--------------------------------------------------------------------------+
| Import my public key (if this fails, try another keyserver). |
+--------------------------------------------------------------------------+
| |
| $ gpg --keyserver keys.gnupg.net --recv-key DA4AB731D4C3F13D |
| |
+--------------------------------------------------------------------------+
| Verify the signature. |
+--------------------------------------------------------------------------+
| |
| $ gpg --verify "kiss-chroot-$ver.tar.xz.asc" |
| |
+--------------------------------------------------------------------------+
[2.4] Unpack the tarball
____________________________________________________________________________
This step effectively installs KISS to /mnt. The tarball contains a full
system minus the bootloader, kernel and optional utilities.
+--------------------------------------------------------------------------+
| |
| $ cd /mnt |
| $ tar xvf /path/to/kiss-chroot-$ver.tar.xz |
| |
+--------------------------------------------------------------------------+
[2.5] Enter the chroot
____________________________________________________________________________
This is a simple script to chroot into /mnt and set up the environment for
the rest of the installation. The script handles mounting pseudo filesystems
(/proc, /dev, /sys), enabling network inside the chroot, etc.
On execution of this step you will be running KISS! The next steps involve
the kernel, software compilation and system setup.
+--------------------------------------------------------------------------+
| |
| $ /mnt/bin/kiss-chroot /mnt |
| |
+--------------------------------------------------------------------------+
[3.0] Setup repositories
________________________________________________________________________________
The repository system is quite different to that of other distributions. The
system is controlled via an environment variable called KISS_PATH. This variable
is analogous to PATH, a colon separated list of absolute paths.
A repository is merely a directory (repo) containing directories (packages) and
can be located anywhere on the file-system. The full path to the directory is
the value to KISS_PATH.
The chroot/installation tarball does not come with any repositories by default,
nor does the package manager expect or /assume/ that any exist in a given
location. This is entirely up to the user.
+------------------------------------------------------------------------------+
| |
| TIP: Use the '--depth=1' flag when cloning repositories to avoid fetching |
| git history, resulting in faster clones. |
| |
+------------------------------------------------------------------------------+
[3.1] Setting KISS_PATH
____________________________________________________________________________
The variable can be set system-wide, per-user, per-session, per-command,
and even programmatically. This guide will cover setting it for the current
user with an example repository layout.
Take this layout:
+--------------------------------------------------------------------------+
| |
| ~/repos/ |
| | |
| +- repo/ |
| | - .git/ |
| | - core/ |
| | - extra/ |
| | - xorg/ |
| | |
| +- community/ |
| | - .git/ |
| | - community/ |
| | |
| +- personal/ |
| | - games/ |
| | - web/ |
| | |
| |
+--------------------------------------------------------------------------+
- Repositories are stored in ~/repos/ which is a per-user configuration.
- There are two git repositories containing four KISS repositories.
- There is a third repository called personal, not tracked by git.
- The personal repository contains two KISS repositories.
This user's KISS_PATH could look like this:
+--------------------------------------------------------------------------+
| |
| ~/.profile |
| |
| 1 export KISS_PATH='' |
| 2 KISS_PATH=$KISS_PATH:$HOME/repos/personal/games |
| 3 KISS_PATH=$KISS_PATH:$HOME/repos/personal/web |
| 4 KISS_PATH=$KISS_PATH:$HOME/repos/repo/core |
| 5 KISS_PATH=$KISS_PATH:$HOME/repos/repo/extra |
| 6 KISS_PATH=$KISS_PATH:$HOME/repos/repo/xorg |
| 7 KISS_PATH=$KISS_PATH:$HOME/repos/community/community |
| |
+--------------------------------------------------------------------------+
- All repositories are enabled.
- This is a per-user configuration using ~/.profile
- The package manager will search this list in the order it is defined.
+--------------------------------------------------------------------------+
| |
| TIP: Run '. ~/.profile' for changes to immediately take effect. |
| TIP: Run 'echo "$KISS_PATH"' to check if properly set. |
| |
+--------------------------------------------------------------------------+
[3.2] Official repositories
____________________________________________________________________________
The official repositories contain everything from the base system to a
working web browser (Firefox) and media player (mpv). This includes Xorg,
rust, nodejs and a lot of other useful software.
Clone the repository to the directory of your choosing.
+--------------------------------------------------------------------------+
| |
| $ git clone https://github.com/kiss-community/repo |
| |
+--------------------------------------------------------------------------+
This will be cloned to a directory called 'repo'. This directory contains
multiple KISS repositories (core, extra, testing and xorg). Core and Extra
must be enabled as this guide requires their use. Xorg is optional.
[3.3] Community
____________________________________________________________________________
The community repository contains packages submitted and maintained by users
of the distribution. It is twice the size of the official repositories and
contains a lot of useful software.
Clone the repository to the directory of your choosing.
+--------------------------------------------------------------------------+
| |
| $ git clone https://github.com/kiss-community/community |
| |
+--------------------------------------------------------------------------+
This will be cloned to a directory called 'community'. This directory
contains a single KISS repository bearing the same name.
If you don't wish to use GitHub, you can alternatively clone the mirrors:
+--------------------------------------------------------------------------+
| Mirrors |
+--------------------------------------------------------------------------+
| |
| $ git clone git://git.k1sslinux.org/repo |
| $ git clone git://git.k1sslinux.org/community |
| |
+--------------------------------------------------------------------------+
[3.4] Universe
____________________________________________________________________________
There are many more repositories in existence, each providing a unique set
of software. These are all independently created and managed by users. This
has been called the "KISS Universe".
A list of interesting projects, forks, and spins can be found at
$/kiss-community/awesome-kiss
If you contribute to the KISS Universe by making a repository on GitHub, you
can tag your repo with kiss-repo: https://github.com/topics/kiss-repo
NOTE: It may be desirable to save this step for post-installation.
Repositories should now be setup and in functioning order. Run 'kiss search \*'
(notice the escaping) to print all repository packages in the search order of
the package manager.
[4.0] Enable repository signing
________________________________________________________________________________
This step is optional and can also be done after the installation. Repository
signing ensures that all updates have been signed by (Dilyn Corner) and further
prevents any unsigned updates from reaching your system.
+------------------------------------------------------------------------------+
| TIP! |
+------------------------------------------------------------------------------+
| |
| The install guide (and all documentation) is available via 'kiss help'. |
| |
| $ kiss help install |
| |
+------------------------------------------------------------------------------+
[4.1] Build and install gnupg1
____________________________________________________________________________
Welcome to the KISS package manager! These two commands are how individual
packages are built and installed on a KISS system.
+--------------------------------------------------------------------------+
| |
| $ kiss build gnupg1 |
| $ kiss install gnupg1 |
| |
+--------------------------------------------------------------------------+
[4.2] Import my (Dilyn Corner's) key
____________________________________________________________________________
If the GNU keyserver fails on your network, try an alternative mirror.
+--------------------------------------------------------------------------+
| Import my public key. |
+--------------------------------------------------------------------------+
| |
| $ gpg --keyserver keys.gnupg.net --recv-key DA4AB731D4C3F13D |
| |
+--------------------------------------------------------------------------+
| Trust my public key. |
+--------------------------------------------------------------------------+
| |
| $ echo trusted-key DA4AB731D4C3F13D >>/root/.gnupg/gpg.conf |
| |
+--------------------------------------------------------------------------+
[4.3] Enable signature verification
____________________________________________________________________________
Repository signature verification uses a feature built into git itself
(merge.verifySignatures)! This can be disabled at any time using the
inverse of the below git command.
The same steps can also be followed with 3rd-party repositories if the
owner chooses to sign their commits.
+--------------------------------------------------------------------------+
| |
| $ cd /var/db/kiss/repo |
| $ git config merge.verifySignatures true |
| |
+--------------------------------------------------------------------------+
[5.0] Rebuild KISS
________________________________________________________________________________
This step is entirely optional and can also be done post-installation.
[5.1] Modify compiler options (optional)
____________________________________________________________________________
These options have been tested and work with every package in the
repositories. If you'd like to play it safe, use -O2 or -Os instead of -O3.
If your system has a low amount of memory, omit -pipe. This option speeds
up compilation but may use more memory.
If you intend to transfer packages between machines, omit -march=native.
This option tells the compiler to use optimizations unique to your
processor's architecture.
The `-jX` option should match the number of CPU threads available. You can
omit this, however builds will then be limited to a single thread.
+--------------------------------------------------------------------------+
| CFLAGS/CXXFLAGS |
+--------------------------------------------------------------------------+
| |
| # NOTE: The 'O' in '-O3' is the letter O and NOT 0 (ZERO). |
| $ export CFLAGS="-O3 -pipe -march=native" |
| $ export CXXFLAGS="$CFLAGS" |
| |
+--------------------------------------------------------------------------+
| MAKEFLAGS |
+--------------------------------------------------------------------------+
| |
| $ export MAKEFLAGS="-j$(nproc)" |
| |
+--------------------------------------------------------------------------+
[5.2] Update all base packages
____________________________________________________________________________
This is how updates are performed on a KISS system. This command uses git
to pull down changes from all enabled repositories and will then optionally
handle the build/install process.
+--------------------------------------------------------------------------+
| |
| $ kiss update |
| |
+--------------------------------------------------------------------------+
[5.3] Rebuild all packages
____________________________________________________________________________
We simply cd to the installed packages database and use a glob to grab the
name of every installed package. This glob is then passed to the package
manager as a list of packages to build.
+--------------------------------------------------------------------------+
| |
| $ cd /var/db/kiss/installed && kiss build * |
| |
+--------------------------------------------------------------------------+
[6.0] Userspace tools
________________________________________________________________________________
Each kiss action (build, install, etc) has a shorthand alias. From now on,
'kiss b' and 'kiss i' will be used in place of 'kiss build' and 'kiss install'.
[6.1] Filesystem utilities
____________________________________________________________________________
NOTE: Open an issue for additional filesystem support.
+--------------------------------------------------------------------------+
| EXT2, EXT3, EXT4 - required for EXT* filesystems |
+--------------------------------------------------------------------------+
| |
| $ kiss b e2fsprogs |
| $ kiss i e2fsprogs |
| |
+--------------------------------------------------------------------------+
| FAT, VFAT - required for FAT filesystems, UEFI |
+--------------------------------------------------------------------------+
| |
| $ kiss b dosfstools |
| $ kiss i dosfstools |
| |
+--------------------------------------------------------------------------+
| XFS - required for XFS filesystems |
+--------------------------------------------------------------------------+
| |
| $ kiss b xfsprogs |
| $ kiss i xfsprogs |
| |
+--------------------------------------------------------------------------+
[6.2] Device management
____________________________________________________________________________
NOTE: If you choose to not install eudev, mdev will automatically be
used in its place during init. libudev-zero is recommended as an
alternative to libudev. See: @/wiki/dev/replacing-udev
+--------------------------------------------------------------------------+
| Needed for blkid support in eudev (recommended but not required). |
+--------------------------------------------------------------------------+
| |
| $ kiss b util-linux |
| $ kiss i util-linux |
| |
+--------------------------------------------------------------------------+
| The device manager. |
+--------------------------------------------------------------------------+
| |
| $ kiss b eudev |
| $ kiss i eudev |
| |
+--------------------------------------------------------------------------+
[6.3] WiFi
____________________________________________________________________________
+--------------------------------------------------------------------------+
| |
| $ kiss b wpa_supplicant |
| $ kiss i wpa_supplicant |
| |
+--------------------------------------------------------------------------+
[6.4] Dynamic IP addressing
____________________________________________________________________________
+--------------------------------------------------------------------------+
| |
| $ kiss b dhcpcd |
| $ kiss i dhcpcd |
| |
+--------------------------------------------------------------------------+
[7.0] The hostname
________________________________________________________________________________
+------------------------------------------------------------------------------+
| Create the /etc/hostname file |
+------------------------------------------------------------------------------+
| |
| $ echo HOSTNAME > /etc/hostname |
| |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Update the /etc/hosts file |
+------------------------------------------------------------------------------+
| |
| 127.0.0.1 HOSTNAME.localdomain HOSTNAME |
| ::1 HOSTNAME.localdomain HOSTNAME ip6-localhost |
| |
+------------------------------------------------------------------------------+
| |
| NOTE: This step must be done every time the hostname is changed. |
| |
+------------------------------------------------------------------------------+
[8.0] The kernel
________________________________________________________________________________
This step involves configuring and building your own Linux kernel. If you have
not done this before, below are a few guides to get you started.
- https://wiki.gentoo.org/wiki/Kernel/Gentoo_Kernel_Configuration_Guide
- https://wiki.gentoo.org/wiki/Kernel/Configuration
- https://kernelnewbies.org/KernelBuild
The Linux kernel is not managed by the package manager. The kernel is managed
manually by the user. (Rationale: @/faq#7.3)
KISS does not include an initramfs (see @/faq#7.2). When configuring your kernel
ensure that all required file-system, disk controller and USB drivers are built
with [*] (=y) and not [m] (=m) if you opt to not use one!
Some adjustments may be required for certain kernel versions! Watch @/news for
information on these problems. Here are some problems to be aware of:
@/news/20210507a - A header issue with 5.12.*
@/news/20200509a - GCC 10.1.0 patch
+------------------------------------------------------------------------------+
| |
| TIP: The Wiki contains a basic kernel configuration page. |
| @/wiki/kernel/config |
| |
+------------------------------------------------------------------------------+
[8.1] Install required packages
____________________________________________________________________________
+--------------------------------------------------------------------------+
| |
| libelf (required in most and recommended). |
| |
| $ kiss b libelf |
| $ kiss i libelf |
| |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+
| |
| ncurses (required only for 'make menuconfig'). |
| |
| $ kiss b ncurses |
| $ kiss i ncurses |
| |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+
| |
| perl (required in some cases). |
| |
| $ kiss b perl |
| $ kiss i perl |
| |
| |
| TIP: A patch can be applied to remove this requirement. |
| - @/wiki/kernel/config#5.0 |
| - /usr/share/doc/kiss/wiki/kernel/patches/kernel-no-perl.patch |
| |
+--------------------------------------------------------------------------+
[8.2] Download the kernel sources
____________________________________________________________________________
Kernel releases:
- https://kernel.org (vanilla)
- https://www.fsfla.org (libre)
A larger list of kernels can be found here:
- https://wiki.archlinux.org/index.php/Kernel
A canonical place for building the kernel is /usr/src/linux
+--------------------------------------------------------------------------+
| Download the kernel sources. |
+--------------------------------------------------------------------------+
| |
| $ wget KERNEL_SOURCE |
| |
+--------------------------------------------------------------------------+
| Extract the kernel sources. |
+--------------------------------------------------------------------------+
| |
| $ tar xvf KERNEL_SOURCE.tar.gz |
| $ cd linux-* |
| |
+--------------------------------------------------------------------------+
[8.3] Download firmware blobs (if required)
____________________________________________________________________________
To keep the KISS repositories entirely FOSS, the proprietary kernel firmware
is omitted. This also makes sense as the kernel itself is manually managed
by the user. This step is only required if your hardware needs firmware.
See @/wiki/kernel/firmware
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
+--------------------------------------------------------------------------+
| Download and extract the firmware. |
+--------------------------------------------------------------------------+
| |
| $ wget FIRMWARE_SOURCE |
| $ tar xvf FIRMWARE_SOURCE.tar.gz |
| |
+--------------------------------------------------------------------------+
| Copy the required drivers to '/usr/lib/firmware'. |
+--------------------------------------------------------------------------+
| |
| $ mkdir -p /usr/lib/firmware |
| $ cp -R ./path/to/driver /usr/lib/firmware |
| |
+--------------------------------------------------------------------------+
[8.4] Configure the kernel
____________________________________________________________________________
You can determine which drivers you need by searching the web for your
hardware and the Linux kernel.
Checkout @/wiki/kernel for tips and information!
+--------------------------------------------------------------------------+
| Generate a default config with most drivers built into the kernel. |
+--------------------------------------------------------------------------+
| |
| $ make defconfig |
| |
+--------------------------------------------------------------------------+
| Open an interactive menu to edit the generated .config and enable |
| anything extra you may need. |
+--------------------------------------------------------------------------+
| |
| $ make menuconfig |
| |
+--------------------------------------------------------------------------+
| Store the generated config for reuse later. |
+--------------------------------------------------------------------------+
| |
| $ cp .config /path/to/somewhere |
| |
| |
| TIP: The kernel can backup its own .config file. |
| @/wiki/kernel/config#2.0 |
| |
+--------------------------------------------------------------------------+
[8.5] Build the kernel
____________________________________________________________________________
This may take a while to complete. The compilation time depends on your
hardware and kernel configuration. The 'nproc' command outputs the total
number of threads which we pass to make for a multi-threaded build.
+--------------------------------------------------------------------------+
| |
| $ make -j "$(nproc)" |
| |
+--------------------------------------------------------------------------+
[8.6] Install the kernel
____________________________________________________________________________
+--------------------------------------------------------------------------+
| Install the built modules (to /usr/lib). |
+--------------------------------------------------------------------------+
| |
| $ make INSTALL_MOD_STRIP=1 modules_install |
| |
+--------------------------------------------------------------------------+
| Install the built kernel (to /boot). (Ignore the LILO error). |
+--------------------------------------------------------------------------+
| |
| $ make install |
| |
+--------------------------------------------------------------------------+
| Rename the kernel/system.map (vmlinuz -> vmlinuz-VERSION). |
+--------------------------------------------------------------------------+
| |
| $ mv /boot/vmlinuz /boot/vmlinuz-VERSION |
| $ mv /boot/System.map /boot/System.map-VERSION |
| |
+--------------------------------------------------------------------------+
[9.0] The bootloader
________________________________________________________________________________
The default bootloader is grub (though nothing prevents the use of another
bootloader). This default was chosen as most people are familiar with it, both
BIOS and UEFI are supported and vast amounts of documentation for it exists.
[9.1] Recommended
____________________________________________________________________________
Have an /etc/fstab file ready so that other partitions can be mounted
automatically during the boot-up process.
[9.2] Build and install grub
____________________________________________________________________________
+--------------------------------------------------------------------------+
| |
| $ kiss b grub |
| $ kiss i grub |
| |
+--------------------------------------------------------------------------+
| Required for UEFI. |
+--------------------------------------------------------------------------+
| |
| $ kiss b efibootmgr |
| $ kiss i efibootmgr |
| |
| TIP: efibootmgr can be used without grub on UEFI systems! |
| See @/wiki/boot/efistub |
| |
+--------------------------------------------------------------------------+
[9.3] Setup grub
____________________________________________________________________________
+--------------------------------------------------------------------------+
| BIOS |
+--------------------------------------------------------------------------+
| |
| $ grub-install /dev/sdX |
| $ grub-mkconfig -o /boot/grub/grub.cfg |
| |
+--------------------------------------------------------------------------+
| UEFI (replace 'esp' with the EFI mount point, usually /boot) |
+--------------------------------------------------------------------------+
| |
| $ grub-install --target=x86_64-efi \ |
| --efi-directory=esp \ |
| --bootloader-id=kiss |
| |
| $ grub-mkconfig -o /boot/grub/grub.cfg |
| |
+--------------------------------------------------------------------------+
[10.0] Install init scripts
________________________________________________________________________________
The default init is busybox init (though nothing ties you to it). The below
commands install the bootup and shutdown scripts as well as the default
inittab config.
Source code: $/kiss-community/init
+------------------------------------------------------------------------------+
| |
| $ kiss b baseinit |
| $ kiss i baseinit |
| |
+------------------------------------------------------------------------------+
[11.0] Set the root password
________________________________________________________________________________
+------------------------------------------------------------------------------+
| |
| $ passwd root |
| |
+------------------------------------------------------------------------------+
[12.0] Add a normal user
________________________________________________________________________________
+------------------------------------------------------------------------------+
| |
| $ adduser USERNAME |
| |
+------------------------------------------------------------------------------+
[13.0] Install Xorg (optional)
________________________________________________________________________________
To install Xorg, the input drivers and a basic default set of fonts, run the
following commands. See @/wiki/xorg
+------------------------------------------------------------------------------+
| |
| $ kiss b xorg-server xinit xf86-input-libinput |
| |
+------------------------------------------------------------------------------+
| Installing a base font is recommended as nothing will work without fonts. |
+------------------------------------------------------------------------------+
| |
| $ kiss b liberation-fonts |
| $ kiss i liberation-fonts |
| |
+------------------------------------------------------------------------------+
[13.1] Add your user to the relevant groups
____________________________________________________________________________
This groups based permissions model may not be suitable if KISS will be
used as a multi-seat system. Further configuration can be done at your
own discretion.
+--------------------------------------------------------------------------+
| Replace 'USERNAME' with the name of the user created earlier. |
+--------------------------------------------------------------------------+
| |
| $ addgroup USERNAME video |
| $ addgroup USERNAME audio |
| |
+--------------------------------------------------------------------------+
[14.0] Further steps
________________________________________________________________________________
You should now be able to reboot into your KISS installation. Typical
configuration should follow (creation of users, service configuration,
installing a window manager, terminal etc).
While kiss is a simple package manager, it is highly extensible. Be sure to read
about it at @/package-manager for useful options and tips.
The KISS Wiki is a good place to look for post-installation information.
+------------------------------------------------------------------------------+
| TIP! |
+------------------------------------------------------------------------------+
| |
| The Wiki is available offline via 'kiss help wiki'. |
| |
| $ kiss help wiki |
| |
| $ kiss help wiki/xorg |
| $ kiss help wiki/xorg/xinit |
| $ kiss help wiki/xorg/xinit |
| |
| $ kiss help wiki/software |
| $ kiss help wiki/software/man-pages |
| |
+------------------------------------------------------------------------------+
If you encountered any issues, don't hesitate to open an issue on one of our
GitHub repositories, post on the subreddit, or join the IRC server.
See: @/contact
________________________________________________________________________________
This site is an archive of a previous version of KISS's website. The current
version can be found at https://kisslinux.org/.
Dylan Araps (C) 2019-2020
kiss-community (C) 2020-2021
Dilyn Corner (C) 2021
Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.