How to change the GUI theme on Xinit / X11 / X display / Xorg?
X doesn't have a theme because it's not responsible for how anything looks. Well -- that's not quite true; cosmetic preferences can be set for very old school X apps using a configuration file, but themes are not a concept there.
Global themes are commonly implemented independently by:
The window manager, which controls the appearance of window frames and titlebars.
The desktop environment (DE) -- if any (you aren't using one) -- which controls things like taskbars, and may provide a unified interface to the window manager.
Widget libraries, which are used by individual applications to provide normal GUI features like menus and other controls. DE's also sometimes provide a unified interface to one or another of these. Since they are are coded into the applications, there may be more than one in use on any given desktop (resulting in a subtle or not so subtle difference between one app and another). The two most significant ones on GNU/linux are Gtk+ (primarily) and Qt, both of which use incompatible major numbering systems, meaning, e.g., an app written for Qt 4 can't use Qt 5 and vice versa.
This last point about versions is significant because the theming for each major version is controlled separately, and you could have contemporary apps using Gtk+ 2, Gtk+ 3, Qt 4, or Qt 5. I know that epiphany uses gtk, but newer versions might use v. 3.
Gtk+ 2 is controlled with a per user file, ~/.gtkrc-2.0
. An easy way to set that from the desktop is gtk-chtheme
, which is an independent package:
apt-get install gtk-chtheme
Then just run it. There may or may not be many themes installed on the system; there will be more available if you look through:
apt-cache search gtk | grep theme
Installing them will make them available right away in gtk-chtheme
.
how I could eliminate the outer border by not using / using the matchbox manager?
If all you are doing is starting one app, there's not much purpose to a window manager unless you want a frame (needed to resize the window).
Note that this:
while true; do
epiphany-browser -a --profile ~/.config http://google.com &;
exec matchbox-window-manager -use_titlebar no;
Finishes right there -- the next line, sleep 2
, never happens. This is because exec
replaces the current shell with the command. So all you've done here is start epiphany then matchbox. There's no loop.
X exits when the xinit script ends (which is why some people use a loop here), so in this case, when matchbox dies, the whole GUI will shut down. Using matchbox in this keystone position may or may not serve a purpose. If instead you used no window manager, just one line:
exec epiphany-browser -a --profile ~/.config http://google.com
Then X would exit when epiphany does. Notice no &
at the end there, or what would happen is epiphany would fork, the script would end, X would die, and epiphany would go with it.
while true
loop -- although it may work to start epiphany and matchbox, it does not do what you think it does since theexec
renders it nonsensical.