Class: Rkremap::WinAttrKDE
- Inherits:
-
Object
- Object
- Rkremap::WinAttrKDE
- Defined in:
- lib/rkremap/winattr_kde.rb
Instance Attribute Summary collapse
-
#focus_win ⇒ Object
readonly
Returns the value of attribute focus_win.
Instance Method Summary collapse
- #app_title(win_id) ⇒ Object
- #class_name(window) ⇒ Object
- #create_service ⇒ Object
-
#initialize ⇒ WinAttrKDE
constructor
A new instance of WinAttrKDE.
- #remove(id) ⇒ Object
- #set(id, caption, resource_name, resource_class) ⇒ Object
Constructor Details
#initialize ⇒ WinAttrKDE
Returns a new instance of WinAttrKDE.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rkremap/winattr_kde.rb', line 7 def initialize @app_win = {} bus = DBus.session_bus kwin_service = bus.service('org.kde.KWin') kwin_scripting = kwin_service.object('/Scripting') kwin_scripting.introspect full_path = File.('./kwin_script.js', __dir__) if kwin_scripting.isScriptLoaded(full_path)[0] kwin_scripting.unloadScript(full_path) end kwin_scripting.loadScript(full_path) kwin_scripting.start create_service end |
Instance Attribute Details
#focus_win ⇒ Object (readonly)
Returns the value of attribute focus_win.
5 6 7 |
# File 'lib/rkremap/winattr_kde.rb', line 5 def focus_win @focus_win end |
Instance Method Details
#app_title(win_id) ⇒ Object
28 29 30 |
# File 'lib/rkremap/winattr_kde.rb', line 28 def app_title(win_id) @app_win[win_id][:caption] end |
#class_name(window) ⇒ Object
24 25 26 |
# File 'lib/rkremap/winattr_kde.rb', line 24 def class_name(window) @app_win[window][:resource_class] end |
#create_service ⇒ Object
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 |
# File 'lib/rkremap/winattr_kde.rb', line 41 def create_service winattr = self bus = DBus.session_bus service = bus.request_service('net.tmtms.Rkremap') klass = Class.new(DBus::Object) do dbus_interface 'net.tmtms.RkremapInterface' do dbus_method :windowActivated, 'in id:s, in caption:s, in resourceName:s, in resourceClass:s' do |id, caption, resource_name, resource_class| winattr.set(id, caption, resource_name, resource_class) end dbus_method :windowRemoved, 'in id:s' do |id| winattr.remove(id) end end end obj = klass.new('/net/tmtms/Rkremap') service.export(obj) Thread.new do loop = DBus::Main.new loop << bus loop.run end sleep 0.1 end |
#remove(id) ⇒ Object
37 38 39 |
# File 'lib/rkremap/winattr_kde.rb', line 37 def remove(id) @app_win.delete id end |
#set(id, caption, resource_name, resource_class) ⇒ Object
32 33 34 35 |
# File 'lib/rkremap/winattr_kde.rb', line 32 def set(id, caption, resource_name, resource_class) @app_win[id] = {caption: caption, resource_name: resource_name, resource_class: resource_class} @focus_win = id end |