Beginner-Exploring-Linux

 Back


[![Author](https://img.shields.io/badge/Author-Senka_Wolf-4044ee?style=for-the-badge)](https://github.com/silentz) [![License](https://img.shields.io/badge/License-Apache--2.0-blue?style=for-the-badge)](./LICENSE.md) ![GitHub last commit](https://img.shields.io/github/last-commit/senkawolf/Software-List?style=for-the-badge)

---

Table of Contents

Expand Table Here - [My CachyOS Setup](#My-CachyOS-Setup) - [System Settings](#System-Settings) - [Software](#Software) - [Tweaks & Configs](#Tweaks-&-Configs) - [Visuals](#Visuals)

---

My CachyOS Setup

This is a list of all the packages I have install on my system and changes I have made to personal my desktop.

My Desktop

---

Software

Run the following commands in each section using pacman:

If you’d like a explanation on the code above or what each package is go here.

Below aren’t available through pacman so we will use AUR instead:

Other install methods:

OpenDeck GitHub

$ paru --version
$ paru -S opendeck-bin
$ sudo usermod -aG uucp,input $USER #Appendix
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

Appendix: This is important due to streamdeck being a HID device.

[!NOTE] You can use this method but I recommend the above.

$ bash -c 'bash <(curl -sSL https://raw.githubusercontent.com/nekename/OpenDeck/main/install_opendeck.sh)'

Virtual Machine / Virtualisation Wiki

To install and start the services needed to use a VM run the below in your console:

$ sudo pacman -Syy #Update packages
$ sudo pacman -S archlinux-keyring #Update keyring
$ sudo pacman -S qemu-desktop virt-manager virt-viewer dnsmasq vde2 openbsd-netcat ebtables iptables-nft #Install needed packages
$ sudo systemctl enable libvirtd.service #Start libvirt service
$ sudo systemctl start libvirtd.service
$ systemctl status libvirtd.service #Check that the service is running

Now we need to allow low-level users to use the VM. Edit the /etc/libvirt/libvirtd.conf file by navigating to it in your file explorer or from the terminal:

$ sudo nano /etc/libvirt/libvirtd.conf

Go to line 85 and uncomment by removing the hashtag (#) from the begining:

unix_sock_group = "libvirt"

Then go to line 108 and uncomment by removing the hashtag (#) from the begining:

unix_sock_rw_perms = "0770"

Now we need to add our user to the libvirt group.

$ sudo usermod -a -G libvirt $(whoami)
$ sudo systemctl restart libvirtd.service #Restart libvirt deamon

Enable Nested Virtualization (Optional)

Nested Virtualization is the ability to run virtual machines inside virtual machines.

Now you can run the virt-manager command to open the GUI virtual machine manger, or you can open it through your DE application menu.

[!NOTE] A shortcut to setting this up you can use Linutil which is a tool made by Chris Titus to simplify the install of certain applications.

Use the below command to open up the utility in your terminal.

$ curl -fsSL https://christitus.com/linux | sh

Watch this video on how to use the above tool.

---

Tweaks & Configs

CachyOS Update Config GitHub

Once CachyOS Update is installed you should start it automatically at boot using the following command.

$ arch-update --tray --enable

[!NOTE] If you have used the CachyOS Hello GUI and checked “Cachy Update enabled” you don’t need to follow this setup. Cachy Hello Screenshot

Number Lock on startup Arch Wiki

Eiter run the below command or navigate to System Settings > Keyboard.

$ systemsettings kcm_keyboard

KDE Plasma Keyboard System Settings Screenshot

Then change NumLock on startup to Turn On.

Configure Fastfetch GitHub

In the ../files/fastfetch folder copy the config and the logo to ~/.config/fastfetch/. You might need to create the folder using fastfetch --gen-config or just mkdir.


Starship Configuration Website

Starship is a customizable prompt for a shell enviroment in a terminal.

To get started open your terminal and do the following:

$ sudo pacman -Sy starship #Install starship
$ mkdir -p ~/.config && touch ~/.config/starship.toml #Create config file.
$ nano ~/.config/starship.toml #Edit File

Copy the content from the .toml file found in the Tokyo Night Preset and save the changes.

CachyOS default shell is fish so to add starship to the shell, edit the following file and add starship init fish | source to the end of the file.

$ nano ~/.config/fish/config.fish

Now simply close and reopen your terminal to see the changes.


GitHub CLI Setup Manual

Run the command:

$ gh auth login #Then authenticate using your browser.

After authenticating onfigure the following:

$ git config --global user.email "senkawolf@example.com"
$ git config --global user.name "SenkaWolf"
$ git config --global init.defaultBranch main

fish shell Configuration Website

Fish, or the Friendly Interactive Shell, is a user-friendly command line shell for Unix-like operating systems which comes pre configured with CachyOS by default. Hower fish is very configurable and you can streamline many processes by creating functions and aliases.

To edit the fish shell config you can go to ~/.config/fish/ in your file explorer or use nano ~/.config/fish/config.fish. Within the config file CachyOS refrences the file /usr/share/cachyos-fish-config/cachyos-config.fish which is their take on additonal tweaks for the shell, I recommend keeping them as they are additions I would have added myself.

To add an alias to fish simply open the ~/.config/fish/config.fish from their add a new line using the format of where anything inside [] you replace to suit your needs alias [alias name]="[command]". Below are some examples in my config:

$ alias update="sudo pacman -Syu" #Update system
$ alias rnm "sudo systemctl restart NetworkManager" #restart network
$ alias pip="curl -s ifconfig.me" #Public IP

Using the last alias to breakdown if I type pip into my terminal it will give me my public IP address and simulates as if I typed out curl -s ifconfig.me.

Now we will make a function and these can use arguments and complex logic to do more complex tasks. Follow the steps below:

$ touch ~/.config/fish/functions/[command].fish #Make a file in this directory, name it something which suits the commands use
$ nano ~/.config/fish/functions/[command].fish #Edit the file

Within the file you need to set the file up like do:

$ function [command name]
$ #commands or code here
$ end

Below is a example where I have a git repo in a folder called “dotfiles” in my home directory. I use this with a symlink to backup my configs files, you can learn more about this setup in the Managing Dotfiles section. The below function when I run dotpush [commit message] it cds into the dotfiles directory and goes through the git process to push the changes to GitHub.

$ function dotpush
$    # Ensure we're in the dotfiles directory
$    cd ~/dotfiles; or begin
$        echo "Failed to cd into ~/dotfiles"
$        return 1
$    end
$
$    if test (count $argv) -eq 0
$        echo "Please provide a commit message."
$        echo "Usage: dotpush \"Your commit message\""
$        return 1
$    end
$
$    set msg $argv
$
$    echo "==> Running git status"
$    git status; or return 1
$
$    echo "\n==> Running git add --all"
$    git add --all; or return 1
$
$    echo "\n==> Running git commit"
$    git commit -m "$msg"; or return 1
$
$    echo "\n==> Running git push"
$    git push; or return 1
$
$    echo "\nAll done."
$ end

Uncomplicated Firewall (Ufw) Configuration Wiki

To allow certain programs to work you will need to open the below ports on the firewall:

$ sudo ufw allow 1714:1764/udp #KDE Connect
$ sudo ufw allow 1714:1764/tcp #KDE Connect 
$ sudo ufw allow 53317/udp #LocalSend
$ sudo ufw allow 53317/tcp #LocalSend
$
$ sudo ufw reload #Run this after using any of the above.

Login Screen (SDDM) on Multi Monitors Setup Config Wiki

If you have a multi monitor setup and when you get to the login screen you find that your cursor may start on another monitor to your primary one or if you have a rotated display it displays incorrectly at the login screen but is corrected once logged in.

You can edit the SDDM config to display the correct rotation and change the priority of which monitor should be the primary when met with the login screen.

You can edit the file /var/lib/sddm/.config/kwinoutputconfig.json but to assist in editing this as it may not be clear which monitor is which you can use your local display configuration settings from the file ~/.config/kwinoutputconfig.json. Use the reference from edidHash to compare the settings across the files.

Wrong Rotation

        "data": [
            {
                "allowDdcCi": true,
                "allowSdrSoftwareBrightness": true,
                "autoRotation": "InTabletMode",
                "brightness": 1,
                "colorPowerTradeoff": "PreferEfficiency",
                "colorProfileSource": "sRGB",
                "connectorName": "HDMI-A-2",
                "detectedDdcCi": false,
                "edidHash": "ea0ebe39eb825dc64a3f770bc8b95bd1",
                "edidIdentifier": "ACR 714 1669380668 38 2016 0",
                "edrPolicy": "always",
                "highDynamicRange": false,
                "iccProfilePath": "",
                "maxBitsPerColor": 0,
                "mode": {
                    "height": 1080,
                    "refreshRate": 60000,
                    "width": 1920
                },
                "overscan": 0,
                "rgbRange": "Automatic",
                "scale": 1,
                "sdrBrightness": 200,
                "sdrGamutWideness": 0,
                "transform": "Rotated90",
                "uuid": "4aa0e7f9-f720-4ae9-ad08-c45589802f61",
                "vrrPolicy": "Never",
                "wideColorGamut": false
            },
        ],

Wrong Primary Go towards the bottom of the config file and you will see the below section, everything grouped between the sets of {} brackets are the monitors and they go in the same order to the monitors in the section previously. All you need to do is change the priority starting from 0 upwards in the order you want them to be.

[!NOTE] If you want to disable the monitor so it’s just blank at the login screen simply change “enabled” to false.

        "data": [
            {
                "lidClosed": false,
                "outputs": [
                    {
                        "enabled": true,
                        "outputIndex": 0,
                        "position": {
                            "x": 0,
                            "y": 0
                        },
                        "priority": 2,
                        "replicationSource": ""
                    },
                    {
                        "enabled": true,
                        "outputIndex": 1,
                        "position": {
                            "x": 1920,
                            "y": 0
                        },
                        "priority": 0,
                        "replicationSource": ""
                    },
                    {
                        "enabled": true,
                        "outputIndex": 2,
                        "position": {
                            "x": 3840,
                            "y": 0
                        },
                        "priority": 1,
                        "replicationSource": ""
                    }
                ]
            }
        ],

Source: https://www.reddit.com/r/archlinux/comments/143b6we/how_to_display_login_screen_sddm_on_a_single/

---

Visuals

Plasma Theme Arch Wiki

Find a theme you like from here. I like Ant-Dracula KDE so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 Dracula/
    ├── metadata.desktop
    ├── colors
    ├── dialogs/
    │   └── background.svgz
    ├── icons/
    │   ├── applications.svg
    │   ├── bookmarks.svg
    │   ├── computer.svg
    │   ├── system.svg
    │   └── view.svg
    └── widgets/

If this looks correct then run the following commands to move the file and open system settings:

$ mv ~/Downloads/Dracula ~/.local/share/plasma/desktoptheme/
$ systemsettings

Then navigate to Colours & Themes > Plasma Style and then select the one you just installed.


Custom Plasma Color Schemes Arch Wiki

Find a color scheme you like from here. I like Ant-Dracula KDE so I will use this.

Download the file and ensure it follows the below layout:

📦 Dracula/
    ├── Dracula.colors
    └── DraculaPurple.colors

If this looks correct then run the following commands to move the files and open system settings:

$ mmv ~/Downloads/Dracula/*.colors ~/.local/share/color-schemes/
$ systemsettings

Then navigate to Colours & Themes > Colours and then select the one you just installed.


Custom Window Decorations Aurorae Arch Wiki

Find a color scheme you like from here. I like Ant-Dracula KDE so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 Dracula/
    ├── .shade.svg
    ├── alldesktops.svg
    ├── close.svg
    ├── decoration.svg
    ├── keepabove.svg
    ├── keepbelow.svg
    ├── maximize.svg
    ├── metadata.desktop
    ├── minimize.svg
    ├── restore.svg
    └── Dracularc

If this looks correct then run the following commands to move the file and open system settings:

$ mv ~/Downloads/Dracula ~/.local/share/aurorae/themes/
$ systemsettings

Then navigate to Colours & Themes > Window Decorations and then select the one you just installed.

Additional Window Decorations

Under Colours & Themes > Window Decorations their are more settings you can adjust to change the look and feel of the windows.

Their is a dropdown in the top middle of the screen you can pick how thick/thin you want the boarders to be or can go with no borders. I like to go with the No window borders.

Window Decorations Borders Dropdown

To the right of the above dropdown their is the “Configure Titlebar Buttons…” button where you can change which buttons are displayed and the locations of them on the window. I like to swap the buttons around to give a more mac style setup.

Titlebar Buttons


Custom Application Style Arch Wiki

For this it is recommended to use the program Kvantum which allows you to fully customise your application style and install custom ones as well. As a disclaimer Kvantum is only maintained on the Github page and the KDE Store version is outdated!

$ sudo pacman -Sy kvantum

Find a application style you like from here. I like Ant-Dracula KDE so I will use this and download the Dracula-purple-solid version.


Icon Theme Arch Wiki

Find a icon pack you like from here. I like Slot Nord Dark Colorize Icons so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 Slot-Nord-Dark-Colorize-Icons
├─ Multiple folders
└─ index.theme

If this looks correct then run the following commands to move the file and open system settings:

$ mv ~/Downloads/Slot-Nord-Dark-Colorize-Icons ~/.local/share/icons/
$ systemsettings

Then navigate to Colours & Themes > Icons and then select the one you just installed.


Cursor Theme Arch Wiki

Find a cursor pack you like from here. I like Future-dark cursors so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 Future-dark-cursors
├─ cursors
└─ index.theme

If this looks correct then run the following commands to move the file and open system settings:

$ mv ~/Downloads/Future-dark-cursors ~/.local/share/icons/
$ systemsettings

Then navigate to Colours & Themes > Cursors and then select the one you just installed.


Custom Splashscreen Arch Wiki

Find a plashscreen you like from here. I like to disable this but I will give instructions on how to install one as I use to run the Magna Splash 6.

Download the file then extract/unzip the file and ensure it follows the below layout:

Magna-Splash-6

📦 Magna-Splash-6
├─ contents
└─ metadata.json

If this looks correct then run the following commands to move the file and open system settings:

$ mv ~/Downloads/Magna-Splash-6 ~/.local/share/plasma/look-and-feel/
$ systemsettings

Then navigate to Colours & Themes > Splash Screen and then select the one you just installed or in my case I like to select none.

The splashscreen is the only customisation where you cannot edit the background image from the settings. So, if you want to edit the background image, go to the location below (remember to put your splashcreen name) and swap in a different image, ensuring it has the same name and file type as the original.

$ cd ~/.local/share/plasma/look-and-feel/Magna-Splash-6/contents/splash/images
$ dolphin .

SDDM Login Themes Arch Wiki

Find a icon pack you like from here. I like Azure-SDDM-6 so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 Azure-SDDM-6
├─ folders
├─ Main.qml
├─ metadata.desktop
└─ theme.conf

If this looks correct then run the following commands to move the file and open system settings:

$ sudo mv ~/Downloads/Azure-SDDM-6 /usr/share/sddm/themes/
$ systemsettings

Then navigate to Colours & Themes > Login Screen (SDDM) and then select the one you just installed.


Custom Fonts Arch Wiki

I like using the fonts iosevka and raleway and we installed these earlier in the Software section so now they just need setting up.

Go to System Settings > Text & Fonts > Fonts and change them to suit your preferences, mine are as follows:

Font Settings


Custom Sounds

Find any custom sounds you like from here. I like MacOS System Sounds so I will use this.

Download the file then extract/unzip the file and ensure it follows the below layout:

📦 MacOS Sounds/
    ├── index.theme
    └── stereo/
        ├── dialog-information.ogg
        ├── message-new-email.ogg
        ├── dialog-error.ogg
        ├── button-toggle-off.ogg
        ├── button-toggle-on.ogg
        ├── dialog-warning.ogg
        ├── phone-outgoing-calling.ogg
        ├── trash-empty.ogg
        ├── phone-outgoing-busy.ogg
        ├── message.ogg
        ├── device-ready.ogg
        ├── message-new-instant.ogg
        ├── desktop-login.ogg
        ├── device-removed.ogg
        ├── phone-incoming-call.ogg
        ├── screen-capture.ogg
        ├── power-unplug.ogg
        ├── bell.ogg
        ├── complete.ogg
        ├── count-down.ogg
        ├── camera-shutter.ogg
        ├── power-plug.ogg
        ├── battery-low.ogg
        ├── dialog-question.ogg
        ├── audio-volume-change.ogg
        ├── message-sent-instant.ogg
        └── device-added.ogg

If this looks correct then run the following commands to move the file and open system settings:

$ mkdir -p ~/.local/share/sounds #Make the directory
$ sudo mv ~/Downloads/"MacOS Sounds" ~/.local/share/sounds/
$ systemsettings

Then navigate to Colours & Themes > System Sounds and then select the one you just installed.


Plasma 6 Extensions Widgets (Plasmoids) Arch Wiki

Find any Plasma 6 extensions you like from here.

I’m doing to downwload the below files:

Option 1: If the files are compressed in a zip/tar.gz folder extract them and then open the terminal and cd to the extracted files or right click the folder and open the terminal:

$ cd ~/Downloads/<widget directory> #Replace <widget directory> with the extracted folder name
$ kpackagetool6 --type Plasma/Applet --install .
$ # Then log out and back in again. Restarting plasmashell in the terminal isn't very reliable.

If you get an error saying it already exists or you are trying to update it then run the below:

$ cd ~/Downloads/<widget directory> #Replace <widget directory> with the extracted folder name
$ kpackagetool6 --type Plasma/Applet --upgrade .

Option 2: If it is a .plasmoid file then simply use the below command. Trying to use the above will give an error if you have other files in the folder with it.

$ cd ~/Downloads/
$ kpackagetool6 --type=Plasma/Applet --install <downloaded-widget>.plasmoid #Replace <downloaded-widget> with the file name
$ # Then log out and back in again. Restarting plasmashell in the terminal isn't very reliable.

Option 3: Some are available by right clicking your panel and click “Add or Manage Widgets” then press “Get New” as shown in the below screenhot. You can then search for the widget name but some are only available from the KDE Store.

---

Widgets (Plasmoids) Customisation

Some Widgets (Plasmoids) offer some customisation in their settings and some don’t. In this section I will list how I’ve done some workarounds to tweak things to my liking.

ToDo-List By Marc

I don’t like the icon used by this widget as it doesn’t match my panels style so I will swap it out for something else.


GRUB Theme Arch Wiki

Find any GRUB theme you like from here. I like CyberGRUB-2077 so I will use this.

Most GRUB themes will come with a install script using either a .sh or .fish script. It is recommended to use fish where possible. Follow thes steps provided and that will install the theme.

You can manually install themes as well.

[!CAUTION] Some theme pages recommend using GRUB Customizer, I do not. It changes your GRUB config files and can make it difficult to apply tweaks or changes.

You’ll need to run this command any time you modify GRUB’s configuration.


Animations/Desktop Effects

Go to System Settings > Apps & Windows > Window Management > Desktop Effects.

Then change the following defaults:

Now we want to get some custom effects, go to “Get New…” in the top right and install:


KWin Scripts

Go to System Settings > Apps & Windows > Window Management > KWin Scripts.

Now we want to get some custom scripts, go to “Get New…” in the top right and install:


My Desktop Layout

To Be Completed.

I did use this YouTube Video to help me figure out sizing for my primary monitor.

---

 Back to Top