Đặt tiêu đề thiết bị đầu cuối từ trong Mutt?


7

Với sự trợ giúp của lệnh Display trong thanh tiêu đề xterm, tôi đã gnome-terminalthay đổi tiêu đề để phản ánh lệnh đang chạy, để tôi có thể thấy thiết bị đầu cuối Mutt nào đang chạy nó. Nhưng điều tôi thực sự thích là đẩy trạng thái Mutt của mình lên tiêu đề. Tôi có cái này trong .muttrc:

set status_format = "%n new | %M in %f [%v]."

và tôi muốn đẩy toàn bộ trạng thái đó đến gnome-terminaltiêu đề của tôi . Có cách nào để làm điều đó trong tôi .bashrc? Hay cách khác?

Có một cuộc thảo luận về cách thực hiện điều này từ w / in vim tại http://vim.wikia.com/wiki/Automatically_set_screen_title nhưng ... đó là vim.

Câu trả lời:


5

mutt đã có thể làm điều này.

người đàn ông muttrc

  ts_enabled
          Type: boolean
          Default: no

         Controls whether mutt tries to set the terminal status line and
          icon name.  Most terminal emulators emulate the status line in
          the window title.



  ts_status_format
          Type: string
          Default: Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?”

         Controls the format of the terminal status line (or window
          title), provided that $ts_enabled has been set. This string is
          identical in formatting to the one used by $status_format”.

Thật không may, nó không thay đổi tiêu đề trở lại, khi bạn thoát khỏi mutt.


Huh. Có lẽ một điều phiên bản. Đối với tôi nó là xterm_set_titlesnhưng nó ở ngay đó. Tuyệt vời.
Amanda

Tôi tin rằng đó xterm_set_titleslà một bản vá cho mutt, nhưng 2 năm trước họ đã thêm các ts_tùy chọn.
Thomas Weinbrenner

3

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_statuslà 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/ttythiế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$my_titlelà 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_enabledts_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+slmụ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 fslquá 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.