I was really tossing up the idea of doing this over an audio tutorial or what but in the end I decided that it would be best if I just typed it out. I’ve had really bad luck with recording audio on Linux and it just doesn’t seem to get any better no matter what I do.
One of the things that I really like about using Linux is the modular nature of all of the software on the system. That especially applies to the look and feel of the desktop environment. To some degree, regardless of which DE you use (if any), you have some level of control over how you can personalize it. This is usually one aspect that I’ll spend an entire weekend on just because I can.
So if anyone hasn’t figured it out by now, I’m pretty partial to GNOME 3. Despite my angst against their documentation efforts for GTK, I think it’s a fantastic DE and most importantly I think it’s the best looking one out there. And that’s just judging by stock appearance with the Adwaita theme. At some point, however, you’ll probably get the itch to try and create a custom theme yourself. Ambitious to say the least. The problem is that it’s not exactly clear how to go about doing that. In fact, I’m still looking into how to do this for myself.
However all is not lost. For there do exist on the internet a vast collection of Shell themes, GTK3 themes, icon themes, fonts, sounds; literally everything you need to really make your desktop experience your own. What I wanted to do was share my current desktop and show you how I went about bringing it to that point. Be forewarned that the background image is NSFW and if you don’t like it, you can go fuck yourself.
Here’s a view of Nautilus
And here’s Rhythmbox (mainly to show off the GTK3 theme)
So here’s what we have going on here.
- The GNOME Shell theme is Nord
- The GTK3 theme is FlatStudio (there are four variants available; I’m using the Light version)
- The icon theme is ALLBLACK
- The font is Roboto (The same font used on modern versions of Android)
Let’s start the process.
Before you start downloading anything to customize with, you’ll need to get a few packages. You’ll want to download the gnome-tweak-tool package. It’s important that you check to make sure that when you download it that it brings along with it the gnome-shell-extension-common and gnome-shell-extension-user-theme packages; it usually does these days. If it doesn’t, you’ll have to manually install those packages.
GNOME Tweak Tool is a pretty nifty tool that will help you customize GNOME Shell/GTK with very little effort (which is what we want). The other two packages are for enabling the use of custom extensions with GNOME Shell and a specific extension that will allow you to use custom themes on the Shell. It’s pretty straightforward.
Once you have those installed, you can start downloading all of the themes, icons and fonts that you want. You just need to know where those assets need to go after they’re all downloaded.
Technically speaking, there are two places you can move your assets to so that they’re visible to GNOME. If you’re on a single-user computer, it really doesn’t matter where you put them. However if you’re on a computer that has multiple users, it will matter if you’re concerned about providing other users aside from yourself access to those assets so that they can customize their DE.
The “single-user” way (it may be more accurate to say this is the user-private way) is to simply move the assets into hidden directories under your home directory. There’s a good chance that these directories don’t already exist so you’ll have to make them. Here’s where things should go:
- GNOME Shell/GTK Themes – ~/.themes
- Icon Themes – ~/.icons
- Fonts – ~/.fonts
Remember that in order to check to see if these directories exist, you’ll either need to use ls -a from bash or use Control+H in Nautilus.
The other method requires that you have root permissions. On a computer with multiple users, this should be an issue if you’re the administrator. If you’re not, then you can’t place those assets in these directories and you’ll have to resort to the user-private way.
- GNOME Shell/GTK Themes – /usr/share/themes
- Icon Themes – /usr/share/icons
- Fonts – /usr/share/fonts
As I mentioned before, using this method will make these assets available to all users on a single computer. Or if you just feel more comfortable having these assets in a root-protected directory or if you’re running a self-imposed quota on your home directory, this would be where they’d go.
Once the assets are moved, they should immediately be available to GNOME thus making them available to the Tweak Tool. To open the Tweak Tool, you can go through Shell and type “Advanced Settings”. Or you can open it up through bash by using gnome-tweak-tool & (the & makes the process run in the background).
If this is the first time you’ve run the Tweak Tool, there’s a small process that you’ll need to go though before you can start customizing the Shell. By default, the use of Shell Extensions is disabled which we don’t want. The screenshot below shows the Shell Extensions section and while mine shows that it’s on, first timers will probably see that it’s off. You’ll need to toggle that on and then restart GNOME Shell (Alt+F2, type the letter ‘r’, then press Enter). You may want to restart the Tweak Tool as well just to be safe.
Now you’ll want to open the Tweak Tool again and if you check the Shell Extensions section, you should see that it’s toggled on. Now you can start making changes to your Shell/GTK themes under the Theme section. I have my current configuration shown below. See the very last combobox at the bottom labeled “Shell Theme”? If we hadn’t enabled the User Themes Extension in the previous step, this combobox would be disabled and you wouldn’t be able to use custom themes on the Shell. You still would’ve been able to make changes to GTK, fonts and the icons.
It really is as simple as that. Hopefully before too long I’ll be able to figure out how to go about creating a custom theme and can share those experiences here. Any questions, please feel free to leave them in the comments below!