Arch Linux — Powered by Dag

Damiano Gualandri
6 min readAug 29, 2021

--

Photo by Isaac Li Shung Tan on Unsplash

What about having a fully working Arch Installation - on your machine? Well, it always has been my dream since the first Arch installation ever.

As I told you here, I installed Arch on a specific computer, so I have carefully chose my packages.

These packages are in addition to the packages I installed in this article:

intel-ucode nvidia vlc firefox discord telegram-desktop alsa thunar gcc htop i3 lxappearance ntfs-3g wget picom powertop redshift git xdg-user-dirs xclip maim tree xorg neofetch base-devel netctl lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings ttf-dejavu ttf-liberation noto-fonts alacritty dmenu ncdu brightnessctl pulseaudio alsa-tools alsa-utils xdotool sof-firmware nitrogen

Issues I had once I installed Arch Linux:

  • can’t change background
  • no aur helper
  • no common programs installed
  • no polybar setup
  • audio control not available by keyboard
  • brightness control not available by keyboard
  • no trasparent windows
  • “open containing folder” button doesn’t properly work in Firefox
  • autoconnect to wifi
  • wifi powersaving off
  • Enable lightdm and fix it because it doesn’t work
  • no wakeup after sleep
  • autostart things — redshift in my case
  • screenshot pasted into clipboard
  • multiple keyboard layout: switch between one layout and another one by pressing CTRL+SPACE
  • poweroff commands don’t work
  • no speakers and no microphone
  • cant open zip file and unzip them
  • battery drain
Our reaction after noticing that nothing is working as expected — photo by krakenimages on Unsplash

Can’t change background

This is an easy one, just put this in your console:

nitrogen <wallpaper folder>

It will open a window which will prompt you image picker.

In your i3 config place this line:

exec --no-startup-id nitrogen --restore

No aur helper

sudo git clone https://aur.archlinux.org/yay-git.git

Then

sudo chown -R user:user yay-git

Then

cd yay-git & makepkg -si

No common aur programs installed

In my case they are polybar, vscodium-bin and intellij-idea-ultimate-edition

yay -S polybar vscodium-bin intellij-idea-ultimate-edition p7zip-gui siji

No polybar set up

Comment the lines related to bar in your i3 file and add this line:

exec_always — no-startup-id $HOME/.config/polybar/launch.sh

Create xdg user dirs by giving xdg-user-dirs-update

Now polybar in order to work needs two files: config and launch.sh

cp /usr/share/doc/polybar/config .config/polybar/config

Change your “example” to “bar”.

Create into ./config/polybar/ a file named launch.sh , give:

chmod 755 ./config/polybar/launch.sh

Now it’s time to fill it by copy-pasting this:

#!/bin/bash# Terminate already running bar instances
killall -q polybar
# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
# Launch Polybar, using default config location ~/.config/polybar/co>
polybar bar &
echo “Polybar launched…”

Audio control not available by keyboard

In your i3 config file you need to comment the lines related to bindsym XF86AudioRaiseVolume , bindsym XF86AudioLowerVolume and bindsym XF86AudioMute.

NOTE: I installed sof-firmware that’s why I need to specify the -c 1 option.

It is needed to overwrite them with the ones we are adding:

## Audio control
bindsym XF86AudioRaiseVolume exec amixer -q -c 1 sset Master 1+ unmute
bindsym XF86AudioLowerVolume exec amixer -q -c 1 sset Master 1- unmute
bindsym XF86AudioMute exec amixer -q -c 1 sset Speaker toggle & amixer -q -c 1 sset Master toggle

Brightness control not available by keyboard

Add this in i3 config file:

 ## Backlight Control — requires brightnessctl and nvidia
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 # decrease screen brightness

No trasparent windows

After having installed picom, copy the default conf file:

sudo cp /etc/xdg/picom.conf .config/picom.conf

Fix its permissions:

sudo chown user:user .config/picom.conf

Then edit with nano by replacing vsync = true; with vsync = false

vsync = false; in the .config/picom.conf

Add this in i3 config file:

# Window Compositor
exec_always picom -f

Add this to .config/picom.conf

inactive-opacity = 0.75;
active-opacity = 1;
frame-opacity = 1.00;

Open containing folder button doesn’t properly work in Firefox

When you click on Firefox “open containing folder” button after a file it didn’t work

xdg-mime default thunar.desktop inode/directory

Autoconnect to wifi

In the terminal:

cp /etc/netctl/examples/wireless-wpa /etc/netctl/somedescriptivename
  • Edit your new config at /etc/netctl/somedescriptivename to fit your setup.
    Remember to set priority or it won’t work
  • Enable the netctl-auto service for your wireless adapter.
systemctl enable netctl-auto@<device>.service 

To list your interfaces (install iw first):

iw dev | awk '$1=="Interface"{print $2}' 

Wifi powersaving off:

sudo nano /etc/udev/rules.d/81-wifi-powersave.rules

inside that file:

ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”wl*”, RUN+=”/usr/bin/iw dev wlp0s20f3 set power_save off”

Enable lightdm (and fix it because it will not work)

Uncomment in lightdm greeter-session and replace with

[Seat:*]
greeter-session=lightdm-gtk-greeter

FIX: Add this to your /etc/lightdm/lightdm.conf in the [LightDM] section:

   logind-check-graphical=true

Then:

systemctl enable lightdm

No wakeup after sleep

sudo nano /etc/systemd/system/suspend@.service

Write this inside:

[Unit]
Description=User suspend actions
Before=sleep.target

[Service]
User=%I
Type=forking
Environment=DISPLAY=:0
ExecStartPre= -/usr/bin/pkill -u %u unison ; /usr/local/bin/music.sh stop
ExecStart=/usr/bin/sflock
ExecStartPost=/usr/bin/sleep 1

[Install]
WantedBy=sleep.target

Now, type

sudo nano /etc/systemd/system/resume@.service

Write this

[Unit]
Description=User resume actions
After=suspend.target

[Service]
User=%I
Type=simple
ExecStart=/usr/local/bin/ssh-connect.sh

[Install]
WantedBy=suspend.target

And finally

systemctl enable suspend@
systemctl enable resume@

Autostart things with i3

Add them to i3 config file preceded by exec or exec_always.

Useful things I put in mine:

exec redshift -l 41.90:12.49

Screenshot

Add this to i3 config file (requires maim and xclip):

bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png
bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png

Multiple key layout (switching from one keyboard to another one with WIN+Space)

Copy-paste this into terminal

localectl set-x11-keymap us,it pc105 qwerty grp:win_space_toggle

Poweroff commands doesn’t work

Become superuser:

sudo su

Override visudo editor:

export EDITOR=nano

Type visudo then add this at the end of the file:

user hostname =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot, /usr/bin/systemctl suspend

And in your .bashrc:

alias reboot="sudo systemctl reboot"
alias poweroff="sudo systemctl poweroff"
alias halt="sudo systemctl halt"
alias suspend="sudo systemctl suspend"

No speakers — no microphone

They work for me:

echo "options snd-hda-intel model=generic" >> /etc/modprobe.d/alsa-base.conf
echo "options snd-hda-intel enable_msi=1" >> /etc/modprobe.d/modprobe.conf

Let’s install sof-firmware:

sudo pacman -S sof-firmware

Can’t open zip files and unzip them

sudo pacman -S p7zip

then from your favorite aur manager:

yay -S p7zip-gui

Battery drain

Install TLP

sudo pacman -S tlp

Let’s autostart this service

sudo systemctl enable tlp.service`

Cool custom theme

Download it first:

wget https://github.com/Roboron3042/Cyberpunk-Neon/raw/master/gtk/materia-cyberpunk-neon.tar.gz -O materia.tar.gz

Let’s un-tar it:

tar xzf yourfavouritetheme-cyberpunk-neon.tar.gz -C ~/.themes/

Open lxappearance and select it from your theme list

List of application installed (and why):

Photo by Kelly Sikkema on Unsplash
  • intel-ucode, nvidia: microcode for Intel CPU and nvidia drivers
  • vlc firefox discord telegram-desktop git: I refuse to explain you what they are!
  • alsamixer: the standard mixer used to control audio, we will later discuss it
  • thunar: a simple, rich file manager
  • gcc: GNU Compiler Collection
  • htop: an advanced process manager
  • i3: my Window Manager (WM)
  • lxappearance: to change our GTK theme
  • ntfs-3g: allow the os to read NTFS filesystem
  • wget: tool to download stuff from the internet
  • picom: allow trasparency on each window
  • polybar: highly customizable bar
  • powertop: it shows what apps consume our battery
  • redshift: powerful eye-saver
  • xdg-users-dirs: this is useful to create the standard directories of each user
  • xclip: allow to copy-paste images
  • maim: screenshot tool
  • tree: beautifully display our directories in a tree
  • xorg: display server
  • neofetch: just an aesthetic thing for our terminal
  • base-devel: building applications essential tools
  • netctl: it controls our connection
  • lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings: are used to setup a login page
  • ttf-dejavu ttf-liberation noto-fonts: some fonts
  • alacritty: a powerful gpu enhanced terminal, very beautiful
  • dmenu: a menu that could open every app you installed in your system. Is pre-configured with i3
  • ncdu: tool used to check free space
  • brightnessctl: it manages brightness
  • pulseaudio, alsa-tools, alsa-utils: they are useful to manage audio
  • sof-firmware: audio firmware
  • nitrogen: background picker
  • siji: no font in my polybar config

If you liked this article, why don’t you take a peek at my website or check my profile on Github?

You may find interesting even this awesome article on how to install Arch in a few moves

--

--

Damiano Gualandri

Computer science student, developer, writer, what else? Likes coffee, nature, music. Aiming to create quality content on the Internet and have fun with life.