class Notiffany::Notifier::Tmux::Session

Preserves TMux settings for all tmux sessions

Public Class Methods

new() click to toggle source
# File lib/notiffany/notifier/tmux/session.rb, line 6
def initialize
  @options_store = {}

  # NOTE: we are reading the settings of all clients
  # - regardless of the :display_on_all_clients option

  # Ideally, this should be done incrementally (e.g. if we start with
  # "current" client and then override the :display_on_all_clients to
  # true, only then the option store should be updated to contain
  # settings of all clients
  Client.new(:all).clients.each do |client|
    @options_store[client] = {
      "status-left-bg"  => nil,
      "status-right-bg" => nil,
      "status-left-fg"  => nil,
      "status-right-fg" => nil,
      "message-bg"      => nil,
      "message-fg"      => nil,
      "display-time"    => nil
    }.merge(Client.new(client).parse_options)
  end
end

Public Instance Methods

close() click to toggle source
# File lib/notiffany/notifier/tmux/session.rb, line 29
def close
  @options_store.each do |client, options|
    options.each do |key, value|
      Client.new(client).unset(key, value)
    end
  end
  @options_store = nil
end