Compare commits

...

3 commits

36 changed files with 118 additions and 189 deletions

View file

@ -1,3 +1,5 @@
# Essential applications
Some essential applications and packages.
```

View file

@ -1,6 +1,8 @@
# Application launcher
An application launcher may be used to easily start applications in Wayfire.
#### Tofi
## Tofi
For a fast and lightweight application launcher it's recommended to use `tofi` which starts in a few miliseconds if configured correctly. To install it:
@ -22,7 +24,7 @@ binding_launcher = <super> KEY_S
command_launcher = tofi-drun | xargs /bin/bash -c -- & exit
```
#### Wofi
## Wofi
Although the `wofi` package is no longer maintained and is generally less optimised compared to `tofi` it does have some important features that `tofi` does not have. Such as, a better positioning protocol.
@ -46,7 +48,7 @@ binding_launcher = <super> KEY_S
command_launcher = wofi --show drun
```
#### Wlogout
## Wlogout
Wlogout may be used as a specific launcher for power management options. Such as, reboot, suspend and to power off the system.

View file

@ -1,3 +1,5 @@
# Audio
To obtain audio the `pipewire` server will be used with an `alsa-pipewire` plugin in combination with `wireplumber` as session manager.
They may be installed with:
@ -35,7 +37,7 @@ Pipewire needs to be started by Wayfire.
audio = pipewire
```
### Audio control
## Audio control
To obtain some control over the audio `pavucontrol`, `pamixer` and `pa-notify` may be installed.
@ -62,7 +64,7 @@ To be notified when changing the volume `pa-notify` may be used. It needs to be
audio_notify = sleep 1; pa-notify -t 2
```
### Music control
## Music control
To control music and other media `playerctl` may be used.

View file

@ -1,3 +1,5 @@
# Auto-mounting
`udiskie` will be used to automatically mount drives. It may be installed with.
```

View file

@ -1,3 +1,5 @@
# Display configuration
To configure the displays of the systems it's necessary to either configure them through `.config/wayfire.ini` or use an external application like `kanshi`.
To install kanshi:
@ -22,7 +24,7 @@ And make sure `kanshi` gets started by Wayfire by adding it to auto start.
outputs = kanshi
```
#### Color-temperature adjustment
## Color-temperature adjustment
For changing the day/night gamma install `wlsunset`.

View file

@ -1,3 +1,5 @@
# Login manager
To make it easier to log into the system, set up a login manager. For a minimal and wayland-compatible login manager use `greetd` with `gtkgreet`. Install them with:
```

View file

@ -1,4 +1,6 @@
### SwayNC
# Notifications
## SwayNC
For a more robust notification deamon it's recommended to use SwayNotificationCenter which also provides a *notifications center* which can be heavily customised.
@ -49,7 +51,7 @@ And
},
```
### Mako
## Mako
For a very minimal notification deamon it's recommended to use Mako. It can be used to display notifications from the session-bus.

View file

@ -1,3 +1,5 @@
# Screenshots
To be able to make screenshots on the system the packages `grim`, `slurp` and `wl-clipboard` will need to be installed.
```

View file

@ -1,3 +1,5 @@
# Session manager
To use a graphical enviroment it is necessary to start a seat and session manager. For a minimal install it is recommended to use `seatd`, `turnstile` and `polkit`. To install those run:
```

View file

@ -1,3 +1,5 @@
# Taskbar
For the taskbar it is recommended to use Waybar since it's wayland native and has enough functionality. Furthermore network manager applet will be used to display network status and to easily configure network settings.
To install both, in combination with some necessary fonts.

View file

@ -1,3 +1,5 @@
# Window manager
There are many different window managers and desktop environments which can provide a decent experience. Wayfire is a functional, relatively lightweight and good looking wayland window manager and will be used for this install.
To install a barebones Wayfire use:

View file

@ -1,8 +1,3 @@
---
gitea: none
include_toc: false
---
# A Void Linux installation
This install is based on the [EFI boot stub](https://mth.st/blog/void-efistub/) blog entry of [Matthias Totschnig](https://mth.st/), the [Void Handbook](https://docs.voidlinux.org/about/index.html) and the Void Linux [man pages](https://man.voidlinux.org/man-pages.7). This guide focuses on a Void Linux x86_64 glibc/musl install on uefi. In this install gummiboot is used as bootloader and the root partition will be encrypted.

View file

@ -1,3 +1,5 @@
# Installation with LVM
To install the Void Linux distribution on the system, the encrypted partition and the efi partition have to be mounted to the main system.
```

View file

@ -1,3 +1,5 @@
# Installation
To install the Void Linux distribution on the system, the encrypted partition and the efi partition have to be mounted to the main system.
```

View file

@ -1,3 +1,5 @@
# Provisioning with LVM
First off the drive should be partitioned, possibly with `fdisk` or `cfdisk`. It should have atleast two partitions with one `EFI System` Partition and one `Linux filesystem` partition.
It should look something like this:

View file

@ -1,3 +1,5 @@
# Provisioning
First off the drive should be partitioned, possibly with `fdisk` or `cfdisk`. It should have atleast two partitions with one `EFI System` Partition and one `Linux filesystem` partition.
It should look something like this:

View file

@ -1,8 +1,8 @@
(unfinished)
# Automatic decryption *(unfinished)*
Using Clevis it's possible to automatically decrypt the system upon startup. But because we haven't been able to figure out how to create a functional template file for that we'll have to compile it ourselves. Note that you must use the `booster` initramfs. (A lot more information about the possibilities from clevis can be found on the [ArchWiki](https://wiki.archlinux.org/title/Clevis))
#### Installing José
## Installing José
First we have to compile [José](https://github.com/latchset/jose), a "C-language implementation of Javascript Object Signing and Encryption". José is a dependency of Clevis.
First install the dependencies needed to compile josé.
@ -26,7 +26,7 @@ $ ninja
# ninja install
```
#### Installing Clevis
## Installing Clevis
After having installed José install the other dependencies.
@ -49,7 +49,7 @@ $ ninja -C build
# ninja -C build install
```
#### Acquiring automatic decryption
## Acquiring automatic decryption
To bind our LUKS volume to TPM with clevis simply enter this command:

View file

@ -1,3 +1,5 @@
# Bluetooth
Bluetooth functionality may be obtained by enabling `bluetoothd`. Its packages may be installed by:
```

View file

@ -1,54 +1,56 @@
### GPU drivers
# Firmware and drivers
## GPU drivers
It is necessary for a graphical enviroment to install GPU drivers. To install the drivers for your GPU use one of the following commands:
##### For Intel
### For Intel
```
# xbps-install -Sy linux-firmware-intel mesa mesa-dri vulkan-loader mesa-vulkan-intel intel-video-accel
```
##### For AMD
### For AMD
```
# xbps-install -Sy linux-firmware-amd vulkan-loader mesa-vulkan-radeon amdvlk xf86-video-amdgpu mesa-vaapi mesa-vdpau mesa-dri
```
##### For Nvidia (*glibc only*)
### For Nvidia (*glibc only*)
```
# xbps-install -Sy nvidia nvidia-opencl
```
#### 32-bit drivers
### 32-bit drivers
(Only applicable to glibc as Void Linux musl only supports 64-bit)
To run 32-bit applications like some videogames it will also be necessary to install the 32-bit drivers:
##### For Intel
#### For Intel
```
# xbps-install -Sy mesa-32bit mesa-dri-32bit mesa-vulkan-intel-32bit vulkan-loader-32bit
```
##### For AMD
#### For AMD
```
# xbps-install -Sy vulkan-loader-32bit amdvlk-32bit mesa-32bit mesa-dri-32bit
```
##### For Nvidia
#### For Nvidia
```
# xbps-install -Sy nvidia-libs-32bit
```
### CPU firmware
## CPU firmware
To keep the firmware of your CPU up to date it is necessary to install the correct microcode:
#### For Intel
### For Intel
(The Intel microcode requires that you are using the nonfree repository)
@ -62,17 +64,13 @@ And regenerate the initramfs:
# xbps-reconfigure -f linux<version>
```
#### For AMD
### For AMD
```
# xbps-install -Sy linux-firmware-amd
```
### Nvidia + Wayland
## Nvidia and wayland
For Nvidia to work correctly with Wayfire you'll have to add the boot parameter to `/boot/loader/void-options.conf`.

View file

@ -1,3 +1,5 @@
# Laptop management
To obtain enhanced battery lifespan, `tlp` and `tlpui` may be installed. The `tlpui` application may be used to monitor the general configuration of `tlp`.
```

View file

@ -1,3 +1,5 @@
# Linux-lts
It might be desirable to install an LTS kernel for better stability. This can be done by:
```

View file

@ -1,3 +1,5 @@
# Localtime
A "Network Time Protocol Daemon" (nptd for short) can sync the system clock with internet standard time servers. The `chrony` daemon is used as ntpd. Install it by:
```

View file

@ -1,3 +1,5 @@
# Logging
Logging may be benificial to spot certain misbehaviours or errors in the system. The `socklog-void` package will be used as logging daemon.
```

View file

@ -1,6 +1,8 @@
# Network filesystems
Network filesystems may be used for enhanced workflow between multiple devices and persistance of storage.
#### Samba
## Samba
Samba is such a Network filesystem protocol that may be used between different platforms. To use it install.

View file

@ -1,3 +1,5 @@
# Network
NetworkManager will be used as Network daemon due to its versatility. The package was already installed with the installation, thereby it only needs to be symlinked to `/var/service` to function.
```

View file

@ -1,4 +1,6 @@
The post install section elaborates on the installation and configuration of certain applications. To simplify this and the subsequent sections, reference is made to pre-made configuration files with `{config-files-repo}`.
# Post installation
The post installation section elaborates on the installation and configuration of certain applications. To simplify this and the subsequent sections, reference is made to pre-made configuration files with `{config-files-repo}`.
A configuration files repository may be chosen to one's preference, by cloning them with the `git` command. It is recommended to do this once a user has been created.

View file

@ -1,3 +1,5 @@
# Repositories
To install the official Void Linux 32-bit and nonfree repositories simply install their respective packages:
* For glibc
@ -18,7 +20,7 @@ And update the repositories:
# xbps-install -S
```
#### Our unofficial extra repository
## xbps-ample
There is also our unofficial extra repository for some additional packages and some packages which are needed for the graphical installation. To use those add them to `/etc/xbps.d/00-repository-ample.conf`,

View file

@ -1,3 +1,5 @@
# Secure boot
Secure boot is sometimes a necessity when working with a windows dual boot on laptops and also an extra layer of protection for your system.
For linux to work with secureboot it's necessary to enroll keys using sbctl.

View file

@ -1,3 +1,5 @@
# Users
A user should be added to improve security of the system.
```
@ -54,7 +56,7 @@ $ cp {config-files-repo}/bash/.bashrc .bashrc
$ cp {config-files-repo}/bash/.bash_profile .bash_profile
```
#### User directories
## User directories
It is generally beneficial to set default user directories. To obtain some consistency in the `home` directory. This may be obtained with the `xdg-user-dirs` package.

View file

@ -1,3 +1,5 @@
# Using swap
Swap can be utilised by the system to free up space in RAM. For most use cases it is recommend to create a swapfile that is one and a half times the size of your RAM.
To create a swapfile of 8 GB use:

View file

@ -1,57 +0,0 @@
***This page is still unfinished***
# Setting up your own custom xbps repository
## Creating a xbps package
For your repository you want to create a package, this can be done multiple ways but this repository was created using [xbps-src](https://github.com/void-linux/void-packages) with which you can create `.xbps` files that can be installed.
First you have to [set up xbps-src](https://github.com/void-linux/void-packages#quick-start). After that we can create an xbps package using
```
$ ./xbps-src pkg <foo>
```
which will compile a `<foo>.xbps` in `hostdir/binpkgs`. To create your own package using xbps-src you'll have to create a [template file](https://github.com/void-linux/void-packages/blob/master/Manual.md). After that you can compile the package and install it for testing using:
```
# xbps-install --repository hostdir/binpkgs <foo>
```
Or if you download the `xtools` packages you can install it using:
```
# xi <foo>
```
(Note that you have to be in the `void-packages/` directory)
If the package is working it is ready to be put in the repository.
## Making the repository
Now that we have a package we can make a repository. But first we'll have to create a local one. Make an empty directory. Then copy over your `.xbps` file from the package you want to add into the directory. If you created them using xbps-src they will be in `void-packages/hostdir/binpkgs/`.
After that we can add the packages to the repository data. This will be necessary for the xbps package manager to find the packages. To add all the packages in the directory to the repository data you can issue the command:
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
There should now be an `x86_64-repodata` or `x86_64-musl-repodata` file in your directory.
(If you wanted to create a local repository than after this you would only have to add the repository to your [xbps configuration](https://docs.voidlinux.org/xbps/repositories/custom.html) and you'd be done. But in this guide we're going to make a remote repository.)
## Signing the repository and the packages
Now that we have our repository we're going to need to sign it with a key. To [generate a key](https://docs.voidlinux.org/xbps/repositories/signing.html) we can use the command:
```
$ ssh-keygen -t rsa -m PEM -f private.pem
```
This will create a `private.pem` which we can use to sign the repository and the packages. First we want to sign the repository **which only has to be done once**. This can be done with:
```
$ xbps-rindex --privkey private.pem --sign --signedby "<name>" /path/to/repository/directory
```
Here the `<name>` has to be replaced with the name you want to sign the repository with. And the `/path/to/repository/directory` has to be replaced with the directory where the packages are located.
After that we also want to sign the packages themselves. To achieve this we use the command:
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
Everytime we add or update packages we'll have to sign them again.
## Hosting the repository
Although there are a lot of ways to host the repository this repository is being hosted on a git server. It is a fairly easy process and doesn't require a whole lot of knowledge but there are probably more optimal ways of hosting a repository.

View file

@ -1,7 +0,0 @@
# Welcome to the xbps-ample wiki
This is a small wiki about xbps-ample and hosting your own xbps repository. These guides were made on an x86-64 machine but should be mostly applicable to other architectures as well.
A lot of this information can be found in the [Void Linux documentation](https://docs.voidlinux.org/xbps/repositories/index.html) and the [manual pages](https://man.voidlinux.org/xbps-rindex).
Check the sidebar for all pages in this wiki!

View file

@ -1,51 +0,0 @@
***This page is still unfinished***
# Maintaining packages in your own repository
It is important to maintain your repository when updates occur or if you want to add/remove packages. This page explains how to.
Note that after changing any files in your repository that you'll have to update them upstream. E.g. uploading the correct files.
## Adding packages
To add a package we first have to copy over the `.xbps` files to the repository directory. After that we can add them to the repository's `*-repodata`. You can add them by using:
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
We also have to sign the package with the key we generated whilst we set up the repository. This can be done by using:
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
## Updating packages
If you have a new version of a package and want to add it to the repository there are a few steps that need to be done.
First add the new package to the `repodata`.
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
And then remove the obsolete packages.
```
$ xbps-rindex -r /path/to/repository/directory/
```
Don't forget to sign the added packages
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
## Removing packages
To remove a package you'll first have to remove the files from the repository and it's signature:
```
$ rm /path/to/repository/directory/<foo>*
```
After that you'll have to evoke `xbps-rindex` to clean up the repodata:
```
$ xbps-rindex -c /path/to/repository/directory/
```

View file

@ -1,3 +0,0 @@
***This page is still unfinished***
(A page about having multiple repositories like an musl or nonfree repository on top of another one)

View file

@ -15,46 +15,46 @@ theme:
nav:
- 'Home': index.md
- 'Void-desktop setup':
- 'Start': void-desktop-setup/Home.md
- 'Start': void-desktop-setup/home.md
- 'Installation':
- 'Installation with LVM (recommended)':
- 'Provisioning': void-desktop-setup/Provisioning-with-LVM.md
- 'Installation': void-desktop-setup/Installation-with-LVM.md
- 'Provisioning': void-desktop-setup/installation/provisioning-with-LVM.md
- 'Installation': void-desktop-setup/installation/installation-with-LVM.md
- 'Installation without LVM':
- 'Provisioning': void-desktop-setup/Provisioning.md
- 'Installation': void-desktop-setup/Installation.md
- 'Provisioning': void-desktop-setup/installation/provisioning.md
- 'Installation': void-desktop-setup/installation/installation.md
- 'Post installation':
- 'Config files': void-desktop-setup/Post-install.md
- 'Users': void-desktop-setup/Users.md
- 'Network': void-desktop-setup/Network.md
- 'Linux-lts': void-desktop-setup/Linux-lts.md
- 'Date and time': void-desktop-setup/Localtime.md
- 'Using swap': void-desktop-setup/Using-swap.md
- 'Network filesystems': void-desktop-setup/Network-filesystems.md
- 'Logging': void-desktop-setup/Logging.md
- 'Repositories': void-desktop-setup/Repositories.md
- 'Firmware and drivers': void-desktop-setup/Firmware-and-drivers.md
- 'Secure boot': void-desktop-setup/Secure-boot.md
- 'Automatic decryption': void-desktop-setup/Automatic-decryption.md
- 'Laptop management': void-desktop-setup/Laptop-management.md
- 'Bluetooth': void-desktop-setup/Bluetooth.md
- 'Config files': void-desktop-setup/post-installation/post-install.md
- 'Users': void-desktop-setup/post-installation/users.md
- 'Network': void-desktop-setup/post-installation/network.md
- 'Linux-lts': void-desktop-setup/post-installation/linux-lts.md
- 'Date and time': void-desktop-setup/post-installation/localtime.md
- 'Using swap': void-desktop-setup/post-installation/using-swap.md
- 'Network filesystems': void-desktop-setup/post-installation/network-filesystems.md
- 'Logging': void-desktop-setup/post-installation/logging.md
- 'Repositories': void-desktop-setup/post-installation/repositories.md
- 'Firmware and drivers': void-desktop-setup/post-installation/firmware-and-drivers.md
- 'Secure boot': void-desktop-setup/post-installation/secure-boot.md
- 'Automatic decryption': void-desktop-setup/post-installation/automatic-decryption.md
- 'Laptop management': void-desktop-setup/post-installation/laptop-management.md
- 'Bluetooth': void-desktop-setup/post-installation/bluetooth.md
- 'Graphical session':
- 'Session manager': void-desktop-setup/Session-manager.md
- 'Login manager': void-desktop-setup/Login-manager.md
- 'Window manager': void-desktop-setup/Window-manager.md
- 'Display configuration': void-desktop-setup/Display-configuration.md
- 'Taskbar': void-desktop-setup/Taskbar.md
- 'Application launcher': void-desktop-setup/Application-launcher.md
- 'Notifications': void-desktop-setup/Notifications.md
- 'Audio': void-desktop-setup/Audio.md
- 'Screenshots': void-desktop-setup/Screenshots.md
- 'Idle and lockscreen': void-desktop-setup/Idle-and-lockscreen.md
- 'Auto-mounting': void-desktop-setup/Auto-mounting.md
- 'Session manager': void-desktop-setup/graphical-session/session-manager.md
- 'Login manager': void-desktop-setup/graphical-session/login-manager.md
- 'Window manager': void-desktop-setup/graphical-session/window-manager.md
- 'Display configuration': void-desktop-setup/graphical-session/display-configuration.md
- 'Taskbar': void-desktop-setup/graphical-session/taskbar.md
- 'Application launcher': void-desktop-setup/graphical-session/application-launcher.md
- 'Notifications': void-desktop-setup/graphical-session/notifications.md
- 'Audio': void-desktop-setup/graphical-session/audio.md
- 'Screenshots': void-desktop-setup/graphical-session/screenshots.md
- 'Idle and lockscreen': void-desktop-setup/graphical-session/idle-and-lockscreen.md
- 'Auto-mounting': void-desktop-setup/graphical-session/auto-mounting.md
- 'Applications':
- 'Essential applications': void-desktop-setup/Essential-applications.md
- 'Virt-manager': void-desktop-setup/Virt-manager.md
- 'Steam': void-desktop-setup/Steam.md
- 'Alpine-server setup': alpine-server-setup/Home.md
- 'Essential applications': void-desktop-setup/applications/essential-applications.md
- 'Virt-manager': void-desktop-setup/applications/virt-manager.md
- 'Steam': void-desktop-setup/applications/steam.md
- 'Alpine-server setup': alpine-server-setup/home.md
extra:
generator: false