Jak wyłączyć migający kursor w terminalu gnome?

40

Mógłbym przysiąc, że kiedyś istniało takie ustawienie w „Profilu” terminalu gnome.

A potem w niektórych wersjach Ubuntu to ustawienie zniknęło i musiałem użyć System ➜ Preferencje ➜ Klawiatura, aby odznaczyć „Kursor miga w polach tekstowych”.

Cóż, wydaje się, że żadne z nich nie działa teraz. Jak sprawić, by kursor przestał migać?

Nemo
źródło

Odpowiedzi:

21

Tak, w gconf jest ukryte ustawienie.
Otwórz edytor gconf, przejdź do /apps/gnome-terminal/profiles/Default, znajdź cursor_blink_modei zmień jego wartość na off.

mikewhthing
źródło
Dzięki; to zrobiło. Chociaż jednym z prawidłowych ustawień (właściwie domyślnych) ma być „system”. Czy to tylko zepsute?
Nemo,
Nie sądzę, że jest zepsuty, ponieważ kursor powinien migać domyślnie, a raczej zgodnie z projektem, i nie tylko w Terminalu. Jest to ustawienie dla całego systemu w oknie sterowania Klawiatura. Nie jestem jednak pewien, czy możesz go wyłączyć stamtąd.
mikewhthing
1
Jak wspomniałem w moim pytaniu, pomyślałem, że wyłączyłem go globalnie w ustawieniach Klawiatury ... Ale to nie miało żadnego wpływu na terminal gnome. Co sprawia, że ​​zastanawiam się, do czego odnosi się ustawienie „systemowe” kursor_blink_mod. W każdym razie mój problem został rozwiązany. Dzięki jeszcze raz.
Nemo,
1
@Nemo „system” prawdopodobnie odnosi się do wartości z cursor-blink„gsetting”, które można wyszukać tak: gsettings get org.gnome.desktop.interface cursor-blink. Istnieją inne gsettings związane kursora, które można modyfikować oddzielnie, jak również, jak cursor-blink-timeout, cursor-sizeitp
Maxy-B
Próbuję znaleźć możliwe alternatywy dla „off” i „system”. Nadal chcę migać kursor w aktywnym terminalu, ale nie we wszystkich pozostałych.
Gauthier
30

Możesz wyłączyć miganie również z wiersza poleceń (edytor gconf nie jest domyślnie instalowany):

 gconftool-2 --set /apps/gnome-terminal/profiles/Default/cursor_blink_mode --type string off

W nowszych wersjach gnome-terminal polecenie zmieniło się:

gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default|tr -d \')/ cursor-blink-mode off
MD
źródło
5
W Ubuntu 16.04 gsettings set ...nie działało to dla mnie. Rozwiązałem to za pomocą gsettings set org.gnome.desktop.interface cursor-blink false.
mmoya,
@mmoya: Hmm, zadziałało dla mnie. Czy może zmieniłeś nazwę swojego profilu terminala na domyślną (zwaną „domyślną”)? Wadą tego rozwiązania jest to, że wyłącza miganie dla wszystkich aplikacji, nie tylko gnome-terminal.
mdd
Właściwie nazwałem go Domyślnym , kiedy otworzyłem ustawienia profilu w interfejsie, nie miał nazwy. W każdym razie nie powinno to mieć znaczenia, ponieważ profil użytkownika jest pobierany z gsettings get ...polecenia, prawda?
mmoya,
gsettings getpolecenie pobiera UUID profilu o nazwie default(która jest domyślna nazwa), to działa w przypadku zmiany polecenia Default?
mdd
Myślę, że użyłem defaultjako nazwy, ponieważ gsettings get ...działa. Przydałoby się dodać do odpowiedzi notatkę z informacją, że polecenie zakłada, że ​​profil nazywa się domyślny .
mmoya,
17

Sprawdzam ten post na prawie każdej instalacji Gnome. Wygląda na to, że rzeczywista nazwa zmiennej zmienia się tak często.

Moje rozwiązanie: gsettings list-recursively | grep blink

Następnie ustawiam wartość linku z True na False. Na razie jest to org.gnome.desktop.interface -blink, więc:

gsettings set org.gnome.desktop.interface cursor-blink false

Mam nadzieję, że to pomoże komuś innemu w przyszłości!

Farhan Yusufzai
źródło
3
Dziękujemy za udostępnienie sposobu na znalezienie go, a nie tylko rozwiązanie!
Luc
To rozwiązanie działało dla mnie w Ubuntu 17.10
Xaxxon
6

Możesz wysłać sekwencję zmiany znaczenia do terminala (chyba zgodnego z POSIX), ustawiając bieżący znak kursora, używając tput:

tput civis    # invisible
tput cnorm    # normal       (usually an underscore)
tput cvvis    # very visible (usually a rectangle)

Wystarczy umieścić cokolwiek wolisz w Twoim skrypcie runcom: ~/.zshrc, ~/.bashrc- co twoja trucizna - albo w globalnej w /etcjeśli chcesz na to, aby uruchomić dla wszystkich użytkowników.

cprn
źródło