summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jon Bernard <jbernard@jbernard.io> 2018-12-20 23:24:30 -0500
committerGravatar Jon Bernard <jbernard@jbernard.io> 2018-12-20 23:24:30 -0500
commit87a76d67c09c08db0c11d722cb2191e1c3136835 (patch)
tree1420a8129b08c1c8b8737c18c5c75fc2e8ea4f15
parent38a0281d0a112715aed6e60434389266aada991a (diff)
downloadmystuff-87a76d67c09c08db0c11d722cb2191e1c3136835.tar.gz
mystuff-87a76d67c09c08db0c11d722cb2191e1c3136835.tar.bz2
mystuff-87a76d67c09c08db0c11d722cb2191e1c3136835.zip
Add port for i3-gaps (4.16)
-rw-r--r--x11/i3-gaps/Makefile61
-rw-r--r--x11/i3-gaps/distinfo2
-rw-r--r--x11/i3-gaps/patches/patch-Makefile_in44
-rw-r--r--x11/i3-gaps/patches/patch-Makefile_in.orig44
-rw-r--r--x11/i3-gaps/patches/patch-configure13
-rw-r--r--x11/i3-gaps/patches/patch-configure.orig13
-rw-r--r--x11/i3-gaps/patches/patch-etc_config19
-rw-r--r--x11/i3-gaps/patches/patch-etc_config_keycodes69
-rw-r--r--x11/i3-gaps/patches/patch-i3-dmenu-desktop64
-rw-r--r--x11/i3-gaps/patches/patch-i3-nagbar_main_c38
-rw-r--r--x11/i3-gaps/patches/patch-libi3_get_exe_path_c10
-rw-r--r--x11/i3-gaps/patches/patch-man_i3-config-wizard_man22
-rw-r--r--x11/i3-gaps/patches/patch-man_i3-config-wizard_man.orig21
-rw-r--r--x11/i3-gaps/patches/patch-man_i3-dump-log_man22
-rw-r--r--x11/i3-gaps/patches/patch-man_i3-nagbar_man13
-rw-r--r--x11/i3-gaps/patches/patch-man_i3-nagbar_man.orig12
-rw-r--r--x11/i3-gaps/patches/patch-man_i3_man41
-rw-r--r--x11/i3-gaps/patches/patch-src_bindings_c13
-rw-r--r--x11/i3-gaps/patches/patch-src_bindings_c.orig13
-rw-r--r--x11/i3-gaps/patches/patch-src_config_parser_c15
-rw-r--r--x11/i3-gaps/patches/patch-src_manage_c27
-rw-r--r--x11/i3-gaps/patches/patch-src_manage_c.orig27
-rw-r--r--x11/i3-gaps/pkg/DESCR1
-rw-r--r--x11/i3-gaps/pkg/PLIST44
24 files changed, 648 insertions, 0 deletions
diff --git a/x11/i3-gaps/Makefile b/x11/i3-gaps/Makefile
new file mode 100644
index 0000000..70fea71
--- /dev/null
+++ b/x11/i3-gaps/Makefile
@@ -0,0 +1,61 @@
+# $OpenBSD$
+
+COMMENT = i3wm tiling window manager with more features
+
+VERSION = 4.16
+DISTNAME = i3-${VERSION}
+PKGNAME = i3-gaps-${VERSION}
+
+CATEGORIES = x11
+MASTER_SITES = ${HOMEPAGE}/releases/download/${VERSION}/
+EXTRACT_SUFX = .tar.bz2
+
+HOMEPAGE = https://github.com/Airblader/i3/
+
+# BSD
+PERMIT_PACKAGE_CDROM = Yes
+
+# uses pledge()
+WANTLIB += c cairo ev glib-2.0 gobject-2.0 iconv intl m pango-1.0
+WANTLIB += pangocairo-1.0 pcre pthread startup-notification-1 xcb
+WANTLIB += xcb-cursor xcb-icccm xcb-keysyms xcb-randr xcb-util
+WANTLIB += xcb-xinerama xcb-xkb xcb-xrm xkbcommon xkbcommon-x11
+WANTLIB += yajl
+
+BUILD_DEPENDS = textproc/asciidoc \
+ textproc/xmlto
+LIB_DEPENDS = devel/libev \
+ devel/libyajl>=2.0.0 \
+ devel/pango \
+ devel/pcre \
+ devel/startup-notification \
+ x11/xkbcommon
+RUN_DEPENDS = devel/desktop-file-utils \
+ x11/dmenu \
+ x11/i3status \
+ x11/p5-AnyEvent-I3
+TEST_DEPENDS = x11/p5-AnyEvent-I3
+
+FAKE_FLAGS = i3confdir="${PREFIX}/share/examples/i3/"
+
+SEPARATE_BUILD =Yes
+USE_GMAKE = Yes
+CONFIGURE_STYLE =gnu
+CONFIGURE_ARGS =--enable-builddir=${WRKBUILD} \
+ --enable-debug=no
+CONFIGURE_ENV = CPPFLAGS="-I${X11BASE}/include \
+ -I${LOCALBASE}/include" \
+ LDFLAGS="-L${X11BASE}/lib \
+ -L${LOCALBASE}/lib"
+
+pre-configure:
+ ${SUBST_CMD} ${WRKSRC}/etc/config \
+ ${WRKSRC}/etc/config.keycodes \
+ ${WRKSRC}/i3-dmenu-desktop \
+ ${WRKSRC}/i3-nagbar/main.c \
+ ${WRKSRC}/libi3/get_config_path.c \
+ ${WRKSRC}/libi3/get_exe_path.c \
+ ${WRKSRC}/man/i3-config-wizard.man \
+ ${WRKSRC}/man/i3.man
+
+.include <bsd.port.mk>
diff --git a/x11/i3-gaps/distinfo b/x11/i3-gaps/distinfo
new file mode 100644
index 0000000..05e67c6
--- /dev/null
+++ b/x11/i3-gaps/distinfo
@@ -0,0 +1,2 @@
+SHA256 (i3-4.16.tar.bz2) = ID2+8iQQCXTHIGqtGH44l68HE4+YjN8HxcGRQO/VHiI=
+SIZE (i3-4.16.tar.bz2) = 1230334
diff --git a/x11/i3-gaps/patches/patch-Makefile_in b/x11/i3-gaps/patches/patch-Makefile_in
new file mode 100644
index 0000000..c2e7847
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-Makefile_in
@@ -0,0 +1,44 @@
+$OpenBSD: patch-Makefile_in,v 1.4 2018/03/29 21:05:32 kn Exp $
+Index: Makefile.in
+--- Makefile.in.orig
++++ Makefile.in
+@@ -806,10 +806,7 @@ i3include_HEADERS = \
+ dist_bin_SCRIPTS = \
+ i3-dmenu-desktop \
+ i3-migrate-config-to-v4 \
+- i3-save-tree \
+- i3-sensible-editor \
+- i3-sensible-pager \
+- i3-sensible-terminal
++ i3-save-tree
+
+ i3confdir = $(sysconfdir)/i3
+ dist_i3conf_DATA = \
+@@ -965,9 +962,6 @@ docs_poddir = ${docdir}
+ @BUILD_MANS_TRUE@ man/i3-nagbar.1 \
+ @BUILD_MANS_TRUE@ man/i3-config-wizard.1 \
+ @BUILD_MANS_TRUE@ man/i3-migrate-config-to-v4.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-editor.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-pager.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-terminal.1 \
+ @BUILD_MANS_TRUE@ man/i3-dump-log.1
+
+ @BUILD_MANS_TRUE@pod_MANS = \
+@@ -3274,7 +3268,7 @@ distclean-tags:
+
+ # Leading 'am--fnord' is there to ensure the list of targets does not
+ # expand to empty, as could happen e.g. with make check TESTS=''.
+-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
++am--fnord $(TEST_LOGS): $(am__force_recheck)
+ am--force-recheck:
+ @:
+
+@@ -4007,7 +4001,7 @@ i3-config-parser.stamp: parser/$(dirstamp) generate-co
+ ################################################################################
+
+ anyevent-i3.stamp: AnyEvent-I3/lib/AnyEvent/I3.pm
+- $(AM_V_BUILD) (cd $(top_srcdir)/AnyEvent-I3 && perl Makefile.PL && make)
++ $(AM_V_BUILD) (cd $(top_srcdir)/AnyEvent-I3 && perl Makefile.PL && gmake)
+ $(AM_V_at) touch $@
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/x11/i3-gaps/patches/patch-Makefile_in.orig b/x11/i3-gaps/patches/patch-Makefile_in.orig
new file mode 100644
index 0000000..62e91c8
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-Makefile_in.orig
@@ -0,0 +1,44 @@
+$OpenBSD: patch-Makefile_in,v 1.4 2018/03/29 21:05:32 kn Exp $
+Index: Makefile.in
+--- Makefile.in.orig
++++ Makefile.in
+@@ -752,10 +752,7 @@ i3include_HEADERS = \
+ dist_bin_SCRIPTS = \
+ i3-dmenu-desktop \
+ i3-migrate-config-to-v4 \
+- i3-save-tree \
+- i3-sensible-editor \
+- i3-sensible-pager \
+- i3-sensible-terminal
++ i3-save-tree
+
+ i3confdir = $(sysconfdir)/i3
+ dist_i3conf_DATA = \
+@@ -911,9 +908,6 @@ docs_poddir = ${docdir}
+ @BUILD_MANS_TRUE@ man/i3-nagbar.1 \
+ @BUILD_MANS_TRUE@ man/i3-config-wizard.1 \
+ @BUILD_MANS_TRUE@ man/i3-migrate-config-to-v4.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-editor.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-pager.1 \
+-@BUILD_MANS_TRUE@ man/i3-sensible-terminal.1 \
+ @BUILD_MANS_TRUE@ man/i3-dump-log.1
+
+ @BUILD_MANS_TRUE@pod_MANS = \
+@@ -3174,7 +3168,7 @@ distclean-tags:
+
+ # Leading 'am--fnord' is there to ensure the list of targets does not
+ # expand to empty, as could happen e.g. with make check TESTS=''.
+-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
++am--fnord $(TEST_LOGS): $(am__force_recheck)
+ am--force-recheck:
+ @:
+
+@@ -3740,7 +3734,7 @@ i3-config-parser.stamp: parser/$(dirstamp) generate-co
+ ################################################################################
+
+ anyevent-i3.stamp: AnyEvent-I3/lib/AnyEvent/I3.pm
+- $(AM_V_BUILD) (cd $(top_srcdir)/AnyEvent-I3 && perl Makefile.PL && make)
++ $(AM_V_BUILD) (cd $(top_srcdir)/AnyEvent-I3 && perl Makefile.PL && gmake)
+ $(AM_V_at) touch $@
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/x11/i3-gaps/patches/patch-configure b/x11/i3-gaps/patches/patch-configure
new file mode 100644
index 0000000..7a8fd88
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-configure
@@ -0,0 +1,13 @@
+$OpenBSD: patch-configure,v 1.2 2017/09/04 14:33:07 dcoppa Exp $
+Index: configure
+--- configure.orig
++++ configure
+@@ -6380,7 +6380,7 @@ char iconv_open ();
+ int
+ main ()
+ {
+-return iconv_open ();
++return libiconv_open ();
+ ;
+ return 0;
+ }
diff --git a/x11/i3-gaps/patches/patch-configure.orig b/x11/i3-gaps/patches/patch-configure.orig
new file mode 100644
index 0000000..e29cc01
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-configure.orig
@@ -0,0 +1,13 @@
+$OpenBSD: patch-configure,v 1.2 2017/09/04 14:33:07 dcoppa Exp $
+Index: configure
+--- configure.orig
++++ configure
+@@ -6388,7 +6388,7 @@ char iconv_open ();
+ int
+ main ()
+ {
+-return iconv_open ();
++return libiconv_open ();
+ ;
+ return 0;
+ }
diff --git a/x11/i3-gaps/patches/patch-etc_config b/x11/i3-gaps/patches/patch-etc_config
new file mode 100644
index 0000000..388ef40
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-etc_config
@@ -0,0 +1,19 @@
+$OpenBSD: patch-etc_config,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+--- etc/config.orig Sun Mar 29 19:07:08 2015
++++ etc/config Mon Mar 30 14:13:25 2015
+@@ -35,13 +35,13 @@ set $right semicolon
+ floating_modifier Mod1
+
+ # start a terminal
+-bindsym Mod1+Return exec i3-sensible-terminal
++bindsym Mod1+Return exec ${X11BASE}/bin/xterm
+
+ # kill focused window
+ bindsym Mod1+Shift+q kill
+
+ # start dmenu (a program launcher)
+-bindsym Mod1+d exec dmenu_run
++bindsym Mod1+d exec ${LOCALBASE}/bin/dmenu_run
+ # There also is the (new) i3-dmenu-desktop which only displays applications
+ # shipping a .desktop file. It is a wrapper around dmenu, so you need that
+ # installed.
diff --git a/x11/i3-gaps/patches/patch-etc_config_keycodes b/x11/i3-gaps/patches/patch-etc_config_keycodes
new file mode 100644
index 0000000..db58807
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-etc_config_keycodes
@@ -0,0 +1,69 @@
+$OpenBSD: patch-etc_config_keycodes,v 1.2 2018/03/29 21:05:32 kn Exp $
+
+Fix keycodes for the "Left", "Down", "Up" and "Right" keys: they're
+different between Linux and OpenBSD.
+
+Index: etc/config.keycodes
+--- etc/config.keycodes.orig
++++ etc/config.keycodes
+@@ -29,13 +29,13 @@ font pango:monospace 8
+ floating_modifier $mod
+
+ # start a terminal
+-bindcode $mod+36 exec i3-sensible-terminal
++bindcode $mod+36 exec ${X11BASE}/bin/xterm
+
+ # kill focused window
+ bindcode $mod+Shift+24 kill
+
+ # start dmenu (a program launcher)
+-bindcode $mod+40 exec dmenu_run
++bindcode $mod+40 exec ${LOCALBASE}/bin/dmenu_run
+ # There also is the (new) i3-dmenu-desktop which only displays applications
+ # shipping a .desktop file. It is a wrapper around dmenu, so you need that
+ # installed.
+@@ -48,10 +48,10 @@ bindcode $mod+46 focus up
+ bindcode $mod+47 focus right
+
+ # alternatively, you can use the cursor keys:
+-bindcode $mod+113 focus left
+-bindcode $mod+116 focus down
+-bindcode $mod+111 focus up
+-bindcode $mod+114 focus right
++bindcode $mod+100 focus left
++bindcode $mod+104 focus down
++bindcode $mod+98 focus up
++bindcode $mod+102 focus right
+
+ # move focused window
+ bindcode $mod+Shift+44 move left
+@@ -60,10 +60,10 @@ bindcode $mod+Shift+46 move up
+ bindcode $mod+Shift+47 move right
+
+ # alternatively, you can use the cursor keys:
+-bindcode $mod+Shift+113 move left
+-bindcode $mod+Shift+116 move down
+-bindcode $mod+Shift+111 move up
+-bindcode $mod+Shift+114 move right
++bindcode $mod+Shift+100 move left
++bindcode $mod+Shift+104 move down
++bindcode $mod+Shift+98 move up
++bindcode $mod+Shift+102 move right
+
+ # split in horizontal orientation
+ bindcode $mod+43 split h
+@@ -149,10 +149,10 @@ mode "resize" {
+ bindcode 47 resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+- bindcode 113 resize shrink width 10 px or 10 ppt
+- bindcode 116 resize grow height 10 px or 10 ppt
+- bindcode 111 resize shrink height 10 px or 10 ppt
+- bindcode 114 resize grow width 10 px or 10 ppt
++ bindcode 100 resize shrink width 10 px or 10 ppt
++ bindcode 104 resize grow height 10 px or 10 ppt
++ bindcode 98 resize shrink height 10 px or 10 ppt
++ bindcode 102 resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindcode 36 mode "default"
diff --git a/x11/i3-gaps/patches/patch-i3-dmenu-desktop b/x11/i3-gaps/patches/patch-i3-dmenu-desktop
new file mode 100644
index 0000000..5bf4f27
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-i3-dmenu-desktop
@@ -0,0 +1,64 @@
+$OpenBSD: patch-i3-dmenu-desktop,v 1.7 2017/09/04 14:33:07 dcoppa Exp $
+Index: i3-dmenu-desktop
+--- i3-dmenu-desktop.orig
++++ i3-dmenu-desktop
+@@ -111,7 +111,7 @@ $xdg_data_home = $ENV{HOME} . '/.local/share' if
+ ! -d $xdg_data_home;
+
+ my $xdg_data_dirs = $ENV{XDG_DATA_DIRS};
+-$xdg_data_dirs = '/usr/local/share/:/usr/share/' if
++$xdg_data_dirs = '${LOCALBASE}/share/' if
+ !defined($xdg_data_dirs) ||
+ $xdg_data_dirs eq '';
+
+@@ -213,12 +213,12 @@ for my $file (values %desktops) {
+ # 'evince.desktop' => {
+ # 'Exec' => 'evince %U',
+ # 'Name' => 'Dokumentenbetrachter',
+-# '_Location' => '/usr/share/applications/evince.desktop'
++# '_Location' => '${LOCALBASE}/share/applications/evince.desktop'
+ # },
+ # 'gedit.desktop' => {
+ # 'Exec' => 'gedit %U',
+ # 'Name' => 'gedit',
+-# '_Location' => '/usr/share/applications/gedit.desktop'
++# '_Location' => '${LOCALBASE}/share/applications/gedit.desktop'
+ # }
+ # };
+
+@@ -450,7 +450,7 @@ if (exists($app->{Terminal}) && $app->{Terminal}) {
+ # we need to create a temporary script that contains the full command line
+ # as the syntax for starting commands with arguments varies from terminal
+ # emulator to terminal emulator.
+- # Then, we launch that script with i3-sensible-terminal.
++ # Then, we launch that script with xterm.
+ my ($fh, $filename) = tempfile();
+ binmode($fh, ':utf8');
+ say $fh <<EOT;
+@@ -461,7 +461,7 @@ EOT
+ close($fh);
+ chmod 0755, $filename;
+
+- $cmd = qq|exec i3-sensible-terminal -e "$filename"|;
++ $cmd = qq|exec ${X11BASE}/bin/xterm -e "$filename"|;
+ } else {
+ # i3 executes applications by passing the argument to i3’s “exec” command
+ # as-is to $SHELL -c. The i3 parser supports quoted strings: When a string
+@@ -502,7 +502,7 @@ notifications.
+
+ The .desktop files are searched in $XDG_DATA_HOME/applications (by default
+ $HOME/.local/share/applications) and in the "applications" subdirectory of each
+-entry of $XDG_DATA_DIRS (by default /usr/local/share/:/usr/share/).
++entry of $XDG_DATA_DIRS (by default ${LOCALBASE}/share/).
+
+ Files with the same name in $XDG_DATA_HOME/applications take precedence over
+ files in $XDG_DATA_DIRS, so that you can overwrite parts of the system-wide
+@@ -516,7 +516,7 @@ file respectively) by appending it to the name of the
+ want to launch "GNU Emacs 24" with the patch /tmp/foobar.txt, you would type
+ "emacs", press TAB, type " /tmp/foobar.txt" and press ENTER.
+
+-.desktop files with Terminal=true are started using i3-sensible-terminal(1).
++.desktop files with Terminal=true are started using xterm(1).
+
+ .desktop files with NoDisplay=true or Hidden=true are skipped.
+
diff --git a/x11/i3-gaps/patches/patch-i3-nagbar_main_c b/x11/i3-gaps/patches/patch-i3-nagbar_main_c
new file mode 100644
index 0000000..559b689
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-i3-nagbar_main_c
@@ -0,0 +1,38 @@
+$OpenBSD$
+
+Index: i3-nagbar/main.c
+--- i3-nagbar/main.c.orig
++++ i3-nagbar/main.c
+@@ -189,7 +189,7 @@ static void handle_button_release(xcb_connection_t *co
+
+ char *terminal_cmd;
+ if (button->terminal) {
+- sasprintf(&terminal_cmd, "i3-sensible-terminal -e %s", link_path);
++ sasprintf(&terminal_cmd, "${X11BASE}/bin/xterm -e %s", link_path);
+ } else {
+ terminal_cmd = sstrdup(link_path);
+ }
+@@ -454,11 +454,6 @@ int main(int argc, char *argv[]) {
+ font = load_font(pattern, true);
+ set_font(&font);
+
+-#if defined(__OpenBSD__)
+- if (pledge("stdio rpath wpath cpath getpw proc exec", NULL) == -1)
+- err(EXIT_FAILURE, "pledge");
+-#endif
+-
+ xcb_rectangle_t win_pos = get_window_position();
+
+ xcb_cursor_t cursor;
+@@ -562,6 +557,11 @@ int main(int argc, char *argv[]) {
+
+ /* Initialize the drawable bar */
+ draw_util_surface_init(conn, &bar, win, get_visualtype(root_screen), win_pos.width, win_pos.height);
++
++#if defined(__OpenBSD__)
++ if (pledge("stdio rpath wpath cpath getpw proc exec", NULL) == -1)
++ err(EXIT_FAILURE, "pledge");
++#endif
+
+ /* Startup complete. */
+ if (sncontext) {
diff --git a/x11/i3-gaps/patches/patch-libi3_get_exe_path_c b/x11/i3-gaps/patches/patch-libi3_get_exe_path_c
new file mode 100644
index 0000000..2618dff
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-libi3_get_exe_path_c
@@ -0,0 +1,10 @@
+$OpenBSD: patch-libi3_get_exe_path_c,v 1.3 2016/11/13 20:46:23 dcoppa Exp $
+--- libi3/get_exe_path.c.orig Tue Nov 8 19:54:01 2016
++++ libi3/get_exe_path.c Thu Nov 10 18:04:35 2016
+@@ -103,5 +103,5 @@ char *get_exe_path(const char *argv0) {
+ free(tmp);
+
+ /* Last resort: maybe it’s in /usr/bin? */
+- return sstrdup("/usr/bin/i3-nagbar");
++ return sstrdup("${TRUEPREFIX}/bin/i3-nagbar");
+ }
diff --git a/x11/i3-gaps/patches/patch-man_i3-config-wizard_man b/x11/i3-gaps/patches/patch-man_i3-config-wizard_man
new file mode 100644
index 0000000..e8c7755
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3-config-wizard_man
@@ -0,0 +1,22 @@
+$OpenBSD: patch-man_i3-config-wizard_man,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+Index: man/i3-config-wizard.man
+--- man/i3-config-wizard.man.orig
++++ man/i3-config-wizard.man
+@@ -27,7 +27,7 @@ Display a short help message and exit.
+
+ == FILES
+
+-=== /etc/i3/config.keycodes
++=== ${SYSCONFDIR}/i3/config.keycodes
+
+ This file contains the default configuration with keycodes. All the bindcode
+ lines will be transformed to bindsym and the user-specified modifier will be
+@@ -37,7 +37,7 @@ used.
+
+ i3-config-wizard is started by i3 in its default config, unless ~/.i3/config
+ exists. i3-config-wizard creates a keysym based i3 config file (based on
+-/etc/i3/config.keycodes) in ~/.i3/config.
++${SYSCONFDIR}/i3/config.keycodes) in ~/.i3/config.
+
+ The advantage of using keysyms is that the config file is easy to read,
+ understand and modify. However, if we shipped with a keysym based default
diff --git a/x11/i3-gaps/patches/patch-man_i3-config-wizard_man.orig b/x11/i3-gaps/patches/patch-man_i3-config-wizard_man.orig
new file mode 100644
index 0000000..ffdeb89
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3-config-wizard_man.orig
@@ -0,0 +1,21 @@
+$OpenBSD: patch-man_i3-config-wizard_man,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+--- man/i3-config-wizard.man.orig Fri Nov 11 10:55:30 2016
++++ man/i3-config-wizard.man Fri Nov 11 11:02:04 2016
+@@ -13,7 +13,7 @@ i3-config-wizard
+
+ == FILES
+
+-=== /etc/i3/config.keycodes
++=== ${SYSCONFDIR}/i3/config.keycodes
+
+ This file contains the default configuration with keycodes. All the bindcode
+ lines will be transformed to bindsym and the user-specified modifier will be
+@@ -23,7 +23,7 @@ used.
+
+ i3-config-wizard is started by i3 in its default config, unless ~/.i3/config
+ exists. i3-config-wizard creates a keysym based i3 config file (based on
+-/etc/i3/config.keycodes) in ~/.i3/config.
++${SYSCONFDIR}/i3/config.keycodes) in ~/.i3/config.
+
+ The advantage of using keysyms is that the config file is easy to read,
+ understand and modify. However, if we shipped with a keysym based default
diff --git a/x11/i3-gaps/patches/patch-man_i3-dump-log_man b/x11/i3-gaps/patches/patch-man_i3-dump-log_man
new file mode 100644
index 0000000..b65d7c9
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3-dump-log_man
@@ -0,0 +1,22 @@
+$OpenBSD: patch-man_i3-dump-log_man,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+--- man/i3-dump-log.man.orig Fri Nov 11 11:05:52 2016
++++ man/i3-dump-log.man Fri Nov 11 11:07:08 2016
+@@ -9,7 +9,7 @@ i3-dump-log - dumps the i3 SHM log
+
+ == SYNOPSIS
+
+-i3-dump-log [-s <socketpath>] [-f]
++i3-dump-log [-hVv]
+
+ == DESCRIPTION
+
+@@ -18,9 +18,6 @@ full debug log output. This is extremely helpful for b
+ figuring out what is going on, without permanently logging to a file.
+
+ With i3-dump-log, you can dump the SHM log to stdout.
+-
+-The -f flag works like tail -f, i.e. the process does not terminate after
+-dumping the log, but prints new lines as they appear.
+
+ == EXAMPLE
+
diff --git a/x11/i3-gaps/patches/patch-man_i3-nagbar_man b/x11/i3-gaps/patches/patch-man_i3-nagbar_man
new file mode 100644
index 0000000..c1e38d0
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3-nagbar_man
@@ -0,0 +1,13 @@
+$OpenBSD: patch-man_i3-nagbar_man,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+Index: man/i3-nagbar.man
+--- man/i3-nagbar.man.orig
++++ man/i3-nagbar.man
+@@ -50,7 +50,7 @@ after modifying the configuration file.
+
+ ------------------------------------------------
+ i3-nagbar -m 'You have an error in your i3 config file!' \
+--b 'edit config' 'i3-sensible-editor ~/.config/i3/config'
++-b 'edit config' '/usr/bin/vi ~/.config/i3/config'
+ ------------------------------------------------
+
+ == SEE ALSO
diff --git a/x11/i3-gaps/patches/patch-man_i3-nagbar_man.orig b/x11/i3-gaps/patches/patch-man_i3-nagbar_man.orig
new file mode 100644
index 0000000..85c670f
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3-nagbar_man.orig
@@ -0,0 +1,12 @@
+$OpenBSD: patch-man_i3-nagbar_man,v 1.1 2016/11/13 20:46:23 dcoppa Exp $
+--- man/i3-nagbar.man.orig Tue Nov 8 19:54:01 2016
++++ man/i3-nagbar.man Fri Nov 11 11:19:10 2016
+@@ -44,7 +44,7 @@ after modifying the configuration file.
+
+ ------------------------------------------------
+ i3-nagbar -m 'You have an error in your i3 config file!' \
+--b 'edit config' 'i3-sensible-editor ~/.config/i3/config'
++-b 'edit config' '/usr/bin/vi ~/.config/i3/config'
+ ------------------------------------------------
+
+ == SEE ALSO
diff --git a/x11/i3-gaps/patches/patch-man_i3_man b/x11/i3-gaps/patches/patch-man_i3_man
new file mode 100644
index 0000000..96f0de5
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-man_i3_man
@@ -0,0 +1,41 @@
+$OpenBSD$
+
+Index: man/i3.man
+--- man/i3.man.orig
++++ man/i3.man
+@@ -172,8 +172,8 @@ When starting, i3 looks for configuration files in the
+
+ 1. ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)
+ 2. ~/.i3/config
+-3. /etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)
+-4. /etc/i3/config
++3. ${SYSCONFIGDIR}/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)
++4. ${SYSCONFIGDIR}/i3/config
+
+ You can specify a custom path using the -c option.
+
+@@ -197,13 +197,13 @@ font pango:DejaVu Sans Mono 8
+ floating_modifier Mod1
+
+ # start a terminal
+-bindsym Mod1+Return exec /usr/bin/urxvt
++bindsym Mod1+Return exec ${X11BASE}/bin/xterm
+
+ # kill focused window
+ bindsym Mod1+Shift+q kill
+
+ # start dmenu (a program launcher)
+-bindsym Mod1+d exec /usr/bin/dmenu_run
++bindsym Mod1+d exec ${LOCALBASE}/bin/dmenu_run
+
+ # change focus
+ bindsym Mod1+j focus left
+@@ -316,7 +316,7 @@ ulimit -c unlimited
+
+ # Start i3 and log to ~/.i3/logfile
+ echo "Starting at $(date)" >> ~/.i3/logfile
+-exec /usr/bin/i3 -V -d all >> ~/.i3/logfile
++exec ${TRUEPREFIX}/bin/i3 -V -d all >> ~/.i3/logfile
+ -------------------------------------------------------------
+
+ == ENVIRONMENT
diff --git a/x11/i3-gaps/patches/patch-src_bindings_c b/x11/i3-gaps/patches/patch-src_bindings_c
new file mode 100644
index 0000000..ce5761a
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-src_bindings_c
@@ -0,0 +1,13 @@
+$OpenBSD: patch-src_bindings_c,v 1.7 2017/09/04 14:33:07 dcoppa Exp $
+Index: src/bindings.c
+--- src/bindings.c.orig
++++ src/bindings.c
+@@ -832,7 +832,7 @@ CommandResult *run_binding(Binding *bind, Con *con) {
+
+ if (result->parse_error) {
+ char *pageraction;
+- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
++ sasprintf(&pageraction, "/usr/bin/less \"%s\"\n", errorfilename);
+ char *argv[] = {
+ NULL, /* will be replaced by the executable path */
+ "-f",
diff --git a/x11/i3-gaps/patches/patch-src_bindings_c.orig b/x11/i3-gaps/patches/patch-src_bindings_c.orig
new file mode 100644
index 0000000..47adce4
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-src_bindings_c.orig
@@ -0,0 +1,13 @@
+$OpenBSD: patch-src_bindings_c,v 1.7 2017/09/04 14:33:07 dcoppa Exp $
+Index: src/bindings.c
+--- src/bindings.c.orig
++++ src/bindings.c
+@@ -843,7 +843,7 @@ CommandResult *run_binding(Binding *bind, Con *con) {
+
+ if (result->parse_error) {
+ char *pageraction;
+- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
++ sasprintf(&pageraction, "/usr/bin/less \"%s\"\n", errorfilename);
+ char *argv[] = {
+ NULL, /* will be replaced by the executable path */
+ "-f",
diff --git a/x11/i3-gaps/patches/patch-src_config_parser_c b/x11/i3-gaps/patches/patch-src_config_parser_c
new file mode 100644
index 0000000..321034b
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-src_config_parser_c
@@ -0,0 +1,15 @@
+$OpenBSD: patch-src_config_parser_c,v 1.11 2018/03/29 21:05:32 kn Exp $
+Index: src/config_parser.c
+--- src/config_parser.c.orig
++++ src/config_parser.c
+@@ -791,8 +791,8 @@ static char *migrate_config(char *input, off_t size) {
+ */
+ void start_config_error_nagbar(const char *configpath, bool has_errors) {
+ char *editaction, *pageraction;
+- sasprintf(&editaction, "i3-sensible-editor \"%s\" && i3-msg reload\n", configpath);
+- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
++ sasprintf(&editaction, "/usr/bin/vi \"%s\" && i3-msg reload\n", configpath);
++ sasprintf(&pageraction, "/usr/bin/less \"%s\"\n", errorfilename);
+ char *argv[] = {
+ NULL, /* will be replaced by the executable path */
+ "-f",
diff --git a/x11/i3-gaps/patches/patch-src_manage_c b/x11/i3-gaps/patches/patch-src_manage_c
new file mode 100644
index 0000000..5a0736f
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-src_manage_c
@@ -0,0 +1,27 @@
+$OpenBSD: patch-src_manage_c,v 1.21 2018/03/29 21:05:32 kn Exp $
+
+Fix size hints for ssh-askpass
+
+Index: src/manage.c
+--- src/manage.c.orig
++++ src/manage.c
+@@ -499,10 +499,16 @@ void manage_window(xcb_window_t window, xcb_get_window
+ if (cwindow->dock)
+ want_floating = false;
+
+- /* Plasma windows set their geometry in WM_SIZE_HINTS. */
++ /*
++ * Plasma windows set their geometry in WM_SIZE_HINTS. Note that
++ * these fields are obsolete, so ignore unless there is a width and
++ * a height specified.
++ */
+ if ((wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION) &&
+- (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)) {
+- DLOG("We are setting geometry according to wm_size_hints x=%d y=%d w=%d h=%d\n",
++ (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) &&
++ wm_size_hints.width != 0 && wm_size_hints.height != 0) {
++ DLOG("We are setting geometry according to the obsolete wm_size_hints "
++ "x=%d y=%d w=%d h=%d\n",
+ wm_size_hints.x, wm_size_hints.y, wm_size_hints.width, wm_size_hints.height);
+ geom->x = wm_size_hints.x;
+ geom->y = wm_size_hints.y;
diff --git a/x11/i3-gaps/patches/patch-src_manage_c.orig b/x11/i3-gaps/patches/patch-src_manage_c.orig
new file mode 100644
index 0000000..1b37f3c
--- /dev/null
+++ b/x11/i3-gaps/patches/patch-src_manage_c.orig
@@ -0,0 +1,27 @@
+$OpenBSD: patch-src_manage_c,v 1.21 2018/03/29 21:05:32 kn Exp $
+
+Fix size hints for ssh-askpass
+
+Index: src/manage.c
+--- src/manage.c.orig
++++ src/manage.c
+@@ -501,10 +501,16 @@ void manage_window(xcb_window_t window, xcb_get_window
+ if (cwindow->dock)
+ want_floating = false;
+
+- /* Plasma windows set their geometry in WM_SIZE_HINTS. */
++ /*
++ * Plasma windows set their geometry in WM_SIZE_HINTS. Note that
++ * these fields are obsolete, so ignore unless there is a width and
++ * a height specified.
++ */
+ if ((wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION) &&
+- (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)) {
+- DLOG("We are setting geometry according to wm_size_hints x=%d y=%d w=%d h=%d\n",
++ (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) &&
++ wm_size_hints.width != 0 && wm_size_hints.height != 0) {
++ DLOG("We are setting geometry according to the obsolete wm_size_hints "
++ "x=%d y=%d w=%d h=%d\n",
+ wm_size_hints.x, wm_size_hints.y, wm_size_hints.width, wm_size_hints.height);
+ geom->x = wm_size_hints.x;
+ geom->y = wm_size_hints.y;
diff --git a/x11/i3-gaps/pkg/DESCR b/x11/i3-gaps/pkg/DESCR
new file mode 100644
index 0000000..149556e
--- /dev/null
+++ b/x11/i3-gaps/pkg/DESCR
@@ -0,0 +1 @@
+A fork of i3wm tiling window manager with more features, including gaps.
diff --git a/x11/i3-gaps/pkg/PLIST b/x11/i3-gaps/pkg/PLIST
new file mode 100644
index 0000000..dca69ac
--- /dev/null
+++ b/x11/i3-gaps/pkg/PLIST
@@ -0,0 +1,44 @@
+@comment $OpenBSD: PLIST,v$
+@bin bin/i3
+@bin bin/i3-config-wizard
+bin/i3-dmenu-desktop
+@bin bin/i3-dump-log
+@bin bin/i3-input
+bin/i3-migrate-config-to-v4
+@bin bin/i3-msg
+@bin bin/i3-nagbar
+bin/i3-save-tree
+bin/i3-with-shmlog
+@bin bin/i3bar
+include/i3/
+include/i3/ipc.h
+@man man/man1/i3-config-wizard.1
+@man man/man1/i3-dmenu-desktop.1
+@man man/man1/i3-dump-log.1
+@man man/man1/i3-input.1
+@man man/man1/i3-migrate-config-to-v4.1
+@man man/man1/i3-msg.1
+@man man/man1/i3-nagbar.1
+@man man/man1/i3-save-tree.1
+@man man/man1/i3.1
+@man man/man1/i3bar.1
+share/applications/i3.desktop
+share/doc/i3/
+share/doc/i3/debugging.html
+share/doc/i3/hacking-howto.html
+share/doc/i3/i3bar-protocol.html
+share/doc/i3/ipc.html
+share/doc/i3/layout-saving.html
+share/doc/i3/lib-i3test-test.html
+share/doc/i3/lib-i3test.html
+share/doc/i3/multi-monitor.html
+share/doc/i3/testsuite.html
+share/doc/i3/userguide.html
+share/doc/i3/wsbar.html
+share/examples/i3/
+share/examples/i3/config
+share/examples/i3/config.keycodes
+share/xsessions/
+share/xsessions/i3-with-shmlog.desktop
+share/xsessions/i3.desktop
+@tag update-desktop-database