dvtm wprowadza koncepcję zarządzania oknami kafelkowymi, spopularyzowaną przez X11-menedżery okien podobne do WM do konsoli. Jako menedżer okien konsoli stara się ułatwić pracę z wieloma programami bazującymi na konsoli.
Aktualności
- dvtm-0.15 wydany (2016-01-09)
- dvtm-0.14 wydany (2015-02-19)
- dvtm-0.13 wydany (2014-11-15)
- dvtm-0.12 wydany (2014-07-05)
- dvtm-0.11released (2014-03-08)
- dvtm-0.10released (2013-12-28)
- dvtm-0.9released (2013-04-03)
- dvtm-0.8released (2012-08-01)
- dvtm-0.7released (2011-09-04)
- dvtm-0.6released (2010-10-08)
- dvtm-0.5.2released (2009-07-07)
- dvtm-0.5.1released (2009-02-08)
- dvtm-0.5released (2009-01-26)
- dvtm-0.4.1released (2008-05-10)
- dvtm-0.4released (2008-02-17)
- dvtm-0.3released (2008-01-12)
- dvtm-0.2released (2007-12-29)
- dvtm-0.1released (2007-12-21)
- dvtm-0.01 released (2007-12-08)
Pobierz
albo Pobierz najnowszy źródłowy tarball, skompiluj (będziesz potrzebował nagłówków curses) i zainstaluj go
$EDITOR config.mk && $EDITOR config.def.h && make && sudo make install
lub użyj jednej z dystrybucji dostarczonej przez binary packages.
dlaczego dvtm? Filozofia stojąca za
dvtm stara się stosować do philosophy.It próbuje zrobić jedną rzecz, dynamiczne zarządzanie oknami na konsoli, i zrobić to dobrze.
jako taki dvtm nie implementuje zarządzania sesjami, ale zamiast tego przekazuje to zadanie do osobnego narzędzia o nazwie abduco.
podobnie tryb kopiowania dvtm jest zaimplementowany przez przekierowanie bufora przewijania do zewnętrznego edytora i zapisywanie tylko tego, co edytor napisał stdout
. W związku z tym proces selekcji jest delegowany do edytoragdzie dostępne są zaawansowane funkcje, takie jak wyszukiwanie wyrażeń regularnych.
w rezultacie kod źródłowy dvtm jest stosunkowo mały(~4000 linii C),prosty i dlatego łatwy do zhakowania.
Quickstart
wszystkie skróty klawiszowe dvtm zaczynają się od wspólnego modyfikatora, który od nowon jest określany jako MOD
. Domyślnie MOD
jest ustawione na CTRL+g
jednak można to zmienić w czasie wykonywania za pomocą opcji linii poleceń -m
.Na przykład ustawienie MOD
na CTRL-b
jest realizowane przez uruchomieniedvtm -m ^b
.
okna
nowe okna są tworzone za pomocą MOD+c
i zamykane za pomocą MOD+x
.aby przełączać się między oknami, użyj MOD+j
i MOD+k
lub MOD+
, gdzie cyfra odpowiada numerowi okna wyświetlanemu w pasku tytułowym. Okna można zminimalizować i przywrócić za pomocą MOD+.
.Wejście można skierować do wszystkich widocznych okien naciskając MOD+a
,ponownie wykonując tę samą kombinację klawiszy przywraca normalne zachowanie.e. tylko aktualnie wybrane okno otrzyma dane wejściowe.
Układy
widoczne okna są ułożone według układu. Każdy układ składa się zstruktury ipowierzchni płytek. Zazwyczaj obszar Główny zajmuje największą część ekranu i jest przeznaczony dla obecnie najważniejszego okna. Rozmiar obszaru głównego można zmniejszyć odpowiednio o MOD+h
i powiększyć o MOD-l
. Okna można powiększyć do obszaru głównego za pomocą MOD+Enter
. Liczbę okien w obszarze głównym można zwiększyć i zmniejszyć za pomocą MOD+i
i MOD+d
.
domyślnie dvtm ma 4 różne układy, które można cyklinować przez MOD+Space
- pionowy stos: główny obszar po lewej stronie, inni klientyzłożony po prawej
- dolny stos: główny obszar w górnej połowie, inni klienci ułożeni poniżej
- siatka: każde okno otrzymuje równą część ekranu
- Pełny ekran: wyświetlane jest tylko wybrane okno i zajmuje cały dostępny obszar wyświetlania
MOD+m
dalsze układy są zawarte w źródłowym tarballu, ale wyłączone przezefault.
tagowanie
każde okno ma niepusty zestaw tagów powiązanych z nim. Widok zawiera wiele tagów. Bieżący widok obejmuje wszystkie okna, które są oznaczone aktualnie aktywnymi tagami. Następujące skróty klawiszowe są używane do manipulowania zestawami znaczników.
-
MOD-0
wyświetl wszystkie okna z dowolnym tagiem -
Mod-v-Tab
przełącza do wcześniej wybranych tagów -
MOD-v-
wyświetl wszystkie okna z tagiem nth -
Mod-V-
Dodaj/usuń wszystkie okna z tagiem NTH do/z widoku -
Mod-t-
zastosuj tag NTH do okna focused -
Mod-T-
Dodaj/usuń znacznik nth do/z okna focused
pasek stanu
dvtm może być poinstruowany, aby odczytywać i wyświetlać komunikaty o stanie z poziomu namedpipe. Jako przykład podano skryptdvtm-status
, który pokazuje aktualny czas.
Copymode
MOD+e
wysyła całą zawartość bufora przewijania do zewnętrznego edytora.To, co kiedykolwiek edytor napisze do stdout
, zostanie zapamiętane przez dvtm i canlater zostanie wklejony za pomocą MOD+p
.
aby to działało, edytor musi być użyteczny jako filtr i powinien używać stderr
dla swojego interfejsu użytkownika. Przykłady, w których tak jest, obejmują sandy(1)
i vis.
$ echo Hello World | vis - | cat
łaty
istnieje wiele łat out of tree, które dostosowują ustawienia dvtm:
- )
FAQ
funkcja odłączania / ponownego podłączania
dvtm nie ma wbudowanej obsługi sesji. Użyj abduco zamiast.
$ abduco -c dvtm-session
odłącz za pomocą CTRL-\
i później ponownie podłącz za pomocą
$ abduco -a dvtm-session
Kopiuj / Wklej nie działa pod X
jeśli masz włączoną obsługę myszy, co ma miejsce w przypadku domyślnych ustawień, musisz przytrzymać shift podczas zaznaczania i wstawiania tekstu. W przypadku, gdy nie podoba ci się to zachowanie, np. w wierszu poleceń -M
, wyłącz go w czasie wykonywania za pomocą MOD+M
lub zmodyfikuj config.def.h
, aby wyłączyć go całkowicie w czasie kompilacji. Nie będziesz już jednak w stanie wykonywać innych czynności myszy, takich jak wybieranie okien itp.
jak zmienić wiązania klawiszy?
konfiguracja dvtm odbywa się poprzez utworzenie niestandardowego config.h
i (ponownie)kompilację kodu źródłowego. Zobacz domyślny config.def.h
jako przykład, dostosowanie go do swoich preferencji powinno być proste.Zasadniczo definiujesz zestaw układów i kluczy, których będzie używał dvtm.Istnieje kilka wstępnie zdefiniowanych makr ułatwiających konfigurację.
Ostrzeżenie: terminal nie jest w pełni funkcjonalny
oznacza to, że nie zainstalowałeś opisu terminfo dvtm.info
, co można zrobić za pomocą tic -s dvtm.info
. Jeśli z jakiegoś powodu nie możesz zainstalować nowych opisów terminfo, Ustaw środowisko DVTM_TERM
zmienne NA znany terminal podczas uruchamianiadvtm
jak w
$ DVTM_TERM=rxvt dvtm
, to poinstruuje dvtm, aby używał wartości rxvt jako $TERM
w jego oknach.
jak ustawić tytuł okna?
tytuł okna może być zmieniony za pomocą rozszerzenia axtermkonterminal escape sequence
$ echo -ne "3]0;Your title here7"
Tak więc na przykład w bash
jeśli chcesz wyświetlić bieżący katalog roboczy w tytule okna, można to osiągnąć za pomocą następującej sekcji w plikach startowych.
# If this is an xterm set the title to [email protected]:dircase "$TERM" indvtm*|xterm*|rxvt*) PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}7"' ;;*) ;;esac
inne powłoki zapewniają podobną funkcjonalność, zsh jako przykład ma funkcję aprecmd, która może być użyta do osiągnięcia tego samego efektu.
coś jest nie tak z wyświetlanymi kolorami
upewnij się, że ustawiłeś $TERM
poprawnie, na przykład, jeśli chcesz mieć profile kolorów 256, prawdopodobnie musisz dołączyć -256color
do naszej zwykłej nazwy terminala. Również ze względu na ograniczenia ncurses bydefault można używać tylko 255 par kolorów jednocześnie. Jeśli potrzebujesz więcej niż 255 różnych par kolorów w tym samym czasie, musisz przebudować ncurses z
$ ./configure ... --enable-ext-colors
zauważ, że to zmienia ABI i dlatego ustawia SONAME biblioteki na 6 (tzn. musisz połączyć się z libncursesw.so.6
).
niektóre znaki są wyświetlane jak śmieci
upewnij się, że skompilowałeś dvtm z biblioteką klątw Unicode aware (w przypadku ncurses byłoby to libncursesw
). Upewnij się również, że Twoje ustawienia regionalne zawierają UTF-8.
klawiatura numeryczna nie działa z Putty
Wyłącz tryb klawiatury aplikacjiw konfiguracji Putty pod Terminal => Features => Disable application keypad mode
.
znaki Unicode nie dziaĹ ’ ajÄ … w Putty
musisz powiedzieÄ ‡ Putty, w ktĂłrym zakodowaniu sÄ … odbierane dane. Ustaw pole rozwijane pod Window => Translation
na UTF-8. Aby uzyskać odpowiednie znaki do rysowania linii, należy również ustawić zmienną środowiskową TERM na putty
lub putty-256color
.Jeśli to nadal nie pomoże, spróbuj uruchomić dvtm ze zmienną środowiskową związaną z ncurses set NCURSES_NO_UTF8_ACS=1
.
Development
zawsze możesz pobrać aktualną bazę kodu z repozytorium Gita znajdującego się na Github orSourcehut.