As an Arch user: what are some of the Arch things which you are supposed to know about, but actually haven't taken the time to learn and have been avoiding?

Hello :innocent:

I have been running Arch for some time now, there are some things which I know I should be knowing and had a breakthrough understanding loooong time ago. But I have been lazy, dodging, choosing to be stupid all the time. I have not been very responsible Arch user because of that. After being away for nearly 2 years from arch/linux I am looking to change that from today on!

This thread is for being honest to yourself and choosing to fix the issues, which you are aware you are having with arch/linux knowledge! So doing research on your own, will really be the best (after all, that is your own curiosity on a given subject).

Also I am somewhat curious… what similar third world problems, the more senior Arch masters are having :rofl: it would be so interesting to know!

So here are my rookie problems which I can instantly think of:

  1. Git - an required skill to host your dotfiles (minimally, at least for that!). I have used it and tried it, but not 100% understood it. Right now without looking up a guide, I wouldn’t know how to properly push & pull or generally work with it, including the site (yet I manually download .zip & .dotfiles regularly from there).
  2. Manually installing AUR packages with makepkg. Not for once I have considered learning about PKGBUILD files. Reason: discovered yaourt, then yay. I think a big breakthrough awaits me right there. This point right here feels like a curse to me :stuck_out_tongue: I have tasted the devil known as aur helpers and became dependent on them.
  3. Not entirely understanding linux file structure, what actually is inside the / for example: /dev, /etc, /opt, /run, /srv, /tmp, /var. What stuff gets placed where, for Why they exist and what they do.
  4. When installing stuff with either yay or pacman -S, I don’t know where the files actually get downloaded on my system temporarily, and get placed after building. My basic usage will be in /home/.config 99% of the time, maybe a basic rice or a basic change of something.
  5. Installing fonts on arch/linux, feels extremely intimidating to me. Sometimes I know I can install a font from pacman or yay if know the font name (but then again, I don’t know where the files go anyway on my system…), but other times for a custom font which is not in the repo it’s not easy to figure out how to install, or where to place the files.

LOL, I’ve been using Git for 2 years, and I’m still far from understanding it in at least 50% :rofl: I believe only Linus Torvalds understands 100%.


If 50% understanding = effortlessly working at least with your dotfiles, properly doing commit, pushing and pulling (and all those other git terms - sorry I lack understanding of them in this given moment) via terminal. And understanding this specific process correctly. Then this is exactly what I want and are looking to change in me!

So… perhaps I’ll begin with this today :sweat_smile: even if it takes me a few days, I kind of like to make a tutorial out of anything if I learn something new. Just to help similarly MS windows brain damaged users like myself (not to offend anyone :P) to transition and settle more comfortably onto Arch! There is just something when writing out a tutorial, it makes one to understand a subject better too.

If it comes to 2 - 4: a good resource is wiki: Arch package guidelines.

1 Like

I struggle even with those tasks… :frowning:

For the better understanding of git I watched

Hope it can help someone else as well.

1 Like

Github’s guides are very good, try those.

Using makepkg is very simple:

makepkg -sri

^ That installs any required dependencies, builds the package and installs it in one fell swoop.

And you really should learn how to read PKGBUILDs because it’s very simple to create one that can completely wreck your system, either deliberately or accidentally. *Never* install an AUR package without first checking the PKGBUILD.

See file-hierarchy(7).

They’re stored under /tmp whilst downloading and building, use this to find where everything is after installing:

pacman -Fl $package

Replace $package with the actual name of the package.

You can place them in either /usr/share/fonts/ or ~/.local/share/fonts/ but it’s best to package them up. Fonts are probably the simplest things to package so they’re ideal to practice with.

And for me personally, I struggle with custom kernel configuration — I don’t think I’ve ever managed to compile a fully working kernel myself, which is embarrassing. My current laptop has a lot of quirks and crappy firmware though so at least I have an excuse.


Re: #1

Unless you work with git in other places, I’m not sure I agree with everyone learning git for the express purpose of managing dotfiles. rsync or archives seem much better. It’s only so prevelant in the *nix communities because most of them already use it for other projects.

@anon42040838 pretty much covered everything else nicely.


I did find an practical functioning method for managing my dotfiles. It literally takes 3 steps to setup: (original source, if you want to rice the alias functions further)

config” is the new alias command I will continue to use instead of git:
This alias can add all files inside a specified folder!

git init --bare ~/.dotfiles
alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
config config status.showUntrackedFiles no

And now to work with the new alias command:

config status
config add .vimrc
config commit -m "Add vimrc"
config add .config/redshift.conf
config commit -m "Add redshift config"
config push

I learned a lot about git yesterday (git init, git add, git commit -m, git status, git push) before I found this specific method. Maybe this is the “I want to host my .dotfiles in github”-starter pack :rofl:

1 Like

Touching this Git thing for 1 more time :smiley: a new discovery! Maybe I should drop this alias idea.

At first I was trying to keep it simple and just use ~/.gitignore file and include my specified directories or files. Using the * operator (which excludes all files & folders) in the beginning of the .gitignore file was important to me, but at first it didn’t work!

This didn’t work:


This doesn’t work:


But this will work:



Using “git init” in /home & .gitignore file approach was precisely which I originally wanted to achieve :slight_smile:

Nice work in there @Sorcerer . Getting there !

1 Like

There is also baph which is included with AL and is just a wrapper script around makepkg with some other small additions.

1 Like

Strange, I just built it without issue.

If you post the error I can look into fixing it though.

1 Like

I use pamac on the daily basis, to browse dependencies.

1 Like

Consider my lips pursed.

Though seriously, I really couldn’t care how others update their system. I like using the terminal. Others like a GUI. It makes no difference, the sun still sets at night and rises again in the morning.


Makes sense.

I used to use it for the same reason, I know yay has something like this as well but you can do

baph -s "text editor" | less -R

For searching, it’s pretty broad and also matches descriptions.


I do tend to agree on this. I am OK w/ Git, but I prefer to use rsync for dotfile management. Sorcerer wants to “host” his dotfiles (I suppose on github), so perhaps that is why he is inclined towards Git.
There was one v. good long lecture on git by some lady (Norma I think was her name). It was pretty good (on youtube). I also found the Git pocket guide (O Reilly) a fairly good reference for the myriad commands.
I suppose if you make a lot of changes to test various things out and need to revert to various points in time, Git is very good. I don’t usually do that, so rsync is sufficient.

I hope someone finds this useful. On rsync, if you are syncing to/from a USB drive typically having a MS file system like FAT, it is recommended you include the option

Otherwise rsync might update even files that have not been modified. I had this problem for a long time, till I read that recommendation.

(PS: Also --update otherwise rsync will just update everything).