Table of Contents
ToggleSystem requirements & notes
The hardware requirements might seem high at first but this is mostly due to Calamares taking a lot of RAM during installation and some other performance-enhancing applications used. For window managers, the actually needed specs are lower than KDE requirements. A thumbdrive of 4 GB is needed for regular versions while the gaming edition needs 8GB space.
Requirements (dr460nized)
- MINIMUM
- 30 GB Disk Storage
- 4 GB RAMthumb drive
- RECOMMENDED
- 40 GB Disk Storage
- 8 GB RAM
Important notes
- We don’t recommend running Garuda Linux in virtual machines as it is optimized to run on real hardware. Some things also refuse to run in Virtualbox such as Picom or Alacritty without proper configuration. Likewise, we won’t provide support for this use case ⚠️
- If you are planning to dual-boot with Windows (uh) – read this Arch wiki article first as it answers most questions you might have! It’s certainly possible but Windows might overwrite Garuda’s bootloader (GRUB) which makes repairing the bootloader needed. Don’t dual-boot if you are not capable of doing this yourself ⚠️
- The idle RAM usage will most likely be higher than on other distributions as we use ZRAM and some other tweaks to enhance the general system performance. Unused RAM is wasted RAM, it’s as easy as that!
- To burn the iso to your thumb drive, use Ventoy, Popsicle, command line tools like dd, or any other reliable disk flashing utility.
- Don’t try to use Wayland (Wayfire and Sway) if running an NVIDIA GPU (we all know what Linus said) ⚠️
- For old NVIDIA graphics cards use nvidia-390xx as the video driver
Installation Manual
This is a manual on how to install Garuda Linux. If you have done it before, you might still want to stay here because you may learn something new 😁
Before it starts
- To learn about the installation of Garuda on MacBook Pro, you can visitthis page.
- Check your hardware. To check Garuda’s system requirements and some other notes, visit this wiki page. (optional if you are sure that your computer will not explode)
- If you want to dual-boot with Windows (this is unsupported)! ⚠️
- Make sure you install Windows first. This is technically optional if you have a UEFI system and know your way around changing the default bootloader, but installing Windows first is the easier way.
- Make sure to select “install alongside” in the partitioning step in the installer.
- Download the preferred edition. Also, verify the checksum to ensure that the file is downloaded successfully. The officially recommended way of doing this is using our Garuda Downloaderapplication, which takes care of downloading (who would have expected!) and writing the downloaded iso to your thumb drive via GUI afterward. You might as well provide an existing ISO as a seed file – the application is able to minimize the bandwidth used by taking advantage of Zsync2, which just downloads the actual differences of the file.
- Once it’s done, boot the drive you just flashed above by selecting it as a boot option in your device’s BIOS/UEFI setup.
- More information on how to achieve this might be available here as the procedure depends on the device manufacturer.
Installation
We booted the live installation medium. Click on the “Install” button on the desktop to launch Calamares. You should plug in a charging cable if you are using a laptop. An internet connection is optional.
Once it opens you will notice that there are 8 steps in Calamares:
- WELCOME – Pick your preferred system/installer language
- LOCATION – Set your device timezone
- KEYBOARD – Set your Keyboard layout
- PARTITIONS
- If you don’t care, choose “Erase Disk”. This is recommended if you want to use Garuda as the main OS.
- If you want to dual boot with an existing OS, select “install alongside”. You can then select a partition to be resized in the partition view at the bottom of the page.
- If you care, select “Manual Partitioning”. A partitioning/mounts editor will be available later in the setup process. Only use this if you know what you are doing. The previous 2 options should be sufficient in the vast majority of cases.
- USERS – Configure your initial admin user
- SUMMARY – The changes that will be applied will be shown to you one last time.
- INSTALL – The actual installation of Garuda Linux. The progress bar will show the current installation progress.
- FINISH – Self-explanatory.
MAY BE USEFUL:
- An Arch Linux wiki page about partitioning
- An Arch Linux wiki page about dual booting with Windows (pls, dont)
Post-installation
Okay, you installed Garuda Linux, right? Congrats! I’m proud of you!
Let’s start with some essential things to do after the installation.
Setup assistant – running through steps automatically
The setup assistant will open up after the first boot process has been completed. It will run you through some essential steps which should be performed after an installation and offers an additional wizard which can install a lot of common Linux software. The first prompt will ask you to update the system, which is highly recommended. This will run the update, update mirror lists to get the best download speed, a few additional maintenance tasks, and most importantly: it can apply eventually required manual interventions automatically by updating the garuda-update script to the latest version before proceeding with the actual update. We occasionally use this to work around some problematic situations like the recent example of a required reinstallation of all packages affected by Arch pushing Python 3.10 to its repos.
After that, you can start the application wizard to help find fitting and required software – printer support is also one of those options.
Most applications have a short description about what the package actually does – this can help you decide which option to take.
In the end, the assistant will open a terminal window to install & set up the selected options. Additional setup (like enabling systemd services) for packages that require them will be handled automatically.
Conclusion
That is all that we needed to fully install the system. Of course, there are also more things to learn like Octopi, Garuda Gamer,and many more. We have a wiki article describing further steps to take when setting up your fresh installation over here. Reading this article is highly recommended as it demonstrates some things most people would like to go through on their new installation.
And now, goodbye. Have a good linuxperience! 😌
P.S.: I am really proud of you if you installed Garuda Linux for the first time 😇
MacBook Pro Installation Instructions
The purpose of this guide is to give general orientation about how to install Garuda Linux on a MacBook Pro. However, know in advance that this may cause hardware compatibility issues that will not be covered here. If you choose to proceed, do so at your own risk. To find out if your Macbook Pro is compatible with Garuda (which is based on Arch Linux), it is recommended to check the extensive Arch Linux wiki article and the specifications of your Mac’s hardware. It is also advised to verify the Arch Linux forum prior to the installation to know which problems you might have during or after the installation process.
Backup
The first step before installing any OS is to back up your current one. This is even more critical if you will have to resize your current OS X partitions to accommodate Garuda. Since backing up important information can be very time consuming, it’s advisable to properly conclude this step before proceeding.
Firmware updates
Before installing Garuda Linux on your MacBook Pro, it is important to ensure that the latest firmware for your hardware is properly installed. To do this, check for Software Update’s available in your Apple Store and the System Preferences.
After installing any updates, reboot the computer and check again to ensure that everything has been properly installed.
If you don’t have OS X installed on your MacBook Pro anymore, you have 2 options: ignore any firmware updates and proceed to the next step or reinstall OS X, update everything and then remove it or use it alongside with Garuda Linux in dual boot mode.
Partitioning
The MacBook Pro is partitioned using the GPT scheme by default. This is the typical partition layout you will find in a MacBook Pro:
- EFI: a 200 MB Fat 32 partition which is used for the UEFI boot
- Macintosh HD: a HFS+ partition that contains your OS X
(MacBook Pros older than 2013/2014 may also contain a Recovery HD Partition)
If you want to remove OS X completely and install Garuda Linux you can proceed to step “Download”.
If you want to keep both systems on your MacBook Pro with dual booting, you will have to manually resize the Macintosh HD partition to open space for Garuda Linux.
To do so, first you have to check if your OS X partition is encrypted with FileVault. If it is, you must manually disable the encryption before proceeding. You can re-enable FileVault after resizing the partition.
After disabling FileVault, verify the recommended partition size for the Garuda Linux distribution that you want to install.
Open Disk Utility and resize the OS X partition until there is enough free space for the Garuda Linux distro. Apply the changes and wait for Disk Utility to finish (this may take a while). Make sure you also leave enough space for OS X to run properly. Keep in mind that it will get heavier over time with Apple’s updates.
The new empty space will be properly partitioned for Garuda Linux during the installation.
Download
Download the desired version of Garuda Linux from the official site. Check the integrity of the dowloaded iso with the command,
In MacOS terminal:
shasum -a 256 /path/to/file.iso
In Linux terminal:
sha256sum /path/to/file.iso
and compare the output to the corresponding sha256 file from the Downloads section. If they don’t match, re-download the iso and check again.
Burn the downloaded ISO to a bootable USB key/pendrive/SD card using the Terminal. Check the recommended size for the bootable drive beforehand.
Installation
Internet Connection
Reboot your MacBook Pro with the bootable drive connected. After the startup beep, hold down the Option button in order to see the boot options. Then, select the new USB boot option and Garuda Linux will be booted from the drive.
To install Garuda Linux you will need your MacBook Pro to be connected to the Internet in order to fetch the packages. To do this, you have the following options:
- Thunderbolt Ethernet Adapter
- Wi-fi
- USB tethering
Using the Thunderbolt Ethernet Adapter is by far the easiest way, since the system will recognize it automatically and you won’t need to do anything else.
Wi-fi is usually easy as well, since Garuda Linux is capable of recognizing some MacBook Pro drivers with no problems.
However, if it does not work, you may have to manually download the drivers to make the wifi driver work or use USB tethering with your phone. I recommend following the steps found on the Arch Linux wiki for your specific MacBook Pro model to do this properly.
Local Settings
The Garuda Linux installation process is extremely simple. Once the system has booted properly from your USB drive you will see a welcome window in the middle of the screen and a Install Garuda Linux icon on the top left corner of your monitor.
Click on the install icon and follow the instructions to properly adjust your language, time zone and keyboard settings. Make sure you test the keyboard settings (symbols and special characters) before proceeding.
Partitioning
In the Partitions step, you will see two options: Erase disk and manual partitioning.
If you want to delete everything on your MacBook Pro, including the OS X, you can proceed with this option. Remember, everything will be erased and Garuda Linux will configure your partitions automatically. You may then proceed to the next step of this guide.
If you want to dual boot your Garuda Linux with the current OS X, choose Manual Partitioning and click “next”.
Now you should see the existing partitions of your MacBook Pro as well as the free space that you just created when you resized the OS X partition using Disk Utility.
Warning: Do not click on New Partition Table, because that will erase your entire disk and create a new partition scheme!
Now, select the free space volume and click on the button labeled “Create”. You will use this to create the needed/desired partitions for the Garuda Linux. These partitions you create here will only take effect after you click on the “Next” button.
The recommended partition scheme to be created here is:
- One partition with 300MB, formatted as “fat32” and configured with the mount point “/boot/efi”. This will be the partition that your MacBook Pro will use to boot.
- One partition with all the remaining free space to be your Garuda Linux “root” partition, which will be formatted as “btrfs” and configured with the mount point “/”.
If you want a separate “/home” partition, this is the moment to create it as well. This guide will not discuss further details of separated “/home” partitions here.
If you want a separate Swap partition (see https://wiki.archlinux.org/index.php/swap), this is also the moment to create it. To do it, create a new partition with the desired size, configure it’s File System as “linuxswap” and flag it as “swap”. This guide will not discuss further details of how much size is needed for a swap partition.
Now that the partitions have been designed, you may apply the settings by clicking “Next”.
Keep in mind that with this partition scheme that has been presented here, the MacBook Pro will start using the new Garuda Linux EFI partition as the main boot partition. If you want to dual boot, it is also possible to skip the creation of a new EFI partition and configure the already existing OS X EFI partition to “see” both operating systems. However, this procedure is more complex and will not be covered in this guide.
Users and Reviewing
On the next step you will be prompted to choose the username and password for your new Garuda Linux. After this step, you will be able to see a summary of all the changes that the installer is about to make. Ensure that everything is correct, then click on “Install”.
When the installation is concluded, click on restart and finish.
Post Installation
If your installation was successful, your computer should reboot directly into Garuda Linux Grub screen. You can now select “Garuda Linux” and run it for the first time to check if everything is working correctly.
Once your Garuda Linux boots, you should start connecting it to the internet to update the system. If your wi-fi adapter has been automatically recognized and is working properly, you can already use it normally. If it isn’t, use the same method you did on the Installation step to connect it to the internet.
Once connected, run update the system by running the following command on the terminal:
sudo pacman -Syu
After this, reboot the computer. You may want to go into the settings to adjust the screen scaling, since the MacBook Pro has a high resolution and the icons might be a bit small on the first boot. Keep in mind that you must reboot to apply the scaling changes.
Now that your system is up to date, you can properly check it for known bugs. Here I will list some of them but everything depends on the hardware you’re using and the version of your MacBook Pro.
Known bugs and compatibility fixes
As mentioned in the beginning of this guide, it is possible that you will find issues with your hardware due to lack of appropriate drivers. This is not Garuda Linux or Arch Linux fault, since this operating system is not originally built to run on proprietary hardware that has been meticulously customized to run with it’s own proprietary software. Therefore, everything that you see working here is the resulting effort of a large community working for free and if you find something that does not work, feel free to help making it work yourself.
Wi-fi
If Garuda Linux is not automatically showing that you have a wi-fi adapter, you have to manually download and install the driver. In order to do it properly first you must identify the version of your MacBook Pro. You can do this by opening a terminal and typing the following command:
neofetch
The line “Host” should return something like “MacBookProXX” where XX will be the year/version of your model. In the line “CPU” you can get the rest of the information you need to know the details of your computer.
Now, with this information you can search for the correct driver on the Arch Linux Wiki and GitHub. Keep in mind however that while there are numerous volunteers working hard to get Arch Linux and it’s derivative distributions working on all sorts of platforms, it is possible that your specific model does not have a fully functional stable driver ready yet. This is particularly more likely with the most recent models.
Webcam
To make the webcam work properly, you will have to manually download a driver compatible with your model. One of the only ones available for Arch Linux distros can be found at https://aur.archlinux.org/packages/bcwc-pcie-git/
Dual booting
Once you have finished the adjustments you want, you can now reboot into OS X by simply holding down the “Option” button on your keyboard during the system startup and selecting OS X.
Live login details
How to login?
Every build features the same login credentials in case logging in is required while booted in a live session:
Username : garuda
Password : garuda
After installing / Garuda apps
So you just installed Garuda and want to know how to proceed? Keep on reading! 😊
Downloading language packs
Some applications such as Firefox ship their language packs in separate packages which makes installing them after the initial setup a needed step. However, this is a simple process as the Garuda Settings Manager is able to detect and install missing language packs. Open it up and select the “Language Packages” option to download available language packs!
The Garuda Welcome application
To make all applications easily accessible, all important options are launchable using the Garuda Welcome app. To get an overview of the currently available settings, have a look at the picture below:
The application serves as a shortcut to our Garuda applications, web services, and other important system management tools.
Garuda Assistant
This is the flagship application of our distribution. Here, most of the system maintenance tasks can be performed by simply toggling the option. It can also easily show and copy logs of the system which are required in order to post a help request in our forum. Let’s have a look at what’s inside!
Maintenance
On this, we have package management related tasks as well as a convenient selection of applications that can get their settings to reset to default in case of issues with the current configuration. You could for example use this to:
- Update the system
- Refresh the mirror lists in case of bad download speeds during updates
- Refresh the keyrings if the update reports “invalid signatures”
- Remove the database lock if Pacman reports it is still running even though it is not (e.g. after an interrupted update)
- Remove orphan packages left behind after uninstalling a package
- Clear cache and package cache to get back storage space
System components
This tab is dedicated to enabling and disabling features and software support easily. Basically, this has multiple toggles:
- Install / remove a specific feature or application
- Enable / disable the service of an application
- Add / remove the user from a user group
For example, one could for example easily toggle support for printing and enable the firewall by selecting the concerning options and clicking “apply”. If you are unsure about what an option means, searching for “insertanyterm Arch wiki” should provide an extensive explanation.
Settings
The settings tab provides a simple interface to manage system settings and services easily. Unlike the components tab, it focuses on performance settings though. Possible use cases would be:
- Switching the default shell and installing default configs
- Choosing another DNS server to get rid of ads, as outlined in our privacy guide
- Enabling / disabling profile-sync-daemon (loads browser profile to RAM) or Nohang (OOM killer)
- Install either performance or power-saving tweaks depending on what is preferred
- Enable / disable further performance-related services
Here again, the hint that “insertanyterm Arch wiki” should provide an extensive explanation about the displayed actions.
System specs and other diagnostics
The last two tabs focus on providing a simple way of displaying relevant system logs. They also boast a “Copy for forum” and “Open forum” button which new users can use to get the output of inxi -Faz
quickly as this will be the first thing asked for when creating a help request at the forum. Shown logs include:
- Inxi – complete system and hardware information
- Journal errors – useful for any kind of issue
- Systemd-analyze – measuring boot times and investigating long boot times
- Last Pacman log – analyzing issues with package transactions
BTRFS Assistant
Initially, the BTRFS Assistants functions were integrated into Garuda Assistant. However, it eventually became its own application to also let other distributions profit from it. Let’s have a look at what it can do!
Overview Tab
As you can see, this tab provides the most basic information about the filesystem like its size, and currently used storage space, and also recommends a BTRFS balance if needed. You can
Controlbtrfs-maintenancerelated timers – these provide most basic maintenance tasks for the BTRFS filesystem and should usually be enabledMoved toBtrfs Maintenance
tab.Control Snapper timers – this concerns regular timeline (hourly, daily, etc.) and boot snapshots as well as the regular snapshot cleanupMoved toBtrfs Snapper Settings
tab.- Have a look at the actual filesystem usage and the estimated free space. It’s estimated only due to transparent compression.
- Check filesystem statistics and perform a full balance which might help if the system feels slow.
Subvolumes Tab
This tab shows all available BTRFS subvolumes. You can additionally show Snapper and Timeshift snapshots and delete subvolumes on demand.
Snapper Tab
Here, all the available snapshots created by Snapper can be managed. Every snapshot will have a corresponding number, time of creation tag, and description which provides information about why a snapshot has been taken. It is also able to create new snapshots, delete obsolete ones and can – of course – restore them.
Restoring snapshots is as easy as:
- Boot into a snapshot via GRUB or use a live USB and open the application.
- Navigate to the Snapper tab and click enable “Restore Mode”
- Select a snapshot and click “Restore Snapshot“
- Finish by rebooting the device
As of Btrfs Assistant 1.0 we have new features in this tab:
- Added a snapshot browser to explore your Snapper snapshots
- Added the ability to restore individual files from snapshots
Snapper Settings Tab
This tab provides an easy way to handle Snapper settings. You can
- Create or delete configurations for different subvolumes
- Control timeline snapshots – this can be useful to create regular snapshots apart from the ones taken before and after a package installation. Also, the amount of each individual snapshot can be controlled. If there are more than the preset number of snapshots, the Snapper cleanup timer will remove obsolete ones.
- Control Snapper timers – this concerns regular timeline (hourly, daily, etc.) and boot snapshots as well as the regular snapshot cleanup
Btrfs Maintenance Tab
- Control btrfs-maintenance-related timers – these provide the most basic maintenance tasks for the BTRFS filesystem and should usually be enabled
Garuda Update
garuda-update
is Garuda Linux’s preferred update solution. The update script allows Garuda Linux to apply certain hotfixes and update automations for a smoother experience.
What does Garuda Update do?
- A self-update is performed to ensure the latest fixes are downloaded.
- The mirrorlist is automatically refreshed using
rate-mirrors
- The archlinux and chaotic keyrings are updated
- The
garuda-hotfixes
package is updated before any other system packages are updated to fix any important issues. - Package related hotfixes such as conflicts and other issues are automatically resolved after they have been approved by the developers.
- The system update is applied. Common pacman prompts are automatically answered by “auto-pacman”. The user is asked to answer with “y” if they want to apply the update.
- Common post-update tasks are executed. The mlocate database is updated, fish completions and micro plugins are updated.
- If needed, a changelog showing major configuration changes is shown.
Basic steps to privacy on Garuda Linux
Nowadays there are lots of things to consider when talking about “privacy”. Ditching windows for a Linux-based system is the first step to take!
If you absolutely can’t leave windows because you require it for work for example there are still some things you can do – installing Windows AME for example (removing all windows bullshit to take back control!). But in this article, we will focus on Garuda Linux-specific things of course. For more in-depth articles on different topics, the corresponding Arch wiki pages will be linked. Even more, content can be found at privacytools.io 🙂
Installing and enabling the firewall
A firewall is needed to stop people abusing open ports which can lead to them having full device access for example. In Garuda Linux, ufw is preinstalled in most editions. It can be enabled via systemd:
sudo systemctl enable --now ufw && ufw enable
An important thing to notice is that services such as KDE Connect or Syncthing will need firewall rules to work as expected as their incoming traffic will be blocked by the firewall as well. To achieve that open up the Firewall application from the start menu. KDE ships an application for this purpose, other editions will have to install Gufw if they want to operate the firewall via GUI. Otherwise, it is quite easy to do via the command line:
sudo ufw default deny
(denies every incoming request by default)
sudo ufw allow ssh
(allows ssh)
More on this topic can be found here.
Using alternative DNS servers to block ads and/or analytics.
Using DNS servers is a very easy way to block ads and unblock censorship by internet providers. There are some useful DNS providers such as AdGuard which can be enabled in our Garuda Welcome application. Find out what it does here.
As a bonus hblock
could be used. It blocks ads and malware domains using the /etc/hosts
file which blocks the domains locally rather than via a DNS server. ArcoLinux got some more information on this topic. Also, you can modify your /etc/hosts
file yourself by using this database with the most spooky sites including ads, tracking, porn, fake news and gambling. You can choose what you want to block, so no need to worry, coomers.
Using the right browser
The browser is kind of the middleman between you and the internet while being able to log every action you take. That’s why you should choose carefully here. There are lots of web browsers available so choosing the right one might be a confusing task. Generally speaking, Firefox-based browsers are likely the best choice among these nowadays. It’s backed by the Mozilla foundation which has a quite good reputation and is easily expandable by add-ons. The other “big” player is Chromium – there are a lot of browsers based on chromium such as Google Chrome or the Brave browser. While the engine Chromium uses still seems to be quicker than Firefox these days it is associated with Google – a company known for massive privacy concerns. A project which tries to cut Google out of Chromium is Ungoogled Chromium. If you want to use the Chromium engine, this browser will most likely be the best bet. Since most Google stuff doesn’t exist in this browser you will need this extension to install add-ons from the Web store without other workarounds. It is worth noting that we ship the privacy-respecting FireDragon browser, based on Firefox, by default in Garuda. Also, an interesting option would be to choose a Web Browser. Yeah, that’s not a really convenient name. It’s based on Pale Moon, which is based on an old branch of Firefox. But it lacks support for modern extensions, even though presents some other obscure ones.
Using the right browser addons
Browser add-ons are important and needed these days to have a good experience browsing the internet.
- uBlock Origin. This one is needed to block Ads and malicious domains. If you are asking yourself why we will need this if eventually changed DNS is basically doing the same – uBlock is able to block the ads at the website level which means you won‘t see white spaces – it’s just like the ad didn’t exist. Don‘t use other “adblock” add–ons. uBlock Origin can be trusted since it’s open source.
- HTTPS everywhere. This add–on ensures always using HTTPS connections when browsing the internet. This means, that all traffic will be encrypted, otherwise people can easily read everything you are sending and receiving. In Firefox 83+ this feature has been natively implemented but needs to be enabled manually.
- LocalCDN. LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts the traffic, finds supported resources locally, and injects them into the environment. It works well with uBlock Origin and is able to generate rules for this add–on which you should do, just follow its FAQ.
- CanvasBlocker. Browser fingerprinting is quite a problem since it allows companies to identify you even if a VPN service is used due to its unique fingerprint. CanvasBlocker emulates different APIs to protect your data.
- NoScript. Although most people don’t use this add–on because its breaks most websites by design. It’s blocking the use of JavaScript – which most of the content relies on these days. But this means that tracking technologies also won‘t work for example. The use of this add-on needs manual adjustments to allow/disallowed contents to be truly usable.
- ClearURL’s. It clears all the URL’s that you visit from garbage information. Plain and simple.
Using secure passwords
Talking about this topic is important – most people use very easy passwords for their accounts which can be easily brute-forced by other people to gain access. Passwords like name1959, password, easy123, and so on fall into this category. You can check here if the password used is secure. Using the same password for every account should also be avoided!
The best way to generate and save passwords is using a password manager such as Bitwarden. Bitwarden is open source so it can be trusted. You can even self-host your own instance. We provide a self-hosted instance that you can use along with its Firefox add-on. Just change the server used to “vault.garudalinux.org” and create an account. It also has a mobile client which is very easy to use! Using 3+ different kinds of characters and 14+ characters should be secure enough.
Using the right search engines
Search engines should be chosen carefully. Google, Bing, or Yahoo should be avoided these days. Recommended alternatives are for example DuckDuckGo, Startpage.com, or Searx. We host a variant of Searx and Whoogle (a meta-search using Google search results without tracking the user) for you to use.
One of these should be set as a default search engine in your favorite browser. This can be done via browser settings.
Flatpaks
The state of Flatpaks on Garuda Linux
Flatpaks are a way to get applications on Linux. The advantage of Flatpaks is that they are independent of the system package manager.
We recently decided to not support both Snaps & Flatpaks as we got most applications in Chaotic-AUR already / AUR has it all usually. You can request packages to be added to Chaotic-AUR by creating a GitHub issue at the packages repo.
If you absolutely need another source of applications, Flatpak should be the one used – helpful is its Archwiki page.
If fish is used as login shell
Since fish doesn’t use /etc/profile.d, Flatpaks won’t work right away (eg. applications don’t show up in the start menu). There are 2 possible workarounds:
- Set bash as login shell and drop into fish (follow the Arch wiki)
- Use bass-fish to source bash environment variables (slows down terminal startup a bit)
sudo pacman -S bass-fish
- Insert the following at the end of ~/.config/fish/config.fish:
for file in /etc/profile.d/*.sh
bass source $file
end
The preferred workaround is the first one as it is faster and works natively with the environment variables due to bash starting before fish does.
💡 This only concerns installations older than 210627, since this release we use bash as a login shell & fish in terminals only.
Conky in Garuda Linux
Conky (System Monitor) in Garuda Linux
- Either type
sudo pacman -Syu conky
in the terminal or use Octopi / Pamac to search and install the package via GUI. Usingconky-manager
could also make it easier to get started. - Type
conky
in the terminal to start the application
💡 If you have a small screen and Conky doesn’t fit the screen size, you can adjust the size and features by editing its configuration. Below is an example configuration you can use (applying to a resolution of 1360×768). Copy this file to ~/.config/conky
.
So you just installed Garuda Linux and want to know how to get rid of packages you don’t use or complain about bloat? Its quite easy – I’ll show you how 😁
Pamac – the easy GUI way
Using Pamac is most likely the easiest way of dealing with packages you want to get rid of unneeded packages if you aren’t familiar with the terminal. Keep in mind Pamac is not installed in every edition out of the box – KDE for example uses Octopi which sadly does not provide a list of explicitly installed packages which means you could potentially uninstall an important package and break your system this way.
- Open Pamac using the start menu
- Head over to the “Installed” tab and select “Explicitly Installed”
- Select any application you want to remove – since these are explicitly installed the risk of uninstalling a needed dependency is quite low
- Don’t forget to check the list of packages, which are going to be removed before confirming the transaction! ⚠️
- Apply the changes
The terminal way
The terminal way is a bit harder to complete but serves as excellent training to get more familiar with our beloved terminal. Another advantage is that we don’t rely on a third-party application to manage our packages rather than using Pacman directly. Here is the procedure:
- As you might have assumed already, open up a terminal emulator (eg. Konsole or Alacritty) using the start menu
- Type
pacman -Qe
to list all explicitly installed packages and search for packages you want to remove - Eventually, check unknown packages by typing
pacman -Ss somepackage
to find out its purpose - Add all of those packages to the following command:
sudo pacman -Rns package1 package2 package3
– this will remove all packages and their respective dependencies which aren’t required anymore from the system
- Enjoy your slimmed Garuda installation! 😉
BSPWM Cheatsheet
So you just installed Garuda BSPWM and want to know how it works?
We ship a close-to-stock keybinding configuration which is set up using sxhkd. The configuration file resides in ~/.config/sxhkd/sxhkdrc and can be easily edited with an editor for example via terminal:
micro ~/.config/sxhkd/sxhkdrc
Starting applications
Alt + B Open Firefox
Alt + W Open Garuda Welcome
Alt + P Open Pamac (app manager)
Alt + F Open Thunar (file manager)
Super + Return Open Alacritty (terminal)
Super + D Open Rofi (app launcher)
Print Open Ksnip (screenshot tool)
Operating using the keyboard
Super + Alt + Q Quit BSPWM (better use XFCE logout button!)
Super + Alt + R Restart BSPWM
Super + Shift + Q Kill selected window
Super + M Toggle between monocle and tiled layout
Super + Y Switch newest marked node to newest preselected node (node = window)
Super + G Switch current node with the biggest window
Super + T Set window tiled
Super + Shift + T Set window pseudo-tiled
Super + S Set window floating
Super + F Set window fullscreen
Super + Shift + F Toggle window fullscreen
Super + Shift + (1-0) Send window to desktop (1-10)
So these are the basic commands used in BSPWM. As mentioned before already you can change the keybindings pretty easily.
Window rules & compositing are achieved using bspwmrc
(~/.config/bspwm/bspwmrc
) and picom-ibhagwan-git
(~/.config/picom/picom.conf
). Here you can for example turn off rounded corners for blurry windows.
The files should be self-explaining, if there are questions concerning the setup feel free to ask them in our forum! 😊
GNOME Cheatsheet/FAQ
Intro to GNOME
So, you just installed Garuda GNOME for the first time. Whether you’re entirely new to the GNOME desktop or a returning user, this page is your one-stop-shop for frequently asked questions, tips and tricks, troubleshooting, and guidelines for getting more help.
FAQ
- Why can’t I use Wayland?
For now, logging into GNOME under Wayland is disabled out of the box in Garuda GNOME. Initially, this was to offer a functional experience from first boot for graphics cards that do not work with Wayland, but this may change in the future.
- Well, how do I enable it?
The Garuda Assistant has the option, titled “GDM Wayland,” at the very bottom of the “Settings” tab. Alternatively, you can edit /etc/gdm/custom.conf
and simply change the line WaylandEnable=false
to #WaylandEnable=false
. A reboot may be required for this to take effect.
- Help! I enabled Wayland and now all my Garuda apps are broken!
Depending on the version of Garuda Assistant you’re using, it may have added some lines to /etc/environment
that cause problems for Qt-based applications under Wayland. More detailed information on this can be found in the “Troubleshooting” section.
- I upgraded to GNOME 42 and now
x
thing is broken and all my titlebars look weird, why?
GNOME has the tendency to break things that worked under the previous version in major upgrades. GNOME 42 is very new at the time of writing, and this is a normal part of the GNOME experience. For broken features, check the “Troubleshooting” section, and for visual inconsistencies see “Theming on GNOME.”
- I want to use GNOME but don’t like some of the default behaviors or can’t live without
x
feature from some other DE, how can I make it better?
Look through the Settings first, then check if there’s a GNOME Shell Extension that will do what you’re looking for. These can be installed from your browser as long as chrome-gnome-shell
is installed and the “GNOME Shell integration” extension is installed on your browser. Most extensions can be further configured via the Extensions application.
Remember that GNOME Extensions can break things, so if you have issues make sure to disable all your extensions before assuming it is some other problem with GNOME or Garuda.
If there’s something you want to configure that isn’t available in the Settings or Tweaks applications, something like dconf-editor
may be able to do so. However, this is a powerful tool and may expose settings that it is not advisable to change, so exercise caution.
- How do I view/set keyboard shortcuts?
The GNOME Settings application has everything you’re looking for under the “Keyboard” section. Occasionally, some of these get overwritten by major upgrades to GNOME, but are easy to change back.
- Something I want to know // need help with isn’t here, what do I do?
Check the “External Resources” section. If you read these resources, then search for your own information (see this guide), and still can’t find what you need, follow this guide to creating a Garuda Forum post, making sure to include the output of garuda-inxi
with appropriate formatting and a detailed description of your problem and the steps you’ve taken so far.
Theming on GNOME
The state of theming on GNOME is fragmented and oftentimes confusing. However, it is possible to achieve a lovely, consistent look with a little work. This guide assumes you are running GNOME 42, but most steps are applicable to GNOME 40+.
Remember that themes can break things, so if you have issues make sure to disable your themes before assuming it is some other problem with the GNOME or Garuda.
General Information
- Themes for the GNOME Shell and GTK2/3/4 apps can be found on www.gnome-look.org but it is important to look at when a theme was last updated. If it does not support GNOME 40+ and/or GTK4, it will likely not work and may cause problems.
- To install themes just for your user, place them in
~/.themes/
and for global installation, place them in/usr/share/themes/
. Some themes also include an installer script, which may be the preferred method for that theme. - To apply themes, use the GNOME Tweak tool that is packaged with the Garuda GNOME edition. Make sure that the Tweaks app is up to date with the current GNOME desktop version.
- GNOME Shell themes and GTK themes are different. The Shell themes apply to your desktop environment – the top panel, the dash, etc. while the GTK themes are for changing the look of your applications. They can be set independently of one another but many themes supply both.
GNOME Shell Theming
- At the time of writing, only the Flat Remix themes have been updated to fully support the GNOME 42 shell. It’s recommended to install these in
~/.themes
and not from the AUR, as the AUR package also installs a GDM theme, which is generally not recommended. - It is possible to use the Tweak tool to apply GNOME 40-41 Shell themes, but even themes up to date for GNOME 41 may not work fully or cause visual oddities in the top panel menus and volume/brightness indicators under GNOME 42.
- Note: Inspect the
gnome-shell
folder for your chosen theme. It seems that themes are more likely to work if the theme uses anassets
folder for visual elements than if there is a.gresource
file instead.
- Note: Inspect the
GTK2/3/4 Application Theming
With GNOME 42, a number of changes were introduced to GTK4 theming as GNOME moves towards using its new “Human Interface Guidelines” and migrates to “LibAdwaita” for GTK-native applications. Unfortunately, this means that even within the GNOME default apps, some will use the “old” Adwaita titlebars/theme, while a select handful will use the new GNOME 42 // LibAdwaita titlebars/theme. Over time, all the native GNOME applications will be migrated to these new styles, but as it stands there are visual inconsistencies in GNOME’s default appearance.
- To achieve a consistent “default” appearance, there is a port of the new LibAdwaita theme for applications that have not been moved over to the new framework called
adw-gtk3
in the AUR which can be applied via the Tweak tool. Remember to set the associated light/dark option in Settings. - Most applications still use the “old” GTK3/4 framework, so the standard method of installing GTK themes per-user or globally, then setting them in the Tweak tool, still applies. This option is now called “Legacy Applications,” but works the same way.
- For themes that have been updated to include a LibAdwaita theme (currently only Flat Remix), the contents of the theme’s “LibAdwaita” folder –
gtk.css
andassets/
– must be moved into~/.config/gtk4.0/
in addition to applying the “Legacy” theme from the Tweak tool. - If a theme only includes the “old” GTK4 theme, it is possible to force the new LibAdwaita apps to use it, but this method is not recommended and may cause breakage or visual oddities. If you still wish to do so:
- Apply the theme via the “Legacy Applications” option in the Tweak tool.
- Ensure that
~/.config/gtk4.0
is empty or only containssettings.ini
. - If you are on Wayland, edit
/etc/environment
and add the lineGTK_THEME=
followed by the name of your theme. This cannot include any spaces, and capitalization must be correct. It is usually the same as the name that appears in the “Legacy Applications” option, for exampleGTK_THEME=Adwaita-dark
This must be done as root, such as bysudo micro /etc/environment
. - If you only use GNOME on Xorg, it is better to edit
~/.profile
and add the above line, but this will only apply to Xorg sessions. This can be edited without root access. - Reboot.
Non-GTK Application Theming
- For Qt-based applications (like the Garuda tools) it may not be possible to achieve perfect consistency, but under GNOME 42 most Qt apps will use at least the native titlebars.
- If you have issues with this, check the output of
printenv
. If anyQT_QPA_
variables likePLATFORM
orPLATFORMTHEME
are set, this may be the source of the problem. Check~/.profile
and/etc/environment
append a#
to the beginning of any relevant lines to troubleshoot this.
- If you have issues with this, check the output of
- For Flatpak applications, some themes include a Flatpak version. The installation instructions for this can be found per-theme. For more information on theming Flatpaks, see this Gist.
- For Electron-based applications, some (like
code-oss
) will use the native titlebars and include themes for the app itself. Others will stubbornly refuse to cooperate with your theme, but this section of the Wayland ArchWiki page may be of help.- The best way forward if visual consistency is very important to you is to find non-electron alternatives.
- More specific theming configurations, like those for shells such as
bash
, various terminals likekitty
, etc, must be done on a per-application basis. A color-picker app likegcolor3
can be very useful if you want to port an existing theme.
GDM Theming (!!!DANGER!!!)
It is not recommended to theme/modify the GNOME Display Manager unless you know what you’re doing and are capable of reverting/reinstalling GDM from a command line if the display manager breaks.
- If you plan to make any changes to GDM’s configurations, make a backup of all files you plan to change, and be sure to document the changes you make should things go wrong.
- Some themes are available for GDM on www.gnome-look.org but unless they have been updated for the latest version of GDM applying them is highly inadvisable.
- It is possible to manually configure options for the GDM. The process is outside of the scope of this page, and you do so at your own risk.
- At the time of writing, a GUI configuration package called
gdm-settings-git
exists in the AUR that is up to date for the most current GNOME and GDM version. However, it is in early development and not associated with the GNOME project. Again, proceed with caution.
Troubleshooting
General Information
As with troubleshooting anything on Arch-based distributions, it is important to try to figure out the issue on your own first. To make this easier for yourself and everyone else:
- Before troubleshooting ANY problem under GNOME, revert entirely to the default theme (including any changes made to files in accordance with the above theming guide) AND disable extensions entirely via the Extensions app. If one or both of these fixes your problem, it should be reported to the relevant extension or theme in accordance with their guidelines.
- If you have enabled Wayland, check if the problem is present under both GNOME and GNOME on Xorg. Wayland is known to occasionally cause problems with certain graphics cards and some applications.
- GNOME comes with a nice, searchable application called Logs for viewing system logs, which is a very useful tool, but don’t shy away from the command line if other logs may be relevant.
- The Arch Wiki is a fantastic resource and is easy to search. If you’ve narrowed the issue at all, searching for associated keywords there is, if nothing else, a good place to start.
- Make sure to search the Garuda Forum as well to see if anyone has had the same issue.
Common Problems
- Qt-based applications (like the Garuda tools) fail to launch.
- Check if this happens exclusively under Wayland or Xorg.
- Check
/etc/environment
and if using Xorg~/.profile
. If any of:QT_QPA_PLATFORM
,GT_QPA_PLATFORMTHEME
, andXDG_SESSION_TYPE
are present, try adding a#
before the variable name (i.e.#XDG_SESSION_TYPE=wayland
) one at a time, re-booting after each change.
- GNOME’s Online Accounts feature appears broken after updating to GNOME 42.
- Log in under Wayland (enabling it as explained in the “FAQ” if you have not done so). At the time of writing, Online Accounts are not configurable under Xorg but its overall functionality is not broken.
- GDM fails to start or is missing core functionalities.
- Disable Wayland in
/etc/gdm/custom.conf
with the lineWaylandEnable=false
. This will prevent GDM from trying to start with the Wayland backend, but also disable logging into the GNOME Shell under Wayland. - If you’re on NVIDIA hardware and/or the above option does not work, see Troubleshooting GDM.
- If you’ve made any changes to GDM’s configuration, revert them and/or fully reinstall GDM.
- Disable Wayland in
- FireFox or related browsers have graphical glitches under Xorg.
- Make sure
MOZ_ENABLE_WAYLAND=1
is not present in/etc/environment
or~/.profile
. - If you want to use the Wayland backend under Wayland but not under Xorg, put
MOZ_ENABLE_WAYLAND=1
in/etc/environment
, and putMOZ_ENABLE_WAYLAND=0
in~/.profile
.
- Make sure
- Auto-start applications (such as those in
~/.config/autostart/
) do not launch at login.- It is still unclear why this happens sometimes under GNOME, but there are a few steps to try.
- For new entries, try using the Tweak tool to add autostart appplications instead of doing so manually by file.
- For the built-in
.desktop
files from Garuda that are meant to be run only the first time you log in (likebashrc-setup.desktop
), just open the file with a text editor and manually run the command followingexec=
. (in this case,mv ~/.bashrc_garuda ~/.bashrc
) and then remove the.desktop
from~/.config/autostart/
.- Note that the commands in
initial-user-setup.desktop
do not appear to be relevant to things packaged with the GNOME edition.
- Note that the commands in
- For your own applications, if the Tweak tool does not work, make a fresh copy of the system
.desktop
file, usually found in/usr/share/applications/
to your~/.config/autostart/
, then check that it appears and is enabled under the “Startup Applications” category in the Tweak tool. - For the autostart files supplied by Garuda for applications not packaged with the GNOME edition, it is safe to delete these files. If you install one of the listed applications (for example Variety) later on, it may be necessary to make a new copy as mentioned in the previous step. If you instead want the Garuda-specific configs, copy the
.desktop
out of/etc/skel/.config/autostart/
.
Final Notes
This page is not comprehensive, and the external documentation below is the best place to learn more about anything covered here. This page is currently up-to-date for the initial release of GNOME 42 and the 03/29 .iso
of the Garuda GNOME edition.
External Resources
- GNOME ArchWiki Page
- GDM ArchWiki Page
- Wayland ArchWiki Page
- NVIDIA ArchWiki Page
- GNOME 42 Release Notes
- Themes on GNOME-LOOK
- Environment Variables ArchWiki Page
Micro Cheatsheet
Micro is default text editor of Garuda Linux. Unlike most of the distributions provide vi or nano as default text editor, Garuda Linux ships micro because it is very user friendly, intuitive, has a beautiful UI and is easy to configure.
Default keybindings:
“Key”: “Action”
- “Up”: “CursorUp”,
- “Down”: “CursorDown”,
- “Right”: “CursorRight”,
- “Left”: “CursorLeft”,
- “ShiftUp”: “SelectUp”,
- “ShiftDown”: “SelectDown”,
- “ShiftLeft”: “SelectLeft”,
- “ShiftRight”: “SelectRight”,
- “AltUp”: “MoveLinesUp”,
- “AltDown”: “MoveLinesDown”,
- “CtrlShiftRight”: “SelectWordRight”,
- “CtrlShiftLeft”: “SelectWordLeft”,
- “AltLeft”: “StartOfTextToggle”,
- “AltRight”: “EndOfLine”,
- “AltShiftLeft”: “SelectToStartOfTextToggle”,
- “ShiftHome”: “SelectToStartOfTextToggle”,
- “AltShiftRight”: “SelectToEndOfLine”,
- “ShiftEnd”: “SelectToEndOfLine”,
- “CtrlUp”: “CursorStart”,
- “CtrlDown”: “CursorEnd”,
- “CtrlShiftUp”: “SelectToStart”,
- “CtrlShiftDown”: “SelectToEnd”,
- “Alt-{“: “ParagraphPrevious”,
- “Alt-}”: “ParagraphNext”,
- “Enter”: “InsertNewline”,
- “Ctrl-h”: “Backspace”,
- “Backspace”: “Backspace”,
- “Alt-CtrlH”: “DeleteWordLeft”,
- “Alt-Backspace”: “DeleteWordLeft”,
- “Tab”: “Autocomplete|IndentSelection|InsertTab”,
- “Backtab”: “OutdentSelection|OutdentLine”,
- “Ctrl-o”: “OpenFile”,
- “Ctrl-s”: “Save”,
- “Ctrl-f”: “Find”,
- “Ctrl-n”: “FindNext”,
- “Ctrl-p”: “FindPrevious”,
- “Ctrl-z”: “Undo”,
- “Ctrl-y”: “Redo”,
- “Ctrl-c”: “CopyLine|Copy”,
- “Ctrl-x”: “Cut”,
- “Ctrl-k”: “CutLine”,
- “Ctrl-d”: “DuplicateLine”,
- “Ctrl-v”: “Paste”,
- “Ctrl-a”: “SelectAll”,
- “Ctrl-t”: “AddTab”,
- “Alt-,”: “PreviousTab”,
- “Alt-.”: “NextTab”,
- “Home”: “StartOfText”,
- “End”: “EndOfLine”,
- “CtrlHome”: “CursorStart”,
- “CtrlEnd”: “CursorEnd”,
- “PageUp”: “CursorPageUp”,
- “PageDown”: “CursorPageDown”,
- “CtrlPageUp”: “PreviousTab”,
- “CtrlPageDown”: “NextTab”,
- “Ctrl-g”: “ToggleHelp”,
- “Alt-g”: “ToggleKeyMenu”,
- “Ctrl-r”: “ToggleRuler”,
- “Ctrl-l”: “command-edit:goto “,
- “Delete”: “Delete”,
- “Ctrl-b”: “ShellMode”,
- “Ctrl-q”: “Quit”,
- “Ctrl-e”: “CommandMode”,
- “Ctrl-w”: “NextSplit”,
- “Ctrl-u”: “ToggleMacro”,
- “Ctrl-j”: “PlayMacro”,
- “Insert”: “ToggleOverwriteMode”
- “MouseWheelUp”: “ScrollUp”,
- “MouseWheelDown”: “ScrollDown”,
- “MouseLeft”: “MousePress”,
- “MouseMiddle”: “PastePrimary”,
- “Ctrl-MouseLeft”: “MouseMultiCursor”
What is a partial upgrade?
A “partial upgrade” is an unsupported operation that happens when only a part of your system has been updated. This can lead to major issues when applications are not built to support older or newer versions of related software.
Problems can range from applications not opening to a broken system, depending on the severity. Garuda Linux ships Garuda system maintenance, which can detect and notify about partial upgrade situations automatically.
What can cause a partial upgrade?
Partial upgrades happen whenever the “sync” database is updated without applying any system updates. Then, when a package is installed from the repositories, the system is considered “partially upgraded”, because that package may not be intended to be used with your already installed packages.
Partial upgrades happen if you do the following:
pacman -Sy [package name]
pacman -Sy
followed bypacman -S [package name]
at a later timepacman -Syu
if not completed successfully (even answering no!), followed bypacman -S [package name]
at a later time
What is the solution?
To return a partially upgraded system back to a consistent state, a full system update needs to be performed.
Via CLI
The Garuda Linux developers recommend using the update
command in your terminal of choice to apply system updates.
Via GUI
- Search and start Garuda Assistant using the start menu and enter your password as requested
- Select “System update”
- Let the pre-update steps complete and then confirm you want to apply the update
- Wait for the update to finish
💡 Garuda system maintenance notifies about partial upgrade situations to minimize the risk of accidentally partially upgrading the system!
Restoring snapshots to get the system back to working state
By using BTRFS we gain access to some pretty useful features such as snapshots of the filesystem. By default, we exclude the home and log directories so only the relevant system parts get saved. If you run into problems or bad upgrades you can always boot into an older snapshot (which gets created every time the system gets updated, keeping you safe) using GRUB and then restore the older snapshot.
An overview of the procedure
To get back to a working state we will boot into a snapshot created by Snapper:
- Reboot
- In GRUB (bootloader) select “Garuda snapshots” instead of “Garuda Linux” and select the latest snapshot
- Once the boot process is completed you will be automatically prompted to restore the currently booted snapshot
- Reboot and enjoy your working system
If the latest snapshot is not working try the older ones. If you missed the prompt, you will need to:
- Open up BTRFS Assistant via the start menu
- Head over to the Snapper tab and proceed as shown below
- Reboot if the restoration was successful
💡 It is important to identify the cause of the issue which lead to this situation. Keep in mind that updating the system after restoring a snapshot might end up in the same unbootable state if the issue hasn’t been fixed beforehand.
Legacy iso / very ancient installations
Historically we used Timeshift as a tool to manage our snapshots. Since the integration of Snapper in our Garuda Assistant (and the following creation of BTRFS Assistant) it is no longer used though as Snapper has a few advantages compared to Timeshift. People who are still using Timeshift can convert their system to Snapper by simply installing snapper-support
, which will take care of the whole setup process and removal of Timeshift.
- A video that demonstrates the restoration of Timeshift snapshots is available as well
How to contribute
So you found something to improve or want to contribute to Garuda in any way? There are several possibilities on how to do this. You don’t even need to know how to code in order to contribute something meaningful!
Contributing code
Obviously, you can have a look at our GitLab and search for the repository which corresponds to the thing you want to contribute to – in case doing changes to Garuda Assistant this would be this repo for example.
- Fork the repo by clicking “Fork”
- Clone the repo by copying its git address using the “Clone” button
- Apply the changes in your local repository
- Commit the changes by typing
git add . && git commit -m “explanation of what changed" && git push
- Create a merge request at the original repo which we will review it as soon as possible 😊
Contributing documentation & translations
Documentation is a crucial part of a project which helps find solutions efficiently. In our case, this would mostly mean creating and enhancing existing articles found in our wiki. Translating existing articles into other languages is also a very welcome way to contribute to more accessible documentation which is also possible without in-depth knowledge of the operating system. There are two ways to achieve this:
- Contact any team member (eg. via our Forum, Telegram group, or mail) with a short explanation of what you want to change. We will follow up and provide you with a wiki account. This way is definitely the easier one as editing articles can be done via WYSIWYG editor.
- Clone the GitLab repo of our wiki and proceed as explained in “Contributing code”. This requires knowledge of HTML and Wikijs.
Contributing as a forum member
The forum itself is the home of our community. A lot of help requests and general talk are going on here lately which means there are a lot of threads to answer as well. We are very happy about everyone who decides to take part in discussions and help other forum members as it takes some work off our staff’s shoulders. 😊
- The only thing needed here is a forum account, you can click here to sign up!
Contributing donations
If you don’t have the time or motivation to contribute either way, you can still help us by donating to help sustain our running costs. Every single donation is highly appreciated and ensures the continued existence of our favorite distribution! 🙂
- Our website has a dedicated donation page that lists the possibilities and pros/cons of the different available platforms.
How to search for solutions the right way
Here’s some tips on how to help improve your search results (by TBG)
As Garuda tracks very closely with upstream Arch, most information (but not all) contained in the Arch Wiki is likely applicable to Garuda. Anyone looking for answers to questions regarding Garuda, (or any other Arch based distro) should always check the phenomenal Arch Wiki documentation first. This is especially important if you own a laptop, as many laptops require special setup steps that are out of the ordinary. Be sure to search the Arch Wiki for your specific make and model of laptop, as the Arch Wiki often contains very detailed information on many models of laptops.
You can use the Arch Wiki’s internal search engine, but it’s probably more convenient to simply use your favorite online search engine. Running an internet search on a topic such as, “Archwiki Pacman usage” should immediately turn up all the information you could ever want to know about Arch Linux’s default package manager “Pacman”. Also, for those unfamiliar with Linux, many Linux aspects have inbuilt documentation that can be accessed directly from within the terminal with the “man” command. In Linux these are referred to as “manpages”, which is a shortened form of “manual pages” (thus the “man” command). If you want to find information regarding Pacman without performing an internet search you can simply enter “man pacman” in the terminal. Alternately, if you want to find detailed information on removing packages with Pacman (uninstalling with the -R option), you can simply run “pacman -R –help”. This will return detailed information on all the available pacman uninstall options without having to sift the Internet for answers. Arch has the best documentation in the Linux world, so please try to avail yourself of this great resource before opening a help request on the Garuda forum.
Learning how to improve your search efficiency is one the most important keys to solving most problems in Linux. This generally comes down to learning how to best refine your search terms to get the most focused results. For example, if you are experiencing a problem that just cropped up on a recent update then one of the most useful ways to find relevant answers is to limit/shorten the time frame in your search. Most good search engines should have an option to limit search results to the last week, or the last month. A bug that appeared with your last update is more likely to be found in very recent online posts. If you’re not sure how to change the time frame in your favorite search engine then you need to learn how. Advanced search engines such as DuckDuckGo, Google, and others all include these date filtering capabilities. Finding out how to do this is your first stepping stone to success in mastering the essentials of becoming an accomplished search guru. For recent bugs, always search the most recent online posts first. If that doesn’t turn up anything, then you’ll want to expand your search time frame limitations. Even very recent issues can sometimes turn up pertinent answers from far in the past. This is because some bugs have the bad habit of recurring regularly over time. Limiting the time frame of your search is one important method to refine your search results, however there are many other stratagems that can be utilized as well.
You can refine your search terms further by forcing your search engine to only include results for a specific word, (or several key words) that are the most important in your overall search string. You can do this (if your search engine supports this feature) by surrounding the most important word(s) in in your overall search criteria in “quotation marks”. Anything contained directly within “quotation marks” in your search string should ensure it is always going to appear in the search results. One of the most effective methods is to use “Arch Linux” as your first search string delimiter. This will help minimize extraneous hits from Ubuntu/Mint etc forum threads. Debian based distros may provide valid answers at times, however because of the major differences between the distros they are not the best place to start looking for answers. If you aren’t finding the search results you want using “Arch Linux” (in quotation marks), then try searching using other Arch based distributions. Try narrowing your search terms further by using alternate distros such as “EndeavourOS” or “Manjaro Linux” instead. You may also want to try using “Garuda Linux” in your internet wide search engine terms, as sometimes a more specialized search engine will turn up results that the Garuda forum’s internal search engine might miss.
If you can’t readily find your targeted search term listed on a very lengthy webpage then use the “Find in this page” feature included in Firefox (or other browsers) to locate the specific info quickly. This helps to find a specific error message in an extremely long log output that has been posted online. This reduces search time immensely if you can’t easily find an error message in a thread containing multiple lengthy logs. These, and other search shortcuts can help increase your search efficiency greatly. Once you have mastered these and other similar, (but not so obvious skills), you will be well on your way to becoming a certified Linux search guru.
Further ways to fine tune search methods
Below are some further ways to fine tune your search methods so that the hits returned are far more closely related to the specific answer you are seeking. This is an example of a problem that occurred whenever a computer was restarted, suspended, or shutdown. A loud popping sound through the computers speakers was happening whenever a power cycling event took place. Running a search that included the triggers “start, suspend, shutdown” returned mostly posts that were unrelated to the issue at hand. This will happen when you include too many general search terms, and you will get a million disjointed jumbled hits mostly unrelated to your problem returned. The key in this type of situation is to search each issue separately, rather than searching all the issues together to get a far more focused result.
- Example, run a search for “Arch Linux loud sound at shutdown”, with “Arch Linux” in quotation marks. At first, run each search limiting the time frame to the last year. This is a very useful way to start off your internet search. As generally, fairly recent posts tend to be far more relevant today than a hit from a decade ago.
- Then try “Arch Linux loud popping sound at startup”, with “Arch Linux” in quotation marks. Again limit the search results to the last year. If however, at any point your search results start to return very few relevant hits, then remove the time restrictions.
- Then search “Arch Linux loud noise when suspending”. Again limit the time frame to the last year. Subtly change your search terms after each run to hopefully improve the accuracy of your results. If you’ve run all those searches using “Arch Linux” as a delimiter without success, then rerun your searches using distros that are Arch derivatives. If again you have no success, then lastly perform the searches again, this time using “Ubuntu” instead of restricting the search to Arch (or Arch derivatives). Hopefully by the time you’ve run all these search permutations you’ve found pertinent answers to some or all of the issues that were occurring.
- I’ll give you some further tips to improve your search success rate. 95% of solving most Linux problems is about learning good search techniques to find the answer you need. The most important thing is to learn to search methodically. You can only be sure of one thing, there’s no way that you’re the only one on the entire planet experiencing your issue. You simply need to refine your search skills so that you can locate relevant posts pertaining to your issue at hand. Generally, if you search correctly you will almost always find information about the issue you are experiencing online. Usually, if you search hard enough solutions or workarounds have often already been found (but not always). In these cases filing a bug report with the upstream project may be required to get a resolution.
- In most cases it simply takes patience, perseverance, and good note keeping to solve the average Linux problem. Save any promising leads you find as webpage complete in HTML format in a directory specifically dedicated to your problem. Firefox has an excellent extension to save a complete webpage in one HTML file, the extension is called “SingleFile”. Be sure to keep detailed notes with excerpts of the most promising leads to try. Once you have tested any solution (or command) record the results in your notes. Don’t leave troubleshooting complex issues to your memory. Always record everything you’ve tried and the result in detailed organized notes for reference later. If you need to reinstall in a year you will want everything recorded, so you don’t need to repeat your search for the same answer all over again.
- When answering help requests on any Linux forum it never ceases to amaze me how many users will post a rather long and seemingly unique error message, but when you ask them what the search results of the error turned up most have never even searched the error message. Error messages contained in dmesg or journalctl logs are your best friend for solving complex Linux problems. Learn how to search your logs for error messages, and then research any error messages you’ve uncovered online for others with similar errors. This is one of the surest methods to track down what is causing any problem.
- There are times when searching the complete contents of an error message will produce severely limited (or no) search results. Oftentimes error messages contain long alphanumeric strings that relate to the specific hardware in use. If you search an error message and get no useful search hits, try progressively removing the alphanumeric strings from your search terms to hopefully improve your results.
- Below is an example of an error message containing several alphanumeric strings:
amd_gpio AMDI0030:00: Failed to translate GPIO pin 0x003D to IRQ, err -517
- When the entire error message above is searched there will likely be zero hits returned. If you instead search the error message with the alphanumeric strings removed (as below) you should now receive useful search hits.
amd_gpio Failed to translate GPIO pin to IRQ, err -517
- Searching the streamlined error message with the counterproductive strings removed returns over 1500 results, while the original error message had no useful search hits. This example clearly demonstrates how a minor change in search terms can dramatically affect your search results. Learning to tweak your search terms is an acquired skill, and the more you practice, the better your search results should get.
- Learning how to search effectively, and keeping detailed notes on all your efforts is the key to finding the solution to most any complex Linux problem. I’ll let you in on a another secret, most of the forum support volunteers don’t have the answer to every support issue on the tips of their tongues. Experienced forum troubleshooters have simply honed their search skills from years of repetitive online searches. This often enables us to find answers far easier and quicker than the average user. However, there is absolutely no reason why the average user can’t become as equally effective at researching and solving their own issues.
- This distribution is all about trying to teach new users how to do for themselves. We have found that spoon feeding new users a copy and paste command line solution accomplishes very little for the user, (or the distro). This is because the very same user will inevitably be back shortly thereafter with another string of elementary questions, (and they will again be expecting to be spoon fed the answers). This unfortunately teaches the user little about how Linux works, or how to cope with issues on their own. We at Garuda try our best to break this dependency cycle by attempting to motivate our users to expand their Linux capabilities by becoming more self reliant.
- Some Linux users don’t subscribe to this philosophy and think it is rude or elitist to expect new users to research their own issues themselves. Those involved on the Garuda project disagree, as we believe instilling a desire to learn for one’s self is more important than an effortless fix. Our philosophy is to promote capable, confident, self reliant Linux users, who in the end don’t need to go fishing on the forum for answers anymore. We hope the new users asking questions when they first join our forum, will be the ones helping out other users here in a year’s time. This is our goal at Garuda, and hopefully you can understand why this is beneficial for everyone using the distro in the long run.
- Good luck finding your answer! ✌️
How to write a nicely formatted post in Discourse/Forum
Writing a well formatted post in the forum (Discource powered) is important, if you want readers to easily read and understand.
It’s especially important for terminal output.
Here is a brief tutorial.
Terminal output
For terminal output, text output with special characters, always use code wrapping (Pre-formated text).
Select all of the text and do one of these:
- Hit the </> button in Discource Post Toolbar.
- Press CtrlShift+C on your keyboard.
Manually with markdown
After you Copy your text, …
For a Block of text
- one line with 3 “back-ticks” (usually the key under Esc),
- one empty line hitting Enter
- one more line with 3 “back-ticks”
- press Up Arrow to go in the empty line and Paste clipboard contents (Ctrl+V)
Example:
Write this
“`
Text from terminal output
“`
to get this
Text from terminal output
For Inline text
- one “back-tick” at the beginning and one at the end of a word/phrase
Example:
Write this
Use `sudo pacman -Syu` to update your system
to get this
Use
sudo pacman -Syu
to update your system
Quoting paragraph (which is often wrongfully used for terminal output) :
- Start the paragraph with
>
Write this
> My smart answer
to get this
My smart answer
- To combine paragraphs and/or empty lines, use
>
in empty lines between
> Nice idea
>
> One more idea
>
Nice idea
One more idea
Section titles
Start paragraph with 1 up to 5 #
followed by a space, like
# Top level
Top level
## 2nd level
2nd level
### 3rd level
3rd level
Separate sections with a horizontal line
- Create an empty line (with Enter) followed by a line with 3 dashes, or 3 asterisks
---
or
***
Create lists
Numbered list
Start the line with a number, a dot and a space
1. First
2. Second
3. Third
- First
- Second
- Third
Bulleted list
Start the line with an asterisk or a dash, followed by a space
* Think
- Draw
* Paint
- Ask
- Think
- Draw
- Paint
- Ask
Disable special characters preceding it with backslash \
This is \*not bold*
This is *not bold*
End Note: Most of the above can be used with
Select text and click a button at the Post Toolbar’
You can see their keyboard shortcuts hovering the mouse on each button
Now you can’t say I didn’t know how to format my post contents properly
Reporting bugs
What to consider when reporting bugs
Reporting bugs is one of the things which helps developers improve their software. To get through this as quickly as possible here are some things to consider when experiencing bugs:
- What kind of bug do you want to report?
- Do you have some kind of log or screenshot of the occurrence? Things like “screen goes dark” are hardly resolvable without giving proper information about the circumstances (such as specs, error message, etc.)
- Is the problem related to Garuda or is the problem caused by a bug in the software used? If there are issues with a specific version of software that is used in Garuda the only solution will most likely be to report the bug at the software’s bug tracker (e.g. Gitlab). If the issue is related to the Garuda specific settings they can be reported to our Forum with proper background information (see below)
- Make sure to do at least a quick search concerning the issue prior to posting a bug report or opening a new thread. Sometimes there is already information available on how to solve the issue, saving you (and us) time.
So how to actually write a good bug report?
- Please, do not post pictures of terminal output, or a whole screenshot in which only a short sentence with the error message can be seen.
- Have system logs ready. Longer terminal outputs can be pasted to our PrivateBin and linked to the thread to avoid making the post too long and messy. Screenshots are not as useful as actual text outputs and should be avoided unless it’s a graphical bug or something similar.
- Include the output of “garuda-inxi” in your post. This gives the people trying to resolve the issue proper information on the hardware used.
- Provide the name of the ISO (full name!) used to install Garuda on your system
- If you include terminal outputs in your post please use the proper output format in your post. Using “~” 3 times above and “~” 3 times below the text block will provide a readable, raw look.
- Be specific – Try to summarize the problem in minimum words yet effectively.
- Do not combine multiple problems even if they seem to be similar. Write different reports for each problem.
How to identify and report software bugs
For assistance with any program that is crashing or exhibiting buggy behavior you need to post all errors the program is generating. Accurate textual output containing the exact content of any error message(s) is required to properly diagnose issues. Providing a summation of an error message in your own words (or a picture) is not the correct procedure for reporting bugs. The exact complete error message content must be provided, so that it may be searched online. Better yet, skip the middleman, and research your own errors online prior opening a help request on the forum. This is referred to as performing your due diligence. Meaning you are expected to make a reasonable effort to search for a solution before opening any help request on the forum. We attempt to help users with issues with third party software, however this is not Garuda’s responsibility. Any software experiencing bugs that can not be resolved should be reported to its upstream project.
A program that will not start, or is experiencing bugs should be launched in the terminal to display a textual output of any errors produced by the program. You can find the correct command to start the program in the terminal by right clicking on the programs icon in the application start menu. If for example you were trying to start the program “Pamac” for installing and uninstalling software you would do as follows. Right click on the icon named “Add/Remove software” in the applications menu (KDE). Depending upon your DE there should be a menu popup with a choice similar to “Edit application” or “Properties”. Left click on this option and then select the “Application” tab (or similar). In the “Application” tab there will be a section with a listing for the “Command:” to start the program. You should find “Command: pamac-manager %U “ listed there. Copy and paste “pamac-manager %U” into the terminal (without quotes) and press enter. Copy and paste any resultant errors from starting the program via the terminal into a properly formatted code block in your “Opening Post” (OP) on the forum.
Help requests that have zero possibility of ever being solved because of a total lack of information are simply considered cruft and clutter on the forum. Any help request with woefully inadequate information may be moved from the main forum until sufficient information is provided. Your help request’s OP can be edited to provide the required information in the following manner. Click on the three dots (…) at the bottom margin of your opening post. A new section will expand that contains a pencil icon. Clicking on the pencil icon will allow you to edit your post to add the information your post is lacking. Generally most technical help requests require at least your system specifications and any relevant errors and background information related to your issue. Be sure to properly format all errors and other code in easily human readable code blocks as already explained above. Once your OP has been edited to include the required information it will be returned to the main forum (if it has been moved).
I appreciate how well-researched and informative each post is It’s obvious how much effort you put into your work
Thanks
Your posts always provide me with a new perspective and encourage me to look at things differently Thank you for broadening my horizons