DVTM(1)

πŸ’– DVTM β€” the dynamic virtual terminal manager πŸ’–

okay bestie, sit DOWN, because we're talking about dvtm, the dynamic virtual terminal manager, and she is that girl. 🌸


✨ SYNOPSIS ✨

dvtm [-v] [-M] [-m modifier] [-d delay] [-h lines] [-t title]
     [-s status-fifo] [-c cmd-fifo] [command ...]

πŸ¦‹ DESCRIPTION πŸ¦‹

dvtm is a dynamic tiling window manager for the console. yes, the console. no X, no wayland, just you and your terminal being iconic together. πŸ’…

as a console window manager she literally just tries to make it easy to work with multiple console based applications. that's the whole assignment. and she ate.


🌈 OPTIONS 🌈

  • -v β€” print version info to standard output and then dip. bye! πŸ‘‹
  • -M β€” toggle default mouse grabbing upon startup. use this one to let normal mouse operation happen under X. (she's being polite, letting X have the mouse back)
  • -m modifier β€” set the command modifier at runtime. you know, the magic key. πŸͺ„
  • -d delay β€” set the delay ncurses waits before deciding whether a character that might be part of an escape sequence is actually part of an escape sequence. yes it's a whole existential crisis for one character and yes it's real.
  • -h lines β€” set the scrollback history buffer size at runtime. so many lines. so much history. πŸ“œ
  • -t title β€” set a static terminal title and don't change it to the one of the currently focused window. she's committing to a look. πŸ’…
  • -s status-fifo β€” open or create the named pipe status-fifo, read its content and display it in the statusbar. see the dvtm-status(1) script for a usage example. πŸŽ€
  • -c cmd-fifo β€” open or create the named pipe cmd-fifo and look for commands to execute which were defined in config.h.
  • command ... β€” execute command(s), each one in a separate window. go off, multiple commands. πŸ”₯

🫢 USAGE 🫢

⌨️ Keyboard commands ⌨️

every single keybinding begins with Mod, which defaults to ^g but can be changed in config.h or with the -m command line option. know her. respect her. ^g is the moment. ✨

  • Mod-c β€” create a new shell window. baby window!! 🐣
  • Mod-C β€” create a new shell window using the current working directory of the focused window. she's a copycat and we love her for it.
  • Mod-x-x β€” close the focused window. rip boo you were doing great 🫑
  • Mod-l β€” increases the master area width about 5% (all except grid and fullscreen layout).
  • Mod-h β€” decreases the master area width about 5% (all except grid and fullscreen layout).
  • Mod-i β€” increase the number of windows displayed in the master area.
  • Mod-d β€” decrease the number of windows displayed in the master area.
  • Mod-j β€” focus next window.
  • Mod-k β€” focus previous window.
  • Mod-J β€” focus window below.
  • Mod-K β€” focus window above.
  • Mod-H β€” focus window to the left.
  • Mod-L β€” focus window to the right.
  • Mod-[0..9] β€” focus the [0..9]-th window.
  • Mod-Tab β€” focus previously selected window. take me back to where we were πŸ₯Ί
  • Mod-. β€” toggle minimization of the current window. she's shy now.
  • Mod-m β€” maximize current window (change to fullscreen layout). main character energy, activated. πŸ‘‘
  • Shift-PageUp / Mod-PageUp β€” scroll up.
  • Shift-PageDown / Mod-PageDown β€” scroll down.
  • Mod-Space β€” toggle between defined layouts (affects all windows). everybody moves together, no cap.
  • Mod-Enter β€” zooms/cycles current window to/from the master area.
  • Mod-f β€” change to vertical stack tiling layout.
  • Mod-b β€” change to bottom stack tiling layout.
  • Mod-g β€” change to grid layout.
  • Mod-s β€” show/hide the status bar.
  • Mod-S β€” toggle position of the status bar between top and bottom. she's indecisive but it's cute.
  • Mod-r / Mod-^L β€” redraw the whole screen.
  • Mod-a β€” toggle keyboard multiplexing mode. if activated, keypresses are sent to all visible windows. chaotic. iconic. everyone hears you at once.
  • Mod-M β€” toggle dvtm mouse grabbing.
  • Mod-e β€” enter copy mode (there's a whole section below, go read it bestie).
  • Mod-/ β€” enter copy mode and start searching forward (assumes a vi-like editor).
  • Mod-p β€” paste last copied text from copy mode at current cursor position.
  • Mod-? β€” show this manual page. hi, you're here, hello. πŸ™ˆ
  • Mod-Mod β€” send the Mod key.
  • Mod-F[1..n] / Mod-v-[1..n] β€” view all windows with n-th tag.
  • Mod-0 β€” view all windows with any tag.
  • Mod-v-Tab β€” toggles to the previously selected tags.
  • Mod-V-[1..n] β€” add/remove all windows with nth tag to/from the view.
  • Mod-t-[1..n] β€” apply nth tag to the focused window.
  • Mod-T-[1..n] β€” add/remove nth tag to/from the focused window.
  • Mod-q-q β€” quit dvtm. it's over bestie, log off, hydrate πŸ’œ

πŸ–±οΈ Mouse commands πŸ–±οΈ

by default dvtm captures mouse events to provide the actions listed below. unfortunately this interferes with the standard X copy and paste mechanism 😭. to work around this you need to hold down Shift while selecting or pasting text. alternatively you can:

  • disable mouse support at compile time, or
  • start dvtm with the -M flag, or
  • toggle mouse support during runtime with Mod-M.
  • Button1 click β€” focus window.
  • Button1 double click β€” focus window and toggle maximization. double tap, main character.
  • Button2 click β€” zoom/cycle current window to/from the master area.
  • Button3 click β€” toggle minimization of the current window.

πŸŽ€ Copy mode πŸŽ€

copy mode gives easy access to past output by piping it to dvtm-editor(1) and opening an editor. what the editor writes will be stored in an internal register and can be pasted into other clients (via Mod-p). it's giving clipboard, but make it terminal. πŸ’–


🌸 ENVIRONMENT VARIABLES 🌸

  • DVTM β€” each process spawned by dvtm will have this variable set to the dvtm version it is running under.
  • DVTM_WINDOW_ID β€” each process also has access to its constant and unique window id. everybody gets an id, nobody is anonymous here. πŸͺͺ
  • DVTM_CMD_FIFO β€” if the -c command line argument was specified upon dvtm startup, this variable will be set to the file name of the named pipe. thus allowing the process to send commands back to dvtm. it's a two-way street, a situationship with a pipe. πŸ’Œ
  • DVTM_TERM β€” by default dvtm uses its own terminfo file and therefore sets TERM=dvtm within the client windows. this can be overridden by setting the DVTM_TERM environment variable to a valid terminal name before launching dvtm.
  • DVTM_EDITOR β€” when entering the copymode dvtm pipes the whole scroll back buffer to dvtm-editor(1) which opens the content in DVTM_EDITOR, with fallbacks to VISUAL, EDITOR and vi(1). config.h is used instead. (yep, that's exactly what the manpage says, no editing from me, periodt.)

⭐ EXAMPLE ⭐

see the dvtm-status(1) script as an example of how to display text in the status bar.


🧚 FILES 🧚

dvtm is customized by creating a custom config.h and (re)compiling the source code. this keeps it fast, secure and simple. no config file drama, no runtime parsing, just vibes and a compiler. 🌈


πŸ‘‘ SEE ALSO πŸ‘‘

abduco(1), dvtm-status(1)


πŸ’œ AUTHOR πŸ’œ

dvtm is written Marc AndrΓ© Tanner <mat at brain-dump.org>


and that's the whole page bestie!! every flag, every keybinding, every env var, every single detail, all accounted for. no cap. 🫢

okay so the versioning tea: this is dvtm version 0.15+40.g311a8c0-1build1, dated December 27, 2016 β€” yes she's a vintage icon, an elder stateswoman, and she still slays. mwah. πŸ’‹βœ¨πŸŽ€

πŸ“¦ where this page comes from