sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/local/bin/st 10
sudo update-alternatives --config x-terminal-emulator
# for Debian / Devuan
# Xlib, Xft
sudo apt install --no-install-recommends build-essential patch libx11-dev libxft-dev
xbanish
で代替可
keynav
で代替可
# ソースファイルのあるディレクトリへ移動
cd ~/DL/st-0.8.5
# patch コマンドでパッチを指定し、適用
patch -p1 < ~/DL/st-clipboard-0.8.3.diff
對象バージョン:0.8.5
config.h
:
/* フォント */
static char *font = "Hack,Migu 1M:pixelsize=18.5:antialias=true:hinting=true:hintstyle=hintfull:lcdfilter=lcddefault:rgba=rgb";
static float cwscale = 0.9; /* 字間 */
static float chscale = 1.0; /* 行間 */
#define HYPKEY Mod3Mask
{ HYPKEY, XK_v, clippaste, {.i = 0} },
{ TERMMOD, XK_U, kscrollup, {.i = -1} }, /* scrollback */
{ TERMMOD, XK_D, kscrolldown, {.i = -1} }, /* scrollback */
keyboard_select
のキーコンフィグconfig.h
:
{ MODKEY, XK_minus, keyboard_select,{.i = 0} }, /* keyboard_select */
st.c
:
2630:
if ( row < term.row || col < term.col )
toggle_winmode(trt_kbdselect(XK_minus, NULL, 0)); /* keyboard_select のトグル */
2848:
if ( ksym == XK_e ) {
2906:
case XK_e : /* 選択を維持して keyboard_select を終了 */
set_notifmode(4, ksym);
2883:
case XK_v : /* 移動・選択モードのトグル */
if ( selectsearch_mode & 1 )
selclear();
2890:
case XK_x : /* 通常・長方形選択のトグル */
selextend(term.c.x, term.c.y, type ^= 3, i = 0); /* 2 fois */
selextend(term.c.x, term.c.y, type, i = 0);
break;
2851:
if ( ksym == XK_q ) ptarget = 0;
2861:
else if ( ptarget == term.col || ksym == XK_q ) {
2903:
case XK_q : /* keyboard_select を終了 */
if ( !in_use ) break;
selclear();
2925:
case XK_g : /* 画面上部へ移動 */
term.c.x = 0, term.c.y = 0;
select_or_drawcursor(selectsearch_mode, type);
break;
2961:
else if ( (XK_g & ksym) != XK_g || (i = (ksym ^ XK_g) - 1) > 3 ) /* 画面上部へ移動 */
break;
2929:
case XK_G : /* 画面下部へ移動 */
term.c.x = cu.x, term.c.y = cu.y;
select_or_drawcursor(selectsearch_mode, type);
break;
2854:
else if ( ksym == XK_H ) { /* 行頭へ移動 */
if ( !ptarget ) return 0;
term.line[term.bot][ptarget--].u = ' ';
2869:
if ( ksym != XK_H ) /* 行頭へ移動 */
search(selectsearch_mode, &target[0], ptarget, sens, type, &cu);
2917:
case XK_H : /* 行頭へ移動 */
term.c.x = 0;
select_or_drawcursor(selectsearch_mode, type);
break;
2921:
case XK_L : /* 行末へ移動 */
term.c.x = term.col - 1;
select_or_drawcursor(selectsearch_mode, type);
break;
2933:
case XK_K : /* 列の始まりへ移動 */
case XK_J : /* 列の終りへ移動 */
term.c.y = (ksym == XK_K ) ? 0 : cu.y;
select_or_drawcursor(selectsearch_mode, type);
break;
2938:
case XK_m : /* 行の中央へ移動 */
term.c.x = term.col >> 1;
select_or_drawcursor(selectsearch_mode, type);
break;
2942:
case XK_C : /* 画面の中央へ移動 */
term.c.x = term.col >> 1;
2944:
case XK_M : /* 列の中央へ移動 */
term.c.y = cu.y >> 1;
select_or_drawcursor(selectsearch_mode, type);
break;
config.h
:
static const char *colorname[] = {
/* Normal */
[0] = "#343434", /* black */
[1] = "#cc0000", /* red */
[2] = "#14d014", /* green */
[3] = "#f0c000", /* yellow */
[4] = "#14c0ff", /* blue */
[5] = "#875eff", /* magenta */
[6] = "#00d9f6", /* cyan */
[7] = "#a0a0a0", /* white */
/* Bright */
[8] = "#747474", /* black */
[9] = "#ff0000", /* red */
[10] = "#00f000", /* green */
[11] = "#f0f014", /* yellow */
[12] = "#5ad4ff", /* blue */
[13] = "#9b7aff", /* magenta */
[14] = "#63e9fb", /* cyan */
[15] = "#c0c0c0", /* white */
[255] = 0,
/* defaultXX で使用する 255 以降の色 */
[256] = "#c0c0c0", /* 文字色, カーソル */
[257] = "#000000", /* 背景色 */
[258] = "#00b7cf", /* 反転カーソル */
};
unsigned int defaultfg = 256; /* 文字色 */
unsigned int defaultbg = 257; /* 背景色 */
unsigned int defaultcs = 256; /* カーソル */
static unsigned int defaultrcs = 258; /* 反転カーソル */