Class: Fusuma::Plugin::Appmatcher::GnomeExtension

Inherits:
Object
  • Object
show all
Includes:
UserSwitcher
Defined in:
lib/fusuma/plugin/appmatcher/gnome_extension.rb

Overview

Search Active Window’s Name

Defined Under Namespace

Classes: Application, Matcher

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from UserSwitcher

#as_user, #drop_priv, login_user

Constructor Details

#initializeGnomeExtension

Returns a new instance of GnomeExtension.



16
17
18
# File 'lib/fusuma/plugin/appmatcher/gnome_extension.rb', line 16

def initialize
  @reader, @writer = IO.pipe
end

Instance Attribute Details

#readerObject (readonly)

Returns the value of attribute reader.



14
15
16
# File 'lib/fusuma/plugin/appmatcher/gnome_extension.rb', line 14

def reader
  @reader
end

#writerObject (readonly)

Returns the value of attribute writer.



14
15
16
# File 'lib/fusuma/plugin/appmatcher/gnome_extension.rb', line 14

def writer
  @writer
end

Instance Method Details

#watch_startInteger

fork process and watch signal

Returns:

  • (Integer)

    Process id



22
23
24
25
26
27
28
29
30
31
# File 'lib/fusuma/plugin/appmatcher/gnome_extension.rb', line 22

def watch_start
  @watch_start ||= begin
    pid = as_user(proctitle: self.class.name.underscore) do |user|
      @reader.close
      ENV["DBUS_SESSION_BUS_ADDRESS"] = "unix:path=/run/user/#{user.uid}/bus"
      register_on_application_changed(Matcher.new)
    end
    pid
  end
end