Updated: Oct 23rd, 2024
Welcome
Welcome to Shaltif's cheat sheet for installing and maintaining a EndeavourOS Linux Install.
This document was initially written to be followed from top to bottom after a fresh install, but has been updated over time and now contains a lot of reference material for:
- How to initially install EndeavourOS
- Installing 3rd party programs / packages
- Maintaining a good running system
- Trouble Shooting problems I've run into
Feel free to keep this on hand for future referencing, as I update it regularly as the OS changes or I run into issues/changes with my setup.
Note: This is a simple cheat sheet (and not an 'all inclusive guide') that I created to help me everytime I refreshed my system, so it will be light on details in some areas.
Index
This page is starting to get quite lengthy, so I decided to add this quick index to get straight to specific sections below.
Initial Setup
- Initial Installing of EndeavourOS
- After Installation
- Using Pacman and Yay
- Getting nVidia Drivers
- Optimizing for KDE Plasma
- Additional Packages
- Other Useful Terminal Commands
Program / Package Specific Information
Initial Installing of EndeavourOS
Before we begin, you'll need to have at least a 4GB flash drive (USB stick) or equivalent media. If you have a DVD burner (and your target machine has a DVD drive), you could go that route instead (but I haven't tested this). You'll also need a way to 'flash' the operating system image (.iso) file onto said media (just copying the file to a typical drive won't work). Since I have many Raspberry Pi's that I mess with, I typically use RPI Imager for this task (which my example will showcase below, as I find it to be the easiest to understand/use), but there are many options (such as Etcher, or Ventoy*) each with various levels of ease / customizablity. (I have used all these options)
* - Ventoy is a bit different, as you use it to flash your drive once with a special Ventoy boot image (which, once created, the drive has a folder structure that you can drag and drop as many .iso files you want onto the drive). When booting, you'll be given a menu to select which .iso (that you dragged onto the drive) you want to boot with. Great if you work with multiple different .iso's, but a bit more advanced and doesn't work with every image (.iso) file.
Setup the flash drive
- Head over to EndeavourOS's official website and download the latest version (.iso)
- Connect the USB Drive you wish to flash the operating system onto.
- If your OS asks you to format the drive (assuming it's a brand new drive), you can do so if you want, but it isn't necessary. As long as the OS can see the drive, most flashing software can see it as well.
- Open up your flashing software of choice (RPI Imager showcased below):
- Raspberry Pi Device: leave as 'choose device' (just ignore this option, we aren't working with a Raspberry Pi device)
- Operating System: Scroll to the very last option 'Use custom', which will open a file browser window. Select the EndeavourOS's .iso file you downloaded earlier.
- Storage: Select the USB flash drive you connected. Make sure you are selecting the correct device you want to flash, as it will overwrite (erase) all data on the selected drive.
When you press Next, it will ask if you want to apply OS customisation settings, select No. (These optional settings only apply to Raspberry Pi's)
Then it will display a confirmation window to confirm you wish to erase all data on the selected device and replace it with the selected image data. Press Yes to start the process (but if you aren't fully sure, selecting No will return you back to the main selections menu so you can double check your selections).
- Wait for the flashing software to write the EndeavourOS .iso onto the drive (this can take some time).
- Once complete, you can close the application and remove the USB flash drive. You now have a EndeavourOS live environment image ready to go.
Booting from the USB drive
- Turn off the target machine you plan to install EndeavourOS to.
- Connect the USB drive to a USB port on the target machine (if the computer fails to see the drive in the BIOS, try switching USB ports and restarting).
- Start the computer and enter the BIOS (I usually do this by repeatedly pressing the Delete (Del) key on the keyboard while the computer is starting, but some computers may require F2, F10 or similar to access their BIOS).
- In the BIOS, head over to the 'boot menu' and set the primary boot device to be your connected USB drive, restarting once you saved these changes.
- Note: This can be a very different process depending on the manufacturer and/or version of the BIOS. As an example, on my server desktop machine, I had to go into the boot menu and set one of my 'hard disks' as the USB flash drive and then re-order the hard disks so that it was my primary (first) boot device, restarting the machine. On my newer gaming machine, however, I could just pick it from a list of detected connected devices and boot right into it from the BIOS (no restart required).
- When successful, you should be greeted with a menu that will ask which version of EndeavourOS you want to load up. I recommend using the 'default' option, but if you have a newer nvidia card, you can use the 'nvidia' option instead (it just pre-loads the latest nvidia drivers)... I prefer default so I have more control on how I setup the nvidia drivers later.
- Once selected, you'll see a wall of text as the environment checks the hardware and loads up necessary packages to run. Depending on your hardware, this can take a bit of time.. (at some point it may show just a black screen for awhile... just wait a minute or so longer until you see the desktop.)
Installing to a Hard Disk
Assuming all went well, you should be seeing the live desktop environment (example shown above); as well as the Welcome App. You can explore the operating system and it's available applications if you desire, just note that any changes (such as applied settings, saved files or installed programs) will not survive a reboot in this current state; as you are running the entire system from RAM (saving files will only save them into a virtual hard disk also in RAM, which will be gone once you shutdown or restart).
To change this behavior, we need to install EndeavourOS onto a proper hard drive.
- On the Welcome App that first appeared, select the first option 'Start the Installer' to begin the process.
- You'll be asked to either install 'online' or 'offline'.
- Online (recommended): gives more Desktop Environment options and features to choose from, as well as updating the core packages automatically during the installation process.
- Offline: limited to just the KDE Plasma desktop environment and will only have packages / versions of software included with the EndeavourOS .iso package.
- Once selected, an installation wizard will open up and will begin the process of setting up the operating system proper on your hard disk.
Most of these options are self explanatory, but I wanted to highlight a few things:
- Desktop Environment:
When it comes to choosing a desktop environment, there are many options to choose from. I mostly use KDE Plasma (shown as Plasma KDE in this install wizard) as I'm the most familiar with it (it's also what the Steam Deck uses) and appears to be the default choice for EndeavourOS. Feel free to explore the other options if you want, but this document won't cover them.
I will note that KDE Plasma is one of the more resource heavy options. GNOME has a feel closer to Ubuntu if you prefer that visual style or you can try Xfce if you wish to have a more lightweight option.
- Packages:
Here you can select a variety of additional packages to install. I usually go with the default choices, only making changes if I need something specific (such as printer support). Most of these packages can be downloaded/installed later if desired.
- Bootloader:
This one kinda surprised me, as I was expecting Systemd-boot to be the default option. I'm guessing that if a system is old enough not to support UEFI (such as the server I was setting up at the time) that it may automatically fall back to Grub. I guess use whatever option is available, though I would suggest Systemd when possible.
- Partitions:
Probably the most important option on here. I always use the 'erase disk' option to avoid any conflicting issues with previous installs (best to start fresh), just note that this will erase everything on the selected drive (so make sure you are selecting the desired drive before continuing).
I usually don't enable the swap (as I have plenty of RAM ( 32gb to 128gb ) avaiable on my systems), but it can be enabled here if you desire (swap is used when available memory becomes too low for running applications). A swap file can be setup later if you find it necessary. The file system (ext4) is also more of a preference, but it seems to cause less conflicts for me then btrfs (a 'newer' standard with a few more features).
- Users:
You are required to setup a primary account with a password. Make note of the password, as you could get locked out of the system if you forget it (and the password will be required anytime you use sudo or make any system level changes). The level of security here (such as using a different dedicated admin password or requiring a login to access the system) is up to you.
- Summary:
At the end you'll be given a summary of your choices. Look over it to confirm everything is as you wish and then click the Install button in the bottom corner. This can take some time to complete and will install updates as needed if you used the 'online' option.
Finishing up
Once done, it will give the option to restart on closing the installer. I usually leave this unchecked, so I can shutdown the system (instead of restart). By shutting down the system, it gives me time to remove the USB flash drive from the computer before doing a restart (and I usually go back into the BIOS to fix the order of my boot devices).
And that's it, the next time you boot the system up (assuming you have the BIOS targeting the correct hard drive) it should load up EndeavourOS with the settings you supplied. If you installed via the 'Online' option, you can skip the 'After Installation' section below (though I do recommend changing the Welcome App to default to the 'Assistant' tab) as those steps have already been done by the installer. I usually leave the Welcome App startup on system boot to remind myself to check for updates and keep tabs on the latest development news (EndeavourOS is based on Arch Linux, a rolling release distro that updates frequently).
After Installation
Right after first OS install, do the "After Install" tasks of:
- Update Mirrors (Arch, reflector-simple)
- Update Mirrors (EndeavourOS)
- Update System (eos-update --aur)
These can be found in the Welcome app that first appears on boot (it should already be on the "After Install" tab)
Once you've done these steps, I would recommend hitting the 'Select initial Welcome tab' button and changing it to 3 (for 'Assistant'). This will have it auto boot onto that tab from now on.
Using Pacman and Yay
When it comes to installing packages or making changes to the system in general, you will probably be using both of these processes. Both are accessed via terminal and come with the system pre-installed:
Pacman
For Pacman, this is called via the following command, where <package> is the package we want to install.
# change out <package> with the package name you want to install, case sensitive
$ sudo pacman -S <package>
- sudo level permissions are required for this command to process.
- The -S stands for 'sync' and is used to sync parts of your system (install packages) with the official main repository.
- To remove packages, use the -R flag instead. -Rs flag to remove a package's dependencies as well.
- To query packages (on our system), use the -Q flag.
- Use -Qdt to find all dependencies that are no longer in use
- Can use pacman -Rns $(pacman -Qdtq) to remove all those packages
- (the -q means quiet output, or just the package names)
- A list of all available packages can be found at: https://archlinux.org/packages
Yay
Alternatively, we can modify the system using the Yay process.
$ yay -S <package>
- This works similar to pacman, but also syncs with the 'AUR', a user run repository which can contain programs/packages that are not part of the official repository.
- Caution should be used when utilizing the AUR, as there are no safety checks for mallicious intent (anyone can upload a package to the AUR).
- sudo is not required initially, but sudo permissions will be asked for later if we try to modify the system.
- One can search what is available on the AUR at: https://aur.archlinux.org/packages
Getting nVidia Drivers
You'll need to use nvidia-inst in order to install nvidia drivers.
If it's not found in terminal (may not be present), you'll have to install it first with:
$ sudo pacman -S nvidia-inst
Once installed, run this command to get the possible driver options
$ nvidia-inst --drivers
Then run with --32 option (for latest drivers w/ 32-bit support, required by Steam).
Legacy driver support has been dropped, so as of this writing you need a nVidia 970 or newer card.
$ nvidia-inst --32
If ever need to revert back to default (Nouveau), this will remove all installed drivers:
$ nvidia-inst -n
Optimizing for KDE Plasma
For the best experience with the KDE Plasma Desktop Environment, you want to get the following packages:
(fills in missing kde support, such as system monitor)
Update Fed 24, 2024: It appears that the addons and systemmonitor packages are now included by default.
$ sudo pacman -S kdeplasma-addons
$ sudo pacman -S plasma-systemmonitor
$ sudo pacman -S kdegrahics-thumbnailers # additional thumbnail support for file previews
$ sudo pacman -S qt6-imageformats # similar to above, but supports the .webp format
$ sudo pacman -S ffmpegthumbs # same, but for video formats
Alternatively, use the following command to 'pick' different parts of the plasma package to install.
$ sudo pacman -S plasma
Do !! NOT !! install KDE Plasma's Discover package manager, as it will cause conflicts with Pacman.
Some additional options to help make using KDE Plasma a smoother process:
- To enable double-click for opening files
- Go to settings and type in the search bar: double click
- Under General Behavior, look for 'Clicking files and folders' and change it to 'Selects them' vs 'Opens them'
- If windows/fonts are overly large
- It's an error with X server reading your display aspect ratio.
- Right-click the deskop and select 'Desktop Configuration'. Adjust the Global Scale option to 100%.
- Alternatively, if the above doesn't fix it: look up 'Fonts' under settings and enable 'Force font DPI' and set it to 96 (at least for 1080p)
- To disable the login after being away for 5 minutes
- Go to settings and search for: screen locking
- Uncheck 'after 5 minutes' and 'after waking from sleep'
- To disable suspending / sleeping
- Go to settings and type in the search bar: sleep
- Select the Energy Saving option, then uncheck 'Suspend Session'
- If you run into the bug where all taskbar icons move to the left most lower corner when hoving over a task
- Open terminal and type: kcmshell6 qtquicksettings
- A new window will appear, change the 'background rendering' from Software to Automatic
- Restart the machine or reboot the shell by using: plasmashell --replace
- (This is a quick work around for a long standing KDE Plasma issue)
Final Note: I am still using X11, while KDE Plasma now defaults to Wayland when first installed. Unfortunately, I have run into issues in the past when using Steam (Proton enabled games) while under Wayland. So if you run into problems with applications, try switching back to X11 for a more stable experience.
Additional Packages
From this point forward, the rest are just desired packages
The following are recommended / I have been tested
Pacman packages:
steam # Steam... recommend you install this first if you plan to use it barrier # software KVM switch for controlling multiple computers with the same keyboard / mouse (tcp 24800) discord # Communication software flatpak # Package managment software code # OSS or Vscode, a software development editor ifuse # iPhone mounting solution (see iPhone section for details) converseen # Batch image processing application (recommended for converting iPhone images) helvum # GUI Patchbay for Pipewire/Pulse (audio)
'AUR' packages, use Yay for these:
bauh # Another way to manage packages (Welcome app also has an alternative method) game-devices-udev # Gives steam controller support openrazer-meta # for razer hardware, for color support polychromatic # also for RGB color support, requires openrazer input-remapper-git # Allows for key remapping, works with razer mangohud # Gives HUD for Vulkan supported titles (steam) minecraft-launcher # Adds minecraft
Other programs that are outside the packaging systems
- ProtonUp-QT (AppImage)
- Love2d (AppImage)
- Battle.net (Windows EXE, use Steam Proton)
Other Useful Terminal Commands
Can use Ctrl+Alt+T to bring up terminal at anytime.
history - For seeing a complete list of all commands ever entered into terminal
$ history
- Can use !<number> to execute a command from the resulting list
nvidia-smi - Once a diver is installed, will get you nVidia hardware information
$ nvidia-smi
inxi - Shows a decent overview of your detected hardware
$ inxi -F
- The -F option gives a full readout, otherwise it will give just a basic summary.
- ..or if you really want to have fun, use the --help option to really get into the weeds...
Steam
As mentioned above, to install Steam, you just need to use pacman in a termainl window:
sudo pacman -S steam
This will check for and install all dependencies required to run the steam installer (including vulkan requirements).
After getting the steam package and it's dependencies from pacman, you'll need to run steam directly from a terminal window. This can be done by typing 'steam' in terminal, which should begin installing additional runtime requirements. Once complete, a Steam (Runtime) icon should appear on the desktop.
Important: Steam requires a full video driver (NOT Nouveau) to work. Make sure you have a working video driver setup before installing Steam. If Steam complains about missing dependencies during it's install, abort and try to figure out where things went wrong with the video driver.
To play games made for Windows using Proton, you'll need to enable 'Steam Play'. This can be found in the Steam > Settings menu, under Compatibility.
I usually enable both options, as the top option will only enable games that have been 'officially verified' by Valve (such as for the Steam Deck) to be installed, while having both options will allow any Windows game to be installed. As for Proton version, I usually run Experimental, but this may not work for all titles (can be set on a per-title basis).
[EDIT] Oct 14th, 2024: Most of the remaining information is old and not needed anymore, but retained here in the event it becomes relevent again.
Adding a Non-Steam Game: Work Around
If you get into a situation where the 'browse button' doesn't work on steam, you can 'add a program' to the default application list by:
- Right-Click the bottom left Application Launcher icon on the system taskbar and select 'Edit Applications'
- Click on a category you want to app to be located in (Games for example), then go to File -> New Item
- Give the new item a Name: and Description:, then for the Program: entry, browse to the program file you want to 'add to steam'
- Save and close.. now steam should see the 'App' on the Default Application list and you won't need to use the browse button
Some commands to help get DLSS / Ray Tracing working on Proton games
Make sure to always end your entire command string with %command%
- PROTON_ENABLE_NVAPI=1
- VKD3D_CONFIG=dxr11
Example:
PROTON_ENABLE_NVAPI=1 VKD3D_CONFIG=dxr11 %command%
ProtonUp-QT
Allows a user to select and maintain multiple versions of Proton on their system, which can then be selected via Steam.
- Download the AppImage from the official website: https://davidotek.github.io/protonup-qt/
- Right-click, make executable (or chmod +x the file)
- Run directly to select different versions of Proton
Can check out ProtonDB to see what others have reported for game compatability.
Battle.net
- Requires Steam, so we can load it via Proton
- Download the Battle.net setup installer from the official website: https://us.shop.battle.net/en-us
- Select "Add a Non-Steam Game" and select the setup installer
- Find the launcher in your game list, go to the properties, select compatibility and set Force to the latest version (recommend Proton-GE version, but Experimental should also work)
- Run the program via Steam to install (turn off 'launch when starting computer' option), 'keep me logged in' is fine.
- Important! Before downloading any game in the launcher
- Go to launcher's options and change game installation location to an area outside the 'emulated' Proton 'C' drive (so a dedicated folder of your choice)
- I used /home/Blizzard. Should show up as a 'Z:' drive.
- Install games as you wish, recommend unchecking installing desktop icons and update automatically.
- Finally, to avoid launching the setup installer every time, close the setup and (in steam) go to properties and change the shortcut to Battle.net.exe
- This can be found in the compatdata folder (/home/<username>/.local/share/Steam/steamapps/compatdata), should be the latest folder in whatever numbered (2446483694 ?) folder as pfx/drive_C/Program Files (x86)/Battle.net/Battle.net.exe
- Ex: "/home/<username>/.local/share/Steam/steamapps/compatdata/2446483694/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net.exe"
- Video referenced for this guide: https://www.youtube.com/watch?v=qyKXedF6xAY
Love2d
A quick overview to get a development Love2d project running. This doesn't apply to compiled Love2d projects, which should run on their own if they support Linux (comes bundled with the AppImage internally).
- Go to the website https://love2d.org/ and download the AppImage, this will act like an 'exe'
- Remember (in terminal) to use ./ before the filename to execute it from the directory your terminal is currently pointing at
- Lastly, you specify a folder to find the main.lua in, for ex:
$ ./love-11.5-x86_64.AppImage <folder that contains the main.lua>
If it complains about permissions, use chmod +x option to mark it as executable; then try again.
Wallpaper Engine
You need to have Steam and Wallpaper Engine installed (but do NOT run it from Steam). Instead:
- Right-click on the desktop and select the 'Desktop and Wallpaper' option
- Click on Get New Plugins... and look for Wallpaper Engine Kde Plugin (type in search)
- Install from the UI
- Then head to the following github link and scroll down to the 'Note for KDE store' section
- https://github.com/catsout/wallpaper-engine-kde-plugin
- Follow the directions listed there for completing the install
- Once installed, check the plugin's about page to make sure you have all the dependencies
I eventually found this buggy (causing system instability) so I stopped using it, but retained here for those interested.
[EDIT] Oct 14th, 2024: I have NOT tested anything since upgrading to KDE Plasma 6.x, so no idea if this information is still relevant / useful.
iPhone support
[EDIT] Oct 14th, 2024: This section is out of date and may need a revision
Make sure the following packages are installed (use Pacman if not found)
libimobiledevice # should be installed by default ifuse # main tool for interacting with the iphone
- Make a blank folder somewhere in the home directory (ie, iPhone)
- Plug in the iPhone, accept 'trust this computer' and all that
- Use the following ifuse command, pointing to the blank folder you made earlier
$ ifuse ~/iPhone
- Dolphin (or Terminal) will now have the contents of your iPhone shown in what was the 'blank folder'
What you've done is mounted the iphone's internal folder structure over a folder your system can see and interact with. Copy files in and out of the folder like normal (though I would be cautious in modifying the contents (copy files to / deleting), as this could really mess up the iPhone.
When done (and before you unplug the phone), you need to unmount the folder using the following terminal command:
fusermount -u ~/iPhone
At this point the folder will appear 'blank' again and you can safely unplug the iPhone. Photos copied using this method will be in their native .heic format and will require conversion. I would suggest Converseen (GUI App) for this process.
Converseen
A simple image conversion tool for batch converting large amount of files. If you use this program, take note you need the following library (from Pacman) in order to process heif (.heic) files (iPhone images):
libheif
The library addes heif/heic support to imagemagikc, which is the backend of Converseen.
Helvum
A package that gives a nice GUI interface for working with Pipewire / Pulse audio sources and sinks. Currently only required if one plans to utilize the sound line-in/mic ports in order to 'monitor' the audio source. This is because, by default, not all sources will be monitored by the default output (or sink) and may need manual intervention.
Tip: Can search in the application launcher for 'pulse' to find the PulseAudio Volume Control, which is a more advanced audio manager vs what's available in the system tray.