Fonts and Themes in Cinnamon Desktop
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
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:
Encoding: UTF-8
Character set: Guess optimal character set
Font: Terminus
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
Switch to virtual console: Ctrl + Alt + F2
Log in with your credentials
Check the font - you should see Terminus
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:
- Programming fonts
sudo apt install fonts-firacode fonts-hack fonts-jetbrains-mono
- General purpose fonts
sudo apt install fonts-liberation fonts-dejavu fonts-noto
- 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:
Create fonts directory:
mkdir -p ~/.local/share/fonts
Copy font files (.ttf or .otf) to this directory:
cp /path/to/your/font.ttf ~/.local/share/fonts/
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)
Open GNOME Terminal
Menu → Preferences
Select your profile
Go to Text tab
Uncheck "Use the system fixed-width font"
Click font button and select Terminus (or other font)
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:
Open Guake (F12)
Right-click → Preferences
Go to Appearance tab
Uncheck "Use the system fixed width font"
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)
Recommended Configuration for Better Readability
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:
- Copy system theme to your user directory
cp -r /usr/share/themes/YOUR-THEME-NAME ~/.themes/
- 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:
Save the file: Ctrl+O then Enter (in nano)
Exit: Ctrl+X (in nano)
Restart Cinnamon: Press Alt+F2, type r, press Enter
Or reload from command line:
- Ensure theme is set
gsettings set org.cinnamon.theme name 'YOUR-THEME-NAME'
- Restart Cinnamon
cinnamon --replace &
CSS Tips and Tricks
Finding the right selector: Use Cinnamon's Looking Glass debugger
Press Alt+F2
Type lg and press Enter
Go to Picker tab
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
- Check current scaling
gsettings get org.cinnamon.desktop.interface scaling-factor
- 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:
- 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:
- Rebuild font cache
fc-cache -fv
- Log out and back in
- 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:
Save the CSS file
Restart Cinnamon: Alt+F2 → r
Verify you're editing the active theme's CSS
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:
Alt+F2 → type lg → Enter
Go to Picker tab
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
- Configure interactively
sudo dpkg-reconfigure console-setup
- Apply changes
sudo setupcon
- List console fonts
ls /usr/share/consolefonts/
- Test font (from TTY only)
setfont /usr/share/consolefonts/Ter16x32n.psf.gz
GUI Fonts
- Install fonts
sudo apt install fonts-terminus fonts-firacode
- Rebuild font cache
fc-cache -fv
- List all fonts
fc-list
- Search for specific font
fc-list | grep -i terminus
Cinnamon Settings
- Open settings
cinnamon-settings
- Check current theme
gsettings get org.cinnamon.theme name
- Set theme
gsettings set org.cinnamon.theme name 'YOUR-THEME'
- UI scaling
gsettings set org.cinnamon.desktop.interface scaling-factor 2
- Restart Cinnamon
Alt+F2 → r
Theme Editing
- Copy theme
cp -r /usr/share/themes/THEME-NAME ~/.themes/
- Edit CSS
nano ~/.themes/THEME-NAME/cinnamon/cinnamon.css
- Backup CSS
cp ~/.themes/THEME-NAME/cinnamon/cinnamon.css{,.backup}
- 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