aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dvtm
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2015-10-07 03:11:54 +0200
committerSören Tempel <soeren+git@soeren-tempel.net>2015-10-07 03:14:34 +0200
commit0ea4495a8b3c35cc4efc15a78e826a3f5820aded (patch)
tree163051a699b30db3724dc15027ff37d9cbba9561 /testing/dvtm
parent2f231eae98e5a92db81334c7dceddbf696a6c052 (diff)
downloadaports-0ea4495a8b3c35cc4efc15a78e826a3f5820aded.tar.bz2
aports-0ea4495a8b3c35cc4efc15a78e826a3f5820aded.tar.xz
testing/dvtm: upgrade to 0.14
Diffstat (limited to 'testing/dvtm')
-rw-r--r--testing/dvtm/APKBUILD53
-rw-r--r--testing/dvtm/config.h186
2 files changed, 148 insertions, 91 deletions
diff --git a/testing/dvtm/APKBUILD b/testing/dvtm/APKBUILD
index 48f589ba86..64a8a88970 100644
--- a/testing/dvtm/APKBUILD
+++ b/testing/dvtm/APKBUILD
@@ -1,46 +1,37 @@
-# Maintainer:
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
-
+# Maintainer:
pkgname=dvtm
-pkgver=0.9
+pkgver=0.14
pkgrel=0
-pkgdesc='Dynamic virtual terminal manager'
-arch='all'
-url='http://www.brain-dump.org/projects/dvtm/'
-license='MIT'
-makedepends='ncurses-dev'
+pkgdesc="Dynamic virtual terminal manager"
+arch="all"
+url="http://www.brain-dump.org/projects/dvtm/"
+license="MIT"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
source="http://www.brain-dump.org/projects/${pkgname}/${pkgname}-${pkgver}.tar.gz
- config.h
- 0001-Makefile-respect-DESTDIR-in-tic-invocation.patch"
+ config.h"
+_builddir="$srcdir"/$pkgname-$pkgver
prepare() {
- cd "${srcdir}"/${pkgname}-${pkgver}
- patch -Np1 -i \
- "$srcdir"/0001-Makefile-respect-DESTDIR-in-tic-invocation.patch \
- || return 1
-
- cp "${srcdir}"/config.h .
- sed -i 's/CFLAGS =/CFLAGS +=/' config.mk || return 1
+ cd "$_builddir"
+ cp "$srcdir"/config.h .
}
build() {
- cd "${srcdir}"/${pkgname}-${pkgver}
+ cd "$_builddir"
make || return 1
}
package() {
- cd "${srcdir}"/${pkgname}-${pkgver}
-
+ cd "$_builddir"
make PREFIX=/usr DESTDIR="${pkgdir}" install || return 1
- install -Dm0644 LICENSE \
- "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE || return 1
}
-md5sums="7de1103abb0ca410f7250cf89f019a38 dvtm-0.9.tar.gz
-41107e5e84a8572f70d6cb111b4e07f8 config.h
-c85d8265ced45d014a7d3f05134bf6a1 0001-Makefile-respect-DESTDIR-in-tic-invocation.patch"
-sha256sums="c751fb5778ecd24465c0db0e5ab9ac0a3e0dd61ab006708d6168fd609e81aa98 dvtm-0.9.tar.gz
-df4b7e544ebb65d5da87f28388c175ea11a48d8df657996372a658be651951df config.h
-0eb584e1f66ebc264f31364da9e54e425d0cbd95f93cbbf1ec34cfc1b37161a6 0001-Makefile-respect-DESTDIR-in-tic-invocation.patch"
-sha512sums="33c6f32510b17c0dcb3c8a216fd8c4cde14d6874495a9e0992c2104fda2ee7edb9a40de25c2efc84337b6f61858c1bf3e0e4ed5d77ab4d2db01ddfa02c1d4eaa dvtm-0.9.tar.gz
-34a610311a9716b98fe197f82b14c1cd38f69ee0b562f23a987e910eaef07bf57963495f5ce15922c5e4568bc84f875c9be239d6821fb6dd8b08cdeb3aaa472b config.h
-31dce735c16f6750991f7d7ca8735c5407923253c489fe6f2bda739fd98771f571592e102b41a47ca1633dbea118b757cf4ecc285c517c4a869e6d0e4bed8329 0001-Makefile-respect-DESTDIR-in-tic-invocation.patch"
+
+md5sums="44ec5176b1996fdffd97cabe9a35ea0c dvtm-0.14.tar.gz
+6236b8871baef14f55fd75b4aaddc70e config.h"
+sha256sums="8a9bb341f8a4c578b839e22d9a707f053a27ae6df15158e16f4fee787e43747a dvtm-0.14.tar.gz
+81a84c597a811191026b92b73fd44e8410d1759e244e4b259010a78c5e4c0d91 config.h"
+sha512sums="d47f55b4ce47582f665ac5b5d86bb9137722f65b157bdd80aaaf45a2cd8d783a3b0718886c7a7ea1d900762359316c2d76816460dac03484e122d43c64f57dd6 dvtm-0.14.tar.gz
+9bd5a38a95421b80b526209d1ada8805d4a2b510c0e9532917e8a91cbf1e9ae633f5b52c020f091b991dafecf3279fbd1fe49565552e469aeb2ee777ce563e7b config.h"
diff --git a/testing/dvtm/config.h b/testing/dvtm/config.h
index 48367695ab..b0a68d407d 100644
--- a/testing/dvtm/config.h
+++ b/testing/dvtm/config.h
@@ -10,27 +10,48 @@
* A_PROTECT Protected mode
* A_INVIS Invisible or blank mode
*/
-#define BLUE (COLORS==256 ? 68 : COLOR_BLUE)
+
+enum {
+ DEFAULT,
+ BLUE,
+};
+
+static Color colors[] = {
+ [DEFAULT] = { .fg = -1, .bg = -1, .fg256 = -1, .bg256 = -1, },
+ [BLUE] = { .fg = COLOR_BLUE, .bg = -1, .fg256 = 68, .bg256 = -1, },
+};
+
+#define COLOR(c) COLOR_PAIR(colors[c].pair)
/* curses attributes for the currently focused window */
-#define SELECTED_ATTR COLOR(BLUE, -1) | A_NORMAL
+#define SELECTED_ATTR (COLOR(BLUE) | A_NORMAL)
/* curses attributes for normal (not selected) windows */
-#define NORMAL_ATTR COLOR(-1, -1) | A_NORMAL
+#define NORMAL_ATTR (COLOR(DEFAULT) | A_NORMAL)
+/* curses attributes for a window with pending urgent flag */
+#define URGENT_ATTR NORMAL_ATTR
/* curses attributes for the status bar */
-#define BAR_ATTR COLOR(BLUE, -1) | A_NORMAL
+#define BAR_ATTR (COLOR(BLUE) | A_NORMAL)
/* status bar (command line option -s) position */
-#define BAR_POS BAR_TOP /* BAR_BOTTOM, BAR_OFF */
-/* determines whether the statusbar text should be right or left aligned */
-#define BAR_ALIGN ALIGN_RIGHT
-/* separator between window title and window number */
-#define SEPARATOR " | "
-/* printf format string for the window title, first %s
- * is replaced by the title, second %s is replaced by
- * the SEPARATOR, %d stands for the window number */
-#define TITLE "[%s%s#%d]"
+#define BAR_POS BAR_TOP /* BAR_BOTTOM, BAR_OFF */
+/* whether status bar should be hidden if only one client exists */
+#define BAR_AUTOHIDE true
/* master width factor [0.1 .. 0.9] */
#define MFACT 0.5
+/* number of clients in master area */
+#define NMASTER 1
/* scroll back buffer size in lines */
#define SCROLL_HISTORY 500
+/* printf format string for the tag in the status bar */
+#define TAG_SYMBOL "[%s]"
+/* curses attributes for the currently selected tags */
+#define TAG_SEL (COLOR(BLUE) | A_BOLD)
+/* curses attributes for not selected tags which contain no windows */
+#define TAG_NORMAL (COLOR(DEFAULT) | A_NORMAL)
+/* curses attributes for not selected tags which contain windows */
+#define TAG_OCCUPIED (COLOR(BLUE) | A_NORMAL)
+/* curses attributes for not selected tags which with urgent windows */
+#define TAG_URGENT (COLOR(BLUE) | A_NORMAL | A_BLINK)
+
+const char tags[][8] = { "1", "2", "3", "4", "5" };
#include "tile.c"
#include "grid.c"
@@ -45,58 +66,88 @@ static Layout layouts[] = {
{ "[ ]", fullscreen },
};
-#define MOD CTRL('g')
+#define MOD CTRL('g')
/* you can at most specifiy MAX_ARGS (3) number of arguments */
-static Key keys[] = {
- { MOD, 'c', { create, { NULL } } },
- { MOD, 'C', { create, { NULL, NULL, "$CWD" } } },
- { MOD, 'x', { killclient, { NULL } } },
- { MOD, 'j', { focusnext, { NULL } } },
- { MOD, 'u', { focusnextnm, { NULL } } },
- { MOD, 'i', { focusprevnm, { NULL } } },
- { MOD, 'k', { focusprev, { NULL } } },
- { MOD, 't', { setlayout, { "[]=" } } },
- { MOD, 'g', { setlayout, { "+++" } } },
- { MOD, 'b', { setlayout, { "TTT" } } },
- { MOD, 'm', { setlayout, { "[ ]" } } },
- { MOD, ' ', { setlayout, { NULL } } },
- { MOD, 'h', { setmfact, { "-0.05" } } },
- { MOD, 'l', { setmfact, { "+0.05" } } },
- { MOD, '.', { toggleminimize, { NULL } } },
- { MOD, 's', { togglebar, { NULL } } },
- { MOD, 'M', { togglemouse, { NULL } } },
- { MOD, '\n', { zoom , { NULL } } },
- { MOD, '1', { focusn, { "1" } } },
- { MOD, '2', { focusn, { "2" } } },
- { MOD, '3', { focusn, { "3" } } },
- { MOD, '4', { focusn, { "4" } } },
- { MOD, '5', { focusn, { "5" } } },
- { MOD, '6', { focusn, { "6" } } },
- { MOD, '7', { focusn, { "7" } } },
- { MOD, '8', { focusn, { "8" } } },
- { MOD, '9', { focusn, { "9" } } },
- { MOD, 'q', { quit, { NULL } } },
- { MOD, 'G', { escapekey, { NULL } } },
- { MOD, 'a', { togglerunall, { NULL } } },
- { MOD, 'r', { redraw, { NULL } } },
- { MOD, 'X', { lock, { NULL } } },
- { MOD, 'B', { togglebell, { NULL } } },
- { MOD, 'v', { copymode, { NULL } } },
- { MOD, '/', { copymode, { "/" } } },
- { MOD, '?', { copymode, { "?" } } },
- { MOD, 'p', { paste, { NULL } } },
- { MOD, KEY_PPAGE, { scrollback, { "-1" } } },
- { MOD, KEY_NPAGE, { scrollback, { "1" } } },
- { MOD, KEY_F(1), { create, { "man dvtm", "dvtm help" } } },
+static KeyBinding bindings[] = {
+ { { MOD, 'c', }, { create, { NULL } } },
+ { { MOD, 'C', }, { create, { NULL, NULL, "$CWD" } } },
+ { { MOD, 'x', }, { killclient, { NULL } } },
+ { { MOD, 'j', }, { focusnext, { NULL } } },
+ { { MOD, 'J', }, { focusnextnm, { NULL } } },
+ { { MOD, 'K', }, { focusprevnm, { NULL } } },
+ { { MOD, 'k', }, { focusprev, { NULL } } },
+ { { MOD, 'f', }, { setlayout, { "[]=" } } },
+ { { MOD, 'g', }, { setlayout, { "+++" } } },
+ { { MOD, 'b', }, { setlayout, { "TTT" } } },
+ { { MOD, 'm', }, { setlayout, { "[ ]" } } },
+ { { MOD, ' ', }, { setlayout, { NULL } } },
+ { { MOD, 'i', }, { incnmaster, { "+1" } } },
+ { { MOD, 'd', }, { incnmaster, { "-1" } } },
+ { { MOD, 'h', }, { setmfact, { "-0.05" } } },
+ { { MOD, 'l', }, { setmfact, { "+0.05" } } },
+ { { MOD, '.', }, { toggleminimize, { NULL } } },
+ { { MOD, 's', }, { togglebar, { NULL } } },
+ { { MOD, 'S', }, { togglebarpos, { NULL } } },
+ { { MOD, 'M', }, { togglemouse, { NULL } } },
+ { { MOD, '\n', }, { zoom , { NULL } } },
+ { { MOD, '\r', }, { zoom , { NULL } } },
+ { { MOD, '1', }, { focusn, { "1" } } },
+ { { MOD, '2', }, { focusn, { "2" } } },
+ { { MOD, '3', }, { focusn, { "3" } } },
+ { { MOD, '4', }, { focusn, { "4" } } },
+ { { MOD, '5', }, { focusn, { "5" } } },
+ { { MOD, '6', }, { focusn, { "6" } } },
+ { { MOD, '7', }, { focusn, { "7" } } },
+ { { MOD, '8', }, { focusn, { "8" } } },
+ { { MOD, '9', }, { focusn, { "9" } } },
+ { { MOD, '\t', }, { focuslast, { NULL } } },
+ { { MOD, 'q', }, { quit, { NULL } } },
+ { { MOD, 'a', }, { togglerunall, { NULL } } },
+ { { MOD, CTRL('L'), }, { redraw, { NULL } } },
+ { { MOD, 'r', }, { redraw, { NULL } } },
+ { { MOD, 'e', }, { copymode, { NULL } } },
+ { { MOD, '/', }, { copymode, { "/" } } },
+ { { MOD, 'p', }, { paste, { NULL } } },
+ { { MOD, KEY_PPAGE, }, { scrollback, { "-1" } } },
+ { { MOD, KEY_NPAGE, }, { scrollback, { "1" } } },
+ { { MOD, '?', }, { create, { "man dvtm", "dvtm help" } } },
+ { { MOD, MOD, }, { send, { (const char []){MOD, 0} } } },
+ { { KEY_SPREVIOUS, }, { scrollback, { "-1" } } },
+ { { KEY_SNEXT, }, { scrollback, { "1" } } },
+ { { MOD, '0', }, { view, { NULL } } },
+ { { MOD, KEY_F(1), }, { view, { tags[0] } } },
+ { { MOD, KEY_F(2), }, { view, { tags[1] } } },
+ { { MOD, KEY_F(3), }, { view, { tags[2] } } },
+ { { MOD, KEY_F(4), }, { view, { tags[3] } } },
+ { { MOD, KEY_F(5), }, { view, { tags[4] } } },
+ { { MOD, 'v', '0' }, { view, { NULL } } },
+ { { MOD, 'v', '1' }, { view, { tags[0] } } },
+ { { MOD, 'v', '2' }, { view, { tags[1] } } },
+ { { MOD, 'v', '3' }, { view, { tags[2] } } },
+ { { MOD, 'v', '4' }, { view, { tags[3] } } },
+ { { MOD, 'v', '5' }, { view, { tags[4] } } },
+ { { MOD, 'v', '\t', }, { viewprevtag, { NULL } } },
+ { { MOD, 't', '0' }, { tag, { NULL } } },
+ { { MOD, 't', '1' }, { tag, { tags[0] } } },
+ { { MOD, 't', '2' }, { tag, { tags[1] } } },
+ { { MOD, 't', '3' }, { tag, { tags[2] } } },
+ { { MOD, 't', '4' }, { tag, { tags[3] } } },
+ { { MOD, 't', '5' }, { tag, { tags[4] } } },
+ { { MOD, 'V', '1' }, { toggleview, { tags[0] } } },
+ { { MOD, 'V', '2' }, { toggleview, { tags[1] } } },
+ { { MOD, 'V', '3' }, { toggleview, { tags[2] } } },
+ { { MOD, 'V', '4' }, { toggleview, { tags[3] } } },
+ { { MOD, 'V', '5' }, { toggleview, { tags[4] } } },
+ { { MOD, 'T', '1' }, { toggletag, { tags[0] } } },
+ { { MOD, 'T', '2' }, { toggletag, { tags[1] } } },
+ { { MOD, 'T', '3' }, { toggletag, { tags[2] } } },
+ { { MOD, 'T', '4' }, { toggletag, { tags[3] } } },
+ { { MOD, 'T', '5' }, { toggletag, { tags[4] } } },
};
static const ColorRule colorrules[] = {
- { "", A_NORMAL, -1, -1 }, /* default */
-#if 0
- /* title attrs fgcolor bgcolor */
- { "ssh", A_NORMAL, COLOR_BLACK, 224 },
-#endif
+ { "", A_NORMAL, &colors[DEFAULT] }, /* default */
};
/* possible values for the mouse buttons are listed below:
@@ -155,3 +206,18 @@ static Action actions[] = {
static char const * const keytable[] = {
/* add your custom key escape sequences */
};
+
+/* editor to use for copy mode. If neither of DVTM_EDITOR, EDITOR and PAGER is
+ * set the first entry is chosen. Otherwise the array is consulted for supported
+ * options. A %d in argv is replaced by the line number at which the file should
+ * be opened. If filter is true the editor is expected to work even if stdout is
+ * redirected (i.e. not a terminal).
+ */
+static Editor editors[] = {
+ { .name = "vis", .argv = { "vis", "+%d", "-", NULL }, .filter = true },
+ { .name = "sandy", .argv = { "sandy", "-d", "-", NULL }, .filter = true },
+ { .name = "dvtm-editor", .argv = { "dvtm-editor", "-", NULL }, .filter = true },
+ { .name = "vim", .argv = { "vim", "+%d", "-", NULL }, .filter = false },
+ { .name = "less", .argv = { "less", "+%d", NULL }, .filter = false },
+ { .name = "more", .argv = { "more", "+%d", NULL }, .filter = false },
+};