colours and general desktop configuration

This commit is contained in:
koehr 2020-08-11 21:05:34 +02:00
parent d1694224b3
commit 240a8cf669
9 changed files with 480 additions and 356 deletions

View file

@ -13,75 +13,75 @@ Xft.hinting: 1
Xft.rgba: rgb Xft.rgba: rgb
Xft.dpi: 96 Xft.dpi: 96
*font: xft:MonofurNerdFontMono-Book-14 *font: xft:MonofurNerdFont-14
*faceName: xft:MonofurNerdFontMono-Book-12 *faceName: xft:MonofurNerdFont-14
! colours ! --- ~/.Xresources ------------------------------------------------------------
! ------------------------------------------------------------------------------
! --- generated with 4bit Terminal Color Scheme Designer ----------------------- ! --- generated with 4bit Terminal Color Scheme Designer -----------------------
! ------------------------------------------------------------------------------
! --- http://ciembor.github.com/4bit ------------------------------------------- ! --- http://ciembor.github.com/4bit -------------------------------------------
*background: #424242 ! ------------------------------------------------------------------------------
! --- special colors ---
*background: #271512
*foreground: #d9e6f2 *foreground: #d9e6f2
! --- standard colors ---
! black ! black
*color0: #2b2b2b *color0: #232323
*color8: #424242
! bright_black
*color8: #353535
! red ! red
*color1: #ba9897 *color1: #af8384
*color9: #d0b9b9
! bright_red
*color9: #d7c1c1
! green ! green
*color2: #97ba98 *color2: #84af83
*color10: #b9d0b9
! bright_green
*color10: #c1d7c1
! yellow ! yellow
*color3: #b9ba97 *color3: #afae83
*color11: #d0d0b9
! bright_yellow
*color11: #d7d7c1
! blue ! blue
*color4: #9897ba *color4: #8384af
*color12: #b9b9d0
! bright_blue
*color12: #c1c1d7
! magenta ! magenta
*color5: #ba97b9 *color5: #ae83af
*color13: #d0b9d0
! bright_magenta
*color13: #d7c1d7
! cyan ! cyan
*color6: #97b9ba *color6: #83afae
*color14: #b9d0d0
! bright_cyan
*color14: #c1d7d7
! white ! white
*color7: #d2d2d2 *color7: #c6c6c6
*color15: #ffffff
!! old colors: ! bright_white
!*foreground: #cccccc *color15: #e4e4e4
!*background: #191919
!
!! Black + Dark Grey ! ------------------------------------------------------------------------------
!*color0: #222222 ! --- end of terminal colors section -------------------------------------------
!*color8: #333333 ! ------------------------------------------------------------------------------
!! Dark Red + Red
!*color1: #a10a30
!*color9: #b30a30
!! Dark Green + Green
!*color2: #5b762f
!*color10: #89b83f
!! Dark Yellow + Yellow
!*color3: Khaki3
!*color11: #efe58b
!! Dark Blue + Blue
!*color4: #324c80
!*color12: #2b4f98
!! Dark Magenta + Magenta
!*color5: #706c9a
!*color13: #826ab1
!! Dark Cyan + Cyan
!*color6: #92b19e
!*color14: #a1cdcd
!! Light Grey + White
!*color7: #ffffff
!*color15: #dedede
! xmessage settings: ! xmessage settings:
.xmessage.form.okay.shapeStyle: round .xmessage.form.okay.shapeStyle: round

View file

@ -1,6 +1,6 @@
set -g default-terminal "st-256color" set -g default-terminal "st-256color"
set -ga terminal-overrides ",st-256color:Tc" set -ga terminal-overrides ",st-256color:Tc"
set -g escape-time 20 set -g escape-time 0
set -g mouse on set -g mouse on
unbind C-b unbind C-b
@ -22,10 +22,15 @@ bind-key Tab select-pane -t :.+ \; swap-pane -U
bind r source-file ~/.tmux.conf bind r source-file ~/.tmux.conf
# set inactive/active window styles # set inactive/active window styles
set -g window-style 'fg=colour247,bg=colour238' set -g window-style 'fg=colour247,bg=colour233'
set -g window-active-style 'fg=colour244,bg=colour234' set -g window-active-style 'fg=colour244,bg=colour234'
set-window-option -g xterm-keys on set-window-option -g xterm-keys on
# allow set-titles to change the window title under st
# http://opennomad.com/content/goodbye-screen-hello-tmux
# http://stackoverflow.com/questions/15195624
set-option -ga terminal-overrides ',st-256color:smkx=\E='
# status bar # status bar
set -g status-style fg=colour208,bg=colour237 set -g status-style fg=colour208,bg=colour237
@ -78,3 +83,8 @@ set-option -g visual-activity on
set-option -g base-index 1 set-option -g base-index 1
set-option -g pane-base-index 1 set-option -g pane-base-index 1
set-option -g renumber-windows on set-option -g renumber-windows on
# select default layout
set-option -g main-pane-width 65
set-option -g main-pane-height 65
bind Enter select-layout main-vertical

View file

@ -1,6 +1,7 @@
xset -b xset -b
xrdb -merge .Xdefaults xrdb -merge .Xdefaults
xsetroot -solid black -cursor_name left_ptr xsetroot -solid black -cursor_name left_ptr
setxkbmap -layout us -variant alt-intl-unicode
synclient TapButton1=1 synclient TapButton1=1
synclient TapButton2=2 synclient TapButton2=2

View file

@ -1,4 +1,5 @@
/* See LICENSE file for copyright and license details. */ /* See LICENSE file for copyright and license details. */
#include <X11/XF86keysym.h>
/* appearance */ /* appearance */
static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int borderpx = 1; /* border pixel of windows */
@ -74,18 +75,22 @@ static Key keys[] = {
{ MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_Escape, spawn, {.v = lockcmd } }, { MODKEY, XK_Escape, spawn, {.v = lockcmd } },
{ MODKEY, XF86XK_Sleep, spawn, {.v = sleepcmd } }, { 0, XF86XK_Sleep, spawn, {.v = sleepcmd } },
{ MODKEY, XF86XK_MonBrightnessUp, spawn, {.v = backlightInc} }, { 0, XF86XK_MonBrightnessUp, spawn, {.v = backlightInc} },
{ MODKEY, XF86XK_MonBrightnessDown, spawn, {.v = backlightDec} }, { 0, XF86XK_MonBrightnessDown, spawn, {.v = backlightDec} },
{ MODKEY, XF86XK_AudioRaiseVolume, spawn, {.v = volumeInc} }, { 0, XF86XK_AudioRaiseVolume, spawn, {.v = volumeInc} },
{ MODKEY, XF86XK_AudioLowerVolume, spawn, {.v = volumeDec} }, { 0, XF86XK_AudioLowerVolume, spawn, {.v = volumeDec} },
{ MODKEY, XF86XK_AudioMute, spawn, {.v = volumeMute} }, { 0, XF86XK_AudioMute, spawn, {.v = volumeMute} },
{ MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_Left, focusstack, {.i = +1 } },
{ MODKEY, XK_Right, focusstack, {.i = -1 } },
{ MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_Down, setmfact, {.f = -0.10} },
{ MODKEY, XK_Up, setmfact, {.f = +0.10} },
{ MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY|ShiftMask, XK_Return, zoom, {0} }, { MODKEY|ShiftMask, XK_Return, zoom, {0} },

38
dwm/config.mk Normal file
View file

@ -0,0 +1,38 @@
# dwm version
VERSION = 6.2-nk3
# Customize below to fit your system
# paths
PREFIX = ${HOME}/.local
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/include/xorg
X11LIB = /usr/lib/xorg
# Xinerama, comment if you don't want it
XINERAMALIBS = -lXinerama
XINERAMAFLAGS = -DXINERAMA
# freetype
FREETYPELIBS = -lfontconfig -lXft
FREETYPEINC = /usr/include/freetype2
# OpenBSD (uncomment)
#FREETYPEINC = ${X11INC}/freetype2
# includes and libs
INCS = -I${X11INC} -I${FREETYPEINC}
LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
# flags
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS}
LDFLAGS = ${LIBS}
# Solaris
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = ${LIBS}
# compiler and linker
CC = cc

12
slock/config.h Normal file
View file

@ -0,0 +1,12 @@
/* user and group to drop privileges to */
static const char *user = "nobody";
static const char *group = "nogroup";
static const char *colorname[NUMCOLS] = {
[INIT] = "black", /* after initialization */
[INPUT] = "#005577", /* during input */
[FAILED] = "#CC3333", /* wrong password */
};
/* treat a cleared input like a wrong password (color) */
static const int failonclear = 1;

33
slock/config.mk Normal file
View file

@ -0,0 +1,33 @@
# slock version
VERSION = 1.4
# Customize below to fit your system
# paths
PREFIX = ${HOME}/.local
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/include/xorg
X11LIB = /usr/lib/xorg
PIXMANINC = /usr/include/pixman-1
# includes and libs
INCS = -I. -I/usr/include -I${X11INC} -I${PIXMANINC}
LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr
# flags
CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS}
COMPATSRC = explicit_bzero.c
# On OpenBSD and Darwin remove -lcrypt from LIBS
#LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXext -lXrandr
# On *BSD remove -DHAVE_SHADOW_H from CPPFLAGS
# On NetBSD add -D_NETBSD_SOURCE to CPPFLAGS
#CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE -D_NETBSD_SOURCE
# On OpenBSD set COMPATSRC to empty
#COMPATSRC =
# compiler and linker
CC = cc

View file

@ -5,56 +5,67 @@
* *
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
*/ */
char font[] = "monofur for powerline-14:antialias=false:autohint=true"; static char *font = "Monofur Nerd Font:size=14:antialias=true:autohint=true";
int borderpx = 16; static int borderpx = 2;
/* /*
* What program is execed by st depends of these precedence rules: * What program is execed by st depends of these precedence rules:
* 1: program passed with -e * 1: program passed with -e
* 2: utmp option * 2: scroll and/or utmp
* 3: SHELL environment variable * 3: SHELL environment variable
* 4: value of shell in /etc/passwd * 4: value of shell in /etc/passwd
* 5: value of shell in config.h * 5: value of shell in config.h
*/ */
static char shell[] = "/bin/sh"; static char *shell = "/bin/sh";
static char *utmp = NULL; char *utmp = NULL;
static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400"; /* scroll program: to enable use a string like "scroll" */
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
/* identification sequence returned in DA and DECID */ /* identification sequence returned in DA and DECID */
static char vtiden[] = "\033[?6c"; char *vtiden = "\033[?6c";
/* Kerning / character bounding-box multipliers */ /* Kerning / character bounding-box multipliers */
float cwscale = 1.0; static float cwscale = 1.0;
float chscale = 1.0; static float chscale = 1.0;
/* /*
* word delimiter string * word delimiter string
* *
* More advanced example: " `'\"()[]{}" * More advanced example: L" `'\"()[]{}"
*/ */
static char worddelimiters[] = " "; wchar_t *worddelimiters = L" `'\"()[]{}";
/* selection timeouts (in milliseconds) */ /* selection timeouts (in milliseconds) */
unsigned int doubleclicktimeout = 300; static unsigned int doubleclicktimeout = 300;
unsigned int tripleclicktimeout = 600; static unsigned int tripleclicktimeout = 600;
/* alt screens */ /* alt screens */
int allowaltscreen = 1; int allowaltscreen = 1;
/* frames per second st should at maximum draw to the screen */ /* allow certain non-interactive (insecure) window operations such as:
unsigned int xfps = 120; setting the clipboard text */
unsigned int actionfps = 30; int allowwindowops = 0;
/*
* draw latency range in ms - from new content/keypress/etc until drawing.
* within this range, st draws when content stops arriving (idle). mostly it's
* near minlatency, but it waits longer for slow updates to avoid partial draw.
* low minlatency will tear/flicker more, as it can "detect" idle too early.
*/
static double minlatency = 8;
static double maxlatency = 33;
/* /*
* blinking timeout (set to 0 to disable blinking) for the terminal blinking * blinking timeout (set to 0 to disable blinking) for the terminal blinking
* attribute. * attribute.
*/ */
unsigned int blinktimeout = 800; static unsigned int blinktimeout = 800;
/* /*
* thickness of underline and bar cursors * thickness of underline and bar cursors
*/ */
unsigned int cursorthickness = 2; static unsigned int cursorthickness = 2;
/* /*
* bell volume. It must be a value between -100 and 100. Use 0 for disabling * bell volume. It must be a value between -100 and 100. Use 0 for disabling
@ -63,37 +74,52 @@ unsigned int cursorthickness = 2;
static int bellvolume = 0; static int bellvolume = 0;
/* default TERM value */ /* default TERM value */
char termname[] = "st-256color"; char *termname = "st-256color";
static unsigned int tabspaces = 8; /*
* spaces per tab
*
* When you are changing this value, don't forget to adapt the »it« value in
* the st.info and appropriately install the st.info in the environment where
* you use this st version.
*
* it#$tabspaces,
*
* Secondly make sure your kernel is not expanding tabs. When running `stty
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
* running following command:
*
* stty tabs
*/
unsigned int tabspaces = 8;
/* Terminal colors (16 first used in escape sequence) */ /* Terminal colors (16 first used in escape sequence) */
const char *colorname[] = { static const char *colorname[] = {
/* 8 normal colors */ /* 8 normal colors */
"#3d3e3d", //"#2b2b2b", //"black", "#232323",
"#755a5b", //"#ba9897", //"red3", "#af8384",
"#68755a", //"#97ba98", //"green3", "#84af83",
"#756e5a", //"#b9ba97", //"yellow3", "#afae83",
"#5b6976", //"#9897ba", //"blue2", "#8384af",
"#755b76", //"#ba97b9", //"magenta3", "#ae83af",
"#5b7674", //"#97b9ba", //"cyan3", "#83afae",
"#808080", //"#d2d2d2", //"gray90", "#c6c6c6",
/* 8 bright colors */ /* 8 bright colors */
"#5a5b5c", //"#424242", //"gray50", "#353535",
"#a37679", //"#d0b9b9", //"red", "#d7c1c1",
"#87a376", //"#b9d0b9", //"green", "#c1d7c1",
"#a39b76", //"#d0d0b9", //"yellow", "#d7d7c1",
"#758ba3", //"#b9b9d0", //"#5c5cff", "#c1c1d7",
"#9f76a3", //"#d0b9d0", //"magenta", "#d7c1d7",
"#75a3a1", //"#b9d0d0", //"cyan", "#c1d7d7",
"#aeafb0", //"#ffffff", //"white", "#c6c6c6",
[255] = 0, [255] = 0,
/* more colors can be added after 255 to use with DefaultXX */ /* more colors can be added after 255 to use with DefaultXX */
"#d9e6f2", "#d9e6f2",
"#333333", "#1c1c1c",
}; };
@ -101,10 +127,10 @@ const char *colorname[] = {
* Default colors (colorname index) * Default colors (colorname index)
* foreground, background, cursor, reverse cursor * foreground, background, cursor, reverse cursor
*/ */
unsigned int defaultfg = 252; unsigned int defaultfg = 256;
unsigned int defaultbg = 236; unsigned int defaultbg = 257;
unsigned int defaultcs = 208; static unsigned int defaultcs = 7;
unsigned int defaultrcs = 0; static unsigned int defaultrcs = 0;
/* /*
* Default shape of cursor * Default shape of cursor
@ -113,46 +139,53 @@ unsigned int defaultrcs = 0;
* 6: Bar ("|") * 6: Bar ("|")
* 7: Snowman ("") * 7: Snowman ("")
*/ */
unsigned int cursorshape = 2; static unsigned int cursorshape = 2;
/* /*
* Default columns and rows numbers * Default columns and rows numbers
*/ */
unsigned int cols = 80; static unsigned int cols = 80;
unsigned int rows = 24; static unsigned int rows = 24;
/* /*
* Default colour and shape of the mouse cursor * Default colour and shape of the mouse cursor
*/ */
unsigned int mouseshape = XC_xterm; static unsigned int mouseshape = XC_xterm;
unsigned int mousefg = 208; static unsigned int mousefg = 256;
unsigned int mousebg = 0; static unsigned int mousebg = 257;
/* /*
* Colors used, when the specific fg == defaultfg. So in reverse mode this * Color used to display font attributes when fontconfig selected a font which
* will reverse too. Another logic would only make the simple feature too * doesn't match the ones requested.
* complex.
*/ */
unsigned int defaultattr = 11; static unsigned int defaultattr = 11;
unsigned int defaultitalic = 11;
unsigned int defaultunderline = 7; /*
* Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
* Note that if you want to use ShiftMask with selmasks, set this to an other
* modifier, set to 0 to not use it.
*/
static uint forcemousemod = ShiftMask;
/* /*
* Internal mouse shortcuts. * Internal mouse shortcuts.
* Beware that overloading Button1 will disable the selection. * Beware that overloading Button1 will disable the selection.
*/ */
MouseShortcut mshortcuts[] = { static MouseShortcut mshortcuts[] = {
/* button mask string */ /* mask button function argument release */
{ Button4, XK_ANY_MOD, "\031" }, { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ Button5, XK_ANY_MOD, "\005" }, { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
}; };
/* Internal keyboard shortcuts. */ /* Internal keyboard shortcuts. */
#define MODKEY Mod1Mask #define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask) #define TERMMOD (ControlMask|ShiftMask)
Shortcut shortcuts[] = { static Shortcut shortcuts[] = {
/* mask keysym function argument */ /* mask keysym function argument */
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} }, { XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
{ ControlMask, XK_Print, toggleprinter, {.i = 0} }, { ControlMask, XK_Print, toggleprinter, {.i = 0} },
@ -164,8 +197,8 @@ Shortcut shortcuts[] = {
{ TERMMOD, XK_C, clipcopy, {.i = 0} }, { TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_V, clippaste, {.i = 0} }, { TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} }, { TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
{ TERMMOD, XK_I, iso14755, {.i = 0} },
}; };
/* /*
@ -183,10 +216,6 @@ Shortcut shortcuts[] = {
* * 0: no value * * 0: no value
* * > 0: cursor application mode enabled * * > 0: cursor application mode enabled
* * < 0: cursor application mode disabled * * < 0: cursor application mode disabled
* crlf value
* * 0: no value
* * > 0: crlf mode is enabled
* * < 0: crlf mode is disabled
* *
* Be careful with the order of the definitions because st searches in * Be careful with the order of the definitions because st searches in
* this table sequentially, so any XK_ANY_MOD must be in the last * this table sequentially, so any XK_ANY_MOD must be in the last
@ -205,231 +234,221 @@ static KeySym mappedkeys[] = { -1 };
*/ */
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
/*
* Override mouse-select while mask is active (when MODE_MOUSE is set).
* Note that if you want to use ShiftMask with selmasks, set this to an other
* modifier, set to 0 to not use it.
*/
uint forceselmod = ShiftMask;
/* /*
* This is the huge key array which defines all compatibility to the Linux * This is the huge key array which defines all compatibility to the Linux
* world. Please decide about changes wisely. * world. Please decide about changes wisely.
*/ */
static Key key[] = { static Key key[] = {
/* keysym mask string appkey appcursor crlf */ /* keysym mask string appkey appcursor */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1, 0}, { XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1, 0}, { XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1, 0}, { XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1, 0}, { XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0, 0}, { XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1, 0}, { XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1, 0}, { XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0, 0}, { XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1, 0}, { XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1, 0}, { XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0, 0}, { XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1, 0}, { XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1, 0}, { XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0, 0}, { XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1, 0}, { XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1, 0}, { XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0, 0}, { XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0, 0}, { XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0, 0}, { XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0, 0}, { XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0, 0}, { XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0, 0}, { XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0, 0}, { XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0, 0}, { XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0, 0}, { XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0, 0}, { XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0, 0}, { XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0, 0}, { XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0, 0}, { XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0, 0}, { XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0}, { XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0}, { XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0, 0}, { XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0, 0}, { XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0, 0}, { XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0, 0}, { XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0}, { XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0, 0}, { XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0, 0}, { XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0, 0}, { XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0, 0}, { XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0, -1}, { XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r\n", -1, 0, +1}, { XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0, 0}, { XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0, 0}, { XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0, 0}, { XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0, 0}, { XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0, 0}, { XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0, 0}, { XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0, 0}, { XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0, 0}, { XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0, 0}, { XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0, 0}, { XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0, 0}, { XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0, 0}, { XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0, 0}, { XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0, 0}, { XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0, 0}, { XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0, 0}, { XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0, 0}, { XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0},
{ XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0, 0}, { XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0, 0}, { XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0},
{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0, 0}, { XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1, 0}, { XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1, 0}, { XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0, 0}, { XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0, 0}, { XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0, 0}, { XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0, 0}, { XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0},
{ XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0, 0}, { XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0, 0}, { XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0},
{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0, 0}, { XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1, 0}, { XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1, 0}, { XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0, 0}, { XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0, 0}, { XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0, 0}, { XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0, 0}, { XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0},
{ XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0, 0}, { XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0, 0}, { XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0},
{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0, 0}, { XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1, 0}, { XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1, 0}, { XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0, 0}, { XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0, 0}, { XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0, 0}, { XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0, 0}, { XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0},
{ XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0, 0}, { XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0, 0}, { XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0},
{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0, 0}, { XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1, 0}, { XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1, 0}, { XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0, 0}, { XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0, -1}, { XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Return, Mod1Mask, "\033\r\n", 0, 0, +1}, { XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0, -1}, { XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Return, XK_ANY_MOD, "\r\n", 0, 0, +1}, { XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0, 0}, { XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0, 0}, { XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0, 0}, { XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0, 0}, { XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0}, { XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0}, { XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0, 0}, { XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0, 0}, { XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0, 0}, { XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0, 0}, { XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0}, { XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0, 0}, { XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0, 0}, { XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0, 0}, { XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, ShiftMask, "\033[2J", 0, -1, 0}, { XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1, 0}, { XK_End, ControlMask, "\033[J", -1, 0},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1, 0}, { XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1, 0}, { XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ControlMask, "\033[J", -1, 0, 0}, { XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0, 0}, { XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0, 0}, { XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0, 0}, { XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0, 0}, { XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0, 0}, { XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0, 0}, { XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0, 0}, { XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0, 0}, { XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0, 0}, { XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0, 0}, { XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0, 0}, { XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0, 0}, { XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0, 0}, { XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0, 0}, { XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0, 0}, { XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0, 0}, { XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0, 0}, { XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0, 0}, { XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0, 0}, { XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0, 0}, { XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0, 0}, { XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0, 0}, { XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0, 0}, { XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0, 0}, { XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0, 0}, { XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0, 0}, { XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0, 0}, { XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0, 0}, { XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0, 0}, { XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0, 0}, { XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0, 0}, { XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0, 0}, { XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0, 0}, { XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0, 0}, { XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0, 0}, { XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0, 0}, { XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0, 0}, { XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0, 0}, { XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0, 0}, { XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0, 0}, { XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0, 0}, { XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0, 0}, { XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0, 0}, { XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0, 0}, { XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0, 0}, { XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0, 0}, { XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0, 0}, { XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0, 0}, { XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0, 0}, { XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0, 0}, { XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0, 0}, { XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0, 0}, { XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0, 0}, { XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0, 0}, { XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0, 0}, { XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0, 0}, { XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0, 0}, { XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0, 0}, { XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0, 0}, { XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0, 0}, { XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0, 0}, { XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0, 0}, { XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0, 0}, { XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0, 0}, { XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0, 0}, { XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0, 0}, { XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0, 0}, { XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0, 0}, { XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0, 0}, { XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0, 0}, { XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0, 0}, { XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0, 0}, { XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0, 0}, { XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0, 0}, { XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0, 0}, { XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0, 0}, { XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0, 0}, { XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0, 0}, { XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0, 0}, { XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0, 0}, { XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0, 0}, { XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0, 0}, { XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0, 0}, { XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0, 0}, { XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0, 0}, { XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0, 0}, { XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0, 0}, { XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0, 0}, { XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0, 0}, { XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0, 0}, { XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0, 0}, { XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0, 0}, { XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0, 0}, { XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0, 0},
}; };
/* /*
@ -439,7 +458,7 @@ static Key key[] = {
* ButtonRelease and MotionNotify. * ButtonRelease and MotionNotify.
* If no match is found, regular selection is used. * If no match is found, regular selection is used.
*/ */
uint selmasks[] = { static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask, [SEL_RECTANGULAR] = Mod1Mask,
}; };
@ -447,8 +466,7 @@ uint selmasks[] = {
* Printable characters in ASCII, used to estimate the advance width * Printable characters in ASCII, used to estimate the advance width
* of single wide characters. * of single wide characters.
*/ */
char ascii_printable[] = static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?" " !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~"; "`abcdefghijklmnopqrstuvwxyz{|}~";

View file

@ -1,28 +1,35 @@
# st version # st version
VERSION = 0.7 VERSION = 0.8.4
# Customize below to fit your system # Customize below to fit your system
# paths # paths
PREFIX = ~/.local PREFIX = ${HOME}/.local
MANPREFIX = $(PREFIX)/share/man MANPREFIX = $(PREFIX)/share/man
X11INC = /usr/include/X11 X11INC = /usr/include/xorg
X11LIB = /usr/lib X11LIB = /usr/lib/xorg
PKG_CONFIG = pkg-config
# includes and libs # includes and libs
INCS = -I$(X11INC) \ INCS = -I$(X11INC) \
`pkg-config --cflags fontconfig` \ `$(PKG_CONFIG) --cflags fontconfig` \
`pkg-config --cflags freetype2` `$(PKG_CONFIG) --cflags freetype2`
LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \ LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \
`pkg-config --libs fontconfig` \ `$(PKG_CONFIG) --libs fontconfig` \
`pkg-config --libs freetype2` `$(PKG_CONFIG) --libs freetype2`
# flags # flags
CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600
STCFLAGS = $(INCS) $(CPPFLAGS) $(CFLAGS) STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS)
STLDFLAGS = $(LIBS) $(LDFLAGS) STLDFLAGS = $(LIBS) $(LDFLAGS)
# OpenBSD:
#CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
#LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
# `$(PKG_CONFIG) --libs fontconfig` \
# `$(PKG_CONFIG) --libs freetype2`
# compiler and linker # compiler and linker
# CC = c99 # CC = c99