wip
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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,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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, ¤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;
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
const char *run_command(const char *cmd);
|
||||
@@ -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);
|
||||
|
||||
@@ -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, ...);
|
||||
|
||||
@@ -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},
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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,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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user