Например, текущие настройки
$ xprop -root | grep XKB
_XKB_RULES_NAMES(STRING) = "xorg", "pc104", "us,ru", "",
"grp:lwin_toggle,grp_led:scroll"
$
Также есть команда xset
$ xset q | grep DPMS
DPMS (Energy Star):
DPMS is Enabled
$
$ xprop -root | grep XKB
_XKB_RULES_NAMES(STRING) = "xorg", "pc104", "us,ru", "",
"grp:lwin_toggle,grp_led:scroll"
$
$ xset q | grep DPMS
DPMS (Energy Star):
DPMS is Enabled
$
При работе с PyGTK иногда возникает необходимость создавать собственные виджеты. Теоретически все просто - унаследуем свой класс от базового gtk.Widget, gtk.Container или gtk.Bin и в конструкторе вызовем конструктор класса-родителя. Но не так все просто как кажется на первый взгляд. Создадим такой класс:
mywidget.py
# -*- coding: utf-8 -*-
import gtk
class MyWidget(gtk.Widget):
"""
Класс созданный на основе gtk.Widget
"""
def __init__(self):
gtk.Widget.__init__(self)
Проверяем:
$ python
Python 2.4.5 (#2, Mar 12 2008, 00:15:51)
[GCC 4.2.3 (Debian 4.2.3-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mywidget
>>> wdg = mywidget.MyWidget()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "mywidget.py", line 7, in __init__
gtk.Widget.__init__(self)
TypeError: cannot create instance of abstract (non-instantiable) type `GtkWidget`
>>>
Для обычного создания унаследованных классов необходимо зарегистрировать этот класс перед использованием:
mywidget.py
# -*- coding: utf-8 -*-
import gtk
import gobject
class MyWidget(gtk.Widget):
"""
Класс созданный на основе gtk.Widget
"""
def __init__(self):
gtk.Widget.__init__(self)
# Регистрируем класс как виджет GTK
gobject.type_register(MyWidget)
Проверяем:
$ python
Python 2.4.5 (#2, Mar 12 2008, 00:15:51)
[GCC 4.2.3 (Debian 4.2.3-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mywidget
>>> wdg = mywidget.MyWidget()
>>>