Classic X11 applications
For classic X11 applications (such as xclipboard, xman, xterm, etc.), yes, there is a way, through X resources. X resources settings are conventionally stored in a file called
~/.Xresources which is loaded by the command
xrdb -merge ~/.Xresources during the startup of your session (not all environments load it by default though).
You can find examples of X resource settings in the
app-defaults directory (the exact location can vary:
/etc/X11/app-defaults, …). These are the system-wide settings for each application. You can also run
appres to list the user-defined settings loaded in the server plus the system-wide settings in
appres Xman. Note that
app-defaults files and
appres output omits the class name, but in your own configuration file, you should start every setting with a class or instance name, otherwise the setting will apply to every application.
A resource setting consists of a qualified widget component name and a value, e.g.
XClipboard.form.text.textSink.font: fixed. See .Xresources settings in effect and the manual for more information on resource identifiers. Note that X resources are case sensitive. Conventionally, class names start with an uppercase letter, and instance names start with a lowercase letter. You can use the wildcard
* to stand for any number of components, e.g.
XClipboard*font would set all fonts in XClipboard.
Note that classic X11 applications use server-side text rendering. They do not have the same fonts available as applications that use client-side rendering with fonts managed by fontconfig. You can use
xfontsel to see what fonts are available server-side. X11 fonts use a 14-part naming scheme encoding the font, size, boldness, etc.; see the manual for detail.
Most classic X11 applications support resource settings on the command line, with arguments like
-xrm '*text*font: fixed', as well as some shortcuts such as
-font fixed to set the main font. Xterm supports those, and in addition supports client-side rendering, which can be set through resources or through the command line argument
-fa (see the manual for details).
The GTK font is normally set by the theme and can be overridden in
gtk-font-name = "Roboto 12"
You can run an application with an alternate gtkrc file or alternate theme through environment variables. With the older Gtk2:
The newer Gtk3 is expectedly less configurable, but you can use an alternate theme:
You can also look for application-specific settings with gconf-editor (GTK 2) or dconf-editor (GTK 3) or gsettings. I don't think it's common for GTK applications to have specific font settings though.