How to edit the GNOME Shell directly?

I understand that there are plenty of plugins and extensions available for GNOME. The problem is I cannot find any information on how to edit the GNOME Shell directly. What I am most interested in is the Taskbar and the Activities button. I assume the information is being stored as XML and JavaScript in files somewhere but I’m not sure where to look.

1 Like

If you want to edit Gnome, it’s not XML and javascript.

Here is a link to the sourcecode:

1 Like

Cool stuff. Not sure if I’m up to building GNOME from source. Was hoping to just change some values in a configuration file. This might be a project I’ll have to put on hold for now. Thanks for the link.

What do you wanna do?

I want to replace the Activities button with a custom image icon and change the color of the taskbar. And possibly add a custom program to the taskbar.

First two should be able to be done by editing the shell theme I think. Themes are done via css.

Third… I don’t know. I’m not a gnome guy. :stuck_out_tongue:

I did discover a /usr/share/gnome-shell/theme/gnome-classic.css file. When I change the values and restart the UI seems unaffected. There probably is a CSS file somewhere I haven’t found yet.

Gnome classic is the fallback shell I believe. That’s something different then what you are after

What else is under the /usr/share/gnome-shell/ folder?

1 Like

The only other CSS file is gnome-classic-high-contrast.css



I’m definitely not running classic currently. :slight_smile:

1 Like

I wonder if @wviets would know


Themes are stored under


What’s under there?

I’m not seeing such a path. Running Fedora 29 if it makes a difference.

Do you have the file manager set to view hidden files?

Checked with ls -a to view hidden files.

Potentially Builder could do what you are looking at doing - havent played with it much though


Adwaita, Gnome’s default look, is “baked in” to Gnome. I believe altering it requires rebuilding the thing. You may still be able to affect some characteristics of the Shell’s appearance by overriding specific CSS attributes via a user-level CSS file. But I’m not at all sure about that.

Gnome extensions rely on javascript to alter functionality. You might examine the source for some if those that do something close to what you are trying to do.

There is a reason we see fewer and fewer optional themes for Gnome.


There’s definitely a reason. Gnome dev’s have historically been very hostile towards people wanting to theme or make any changes at all, to the point that they literally named their default theme “the only reality” in Sanskrit. To them users are the problem.

Here’s an article on how they currently think. Basically they’ve created a big fucking mess (it’s your fault for wanting to do things with it though), don’t want to work on a comprehensive fix, and instead would prefer to actively make it harder to do what every single person wants to do the moment they switch to Linux (which is change themes)

Here’s an overview of gnome dev history

Here is Linus getting tired with gnome dev bullshit:


The OP seems to be after a couple of functionality changes rather than tweaking the theme. Extensions, not themes, may be the way to go. I would put someone who can code an extension in a different category than the mainstream user who is Gnome’s target.

Personally, I’m neutral about Adwaita. It works, it’s bland, it stays out of the way, and I’d rather use it than 99% of the blocky, flat, pastel, often buggy Material-design copies that are common.

Choice in FOSS exists for developers because FOSS exists for developers. Choice for users is a by-product. The longer I use Linux – it’s been a long time – the more I expect developers to deliver a finished, polished, product that I’m satisfied with out of the box.