4

On my Ubuntu 18.04 LTS system, I replaced Nautilus with Nemo 4.2.3, because it has more useful features. However I had to admit that Nautilus "skin/theme" is more beautiful to me, when I use Ambiance theme.

I would like to customize Nemo skin to be similar like Nautilus, including the gray sidebar.

I made a comparison:

enter image description here

pomsky
  • 68,507
Belushi
  • 428

1 Answers1

4
  1. Open a terminal window Ctrl+Alt+t
  2. cd ~/.config/gtk-3.0/
  3. gedit gtk.css (gets created if it doesn't exits)
  4. Add the following code:
/*.nemo-places-sidebar .view { */ 
.nemo-window .sidebar .view {
  background-color: @theme_fg_color;
  color: @theme_bg_color;
}
  1. Save file and close gedit
  2. Quit/close all nemo windows nemo -q
  3. Startup a nemo file explorer nemo

Pre ModificationPost Modification

  1. After you close the Nemo window you will notice that the started process in the terminal window is still active. It will close automatically after 30 seconds, or you could force close it with Ctrl+c.
  2. Tune to your liking...

I made reference to my theme defined colors in this example, an inverted their "normal use", but you can put directly an html color code if you prefer:

.nemo-window .sidebar .view {
  background-color: #605e54;
  color: #e5e5e5;
}

This method is Theme independent, unless ofcourse you make reference to theme colors. You can comment out with /* .... */ things you have in the gtk.css file if you don't want it to override the "default" settings or just delete the file.


Other CSS Properties:

First have a read through Overview of CSS in GTK+ to understand how these styles are formed.

I would recommend to investigate source code of themes to see if they have any Nemo specific sections such as here or [here].(https://github.com/linuxmint/mint-themes/blob/712039deb45e465c28dd4c27f65745e7dfb09c9a/src/Mint-Y/gtk-3.0/sass/_applications.scss#L241)

GtkStyleContextClass Constant def List properties that will be in the code as constants. May help in decifering some of it in a specific region of interest.

A lot will probably be inherited names as they will grab classifiers from common theme names, yet a search for gtk_style_context_add_class in the github repository brings a couple "new" names in sight.

src/nemo-config-base-widget.c --> `view`, `primary-toolbar`
src/nemo-properties-window.c --> `primary-toolbar`, `raised`
libnemo-private/nemo-places-tree-view.c --> `places-treeview`
src/nemo-trash-bar.c --> `nemo-cluebar-label`
src/nemo-floating-bar.c --> `floating-bar`
src/nemo-desktop-window.c --> `nemo-desktop-window`,
libnemo-private/nemo-icon-container.c --> `nemo-desktop`
src/nemo-pathbar.c --> `slider-button`
src/nemo-window-pane.c --> `nemo-inactive-pane`
libnemo-private/nemo-icon-canvas-item.c --> `nemo-canvas-item`, `dim-label`
libnemo-private/nemo-tree-view-drag-dest.c --> `treeview-drop-indicator`
src/nemo-window.c --> `nemo-window`
src/nemo-places-sidebar.c --> `nemo-places-sidebar`

Examples:

https://github.com/linuxmint/nemo/blob/master/gresources/nemo-style-fallback.css https://github.com/linuxmint/nemo/blob/master/gresources/nemo-style-fallback-mandatory.css https://github.com/linuxmint/nemo/blob/master/gresources/nemo-style-application.css

My Investigation:

I had a look into some code from Nemo and found that it was making calls to css-providers. Then "duckling" (don't know what to call "googling" through duckduckgo xD) similar search terms found this bit of code which has within the comments:

... certain files will be read when GTK+ is initialized.

First, the file $XDG_CONFIG_HOME/gtk-3.0/gtk.css is loaded if it exists.

Then, GTK+ loads the first existing file among XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk.css, $HOME/.themes/THEME/gtk-VERSION/gtk.css, $XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk.css and DATADIR/share/themes/THEME/gtk-VERSION/gtk.css, where THEME is the name of the current theme (see the Settings:gtk-theme-name setting), DATADIR is the prefix configured when GTK+ was compiled (unless overridden by the GTK_DATA_PREFIX environment variable), and VERSION is the GTK+ version number. If no file is found for the current version, GTK+ tries older versions all the way back to 3.0.

So I went to ~/.config/gtk-3.0/ to only find a file named bookmarks

some more searching landed me to this gist and the search continues to all of the following resources:

a ,b ,c ,d ,e ,f ,g ,h ,i