Jaki skrót klawiaturowy zmienia rozmiar tekstu terminala `xfce4-terminal`?

11

Kiedyś Ctrl+ -i Ctrl+ +zwiększały lub zmniejszały rozmiar tekstu terminala we wcześniejszych wersjach Ubuntu, co jest przydatne, gdy podajesz prezentacje i chcesz pokazać swój kod w większym rozmiarze. Przełączyłem się na Xubuntu 12.04 i brakuje mi tych skrótów klawiaturowych.

Czy jest alternatywa, której mogę użyć? A jeśli nie, to czy mogę zdefiniować własny skrót, aby je zastąpić?

Aktualizacja: Z przyjemnością informujemy, że to pytanie jest teraz dyskusyjne w przypadku najnowszych wersji xfce4-terminal! Zobacz tutaj .

John Feminella
źródło

Odpowiedzi:

5

Zamiast polegać na Pythonie i brakujących modułach, jak w rozwiązaniu github Noah K. Tilton, opracowałem skrypt bash, który jest o krok bliżej do większej przenośności (przynajmniej w przypadku instalacji wykorzystujących najbardziej ogólne, domyślne ścieżki).

Może być konieczne dostosowanie skryptu, aby ustawić ścieżkę konfiguracji xfce, ulubioną czcionkę itp.

Tylko 2 pliki, upuszczone do folderu ~ / bin mojego domu, „Zoomin” i „Zoomout”. Nie poszedłem dalej niż wydawać krótkich poleceń, które mogę szybko wpisać, więc nie mam pojęcia, jak mogę skonfigurować te skrypty, aby reagowały TYLKO, gdy jestem w terminalu xfce4 - co oznacza, że Porzuciłem myślenie o tym, jak utworzyć skróty klawiszowe dla Ctrl+ -i Ctrl+, +ponieważ obecnie wiem tylko o globalnych powiązaniach klawiatury i nie chciałem zastępować tych kombinacji klawiszy, ponieważ inne aplikacje będą ich potrzebować (np. Przeglądarka internetowa, edytor tekstu).

Pomyślałem także o tym, by mieć „zoommin” i „zoommax”, aby w razie potrzeby przeskakiwać do moich najmniejszych i największych czcionek, zazwyczaj gdy potrzebuję zobaczyć mnóstwo tekstu VS, gdy muszę pokazać kolegom coś na ekranie. Te dwa skrypty pozostawię twojej wyobraźni na temat tworzenia: P

~ / bin / zoomin

#!/bin/bash
SIZE=`grep 'FontName' ~/.config/xfce4/terminal/terminalrc | cut -d' ' -f 2`
NEWSIZE=$((SIZE + 2))
REGEXPR='s/FontName.*/FontName=Monospace '$NEWSIZE'/g'
sed -i "$REGEXPR" ~/.config/xfce4/terminal/terminalrc

~ / bin / pomniejszenie

#!/bin/bash
SIZE=`grep 'FontName' ~/.config/xfce4/terminal/terminalrc | cut -d' ' -f 2`
NEWSIZE=$((SIZE - 2))
REGEXPR='s/FontName.*/FontName=Monospace '$NEWSIZE'/g'
sed -i "$REGEXPR" ~/.config/xfce4/terminal/terminalrc
starlocke
źródło
Nie jestem pewien, czy rozumiem, co rozumiesz przez „brakujące moduły” - mój skrypt python korzysta ze standardowej biblioteki. Myślę, że przenośność bash / python to podrzucenie. Jednak Twoja może być bardziej wydajna - kosztem pewnej czytelności.
g33kz0r
Doświadczyłem tego między innymi. Noah K był, z całą uczciwością przyznany, przeciwny poprawianiu jego skryptu, aby ułatwić życie * użytkownikom buntu. Po prostu przerobiłem to na coś bardziej uniwersalnego, całkowicie usuwając wymagania dotyczące Pythona. : 3
starlocke,
zgłosiłeś błąd XDG_CONFIG_PATH- ciąg, który nie pojawia się w moim skrypcie. Co? Zakładając, że masz na myśli XDG_CONFIG_HOME, które nie pojawiają się w moim scenariuszu, może chcesz sprawdzić superuser.com/questions/365847/... które zasadniczo mówi, że to zależy od użytkownika, aby ją zdefiniować. Nie jestem pewien, jakie były „inne rzeczy” :) Opinie mogą się różnić, ale myślę, że 1 sparametryzowany skrypt python jest trochę czystszy niż 2 skrypty bash.
g33kz0r
1
chodzi o krótką, czytelną zmianę tekstu, którą sugerowałbym perl, perl -pi -e 's/(FontName.*)(\d+)/$1.($2+2)/e' ~/.config/xfce4/terminal/terminalrczamiast bawić się w bash
Hachi
1
Fajnie, na tej podstawie stworzyłem trzy metody, które dodałem w moim pliku ~ / .bash_aliases: zi, zo i z, z których każdy przyjmuje jako pierwszy argument albo kroki do powiększenia (zi i zo), albo docelowy rozmiar czcionki (z) : gist.github.com/samuell/107a498821c88426fa5a . Tak więc, aby ustawić rozmiar tekstu na 12, zrobiłbym z 12, a żeby powiększyć w jednym kroku, zrobiłbym zi 1.
Samuel Lampa
4

Aktualizacja: od tego zatwierdzenia zmiana rozmiaru jest teraz obsługiwana przez Ctrl +i Ctrl -, co nieaktualne jest moje pytanie.

Pozostałe odpowiedzi w tym wątku są nadal cenne, jeśli używasz starszych wersji xfce4-terminal.

John Feminella
źródło
1
Na klawiaturze en_US potrzebujesz Ctrl+ Shift+, =aby powiększyć i Ctrl+, -aby zmniejszyć. Ani Ctrl+, =ani Ctrl+ Shift+ nie -będzie działać, podobnie jak klawiatura +i -, co jest zbyt złe.
Adam Katz
3

Skróty, o których wspomniałeś, dotyczą gnome-terminal, domyślnego terminala używanego przez gnome (a następnie przez standardowe Ubuntu). XFCE, które jest głównym środowiskiem Xubuntu, ma własną implementację terminala. Jednak, o ile mi wiadomo, w xfce4-terminal nie jest możliwa zmiana rozmiaru czcionki za pomocą skrótu (listę możliwych skrótów można zobaczyć po przejściu do Edycja-> Preferencje-> Skróty).

Jeśli polegasz na tej funkcji, możesz zainstalować gnome-terminal, ale ponieważ cały czas używania XFCE polega na tym, że nie wiąże się to z dość ciężkimi bibliotekami Gnome, może to być trochę nieproduktywne.

styczeń
źródło
Dziękuję za odpowiedź. Jakie to rozczarowujące! :(
John Feminella,
Cóż, XFCE ma być szczupły i szybki, więc naturalnie musieli zrezygnować z funkcji.
stycznia
@ Stycznia Myślę, że twoja odpowiedź sprzedaje to pytanie trochę krótko, proszę zobaczyć moją odpowiedź poniżej.
g33kz0r
@ g33kz0r nah, starlocke (zaakceptowana odpowiedź) stanowi już dobry przypadek.
styczeń
@ Stycznia, cóż, to zostało opublikowane po mojej odpowiedzi :)
g33kz0r
1

Jest to możliwe, choć nie przez właściwe xfce4, przy użyciu tego obejścia:

https://github.com/noah/xfce4-terminal-font

(wymaga Pythona).

Używam go w niesamowitym menedżerze okien, takim jak ten:

awful.key({ "Control", "Shift" }, "Up", function () awful.util.spawn(script_dir .. "/xfce4-terminal-font +", false)end),
awful.key({ "Control", "Shift" }, "Down", function () awful.util.spawn(script_dir .. "/xfce4-terminal-font -", false)end),

To trochę hack, ale działa.

g33kz0r
źródło
Ma to tę samą wadę, co odpowiedź @starlocke (który również wspomniał, że jest to rozwiązanie Noego): tworzy skrót menedżera okien, a nie skrót terminalowy. Ponieważ ctrl-shift-up lub ctrl-shift-down są dość powszechnymi kombinacjami klawiszy (nie wspominając o bardziej typowych ctrl + i ctrl - skróty używane do zmiany rozmiaru czcionki, na przykład w terminalu gnome), może to prowadzić do kolizji skrótów i / lub brak spójności.
styczeń
Wszystko prawda ... ale nie sądzę, żeby kolizja była aż tak wielka - jeśli się zderzy, po prostu zmień skrót ... Chciałbym też zauważyć, że OP nie poprosił o skrót terminalowy - zapytał po prostu, jak aby to zrobić - a twoja odpowiedź, że „nie można zmienić rozmiaru czcionki za pomocą skrótu w Xfce4-terminal” jest niedokładna.
g33kz0r
1

Podczas gdy pozostałe odpowiedzi tutaj wymagają stworzenia pewnego rodzaju „hackowania” przy użyciu niestandardowych skryptów, które mogą, ale nie muszą, pękać podczas aktualizacji systemu, faktyczna / inna odpowiedź została znaleziona w pytaniu StackOverflow tutaj:

Czy vim może powiększać i pomniejszać?

Przez użytkownika: Chenming Zhang

Edit > Preferences > Appearance

Zobaczysz opcję: Font

Która zawiera zarówno wybraną czcionkę, jak i rozmiar tekstu czcionki.

Wiem, że szukasz „skrótu”, ale wszystkie inne opcje wydają się wymagać wielu dostosowań, a wybranie tej trasy sprawi, że nie zepsujesz swojego terminalu żadnymi dostosowaniami.

Ta odpowiedź jest również opublikowana tutaj dla każdego, kto potrzebuje alternatywnej opcji do ctrl +-powiększania / zmniejszania.

tentative_pimple
źródło
0

Poniższy skrypt sprawdza, czy terminal Xfce4 jest uruchomiony. Jeśli nie jest, skrypt kończy działanie. Ten skrypt używa argumentów, script-name --inaby powiększyć lub script-name --outpomniejszyć. Będzie działał dla każdego typu czcionki. (Różne typy czcionek mają inną liczbę słów).

Nazwałem swój skrypt zoom-terminal i używam Ctrl Alt +dla terminal-zoom --ini Ctrl Alt -dla terminal-zoom --out.

#!/bin/bash

# Check if Xfce4 Terminal is running. If it is not, exit.
status=$(pgrep xfce4-terminal)

if [ -z "$status" ]; then
    notify-send "No Xfce4 Terminal session is open."
    exit 1
fi

# 1. Get the full line. 2. Get the entire line minus font size. 3. Get only font size. 
line=$(grep "FontName" ~/.config/xfce4/terminal/terminalrc)
font_name=$(echo "$line" | sed s/'\w*$'//)
font_size=$(echo "$line" | grep -oE '[^ ]+$')

# Increase or decrease font size. You might want to change this to increase and decrease by two.
if [ "$1" = "--in" ]; then
    new_size=$((font_size + 1))
elif [ "$1" = "--out" ]; then
    new_size=$((font_size - 1))
else
    notify-send "Argument options: --in --out"
    exit 1
fi

# Replace the line with the new font size.
action='s/'$font_name$font_size'/'$font_name$new_size'/'
sed -i "$action" ~/.config/xfce4/terminal/terminalrc

# Show the new current font being used.
notify-send -t 200 "$new_size pt font"
jbrock
źródło
0

Obecnie xfce-term nie oferuje skrótów powiększania. Rozważ Terminator, który jest lekki w zależności od zależności (w przeciwieństwie do Gnome-term) i oferuje powiększanie i pomniejszanie za pomocą CTRL + SHIFT + „+”

Sławomir
źródło
0

To stary wątek, ale był ciekawy, jak inni to zrobili. Używam i3-wm i napisałem ten skrypt, aby go używać

#!/bin/bash

TRC=~/.config/xfce4/terminal/terminalrc
OldLine=$(grep FontName $TRC)
FontSize=$(echo $OldLine |sed 's/FontName=.* \([[:digit:]]\+\)/\1/g')
OldFont=$(echo $OldLine | sed 's/\(FontName=.*\) [[:digit:]]\+/\1/g')

if [ "$1" == "in" ] 
    then
        FontSize=$((FontSize+1))
fi

if [ "$1" == "out" ]
    then
        FontSize=$((FontSize-1))
fi

if [ "$1" == "reset" ]
    then
        FontSize=11
fi

NewLine="$OldFont $FontSize"
sed -i "s/$OldLine/$NewLine/g" $TRC

Poprawiłem go, patrząc na scenariusz przez kogoś innego tutaj

#!/bin/bash

#Check if xfce4-terminal is running, If not exit.
Status=$(pgrep xfce4-terminal)
if [ -z "$Status" ] 
    then
        exit 1
fi

TRC=~/.config/xfce4/terminal/terminalrc
OldLine=$(grep FontName $TRC)
FontSize=$(echo $OldLine |sed 's/FontName=.* \([[:digit:]]\+\)/\1/g')
OldFont=$(echo $OldLine | sed 's/\(FontName=.*\) [[:digit:]]\+/\1/g')

if [ "$1" == "in" ] 
    then
        FontSize=$((FontSize+1))
fi

if [ "$1" == "out" ]
    then
        FontSize=$((FontSize-1))
fi

if [ "$1" == "reset" ]
    then
        FontSize=11
fi

NewLine="$OldFont $FontSize"
sed -i "s/$OldLine/$NewLine/g" $TRC
dman79
źródło