Có thể làm cho status_format chạy một tập lệnh bên ngoài có thể đặt tiêu đề. Điều này đã được mô tả trong danh sách gửi thư mutt vài năm trước bởi Amit Ramon , sử dụng biểu tượng đường ống |
, được ghi lại như sau:
Bất kỳ chuỗi định dạng nào kết thúc trong một thanh dọc (trực tuyến), sẽ được mở rộng và chuyển qua từ đầu tiên trong chuỗi, sử dụng khoảng trắng làm dấu phân cách. Chuỗi trả về sẽ được sử dụng để hiển thị. Nếu chuỗi trả về kết thúc bằng%, nó sẽ được chuyển qua bộ định dạng lần thứ hai. Điều này cho phép bộ lọc tạo chuỗi định dạng thay thế, bao gồm% bản mở rộng.
Ví dụ của Ramon là chuỗi này:
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
Trong ví dụ của anh ta, mutt_status
là một tập lệnh shell đơn giản lặp lại tham số đầu tiên cho đầu ra tiêu chuẩn (và được hiển thị trong dòng trạng thái), trong khi tập lệnh thứ hai được ghi vào /dev/tty
thiết bị (và được hiển thị trong thanh tiêu đề xterm):
#!/bin/sh
# Demonstration of format string pipes. Sets the xterm title to the 2nd argument,
# and returns the first unchanged.
#
# this sets the title
printf "\033]0;$2\007" > /dev/tty
echo "$1"
# end of script
Ghi chú của Ramon nói rằng $my_status
và $my_title
là các biến mà anh ta xác định trong cấu hình của mình (nhưng không đưa ra thông tin cụ thể nào ngoài việc chỉ vào tài liệu Mutt cho status_format
.
Ví dụ của bạn,
set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"
sẽ gửi cùng một thông tin cho cả dòng trạng thái và tiêu đề.
Khi xem xét điều này, tôi đã không chú ý ts_enabled
và ts_status_format
, mà @ Thomas Weinbrenner mô tả. Điều đó đã được thêm vào mutt chỉ một vài tháng trước, vào tháng 8 năm 2015 :
1.5.24 (2015-08-31):
+ terminal status-line (TS) support, a.k.a. xterm title. see the
following variables: $ts_enabled, $ts_icon_format, $ts_status_format
Tính năng đó sử dụng tính năng terminfo tsl
, theo terminfo (5) yêu cầu một tham số:
to_status_line tsl ts move to status line,
column #1
Tuy nhiên, chuỗi tiêu đề cho xterm không chấp nhận một tham số. Nó chủ yếu bị bỏ qua trong các trường hợp như vậy vì lý do này, mặc dù có (vì mục đích thảo luận) một xterm+sl
mục đầu tiên được thêm vào năm 1999 . Bạn sẽ không tìm thấy cái được sử dụng trong thuật ngữ "xterm". Thay vào đó, phần mở rộng TS
đã được đề xuất thay thế kể từ năm 2012 .
Ngoại trừ xterm, việc khôi phục tiêu đề sau khi thoát khỏi mutt đã không được hỗ trợ rộng rãi trong vài năm, do lo ngại về các chuỗi thoát không đúng định dạng. xterm cung cấp một truy vấn / phản hồi bị tắt theo mặc định trong hầu hết các gói. Ngoài ra, nó cung cấp một chuỗi điều khiển khác làm cho các chuỗi tiêu đề được xếp chồng lên nhau . Màn hình GNU sử dụng tính năng này (được thêm vào tháng 11 năm 2009 ); đối với hầu hết các ứng dụng khác, việc sử dụng tsl
/ mis fsl
quá cố định để tạo ra bất kỳ sự khác biệt nào đối với người dùng thông thường.
Câu hỏi này dường như là một bài đăng lại từ LQ vào đầu năm 2015, điều này đủ thú vị chỉ ra một thông báo phát hành mutt cũ hơn :
Mutt 1.5.15 được phát hành vào ngày 6 tháng 4 năm 2007. Phiên bản này có một số bản vá tính năng mới và lâu đời được áp dụng với dự đoán về tính năng đóng băng về 1.6. Chúng bao gồm SMTP tích hợp, cải tiến hỗ trợ thư được chuyển đổi, cập nhật tiêu đề xterm, cải tiến bộ ký tự, hỗ trợ PKA GPG, v.v. Xem ChangeLog để biết chi tiết đầy đủ.
Tuy nhiên, điều đó dường như đề cập đến một bản vá :
2007-03-14 14:45 -0700 Brendan Cully <brendan@kublai.com> (35b8facdbdda)
* contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
mutt_xtitle script
mà tôi đã biết từ cuộc thảo luận trước đó (và bị bỏ qua vì nó không được tích hợp vào chính mutt). Một số packager có thể đã áp dụng bản vá này, nhưng tính năng đã được đổi tên khi cuối cùng (khoảng hơn mười năm) được tích hợp vào mutt.
xterm_set_titles
nhưng nó ở ngay đó. Tuyệt vời.