Codebase list lightdm-gtk-greeter-settings / 8da10eb
setup.py Andrew P. 10 years ago
8 changed file(s) with 139 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
0 include lightdm-gtk-greeter-settings.desktop.in README COPYING
1 include bin/*
2 recursive-include data *.ui *.xml
3 recursive-include lightdm_gtk_greeter_settings *.py
4 recursive-include po *.po *.in
0 #!/usr/bin/python3
1
2 import sys
3 import os
4
5 import gi
6 gi.require_version('Gtk', '3.0')
7
8
9 project_dir = os.path.abspath(os.path.dirname(os.path.dirname(os.path.realpath(sys.argv[0]))))
10 if (os.path.exists(os.path.join(project_dir, 'lightdm_gtk_greeter_settings')) and project_dir not in sys.path):
11 sys.path.insert(0, project_dir)
12
13
14 import lightdm_gtk_greeter_settings
15 lightdm_gtk_greeter_settings.main()
211211 </packing>
212212 </child>
213213 <child>
214 <object class="GtkComboBoxText" id="dpi_value">
214 <object class="GtkComboBoxText" id="dpi_values">
215215 <property name="visible">True</property>
216216 <property name="can_focus">False</property>
217217 <property name="halign">start</property>
225225 <item>300</item>
226226 </items>
227227 <child internal-child="entry">
228 <object class="GtkEntry" id="comboboxtext-entry2">
228 <object class="GtkEntry" id="dpi_value">
229229 <property name="can_focus">False</property>
230230 </object>
231231 </child>
0 [Desktop Entry]
1 _Name=LightDM GTK+ Greeter settings editor
2 Categories=GNOME;GTK;Settings;Utility;
3 Keywords=Configuration;Utility;
4 Exec=lightdm-gtk-greeter-settings
5 Terminal=false
6 Type=Application
122122 self._config.set(section, key, value)
123123
124124 try:
125 with open(self._config_path + '_', 'w') as file:
125 with open(self._config_path, 'w') as file:
126126 self._config.write(file)
127127 except OSError as e:
128128 helpers.show_message(e, Gtk.MessageType.ERROR)
7777
7878 def __init__(self, widgets):
7979 self._widget = widgets['value']
80 if isinstance(self._widget, Gtk.ComboBox):
81 self._widget = self._widget.get_child()
8280
8381 def _get_value(self):
8482 return self._widget.props.text
215213 except KeyError:
216214 self._model.append(self.ModelRow(name=name, external=True,
217215 builtin=False, enabled=False))
218 for i in last_options.values():
219 self._model.append(i)
216 for item in last_options.values():
217 self._model.append(item)
220218
221219 self._toolbar.props.sensitive = value is not None
222220 self._treeview.props.sensitive = value is not None
33
44
55 __license__ = 'GPL-3'
6 __version__ = '0.1'
6 __version__ = 'dev'
77 __data_directory__ = '../data/'
88 __config_path__ = 'lightdm-gtk-greeter.conf'
99
1010
1111 try:
12 from _override_config import *
12 from . installation_config import *
1313 except ImportError:
1414 pass
1515
3030 dialog = Gtk.MessageDialog(buttons=Gtk.ButtonsType.CLOSE, **kwargs)
3131 dialog.run()
3232 dialog.destroy()
33
34
35 def get_version():
36 return __version__
0 #!/usr/bin/env python3
1
2 import os
3 import sys
4 import configparser
5
6 try:
7 import DistUtilsExtra.auto
8 except ImportError:
9 print('To build lightdm-gtk-greeter-settings you need https://launchpad.net/python-distutils-extra')
10 sys.exit(1)
11 assert DistUtilsExtra.auto.__version__ >= '2.18', 'needs DistUtilsExtra.auto >= 2.18'
12
13 def write_config(libdir, values):
14 filename = os.path.join(libdir, 'lightdm_gtk_greeter_settings/installation_config.py')
15 try:
16 f = open(filename, 'w')
17 f.write('__all__ = [%s]\n' % ', '.join('"%s"' % k for k in values))
18 for k, v in values.items():
19 f.write('%s = %s\n' % (k, v))
20 except OSError as e:
21 print ("ERROR: Can't write installation_config: %s" % e)
22 sys.exit(1)
23
24
25 def move_desktop_file(root, target_data, prefix):
26 old_desktop_path = os.path.normpath(root + target_data +
27 '/share/applications')
28 old_desktop_file = old_desktop_path + '/lightdm-gtk-greeter-settings.desktop'
29 desktop_path = os.path.normpath(root + prefix + '/share/applications')
30 desktop_file = desktop_path + '/lightdm-gtk-greeter-settings.desktop'
31
32 if not os.path.exists(old_desktop_file):
33 print("ERROR: Can't find", old_desktop_file)
34 sys.exit(1)
35 elif target_data != prefix + '/':
36 # This is an /opt install, so rename desktop file to use extras-
37 desktop_file = desktop_path + '/extras-lightdm-gtk-greeter-settings.desktop'
38 try:
39 os.makedirs(desktop_path)
40 os.rename(old_desktop_file, desktop_file)
41 os.rmdir(old_desktop_path)
42 except OSError as e:
43 print ("ERROR: Can't rename", old_desktop_file, ":", e)
44 sys.exit(1)
45
46 return desktop_file
47
48
49 def update_desktop_file(filename, target_pkgdata, target_scripts):
50
51 config = configparser.RawConfigParser(strict=False, allow_no_value=True)
52 try:
53 config.read(filename)
54 except configparser.Error as e:
55 print("Cann't parse desktop file: %s" % e)
56 sys.exit(1)
57
58 if not config.has_section('Desktop Entry'):
59 config.add_section('Desktop Entry')
60
61 old_command = config.get('Desktop Entry', 'Exec', fallback='').split(None, 1)
62 new_command = target_scripts + 'lightdm-gtk-greeter-settings'
63 if len(old_command) > 1:
64 new_command += ' ' + new_command[1]
65 config.set('Desktop Entry', 'Exec', new_command)
66
67 with open(filename, 'w') as f:
68 config.write(f)
69
70
71 class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto):
72 def run(self):
73 DistUtilsExtra.auto.install_auto.run(self)
74
75 target_data = '/' + os.path.relpath(self.install_data, self.root) + '/'
76 target_pkgdata = target_data + 'share/lightdm-gtk-greeter-settings/'
77 target_scripts = '/' + os.path.relpath(self.install_scripts, self.root) + '/'
78
79 values = {'__data_directory__': "'%s'" % (target_pkgdata),
80 '__version__': "%s" % self.distribution.get_version(),
81 '__config_path__': '"/etc/lightdm/lightdm-gtk-greeter.conf"'}
82 write_config(self.install_lib, values)
83
84 desktop_file = move_desktop_file(self.root, target_data, self.prefix)
85 update_desktop_file(desktop_file, target_pkgdata, target_scripts)
86
87
88 DistUtilsExtra.auto.setup(
89 name='lightdm-gtk-greeter-settings',
90 version='0.1',
91 license='GPL-3',
92 author='Andrew P.',
93 author_email='pan.pav.7c5@gmail.com',
94 description='Settings editor for LightDM GTK+ Greeter',
95 long_description='Settings editor for LightDM GTK+ Greeter',
96 url='https://launchpad.net/lightdm-gtk-greeter-settings',
97 cmdclass={'install': InstallAndUpdateDataDirectory}
98 )
99