My Neovim configuration always adds a blank line to the end of a file that I don't want to be included in my suggestions. Using `grep "\S"` was working in a Terminal but this broke when adding it to my dwm configuration. This approach works in dwm when triggered with the keyboard shortcut.
510 lines
22 KiB
Nix
510 lines
22 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
self,
|
|
...
|
|
}:
|
|
|
|
with lib;
|
|
|
|
{
|
|
options.features.desktop.dwm.enable = mkEnableOption "Enable dwm";
|
|
|
|
config = mkIf config.features.desktop.dwm.enable {
|
|
services = {
|
|
dwm-status = {
|
|
enable = true;
|
|
|
|
order = [
|
|
"audio"
|
|
"backlight"
|
|
"battery"
|
|
"cpu_load"
|
|
"network"
|
|
"time"
|
|
];
|
|
};
|
|
|
|
xserver = {
|
|
displayManager.startx.enable = true;
|
|
|
|
windowManager.dwm = {
|
|
enable = true;
|
|
|
|
package = pkgs.dwm.override {
|
|
conf = ''
|
|
static const unsigned int borderpx = 1;
|
|
static const unsigned int snap = 32;
|
|
static const int showbar = 1;
|
|
static const int topbar = 1;
|
|
static const char *fonts[] = { "monospace:size=10" };
|
|
static const char dmenufont[] = "monospace:size=10";
|
|
static const char col_gray1[] = "#222222";
|
|
static const char col_gray2[] = "#444444";
|
|
static const char col_gray3[] = "#bbbbbb";
|
|
static const char col_gray4[] = "#eeeeee";
|
|
static const char col_cyan[] = "#005577";
|
|
static const char *colors[][3] = {
|
|
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
|
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
|
};
|
|
|
|
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
|
|
|
|
static const Rule rules[] = {
|
|
{ "Gimp", NULL, NULL, 0, 1, -1 },
|
|
{ "Firefox", NULL, NULL, 1 << 8, 0, -1 },
|
|
};
|
|
|
|
static const float mfact = 0.55;
|
|
static const int nmaster = 1;
|
|
static const int resizehints = 1;
|
|
static const int lockfullscreen = 1;
|
|
|
|
static const Layout layouts[] = {
|
|
{ "[]=", tile },
|
|
{ "><>", NULL },
|
|
{ "[M]", monocle },
|
|
};
|
|
|
|
#define MODKEY Mod4Mask
|
|
|
|
#define TAGKEYS(KEY,TAG) \
|
|
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
|
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
|
|
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
|
|
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
|
|
|
|
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
|
|
|
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
|
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
|
static const char *termcmd[] = { "st", NULL };
|
|
|
|
static const Key keys[] = {
|
|
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
|
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
|
|
{ MODKEY, XK_b, togglebar, {0} },
|
|
{ MODKEY, XK_j, focusstack, {.i = +1 } },
|
|
{ MODKEY, XK_k, focusstack, {.i = -1 } },
|
|
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
|
|
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
|
|
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
|
|
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
|
|
{ MODKEY, XK_Return, zoom, {0} },
|
|
{ MODKEY, XK_Tab, view, {0} },
|
|
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
|
|
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
|
|
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
|
|
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
|
|
{ MODKEY, XK_space, setlayout, {0} },
|
|
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
|
|
{ MODKEY, XK_0, view, {.ui = ~0 } },
|
|
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
|
|
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
|
|
{ MODKEY, XK_period, focusmon, {.i = +1 } },
|
|
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
|
|
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
|
|
TAGKEYS(XK_1, 0)
|
|
TAGKEYS(XK_2, 1)
|
|
TAGKEYS(XK_3, 2)
|
|
TAGKEYS(XK_4, 3)
|
|
TAGKEYS(XK_5, 4)
|
|
TAGKEYS(XK_6, 5)
|
|
TAGKEYS(XK_7, 6)
|
|
TAGKEYS(XK_8, 7)
|
|
TAGKEYS(XK_9, 8)
|
|
{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
|
{ MODKEY|ShiftMask, XK_b, spawn, SHCMD("${pkgs.firefox}/bin/firefox") },
|
|
{ MODKEY|ShiftMask, XK_f, spawn, SHCMD("${pkgs.xfce.thunar}/bin/thunar") },
|
|
{ MODKEY|ShiftMask, XK_i, spawn, SHCMD("${pkgs.xdotool}/bin/xdotool type $(cat ~/snippets.txt | grep -v '^#' | grep -v '^$' | sort | dmenu -i -l 50 | cut -d' ' -f1)") },
|
|
{ MODKEY|ShiftMask, XK_s, spawn, SHCMD("${pkgs.flameshot}/bin/flameshot gui") },
|
|
{ MODKEY|ShiftMask, XK_y, spawn, SHCMD("${pkgs.copyq}/bin/copyq toggle") },
|
|
};
|
|
|
|
static const Button buttons[] = {
|
|
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
|
|
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
|
|
{ ClkWinTitle, 0, Button2, zoom, {0} },
|
|
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
|
|
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
|
|
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
|
|
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
|
|
{ ClkTagBar, 0, Button1, view, {0} },
|
|
{ ClkTagBar, 0, Button3, toggleview, {0} },
|
|
{ ClkTagBar, MODKEY, Button1, tag, {0} },
|
|
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
|
|
};
|
|
'';
|
|
|
|
patches = with pkgs; [
|
|
(fetchpatch {
|
|
url = "https://dwm.suckless.org/patches/hide_vacant_tags/dwm-hide_vacant_tags-6.4.diff";
|
|
sha256 = "GIbRW0Inwbp99rsKLfIDGvPwZ3pqihROMBp5vFlHx5Q=";
|
|
})
|
|
|
|
(fetchpatch {
|
|
url = "https://dwm.suckless.org/patches/pertag/dwm-pertag-20200914-61bb8b2.diff";
|
|
sha256 = "wRZP/27V7xYOBnFAGxqeJFXdoDk4K1EQMA3bEoAXr/0=";
|
|
})
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.user.services.dwm-status.serviceConfig.Restart = "on-failure";
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
dmenu
|
|
dmenu-bluetooth
|
|
networkmanager_dmenu
|
|
|
|
(st.override {
|
|
conf = ''
|
|
static char *font = "MesloLGSNerdFontMono:pixelsize=16:antialias=true:autohint=true";
|
|
static int borderpx = 2;
|
|
|
|
static char *shell = "/bin/sh";
|
|
char *utmp = NULL;
|
|
char *scroll = NULL;
|
|
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
|
|
|
|
char *vtiden = "\033[?6c";
|
|
|
|
static float cwscale = 1.0;
|
|
static float chscale = 1.0;
|
|
|
|
wchar_t *worddelimiters = L" ";
|
|
|
|
static unsigned int doubleclicktimeout = 300;
|
|
static unsigned int tripleclicktimeout = 600;
|
|
|
|
int allowaltscreen = 1;
|
|
|
|
int allowwindowops = 0;
|
|
|
|
static double minlatency = 2;
|
|
static double maxlatency = 33;
|
|
|
|
static unsigned int blinktimeout = 800;
|
|
|
|
static unsigned int cursorthickness = 2;
|
|
|
|
static int bellvolume = 0;
|
|
|
|
char *termname = "st-256color";
|
|
|
|
unsigned int tabspaces = 8;
|
|
|
|
static const char *colorname[] = {
|
|
"black",
|
|
"red3",
|
|
"green3",
|
|
"yellow3",
|
|
"blue2",
|
|
"magenta3",
|
|
"cyan3",
|
|
"gray90",
|
|
|
|
"gray50",
|
|
"red",
|
|
"green",
|
|
"yellow",
|
|
"#5c5cff",
|
|
"magenta",
|
|
"cyan",
|
|
"white",
|
|
|
|
[255] = 0,
|
|
|
|
"#cccccc",
|
|
"#555555",
|
|
"gray90",
|
|
"black",
|
|
};
|
|
|
|
unsigned int defaultfg = 258;
|
|
unsigned int defaultbg = 259;
|
|
unsigned int defaultcs = 256;
|
|
static unsigned int defaultrcs = 257;
|
|
|
|
static unsigned int cursorshape = 2;
|
|
|
|
static unsigned int cols = 80;
|
|
static unsigned int rows = 24;
|
|
|
|
static unsigned int mouseshape = XC_xterm;
|
|
static unsigned int mousefg = 7;
|
|
static unsigned int mousebg = 0;
|
|
|
|
static unsigned int defaultattr = 11;
|
|
|
|
static uint forcemousemod = ShiftMask;
|
|
|
|
static MouseShortcut mshortcuts[] = {
|
|
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
|
|
{ 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"} },
|
|
};
|
|
|
|
#define MODKEY Mod1Mask
|
|
#define TERMMOD (ControlMask|ShiftMask)
|
|
|
|
static Shortcut shortcuts[] = {
|
|
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
|
|
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
|
|
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
|
|
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
|
|
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
|
|
{ TERMMOD, XK_Next, zoom, {.f = -1} },
|
|
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
|
|
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
|
|
{ TERMMOD, XK_V, clippaste, {.i = 0} },
|
|
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
|
|
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
|
|
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
|
|
};
|
|
|
|
static KeySym mappedkeys[] = { -1 };
|
|
|
|
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
|
|
|
|
static Key key[] = {
|
|
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
|
|
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
|
|
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
|
|
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
|
|
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
|
|
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
|
|
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
|
|
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
|
|
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
|
|
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
|
|
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
|
|
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
|
|
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
|
|
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
|
|
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
|
|
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
|
|
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
|
|
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
|
|
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
|
|
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
|
|
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
|
|
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
|
|
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
|
|
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
|
|
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
|
|
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
|
|
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
|
|
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
|
|
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
|
|
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
|
|
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
|
|
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
|
|
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
|
|
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
|
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
|
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
|
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
|
|
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
|
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
|
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
|
|
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
|
|
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
|
|
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
|
|
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
|
|
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
|
|
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
|
|
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
|
|
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
|
|
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
|
|
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
|
|
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
|
|
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
|
|
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
|
|
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
|
|
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
|
|
{ XK_Up, ShiftMask|Mod1Mask, "\033[1;4A", 0, 0},
|
|
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
|
|
{ XK_Up, ShiftMask|ControlMask, "\033[1;6A", 0, 0},
|
|
{ XK_Up, ControlMask|Mod1Mask, "\033[1;7A", 0, 0},
|
|
{ XK_Up, ShiftMask|ControlMask|Mod1Mask, "\033[1;8A", 0, 0},
|
|
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
|
|
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
|
|
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
|
|
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
|
|
{ XK_Down, ShiftMask|Mod1Mask, "\033[1;4B", 0, 0},
|
|
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
|
|
{ XK_Down, ShiftMask|ControlMask, "\033[1;6B", 0, 0},
|
|
{ XK_Down, ControlMask|Mod1Mask, "\033[1;7B", 0, 0},
|
|
{ XK_Down, ShiftMask|ControlMask|Mod1Mask, "\033[1;8B", 0, 0},
|
|
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
|
|
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
|
|
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
|
|
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
|
|
{ XK_Left, ShiftMask|Mod1Mask, "\033[1;4D", 0, 0},
|
|
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
|
|
{ XK_Left, ShiftMask|ControlMask, "\033[1;6D", 0, 0},
|
|
{ XK_Left, ControlMask|Mod1Mask, "\033[1;7D", 0, 0},
|
|
{ XK_Left, ShiftMask|ControlMask|Mod1Mask, "\033[1;8D", 0, 0},
|
|
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
|
|
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
|
|
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
|
|
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
|
|
{ XK_Right, ShiftMask|Mod1Mask, "\033[1;4C", 0, 0},
|
|
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
|
|
{ XK_Right, ShiftMask|ControlMask, "\033[1;6C", 0, 0},
|
|
{ XK_Right, ControlMask|Mod1Mask, "\033[1;7C", 0, 0},
|
|
{ XK_Right, ShiftMask|ControlMask|Mod1Mask, "\033[1;8C", 0, 0},
|
|
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
|
|
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
|
|
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
|
|
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
|
|
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
|
|
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
|
|
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
|
|
{ XK_Insert, ControlMask, "\033[L", -1, 0},
|
|
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
|
|
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
|
|
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
|
|
{ XK_Delete, ControlMask, "\033[M", -1, 0},
|
|
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
|
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
|
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
|
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
|
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
|
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
|
|
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
|
|
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
|
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
|
|
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
|
|
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
|
|
{ XK_End, ControlMask, "\033[J", -1, 0},
|
|
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
|
|
{ XK_End, ShiftMask, "\033[K", -1, 0},
|
|
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
|
|
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
|
|
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
|
|
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
|
|
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
|
|
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
|
|
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
|
|
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
|
|
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
|
|
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
|
|
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
|
|
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
|
|
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
|
|
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
|
|
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
|
|
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
|
|
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
|
|
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
|
|
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
|
|
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
|
|
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
|
|
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
|
|
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
|
|
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
|
|
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
|
|
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
|
|
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
|
|
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
|
|
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
|
|
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
|
|
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
|
|
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
|
|
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
|
|
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
|
|
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
|
|
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
|
|
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
|
|
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
|
|
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
|
|
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
|
|
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
|
|
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
|
|
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
|
|
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
|
|
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
|
|
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
|
|
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
|
|
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
|
|
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
|
|
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
|
|
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
|
|
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
|
|
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
|
|
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
|
|
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
|
|
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
|
|
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
|
|
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
|
|
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
|
|
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
|
|
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
|
|
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
|
|
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
|
|
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
|
|
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
|
|
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
|
|
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
|
|
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
|
|
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
|
|
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
|
|
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
|
|
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
|
|
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
|
|
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
|
|
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
|
|
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
|
|
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
|
|
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
|
|
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
|
|
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
|
|
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
|
|
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
|
|
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
|
|
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
|
|
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
|
|
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
|
|
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
|
|
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
|
|
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
|
|
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
|
|
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
|
|
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
|
|
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
|
|
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
|
|
};
|
|
|
|
static uint selmasks[] = {
|
|
[SEL_RECTANGULAR] = Mod1Mask,
|
|
};
|
|
|
|
static char ascii_printable[] =
|
|
" !\"#$%&'()*+,-./0123456789:;<=>?"
|
|
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
|
|
"`abcdefghijklmnopqrstuvwxyz{|}~";
|
|
'';
|
|
|
|
patches = with pkgs; [
|
|
(fetchpatch {
|
|
url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff";
|
|
sha256 = "yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc=";
|
|
})
|
|
];
|
|
})
|
|
|
|
xdotool
|
|
];
|
|
};
|
|
}
|