From c24b33a3393242ffddf144011262e1eecbac08e2 Mon Sep 17 00:00:00 2001 From: Ypnose Date: Sat, 28 Sep 2013 13:20:19 +0200 Subject: [PATCH] New package: 2bwm-git-20130928_1 --- srcpkgs/2bwm-git/files/config.h | 183 ++++++++++++++++++++++++++++++++ srcpkgs/2bwm-git/template | 37 +++++++ 2 files changed, 220 insertions(+) create mode 100644 srcpkgs/2bwm-git/files/config.h create mode 100644 srcpkgs/2bwm-git/template diff --git a/srcpkgs/2bwm-git/files/config.h b/srcpkgs/2bwm-git/files/config.h new file mode 100644 index 00000000000..84093b0e86e --- /dev/null +++ b/srcpkgs/2bwm-git/files/config.h @@ -0,0 +1,183 @@ +///---User configurable stuff---/// +///---Modifiers---/// +#define MOD XCB_MOD_MASK_4 /* Super/Windows key or check xmodmap(1) with -pm*/ +///--Speed---/// +/* Move this many pixels when moving or resizing with keyboard unless the window has hints saying otherwise. + *0)move step slow 1)move step fast + *2)mouse slow 3)mouse fast */ +static const uint16_t movements[] = {10,40,15,450}; +/* resize by line like in mcwm -- jjumbi */ +static const bool resize_by_line = true; +/* the ratio used when resizing and keeping the aspect */ +static const float resize_keep_aspect_ratio= 1.03; +///---Offsets---/// +/*0)offsetx 1)offsety + *2)maxwidth 3)maxheight */ +static const uint8_t offsets[] = {0,0,0,0}; +///---Colors---/// +/*0)focuscol 1)unfocuscol + *2)fixedcol 3)unkilcol + *4)fixedunkilcol 5)outerbordercol + *6)emptycol */ +static const char *colors[] = {"#323232","#191919","#4c5739","#682a2a","#604818","#151515","#222222"}; +/* if this is set to true the inner border and outer borders colors will be swapped */ +static const bool inverted_colors = false; +///---Borders---/// +/*0) Outer border size. If you put this negative it will be a square. + *1) Full borderwidth 2) Magnet border size + *3) Resize border size */ +static const uint8_t borders[] = {2,5,9,9}; +/* Windows that won't have a border.*/ +#define NB_NAMES 1 +#define LOOK_INTO "_NET_WM_NAME" +static const char *ignore_names[] = {"bar"}; +///---Cursor---/// +/* Check /usr/include/X11/cursorfont.h for more details */ +#define CURSOR_MOVING 52 +#define CURSOR_RESIZING 120 +///--Menus and Programs---/// +static const char *menucmd[] = { "/usr/bin/my_menu.sh", NULL }; +static const char *gmrun[] = { "/usr/bin/gmrun",NULL}; +static const char *terminal[] = { "urxvtc", NULL }; +static const char *twobwm_path = "/usr/local/bin/2bwm"; +///---Shortcuts---/// +/* Check /usr/include/X11/keysymdef.h for the list of all keys + * For AZERTY keyboards XK_1...0 should be replaced by : + * DESKTOPCHANGE( XK_ampersand, 0) + * DESKTOPCHANGE( XK_eacute, 1) + * DESKTOPCHANGE( XK_quotedbl, 2) + * DESKTOPCHANGE( XK_apostrophe, 3) + * DESKTOPCHANGE( XK_parenleft, 4) + * DESKTOPCHANGE( XK_minus, 5) + * DESKTOPCHANGE( XK_egrave, 6) + * DESKTOPCHANGE( XK_underscore, 7) + * DESKTOPCHANGE( XK_ccedilla, 8) + * DESKTOPCHANGE( XK_agrave, 9)* + */ +#define DESKTOPCHANGE(K,N) \ +{ MOD , K, changeworkspace, {.i=N}}, \ +{ MOD |SHIFT, K, sendtoworkspace, {.i=N}}, +static key keys[] = { + /* modifier key function argument */ + // Focus to next/previous window + { MOD , XK_Tab, focusnext, {.i=0}}, + { MOD |SHIFT, XK_Tab, focusnext, {.i=1}}, + // Kill a window + { MOD , XK_q, deletewin, {.i=0}}, + // Resize a window + { MOD |SHIFT, XK_k, resizestep, {.i=2}}, + { MOD |SHIFT, XK_j, resizestep, {.i=1}}, + { MOD |SHIFT, XK_l, resizestep, {.i=3}}, + { MOD |SHIFT, XK_h, resizestep, {.i=0}}, + // Resize a window slower + { MOD |SHIFT|CONTROL,XK_k, resizestep, {.i=6}}, + { MOD |SHIFT|CONTROL,XK_j, resizestep, {.i=5}}, + { MOD |SHIFT|CONTROL,XK_l, resizestep, {.i=7}}, + { MOD |SHIFT|CONTROL,XK_h, resizestep, {.i=4}}, + // Move a window + { MOD , XK_k, movestep, {.i=2}}, + { MOD , XK_j, movestep, {.i=1}}, + { MOD , XK_l, movestep, {.i=3}}, + { MOD , XK_h, movestep, {.i=0}}, + // Move a window slower + { MOD |CONTROL, XK_k, movestep, {.i=6}}, + { MOD |CONTROL, XK_j, movestep, {.i=5}}, + { MOD |CONTROL, XK_l, movestep, {.i=7}}, + { MOD |CONTROL, XK_h, movestep, {.i=4}}, + // Teleport the window to an area of the screen. + // Center: + { MOD , XK_g, teleport, {.i=0}}, + // Center y: + { MOD |SHIFT, XK_g, teleport, {.i=3}}, + // Center x: + { MOD |CONTROL, XK_g, teleport, {.i=-3}}, + // Top left: + { MOD , XK_y, teleport, {.i=2}}, + // Top right: + { MOD , XK_u, teleport, {.i=-2}}, + // Bottom left: + { MOD , XK_b, teleport, {.i=1}}, + // Bottom right: + { MOD , XK_n, teleport, {.i=-1}}, + // Resize while keeping the window aspect + { MOD , XK_Home, resizestep_aspect, {.i=0}}, + { MOD , XK_End, resizestep_aspect, {.i=1}}, + // Full screen window without borders + { MOD , XK_x, maximize, {.i=0}}, + //Full screen window without borders overiding offsets + { MOD |SHIFT , XK_x, maximize, {.i=1}}, + // Maximize vertically + { MOD , XK_m, maxvert_hor, {.i=1}}, + // Maximize horizontally + { MOD |SHIFT, XK_m, maxvert_hor, {.i=0}}, + // Maximize and move + // vertically left + { MOD |SHIFT, XK_y, maxhalf, {.i=2}}, + // vertically right + { MOD |SHIFT, XK_u, maxhalf, {.i=1}}, + // horizontally left + { MOD |SHIFT, XK_b, maxhalf, {.i=-1}}, + // horizontally right + { MOD |SHIFT, XK_n, maxhalf, {.i=-2}}, + //fold half vertically + { MOD |SHIFT|CONTROL,XK_y, maxhalf, {.i=4}}, + //fold half horizontally + { MOD |SHIFT|CONTROL,XK_b, maxhalf, {.i=-4}}, + //unfold vertically + { MOD |SHIFT|CONTROL,XK_u, maxhalf, {.i=3}}, + //unfold horizontally + { MOD |SHIFT|CONTROL,XK_n, maxhalf, {.i=-3}}, + // Next/Previous screen + { MOD , XK_comma, changescreen, {.i=1}}, + { MOD , XK_period, changescreen, {.i=0}}, + // Raise or lower a window + { MOD , XK_r, raiseorlower, {.i=0}}, + // Next/Previous workspace + { MOD , XK_v, nextworkspace, {.i=0}}, + { MOD , XK_c, prevworkspace, {.i=0}}, + // Iconify the window + { MOD , XK_i, hide, {.i=0}}, + // Make the window unkillable + { MOD , XK_a, unkillable, {.i=0}}, + // Make the window appear always on top + { MOD, XK_t, always_on_top, {.i=0}}, + // Make the window stay on all workspaces + { MOD , XK_f, fix, {.i=0}}, + // Move the cursor + { MOD , XK_Up, cursor_move, {.i=4}}, + { MOD , XK_Down, cursor_move, {.i=5}}, + { MOD , XK_Right, cursor_move, {.i=6}}, + { MOD , XK_Left, cursor_move, {.i=7}}, + // Move the cursor faster + { MOD |SHIFT, XK_Up, cursor_move, {.i=0}}, + { MOD |SHIFT, XK_Down, cursor_move, {.i=1}}, + { MOD |SHIFT, XK_Right, cursor_move, {.i=2}}, + { MOD |SHIFT, XK_Left, cursor_move, {.i=3}}, + // Start programs + { MOD , XK_Return, start, {.com = terminal}}, + { MOD , XK_w, start, {.com = menucmd}}, + { MOD |SHIFT, XK_w, start, {.com = gmrun}}, + // Exit or restart 2bwm + { MOD |CONTROL, XK_q, twobwm_exit, {.i=0}}, + { MOD |CONTROL, XK_r, twobwm_restart, {.i=0}}, + // Change current workspace + DESKTOPCHANGE( XK_1, 0) + DESKTOPCHANGE( XK_2, 1) + DESKTOPCHANGE( XK_3, 2) + DESKTOPCHANGE( XK_4, 3) + DESKTOPCHANGE( XK_5, 4) + DESKTOPCHANGE( XK_6, 5) + DESKTOPCHANGE( XK_7, 6) + DESKTOPCHANGE( XK_8, 7) + DESKTOPCHANGE( XK_9, 8) + DESKTOPCHANGE( XK_0, 9) +}; +static Button buttons[] = { + { MOD ,XCB_BUTTON_INDEX_1, mousemotion, {.i=TWOBWM_MOVE}}, + { MOD ,XCB_BUTTON_INDEX_3, mousemotion, {.i=TWOBWM_RESIZE}}, + { MOD|CONTROL,XCB_BUTTON_INDEX_3, start, {.com = menucmd}}, + { MOD|SHIFT, XCB_BUTTON_INDEX_1, changeworkspace, {.i=0}}, + { MOD|SHIFT, XCB_BUTTON_INDEX_3, changeworkspace, {.i=1}}, + { MOD|ALT, XCB_BUTTON_INDEX_1, changescreen, {.i=1}}, + { MOD|ALT, XCB_BUTTON_INDEX_3, changescreen, {.i=0}} +}; diff --git a/srcpkgs/2bwm-git/template b/srcpkgs/2bwm-git/template new file mode 100644 index 00000000000..4e9ad597787 --- /dev/null +++ b/srcpkgs/2bwm-git/template @@ -0,0 +1,37 @@ +# Template file for '2bwm-git' +pkgname=2bwm-git +version=20130928 +revision=1 +makedepends="libxcb-devel xcb-util-devel xcb-util-keysyms-devel xcb-util-wm-devel" +short_desc="Fast floating window manager" +maintainer="Ypnose " +license="ISC" +homepage="https://github.com/venam/2bwm" + +do_fetch() { + local url="git://github.com/venam/2bwm" + msg_normal "Fetching source from $url ...\n" + git clone ${url} ${pkgname}-${version} +} + +do_build() { + cp ${FILESDIR}/config.h config.h + sed -i '/#include /i#define _GNU_SOURCE' 2bwm.c + sed -i 's/^CFLAGS+=/CFLAGS=/' Makefile + sed -i 's/^LDFLAGS+=/LDFLAGS=/' Makefile + make CC=$CC ${makejobs} +} + +do_install() { + vinstall 2bwm 755 usr/bin + vinstall hidden 755 usr/bin + install -Dm644 2bwm.man ${DESTDIR}/usr/share/man/man1/2bwm.1 + install -Dm644 hidden.man ${DESTDIR}/usr/share/man/man1/hidden.1 + vinstall README.md 644 usr/share/doc/${pkgname} +} + +2bwm-git_package() { + pkg_install() { + vmove usr + } +}