1#!/usr/local/bin/python3.8
2
3import gi
4gi.require_version("Gtk", "3.0")
5from gi.repository import Gtk
6
7from SettingsWidgets import SidePage
8from xapp.GSettingsWidgets import *
9
10
11class Module:
12    name = "fonts"
13    category = "appear"
14    comment = _("Configure system fonts")
15
16    def __init__(self, content_box):
17        keywords = _("font, size, small, large")
18        sidePage = SidePage(_("Font Selection"), "cs-fonts", keywords, content_box, module=self)
19        self.sidePage = sidePage
20
21    def on_module_selected(self):
22        if not self.loaded:
23            print("Loading Fonts module")
24
25            page = SettingsPage()
26            self.sidePage.add_widget(page)
27
28            settings = page.add_section(_("Font Selection"))
29
30            size_group = Gtk.SizeGroup.new(Gtk.SizeGroupMode.HORIZONTAL)
31
32            widget = GSettingsFontButton(_("Default font"), "org.cinnamon.desktop.interface", "font-name", size_group=size_group)
33            settings.add_row(widget)
34
35            widget = GSettingsFontButton(_("Desktop font"), "org.nemo.desktop", "font", size_group=size_group)
36            settings.add_row(widget)
37
38            widget = GSettingsFontButton(_("Document font"), "org.gnome.desktop.interface", "document-font-name", size_group=size_group)
39            settings.add_row(widget)
40
41            widget = GSettingsFontButton(_("Monospace font"), "org.gnome.desktop.interface", "monospace-font-name", size_group=size_group)
42            settings.add_row(widget)
43
44            widget = GSettingsFontButton(_("Window title font"), "org.cinnamon.desktop.wm.preferences", "titlebar-font", size_group=size_group)
45            settings.add_row(widget)
46
47            settings = page.add_section(_("Font Settings"))
48
49            aa_options = [["none", _("None")], ["grayscale", _("Grayscale")], ["rgba", _("Rgba")]]
50            hinting_options = [["none", _("None")], ["slight", _("Slight")], ["medium", _("Medium")], ["full", _("Full")]]
51            rgba_options = [["rgba", _("RGBA")], ["rgb", _("RGB")], ["bgr", _("BGR")], ["vrgb", _("Vertical RGB")], ["vbgr", _("Vertical BGR")]]
52
53            size_group = Gtk.SizeGroup.new(Gtk.SizeGroupMode.HORIZONTAL)
54            widget = GSettingsSpinButton(_("Text scaling factor"), "org.cinnamon.desktop.interface", "text-scaling-factor", step=0.1, size_group=size_group)
55            settings.add_row(widget)
56
57            widget = GSettingsComboBox(_("Hinting"), "org.cinnamon.settings-daemon.plugins.xsettings", "hinting", hinting_options, size_group=size_group)
58            widget.set_tooltip_text(_("Hinting allows for producing clear, legible text on screen."))
59            settings.add_row(widget)
60
61            widget = GSettingsComboBox(_("Antialiasing"), "org.cinnamon.settings-daemon.plugins.xsettings", "antialiasing", aa_options, size_group=size_group)
62            widget.set_tooltip_text(_("Antialiasing makes on screen text smoother and easier to read"))
63            settings.add_row(widget)
64
65            widget = GSettingsComboBox(_("RGBA Order"), "org.cinnamon.settings-daemon.plugins.xsettings", "rgba-order", rgba_options, size_group=size_group)
66            widget.set_tooltip_text(_("The order of subpixel elements on an LCD screen, only used when antialiasing is set to 'rgba'"))
67            settings.add_row(widget)
68