Tôi có thể thay đổi tên của tab guake để hiển thị lệnh hiện tại không?


13

Tôi sử dụng guake rất nhiều và ssh vào hơn 3 máy tính bất cứ lúc nào. Tôi cũng có trình nền chạy trên một số tab (thiết bị đầu cuối). Những gì tôi muốn biết, Có thể có tên của lệnh hiện tại là tên của Terminal không? Nhấn chuột phải vào một tab và thay đổi tên của nó gây ra điều này: (Nhìn vào tab sau Terminal 5)

Nhìn vào tab sau Terminal 5

Cảm ơn.


Xem câu trả lời của tôi cho một câu hỏi liên quan để hiển thị một đại diện viết tắt của thư mục hiện tại dưới dạng tiêu đề tab.
krlmlr

Bạn có ý nghĩa gì với "lệnh hiện tại"? luôn có một lệnh chạy trong mỗi thiết bị đầu cuối? Tiêu đề nên là gì khi không có gì chạy?
rubo77

Câu trả lời:


4

Đây là một lỗi guake (0.4.1). Tôi chỉ xem và giải quyết vấn đề này thông qua báo cáo lỗi này mặc dù tác giả nói rằng đây không phải là phương pháp tốt nhất: https://github.com/Guake/guake/issues/205

Tôi đã phát hiện ra rằng việc chuyển mã hủy hộp thoại (guake.py dòng 983) xuống sau khi mã đặt nhãn tab (dòng 986) thực sự giải quyết được vấn đề. Vì vậy, mã làm việc cho tôi trông như thế này:

    response = dialog.run()
    # dialog.destroy() 

    if response == gtk.RESPONSE_ACCEPT:
        self.selected_tab.set_label(entry.get_text())

    dialog.destroy()

có thể có một số vấn đề với gtk và hộp thoại, nhưng tôi không tìm thấy bất kỳ thay đổi mã nào được kết nối với gtk trong phiên bản 0.4.1 diff.

EDIT : guake 0.4.2 có thể thay đổi tên tab chính xác


1
điều này không trả lời câu hỏi
phil294

3

Tôi không chắc chắn điều này hoạt động cho guake, nó hoạt động cho hầu hết các trình giả lập thiết bị đầu cuối. Bạn có thể bao gồm một tiếng vang trên tập lệnh của mình để thay đổi tiêu đề thiết bị đầu cuối:

echo -ne "\033]0;your_title_here\007"

Điều đó đã không làm việc, khi tôi gõ nó trong thiết bị đầu cuối.
theTuxRacer

1
Đó là bởi vì dấu nhắc của shell của bạn thường sẽ đặt nó vào thư mục làm việc hiện tại. Kiểm tra biến PS1.
ak2

Nó cũng không hoạt động trên Ubuntu 15.10 của tôi. Tôi đã kiểm tra echo $PS1cái nào cho thấy cái \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$gì đó giúp tôi giải quyết cái này?
rubo77

3

Một chút của một hack, nhưng điều này sẽ đổi tên thiết bị đầu cuối hiện tại thành bất cứ điều gì bạn muốn.

function ssh() {
    guake -r "$@";
    /usr/bin/ssh $@
}

Ngoài ra, nếu bạn cập nhật PROMPT_COMMAND, bạn có thể có chức năng cập nhật tên thiết bị đầu cuối mỗi lần. Mặc dù điều này sẽ không hoạt động cho vấn đề ssh của bạn vì nó chỉ thay đổi tên sau khi lệnh đã chạy.

ví dụ

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}

2

Khi tôi muốn thay đổi tên tab trong guake, tôi chỉ cần nhấp chuột phải vào tên tab và nhấp chuột trái vào đổi tên. Một hộp bật lên mở ra để nhập tên mới vào.


chắc chắn, nhưng làm thế nào bạn có thể thêm nó vào một kịch bản?
rubo77

1

Bạn chỉ có thể thay đổi tên tab bằng

guake -r newtabname

Nếu bạn muốn nhận lệnh chạy mới nhất, hãy sử dụng ví dụ

echo "!!" | cut -f 1 -d " "

!!được mở rộng bằng bash khi bạn gõ nó. Nó không được mở rộng bằng cách thay thế bí danh. Vì vậy, bạn phải sử dụng tích historyhợp sẵn để thực hiện việc mở rộng để đặt nó vào bí danh:

alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'

khi lệnh cuối cùng của bạn là

echo this is a test

sau đó gọi

setguaketitle

sẽ đặt tiêu đề thành "echo".


0

Nếu bạn thay đổi shell của mình thành zsh, bạn có thể thêm nó vào ~/.zshrc:

preexec() {
    echo -n '\e]0;'
    echo -nE "$1"
    print -nP '  (%~)'
    echo -n '\a'
}

và nó sẽ hiển thị lệnh hiện tại và thư mục làm việc hiện tại. Điều này làm việc cho tất cả các trình giả lập thiết bị đầu cuối, không chỉ là guake.

Để cài đặt zsh:

sudo apt-get install zsh

để thử nó chỉ cần nói

zsh

để làm cho nó mặc định cho các thiết bị đầu cuối mới:

chsh -s /bin/zsh 

1
zsh hoàn toàn không hoạt động với guake :(
theTuxRacer

Ồ, phải, tôi nhớ đánh vấn đề đó trước đây. Nhưng ít nhất một số lỗi liên quan đến nó dường như đã được sửa, ví dụ: < guake.org/ticket/49 >.
poolie
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.