~ubuntu-branches/ubuntu/saucy/unity-tweak-tool/saucy

« back to all changes in this revision

Viewing changes to UnityTweakTool/section/spaghetti/compiz.py

  • Committer: Package Import Robot
  • Author(s): Barneedhar Vigneshwar, J Phani Mahesh, Barneedhar Vigneshwar
  • Date: 2013-09-16 19:34:38 UTC
  • Revision ID: package-import@ubuntu.com-20130916193438-dw14bzxkohvxub2y
Tags: 0.0.5
[ J Phani Mahesh ]
* New upstream release (LP: #1226059)
  - New application icon 
  - Show error dialog when schemas are missing instead of crashing
  - Trigger new build of pot files
* UnityTweakTool/section/unity.py
  - Fix Show recently used and more suggestions in dash search (LP: #1166294)
  - Fix Launcher reveal sensitivity scale update issues (LP: #1168863)
* UnityTweakTool/elements/colorchooser.py
  - Fix TypeError in get_rgba() (LP: #1165627)
  - Fix segmentation fault on selecting custom launcher (LP: #1190398)
* UnityTweakTool/elements/option.py
  - Fix "Restore defaults" button (LP: #1186634)
* UnityTweakTool/__init__.py  
  - Fix unity-tweak-tool crashed with dbus.exceptions.DBusException in
  call_blocking() (LP: #1168738)
  - Fix FileNotFoundError (LP: #1225463)
  - Fix dbus.exceptions.DBusException (LP: #1170571)
* data/unity.ui
  - Remove Panel transparency switch (LP: #1168836)
  - Remove Launcher transparency switch (LP: #1168834)

[ Barneedhar Vigneshwar ]
* UnityTweakTool/section/unity.py
  - Fix 'Can't set background blur to static' (LP: #1167343)
  - Fix non-working Launcher only on primary desktop (LP: #1173977)
* UnityTweakTool/section/sphagetti/compiz.py
  - Fix TypeError in color_to_hash() (LP: #1166884)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python3
 
2
# -*- coding: utf-8 -*-
 
3
#
 
4
# Team:
 
5
#   J Phani Mahesh <phanimahesh@gmail.com>
 
6
#   Barneedhar (jokerdino) <barneedhar@ubuntu.com>
 
7
#   Amith KK <amithkumaran@gmail.com>
 
8
#   Georgi Karavasilev <motorslav@gmail.com>
 
9
#   Sam Tran <samvtran@gmail.com>
 
10
#   Sam Hewitt <hewittsamuel@gmail.com>
 
11
#   Angel Araya <al.arayaq@gmail.com>
 
12
#
 
13
# Description:
 
14
#   A One-stop configuration tool for Unity.
 
15
#
 
16
# Legal Stuff:
 
17
#
 
18
# This file is a part of Unity Tweak Tool
 
19
#
 
20
# Unity Tweak Tool is free software; you can redistribute it and/or modify it under
 
21
# the terms of the GNU General Public License as published by the Free Software
 
22
# Foundation; version 3.
 
23
#
 
24
# Unity Tweak Tool is distributed in the hope that it will be useful, but WITHOUT
 
25
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 
26
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 
27
# details.
 
28
#
 
29
# You should have received a copy of the GNU General Public License along with
 
30
# this program; if not, see <https://www.gnu.org/licenses/gpl-3.0.txt>
 
31
 
 
32
import os, os.path
 
33
import cairo
 
34
 
 
35
from gi.repository import Gtk, Gdk
 
36
from math import pi, sqrt
 
37
 
 
38
from UnityTweakTool.config.ui import ui
 
39
from . import unitytweakconfig
 
40
from . import gsettings
 
41
 
 
42
class Compizsettings ():
 
43
    def __init__(self, builder):
 
44
        self.ui = ui(builder)
 
45
        self.page = self.ui['nb_compizsettings']
 
46
 
 
47
        self.ui['scale_auto_raise_delay'].add_mark(500, Gtk.PositionType.BOTTOM, None)
 
48
 
 
49
 
 
50
        # Initialise Cairo bits
 
51
        self.window_snapping_drawable = self.ui['draw_window_snapping']
 
52
        self._base_window_snapping_surface = cairo.ImageSurface.create_from_png(os.path.join(unitytweakconfig.get_data_path(), 'monitor-window-snapping.png'))
 
53
 
 
54
        self.hotcorners_drawable = self.ui['draw_hotcorners']
 
55
        self._base_hotcorners_surface = cairo.ImageSurface.create_from_png(os.path.join(unitytweakconfig.get_data_path(), 'monitor-hotcorners.png'))
 
56
 
 
57
        self.window_snapping_cboxes = {
 
58
            'cbox_window_snapping_top': [0, 'top-edge-action'],
 
59
            'cbox_window_snapping_topleft': [0, 'top-left-corner-action'],
 
60
            'cbox_window_snapping_left': [0, 'left-edge-action'],
 
61
            'cbox_window_snapping_bottomleft': [0, 'bottom-left-corner-action'],
 
62
            'cbox_window_snapping_bottom': [0, 'bottom-edge-action'],
 
63
            'cbox_window_snapping_topright': [0, 'top-right-corner-action'],
 
64
            'cbox_window_snapping_right': [0, 'right-edge-action'],
 
65
            'cbox_window_snapping_bottomright': [0, 'bottom-right-corner-action']
 
66
        }
 
67
 
 
68
        self.hotcorners_cboxes = {
 
69
            'cbox_hotcorners_top': [0, 'Top'],
 
70
            'cbox_hotcorners_topleft': [0, 'TopLeft'],
 
71
            'cbox_hotcorners_left': [0, 'Left'],
 
72
            'cbox_hotcorners_bottomleft': [0, 'BottomLeft'],
 
73
            'cbox_hotcorners_bottom': [0, 'Bottom'],
 
74
            'cbox_hotcorners_topright': [0, 'TopRight'],
 
75
            'cbox_hotcorners_right': [0, 'Right'],
 
76
            'cbox_hotcorners_bottomright': [0, 'BottomRight']
 
77
        }
 
78
 
 
79
    def on_draw_hotcorners_draw (self, window, cr):
 
80
        self.draw_monitor(window, cr, self._base_hotcorners_surface, self.hotcorners_cboxes, 'hotcorners')
 
81
 
 
82
    def on_draw_window_snapping_draw (self, window, cr):
 
83
        self.draw_monitor(window, cr, self._base_window_snapping_surface, self.window_snapping_cboxes, 'window_snapping')
 
84
 
 
85
    def draw_monitor (self, window, cr, base_surface, corner_store, cbox_title):
 
86
        x1 = 16
 
87
        y1 = 16
 
88
        x2 = 284
 
89
        y2 = 200
 
90
        x3 = 116 # Top/bottom side left-corner
 
91
        y3 = 73  # Left/right side top-corner
 
92
 
 
93
        corner_width = 36
 
94
        side_height = 16
 
95
        left_right_width = 70
 
96
        top_bottom_width = 68
 
97
 
 
98
        cr.set_source_surface(base_surface)
 
99
        cr.paint()
 
100
        cr.set_source_rgba(221/255, 72/255, 20/255)
 
101
 
 
102
        if corner_store['cbox_' + cbox_title + '_top'][0] != 0:
 
103
            cr.new_path()
 
104
            cr.move_to(x3, y1)
 
105
            cr.line_to (x3 + top_bottom_width, y1)
 
106
            values = self.arc_values(top_bottom_width, side_height)
 
107
            cr.arc(x3 + (top_bottom_width / 2), y1 - values['offset'], values['radius'], pi/4 , (3 * pi)/4)
 
108
            cr.fill_preserve()
 
109
 
 
110
        if corner_store['cbox_' + cbox_title + '_topleft'][0] != 0:
 
111
            cr.new_path()
 
112
            cr.move_to(x1, y1)
 
113
            cr.line_to(x1 + corner_width, y1)
 
114
            cr.arc(x1, y1, corner_width, 0, pi/2)
 
115
            cr.line_to(x1, y1)
 
116
            cr.fill_preserve()
 
117
 
 
118
        if corner_store['cbox_' + cbox_title + '_left'][0] != 0:
 
119
            cr.new_path()
 
120
            cr.move_to(x1, y3 + left_right_width)
 
121
            cr.line_to(x1, y3)
 
122
            values = self.arc_values(left_right_width, side_height)
 
123
            cr.arc(x1 - values['offset'], y3 + (left_right_width / 2), values['radius'], -pi/4, pi/4)
 
124
            cr.fill_preserve()
 
125
 
 
126
        if corner_store['cbox_' + cbox_title + '_bottomleft'][0] != 0:
 
127
            cr.new_path()
 
128
            cr.move_to(x1, y2 - corner_width)
 
129
            cr.line_to(x1, y2)
 
130
            cr.line_to(x1 + corner_width, y2)
 
131
            cr.arc(x1, y2, corner_width, - pi / 2, 0)
 
132
            cr.fill_preserve()
 
133
 
 
134
        if corner_store['cbox_' + cbox_title + '_bottom'][0] != 0:
 
135
            cr.new_path()
 
136
            cr.move_to(x3 + top_bottom_width, y2)
 
137
            cr.line_to(x3, y2)
 
138
            values = self.arc_values(top_bottom_width, side_height)
 
139
            cr.arc(x3 + (top_bottom_width / 2), y2 + values['offset'], values['radius'], (5 * pi) / 4, (7 * pi) / 4)
 
140
            cr.fill_preserve()
 
141
 
 
142
        if corner_store['cbox_' + cbox_title + '_topright'][0] != 0:
 
143
            cr.new_path()
 
144
            cr.move_to(x2, y1)
 
145
            cr.line_to(x2, y1 + corner_width)
 
146
            cr.arc(x2, y1, corner_width, pi / 2, pi)
 
147
            cr.line_to(x2, y1)
 
148
            cr.fill_preserve()
 
149
 
 
150
        if corner_store['cbox_' + cbox_title + '_right'][0] != 0:
 
151
            # TODO : DRAW
 
152
            cr.new_path()
 
153
            cr.move_to(x2, y3)
 
154
            cr.line_to(x2, y3 + left_right_width)
 
155
            values = self.arc_values(left_right_width, side_height)
 
156
            cr.arc(x2 + values['offset'], y3 + (left_right_width / 2), values['radius'], (3 * pi) / 4, (5 * pi) / 4)
 
157
            cr.fill_preserve()
 
158
 
 
159
        if corner_store['cbox_' + cbox_title + '_bottomright'][0] != 0:
 
160
            cr.new_path()
 
161
            cr.move_to(x2, y2)
 
162
            cr.line_to(x2 - corner_width, y2)
 
163
            cr.arc(x2, y2, corner_width, pi, (3 * pi ) / 2)
 
164
            cr.line_to(x2, y2)
 
165
            cr.fill_preserve()
 
166
 
 
167
    def arc_values (self, length, height):
 
168
        # radius = (h^2 + 1/4 length^2)/2h
 
169
        radius = ((height**2) + (.25 * (length**2))) / (2 * height)
 
170
        return {
 
171
            'radius': radius,
 
172
            'offset': sqrt((radius**2) - ((length / 2)**2))
 
173
        }
 
174
 
 
175
    def on_cbox_window_snapping_changed (self, combobox, cbox_id):
 
176
        self.window_snapping_cboxes[cbox_id][0] = combobox.get_active()
 
177
        gsettings.grid.set_int(self.window_snapping_cboxes[cbox_id][1], combobox.get_active())
 
178
        self.window_snapping_drawable.queue_draw()
 
179
 
 
180
    def on_cbox_hotcorners_changed (self, combobox, cbox_id):
 
181
        self.hotcorners_cboxes[cbox_id][0] = combobox.get_active()
 
182
        clear_corners = []
 
183
        if combobox.get_active() == 0:
 
184
            clear_corners = ['show_desktop', 'expo', 'window_spread']
 
185
 
 
186
        if combobox.get_active() == 1:
 
187
            if self.hotcorners_cboxes[cbox_id][1] not in self.hotcorner_values['show_desktop']:
 
188
                self.hotcorner_values['show_desktop'].append(self.hotcorners_cboxes[cbox_id][1])
 
189
                gsettings.core.set_string('show-desktop-edge', '|'.join(self.hotcorner_values['show_desktop']))
 
190
        else:
 
191
            clear_corners.append('show_desktop')
 
192
 
 
193
        if combobox.get_active() == 2:
 
194
            if self.hotcorners_cboxes[cbox_id][1] not in self.hotcorner_values['expo']:
 
195
                self.hotcorner_values['expo'].append(self.hotcorners_cboxes[cbox_id][1])
 
196
                gsettings.expo.set_string('expo-edge', '|'.join(self.hotcorner_values['expo']))
 
197
        else:
 
198
            clear_corners.append('expo')
 
199
 
 
200
        if combobox.get_active() == 3:
 
201
            if self.hotcorners_cboxes[cbox_id][1] not in self.hotcorner_values['window_spread']:
 
202
                self.hotcorner_values['window_spread'].append(self.hotcorners_cboxes[cbox_id][1])
 
203
                gsettings.scale.set_string('initiate-edge', '|'.join(self.hotcorner_values['window_spread']))
 
204
        else:
 
205
            clear_corners.append('window_spread')
 
206
 
 
207
        if combobox.get_active() == 4:
 
208
            if self.hotcorners_cboxes[cbox_id][1] not in self.hotcorner_values['all_window_spread']:
 
209
                self.hotcorner_values['all_window_spread'].append(self.hotcorners_cboxes[cbox_id][1])
 
210
                gsettings.scale.set_string('initiate-all-edge', '|'.join(self.hotcorner_values['all_window_spread']))
 
211
        else:
 
212
            clear_corners.append('all_window_spread')
 
213
 
 
214
        # Removing potentially conflicting bindings
 
215
        if 'show_desktop' in clear_corners and self.hotcorners_cboxes[cbox_id][1] in self.hotcorner_values['show_desktop']:
 
216
            self.hotcorner_values['show_desktop'].remove(self.hotcorners_cboxes[cbox_id][1])
 
217
            gsettings.core.set_string('show-desktop-edge', '|'.join(self.hotcorner_values['show_desktop']))
 
218
        if 'expo' in clear_corners and self.hotcorners_cboxes[cbox_id][1] in self.hotcorner_values['expo']:
 
219
            self.hotcorner_values['expo'].remove(self.hotcorners_cboxes[cbox_id][1])
 
220
            gsettings.expo.set_string('expo-edge', '|'.join(self.hotcorner_values['expo']))
 
221
        if 'window_spread' in clear_corners and self.hotcorners_cboxes[cbox_id][1] in self.hotcorner_values['window_spread']:
 
222
            self.hotcorner_values['window_spread'].remove(self.hotcorners_cboxes[cbox_id][1])
 
223
            gsettings.scale.set_string('initiate-edge', '|'.join(self.hotcorner_values['window_spread']))
 
224
        if 'all_window_spread' in clear_corners and self.hotcorners_cboxes[cbox_id][1] in self.hotcorner_values['all_window_spread']:
 
225
            self.hotcorner_values['all_window_spread'].remove(self.hotcorners_cboxes[cbox_id][1])
 
226
            gsettings.scale.set_string('initiate-all-edge', '|'.join(self.hotcorner_values['all_window_spread']))
 
227
 
 
228
        self.hotcorners_drawable.queue_draw()
 
229
 
 
230
 
 
231
#=====================================================================#
 
232
#                                Helpers                              #
 
233
#=====================================================================#
 
234
 
 
235
    def refresh(self):
 
236
 
 
237
        plugins = gsettings.core.get_strv('active-plugins')
 
238
        if 'ezoom' in plugins:
 
239
            self.ui['sw_compiz_zoom'].set_active(True)
 
240
        else:
 
241
            self.ui['sw_compiz_zoom'].set_active(False)
 
242
        del plugins
 
243
 
 
244
        model = self.ui['list_compiz_general_zoom_accelerators']
 
245
 
 
246
        zoom_in_key = gsettings.zoom.get_string('zoom-in-key')
 
247
        iter_zoom_in_key = model.get_iter_first()
 
248
        model.set_value(iter_zoom_in_key, 1, zoom_in_key)
 
249
 
 
250
        zoom_out_key = gsettings.zoom.get_string('zoom-out-key')
 
251
        iter_zoom_out_key = model.iter_next(iter_zoom_in_key)
 
252
        model.set_value(iter_zoom_out_key, 1, zoom_out_key)
 
253
 
 
254
        del model, zoom_in_key, iter_zoom_in_key, zoom_out_key, iter_zoom_out_key
 
255
 
 
256
        self.ui['cbox_opengl'].set_active(gsettings.opengl.get_int('texture-filter'))
 
257
 
 
258
        model = self.ui['list_compiz_general_keys_accelerators']
 
259
 
 
260
        close_window_key = gsettings.core.get_string('close-window-key')
 
261
        iter_close_window_key = model.get_iter_first()
 
262
        model.set_value(iter_close_window_key, 1, close_window_key)
 
263
 
 
264
        initiate_key = gsettings.move.get_string('initiate-key')
 
265
        iter_initiate_key = model.iter_next(iter_close_window_key)
 
266
        model.set_value(iter_initiate_key, 1, initiate_key)
 
267
 
 
268
        show_desktop_key = gsettings.core.get_string('show-desktop-key')
 
269
        iter_show_desktop_key = model.iter_next(iter_initiate_key)
 
270
        model.set_value(iter_show_desktop_key, 1, show_desktop_key)
 
271
 
 
272
        del model, close_window_key, iter_close_window_key, initiate_key, iter_initiate_key, show_desktop_key, iter_show_desktop_key
 
273
 
 
274
 
 
275
        # Animations
 
276
        unminimize_value = gsettings.animation.get_strv('unminimize-effects')
 
277
        dependants = ['cbox_minimize_animation',
 
278
                    'l_minimize_animation',
 
279
                    'cbox_unminimize_animation',
 
280
                    'l_unminimize_animation']
 
281
 
 
282
        if unminimize_value == ['animation:None']:
 
283
            self.ui['cbox_unminimize_animation'].set_active(0)
 
284
            self.ui['switch_window_animations'].set_active(False)
 
285
            self.ui.unsensitize(dependants)
 
286
        elif unminimize_value == ['animation:Random']:
 
287
            self.ui['cbox_unminimize_animation'].set_active(1)
 
288
            self.ui['switch_window_animations'].set_active(True)
 
289
            self.ui.sensitize(dependants)
 
290
        elif unminimize_value == ['animation:Curved Fold']:
 
291
            self.ui['cbox_unminimize_animation'].set_active(2)
 
292
            self.ui['switch_window_animations'].set_active(True)
 
293
            self.ui.sensitize(dependants)
 
294
        elif unminimize_value == ['animation:Fade']:
 
295
            self.ui['cbox_unminimize_animation'].set_active(3)
 
296
            self.ui['switch_window_animations'].set_active(True)
 
297
            self.ui.sensitize(dependants)
 
298
        elif unminimize_value == ['animation:Glide 1']:
 
299
            self.ui['cbox_unminimize_animation'].set_active(4)
 
300
            self.ui['switch_window_animations'].set_active(True)
 
301
            self.ui.sensitize(dependants)
 
302
        elif unminimize_value == ['animation:Glide 2']:
 
303
            self.ui['cbox_unminimize_animation'].set_active(5)
 
304
            self.ui['switch_window_animations'].set_active(True)
 
305
            self.ui.sensitize(dependants)
 
306
        elif unminimize_value == ['animation:Horizontal Folds']:
 
307
            self.ui['cbox_unminimize_animation'].set_active(6)
 
308
            self.ui['switch_window_animations'].set_active(True)
 
309
            self.ui.sensitize(dependants)
 
310
        elif unminimize_value == ['animation:Magic Lamp']:
 
311
            self.ui['cbox_unminimize_animation'].set_active(7)
 
312
            self.ui['switch_window_animations'].set_active(True)
 
313
            self.ui.sensitize(dependants)
 
314
        elif unminimize_value == ['animation:Magic Lamp Wavy']:
 
315
            self.ui['cbox_unminimize_animation'].set_active(8)
 
316
            self.ui['switch_window_animations'].set_active(True)
 
317
            self.ui.sensitize(dependants)
 
318
        elif unminimize_value == ['animation:Sidekick']:
 
319
            self.ui['cbox_unminimize_animation'].set_active(9)
 
320
            self.ui['switch_window_animations'].set_active(True)
 
321
            self.ui.sensitize(dependants)
 
322
        elif unminimize_value == ['animation:Zoom']:
 
323
            self.ui['cbox_unminimize_animation'].set_active(10)
 
324
            self.ui['switch_window_animations'].set_active(True)
 
325
            self.ui.sensitize(dependants)
 
326
        else:
 
327
            self.ui['cbox_unminimize_animation'].set_active(0)
 
328
            self.ui['switch_window_animations'].set_active(False)
 
329
            self.ui.unsensitize(dependants)
 
330
        del unminimize_value
 
331
 
 
332
        minimize_value = gsettings.animation.get_strv('minimize-effects')
 
333
 
 
334
        if minimize_value == ['animation:None']:
 
335
            self.ui['cbox_minimize_animation'].set_active(0)
 
336
            self.ui['switch_window_animations'].set_active(False)
 
337
            self.ui.unsensitize(dependants)
 
338
        elif minimize_value == ['animation:Random']:
 
339
            self.ui['cbox_minimize_animation'].set_active(1)
 
340
            self.ui['switch_window_animations'].set_active(True)
 
341
            self.ui.sensitize(dependants)
 
342
        elif minimize_value == ['animation:Curved Fold']:
 
343
            self.ui['cbox_minimize_animation'].set_active(2)
 
344
            self.ui['switch_window_animations'].set_active(True)
 
345
            self.ui.sensitize(dependants)
 
346
        elif minimize_value == ['animation:Fade']:
 
347
            self.ui['cbox_minimize_animation'].set_active(3)
 
348
            self.ui['switch_window_animations'].set_active(True)
 
349
            self.ui.sensitize(dependants)
 
350
        elif minimize_value == ['animation:Glide 1']:
 
351
            self.ui['cbox_minimize_animation'].set_active(4)
 
352
            self.ui['switch_window_animations'].set_active(True)
 
353
            self.ui.sensitize(dependants)
 
354
        elif minimize_value == ['animation:Glide 2']:
 
355
            self.ui['cbox_minimize_animation'].set_active(5)
 
356
            self.ui['switch_window_animations'].set_active(True)
 
357
            self.ui.sensitize(dependants)
 
358
        elif minimize_value == ['animation:Horizontal Folds']:
 
359
            self.ui['cbox_minimize_animation'].set_active(6)
 
360
            self.ui['switch_window_animations'].set_active(True)
 
361
            self.ui.sensitize(dependants)
 
362
        elif minimize_value == ['animation:Magic Lamp']:
 
363
            self.ui['cbox_minimize_animation'].set_active(7)
 
364
            self.ui['switch_window_animations'].set_active(True)
 
365
            self.ui.sensitize(dependants)
 
366
        elif minimize_value == ['animation:Magic Lamp Wavy']:
 
367
            self.ui['cbox_minimize_animation'].set_active(8)
 
368
            self.ui['switch_window_animations'].set_active(True)
 
369
            self.ui.sensitize(dependants)
 
370
        elif minimize_value == ['animation:Sidekick']:
 
371
            self.ui['cbox_minimize_animation'].set_active(9)
 
372
            self.ui['switch_window_animations'].set_active(True)
 
373
        elif minimize_value == ['animation:Zoom']:
 
374
            self.ui['cbox_minimize_animation'].set_active(10)
 
375
            self.ui['switch_window_animations'].set_active(True)
 
376
            self.ui.sensitize(dependants)
 
377
        else:
 
378
            self.ui['cbox_minimize_animation'].set_active(0)
 
379
            self.ui['switch_window_animations'].set_active(False)
 
380
            self.ui.unsensitize(dependants)
 
381
        del minimize_value
 
382
 
 
383
        # ===== Workspace settings ===== #
 
384
 
 
385
        hsize = gsettings.core.get_int('hsize')
 
386
        vsize = gsettings.core.get_int('vsize')
 
387
        dependants = ['spin_horizontal_desktop',
 
388
                    'spin_vertical_desktop']
 
389
 
 
390
        if hsize > 1 or vsize > 1:
 
391
            self.ui['sw_workspace_switcher'].set_active(True)
 
392
            self.ui.sensitize(dependants)
 
393
        else:
 
394
            self.ui['sw_workspace_switcher'].set_active(False)
 
395
            self.ui.unsensitize(dependants)
 
396
 
 
397
        self.ui['spin_horizontal_desktop'].set_value(hsize)
 
398
        self.ui['spin_vertical_desktop'].set_value(vsize)
 
399
        del hsize, vsize
 
400
 
 
401
        color = gsettings.expo.get_string('selected-color')
 
402
        valid, gdkcolor = Gdk.Color.parse(color[:-2])
 
403
        if valid:
 
404
            self.ui['color_desk_outline'].set_color(gdkcolor)
 
405
        del color, valid, gdkcolor
 
406
 
 
407
        model = self.ui['list_compiz_workspace_accelerators']
 
408
 
 
409
        expo_key = gsettings.expo.get_string('expo-key')
 
410
        iter_expo_key = model.get_iter_first()
 
411
        model.set_value(iter_expo_key, 1, expo_key)
 
412
 
 
413
        del model, expo_key, iter_expo_key
 
414
 
 
415
        # ===== Windows Spread settings ===== #
 
416
 
 
417
        plugins = gsettings.core.get_strv('active-plugins')
 
418
        if 'scale' in plugins:
 
419
            self.ui['sw_windows_spread'].set_active(True)
 
420
        else:
 
421
            self.ui['sw_windows_spread'].set_active(False)
 
422
        del plugins
 
423
 
 
424
        self.ui['spin_compiz_spacing'].set_value(gsettings.scale.get_int('spacing'))
 
425
 
 
426
        if gsettings.scale.get_int('overlay-icon') >=  1:
 
427
            self.ui['check_overlay_emblem'].set_active(True)
 
428
        else:
 
429
            self.ui['check_overlay_emblem'].set_active(False)
 
430
 
 
431
        self.ui['check_click_desktop'].set_active(gsettings.scale.get_boolean('show-desktop'))
 
432
 
 
433
        model = self.ui['list_compiz_windows_spread_accelerators']
 
434
 
 
435
        initiate_key = gsettings.scale.get_string('initiate-key')
 
436
        iter_initiate_key = model.get_iter_first()
 
437
        model.set_value(iter_initiate_key, 1, initiate_key)
 
438
 
 
439
        initiate_all_key = gsettings.scale.get_string('initiate-all-key')
 
440
        iter_initiate_all_key = model.iter_next(iter_initiate_key)
 
441
        model.set_value(iter_initiate_all_key, 1, initiate_all_key)
 
442
 
 
443
        del model, initiate_key, iter_initiate_key, initiate_all_key, iter_initiate_all_key
 
444
 
 
445
        # ===== Window Snapping settings ===== #
 
446
 
 
447
        plugins = gsettings.core.get_strv('active-plugins')
 
448
        if 'grid' in plugins:
 
449
            self.ui['sw_window_snapping'].set_active(True)
 
450
        else:
 
451
            self.ui['sw_window_snapping'].set_active(False)
 
452
        del plugins
 
453
 
 
454
        color = gsettings.grid.get_string('fill-color')
 
455
        valid, gdkcolor = Gdk.Color.parse(color[:-2])
 
456
        if valid:
 
457
            self.ui['color_fill_color'].set_color(gdkcolor)
 
458
        del color, valid, gdkcolor
 
459
 
 
460
        color = gsettings.grid.get_string('outline-color')
 
461
        valid, gdkcolor = Gdk.Color.parse(color[:-2])
 
462
        if valid:
 
463
            self.ui['color_outline_color'].set_color(gdkcolor)
 
464
        del color, valid, gdkcolor
 
465
 
 
466
        for box in self.window_snapping_cboxes:
 
467
            self.window_snapping_cboxes[box][0] = gsettings.grid.get_int(self.window_snapping_cboxes[box][1])
 
468
            self.ui[box].set_active(self.window_snapping_cboxes[box][0])
 
469
            self.ui[box].connect("changed", self.on_cbox_window_snapping_changed, box)
 
470
 
 
471
        # ===== Hotcorners settings ===== #
 
472
        self.hotcorner_values = {
 
473
            'show_desktop': gsettings.core.get_string('show-desktop-edge').split('|'),
 
474
            'expo': gsettings.expo.get_string('expo-edge').split('|'),
 
475
            'window_spread': gsettings.scale.get_string('initiate-edge').split('|'),
 
476
            'all_window_spread': gsettings.scale.get_string('initiate-all-edge').split('|')
 
477
        }
 
478
        for box in self.hotcorners_cboxes:
 
479
            if self.hotcorners_cboxes[box][1] in self.hotcorner_values['show_desktop']:
 
480
                self.hotcorners_cboxes[box][0] = 1
 
481
            elif self.hotcorners_cboxes[box][1] in self.hotcorner_values['expo']:
 
482
                self.hotcorners_cboxes[box][0] = 2
 
483
            elif self.hotcorners_cboxes[box][1] in self.hotcorner_values['window_spread']:
 
484
                self.hotcorners_cboxes[box][0] = 3
 
485
            elif self.hotcorners_cboxes[box][1] in self.hotcorner_values['all_window_spread']:
 
486
                self.hotcorners_cboxes[box][0] = 4
 
487
            else:
 
488
                self.hotcorners_cboxes[box][0] = 0
 
489
            self.ui[box].set_active(self.hotcorners_cboxes[box][0])
 
490
            self.ui[box].connect("changed", self.on_cbox_hotcorners_changed, box)
 
491
 
 
492
        # ===== Additional settings ===== #
 
493
 
 
494
        # Auto raise
 
495
        self.ui['switch_auto_raise'].set_active(gsettings.wm.get_boolean('auto-raise'))
 
496
        self.ui['scale_auto_raise_delay'].set_value(gsettings.wm.get_int('auto-raise-delay'))
 
497
 
 
498
        # Titlebar actions
 
499
        self.ui['cbox_double_click'].set_active(gsettings.wm.get_enum('action-double-click-titlebar'))
 
500
        self.ui['cbox_middle_click'].set_active(gsettings.wm.get_enum('action-middle-click-titlebar'))
 
501
        self.ui['cbox_right_click'].set_active(gsettings.wm.get_enum('action-right-click-titlebar'))
 
502
 
 
503
        # Focus mode
 
504
        if gsettings.wm.get_enum('focus-mode') == 0:
 
505
            self.ui['cbox_focus_mode'].set_active(0)
 
506
        elif gsettings.wm.get_enum('focus-mode') == 1:
 
507
            self.ui['cbox_focus_mode'].set_active(1)
 
508
        elif gsettings.wm.get_enum('focus-mode') == 2:
 
509
            self.ui['cbox_focus_mode'].set_active(2)
 
510
        else:
 
511
            pass
 
512
 
 
513
        # Resize colours
 
514
        color = gsettings.resize.get_string('border-color')
 
515
        valid, gdkcolor = Gdk.Color.parse(color[:-2])
 
516
        if valid:
 
517
            self.ui['colorbutton_resize_outline'].set_color(gdkcolor)
 
518
        del color, valid, gdkcolor
 
519
 
 
520
        color = gsettings.resize.get_string('fill-color')
 
521
        valid, gdkcolor = Gdk.Color.parse(color[:-2])
 
522
        if valid:
 
523
            self.ui['colorbutton_resize_fill'].set_color(gdkcolor)
 
524
        del color, valid, gdkcolor
 
525
 
 
526
 
 
527
# TODO : Find a clever way or set each one manually.
 
528
# Do it the dumb way now. BIIIG refactoring needed later.
 
529
 
 
530
 
 
531
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\
 
532
# Dont trust glade to pass the objects properly.            |
 
533
# Always add required references to init and use them.      |
 
534
# That way, unity-tweak-tool can resist glade stupidity.    |
 
535
# Apologies Gnome devs, but Glade is not our favorite.      |
 
536
#___________________________________________________________/
 
537
 
 
538
# ===== BEGIN: Compiz settings =====
 
539
 
 
540
#-----BEGIN: General -----
 
541
 
 
542
    def on_sw_compiz_zoom_active_notify(self, widget, udata = None):
 
543
        dependants = ['scrolledwindow_compiz_general_zoom']
 
544
        plugins = gsettings.core.get_strv('active-plugins')
 
545
        if self.ui['sw_compiz_zoom'].get_active() == True:
 
546
            self.ui.sensitize(dependants)
 
547
            if 'ezoom' not in plugins:
 
548
                plugins.append('ezoom')
 
549
                gsettings.core.set_strv('active-plugins', plugins)
 
550
        else:
 
551
            self.ui.unsensitize(dependants)
 
552
            if 'ezoom' in plugins:
 
553
                plugins.remove('ezoom')
 
554
                gsettings.core.set_strv('active-plugins', plugins)
 
555
 
 
556
    def on_craccel_compiz_general_zoom_accel_edited(self, craccel, path, key, mods, hwcode, model = None):
 
557
        model = self.ui['list_compiz_general_zoom_accelerators']
 
558
        accel = Gtk.accelerator_name(key, mods)
 
559
        titer = model.get_iter(path)
 
560
        model.set_value(titer, 1, accel)
 
561
        if path  ==  '0':
 
562
            gsettings.zoom.set_string('zoom-in-key', accel)
 
563
        elif path  ==  '1':
 
564
            gsettings.zoom.set_string('zoom-out-key', accel)
 
565
 
 
566
    def on_craccel_compiz_general_zoom_accel_cleared(self, craccel, path, model = None):
 
567
        model = self.ui['list_compiz_general_zoom_accelerators']
 
568
        titer = model.get_iter(path)
 
569
        model.set_value(titer, 1, "Disabled")
 
570
        if path  ==  '0':
 
571
            gsettings.zoom.set_string('zoom-in-key', "Disabled")
 
572
        elif path  ==  '1':
 
573
            gsettings.zoom.set_string('zoom-out-key', "Disabled")
 
574
 
 
575
    def on_cbox_opengl_changed(self, widget, udata = None):
 
576
        gsettings.opengl.set_int('texture-filter', self.ui['cbox_opengl'].get_active())
 
577
 
 
578
    def on_craccel_compiz_general_keys_accel_edited(self, craccel, path, key, mods, hwcode, model = None):
 
579
        model = self.ui['list_compiz_general_keys_accelerators']
 
580
        accel = Gtk.accelerator_name(key, mods)
 
581
        titer = model.get_iter(path)
 
582
        model.set_value(titer, 1, accel)
 
583
        if path  ==  '0':
 
584
            gsettings.core.set_string('close-window-key', accel)
 
585
        elif path  ==  '1':
 
586
            gsettings.move.set_string('initiate-key', accel)
 
587
        else:
 
588
            gsettings.core.set_string('show-desktop-key', accel)
 
589
 
 
590
    def on_craccel_compiz_general_keys_accel_cleared(self, craccel, path, model = None):
 
591
        titer = model.get_iter(path)
 
592
        self.ui['list_compiz_general_keys_accelerators'].set_value(titer, 1, "Disabled")
 
593
        if path  ==  '0':
 
594
            gsettings.core.set_string('close-window-key', "Disabled")
 
595
        elif path  ==  '1':
 
596
            gsettings.move.set_string('initiate-key', "Disabled")
 
597
        else:
 
598
            gsettings.core.set_string('show-desktop-key', "Disabled")
 
599
 
 
600
    #-----General: Animations
 
601
 
 
602
    def on_switch_window_animations_active_notify(self, widget, udata = None):
 
603
        dependants = ['cbox_minimize_animation',
 
604
                    'l_minimize_animation',
 
605
                    'cbox_unminimize_animation',
 
606
                    'l_unminimize_animation']
 
607
 
 
608
        if self.ui['switch_window_animations'].get_active() == True:
 
609
            self.ui.sensitize(dependants)
 
610
            maximize_combobox_text = self.ui['cbox_minimize_animation'].get_active_text()
 
611
            gsettings.animation.set_strv('minimize-effects', ['animation:'+maximize_combobox_text])
 
612
            minimize_combobox_text = self.ui['cbox_unminimize_animation'].get_active_text()
 
613
            gsettings.animation.set_strv('unminimize-effects', ['animation:'+minimize_combobox_text])
 
614
        else:
 
615
            self.ui.unsensitize(dependants)
 
616
            gsettings.animation.set_strv('minimize-effects', ['animation:None'])
 
617
            gsettings.animation.set_strv('unminimize-effects', ['animation:None'])
 
618
 
 
619
    def on_cbox_unminimize_animation_changed(self, widget, udata = None):
 
620
        combobox_text = self.ui['cbox_unminimize_animation'].get_active_text()
 
621
        gsettings.animation.set_strv('unminimize-effects', ['animation:'+combobox_text])
 
622
 
 
623
    def on_cbox_minimize_animation_changed(self, widget, udata = None):
 
624
        combobox_text = self.ui['cbox_minimize_animation'].get_active_text()
 
625
        gsettings.animation.set_strv('minimize-effects', ['animation:'+combobox_text])
 
626
 
 
627
    def on_b_compiz_general_reset_clicked(self, widget):
 
628
        gsettings.core.reset('active-plugins')
 
629
        gsettings.animation.reset('unminimize-effects')
 
630
        gsettings.animation.reset('minimize-effects')
 
631
        gsettings.zoom.reset('zoom-in-key')
 
632
        gsettings.zoom.reset('zoom-out-key')
 
633
        gsettings.opengl.reset('texture-filter')
 
634
        gsettings.opengl.reset('sync-to-vblank')
 
635
        gsettings.core.reset('close-window-key')
 
636
        gsettings.move.reset('initiate-key')
 
637
        gsettings.core.reset('show-desktop-key')
 
638
        self.refresh()
 
639
 
 
640
#-----BEGIN: Workspaces -----
 
641
 
 
642
    def on_sw_workspace_switcher_active_notify(self, widget, udata = None):
 
643
        dependants = ['l_horizontal_desktop',
 
644
                    'l_vertical_desktop',
 
645
                    'spin_horizontal_desktop',
 
646
                    'spin_vertical_desktop']
 
647
 
 
648
        if self.ui['sw_workspace_switcher'].get_active() == True:
 
649
            self.ui.sensitize(dependants)
 
650
            gsettings.core.set_int('hsize', 2)
 
651
            gsettings.core.set_int('hsize', 2)
 
652
            self.ui['spin_horizontal_desktop'].set_value(2)
 
653
            self.ui['spin_vertical_desktop'].set_value(2)
 
654
 
 
655
        else:
 
656
            self.ui.unsensitize(dependants)
 
657
            gsettings.core.set_int('hsize', 1)
 
658
            gsettings.core.set_int('vsize', 1)
 
659
            self.ui['spin_horizontal_desktop'].set_value(1)
 
660
            self.ui['spin_vertical_desktop'].set_value(1)
 
661
 
 
662
    def on_spin_horizontal_desktop_value_changed(self, widget, udata = None):
 
663
        gsettings.core.set_int('hsize', self.ui['spin_horizontal_desktop'].get_value())
 
664
 
 
665
    def on_spin_vertical_desktop_value_changed(self, widget, udata = None):
 
666
        gsettings.core.set_int('vsize', self.ui['spin_vertical_desktop'].get_value())
 
667
 
 
668
    def on_color_desk_outline_color_set(self, widget, udata = None):
 
669
        colorhash = gsettings.color_to_hash(self.ui['color_desk_outline'].get_color(),alpha=1)
 
670
        gsettings.expo.set_string('selected-color', colorhash)
 
671
 
 
672
    def on_craccel_compiz_workspace_accel_edited(self, craccel, path, key, mods, hwcode, model = None):
 
673
        accel = Gtk.accelerator_name(key, mods)
 
674
        titer = self.ui['list_compiz_workspace_accelerators'].get_iter(path)
 
675
        self.ui['list_compiz_workspace_accelerators'].set_value(titer, 1, accel)
 
676
        gsettings.expo.set_string('expo-key', accel)
 
677
 
 
678
    def on_craccel_compiz_workspace_accel_cleared(self, craccel, path, model = None):
 
679
        titer = self.ui['list_compiz_workspace_accelerators'].get_iter(path)
 
680
        self.ui['list_compiz_workspace_accelerators'].set_value(titer, 1, "Disabled")
 
681
        gsettings.expo.set_string('expo-key', "Disabled")
 
682
 
 
683
    def on_b_compiz_workspace_reset_clicked(self, widget):
 
684
        gsettings.core.reset('hsize')
 
685
        gsettings.core.reset('vsize')
 
686
        gsettings.expo.reset('selected-color')
 
687
        gsettings.expo.reset('expo-key')
 
688
        self.refresh()
 
689
 
 
690
#-----BEGIN: Windows Spread -----
 
691
 
 
692
    def on_sw_windows_spread_active_notify(self, widget, udata = None):
 
693
        dependants = ['l_compiz_spacing',
 
694
                    'spin_compiz_spacing',
 
695
                    'check_overlay_emblem',
 
696
                    'check_click_desktop',
 
697
                    'scrolledwindow_compiz_window_spread']
 
698
 
 
699
        plugins = gsettings.core.get_strv('active-plugins')
 
700
 
 
701
        if self.ui['sw_windows_spread'].get_active() == True:
 
702
            self.ui.sensitize(dependants)
 
703
            if 'scale' not in plugins:
 
704
                plugins.append('scale')
 
705
                gsettings.core.set_strv('active-plugins', plugins)
 
706
        else:
 
707
            self.ui.unsensitize(dependants)
 
708
            if 'scale' in plugins:
 
709
                plugins.remove('scale')
 
710
                gsettings.core.set_strv('active-plugins', plugins)
 
711
 
 
712
    def on_spin_compiz_spacing_value_changed(self, widget):
 
713
        gsettings.scale.set_int('spacing', self.ui['spin_compiz_spacing'].get_value())
 
714
 
 
715
    def on_check_overlay_emblem_toggled(self, widget):
 
716
        if self.ui['check_overlay_emblem'].get_active() == True:
 
717
            gsettings.scale.set_int('overlay-icon', 1)
 
718
        else:
 
719
            gsettings.scale.set_int('overlay-icon', 0)
 
720
 
 
721
    def on_check_click_desktop_toggled(self, widget):
 
722
        if self.ui['check_click_desktop'].get_active() == True:
 
723
            gsettings.scale.set_boolean('show-desktop', True)
 
724
        else:
 
725
            gsettings.scale.set_boolean('show-desktop', False)
 
726
 
 
727
    def on_craccel_compiz_windows_spread_accel_edited(self, craccel, path, key, mods, hwcode, model = None):
 
728
        accel = Gtk.accelerator_name(key, mods)
 
729
        titer = self.ui['list_compiz_windows_spread_accelerators'].get_iter(path)
 
730
        self.ui['list_compiz_windows_spread_accelerators'].set_value(titer, 1, accel)
 
731
        if path  ==  '0':
 
732
            gsettings.scale.set_string("initiate-key", accel)
 
733
        else:
 
734
            gsettings.scale.set_string("initiate-all-key", accel)
 
735
 
 
736
    def on_craccel_compiz_windows_spread_accel_cleared(self, craccel, path, model = None):
 
737
        titer = model.get_iter(path)
 
738
        self.ui['list_compiz_windows_spread_accelerators'].set_value(titer, 1, "Disabled")
 
739
        if path  ==  '0':
 
740
            gsettings.scale.set_string("initiate-key", "Disabled")
 
741
        else:
 
742
            gsettings.scale.set_string("initiate-all-key", "Disabled")
 
743
 
 
744
    def on_b_compiz_windows_spread_reset_clicked(self, widget):
 
745
        gsettings.core.reset('active-plugins')
 
746
        gsettings.scale.reset('spacing')
 
747
        gsettings.scale.reset('overlay-icon')
 
748
        gsettings.scale.reset('show-desktop')
 
749
        gsettings.scale.reset('initiate-key')
 
750
        gsettings.scale.reset('initiate-all-key')
 
751
        self.refresh()
 
752
 
 
753
#-----BEGIN: Window Snapping -----
 
754
 
 
755
    def on_sw_window_snapping_active_notify(self, widget, udata=None):
 
756
 
 
757
        plugins = gsettings.core.get_strv('active-plugins')
 
758
        if self.ui['sw_window_snapping'].get_active() == True:
 
759
            if 'grid' not in plugins:
 
760
                plugins.append('grid')
 
761
                gsettings.core.set_strv('active-plugins', plugins)
 
762
        else:
 
763
            if 'grid' in plugins:
 
764
                plugins.remove('grid')
 
765
                gsettings.core.set_strv('active-plugins', plugins)
 
766
 
 
767
    def on_color_outline_color_color_set(self, widget, udata=None):
 
768
        colorhash = gsettings.color_to_hash(self.ui['color_outline_color'].get_color(),alpha=1)
 
769
        gsettings.grid.set_string('outline-color', colorhash)
 
770
 
 
771
    def on_color_fill_color_color_set(self, widget, udata=None):
 
772
        colorhash = gsettings.color_to_hash(self.ui['color_fill_color'].get_color(),alpha=0.31)
 
773
        gsettings.grid.set_string('fill-color', colorhash)
 
774
 
 
775
    def on_b_compiz_windowsnapping_reset_clicked(self, widget):
 
776
        gsettings.core.reset('active-plugins')
 
777
        gsettings.grid.reset('fill-color')
 
778
        gsettings.grid.reset('outline-color')
 
779
        gsettings.grid.reset('top-left-corner-action')
 
780
        gsettings.grid.reset('top-edge-action')
 
781
        gsettings.grid.reset('top-right-corner-action')
 
782
        gsettings.grid.reset('left-edge-action')
 
783
        gsettings.grid.reset('right-edge-action')
 
784
        gsettings.grid.reset('bottom-left-corner-action')
 
785
        gsettings.grid.reset('bottom-edge-action')
 
786
        gsettings.grid.reset('bottom-right-corner-action')
 
787
        self.refresh()
 
788
 
 
789
 
 
790
# ----- BEGIN: Hot Corners -----
 
791
 
 
792
    def on_switch_hotcorners_active_notify(self, widget, udata = None):
 
793
        dependants = ['cbox_hotcorners_topleft',
 
794
                    'cbox_hotcorners_left',
 
795
                    'cbox_hotcorners_bottomleft',
 
796
                    'cbox_hotcorners_topright',
 
797
                    'cbox_hotcorners_right',
 
798
                    'cbox_hotcorners_bottomright',
 
799
                    'cbox_hotcorners_top',
 
800
                    'cbox_hotcorners_bottom']
 
801
 
 
802
        if not hasattr(self, 'hotcorners_previous'):
 
803
            self.hotcorners_previous = {}
 
804
 
 
805
        if self.ui['switch_hotcorners'].get_active() == True:
 
806
            self.ui.sensitize(dependants)
 
807
            for box in self.hotcorners_cboxes:
 
808
                self.ui[box].set_active(self.hotcorners_previous[box])
 
809
 
 
810
        else:
 
811
            self.ui.unsensitize(dependants)
 
812
            for box in self.hotcorners_cboxes:
 
813
                self.hotcorners_previous[box] = self.hotcorners_cboxes[box][0]
 
814
                self.ui[box].set_active(0)
 
815
 
 
816
    def on_b_compiz_hotcorners_reset_clicked(self, widget):
 
817
        gsettings.core.reset('show-desktop-edge')
 
818
        gsettings.expo.reset('expo-edge')
 
819
        gsettings.scale.reset('initiate-edge')
 
820
        gsettings.scale.reset('initiate-all-edge')
 
821
        self.refresh()
 
822
 
 
823
# ----- BEGIN: Additional -----
 
824
 
 
825
    def on_switch_auto_raise_active_notify(self, widget, udata = None):
 
826
        if self.ui['switch_auto_raise'].get_active() == True:
 
827
            gsettings.wm.set_boolean('auto-raise', True)
 
828
        else:
 
829
            gsettings.wm.set_boolean('auto-raise', False)
 
830
 
 
831
    def on_cbox_focus_mode_changed(self, widget, udata = None):
 
832
        gsettings.wm.set_enum('focus-mode', self.ui['cbox_focus_mode'].get_active())
 
833
 
 
834
    def on_cbox_double_click_changed(self, widget, udata = None):
 
835
        gsettings.wm.set_enum('action-double-click-titlebar', self.ui['cbox_double_click'].get_active())
 
836
 
 
837
    def on_cbox_middle_click_changed(self, widget, udata = None):
 
838
        gsettings.wm.set_enum('action-middle-click-titlebar', self.ui['cbox_middle_click'].get_active())
 
839
 
 
840
    def on_cbox_right_click_changed(self, widget, udata = None):
 
841
        gsettings.wm.set_enum('action-right-click-titlebar', self.ui['cbox_right_click'].get_active())
 
842
 
 
843
    def on_scale_auto_raise_delay_value_changed(self, widget, udata = None):
 
844
        value = self.ui['scale_auto_raise_delay'].get_value()
 
845
        gsettings.wm.set_int('auto-raise-delay', value)
 
846
        del value
 
847
 
 
848
    def on_colorbutton_resize_outline_color_set(self, widget, udata=None):
 
849
        colorhash = gsettings.color_to_hash(self.ui['colorbutton_resize_outline'].get_color(),alpha=1)
 
850
        gsettings.resize.set_string('border-color', colorhash)
 
851
 
 
852
    def on_colorbutton_resize_fill_color_set(self, widget, udata=None):
 
853
        colorhash = gsettings.color_to_hash(self.ui['colorbutton_resize_fill'].get_color(),alpha=0.31)
 
854
        gsettings.resize.set_string('fill-color', colorhash)
 
855
 
 
856
    def on_b_wm_additional_reset_clicked(self, widget):
 
857
        gsettings.wm.reset('auto-raise-delay')
 
858
        gsettings.wm.reset('auto-raise')
 
859
        gsettings.wm.reset('focus-mode')
 
860
        gsettings.wm.reset('action-double-click-titlebar')
 
861
        gsettings.wm.reset('action-middle-click-titlebar')
 
862
        gsettings.wm.reset('action-right-click-titlebar')
 
863
        gsettings.resize.reset('border-color')
 
864
        gsettings.resize.reset('fill-color')
 
865
        self.refresh()
 
866
 
 
867
if __name__ == '__main__':
 
868
# Fire up the Engines
 
869
    Compizsettings()
 
870
# FIXME : This is guaranteed to fail.