タブGUI端末の現在のタブ名を照会する方法(すべて)

タブGUI端末の現在のタブ名を照会する方法(すべて)

tmuxを使用してtmuxで作成された各「ウィンドウ」に対して仮想ホームディレクトリを設定するワークフローを実装しました。を使用して現在のウィンドウの名前を照会できますtmux display-message -p '#W'。だから、以下のコードのようにシステムを実装するのは簡単でした。あなたは理解しました。

質問
GUI端末で同じタイプの「タブごとのホーム」を実行したいと思います。ただし、単純なデータベースからホームディレクトリを検索するには、現在のタブの名前を照会する必要があります。タブ名を照会する方法が見つかりません。私はxfce4-terminalを好みますが、他の人にもオープンです。私も利用したいです。ありがとうございます! ——マイヤーズ

alias cdh 'cd `~/bin/get_tmux_window_home_dir`'
% cat ~/bin/get_tmux_window_home_dir
#!/usr/bin/ruby
$VERBOSE = nil
window = `tmux display-message -p '#W'`.chomp
if ! $?.success?
  STDERR.puts "Error: tmux display-message -p '#W' failed."
  print 'XXXXX'
  exit 1
end
db_file = "/home/#{ENV['USER']}/.config/tmux_window_home_dir/tmux_window_home_dir.csv"
db = {}
if File.exists?(db_file)
  File.readlines(db_file).each do |l|
    s = l.split(',')
    db[s[0]] = s[1]
  end
end
if db[window]
  print db[window]
else
  STDERR.puts "Error: There is no home directory set for tmux window name '#{window}'"
  print 'XXXXX'
end

答え1

質問を送信する前にもう一度確認したところ、次のことがわかりました。

  1. xfce4-terminalでは、現在のタブがウィンドウ名になります。
  2. $WINDOWID環境変数には、現在のウィンドウのウィンドウIDが含まれています。
  3. xwininfo -id $WINDOWID簡単に抽出できるウィンドウ名を含むウィンドウに関する情報を提供します。

したがって、上記の内容に必要なすべての情報があると思います。

関連情報