如何查询选项卡式 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提供有关窗口的信息,包括可以轻松提取的窗口名称

所以我认为以上内容已经包含了所需的所有信息。

相关内容