commit - 4f4bccd1627c845330235721f593d2e93418723d
commit + 67d0cb65d0794e2d91e72e5fa1e3612172e5812e
blob - 82b1b095ce7003897c9dc5c065d92abd0835884b
blob + 823e79f68351946ac2e220919f56b3d037353c11
--- config.def.h
+++ config.def.h
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
- { TERMMOD, XK_I, iso14755, {.i = 0} },
};
/*
blob - 81bceff6932d7a0c58907175b6a806f849c31093
blob + e8d6059a9d531d24a6221d0d084c3474e1512687
--- st.1
+++ st.1
.TP
.B Ctrl-Shift-v
Paste from the clipboard selection.
-.TP
-.B Ctrl-Shift-i
-Launch dmenu to enter a unicode codepoint and send the corresponding glyph
-to st.
.SH CUSTOMIZATION
.B st
can be customized by creating a custom config.h and (re)compiling the source
blob - 76bb3eafbe0ba110af5c85465f3a40906cf5f886
blob + 574dbeee866f2704cb6b3bd971d0089af47f258d
--- st.c
+++ st.c
/* macros */
#define IS_SET(flag) ((term.mode & (flag)) != 0)
-#define NUMMAXLEN(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
#define ISDELIM(u) (utf8strchr(worddelimiters, u) != NULL)
-/* constants */
-#define ISO14755CMD "dmenu -w \"$WINDOWID\" -p codepoint: </dev/null"
-
enum term_mode {
MODE_WRAP = 1 << 0,
MODE_INSERT = 1 << 1,
}
void
-iso14755(const Arg *arg)
-{
- FILE *p;
- char *us, *e, codepoint[9], uc[UTF_SIZ];
- unsigned long utf32;
-
- if (!(p = popen(ISO14755CMD, "r")))
- return;
-
- us = fgets(codepoint, sizeof(codepoint), p);
- pclose(p);
-
- if (!us || *us == '\0' || *us == '-' || strlen(us) > 7)
- return;
- if ((utf32 = strtoul(us, &e, 16)) == ULONG_MAX ||
- (*e != '\n' && *e != '\0'))
- return;
-
- ttywrite(uc, utf8encode(utf32, uc), 1);
-}
-
-void
toggleprinter(const Arg *arg)
{
term.mode ^= MODE_PRINT;
blob - dac64d840e092e3b197a41e452931626da6c98e3
blob + 38c61c4d23811252d06e3c3e9aa7a65879fbad0c
--- st.h
+++ st.h
void redraw(void);
void draw(void);
-void iso14755(const Arg *);
void printscreen(const Arg *);
void printsel(const Arg *);
void sendbreak(const Arg *);