/usr/lib/python2.7/dist-packages/gtweak/tweaks/tweak_group_shell.py is in gnome-tweak-tool 3.18.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | # This file is part of gnome-tweak-tool.
#
# Copyright (c) 2011 John Stowers
#
# gnome-tweak-tool is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# gnome-tweak-tool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with gnome-tweak-tool. If not, see <http://www.gnu.org/licenses/>.
from gi.repository import Gtk, Gio, GLib
import gtweak
from gtweak.gsettings import GSettingsSetting, GSettingsMissingError, GSettingsFakeSetting
from gtweak.gshellwrapper import GnomeShellFactory
from gtweak.tweakmodel import TWEAK_GROUP_TOPBAR, TWEAK_GROUP_WORKSPACES, TWEAK_GROUP_POWER
from gtweak.widgets import ListBoxTweakGroup, GSettingsComboEnumTweak, GSettingsSwitchTweak, GSettingsCheckTweak, GetterSetterSwitchTweak, adjust_schema_for_overrides, build_label_beside_widget, build_horizontal_sizegroup, UI_BOX_SPACING, Title, _GSettingsTweak, build_combo_box_text, GSettingsSpinButtonTweak
from gtweak.utils import XSettingsOverrides, AutostartFile
_shell = GnomeShellFactory().get_shell()
_shell_loaded = _shell is not None
class ApplicationMenuTweak(GetterSetterSwitchTweak):
def __init__(self, **options):
self._xsettings = XSettingsOverrides()
GetterSetterSwitchTweak.__init__(self, _("Show Application Menu"), **options)
def get_active(self):
return self._xsettings.get_shell_shows_app_menu()
def set_active(self, v):
self._xsettings.set_shell_shows_app_menu(v)
class StaticWorkspaceTweak(Gtk.Box, _GSettingsTweak):
STATUS = {'dynamic':True, 'static': False}
def __init__(self, **options):
name = _("Workspace Creation")
Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
_GSettingsTweak.__init__(self, name, "org.gnome.mutter", "dynamic-workspaces", **options)
default = self.STATUS.keys()[self.STATUS.values().index(self.settings[self.key_name])]
key_options = [("dynamic", _("Dynamic")), ("static", _("Static"))]
self.combo = build_combo_box_text(default, *key_options)
self.combo.connect('changed', self._on_combo_changed)
build_label_beside_widget(name, self.combo, hbox=self)
self.widget_for_size_group = self.combo
def _on_combo_changed(self, combo):
_iter = combo.get_active_iter()
if _iter:
value = combo.get_model().get_value(_iter, 0)
val = self.STATUS[value]
self.settings[self.key_name] = val
class IgnoreLidSwitchTweak(GetterSetterSwitchTweak):
def __init__(self, **options):
self._inhibitor_name = "gnome-tweak-tool-lid-inhibitor"
self._inhibitor_path = "%s/%s" % (gtweak.LIBEXEC_DIR, self._inhibitor_name)
self._dfile = AutostartFile(None,
autostart_desktop_filename = "ignore-lid-switch-tweak.desktop",
exec_cmd = self._inhibitor_path)
GetterSetterSwitchTweak.__init__(self, _("Don't suspend on lid close"), **options)
def get_active(self):
return self._sync_inhibitor()
def set_active(self, v):
self._dfile.update_start_at_login(v)
self._sync_inhibitor()
def _sync_inhibitor(self):
if (self._dfile.is_start_at_login_enabled()):
GLib.spawn_command_line_async(self._inhibitor_path)
return True
else:
bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
bus.call('org.gnome.tweak-tool.lid-inhibitor',
'/org/gnome/tweak_tool/lid_inhibitor',
'org.gtk.Actions',
'Activate',
GLib.Variant('(sava{sv})', ('quit', [], {})),
None, 0, -1, None)
return False
sg = build_horizontal_sizegroup()
sw = StaticWorkspaceTweak(size_group=sg, loaded=_shell_loaded)
depends_how = lambda x,kn: not(x.get_boolean(kn))
TWEAK_GROUPS = [
ListBoxTweakGroup(TWEAK_GROUP_TOPBAR,
ApplicationMenuTweak(),
Title(_("Clock"),""),
GSettingsCheckTweak(_("Show date"),"org.gnome.desktop.interface", "clock-show-date", schema_filename="org.gnome.desktop.interface.gschema.xml"),
GSettingsCheckTweak(_("Show seconds"), "org.gnome.desktop.interface", "clock-show-seconds", schema_filename="org.gnome.desktop.interface.gschema.xml"),
Title(_("Calendar"),""),
GSettingsCheckTweak(_("Show week numbers"),"org.gnome.shell.calendar", "show-weekdate", schema_filename="org.gnome.shell.gschema.xml", loaded=_shell_loaded),
),
ListBoxTweakGroup(TWEAK_GROUP_POWER,
GSettingsComboEnumTweak(_("Power Button Action"), "org.gnome.settings-daemon.plugins.power", "button-power", size_group=sg),
Title(_("When Laptop Lid is Closed"), "", uid="title-theme"),
GSettingsComboEnumTweak(_("On Battery Power"),"org.gnome.settings-daemon.plugins.power", "lid-close-battery-action", size_group=sg),
GSettingsComboEnumTweak(_("When plugged in"),"org.gnome.settings-daemon.plugins.power", "lid-close-ac-action", size_group=sg),
GSettingsSwitchTweak(_("Suspend even if an external monitor is plugged in"),"org.gnome.settings-daemon.plugins.power", "lid-close-suspend-with-external-monitor", size_group=sg),
IgnoreLidSwitchTweak(),
),
ListBoxTweakGroup(TWEAK_GROUP_WORKSPACES,
sw,
GSettingsSpinButtonTweak(_("Number of Workspaces"), "org.gnome.desktop.wm.preferences", "num-workspaces", depends_on = sw, depends_how=depends_how, size_group=sg),
GSettingsSwitchTweak(_("Workspaces only on primary display"),"org.gnome.mutter", "workspaces-only-on-primary", schema_filename="org.gnome.shell.gschema.xml", loaded=_shell_loaded),
)
]
|