Fonts and Themes in Cinnamon Desktop

From Archive Debian Forums
Jump to navigation Jump to search

Fonts and Themes in Cinnamon Desktop

  • Verified on Debian 13.1 (Trixie) / 6.12.43+deb13-amd64 x64_64
  • Created : 28/10/2025 21:09:21
  • Last Updated : 27/10/2025 23:42:45


A comprehensive reference for managing console fonts, GUI fonts, and theme customization in Debian with Cinnamon DE.

Table of Contents

  1. Understanding Font Types

  2. Console Fonts (TTY)

  3. GUI Fonts

  4. Cinnamon System Fonts

  5. Theme Customization with CSS

  6. Accessibility and Scaling

  7. Troubleshooting

Understanding Font Types

Linux uses different font systems depending on where text appears:

Console Fonts (TTY)

  • Format: PSF (PC Screen Font) - .psf or .psf.gz

  • Location: /usr/share/consolefonts/

  • Used by: Text-based virtual consoles (Ctrl+Alt+F2 through F6)

  • Loaded: Before graphical system starts

  • Limitations: No anti-aliasing, fixed character grid

GUI Fonts

  • Formats: TrueType (.ttf), OpenType (.otf)

  • Location: /usr/share/fonts/truetype/, /usr/share/fonts/opentype/

  • Used by: All graphical applications

  • Features: Anti-aliasing, scalability, subpixel rendering

Why Two Systems?

The Linux console operates at a lower level than the graphical interface. It needs to display text even if the GUI fails to load, so it uses simpler font formats that don't require graphics libraries.

Console Fonts (TTY)

Installing Console Fonts

Install Terminus (popular monospace console font):

sudo apt update

sudo apt install console-setup xfonts-terminus

Configuring Console Fonts

Method 1: Interactive Configuration

sudo dpkg-reconfigure console-setup

Follow the prompts:

  1. Encoding: UTF-8

  2. Character set: Guess optimal character set

  3. Font: Terminus

  4. Font size: Choose from available sizes

Available Terminus sizes: 8x14, 8x16, 10x20, 12x24, 14x28, 16x32

Recommendation: 16x32 for good readability

Method 2: Direct Configuration File Editing

Edit /etc/default/console-setup:

sudo nano /etc/default/console-setup

Add or modify these lines:

FONTFACE="Terminus"

FONTSIZE="16x32"

Other useful settings you might find:

CHARMAP="UTF-8"

CODESET="guess"

Applying Console Font Changes

The changes take effect on boot, but to apply immediately on all consoles:

sudo setupcon

Note: This command only works when run from an actual TTY console, not from a terminal emulator in the GUI. If you get "not on the console" error, that's normal - the configuration is saved and will apply on next boot or when you switch to a TTY.

Testing Console Fonts

  1. Switch to virtual console: Ctrl + Alt + F2

  2. Log in with your credentials

  3. Check the font - you should see Terminus

  4. Return to GUI: Ctrl + Alt + F1 or Ctrl + Alt + F7

Viewing Available Console Fonts

List all available console fonts:

ls /usr/share/consolefonts/

Filter for Terminus fonts:

ls /usr/share/consolefonts/ | grep -i ter

Temporarily Testing Console Fonts

To test a font before making it permanent:

setfont /usr/share/consolefonts/Ter16x32n.psf.gz

Important: setfont only works when run from a TTY console (Ctrl+Alt+F2), not from GUI terminals.

To check current console font (from TTY):

setfont -v

GUI Fonts

Installing GUI Fonts

System-wide Installation

Install Terminus for graphical applications:

sudo apt install fonts-terminus

Install other popular fonts:

  1. Programming fonts

sudo apt install fonts-firacode fonts-hack fonts-jetbrains-mono

  1. General purpose fonts

sudo apt install fonts-liberation fonts-dejavu fonts-noto

  1. More options

sudo apt install fonts-ubuntu fonts-roboto

After installing, log out and back in, or rebuild font cache:

fc-cache -fv

User-only Installation

To install fonts just for your user account:

  1. Create fonts directory:

mkdir -p ~/.local/share/fonts

  1. Copy font files (.ttf or .otf) to this directory:

cp /path/to/your/font.ttf ~/.local/share/fonts/

  1. Rebuild font cache:

fc-cache -fv

Font Locations

System-wide fonts:

/usr/share/fonts/truetype/

/usr/share/fonts/opentype/

/usr/share/fonts/X11/

User-specific fonts:

~/.local/share/fonts/

Listing Available Fonts

List all fonts available to GUI applications:

fc-list

Search for specific font:

fc-list | grep -i terminus

fc-list | grep -i dejavu

List fonts with details:

fc-list : family style file

Configuring Terminal Emulator Fonts

GNOME Terminal (default in Cinnamon)

  1. Open GNOME Terminal

  2. Menu → Preferences

  3. Select your profile

  4. Go to Text tab

  5. Uncheck "Use the system fixed-width font"

  6. Click font button and select Terminus (or other font)

  7. Choose size (12, 14, or 16 recommended)

Guake (Drop-down Terminal)

Install GUI version of Terminus first:

sudo apt install fonts-terminus

guake --quit

guake &

Configure via GUI:

  1. Open Guake (F12)

  2. Right-click → Preferences

  3. Go to Appearance tab

  4. Uncheck "Use the system fixed width font"

  5. Select Terminus and size

Configure via command line:

gsettings set org.guake.style.font use-system-font false

gsettings set org.guake.style.font font-name 'Terminus 12'

Cinnamon System Fonts

Quick Font Configuration

Open System Settings:

cinnamon-settings

Navigate to: Font Selection

You'll see these options:

  • Default font: Used for menus, buttons, dialogs (recommended: 10-12pt)

  • Desktop font: Used for desktop icon labels (recommended: 10-11pt)

  • Document font: Used in document viewers (recommended: 11pt)

  • Monospace font: Used in terminals and code editors (recommended: Terminus 12pt)

  • Window title font: Used in window title bars (recommended: 10-11pt bold)

Default font: Sans 11 or 12

Desktop font: Sans 10 or 11

Document font: Sans 11

Monospace font: Terminus 12 or 14

Window title font: Sans Bold 10 or 11

Using Command Line to Change Fonts

View current settings:

gsettings get org.cinnamon.desktop.interface font-name

gsettings get org.gnome.desktop.interface monospace-font-name

Change default font:

gsettings set org.cinnamon.desktop.interface font-name 'Sans 12'

Change monospace font:

gsettings set org.gnome.desktop.interface monospace-font-name 'Terminus 12'

Font Recommendations by Use Case

For general readability:

  • Default: DejaVu Sans 11-12

  • Monospace: Terminus 12 or DejaVu Sans Mono 11

For programming:

  • Monospace: Fira Code 11, JetBrains Mono 11, or Hack 11

For visually impaired users:

  • Default: Sans 13-14

  • Monospace: Terminus 14-16

  • Consider UI scaling (see Accessibility section)

Theme Customization with CSS

Cinnamon themes use CSS for styling. You can customize any theme to change fonts, colors, spacing, and more.

Finding Your Current Theme

Check which theme you're using:

gsettings get org.cinnamon.theme name

List available themes:

ls /usr/share/themes/

ls ~/.themes/

View your theme in System Settings: System Settings → Themes

Creating a Custom Theme Copy

Always work on a copy to avoid breaking your system:

  1. Copy system theme to your user directory

cp -r /usr/share/themes/YOUR-THEME-NAME ~/.themes/

  1. Example:

cp -r /usr/share/themes/Mint-Y ~/.themes/

cp -r /usr/share/themes/Green-Submarine ~/.themes/

Theme Structure

A typical Cinnamon theme:

~/.themes/YOUR-THEME-NAME/

├── cinnamon/

│ ├── cinnamon.css # Main styling file

│ ├── thumbnail.png

│ └── assets/ # Images, icons

├── gtk-3.0/ # GTK3 application styling

├── gtk-2.0/ # GTK2 application styling

├── metacity-1/ # Window decorations

└── index.theme # Theme metadata

The file you'll edit most: cinnamon/cinnamon.css

Editing Theme CSS

Open the CSS file:

nano ~/.themes/YOUR-THEME-NAME/cinnamon/cinnamon.css

Common CSS Selectors

/* Overall stage - affects most UI elements */

stage {

font-size: 10pt;

font-family: sans-serif;

}

/* Main menu */

.menu {

font-size: 10pt;

background-color: rgba(48, 48, 48, 0.95);

border-radius: 8px;

}

/* Menu application buttons */

.menu-application-button-label {

font-size: 9pt;

padding-left: 10px;

}

/* Panel (taskbar) */

.panel {

font-size: 9pt;

background-color: #2b2b2b;

height: 32px;

}

/* Panel applet labels */

.panel-button {

font-size: 9pt;

}

/* Notifications */

.notification {

font-size: 10pt;

}

/* Window list buttons */

.window-list-item-box {

font-size: 9pt;

}

/* Tooltips */

.tooltip {

font-size: 9pt;

}

Example: Increasing Menu Font Size

Find the menu section and modify:

.menu {

font-size: 14pt; /* Increase from default 9-10pt */

background-color: rgba(48, 48, 48, 0.95);

border-radius: 8px;

}

.menu-application-button-label {

font-size: 13pt; /* Increase menu item text */

padding-left: 10px;

}

/* Also increase category labels */

.menu-category-button-label {

font-size: 13pt;

}

Example: Changing Font Family

stage {

font-family: "DejaVu Sans", sans-serif;

font-size: 11pt;

}

/* Use monospace for specific elements */

.some-element {

font-family: "Terminus", "DejaVu Sans Mono", monospace;

}

Applying CSS Changes

After editing the CSS file:

  1. Save the file: Ctrl+O then Enter (in nano)

  2. Exit: Ctrl+X (in nano)

  3. Restart Cinnamon: Press Alt+F2, type r, press Enter

Or reload from command line:

  1. Ensure theme is set

gsettings set org.cinnamon.theme name 'YOUR-THEME-NAME'

  1. Restart Cinnamon

cinnamon --replace &

CSS Tips and Tricks

Finding the right selector: Use Cinnamon's Looking Glass debugger

  1. Press Alt+F2

  2. Type lg and press Enter

  3. Go to Picker tab

  4. Click on UI elements to see their CSS classes

Testing changes quickly: Keep the CSS file open in one workspace, test in another, and use Alt+F2 → r to reload.

Backup before editing:

cp ~/.themes/YOUR-THEME-NAME/cinnamon/cinnamon.css ~/.themes/YOUR-THEME-NAME/cinnamon/cinnamon.css.backup

Restore backup if needed:

cp ~/.themes/YOUR-THEME-NAME/cinnamon/cinnamon.css.backup ~/.themes/YOUR-THEME-NAME/cinnamon/cinnamon.css

Common CSS Properties

/* Fonts */

font-family: "Font Name", fallback;

font-size: 10pt; /* or 12px, 1.2em */

font-weight: bold; /* or normal, 600 */

font-style: italic;

/* Colors */

color: #ffffff;

background-color: rgba(48, 48, 48, 0.95);

border-color: #444444;

/* Spacing */

padding: 10px;

margin: 5px;

padding-left: 10px;

/* Borders */

border: 1px solid #444444;

border-radius: 8px;

/* Sizing */

width: 300px;

height: 40px;

min-width: 200px;

Accessibility and Scaling

UI Scaling (Recommended for Visual Impairment)

Via System Settings

System Settings → Display → UI Scale

Options typically: 100%, 125%, 150%, 200%

Start with 125% and adjust as needed.

Via Command Line

  1. Check current scaling

gsettings get org.cinnamon.desktop.interface scaling-factor

  1. Set scaling (1 = 100%, 2 = 200%)

gsettings set org.cinnamon.desktop.interface scaling-factor 2

Note: Fractional scaling (1.25, 1.5) may not be available on all systems.

Text Scaling Only

If you don't want to scale everything, increase text size:

  1. Increase text scaling factor

gsettings set org.gnome.desktop.interface text-scaling-factor 1.25

Values: 1.0 = 100%, 1.25 = 125%, 1.5 = 150%

High Contrast Themes

System Settings → Themes

Look for high-contrast themes:

  • HighContrast (if available)

  • HighContrastInverse

Or install:

sudo apt install gnome-themes-extra

Large Cursor

System Settings → Mouse and Touchpad → Cursor

Select a larger cursor size (32px or 48px).

Or via command line:

gsettings set org.cinnamon.desktop.interface cursor-size 32

Desktop Zoom (Magnifier)

System Settings → Accessibility → Zoom

Enable desktop magnification. Typical shortcut: Alt + Super + 8

Font Smoothing

Ensure font smoothing is enabled for better readability:

gsettings set org.cinnamon.settings-daemon.plugins.xsettings antialiasing 'rgba'

gsettings set org.cinnamon.settings-daemon.plugins.xsettings hinting 'slight'

Options for antialiasing: none, grayscale, rgba Options for hinting: none, slight, medium, full

Recommended: rgba with slight hinting

Troubleshooting

Console Font Issues

Problem: setupcon says "not on the console"

Solution: This is normal when running from GUI. The configuration is saved. Test by switching to TTY with Ctrl+Alt+F2.

Problem: Font changes don't persist after reboot

Solution: Verify /etc/default/console-setup has correct settings. Run sudo dpkg-reconfigure console-setup again.

Problem: setfont gives "couldn't get file descriptor" error

Solution: setfont only works from actual TTY console, not GUI terminal emulators.

GUI Font Issues

Problem: Installed font doesn't appear in applications

Solution:

  1. Rebuild font cache

fc-cache -fv

  1. Log out and back in
  1. Or restart the application

Problem: Font looks pixelated or ugly

Solution: Check antialiasing settings:

gsettings set org.cinnamon.settings-daemon.plugins.xsettings antialiasing 'rgba'

Problem: Terminus not showing in Guake

Solution: Install the TrueType version:

sudo apt install fonts-terminus

guake --quit

guake &

Theme CSS Issues

Problem: CSS changes don't take effect

Solution:

  1. Save the CSS file

  2. Restart Cinnamon: Alt+F2 → r

  3. Verify you're editing the active theme's CSS

  4. Check for CSS syntax errors

Problem: Cinnamon crashes after CSS edit

Solution: Boot to TTY (Ctrl+Alt+F2), restore backup:

cp ~/.themes/YOUR-THEME/cinnamon/cinnamon.css.backup ~/.themes/YOUR-THEME/cinnamon/cinnamon.css

Then switch back to GUI and restart Cinnamon.

Problem: Can't find the right CSS selector

Solution: Use Looking Glass:

  1. Alt+F2 → type lg → Enter

  2. Go to Picker tab

  3. Click UI element to see its classes

Scaling Issues

Problem: UI scaling makes everything blurry

Solution: Some applications don't handle scaling well. Try:

  • Integer scaling only (100%, 200%) instead of fractional

  • Increase font sizes instead of UI scaling

  • Update graphics drivers

Problem: Some applications ignore scaling

Solution: Set scaling per-application (for X11 apps):

GDK_SCALE=2 application-name

Quick Reference Commands

Console Fonts

  1. Configure interactively

sudo dpkg-reconfigure console-setup

  1. Apply changes

sudo setupcon

  1. List console fonts

ls /usr/share/consolefonts/

  1. Test font (from TTY only)

setfont /usr/share/consolefonts/Ter16x32n.psf.gz

GUI Fonts

  1. Install fonts

sudo apt install fonts-terminus fonts-firacode

  1. Rebuild font cache

fc-cache -fv

  1. List all fonts

fc-list

  1. Search for specific font

fc-list | grep -i terminus

Cinnamon Settings

  1. Open settings

cinnamon-settings

  1. Check current theme

gsettings get org.cinnamon.theme name

  1. Set theme

gsettings set org.cinnamon.theme name 'YOUR-THEME'

  1. UI scaling

gsettings set org.cinnamon.desktop.interface scaling-factor 2

  1. Restart Cinnamon

Alt+F2 → r

Theme Editing

  1. Copy theme

cp -r /usr/share/themes/THEME-NAME ~/.themes/

  1. Edit CSS

nano ~/.themes/THEME-NAME/cinnamon/cinnamon.css

  1. Backup CSS

cp ~/.themes/THEME-NAME/cinnamon/cinnamon.css{,.backup}

  1. Restore backup

cp ~/.themes/THEME-NAME/cinnamon/cinnamon.css{.backup,}

Additional Resources

Official Cinnamon Documentation: https://cinnamon-spices.linuxmint.com/

Cinnamon GitHub: https://github.com/linuxmint/cinnamon

Theme Development Guide: Available in Cinnamon documentation

Font Configuration: man fonts-conf or man fc-cache

Console Setup: man console-setup or man setupcon

Last Updated: October 2025
Compatible with: Debian 13, Linux Mint 21+, any distribution using Cinnamon DE

Credits & Comments

This work was contributed by distro-nix on Debian User Forums on 2026-03-28 19:43:50

I welcome comments, suggestions or resources : dev@divsmart.com . or visit https://www.debianfirstaid.org for more resources.

index.php?title=Category:Fonts index.php?title=Category:Themes index.php?title=Category:Desktop index.php?title=Category:Full Paper