diff --git a/.bashrc b/.bashrc index da61b3f..de0fdc7 100644 --- a/.bashrc +++ b/.bashrc @@ -3,7 +3,7 @@ if [[ $- != *i* ]] ; then fi alias ls="ls -a --color" -alias comp="make && doas make install && make clean" +alias comp="make && doas make install && make clean && pkill dwm" alias edit="sh /home/andrew/.config/suckless/dwm/scripts/edit-suckless.sh" alias update_world="doas emerge --ask --update --newuse --deep @world" alias env="sh /home/andrew/dotfiles/env.sh" diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index f93a116..e0845b6 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -22,12 +22,18 @@ vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") vim.keymap.set("n", "ff", "ggVG=") vim.keymap.set('n', '', ":Pick files") +vim.keymap.set('n', 'xh', ":Pick help") +vim.keymap.set('n', 'xx', ":Pick diagnostic") +require('mini.pick').setup() +require('mini.pairs').setup() +require('mini.extra').setup() require("lazy").setup({ spec = { - "cohama/lexima.vim", + { "echasnovski/mini.pairs", version = '*' }, + { 'echasnovski/mini.extra', version = '*' }, { "echasnovski/mini.pick", version = '*' }, { "saghen/blink.cmp", version = "v1.*", opts = {} }, } }) -require('mini.pick').setup() + diff --git a/.config/suckless/dwm/config.h b/.config/suckless/dwm/config.h index 236857a..4000b61 100644 --- a/.config/suckless/dwm/config.h +++ b/.config/suckless/dwm/config.h @@ -3,7 +3,6 @@ static const unsigned int gappx = 10; static const unsigned int snap = 32; static const int showbar = 1; static const int topbar = 1; -static const char *barlayout = "t|s"; static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" }; static const char *colors[][3] = { @@ -26,7 +25,6 @@ static const int lockfullscreen = 1; static const Layout layouts[] = { { "[]=", tile }, - { "><>", NULL }, /* no layout function means floating behavior */ }; #define MODKEY Mod1Mask diff --git a/.config/suckless/dwm/config.mk b/.config/suckless/dwm/config.mk index bda5dc7..2100754 100644 --- a/.config/suckless/dwm/config.mk +++ b/.config/suckless/dwm/config.mk @@ -1,24 +1,15 @@ -VERSION = 6.5 - PREFIX = /usr/local X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib -# Xinerama, comment if you don't want it -# XINERAMALIBS = -lXinerama -# XINERAMAFLAGS = -DXINERAMA - -# freetype FREETYPELIBS = -lfontconfig -lXft FREETYPEINC = /usr/include/freetype2 -# includes and libs INCS = -I${X11INC} -I${FREETYPEINC} LIBS = -L${X11LIB} -lX11 ${FREETYPELIBS} -# flags -CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS} LDFLAGS = ${LIBS} diff --git a/.config/suckless/dwm/dwm.c b/.config/suckless/dwm/dwm.c index 58e9bff..4094ffe 100644 --- a/.config/suckless/dwm/dwm.c +++ b/.config/suckless/dwm/dwm.c @@ -658,97 +658,53 @@ dirtomon(int dir) void drawbar(Monitor *m) { - int x = 0, w, tw = 0, moveright = 0; + int x, w, tw = 0; int boxs = drw->fonts->h / 9; int boxw = drw->fonts->h / 6 + 2; - unsigned int i, j, occ = 0, urg = 0; + unsigned int i, occ = 0, urg = 0; Client *c; if (!m->showbar) return; - if (barlayout[0] == '\0') - barlayout = "tln|s"; + /* draw status first so it can be overdrawn by tags later */ + if (m == selmon) { /* status is only drawn on selected monitor */ + drw_setscheme(drw, scheme[SchemeNorm]); + tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ + drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0); + } + for (c = m->clients; c; c = c->next) { + occ |= c->tags; + if (c->isurgent) + urg |= c->tags; + } + x = 0; + for (i = 0; i < LENGTH(tags); i++) { + w = TEXTW(tags[i]); + drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]); + drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i); + if (occ & 1 << i) + drw_rect(drw, x + boxs, boxs, boxw, boxw, + m == selmon && selmon->sel && selmon->sel->tags & 1 << i, + urg & 1 << i); + x += w; + } + w = TEXTW(m->ltsymbol); drw_setscheme(drw, scheme[SchemeNorm]); - drw_text(drw, 0, 0, m->ww, bh, 0, "", 0); /* draw background */ - - for (i = 0; i < strlen(barlayout); i++) { - switch (barlayout[i]) { - case 'l': - w = TEXTW(m->ltsymbol); - drw_setscheme(drw, scheme[SchemeNorm]); - if (moveright) { - x -= w; - drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); - } else - x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); - break; - - case 'n': - tw = TEXTW(m->sel->name); - if (moveright) - x -= tw; - if (m->sel) { - drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); - drw_text(drw, x, 0, moveright ? tw : m->ww, bh, lrpad / 2, m->sel->name, 0); - if (m->sel->isfloating) - drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0); - } else { - drw_setscheme(drw, scheme[SchemeNorm]); - drw_rect(drw, x, 0, tw, bh, 1, 1); - } - if (!moveright) - x += tw; - break; - - case 's': - if (m == selmon) { /* status is only drawn on selected monitor */ - drw_setscheme(drw, scheme[SchemeNorm]); - tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ - if (moveright) { - x -= tw; - drw_text(drw, x, 0, tw, bh, 0, stext, 0); - } else - x = drw_text(drw, x, 0, tw, bh, 0, stext, 0); - } - break; - - case 't': - for (c = m->clients; c; c = c->next) { - occ |= c->tags; - if (c->isurgent) - urg |= c->tags; - } - /* tags */ - if (moveright) { - tw = 0; - for (j = 0; j < LENGTH(tags); j++) { - tw += TEXTW(tags[j]); - } - x -= tw; - } - for (j = 0; j < LENGTH(tags); j++) { - w = TEXTW(tags[j]); - drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << j ? SchemeSel : SchemeNorm]); - drw_text(drw, x, 0, w, bh, lrpad / 2, tags[j], urg & 1 << j); - if (occ & 1 << j) - drw_rect(drw, x + boxs, boxs, boxw, boxw, - m == selmon && selmon->sel && selmon->sel->tags & 1 << j, - urg & 1 << i); - x += w; - } - if (moveright) - x -= tw; - break; - - case '|': - moveright = 1; - x = m->ww; - break; + x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); + if ((w = m->ww - tw - x) > bh) { + if (m->sel) { + drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); + drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); + if (m->sel->isfloating) + drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0); + } else { + drw_setscheme(drw, scheme[SchemeNorm]); + drw_rect(drw, x, 0, w, bh, 1, 1); } } drw_map(drw, m->barwin, 0, 0, m->ww, bh); @@ -1908,7 +1864,7 @@ void updatestatus(void) { if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext))) - strcpy(stext, "dwm-"VERSION); + strcpy(stext, " dwm "); drawbar(selmon); } diff --git a/.config/suckless/slstatus/Makefile b/.config/suckless/slstatus/Makefile index 0a9fb0e..d1202c0 100644 --- a/.config/suckless/slstatus/Makefile +++ b/.config/suckless/slstatus/Makefile @@ -2,22 +2,22 @@ include config.mk -REQ = util -COM = run_command +# Objects we actually need +OBJ = slstatus.o util.o all: slstatus -$(COM:=.o): config.mk $(REQ:=.h) slstatus.h -slstatus.o: slstatus.c slstatus.h arg.h config.h config.mk $(REQ:=.h) +slstatus.o: slstatus.c util.h + $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) slstatus.c -.c.o: - $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) $< +util.o: util.c util.h + $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) util.c -slstatus: slstatus.o $(COM:=.o) $(REQ:=.o) - $(CC) -o $@ $(LDFLAGS) $(COM:=.o) $(REQ:=.o) slstatus.o $(LDLIBS) +slstatus: $(OBJ) + $(CC) -o $@ $(LDFLAGS) $(OBJ) $(LDLIBS) clean: - rm -f slstatus slstatus.o $(COM:=.o) $(REQ:=.o) + rm -f slstatus $(OBJ) install: all mkdir -p "$(DESTDIR)$(PREFIX)/bin" diff --git a/.config/suckless/slstatus/arg.h b/.config/suckless/slstatus/arg.h deleted file mode 100644 index 5f1f408..0000000 --- a/.config/suckless/slstatus/arg.h +++ /dev/null @@ -1,33 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#ifndef ARG_H -#define ARG_H - -extern char *argv0; - -/* int main(int argc, char *argv[]) */ -#define ARGBEGIN for (argv0 = *argv, *argv ? (argc--, argv++) : ((void *)0); \ - *argv && (*argv)[0] == '-' && (*argv)[1]; argc--, argv++) { \ - int i_, argused_; \ - if ((*argv)[1] == '-' && !(*argv)[2]) { \ - argc--, argv++; \ - break; \ - } \ - for (i_ = 1, argused_ = 0; (*argv)[i_]; i_++) { \ - switch ((*argv)[i_]) -#define ARGEND if (argused_) { \ - if ((*argv)[i_ + 1]) { \ - break; \ - } else { \ - argc--, argv++; \ - break; \ - } \ - } \ - } \ - } -#define ARGC() ((*argv)[i_]) -#define ARGF_(x) (((*argv)[i_ + 1]) ? (argused_ = 1, &((*argv)[i_ + 1])) : \ - (*(argv + 1)) ? (argused_ = 1, *(argv + 1)) : (x)) -#define EARGF(x) ARGF_(((x), exit(1), (char *)0)) -#define ARGF() ARGF_((char *)0) - -#endif diff --git a/.config/suckless/slstatus/config.h b/.config/suckless/slstatus/config.h deleted file mode 100644 index d4aba54..0000000 --- a/.config/suckless/slstatus/config.h +++ /dev/null @@ -1,11 +0,0 @@ -const unsigned short interval = 1000; -static const char unknown_str[] = "n/a"; -#define MAXLEN 2048 - -static const struct arg args[] = { - { run_command, "VOL: %s • ", "wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{printf \"%d%%\", $2 * 100}'" }, - { run_command, "Next Wallpaper: %s • ", "sh /home/andrew/.config/suckless/slstatus/scripts/wallpaper-countdown.sh" }, - { run_command, "Age: %s Days • ", "sh -c 'echo $(( ( $(date +%s) - $(stat -c %W /) ) / 86400 ))'" }, - { run_command, "Layout: %s • ", "sh /home/andrew/.config/suckless/slstatus/scripts/get_layout.sh" }, - { run_command, "Up: %s ", "uptime -p | cut -d ' ' -f2-" }, -}; diff --git a/.config/suckless/slstatus/config.mk b/.config/suckless/slstatus/config.mk index 35b3f05..2b1995a 100644 --- a/.config/suckless/slstatus/config.mk +++ b/.config/suckless/slstatus/config.mk @@ -1,7 +1,6 @@ -VERSION = 1.0 PREFIX = /usr/local -CPPFLAGS = $(shell pkg-config --cflags x11) -D_DEFAULT_SOURCE -DVERSION=\"${VERSION}\" +CPPFLAGS = $(shell pkg-config --cflags x11) -D_DEFAULT_SOURCE LDFLAGS = $(shell pkg-config --libs-only-L x11) -s LDLIBS = $(shell pkg-config --libs-only-l x11) CFLAGS = -std=c17 -pedantic -Wall -Wextra -Wno-unused-parameter -O2 -march=native diff --git a/.config/suckless/slstatus/run_command.c b/.config/suckless/slstatus/run_command.c deleted file mode 100644 index a69bac5..0000000 --- a/.config/suckless/slstatus/run_command.c +++ /dev/null @@ -1,31 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include -#include - -#include "slstatus.h" -#include "util.h" - -const char * -run_command(const char *cmd) -{ - char *p; - FILE *fp; - - if (!(fp = popen(cmd, "r"))) { - warn("popen '%s':", cmd); - return NULL; - } - - p = fgets(buf, sizeof(buf) - 1, fp); - if (pclose(fp) < 0) { - warn("pclose '%s':", cmd); - return NULL; - } - if (!p) - return NULL; - - if ((p = strrchr(buf, '\n'))) - p[0] = '\0'; - - return buf[0] ? buf : NULL; -} diff --git a/.config/suckless/slstatus/scripts/get_layout.sh b/.config/suckless/slstatus/scripts/get_layout.sh deleted file mode 100755 index 4107d72..0000000 --- a/.config/suckless/slstatus/scripts/get_layout.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -variant=$(setxkbmap -query | awk '/variant:/ { print $2 }') - -if [[ "$variant" == "colemak_dh" ]]; then - echo "CLMK" -else - echo "QWRT" -fi - diff --git a/.config/suckless/slstatus/slstatus.c b/.config/suckless/slstatus/slstatus.c index 78a0fdd..5446327 100644 --- a/.config/suckless/slstatus/slstatus.c +++ b/.config/suckless/slstatus/slstatus.c @@ -1,4 +1,3 @@ -/* See LICENSE file for copyright and license details. */ #include #include #include @@ -7,8 +6,6 @@ #include #include -#include "arg.h" -#include "slstatus.h" #include "util.h" struct arg { @@ -21,7 +18,10 @@ char buf[1024]; static volatile sig_atomic_t done; static Display *dpy; -#include "config.h" +const unsigned short interval = 1000; +const char unknown_str[] = "n/a"; +#define MAXLEN 2048 + static void terminate(const int signo) @@ -38,40 +38,46 @@ difftimespec(struct timespec *res, struct timespec *a, struct timespec *b) (a->tv_nsec < b->tv_nsec) * 1E9; } -static void -usage(void) +const char * +run_command(const char *cmd) { - die("usage: %s [-v] [-s] [-1]", argv0); + char *p; + FILE *fp; + + if (!(fp = popen(cmd, "r"))) { + return NULL; + } + + p = fgets(buf, sizeof(buf) - 1, fp); + if (pclose(fp) < 0) { + return NULL; + } + if (!p) + return NULL; + + if ((p = strrchr(buf, '\n'))) + p[0] = '\0'; + + return buf[0] ? buf : NULL; } +static const +struct arg args[] = { + { run_command, " %s till swap • ", "sh /home/andrew/.config/suckless/slstatus/scripts/wallpaper-countdown.sh" }, + { run_command, "VOL at %s • ", "wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{printf \"%d%%\", $2 * 100}'" }, + { run_command, "%s / 731 installed ", "sh -c 'echo $(( ( $(date +%s) - $(stat -c %W /) ) / 86400 ))'" }, +}; + int main(int argc, char *argv[]) { struct sigaction act; struct timespec start, current, diff, intspec, wait; size_t i, len; - int sflag, ret; + int ret; char status[MAXLEN]; const char *res; - sflag = 0; - ARGBEGIN { - case 'v': - die("slstatus-"VERSION); - /* fallthrough */ - case '1': - done = 1; - /* FALLTHROUGH */ - case 's': - sflag = 1; - break; - default: - usage(); - } ARGEND - - if (argc) - usage(); - memset(&act, 0, sizeof(act)); act.sa_handler = terminate; sigaction(SIGINT, &act, NULL); @@ -79,7 +85,7 @@ main(int argc, char *argv[]) act.sa_flags |= SA_RESTART; sigaction(SIGUSR1, &act, NULL); - if (!sflag && !(dpy = XOpenDisplay(NULL))) + if (!(dpy = XOpenDisplay(NULL))) die("XOpenDisplay: Failed to open display"); do { @@ -98,16 +104,9 @@ main(int argc, char *argv[]) len += ret; } - if (sflag) { - puts(status); - fflush(stdout); - if (ferror(stdout)) - die("puts:"); - } else { - if (XStoreName(dpy, DefaultRootWindow(dpy), status) < 0) - die("XStoreName: Allocation failed"); - XFlush(dpy); - } + if (XStoreName(dpy, DefaultRootWindow(dpy), status) < 0) + die("XStoreName: Allocation failed"); + XFlush(dpy); if (!done) { if (clock_gettime(CLOCK_MONOTONIC, ¤t) < 0) @@ -125,11 +124,9 @@ main(int argc, char *argv[]) } } while (!done); - if (!sflag) { - XStoreName(dpy, DefaultRootWindow(dpy), NULL); - if (XCloseDisplay(dpy) < 0) - die("XCloseDisplay: Failed to close display"); - } + XStoreName(dpy, DefaultRootWindow(dpy), NULL); + if (XCloseDisplay(dpy) < 0) + die("XCloseDisplay: Failed to close display"); return 0; } diff --git a/.config/suckless/slstatus/slstatus.h b/.config/suckless/slstatus/slstatus.h deleted file mode 100644 index 3a90982..0000000 --- a/.config/suckless/slstatus/slstatus.h +++ /dev/null @@ -1 +0,0 @@ -const char *run_command(const char *cmd); diff --git a/.config/suckless/slstatus/util.c b/.config/suckless/slstatus/util.c index bca9b2e..6915f09 100644 --- a/.config/suckless/slstatus/util.c +++ b/.config/suckless/slstatus/util.c @@ -1,5 +1,4 @@ /* See LICENSE file for copyright and license details. */ -#include #include #include #include @@ -23,16 +22,6 @@ verr(const char *fmt, va_list ap) } } -void -warn(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - verr(fmt, ap); - va_end(ap); -} - void die(const char *fmt, ...) { @@ -53,10 +42,8 @@ evsnprintf(char *str, size_t size, const char *fmt, va_list ap) ret = vsnprintf(str, size, fmt, ap); if (ret < 0) { - warn("vsnprintf:"); return -1; } else if ((size_t)ret >= size) { - warn("vsnprintf: Output truncated"); return -1; } @@ -110,7 +97,6 @@ fmt_human(uintmax_t num, int base) prefixlen = LEN(prefix_1024); break; default: - warn("fmt_human: Invalid base"); return NULL; } @@ -129,7 +115,6 @@ pscanf(const char *path, const char *fmt, ...) int n; if (!(fp = fopen(path, "r"))) { - warn("fopen '%s':", path); return -1; } va_start(ap, fmt); diff --git a/.config/suckless/slstatus/util.h b/.config/suckless/slstatus/util.h index cf4b027..acd6d81 100644 --- a/.config/suckless/slstatus/util.h +++ b/.config/suckless/slstatus/util.h @@ -1,4 +1,3 @@ -/* See LICENSE file for copyright and license details. */ #include extern char buf[1024]; @@ -7,7 +6,6 @@ extern char buf[1024]; extern char *argv0; -void warn(const char *, ...); void die(const char *, ...); int esnprintf(char *str, size_t size, const char *fmt, ...); diff --git a/.config/suckless/st/config.h b/.config/suckless/st/config.h index 30cb3d8..526dd2c 100644 --- a/.config/suckless/st/config.h +++ b/.config/suckless/st/config.h @@ -110,7 +110,7 @@ static unsigned int defaultrcs = 259; * 4: Underline ("_") * 6: Bar ("|") */ -static unsigned int cursorshape = 2; +// static unsigned int cursorshape = 2; static unsigned int cols = 80; static unsigned int rows = 24; @@ -329,92 +329,6 @@ static Key key[] = { { 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}, }; /* diff --git a/.config/suckless/st/config.mk b/.config/suckless/st/config.mk index 14820bf..990cbec 100644 --- a/.config/suckless/st/config.mk +++ b/.config/suckless/st/config.mk @@ -1,4 +1,4 @@ -VERSION = 0.9.2 +# VERSION = 0.9.2 PREFIX = /usr/local @@ -16,7 +16,7 @@ LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \ `$(PKG_CONFIG) --libs freetype2` # flags -STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 +STCPPFLAGS = -D_XOPEN_SOURCE=600 # -DVERSION=\"$(VERSION)\" STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS) STLDFLAGS = $(LIBS) $(LDFLAGS) diff --git a/.config/suckless/st/st.c b/.config/suckless/st/st.c index f17abbc..0ef7929 100644 --- a/.config/suckless/st/st.c +++ b/.config/suckless/st/st.c @@ -1869,16 +1869,6 @@ csihandle(void) tcursor(CURSOR_LOAD); } break; - case ' ': - switch (csiescseq.mode[1]) { - case 'q': /* DECSCUSR -- Set Cursor Style */ - if (xsetcursor(csiescseq.arg[0])) - goto unknown; - break; - default: - goto unknown; - } - break; } } diff --git a/.config/suckless/st/win.h b/.config/suckless/st/win.h index 6de960d..0081092 100644 --- a/.config/suckless/st/win.h +++ b/.config/suckless/st/win.h @@ -1,5 +1,3 @@ -/* See LICENSE for license details. */ - enum win_mode { MODE_VISIBLE = 1 << 0, MODE_FOCUSED = 1 << 1, @@ -33,7 +31,7 @@ int xsetcolorname(int, const char *); int xgetcolor(int, unsigned char *, unsigned char *, unsigned char *); void xseticontitle(char *); void xsettitle(char *); -int xsetcursor(int); +// int xsetcursor(int); void xsetmode(int, unsigned int); void xsetpointermotion(int); void xsetsel(char *); diff --git a/.config/suckless/st/x.c b/.config/suckless/st/x.c index f3744ea..b045ad6 100644 --- a/.config/suckless/st/x.c +++ b/.config/suckless/st/x.c @@ -1560,31 +1560,7 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) /* draw the new one */ if (IS_SET(MODE_FOCUSED)) { - switch (win.cursor) { - case 7: /* st extension */ - g.u = 0x2603; /* snowman (U+2603) */ - /* FALLTHROUGH */ - case 0: /* Blinking Block */ - case 1: /* Blinking Block (Default) */ - case 2: /* Steady Block */ - xdrawglyph(g, cx, cy); - break; - case 3: /* Blinking Underline */ - case 4: /* Steady Underline */ - XftDrawRect(xw.draw, &drawcol, - win.hborderpx + cx * win.cw, - win.vborderpx + (cy + 1) * win.ch - \ - cursorthickness, - win.cw, cursorthickness); - break; - case 5: /* Blinking bar */ - case 6: /* Steady bar */ - XftDrawRect(xw.draw, &drawcol, - win.hborderpx + cx * win.cw, - win.vborderpx + cy * win.ch, - cursorthickness, win.ch); - break; - } + xdrawglyph(g, cx, cy); } else { XftDrawRect(xw.draw, &drawcol, win.hborderpx + cx * win.cw, @@ -1743,15 +1719,6 @@ xsetmode(int set, unsigned int flags) redraw(); } -int -xsetcursor(int cursor) -{ - if (!BETWEEN(cursor, 0, 7)) /* 7: st extension */ - return 1; - win.cursor = cursor; - return 0; -} - void xseturgency(int add) { @@ -2041,48 +2008,12 @@ main(int argc, char *argv[]) { xw.l = xw.t = 0; xw.isfixed = False; - xsetcursor(cursorshape); ARGBEGIN { - case 'a': - allowaltscreen = 0; - break; - case 'c': - opt_class = EARGF(usage()); - break; case 'e': if (argc > 0) --argc, ++argv; goto run; - case 'f': - opt_font = EARGF(usage()); - break; - case 'g': - xw.gm = XParseGeometry(EARGF(usage()), - &xw.l, &xw.t, &cols, &rows); - break; - case 'i': - xw.isfixed = 1; - break; - case 'o': - opt_io = EARGF(usage()); - break; - case 'l': - opt_line = EARGF(usage()); - break; - case 'n': - opt_name = EARGF(usage()); - break; - case 't': - case 'T': - opt_title = EARGF(usage()); - break; - case 'w': - opt_embed = EARGF(usage()); - break; - case 'v': - die("%s " VERSION "\n", argv0); - break; default: usage(); } ARGEND;