使用 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
在提交问题之前我又查了一下,发现:
- 在xfce4-terminal中,当前选项卡成为窗口名称
- $WINDOWID 环境变量包含当前窗口的窗口 ID
xwininfo -id $WINDOWID
提供有关窗口的信息,包括可以轻松提取的窗口名称
所以我认为以上内容已经包含了所需的所有信息。