Session.list_window_links
Behavior: Live acquisition.
Source and package
- Qualified name
-
LibTmux:: Session #list _window _links - Module
- LibTmux
- Declared in
- Session
- Package
- libtmux
- Source
- gems/libtmux/lib/libtmux/operations.rb
-
Description#
Behavior contract: Live acquisition.
Examples#
Link one window at two more indexes of its session and list the three links that share one window ID. Use Ruby 4.0.7, Bundler, Git and tmux 3.3a or newer on Unix, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:
Terminal window $ git clone https://github.com/libtmux/libtmux-ruby.git libtmux-source && \git -C libtmux-source checkout c8b839595d5a30e271e3f9be0d0fe811ddb11b7eSave this dependency file as Gemfile:
source "https://rubygems.org"gem "libtmux", path: "libtmux-source/gems/libtmux"Save this complete program as link_window.rb. Its Server.start block owns a private tmux server and stops it on exit, including after an error. View source
# frozen_string_literal: truebegin# docs:begin mainrequire "libtmux"LibTmux::Server.start do |server|session = server.new_session(name: "links", command: ["/bin/cat"])window = session.list_windows.fetch(0)session.link_window(window.ref, index: 4)session.link_window(window.ref, index: 9)links = session.list_window_linksputs "indexes: #{links.map(&:index).join(', ')}"puts "windows: #{links.map { |link| link.window.id }.uniq.join(', ')}"end# docs:end mainrescue StandardError => errorwarn "#{error.class}: #{error.message}"exit 1endInstall the runtime dependencies and run the saved program. An operation or cleanup error makes it exit unsuccessfully:
Terminal window $ bundle config set --local path vendor/bundle && \bundle install --jobs 2 && \bundle exec ruby link_window.rbExpected output:
indexes: 0, 4, 9windows: @0tmux command
list-windows-t,cmd_list_windows_exec