dvtm – dynamic virtual terminal manager

dvtm bringer konceptet om flisebelægning vinduesstyring, populariseret af 11-vinduesadministratorer som f.eks. Som konsolvinduemanager forsøger den at gøre det nemt at arbejde med flere konsolbaserede programmer.

abduco+dvtm demo

nyheder

  • dvtm-0.15 udgivet (2016-01-09)
  • dvtm-0.14 udgivet (2015-02-19)
  • dvtm-0.13 udgivet (2014-11-15)
  • dvtm-0.12 udgivet (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.1udgivet (2007-12-21)
  • dvtm-0.01 udgivet (2007-12-08)

Hent

enten hente den nyeste kilde tarball,kompilere (du skal bruge forbandelser overskrifter) og installere det

$EDITOR config.mk && $EDITOR config.def.h && make && sudo make install

eller bruge en af de distributionerbinære pakker.

hvorfor dvtm? Filosofien bag

dvtm stræber efter at overholde Uniks philosophy.It forsøger at gøre en ting, dynamisk vinduesstyring på konsollen,og at gøre det godt.

som sådan implementerer dvtm ikke sessionsstyring, men i stedet fordelegerer denne opgave til et separat værktøj kaldetabduco.

tilsvarende implementeres dvtms kopitilstand ved at føre scroll back buffercontent til en ekstern editor og kun gemme, hvad editoren skriver til stdout. Derfor er udvælgelsesprocessen delegeret til redaktionenhvor kraftfulde funktioner som regulær udtrykssøgning er tilgængelige.

som et resultat er dvtms kildekode relativt lille(~4000 linjer C),enkel og derfor let at hacke på.

Hurtigstart

alle dvtm-tastebindinger starter med en fælles modifikator, som fra nu af refereres til som MOD. Som standard er MOD indstillet til CTRL+g dette kan dog ændres ved runttime med kommandolinjeindstillingen -m.For eksempel opnås indstilling MOD til CTRL-bved at startedvtm -m ^b.

vinduer

nye vinduer oprettes med MOD+cog lukkes med MOD+x. for at skifte mellem vinduerne skal du bruge MOD+j og MOD+keller MOD+, hvor cifferet svarer til det vinduesnummer, der visesi titellinjen. Vinduer kan minimeres og gendannes med MOD+..Input kan rettes til alle synlige vindue ved at trykke på MOD+a, udstede den samme tastekombination igen gendanner normal behaviouri.e. kun det aktuelt fokuserede vindue modtager input.

Layouts

synlige vinduer er arrangeret af et layout. Hvert layout består af amaster og en flise område. Typisk er masterområdet det størsteen del af skærmen og er beregnet til den aktuelt vigtigstevindue. Størrelsen på masterområdet kan krympes med henholdsvis MOD+h og forstørres med MOD-l. Vinduer kan indrettes i masterområdet med MOD+Enter. Antallet af vinduer imaster område kan øges og formindskes med MOD+i og MOD+d.

som standard leveres dvtm med 4 forskellige layouts, som kan cykles igennem via MOD+Space

  • lodret stak: masterområde i venstre halvdel, andre klienterstacket til højre
  • bundstabel: masterområde i øverste halvdel, andre klienter stablet under
  • gitter: hvert vindue får en lige stor del af skærmen
  • fuldskærm: kun det valgte vindue vises og optager hele det tilgængelige visningsområde MOD+m

yderligere layouts er inkluderet i kilden tarball men deaktiveret bydefault.

Tagging

hvert vindue har et ikke tomt sæt tags tilknyttet det. En visningbestår af en række tags. Den aktuelle visning inkluderer alle vinduersom er tagget med de aktuelt aktive tags. Følgende nøglebindinger bruges til at manipulere tagsets.

  • MOD-0 se alle vinduer med ethvert tag
  • Mod-v-Tab skifter til de tidligere valgte tags
  • MOD-v- se alle vinduer med nth tag
  • Mod-V- Tilføj/fjern alle vinduer med nth tag til/fra visningen
  • Mod-t- Anvend nth tag til fokuseret vindue
  • Mod-T- Tilføj/fjern nth tag til/fra fokuseret vindue

statusbar

dvtm kan instrueres i at læse og vise statusmeddelelser fra en namedpipe. Som et eksempeldvtm-status scriptis forudsat som viser den aktuelle tid.

Copymode

MOD+e rør hele scroll buffer indhold til en ekstern editor.Hvad nogensinde redaktøren skriver til stdout huskes af dvtm og canlater indsættes med MOD+p.

for at dette skal fungere, skal editoren være anvendelig som et filterog skal bruge stderr til brugergrænsefladen. Eksempler, hvor dette er tilfældet, omfatter sandy(1) og vis.

$ echo Hello World | vis - | cat

Patches

der findes en række ud af træ patches, som tilpasser dvtm ‘ adfærd:

  • pertag (se også den tilsvarendemailliste post)

ofte stillede spørgsmål

Afmonter / genmonter funktionalitet

dvtm har ikke indbygget sessionssupport. Brugabduco i stedet.

$ abduco -c dvtm-session

Fjern ved hjælp afCTRL-\ og senere genmonter med

$ abduco -a dvtm-session

Kopier / Indsæt fungerer ikke under

hvis du har musesupport aktiveret, hvilket er tilfældet medstandardindstillinger, skal du holde Skift nede, mens du vælgerog indsætte tekst. Hvis du heller ikke kan lide denne adfærdkør dvtm med kommandolinjeargumentet -M, deaktiver det ved kørsel med MOD+M eller rediger config.def.h for at deaktivere det heltpå kompileringstid. Du vil dog ikke længere være i stand til at udføreandre musehandlinger som at vælge vinduer osv.

hvordan ændres nøglebindingerne?

konfigurationen af dvtm udføres ved at oprette en brugerdefineret config.h og (gen)kompilere kildekoden. Se standard config.def.hsom et eksempel skal det være ligetil at tilpasse det til dine præferencer.Du definerer dybest set et sæt layout og nøgler, som dvtm vil bruge.Der er nogle foruddefinerede makroer for at lette konfigurationen.

advarsel: terminal er ikke fuldt funktionel

dette betyder, at du ikke har installeret dvtm.info terminfo-beskrivelsenhvilket kan gøres med tic -s dvtm.info. Hvis du af en eller anden grund ikke kan installere nye terminfo-beskrivelser, skal du indstille DVTM_TERM environmentvariable til en kendt terminal, når du starter dvtm som i

$ DVTM_TERM=rxvt dvtm

dette vil instruere dvtm om at bruge rksvt som $TERM værdi inden for dens vinduer.

Sådan indstilles vinduetitlen?

vinduetitlen kan ændres ved hjælp af akseterm-udvidelseterminal escape-sekvens

$ echo -ne "3]0;Your title here7"

så for eksempel i bash hvis du vil vise den aktuelle fungerende mappe i vinduetitlen, kan dette opnås ved hjælp af det følgende afsnit i dine startfiler.

# 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

andre skaller giver lignende funktionalitet, SSH som et eksempel har aprecmd funktionsom kan bruges til at opnå den samme effekt.

der er noget galt med de viste farver

sørg for, at du har indstillet $TERM korrekt, hvis du f.eks. vil bruge 256 farveprofiler, skal du sandsynligvis tilføje -256color til dit almindelige terminalnavn. Også på grund af begrænsninger af ncurses vedstandard kan du kun bruge 255 farvepar samtidigt. Hvis du har brug for mere end 255 forskellige farvepar på samme tid, så er du nødt til at genopbygge ncurses med

$ ./configure ... --enable-ext-colors

Bemærk, at dette ændrer ABI og derfor sætter SONAME of thelibrary til 6 (dvs.du skal linke mod libncursesw.so.6).

nogle tegn vises som skrald

sørg for, at du kompilerede dvtm mod et unicode-bevidst forbandelsesbibliotek(i tilfælde af ncurses ville dette være libncursesw). Sørg også for, at dine lokale indstillinger indeholder UTF-8.

det numeriske tastatur fungerer ikke med Putty

Deaktiver applikationstastaturtilstandi Putty-konfigurationen under Terminal => Features => Disable application keypad mode.

Unicode-tegn fungerer ikke inden for Putty

du skal fortælle Putty, hvorkodning af tegnde modtagne data er. Indstil rullelisten under Window => Translation til UTF-8. For at få ordentlige stregtegningstegn du proabablyogså ønsker at indstille udtrykket miljøvariabel til putty eller putty-256color.Hvis det stadig ikke gør tricket, så prøv at køre dvtm medfølgende ncurses relateret miljøvariabel sæt NCURSES_NO_UTF8_ACS=1.

udvikling

du kan altid hente den aktuelle kodebase fra git-repositorenplaceret på Github orSourcehut.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.