Class: RosettAi::DBus::FocusAdapters::Base
- Inherits:
-
Object
- Object
- RosettAi::DBus::FocusAdapters::Base
- Defined in:
- lib/rosett_ai/dbus/focus_adapters/base.rb
Overview
Base class for compositor-specific focus adapters.
Each adapter implements the same interface:
- #start: Begin monitoring focus changes
- #stop: Stop monitoring
- #on_focus_change(&block): Register callback for focus changes
Callbacks receive (app_id, title) arguments.
Direct Known Subclasses
GnomeAdapter, HyprlandAdapter, I3Adapter, KwinAdapter, X11Adapter
Instance Method Summary collapse
-
#initialize ⇒ Base
constructor
A new instance of Base.
-
#on_focus_change {|app_id, title| ... } ⇒ Object
Register callback for focus changes.
-
#running? ⇒ Boolean
Check if monitoring is active.
-
#start ⇒ Object
Start monitoring focus changes.
-
#stop ⇒ Object
Stop monitoring.
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
19 20 21 22 |
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 19 def initialize @callbacks = [] @running = false end |
Instance Method Details
#on_focus_change {|app_id, title| ... } ⇒ Object
Register callback for focus changes
27 28 29 |
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 27 def on_focus_change(&block) @callbacks << block end |
#running? ⇒ Boolean
Check if monitoring is active
44 45 46 |
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 44 def running? @running end |
#start ⇒ Object
Start monitoring focus changes
32 33 34 |
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 32 def start raise NotImplementedError, "#{self.class}#start must be implemented" end |
#stop ⇒ Object
Stop monitoring
37 38 39 |
# File 'lib/rosett_ai/dbus/focus_adapters/base.rb', line 37 def stop @running = false end |