diff options
| author | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-07-15 09:56:45 +0800 |
|---|---|---|
| committer | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-07-15 09:56:45 +0800 |
| commit | aeefceb3e1c91e72349143e957c0f3b1bee073fc (patch) | |
| tree | 8e2a9f8011425b843cc13c074d099c79c8ae4dd2 | |
| parent | 1764e73af19f0863106b5f8415c95d2c6bb10646 (diff) | |
| download | alicelinux-aeefceb3e1c91e72349143e957c0f3b1bee073fc.tar.gz alicelinux-aeefceb3e1c91e72349143e957c0f3b1bee073fc.zip | |
2bwm: new added
| -rw-r--r-- | repos/xorg/2bwm/.files | 9 | ||||
| -rw-r--r-- | repos/xorg/2bwm/abuild | 10 | ||||
| -rw-r--r-- | repos/xorg/2bwm/config.h | 207 | ||||
| -rw-r--r-- | repos/xorg/2bwm/depends | 4 |
4 files changed, 230 insertions, 0 deletions
diff --git a/repos/xorg/2bwm/.files b/repos/xorg/2bwm/.files new file mode 100644 index 00000000..a7fbaac2 --- /dev/null +++ b/repos/xorg/2bwm/.files @@ -0,0 +1,9 @@ +drwxr-xr-x root/root usr/ +drwxr-xr-x root/root usr/bin/ +-rwxr-xr-x root/root usr/bin/2bwm +-rwxr-xr-x root/root usr/bin/hidden +drwxr-xr-x root/root usr/share/ +drwxr-xr-x root/root usr/share/man/ +drwxr-xr-x root/root usr/share/man/man1/ +-rw-r--r-- root/root usr/share/man/man1/2bwm.1.gz +-rw-r--r-- root/root usr/share/man/man1/hidden.1.gz diff --git a/repos/xorg/2bwm/abuild b/repos/xorg/2bwm/abuild new file mode 100644 index 00000000..2a297d61 --- /dev/null +++ b/repos/xorg/2bwm/abuild @@ -0,0 +1,10 @@ +name=2bwm +version=0.3 +release=1 +source="https://github.com/venam/${name}/archive/v${version}/${name}-v${version}.tar.gz + config.h" + +prebuild() { + cp $SRC/config.h . +} + diff --git a/repos/xorg/2bwm/config.h b/repos/xorg/2bwm/config.h new file mode 100644 index 00000000..290c5129 --- /dev/null +++ b/repos/xorg/2bwm/config.h @@ -0,0 +1,207 @@ +///---User configurable stuff---/// +///---Modifiers---/// +#define MOD XCB_MOD_MASK_4 /* Super/Windows key or check xmodmap(1) with -pm defined in /usr/include/xcb/xproto.h */ +///--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[] = {20,40,15,400}; +/* resize by line like in mcwm -- jmbi */ +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[] = {"#35586c","#333333","#7a8c5c","#ff6666","#cc9933","#0d131a","#000000"}; +/* if this is set to true the inner border and outer borders colors will be swapped */ +static const bool inverted_colors = true; +///---Cursor---/// +/* default position of the cursor: + * correct values are: + * TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, MIDDLE + * All these are relative to the current window. */ +#define CURSOR_POSITION MIDDLE +///---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[] = {3,5,5,4}; +/* Windows that won't have a border. + * It uses substring comparison with what is found in the WM_NAME + * attribute of the window. You can test this using `xprop WM_NAME` + */ +#define LOOK_INTO "WM_NAME" +static const char *ignore_names[] = {"bar", "xclock"}; +///--Menus and Programs---/// +static const char *menucmd[] = { "", NULL }; +///--Custom foo---/// +static void halfandcentered(const Arg *arg) +{ + Arg arg2 = {.i=TWOBWM_MAXHALF_VERTICAL_LEFT}; + maxhalf(&arg2); + Arg arg3 = {.i=TWOBWM_TELEPORT_CENTER}; + teleport(&arg3); +} +///---Shortcuts---/// +/* Check /usr/include/X11/keysymdef.h for the list of all keys + * 0x000000 is for no modkey + * If you are having trouble finding the right keycode use the `xev` to get it + * For example: + * KeyRelease event, serial 40, synthetic NO, window 0x1e00001, + * root 0x98, subw 0x0, time 211120530, (128,73), root:(855,214), + * state 0x10, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES, + * XLookupString gives 0 bytes: + * XFilterEvent returns: False + * + * The keycode here is keysym 0x1008ff17, so use 0x1008ff17 + * + * + * 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=TWOBWM_FOCUS_NEXT}}, + { MOD |SHIFT, XK_Tab, focusnext, {.i=TWOBWM_FOCUS_PREVIOUS}}, + // Kill a window + { MOD , XK_q, deletewin, {}}, + // Resize a window + { MOD |SHIFT, XK_k, resizestep, {.i=TWOBWM_RESIZE_UP}}, + { MOD |SHIFT, XK_j, resizestep, {.i=TWOBWM_RESIZE_DOWN}}, + { MOD |SHIFT, XK_l, resizestep, {.i=TWOBWM_RESIZE_RIGHT}}, + { MOD |SHIFT, XK_h, resizestep, {.i=TWOBWM_RESIZE_LEFT}}, + // Resize a window slower + { MOD |SHIFT|CONTROL,XK_k, resizestep, {.i=TWOBWM_RESIZE_UP_SLOW}}, + { MOD |SHIFT|CONTROL,XK_j, resizestep, {.i=TWOBWM_RESIZE_DOWN_SLOW}}, + { MOD |SHIFT|CONTROL,XK_l, resizestep, {.i=TWOBWM_RESIZE_RIGHT_SLOW}}, + { MOD |SHIFT|CONTROL,XK_h, resizestep, {.i=TWOBWM_RESIZE_LEFT_SLOW}}, + // Move a window + { MOD , XK_k, movestep, {.i=TWOBWM_MOVE_UP}}, + { MOD , XK_j, movestep, {.i=TWOBWM_MOVE_DOWN}}, + { MOD , XK_l, movestep, {.i=TWOBWM_MOVE_RIGHT}}, + { MOD , XK_h, movestep, {.i=TWOBWM_MOVE_LEFT}}, + // Move a window slower + { MOD |CONTROL, XK_k, movestep, {.i=TWOBWM_MOVE_UP_SLOW}}, + { MOD |CONTROL, XK_j, movestep, {.i=TWOBWM_MOVE_DOWN_SLOW}}, + { MOD |CONTROL, XK_l, movestep, {.i=TWOBWM_MOVE_RIGHT_SLOW}}, + { MOD |CONTROL, XK_h, movestep, {.i=TWOBWM_MOVE_LEFT_SLOW}}, + // Teleport the window to an area of the screen. + // Center: + { MOD , XK_g, teleport, {.i=TWOBWM_TELEPORT_CENTER}}, + // Center y: + { MOD |SHIFT, XK_g, teleport, {.i=TWOBWM_TELEPORT_CENTER_Y}}, + // Center x: + { MOD |CONTROL, XK_g, teleport, {.i=TWOBWM_TELEPORT_CENTER_X}}, + // Top left: + { MOD , XK_y, teleport, {.i=TWOBWM_TELEPORT_TOP_LEFT}}, + // Top right: + { MOD , XK_u, teleport, {.i=TWOBWM_TELEPORT_TOP_RIGHT}}, + // Bottom left: + { MOD , XK_b, teleport, {.i=TWOBWM_TELEPORT_BOTTOM_LEFT}}, + // Bottom right: + { MOD , XK_n, teleport, {.i=TWOBWM_TELEPORT_BOTTOM_RIGHT}}, + // Resize while keeping the window aspect + { MOD , XK_Home, resizestep_aspect, {.i=TWOBWM_RESIZE_KEEP_ASPECT_GROW}}, + { MOD , XK_End, resizestep_aspect, {.i=TWOBWM_RESIZE_KEEP_ASPECT_SHRINK}}, + // Maximize (ignore offset and no EWMH atom) + { MOD , XK_x, maximize, {}}, + // Full screen (disregarding offsets and adding EWMH atom) + { MOD |SHIFT , XK_x, fullscreen, {}}, + // Maximize vertically + { MOD , XK_m, maxvert_hor, {.i=TWOBWM_MAXIMIZE_VERTICALLY}}, + // Maximize horizontally + { MOD |SHIFT, XK_m, maxvert_hor, {.i=TWOBWM_MAXIMIZE_HORIZONTALLY}}, + // Maximize and move + // vertically left + { MOD |SHIFT, XK_y, maxhalf, {.i=TWOBWM_MAXHALF_VERTICAL_LEFT}}, + // vertically right + { MOD |SHIFT, XK_u, maxhalf, {.i=TWOBWM_MAXHALF_VERTICAL_RIGHT}}, + // horizontally left + { MOD |SHIFT, XK_b, maxhalf, {.i=TWOBWM_MAXHALF_HORIZONTAL_BOTTOM}}, + // horizontally right + { MOD |SHIFT, XK_n, maxhalf, {.i=TWOBWM_MAXHALF_HORIZONTAL_TOP}}, + //fold half vertically + { MOD |SHIFT|CONTROL,XK_y, maxhalf, {.i=TWOBWM_MAXHALF_FOLD_VERTICAL}}, + //fold half horizontally + { MOD |SHIFT|CONTROL,XK_b, maxhalf, {.i=TWOBWM_MAXHALF_FOLD_HORIZONTAL}}, + //unfold vertically + { MOD |SHIFT|CONTROL,XK_u, maxhalf, {.i=TWOBWM_MAXHALF_UNFOLD_VERTICAL}}, + //unfold horizontally + { MOD |SHIFT|CONTROL,XK_n, maxhalf, {.i=TWOBWM_MAXHALF_UNFOLD_HORIZONTAL}}, + // Next/Previous screen + { MOD , XK_comma, changescreen, {.i=TWOBWM_NEXT_SCREEN}}, + { MOD , XK_period, changescreen, {.i=TWOBWM_PREVIOUS_SCREEN}}, + // Raise or lower a window + { MOD , XK_r, raiseorlower, {}}, + // Next/Previous workspace + { MOD , XK_v, nextworkspace, {}}, + { MOD , XK_c, prevworkspace, {}}, + // Move to Next/Previous workspace + { MOD |SHIFT , XK_v, sendtonextworkspace,{}}, + { MOD |SHIFT , XK_c, sendtoprevworkspace,{}}, + // Iconify the window + //{ MOD , XK_i, hide, {}}, + // Make the window unkillable + { MOD , XK_a, unkillable, {}}, + // Make the window appear always on top + { MOD, XK_t, always_on_top, {}}, + // Make the window stay on all workspaces + { MOD , XK_f, fix, {}}, + // Move the cursor + { MOD , XK_Up, cursor_move, {.i=TWOBWM_CURSOR_UP_SLOW}}, + { MOD , XK_Down, cursor_move, {.i=TWOBWM_CURSOR_DOWN_SLOW}}, + { MOD , XK_Right, cursor_move, {.i=TWOBWM_CURSOR_RIGHT_SLOW}}, + { MOD , XK_Left, cursor_move, {.i=TWOBWM_CURSOR_LEFT_SLOW}}, + // Move the cursor faster + { MOD |SHIFT, XK_Up, cursor_move, {.i=TWOBWM_CURSOR_UP}}, + { MOD |SHIFT, XK_Down, cursor_move, {.i=TWOBWM_CURSOR_DOWN}}, + { MOD |SHIFT, XK_Right, cursor_move, {.i=TWOBWM_CURSOR_RIGHT}}, + { MOD |SHIFT, XK_Left, cursor_move, {.i=TWOBWM_CURSOR_LEFT}}, + // Start programs + { MOD , XK_w, start, {.com = menucmd}}, + // Exit or restart 2bwm + { MOD |CONTROL, XK_q, twobwm_exit, {.i=0}}, + { MOD |CONTROL, XK_r, twobwm_restart, {.i=0}}, + { MOD , XK_space, halfandcentered, {.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) +}; +// the last argument makes it a root window only event +static Button buttons[] = { + { MOD ,XCB_BUTTON_INDEX_1, mousemotion, {.i=TWOBWM_MOVE}, false}, + { MOD ,XCB_BUTTON_INDEX_3, mousemotion, {.i=TWOBWM_RESIZE}, false}, + { 0 ,XCB_BUTTON_INDEX_3, start, {.com = menucmd}, true}, + { MOD|SHIFT, XCB_BUTTON_INDEX_1, changeworkspace, {.i=0}, false}, + { MOD|SHIFT, XCB_BUTTON_INDEX_3, changeworkspace, {.i=1}, false}, + { MOD|ALT, XCB_BUTTON_INDEX_1, changescreen, {.i=1}, false}, + { MOD|ALT, XCB_BUTTON_INDEX_3, changescreen, {.i=0}, false} +}; diff --git a/repos/xorg/2bwm/depends b/repos/xorg/2bwm/depends new file mode 100644 index 00000000..c7301644 --- /dev/null +++ b/repos/xorg/2bwm/depends @@ -0,0 +1,4 @@ +libxcb +xcb-util-wm +xcb-util-keysyms +xcb-util-xrm |