Class: RosettAi::DBus::StatusNotifierInterface

Inherits:
DBus::Object
  • Object
show all
Defined in:
lib/rosett_ai/dbus/status_notifier_interface.rb

Overview

D-Bus StatusNotifierItem interface for system tray presence.

Implements org.kde.StatusNotifierItem, the freedesktop standard for system tray icons on Linux. Supports KDE, GNOME (via extension), and Xfce status notifier hosts.

Degrades gracefully if no StatusNotifierHost is available.

Constant Summary collapse

INTERFACE =

Returns D-Bus interface name.

Returns:

  • (String)

    D-Bus interface name.

'org.kde.StatusNotifierItem'
CATEGORY =

Returns StatusNotifierItem category.

Returns:

  • (String)

    StatusNotifierItem category.

'ApplicationStatus'
ICON_NAME =

Returns StatusNotifierItem icon name.

Returns:

  • (String)

    StatusNotifierItem icon name.

'rosett-ai-symbolic'
APP_ID =

Returns StatusNotifierItem application identifier.

Returns:

  • (String)

    StatusNotifierItem application identifier.

'be.neatnerds.rosettai'

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ StatusNotifierInterface

Returns a new instance of StatusNotifierInterface.



48
49
50
51
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 48

def initialize(path)
  super
  @current_status = 'Active'
end

Instance Method Details

#categoryString

Return the StatusNotifierItem category.

Returns:

  • (String)


58
59
60
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 58

def category   = CATEGORY
# Return the current status.
# @return [String]

#icon_nameString

Return the icon name for display.

Returns:

  • (String)


67
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 67

def icon_name  = ICON_NAME

#idString

Return the unique identifier.

Returns:

  • (String)


55
56
57
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 55

def id         = APP_ID
# Return the StatusNotifierItem category.
# @return [String]

#statusString

Return the current status.

Returns:

  • (String)


61
62
63
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 61

def status     = @current_status
# Return the display title.
# @return [String]

#titleString

Return the display title.

Returns:

  • (String)


64
65
66
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 64

def title      = "rai #{RosettAi::VERSION}"
# Return the icon name for display.
# @return [String]

#tool_tipObject

ToolTip is a struct: (icon_name, icon_pixmap, title, body)



70
71
72
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 70

def tool_tip
  [ICON_NAME, [], "rai #{RosettAi::VERSION}", 'NeatNerds Code Companion']
end

#update_status(new_status) ⇒ Object

Update displayed status and emit signal.

Parameters:

  • new_status (String)

    one of 'Passive', 'Active', 'NeedsAttention'



77
78
79
80
# File 'lib/rosett_ai/dbus/status_notifier_interface.rb', line 77

def update_status(new_status)
  @current_status = new_status
  NewStatus(new_status)
end