« Web, HTML, Tech Forum

Theming for Linux Users

Posted by samsux

posted
updated

Forum: Web, HTML, Tech

Theming for Linux Users

If you're using Linux, there's so much you can do to customize your PC / computer / machine (or host, which I will continue to call it for this post). Whether in UI, workflow or otherwise, you have a degree of freedom not easily offered in other (usually proprietary) operating systems. As far as themes go, there are quite
a number of them over at Pling.com. People can submit themes onto the
site, which can cover a variety of areas. Most of the links below will
come from Pling, unless otherwise noted. Good themes, however, exist all across the Internet, so don't feel afraid to explore!





Theming your Desktop Environments

Speaking very generally, a
Linux Desktop Environment (or DE for short) is the particular setup your Linux distribution uses in order to have a functional host out-of-the-box. DEs come with a suite of applications and tools, in order to help a user immediately be able to do their work without having to, say, do research on what text editor is best, which one they should install, and how they should do so. Instead, DEs come with a text editor so that someone can simply begin to work without much hassle.

Speaking very generally again, a DE is made of two separate technologies: there is code for its UI theming, and there is code for its icons.

Your DE will most likely use one of two "software styles" for the theming:

When changing the theme of a DE, in other words the look and feel of the interface, you will be downloading some theme files onto a tidy place on your drive, and then installing them. When changing the icons a DE uses, it's the same process but for a set of icons. Themes
for GTK will not affect the look and feel of a DE that uses Qt, and
themes for Qt will not affect the look and feel of a DE that uses GTK.

If you're ever lost and don't know where to go or what do to when it comes to the stuff in this post, you can always try getting help very
quickly by asking a friend, or searching up whatever you need on your
favorite search engine that isn't Google. Hell, you can even ask me and I'll help!

So, you want to theme your DE?

A good place to start is to check Pling.com
for themes. Their link naming scheme is very messy and has different
URLs for nearly every DE though, so to make it easy for you, you can
click the links below for whatever DE(s) you are interested in theming,
and you'll be redirected to the right place:

ArchWiki resources for Desktop Environments

The ArchWiki
is a site that "[seeks to provide] the Arch Linux user community with
the most comprehensive and the most accessible documentation on the
web," but it's also an invaluable resource for most other Linux things and users. If you ever need to do some reading, you should check here!

Budgie,
Deepin
, and Pantheon are all based off of the GNOME desktop in one way
or another. In essence, they all use GTK, so theming them is a matter of doing
whatever steps one would do to theme a GNOME desktop. This is because out of all DEs that use GTK, GNOME has the most widespread support, so looking for how people customize GNOME is the easiest way to find support for other GTK-based DEs.

Trinity is based off a fork of KDE version 3, so theming Trinity is a matter of Qt theming, as KDE uses Qt. But I will mention that a lot of modern Qt theming will not work for Trinity,
either with extensive modification of the themes you want
to install, or sometimes they just will not work at all. The fact that
it is a fork of a now much-older version of KDE means you will have to
find theming resources for that much older version — earlier this morning I was doing just
that, and a good portion of the things I found were posts that were quite literally 20 years old. Trinity is a fantastic DE and you should
try it at least once, but it is also true that in order to theme it you
may have to exercise patience with other Trinity community members.

Theming your icons and / or cursorsfull specification

The cool thing about
theming your icons is that there really aren't DE-specific
steps required to do so — you can, for example, find an iconset off
Pling's section on GNOME, and install it on a distribution that uses
KDE!

Your cursor theme is a specific style of iconset, and
theming it is much the same process as installing any other iconset,
only you would look for a cursorset. They are easy to tell apart, and I believe in your ability to do so!

If you don't need resources on theming Window Managers, you can skip forward to the section on Installing your themes and icons.




Theming your Window Managers

Sometimes, folks who use Linux distributions don't want or need an entire DE in order to use their host(s). DEs generally come with a full suite of applications and tools (including their own window managers!), but an end user might not ever want or need most of these bundled tools. In this case, a Linux user might want to instead install just a Window Manager on a base system to do the job of... simply managing the windows... and install only the tools they really want or need. Going this process involves a bit more trial and error, since you're generally going to be learning what exactly makes a setup tick the way it does, but it can be very rewarding if you have the patience for it, since it offers the user a degree of customization and optimization not presented in a full DE.

Some window managers are what's called Stacking, which is most like a traditional OS experience. In this style, windows act like pieces of paper on a desk, and can be stacked on top of each other. Other window managers are what's called Tiling, and in this case they "tile" the windows so that none are overlapping. They usually make very extensive use of key-bindings and have less (or no) reliance on the mouse. Tiling window managers may be manual, offer predefined layouts, or both. And in other types, some window managers are called Dynamic, where they can switch between the above two workflow styles.

Resources for Stacking window managers:

Resources for Tiling window managers:


The lists above are not exhaustive, and in all likelihood are probably not the greatest resource either. That being said, I plan to update this post by editing it in the future, so these links will eventually point to better resources if need be.

As far as themes for these window managers go, most of them rely on a method where you edit configuration files for them. These files are usually located in some directory that's "hidden", which on a Linux system can be accomplished by prefixing the directory's name with a period. Because of this, bundles of these configuration files are colloquially known as "dotfiles". Frequent / experienced users of window managers will usually have many different types of dotfiles, in the same way users might have many different themesets. Searching online for dotfiles can be a fun process, if slightly more demanding of an end user.

These dotfiles will differ in how they should be edited, whether or not they will need to be modified in order to then recompile window managing software, and they may differ in where they need to go. A good place to store your dotfiles would be in:

~/.config

Because most window managing software reads from your user's home directory (/home/exampleuser or ~/ for short), storing dotfiles simply in ~/ can clutter your Home very quickly. Placing them in ~/.config will still allow window managing software to read those dotfiles (in most cases), and provides a tidy place for them.

For more tips on managing and tidying your userspace, you can read the ArchWiki's page on the XDG Base Directory specification. It also links out to the full specification, and it's worth reading that as well if you're going this far to learn. I'm proud of you!




Installing your themes and icons

Once you download whatever theme(s) and / or icon(s) you
want, you have to install them before you can set your DE to use them.
Let's do it in 10* straightforward steps! For the sake of demonstration, I will give
instructions on how to install an example iconset:
Clearlooks. Please note that these instructions are mostly an example only, and when doing this yourself you may need to change some commands where necessary, in order for it to work on your host. I will do my best to explain where and when those changes might need to be made, so don't worry. These instructions will also work on other downloaded iconsets and themesets as well.

1: Open a Web browser, and navigate to wherever your desired icon(s) and theme(s) are. In this case, I am going to go to this site in order to download the Clearlooks iconset. Note that this specific site is not Pling, and is actually Github! There isn't exactly a single place on the Web for Linux theming, and in order to theme your host the way you want it you might have to become an Internaut for a little bit and explore the high seas of the Web.

2: Download your desired things to a good and tidy place. In my case, I actually have a specific directory for my downloaded iconsets, so I will download it to there at ~/Public/Archives/iconsets.

Remember to change this path out for whatever yours would be, for example, yours might be in ~/Downloads.

3: Open a terminal, and navigate to the directory the iconset is in:

cd ~/Public/Archives/iconsets

Remember to change this path out for whatever yours would be, for example, yours might be in ~/Downloads.

4: Make a new directory to put the iconset in, just in case it extracts in an odd way:

mkdir temporary-directory

5: Move the downloaded iconset to this new folder:

mv clearlooks-phenix.tar.xz temporary-directory

6: Navigate to this temporary directory, and then extract the iconset:

cd temporary-directory && tar -xvf clearlooks-downloaded-iconset.tar.xz

Your downloaded iconset might use some other archive type, for example it might use .zip or .tar.bz2. In these cases, you can look up in your favorite search engine that isn't Google "how to extract .tar.bz2 in linux terminal", or whatever archive type you would need help with.

7: Once it is complete, list the contents of this current directory to see what changes were made:

ls

This will usually show just a single directory, which will be
the iconset. On the rare occasion, an iconset will have a different
directory structure though (usually because the uploader is doing something wrong), and extracting them this way would show a
bunch of files in this temporary directory! See, we made this
temporary directory for a good reason — if you simply tried to extract
the downloaded iconset in whatever directory you downloaded it to, on the
rare occasion it may end up extracting the iconset's files all strewn
about
, mixed in with other files that are not of the iconset... and
figuring out which files and directories belonged to the iconset and
which ones did not can be quite tiresome. This helps prevent that, although some might see it as an unecessary step. It's saved me a few times!

8.a: In the case that it shows just one single directory, you can copy the directory to the location for icons:

cp -r clearlooks-phenix ~/.local/share/icons

If you get an error back from your terminal saying "cp: cannot
create regular file '~/.local/share/icons': No such file or directory
"
then you will need to make those directories first with:

mkdir ~/.local/share/icons

8.b: In the case that running ls shows a bunch of different files, change
directory to the one above and rename the temporary-directory, then
copy it over to the location for icons:

cd ../ && mv temporary-directory clearlooks-phenix && cp -r clearlooks-phenix ~/.local/share/icons

9: You can at this point remove this temporary directory in
order to save disk space, since we copied the files over to where we
needed them and now they are no longer needed here:

cd ~ && rm -r ~/Public/Archives/iconsets/temporary-directory

Remember, once again you may have to change this path out for
whatever yours would be, for example you might run
cd ~ && rm -r
~/Downloads/temporary-directory
or something else. You've got this!

10: Once you have the directory copied over to
~/.local/share/icons, your iconset is installed, and you can now set the iconset in your DE's settings!

The process for installing a UI themeset is the same as above, only you would replace ~/.local/share/icons with ~/.local/share/themes.






Setting your themes

You can set your theme(s) in the
settings application your DE provides, but here are some helpful tools I
would highly recommend as they will usually work on a wide array of
DEs (that use GTK):

  • lxappearance
  • gnome-tweaks

The first one, lxappearance, is a very good tool for setting your theming properly across applications that use GTK2 styling. The second one, gnome-tweaks, is for ones that use GTK3 and above. You can install these tools by using your Linux distribution's package manager. A trick you might want to try is searching up on your favorite search engine that isn't Google something like "how to install lxappearance on debian", of course replacing "debian" with your Linux distribution.

A good tool for Qt-based DEs:

If anyone else could reply with some better information on theming Qt, I would highly appreciate it! I don't have as much experience with it, so I'm not really sure of the best way of doing it.

I would also recommend checking the ArchWiki's page on Uniform look for Qt and GTK applications.

Once you have these tools on your host, you can use them to set your iconset, cursorset, and UI themeset. What will happen most of the time is that you will be using applications that use older versions of GTK styles like GTK2, alongside other applications that use GTK3 and above, so although having the tools to manage both new and old versions might seem redundant, in actuality having both tools is almost always necessary. Sometimes, one might think like their GTK theme might retroactively also apply to GTK2 styles, but the theme might not have the right kind of configuration for older GTK styles. So what will happen is that some applications will appear with the theme you want, and others won't at all. Having both lxappearance and gnome-tweaks helps this. And sometimes, if you're using tools that use GTK styles alongside tools that use Qt styles, you might just have to use all of the above!

I usually set my themes with lxappearance first, in order to modify the older GTK2 base styles first, then I also set the themes with gnome-tweaks, in order to modify the GTK3+ styles. And yes, I do it in this order. I've found that doing it the other way around doesn't always work.

Now show us your setup!

If you want, reply to this thread with a showcase of how you set up your host! Others here can use your work as inspiration for their own, and might just learn their newest favorite aesthetic or whathaveyou. Some might find out tools that "do one thing and one thing well" and realize that's exactly what they've been looking for all these years. You never know!


I have to apologize if I haven't written something here that could be
helpful for the distribution(s) you use. This post lists the resources I
use, for DEs and WMs I am familiar with. Reply back with other helpful
information, if you'd like! It could greatly help those who need information I haven't provided. In particular, I think a good amount of the links in the Window Manager sections could probably be modified to point to better places for help and support.

Hope you're doing well!

Layla (samsux)



  1. I don't call it GNU/Linux or GNU+Linux in this thread because I just don't want to call it that. Yes, for most cases it is technically more right to give the proper attribution to the GNU Project, but the fact of the matter is that it is possible to use a Linux host without using any GNU components, and hundreds if not thousands of folks do it every day. And in any regard, this is not a new discussion to be had, as the debate on calling it GNU/Linux or simply Linux is as old as the kernel itself. My admission of this footnote is not an admission that I think one way is right and the other way is wrong, either.
  2. Window managers are unique to Xorg. The equivalent of window managers on Wayland are called compositors because they also act as compositing window managers.
  3. I may have missed some things. I will update this post by editing it whenever I might need to.
  4. I did very briefly mention text editors in this post, and much like the discussion on GNU/Linux vs. just Linux, I want to advise folks against starting a similar discussion on what text editor is best. If you use vim, cool, if you use emacs, equally great, if you use something else, awesome. Just be glad we all have great tools at our dispense, in order to really get work done.
  5. Trans people deserve rights, always and forever.


Report Topic

1 Reply

Reply by M

posted

This is super cool! I want to transform my pc into w98


Report Reply