Last active
October 25, 2025 04:49
-
Star
(714)
You must be signed in to star a gist -
Fork
(105)
You must be signed in to fork a gist
-
-
Save mjkstra/96ce7a5689d753e7a6bdd92cdc169bae to your computer and use it in GitHub Desktop.
Revisions
-
mjkstra revised this gist
Oct 3, 2024 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -35,7 +35,7 @@ - [Windows compatibility layers](#windows-compatibility-layers) - [Generic optimizations](#generic-optimizations) - [Overclocking and monitoring](#overclocking-and-monitoring) - [Additional notes](#additional-notes) - [Things to add](#things-to-add) # Introduction @@ -692,7 +692,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com <br> # Additional notes - On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration) @@ -703,7 +703,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com - There is no such thing as the best kernel, all kernels make tradeoffs \( eg: latency for throughtput \) and this it why it's generally advised to stick with the generic one. - If you are mainly a gamer you MAY consider the **TKG** or **CachyOS** kernel. These kernels contain many optimizations and are highly customizable, however the TKG kernel has to be compiled \( mainly it's time consuming, not hard \), while CachyOS kernel comes already packaged and optimized for specific hardware configurations, and can be simply installed with pacman upon adding their repos to `pacman.conf`. Some users have reported to experience a smoother experience with lower latency, however I couldn't find consistent information about this and it seems that is all backed by a personal sensation and not a result obtained through objective measurements \( Also this is difficult because in Linux there can be countless configuration variables and it also depends by the graphic card being used \). - Some recommended reads: - [How to build your KDE environment](https://community.kde.org/Distributions/Packaging_Recommendations) - [Gaming on Wayland](https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html) \( old article but still relevant \) - [Improving Linux Gaming Performance](https://linux-gaming.kwindu.eu/index.php?title=Improving_performance) -
mjkstra revised this gist
Oct 3, 2024 . 1 changed file with 6 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -703,7 +703,12 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com - There is no such thing as the best kernel, all kernels make tradeoffs \( eg: latency for throughtput \) and this it why it's generally advised to stick with the generic one. - If you are mainly a gamer you MAY consider the **TKG** or **CachyOS** kernel. These kernels contain many optimizations and are highly customizable, however the TKG kernel has to be compiled \( mainly it's time consuming, not hard \), while CachyOS kernel comes already packaged and optimized for specific hardware configurations, and can be simply installed with pacman upon adding their repos to `pacman.conf`. Some users have reported to experience a smoother experience with lower latency, however I couldn't find consistent information about this and it seems that is all backed by a personal sensation and not a result obtained through objective measurements \( Also this is difficult because in Linux there can be countless configuration variables and it also depends by the graphic card being used \). - Now some recommended reads: - [How to build your KDE environment](https://community.kde.org/Distributions/Packaging_Recommendations) - [Gaming on Wayland](https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html) \( old article but still relevant \) - [Improving Linux Gaming Performance](https://linux-gaming.kwindu.eu/index.php?title=Improving_performance) - [Arch linux system maintenance](https://wiki.archlinux.org/title/System_maintenance) - [Arch linux general recommendations](https://wiki.archlinux.org/title/General_recommendations) <br> # Things to add -
mjkstra revised this gist
Oct 3, 2024 . 1 changed file with 7 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -124,6 +124,13 @@ I will make 2 partitions: # If you have an hdd is something like sdax fdisk -l # Now you can either go and partition your disk with fdisk and follow the steps below, # or if you want to do things yourself and make it easier, use cfdisk ( an fdisk TUI wrapper ) which is # much more user friendly. A reddit user suggested me this and it's indeed very intuitive to use. # If you choose cfdisk you will have to invoke it the same way as I did with fdisk below, but # you don't need to follow my commands blindly as with fdisk below, just navigate the UI with the arrows # and press enter to get inside menus, remember to write changes before quitting. # Invoke fdisk to partition fdisk /dev/nvme0n1 -
mjkstra revised this gist
Oct 3, 2024 . 1 changed file with 30 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -535,8 +535,36 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older **Xorg** and the newer **Wayland** protocols. It's **user friendly**, **light** and it's also used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # plasma-desktop: the barebones plasma environment. # plasma-pa: the KDE audio applet. # plasma-nm: the KDE network applet. # plasma-systemmonitor: the KDE task manager. # plasma-firewall: the KDE firewall. # plasma-browser-integration: cool stuff, it lets you manage things from your browser like media currently played via the plasma environment. Make sure to install the related extension on firefox ( you will be prompted automatically upon boot ). # kscreen: the KDE display configurator. # kwalletmanager: manage secure vaults ( needed to store the passwords of local applications in an encrypted format ). This also installs kwallet as a dependency, so I don't need to specify it. # kwallet-pam: automatically unlocks secure vault upon login ( without this, each time the wallet gets queried it asks for your password to unlock it ). # bluedevil: the KDE bluetooth manager. # powerdevil: the KDE power manager. # power-profiles-daemon: adds 3 power profiles selectable from powerdevil ( power saving, balanced, performance ). Make sure that its service is enabled and running ( it should be ). # kdeplasma-addons: some useful addons. # xdg-desktop-portal-kde: better integrates the plasma desktop in various windows like file pickers. # xwaylandvideobridge: exposes Wayland windows to XWayland-using screen sharing apps ( useful when screen sharing on discord, but also in other instances ). # kde-gtk-config: the native settings integration to manage GTK theming. # breeze-gtk: the breeze GTK theme. # cups, print-manager: the CUPS print service and the KDE front-end. # konsole: the KDE terminal. # dolphin: the KDE file manager. # ffmpegthumbs: video thumbnailer for dolphin. # firefox: the web browser. # kate: the KDE text editor. # okular: the KDE pdf viewer. # gwenview: the KDE image viewer. # ark: the KDE archive manager. # pinta: a paint.net clone written in GTK. # spectacle: the KDE screenshot tool. # dragon: a simple KDE media player. A more advanced alternative based on libmpv is Haruna. sudo pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor plasma-firewall plasma-browser-integration kscreen kwalletmanager kwallet-pam bluedevil powerdevil power-profiles-daemon kdeplasma-addons xdg-desktop-portal-kde xwaylandvideobridge kde-gtk-config breeze-gtk cups print-manager konsole dolphin ffmpegthumbs firefox kate okular gwenview ark pinta spectacle dragon ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). -
mjkstra revised this gist
Sep 27, 2024 . 1 changed file with 7 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -344,7 +344,13 @@ passwd useradd -mG wheel mjkstra passwd mjkstra # The command below is a one line command that will open the /etc/sudoers file with your favourite editor. # You can choose a different editor than vim by changing the EDITOR variable # Once opened, you have to look for a line which says something like "Uncomment to let members of group wheel execute any action" # and uncomment exactly the line BELOW it, by removing the #. This will grant superuser priviledges to your user. # Why are we issuing this command instead of a simple vim /etc/sudoers ? # Because visudo does more than opening the editor, for example it locks the file from being edited simultaneously and # runs syntax checks to avoid committing an unreadable file. EDITOR=vim visudo ``` -
mjkstra revised this gist
Sep 5, 2024 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -46,7 +46,7 @@ The goal of this guide is to help new users set up a modern and minimal installa - I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and [can lead to a bricked system](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely [not enough secure](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot). - I **won't** encrypt the system because I don't need it and because encryption always adds a little bit of overhead in the boot phase leading to a **slower to varying degrees** start\-up, depending on your configuration. However it may be important for you so if you really wanna go this way I recommend reading [the wiki page in this regards](https://wiki.archlinux.org/title/Dm-crypt) and **must** perform the documented steps **IMMEDIATELY AFTER** [disk partitioning](#disk-partitioning). Also note that you must set the type of partition to a LUKS partition instead of a standard Linux partition when partitioning with `fdisk`. - I'll **skip** the Arch ISO installation media preparation. -
mjkstra revised this gist
Sep 5, 2024 . 1 changed file with 52 additions and 52 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -35,32 +35,22 @@ - [Windows compatibility layers](#windows-compatibility-layers) - [Generic optimizations](#generic-optimizations) - [Overclocking and monitoring](#overclocking-and-monitoring) - [Tips and tricks](#tips-and-tricks) - [Things to add](#things-to-add) # Introduction The goal of this guide is to help new users set up a modern and minimal installation of **Arch Linux** with **BTRFS** on an **UEFI system**. I'll start from the basic terminal installation and then set up **video drivers, a desktop environment and provide basic gaming configuration**. This guide is thought to be read alongside the wiki, so that it if something ever changes you can fix it but it's not necessary unless my guide becomes outdated. Also I will mention external references to justify some choices that I've made so that curious users can delve into the details. ### Note that: - I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and [can lead to a bricked system](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely [not enough secure](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot). - I **won't** encrypt the system because I don't need it and because encryption always adds a little bit of overhead in the boot phase leading to a **slower to varying degrees** start\-up, depending on your configuration. However it may be important for you so if you really wanna go this way I recommend reading [the wiki page in this regards](https://wiki.archlinux.org/title/Dm-crypt) and **must** perform the documented steps **IMMEDIATELY AFTER** [disk partitioning](#disk-partitioning) \( Also if I recall correctly you must set the type of partition to a LUKS partition when partitioning with `fdisk`, but I am not sure if it's really needed \). - I'll **skip** the Arch ISO installation media preparation. - I'll use a **wired** connection, so no wireless configuration steps will be shown. If you want to connect to wifi, you can either launch `wifi-menu` from the terminal which is a **TGUI** or use [`iwctl`](https://wiki.archlinux.org/title/Iwd#iwctl). <br> @@ -101,11 +91,17 @@ ping -c 5 archlinux.org <br> Check the system clock ```Zsh # Check if ntp is active and if the time is right timedatectl # In case it's not active you can do timedatectl set-ntp true # Or this systemctl enable systemd-timesyncd.service ``` <br> @@ -165,7 +161,7 @@ ENTER ## Disk formatting For the file system I've chosen [**BTRFS**](https://wiki.archlinux.org/title/Btrfs) which has evolved quite a lot in the recent years. It is most known for its **Copy on Write** feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by enabling built\-in **compression**. Also it lets the user create **subvolumes** which can be individually snapshotted. ```Zsh # Find the efi partition with fdisk -l or lsblk. For me it's /dev/nvme0n1p1 and format it. @@ -186,7 +182,7 @@ I will lay down the subvolumes on a **flat** layout, which is overall superior i ```Zsh # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @ # NOTICE: the list of subvolumes will be increased in a later release of this guide, upon proper testing and judgement. See the "Things to add" chapter. btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home @@ -252,7 +248,7 @@ pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibo # Fetch the disk mounting points as they are now ( we mounted everything before ) and generate instructions to let the system know how to mount the various disks automatically genfstab -U /mnt >> /mnt/etc/fstab # Check if fstab is fine ( it is if you've faithfully followed the previous steps ) cat /mnt/etc/fstab ``` @@ -273,27 +269,27 @@ arch-chroot /mnt # In our new system we have to set up the local time zone, find your one in /usr/share/zoneinfo mine is /usr/share/zoneinfo/Europe/Rome and create a symbolic link to /etc/localtime ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime # Now sync the system time to the hardware clock hwclock --systohc ``` <br> ## Set up the language and tty keyboard map Edit `/etc/locale.gen` and uncomment the entries for your locales. Each entry represent a language and its formats for time, date, currency and other country related settings. By uncommenting we will mark the entry to be generated when the generate command will be issued, but note that it won't still be active. In my case I will uncomment _\( ie: remove the # \)_ `en_US.UTF-8 UTF-8` and `it_IT.UTF-8 UTF-8` because I use English as a display language and Italian for date, time and other formats. ```Zsh # To edit I will use vim, feel free to use nano instead. vim /etc/locale.gen # Now issue the generation of the locales locale-gen ``` <br> Since the locale is generated but still not active, we will create the configuration file `/etc/locale.conf` and set the locale to the desired one, by setting the `LANG` variable accordingly. In my case I'll write `LANG=it_IT.UTF-8` to apply Italian settings to everything and then override only the display language to English by setting \( on a new line \) `LC_MESSAGES=en_US.UTF-8`. _\( if you want formats and language to stay the same **DON'T** set `LC_MESSAGES` \)_. More on this [here](https://wiki.archlinux.org/title/Locale#Variables) ```Zsh touch /etc/locale.conf @@ -317,11 +313,11 @@ vim /etc/vconsole.conf touch /etc/hostname vim /etc/hostname # Create the /etc/hosts file. This is very important because it will resolve the listed hostnames locally and not over Internet DNS. touch /etc/hosts ``` Write the following ip, hostname pairs inside /etc/hosts, replacing `Arch` with **YOUR** hostname: ``` 127.0.0.1 localhost @@ -348,7 +344,7 @@ passwd useradd -mG wheel mjkstra passwd mjkstra # Uncomment the wheel group to allow execution of any command( ie: remove the # from the wheel line below where it says something like: "Uncomment to let members of group wheel execute any action" ). if you want to use nano then write EDITOR=nano instead. Note the following is a single command to enter in the terminal. EDITOR=vim visudo ``` @@ -397,7 +393,9 @@ timedatectl set-ntp true ## Automatic snapshot boot entries update Each time a system snapshot is taken with timeshift, it will be available for boot in the bootloader, however you need to manually regenerate the grub configuration, this can be avoided thanks to `grub-btrfs`, which can automatically update the grub boot entries. Edit the **`grub-btrfsd`** service and because I will rely on timeshift for snapshotting, I am going to replace `ExecStart=...` with `ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto`. If you don't use timeshift or prefer to manually update the entries then lookup [here](https://github.com/Antynea/grub-btrfs) ```Zsh sudo systemctl edit --full grub-btrfsd @@ -429,7 +427,7 @@ systemctl enable vboxservice.service ## Aur helper and additional packages installation To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman \). Yay has a CLI, but if you later want to have an aur helper with a GUI you can install [`pamac`](https://gitlab.manjaro.org/applications/pamac) \( a Manjaro software, so use at your own risk \), **however** note that front\-ends like `pamac` and also any store \( KDE discovery, Ubuntu store etc. \) are not officially supported and should be avoided, because of the high risk of performing [partial upgrades](https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported). This is also why later when installing KDE, I will exclude the KDE discovery store from the list of packages. To learn more about yay read [here](https://github.com/Jguer/yay#yay) @@ -470,16 +468,16 @@ In order to have the smoothest experience on a graphical environment, **Gaming i ## Amd For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/title/AMDGPU) which is the open source one and the recommended, but be aware that this works starting from the **GCN 3** architecture, which means that cards **before** RX 400 series are not supported. _\( I have an RX 5700 XT \)_ ```Zsh # What are we installing ? # mesa: DRI driver for 3D acceleration. # xf86-video-amdgpu: DDX driver for 2D acceleration in Xorg. I won't install this, because I prefer the default kernel modesetting driver. # vulkan-radeon: vulkan support. # libva-mesa-driver: VA-API h/w video decoding support. # mesa-vdpau: VDPAU h/w accelerated video decoding support. sudo pacman -S mesa vulkan-radeon libva-mesa-driver mesa-vdpau ``` @@ -502,10 +500,10 @@ sudo pacman -S lib32-mesa lib32-vulkan-radeon lib32-libva-mesa-driver lib32-mesa In summary if you have an Nvidia card you have 2 options: 1. [**NVIDIA** proprietary driver](https://wiki.archlinux.org/title/NVIDIA) 2. [**Nouveau** open source driver](https://wiki.archlinux.org/title/Nouveau) The recommended is the proprietary one, however I won't explain further because I don't have an Nvidia card and the process for such cards is tricky unlike for AMD or Intel cards. Moreover for reason said before, I can't even test it. <br> @@ -528,10 +526,10 @@ On top of that I'll add a **display manager**, which you can omit if you don't l ## Option 1: KDE-plasma **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older **Xorg** and the newer **Wayland** protocols. It's **user friendly**, **light** and it's also used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, Kvantum QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest sudo pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview ark mpv gimp ``` @@ -541,11 +539,11 @@ Now don't reboot your system yet. If you want a display manager, which is genera ## Option 2: Hyprland [WIP] > Note: this section needs configuration and is basically empty, I don't know when and if I will expand it but at least you have a starting point. <br> **Hyprland** is a **tiling WM** that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now. It's based on **wlroots** the famous library used by Sway, the most mature Wayland WM there is. I don't know if I would recommend this to beginners because it's a totally different experience and it may not be better. Moreover it requires you to read the [wiki](https://wiki.hyprland.org/) for configuration but it also features a [master tutorial](https://wiki.hyprland.org/Getting-Started/Master-Tutorial). The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully. ```Zsh # Install hyprland from tagged releases and other utils: @@ -564,7 +562,7 @@ yay -S wlogout # Adding a display manager **Display managers** are useful when you have multiple DE or WMs and want to choose where to boot from or select the display protocol \( Wayland or Xorg \) in a GUI fashion, also they take care of the launch process. I'll show the installation process of **SDDM**, which is highly customizable and compatible. > Note: hyprland does not support any display manager, however SDDM is reported to work flawlessly from the [wiki](https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland) @@ -587,7 +585,7 @@ reboot # Gaming Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming. Before going further I'll assume that you have installed the video drivers, also make sure to install with pacman, if you haven't done it already: `lib32-mesa`, `lib32-vulkan-radeon` and additionally `lib32-pipewire` \( Note that the `multilib` repository must be enabled, [here](#32-bit-support) I've explained how to do it ). Let's break down what is needed to game: @@ -618,7 +616,7 @@ flatpak install flathub com.usebottles.bottles ## Windows compatibility layers Proton is the compatibility layer developed by Valve, which includes **DXVK**( DirectX 9-10-11 to Vulkan), **VKD3D** ( DirectX 12 to Vulkan ) and a custom version of **Wine**. It is embedded in Steam and can be enabled for **non** native games direclty in Steam: `Steam > Settings > Compatibility > Enable Steam Play for all other titles`. A custom version of proton, **Proton GE** exists and can be used as an alternative if something is broken or doesn't perform as expected. Can be either [downloaded manually](https://github.com/GloriousEggroll/proton-ge-custom#installation) or through yay as below. ```Zsh # Installation through yay @@ -653,15 +651,17 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com <br> # Tips and tricks - On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration) - To enable Freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings under the name of **adaptive sync** - Some considerations if you are thinking about switching to a custom kernel: - You have to manually recompile it each time there is a new update unless you use a precompiled kernel from pacman or aur such as `linux-zen`. - There is no such thing as the best kernel, all kernels make tradeoffs \( eg: latency for throughtput \) and this it why it's generally advised to stick with the generic one. - If you are mainly a gamer you MAY consider the **TKG** or **CachyOS** kernel. These kernels contain many optimizations and are highly customizable, however the TKG kernel has to be compiled \( mainly it's time consuming, not hard \), while CachyOS kernel comes already packaged and optimized for specific hardware configurations, and can be simply installed with pacman upon adding their repos to `pacman.conf`. Some users have reported to experience a smoother experience with lower latency, however I couldn't find consistent information about this and it seems that is all backed by a personal sensation and not a result obtained through objective measurements \( Also this is difficult because in Linux there can be countless configuration variables and it also depends by the graphic card being used \). <br> -
mjkstra revised this gist
Aug 22, 2024 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -486,7 +486,7 @@ sudo pacman -S mesa vulkan-radeon libva-mesa-driver mesa-vdpau ### 32 Bit support If you want to add **32-bit** support, we need to enable the `multilib` repository on pacman: edit `/etc/pacman.conf` and uncomment the `[multilib]` section _\( ie: remove the hashtag from each line of the section. Should be 2 lines \)_. Now we can install the additional packages. ```Zsh # Refresh and upgrade the system @@ -587,6 +587,7 @@ reboot # Gaming Gaming on linux has become a very fluid experience, so I'll give some tips on how to setup your arch distro for gaming. Before going further I'll assume that you have installed the video drivers, also make sure to install with pacman, if you haven't done it already, `lib32-mesa`, `lib32-vulkan-radeon` and additionally `lib32-pipewire` \( Note that the `multilib` repository must be enabled, [here](#32-bit-support) I've explained how to do it ). Let's break down what is needed to game: @@ -670,6 +671,6 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com 2. Reflector configuration 3. Snapper: a more advanced snapshot program as a timeshift alternative. 4. Overhaul the subvolumes partitioning into a richer set including @log @cache @tmp @snapshots. This way they they won't be included when snapshotting the root subvolume ( ie: @ ). 5. Better fstab structure <br> -
mjkstra revised this gist
Aug 22, 2024 . 1 changed file with 8 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -40,11 +40,11 @@ # Introduction In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and prepare arch for gaming. <br> The goal of this guide is to help new users set up a modern and minimal installation of Arch Linux that serves as a starting point and to help them navigate the wiki and understanding topics by abstracting away complexity when not needed. Also there will be external references to justify certain choices that I've made so that curious users can delve into the details. <br> @@ -56,7 +56,7 @@ I **won't** encrypt the system because I don't need it. Also note that encryptio <br> I'll **skip** the Arch ISO installation media preparation. <br> @@ -481,12 +481,12 @@ For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/t # libva-mesa-driver: VA-API h/w video decoding support # mesa-vdpau: VDPAU h/w accelerated video decoding support sudo pacman -S mesa vulkan-radeon libva-mesa-driver mesa-vdpau ``` ### 32 Bit support *IF* you want add **32-bit** support ( This is typically needed for gaming ), we need to enable the `multilib` repository on pacman: edit `/etc/pacman.conf` and uncomment the `[multilib]` section _\( ie: remove the hashtag from each line of the section. Should be 2 lines \)_. Now we can install the additional packages. ```Zsh # Refresh and upgrade the system @@ -658,10 +658,9 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com > Tip: To enable Freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings under the name of **adaptive sync** > Some considerations if you are thinking about switching to a custom kernel: > 1. You have to manually recompile it each time there is a new update unless you use a precompiled kernel from pacman or aur such as `linux-zen` > 2. Changing to a custom kernel can be hit or miss in terms of performance gain depending on your needs. If you are mainly a gamer you should consider the **TKG** or **CachyOS** kernel. They both provide a smoother experience, contain a lot of optimizations and are highly customizable. However the TKG kernel has to be compiled \( mainly it's time consuming not hard \), while CachyOS kernel comes already packaged and optimized for specific hardware configurations, and can be simply installed with pacman upon adding their repos to `pacman.conf` <br> -
mjkstra revised this gist
Jun 26, 2024 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -44,7 +44,7 @@ In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEF <br> The goal of this guide is to help new users interface with Arch Linux by summarizing the main installation processes and grouping up further configuration choices as well as providing a **modern, minimalistic and personal** touch to it, which consists in "design" choices. Because of these reasons, when possible I've added external references if one wants to dive more into the details. <br> -
mjkstra revised this gist
Jun 26, 2024 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -44,7 +44,7 @@ In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEF <br> The goal of this guide is to help new users interface with Arch Linux by summarizing the main installation processes and grouping up further configuration choices as well as providing a **modern, minimalistic and personal** touch to it, which consists in "design" choices. Because of this reasons, when possible I've added external references if one wants to dive more into the details. <br> -
mjkstra revised this gist
Mar 31, 2024 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -531,8 +531,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly**, **light** and it's also used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest sudo pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview ark mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). -
mjkstra revised this gist
Nov 22, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -532,7 +532,7 @@ On top of that I'll add a **display manager**, which you can omit if you don't l ```Zsh # Install the plasma desktop environment, plasma wayland session, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest sudo pacman -S plasma-desktop plasma-wayland-session plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview ark mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). -
mjkstra revised this gist
Nov 21, 2023 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -232,15 +232,16 @@ mount /dev/nvme0n1p1 /mnt/efi # "amd-ucode" microcode updates for the cpu. If you have an intel one use "intel-ucode" # "vim" my goto editor, if unfamiliar use nano # "networkmanager" to manage Internet connections both wired and wireless ( it also has an applet package network-manager-applet ) # "pipewire pipewire-alsa pipewire-pulse pipewire-jack" for the new audio framework replacing pulse and jack. # "wireplumber" the pipewire session manager. # "reflector" to manage mirrors for pacman # "zsh" my favourite shell # "zsh-completions" for zsh additional completions # "zsh-autosuggestions" very useful, it helps writing commands [ Needs configuration in .zshrc ] # "openssh" to use ssh and manage keys # "man" for manual pages # "sudo" to run commands as other users pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber reflector zsh zsh-completions zsh-autosuggestions openssh man sudo ``` <br> -
mjkstra revised this gist
Nov 21, 2023 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -530,8 +530,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly**, **light** and it's also used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, plasma wayland session, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest sudo pacman -S plasma-desktop plasma-wayland-session plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). -
mjkstra revised this gist
Nov 21, 2023 . 1 changed file with 11 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -220,7 +220,7 @@ mount /dev/nvme0n1p1 /mnt/efi ```Zsh # This will install some packages to "bootstrap" methaphorically our system. Feel free to add the ones you want # "base, linux, linux-firmware" are needed. If you want a more stable kernel, then swap linux with linux-lts # "base-devel" base development packages # "git" to install the git vcs # "btrfs-progs" are user-space utilities for file system management ( needed to harness the potential of btrfs ) @@ -343,11 +343,11 @@ passwd # Add a new user, in my case mjkstra. # -m creates the home dir automatically # -G adds the user to an initial list of groups, in this case wheel, the administration group. If you are on a Virtualbox VM and would like to enable shared folders between host and guest machine, then also add the group vboxsf besides wheel. useradd -mG wheel mjkstra passwd mjkstra # Uncomment the wheel group to allow execution of any command( ie: remove the # from the wheel line below where it says something like: "Uncomment to let members of group wheel execute any action" ). if you want to use nano then write EDITOR=nano instead. EDITOR=vim visudo ``` @@ -386,6 +386,8 @@ umount -R /mnt # Reboot the system and unplug the installation media reboot # Now you'll be presented at the terminal. Log in with your user account, for me its "mjkstra". # Enable and start the time synchronization service timedatectl set-ntp true ``` @@ -434,7 +436,7 @@ To learn more about yay read [here](https://github.com/Jguer/yay#yay) ```Zsh # Install yay sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si # Install "timeshift-autosnap", a configurable pacman hook which automatically makes snapshots before pacman upgrades. yay -S timeshift-autosnap @@ -490,7 +492,7 @@ sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau yay # Install 32bit support for mesa, vulkan, VA-API and VDPAU sudo pacman -S lib32-mesa lib32-vulkan-radeon lib32-libva-mesa-driver lib32-mesa-vdpau ``` <br> @@ -529,7 +531,7 @@ On top of that I'll add a **display manager**, which you can omit if you don't l ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest sudo pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). @@ -604,7 +606,7 @@ I'll install **Steam** and to access games from other launchers I'll use **Bottl ```Zsh # Install steam and flatpak sudo pacman -S steam flatpak # Install bottles through flatpak flatpak install flathub com.usebottles.bottles @@ -629,7 +631,7 @@ We can use gamemode to gain extra performance. To enable it read [here](https:// ```Zsh # Install gamemode sudo pacman -S gamemode ``` <br> @@ -642,7 +644,7 @@ In order to easily configure mangohud, I'll use **Goverlay**. ```Zsh # Install goverlay which includes mangohud as a dependency sudo pacman -S goverlay ``` To overclock your system, i suggest installing [**corectrl**](https://gitlab.com/corectrl/corectrl) if you have an AMD Gpu or [**TuxClocker**](https://github.com/Lurkki14/tuxclocker) for NVIDIA. -
mjkstra revised this gist
Nov 17, 2023 . 1 changed file with 13 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -36,7 +36,7 @@ - [Generic optimizations](#generic-optimizations) - [Overclocking and monitoring](#overclocking-and-monitoring) - [Tips and tricks](#tips-and-tricks) - [Things to add](#things-to-add) # Introduction @@ -182,12 +182,13 @@ mount /dev/nvme0n1p2 /mnt ## Disk mounting I will lay down the subvolumes on a **flat** layout, which is overall superior in my opinion and less constrained than a **nested** one. What's the difference ? If you're interested [this section of the old sysadmin guide](https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/SysadminGuide.html#Layout) explains it. ```Zsh # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @ # NOTICE: the list of subvolumes will be increased in a later release of this guide, upon proper testing. To learn more go to the "Things to add" chapter. btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home # Unmount the root fs umount /mnt @@ -524,11 +525,11 @@ On top of that I'll add a **display manager**, which you can omit if you don't l ## Option 1: KDE-plasma **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly**, **light** and it's also used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular gwenview mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). @@ -635,8 +636,9 @@ pacman -S gamemode ## Overclocking and monitoring To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://github.com/flightlessmango/MangoHud#normal-usage). In order to easily configure mangohud, I'll use **Goverlay**. ```Zsh # Install goverlay which includes mangohud as a dependency @@ -660,9 +662,12 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com <br> # Things to add 1. Additional pacman configuration \( paccache, colors, download packages simultaneously \) 2. Reflector configuration 3. Snapper: a more advanced snapshot program as a timeshift alternative. 4. Overhaul the subvolumes partitioning into a richer set including @log @cache @tmp @snapshots. This way they they won't be included when snapshotting the root subvolume ( ie: @ ). 5. Fstab overhaul by editing it <br> -
mjkstra revised this gist
Nov 14, 2023 . 1 changed file with 5 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,8 +18,8 @@ - [Grub configuration](#grub-configuration) - [Unmount everything and reboot](#unmount-everything-and-reboot) - [Automatic snapshot boot entries update](#automatic-snapshot-boot-entries-update) - [Virtualbox support](#virtualbox-support) - [Aur helper and additional packages installation](#aur-helper-and-additional-packages-installation) - [Finalization](#finalization) - [Video drivers](#video-drivers) - [Amd](#amd) @@ -404,9 +404,10 @@ sudo systemctl enable grub-btrfsd <br> ## Virtualbox support Follow these steps if you are running Arch on a Virtualbox VM. This will enable features such as **clipboard sharing**, **shared folders** and **screen resolution tweaks** ```Zsh # Install the guest utils @@ -422,7 +423,7 @@ systemctl enable vboxservice.service <br> ## Aur helper and additional packages installation To gain access to the arch user repository we need an aur helper, I will choose yay which also works as a pacman wrapper \( which means you can use yay instead of pacman. Cool, right ? \). Yay has a CLI, but if you later want to have an aur helper with a GUI, I advise installing [`pamac`](https://gitlab.manjaro.org/applications/pamac), which is the default on Manjaro. -
mjkstra revised this gist
Nov 13, 2023 . 1 changed file with 7 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -471,7 +471,7 @@ For this guide I'll install the [**AMDGPU** driver](https://wiki.archlinux.org/t # What are we installing ? # mesa: DRI driver for 3D acceleration # xf86-video-amdgpu: DDX driver for 2D acceleration in Xorg. This is a personal choice, you can avoid installing it if you prefer the kernel modesetting driver. # vulkan-radeon: vulkan support # libva-mesa-driver: VA-API h/w video decoding support # mesa-vdpau: VDPAU h/w accelerated video decoding support @@ -526,8 +526,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, powerful QT theme engine, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen kvantum powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). @@ -619,8 +619,6 @@ Proton is the compatibility layer developed by Valve, which includes **DXVK**( D yay -S proton-ge-custom-bin ``` <br> ## Generic optimizations @@ -637,10 +635,11 @@ pacman -S gamemode ## Overclocking and monitoring To live monitor your in-game performance, you can use **mangohud**. To enable it read [here](https://github.com/flightlessmango/MangoHud#normal-usage) **Goverlay** is a tool to easily configure mangohud. ```Zsh # Install goverlay which includes mangohud as a dependency pacman -S goverlay ``` To overclock your system, i suggest installing [**corectrl**](https://gitlab.com/corectrl/corectrl) if you have an AMD Gpu or [**TuxClocker**](https://github.com/Lurkki14/tuxclocker) for NVIDIA. @@ -651,7 +650,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration) > Tip: To enable Freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings under the name of **adaptive sync** > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons: > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen` -
mjkstra revised this gist
Nov 12, 2023 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -526,8 +526,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\). -
mjkstra revised this gist
Nov 12, 2023 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -376,9 +376,6 @@ grub-mkconfig -o /boot/grub/grub.cfg # Enable newtork manager before rebooting otherwise, you won't be able to connect systemctl enable NetworkManager # Exit from chroot exit @@ -387,6 +384,9 @@ umount -R /mnt # Reboot the system and unplug the installation media reboot # Enable and start the time synchronization service timedatectl set-ntp true ``` <br> -
mjkstra revised this gist
Nov 12, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -545,7 +545,7 @@ Now don't reboot your system yet. If you want a display manager, which is genera ```Zsh # Install hyprland from tagged releases and other utils: # swaylock: the lockscreen # wofi: the wayland version of rofi, an application launcher, extremely configurable # waybar: a status bar for wayland wm's # dolphin: a powerful file manager from KDE applications # alacritty: a beautiful and minimal terminal application, super configurable -
mjkstra revised this gist
Nov 12, 2023 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -52,7 +52,7 @@ I **won't** prepare the system for **secure boot** because the procedure of cust <br> I **won't** encrypt the system because I don't need it. Also note that encryption always adds a little bit of overhead and that the boot would become inevitably **slower to varying degrees**, depending on your configuration. However it may be important in other scenarios, so if you really wanna go this way I recommend reading [the wiki page in this regards](https://wiki.archlinux.org/title/Dm-crypt) and **must** perform the documented steps **IMMEDIATELY AFTER** [disk partitioning](#disk-partitioning) <br> @@ -187,7 +187,7 @@ mount /dev/nvme0n1p2 /mnt btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home # The list of subvolumes will be increased in a later release of this guide, upon proper testing. # Current plans are to add the following subvolumes: @log @cache @tmp. This way they they won't be included when snapshotting the root subvolume ( ie: @ ) # Unmount the root fs umount /mnt -
mjkstra revised this gist
Nov 12, 2023 . 1 changed file with 18 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -52,7 +52,7 @@ I **won't** prepare the system for **secure boot** because the procedure of cust <br> I **won't** encrypt the system because I don't need it. Also note that encryption always adds a little bit of overhead and that the boot would become inevitably **slower to varying degrees**, depending on your configuration. However it may be important in other scenarios, so if you really wanna go this way I recommend reading [the wiki page in this regards](https://wiki.archlinux.org/title/Dm-crypt) and **must** perform the documented steps **IMMEDIATELY AFTER** the [disk partitioning step](#disk-partitioning) <br> @@ -186,6 +186,8 @@ mount /dev/nvme0n1p2 /mnt # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @ btrfs subvolume create /mnt/@ btrfs subvolume create /mnt/@home # The list of subvolumes will be increased in a later release of this guide, upon proper testing. # Current plans are to include the following subvolumes @log @cache @tmp so that they won't be included in the root @ subvolume # Unmount the root fs umount /mnt @@ -204,7 +206,7 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home <br> Now we have to mount the efi partition. In general there are 2 main mountpoints to use: `/efi` or `/boot` but in this configuration i am **forced** to use `/efi`, because by choosing `/boot` we could experience a **system crash** when trying to restore `@` _\( the root subvolume \)_ to a previous state after kernel updates. This happens because `/boot` files such as the kernel won't reside on `@` but on the efi partition and hence they can't be saved when snapshotting `@`. Also this choice grants separation of concerns and also is good if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points) ```Zsh mkdir -p /mnt/efi @@ -534,16 +536,25 @@ Now don't reboot your system yet. If you want a display manager, which is genera ## Option 2: Hyprland [WIP] > Note: this section needs configuration and is basically empty, I don't know when and if I will expand it but at least you have a starting point, which is the wiki, the master tutorial and some packages to start with <br> **Hyprland** is a **tiling WM** that sticks to the wayland protocol. It looks incredible and it's one of the best Wayland WMs right now. It's based on **wlroots** the famous library used by Sway, the most mature Wayland WM there is. I don't know if I would recommend this to beginners because it's a different experience from Windows/Ubuntu/PopOs and distros like that. Moreover it requires you to read the [wiki](https://wiki.hyprland.org/) for configuration but it also features a [master tutorial](https://wiki.hyprland.org/Getting-Started/Master-Tutorial), which serves as a great starting point. The good part is that even if it seems discouraging, it's actually an easy read because it is written beautifully, sometimes even better than the Arch wiki ! ```Zsh # Install hyprland from tagged releases and other utils: # swaylock: the lockscreen # wofi: is the wayland version of rofi, an application launcher, extremely configurable # waybar: a status bar for wayland wm's # dolphin: a powerful file manager from KDE applications # alacritty: a beautiful and minimal terminal application, super configurable pacman -S --needed hyprland swaylock wofi waybar dolphin alacritty # wlogout: a logout/shutdown menu yay -S wlogout ``` <br> # Adding a display manager @@ -640,7 +651,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration) > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings under the name of **adaptive sync** > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons: > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen` -
mjkstra revised this gist
Nov 10, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -204,7 +204,7 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home <br> Now we have to mount the efi partition. In general there are 2 main mountpoints to use: `/efi` or `/boot` but in this configuration i am **forced** to use `/efi`, because by choosing `/boot` we could experience a **system crash** when trying to restore `@root` to a previous state after kernel updates. This happens because boot files such as the kernel aren't stored on `@root` but on the efi partition and hence they can't be saved when snapshotting `@root`. Also this choice grants separation of concerns and also is good if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points) ```Zsh mkdir -p /mnt/efi -
mjkstra revised this gist
Nov 10, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -237,7 +237,7 @@ mount /dev/nvme0n1p1 /mnt/efi # "openssh" to use ssh and manage keys # "man" for manual pages # "sudo" to run commands as other users pacstrap -K /mnt base base-devel linux linux-firmware git btrfs-progs grub efibootmgr grub-btrfs inotify-tools timeshift vim networkmanager pipewire pipewire-alsa pipewire-pulse pipewire-jack reflector zsh zsh-completions zsh-autosuggestions openssh man sudo ``` <br> -
mjkstra revised this gist
Nov 10, 2023 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -640,7 +640,7 @@ To overclock your system, i suggest installing [**corectrl**](https://gitlab.com > Tip: On KDE disabling mouse acceleration is simple, just go to the settings via the GUI and on the mouse section enable the flat acceleration profile. If not using KDE then read [here](https://wiki.archlinux.org/title/Mouse_acceleration) > Tip: To enable freesync or Gsync you can read [here](https://wiki.archlinux.org/title/Variable_refresh_rate), depending on your session \( Wayland or Xorg \) and your gfx provider \( Nvidia, AMD, Intel \) the steps may differ. On a KDE wayland session, you can directly enable it from the monitor settings > About custom kernels: To be fair I don't recommend changing the kernel to a custom one, for many reasons: > 1. You have to manually update it and recompile it each time unless you use a precompiled kernel from pacman or aur such as `linux-zen` -
mjkstra revised this gist
Nov 10, 2023 . 1 changed file with 6 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -40,19 +40,19 @@ # Introduction In this guide I'll show how to install **Arch Linux** with **BTRFS** on an **UEFI system**. I'll comment each step to make it understandable. Apart from the basic terminal installation I'll add steps to install video drivers, a desktop environment and to configure arch for gaming. <br> The goal of this guide is to help new users interface with Arch Linux by summarizing the main installation processes and grouping up further configuration choices as well as providing a **modern, minimilastic and personal** touch to it, which consists in "design" choices. Because of this reasons, when possible I've added external references if one wants to dive more into the details. <br> I **won't** prepare the system for **secure boot** because the procedure of custom key enrollment in the BIOS is dangerous and can lead to a bricked system, read the warnings [here](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_and_enrolling_keys). If you are wondering why not using the default OEM keys in the BIOS, it's because they will make secure boot useless by being most likely not enough secure, as the arch wiki [states](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Implementing_Secure_Boot). <br> I **won't** encrypt the system because I don't need it and in my opinion has few uses cases in which is actually needed \( you can always encrypt sensible information with gpg \). Also the boot would become inevitably **slower**. <br> @@ -165,6 +165,8 @@ ENTER ## Disk formatting As a file system I've chosen to use **BTRFS** which has evolved quite a lot during the years. It has a set of incredible functionalities but is most known for its **Copy on Write** feature which enables it to make system snapshots in a blink of a an eye and to save a lot of disk space, which can be even saved to a greater extent by eanbling **compression**. Also it enables the creation of **subvolumes** which can be individually snapshotted. Learn more [here](https://wiki.archlinux.org/title/Btrfs) ```Zsh # Find the efi partition with fdisk -l or lsblk. For me it's /dev/nvme0n1p1 and format it. mkfs.fat -F 32 /dev/nvme0n1p1 @@ -191,7 +193,7 @@ umount /mnt <br> For this guide I'll compress the btrfs subvolumes with **Zstd**, which has proven to be [a good algorithm among the choices](https://www.phoronix.com/review/btrfs-zstd-compress) ```Zsh # Mount the root and home subvolume. If you don't want compression just remove the compress option. -
mjkstra revised this gist
Nov 8, 2023 . 1 changed file with 2 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,8 +7,7 @@ - [Main installation](#main-installation) - [Disk partitioning](#disk-partitioning) - [Disk formatting](#disk-formatting) - [Disk mounting](#disk-mounting) - [Packages installation](#packages-installation) - [Fstab](#fstab) - [Context switch to our new system](#context-switch-to-our-new-system) @@ -177,11 +176,9 @@ mkfs.btrfs /dev/nvme0n1p2 mount /dev/nvme0n1p2 /mnt ``` <br> ## Disk mounting ```Zsh # Create the subvolumes, in my case I choose to make a subvolume for / and one for /home. Subvolumes are identified by prepending @ @@ -205,8 +202,6 @@ mount -o compress=zstd,subvol=@home /dev/nvme0n1p2 /mnt/home <br> Now we have to mount the efi partition. There are 2 main mountpoints to use: `/efi` or `/boot`. I'll choose `/efi` because it grants separation of concerns and also is a good choice if one wants to encrypt `/boot`, since you can't encrypt efi files. Learn more [here](https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points) ```Zsh -
mjkstra revised this gist
Nov 7, 2023 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -527,8 +527,8 @@ On top of that I'll add a **display manager**, which you can omit if you don't l **KDE Plasma** is a very popular DE which comes bundled in many distributions. It supports both the older more stable **Xorg** and the newer **Wayland** protocols. It's **user friendly** and also it's used on the Steam Deck, which makes it great for **gaming**. I'll provide the steps for a minimal installation and add some basic packages. ```Zsh # Install the plasma desktop environment, the audio and network applets, task manager, screen configurator, global shortcuts, power manager, some useful basic addons, configuration for GTK application theming and other package of personal interest pacman -S plasma-desktop plasma-pa plasma-nm plasma-systemmonitor kscreen khotkeys powerdevil kdeplasma-addons kde-gtk-config breeze-gtk alacritty dolphin firefox kate okular mpv gimp ``` Now don't reboot your system yet. If you want a display manager, which is generally recommended, head to the [related section](#adding-a-display-manager) in this guide and proceed from there otherwise you'll have to [manually configure](https://wiki.archlinux.org/title/KDE#From_the_console) and launch the graphical environment each time \(which I would advise to avoid\).
NewerOlder