This commit is contained in:
DarthMooMancer
2025-08-04 12:43:36 -04:00
parent 51c90a88f8
commit 9b04646c65
20 changed files with 100 additions and 423 deletions
+8 -2
View File
@@ -22,12 +22,18 @@ vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "<leader>ff", "ggVG=")
vim.keymap.set('n', '<leader><leader>', ":Pick files<CR>")
vim.keymap.set('n', '<leader>xh', ":Pick help<CR>")
vim.keymap.set('n', '<leader>xx', ":Pick diagnostic<CR>")
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()
-2
View File
@@ -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
+1 -10
View File
@@ -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}
+36 -80
View File
@@ -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);
}
+9 -9
View File
@@ -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"
-33
View File
@@ -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
-11
View File
@@ -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-" },
};
+1 -2
View File
@@ -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
-31
View File
@@ -1,31 +0,0 @@
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
#include <string.h>
#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;
}
@@ -1,10 +0,0 @@
#!/bin/bash
variant=$(setxkbmap -query | awk '/variant:/ { print $2 }')
if [[ "$variant" == "colemak_dh" ]]; then
echo "CLMK"
else
echo "QWRT"
fi
+39 -42
View File
@@ -1,4 +1,3 @@
/* See LICENSE file for copyright and license details. */
#include <errno.h>
#include <signal.h>
#include <stdio.h>
@@ -7,8 +6,6 @@
#include <time.h>
#include <X11/Xlib.h>
#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, &current) < 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;
}
-1
View File
@@ -1 +0,0 @@
const char *run_command(const char *cmd);
-15
View File
@@ -1,5 +1,4 @@
/* See LICENSE file for copyright and license details. */
#include <errno.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
@@ -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);
-2
View File
@@ -1,4 +1,3 @@
/* See LICENSE file for copyright and license details. */
#include <stdint.h>
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, ...);
+1 -87
View File
@@ -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},
};
/*
+2 -2
View File
@@ -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)
-10
View File
@@ -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;
}
}
+1 -3
View File
@@ -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 *);
+1 -70
View File
@@ -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;