From 95cf5437ffba2af999729beb24c83399d681f969 Mon Sep 17 00:00:00 2001 From: coast Date: Sun, 8 Jun 2025 02:28:08 +0330 Subject: [PATCH] new stuff --- .config/picom/picom/picom.conf | 22 ----- .suckless/dmenu/config.def.h | 34 +++----- .suckless/dmenu/config.h | 34 +++----- .suckless/dmenu/dmenu | Bin 42928 -> 42928 bytes .suckless/dmenu/dmenu.1 | 10 +-- .suckless/dmenu/dmenu.c | 144 +++++---------------------------- .suckless/dmenu/dmenu.o | Bin 31968 -> 31968 bytes 7 files changed, 47 insertions(+), 197 deletions(-) diff --git a/.config/picom/picom/picom.conf b/.config/picom/picom/picom.conf index e61389c..42eb62d 100644 --- a/.config/picom/picom/picom.conf +++ b/.config/picom/picom/picom.conf @@ -1,12 +1,9 @@ -# Speedy controlled animations animations = true; animation-stiffness-in-tag = 120; animation-stiffness-tag-change = 90.0; animation-window-mass = 0.3; animation-dampening = 5; animation-clamping = false; - -# Zoom, but FAST animation-for-open-window = "zoom"; animation-for-unmap-window = "zoom"; animation-for-transient-window = "zoom"; @@ -14,18 +11,13 @@ animation-for-prev-tag = "zoom"; animation-for-next-tag = "zoom"; animation-for-workspace-switch-in = "zoom"; animation-for-workspace-switch-out = "zoom"; - animation-max-size = 20; - -# Fading transitions (FASTER) enable-fading-prev-tag = true; enable-fading-next-tag = true; fading = true; fade-in-step = 0.07; fade-out-step = 0.06; fade-delta = 5; - -# Shadow stuff shadow = true; shadow-radius = 12; shadow-offset-x = -5; @@ -35,8 +27,6 @@ shadow-color = "#000000"; shadow-exclude = [ "class_g = 'slop'" ]; - -# Blur (still spicy) blur-background = true; blur-background-frame = true; blur-method = "dual_kawase"; @@ -48,20 +38,15 @@ blur-exclude = [ "class_g = 'maim'", "window_type = 'dock'" ]; - fading = true; fade-in-step = 0.03; fade-out-step = 0.03; fade-delta = 5; - -# Corners #corner-radius = 10; rounded-corners-exclude = [ "class_g = 'slop'", "class_g = 'maim'" ]; - -# Opacity rules opacity-rule = [ "93:class_g = 'discord'", "80:class_g = 'spotify'", @@ -74,7 +59,6 @@ opacity-rule = [ "100:class_g = 'slop'" ]; -# Focus and animation exclude focus-exclude = [ "class_g = 'slop'", "class_g = 'maim'" @@ -82,8 +66,6 @@ focus-exclude = [ animation-exclude = [ "class_g = 'slop'" ]; - -# General stuff daemon = false; backend = "glx"; dithered-present = false; @@ -101,8 +83,6 @@ xrender-sync-fence = true; window-shader-fg = "default"; transparent-clipping = false; log-level = "warn"; - -# Wintypes (with fast popup animations) wintypes: { tooltip = { fade = true; shadow = true; opacity = 0.95; focus = true; animations = true; animation-for-open-window = "zoom"; }; dock = { shadow = false; clip-shadow-above = true; }; @@ -111,8 +91,6 @@ wintypes: { dropdown_menu = { opacity = 0.95; animations = true; shadow = true; animation-for-open-window = "zoom"; }; unknown = { fade = false; shadow = false; opacity = 1.0; focus = false; full-shadow = false; clip-shadow-above = false; animations = false; }; }; - -# Global exclusion blur-exclude = [ "class_g = 'slop'", "class_g = 'screenie'", diff --git a/.suckless/dmenu/config.def.h b/.suckless/dmenu/config.def.h index fdee1d1..1edb647 100644 --- a/.suckless/dmenu/config.def.h +++ b/.suckless/dmenu/config.def.h @@ -1,33 +1,23 @@ /* See LICENSE file for copyright and license details. */ /* Default settings; can be overriden by command line. */ -static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ -static int centered = 1; /* -c option; centers dmenu on screen */ -static int min_width = 80; /* minimum width when centered */ -static const float menu_height_ratio = - 2.0f; /* This is the ratio used in the original calculation */ +static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ /* -fn option overrides fonts[0]; default X11 font or font set */ -static const char *fonts[] = {"monospace:size=10"}; -static const char *prompt = - NULL; /* -p option; prompt to the left of input field */ - -#include "/home/pixel/.cache/wal/colors-wal-dmenu.h" -// static const char *colors[SchemeLast][2] = { -/* fg bg */ -/* [SchemeNorm] = {"#bbbbbb", "#222222"}, - [SchemeSel] = {"#eeeeee", "#005577"}, - [SchemeOut] = {"#000000", "#00ffff"}, +static const char *fonts[] = { + "monospace:size=10" +}; +static const char *prompt = NULL; /* -p option; prompt to the left of input field */ +static const char *colors[SchemeLast][2] = { + /* fg bg */ + [SchemeNorm] = { "#bbbbbb", "#222222" }, + [SchemeSel] = { "#eeeeee", "#005577" }, + [SchemeOut] = { "#000000", "#00ffff" }, }; -*/ -/* -l and -g options; controls number of lines and columns in grid if > 0 */ -static unsigned int lines = 9; -static unsigned int columns = 1; +/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ +static unsigned int lines = 0; /* * Characters not considered part of a word while deleting words * for example: " /?\"&[]" */ static const char worddelimiters[] = " "; - -/* Size of the window border */ -static unsigned int border_width = 3; diff --git a/.suckless/dmenu/config.h b/.suckless/dmenu/config.h index fdee1d1..ad70a45 100644 --- a/.suckless/dmenu/config.h +++ b/.suckless/dmenu/config.h @@ -1,33 +1,23 @@ /* See LICENSE file for copyright and license details. */ /* Default settings; can be overriden by command line. */ -static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ -static int centered = 1; /* -c option; centers dmenu on screen */ -static int min_width = 80; /* minimum width when centered */ -static const float menu_height_ratio = - 2.0f; /* This is the ratio used in the original calculation */ +static int topbar = 0; /* -b option; if 0, dmenu appears at bottom */ /* -fn option overrides fonts[0]; default X11 font or font set */ -static const char *fonts[] = {"monospace:size=10"}; -static const char *prompt = - NULL; /* -p option; prompt to the left of input field */ - -#include "/home/pixel/.cache/wal/colors-wal-dmenu.h" -// static const char *colors[SchemeLast][2] = { -/* fg bg */ -/* [SchemeNorm] = {"#bbbbbb", "#222222"}, - [SchemeSel] = {"#eeeeee", "#005577"}, - [SchemeOut] = {"#000000", "#00ffff"}, +static const char *fonts[] = { + "monospace:size=10" +}; +static const char *prompt = NULL; /* -p option; prompt to the left of input field */ +static const char *colors[SchemeLast][2] = { + /* fg bg */ + [SchemeNorm] = { "#bbbbbb", "#222222" }, + [SchemeSel] = { "#eeeeee", "#005577" }, + [SchemeOut] = { "#000000", "#00ffff" }, }; -*/ -/* -l and -g options; controls number of lines and columns in grid if > 0 */ -static unsigned int lines = 9; -static unsigned int columns = 1; +/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ +static unsigned int lines = 0; /* * Characters not considered part of a word while deleting words * for example: " /?\"&[]" */ static const char worddelimiters[] = " "; - -/* Size of the window border */ -static unsigned int border_width = 3; diff --git a/.suckless/dmenu/dmenu b/.suckless/dmenu/dmenu index 656bab89d05ef91e4c08f9e592538f3236578d6e..9a463a4ce77d0a1b37b22d5a5d13750a5e3fcb8b 100755 GIT binary patch delta 120 zcmdmRo@oOREnpT=d1bq&?7+`s%D*qHi zW}LIxP|K8&F?Djf_AREM@X5|PiHz?zFV)cwn|!57XA(2Zre;4DX-S3|%?x0`0-+ex S85tND86+4kY|d(=`(aJ4IvcAS#~tCDYqPWiULpdzT$2X@^H37^^1j diff --git a/.suckless/dmenu/dmenu.1 b/.suckless/dmenu/dmenu.1 index 57ea184..323f93c 100644 --- a/.suckless/dmenu/dmenu.1 +++ b/.suckless/dmenu/dmenu.1 @@ -4,8 +4,6 @@ dmenu \- dynamic menu .SH SYNOPSIS .B dmenu .RB [ \-bfiv ] -.RB [ \-g -.IR columns ] .RB [ \-l .IR lines ] .RB [ \-m @@ -42,9 +40,6 @@ which lists programs in the user's $PATH and runs the result in their $SHELL. .B \-b dmenu appears at the bottom of the screen. .TP -.B \-c -dmenu appears centered on the screen. -.TP .B \-f dmenu grabs the keyboard before reading stdin if not reading from a tty. This is faster, but will lock up X until stdin reaches end\-of\-file. @@ -52,11 +47,8 @@ is faster, but will lock up X until stdin reaches end\-of\-file. .B \-i dmenu matches menu items case insensitively. .TP -.BI \-g " columns" -dmenu lists items in a grid with the given number of columns. -.TP .BI \-l " lines" -dmenu lists items in a grid with the given number of lines. +dmenu lists items vertically, with the given number of lines. .TP .BI \-m " monitor" dmenu is displayed on the monitor number supplied. Monitor numbers are starting diff --git a/.suckless/dmenu/dmenu.c b/.suckless/dmenu/dmenu.c index 77f7c77..fd49549 100644 --- a/.suckless/dmenu/dmenu.c +++ b/.suckless/dmenu/dmenu.c @@ -15,7 +15,6 @@ #include #endif #include -#include #include "drw.h" #include "util.h" @@ -53,10 +52,6 @@ static XIC xic; static Drw *drw; static Clr *scheme[SchemeLast]; -/* Temporary arrays to allow overriding xresources values */ -static char *colortemp[4]; -static char *tempfonts; - #include "config.h" static int (*fstrncmp)(const char *, const char *, size_t) = strncmp; @@ -88,7 +83,7 @@ calcoffsets(void) int i, n; if (lines > 0) - n = lines * columns * bh; + n = lines * bh; else n = mw - (promptw + inputw + TEXTW("<") + TEXTW(">")); /* calculate which items will begin the next page and previous page */ @@ -100,21 +95,12 @@ calcoffsets(void) break; } -static int -max_textw(void) -{ - int len = 0; - for (struct item *item = items; item && item->text; item++) - len = MAX(TEXTW(item->text), len); - return len; -} - static void cleanup(void) { size_t i; - XUngrabKey(dpy, AnyKey, AnyModifier, root); + XUngrabKeyboard(dpy, CurrentTime); for (i = 0; i < SchemeLast; i++) free(scheme[i]); for (i = 0; items && items[i].text; ++i) @@ -182,15 +168,9 @@ drawmenu(void) } if (lines > 0) { - /* draw grid */ - int i = 0; - for (item = curr; item != next; item = item->right, i++) - drawitem( - item, - x + ((i / lines) * ((mw - x) / columns)), - y + (((i % lines) + 1) * bh), - (mw - x) / columns - ); + /* draw vertical list */ + for (item = curr; item != next; item = item->right) + drawitem(item, x, y += bh, mw - x); } else if (matches) { /* draw horizontal list */ x += inputw; @@ -646,13 +626,8 @@ setup(void) int a, di, n, area = 0; #endif /* init appearance */ - for (j = 0; j < SchemeLast; j++) { - scheme[j] = drw_scm_create(drw, (const char**)colors[j], 2); - } - for (j = 0; j < SchemeOut; ++j) { - for (i = 0; i < 2; ++i) - free(colors[j][i]); - } + for (j = 0; j < SchemeLast; j++) + scheme[j] = drw_scm_create(drw, colors[j], 2); clip = XInternAtom(dpy, "CLIPBOARD", False); utf8 = XInternAtom(dpy, "UTF8_STRING", False); @@ -661,7 +636,6 @@ setup(void) bh = drw->fonts->h + 2; lines = MAX(lines, 0); mh = (lines + 1) * bh; - promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0; #ifdef XINERAMA i = 0; if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) { @@ -688,16 +662,9 @@ setup(void) if (INTERSECT(x, y, 1, 1, info[i]) != 0) break; - if (centered) { - mw = MIN(MAX(max_textw() + promptw, min_width), info[i].width); - x = info[i].x_org + ((info[i].width - mw) / 2); - y = info[i].y_org + ((info[i].height - mh) / menu_height_ratio); - } else { - x = info[i].x_org; - y = info[i].y_org + (topbar ? 0 : info[i].height - mh); - mw = info[i].width; - } - + x = info[i].x_org; + y = info[i].y_org + (topbar ? 0 : info[i].height - mh); + mw = info[i].width; XFree(info); } else #endif @@ -705,16 +672,9 @@ setup(void) if (!XGetWindowAttributes(dpy, parentwin, &wa)) die("could not get embedding window attributes: 0x%lx", parentwin); - - if (centered) { - mw = MIN(MAX(max_textw() + promptw, min_width), wa.width); - x = (wa.width - mw) / 2; - y = (wa.height - mh) / 2; - } else { - x = 0; - y = topbar ? 0 : wa.height - mh; - mw = wa.width; - } + x = 0; + y = topbar ? 0 : wa.height - mh; + mw = wa.width; } promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0; inputw = mw / 3; /* input width: ~33% of monitor width */ @@ -724,11 +684,9 @@ setup(void) swa.override_redirect = True; swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; - win = XCreateWindow(dpy, root, x, y, mw, mh, border_width, + win = XCreateWindow(dpy, root, x, y, mw, mh, 0, CopyFromParent, CopyFromParent, CopyFromParent, CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); - if (border_width) - XSetWindowBorder(dpy, win, scheme[SchemeSel][ColBg].pixel); XSetClassHint(dpy, win, &ch); /* input methods */ @@ -760,41 +718,6 @@ usage(void) " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]"); } -void -readxresources(void) { - XrmInitialize(); - - char* xrm; - if ((xrm = XResourceManagerString(drw->dpy))) { - char *type; - XrmDatabase xdb = XrmGetStringDatabase(xrm); - XrmValue xval; - - if (XrmGetResource(xdb, "dmenu.font", "*", &type, &xval)) - fonts[0] = strdup(xval.addr); - else - fonts[0] = strdup(fonts[0]); - if (XrmGetResource(xdb, "dmenu.background", "*", &type, &xval)) - colors[SchemeNorm][ColBg] = strdup(xval.addr); - else - colors[SchemeNorm][ColBg] = strdup(colors[SchemeNorm][ColBg]); - if (XrmGetResource(xdb, "dmenu.foreground", "*", &type, &xval)) - colors[SchemeNorm][ColFg] = strdup(xval.addr); - else - colors[SchemeNorm][ColFg] = strdup(colors[SchemeNorm][ColFg]); - if (XrmGetResource(xdb, "dmenu.selbackground", "*", &type, &xval)) - colors[SchemeSel][ColBg] = strdup(xval.addr); - else - colors[SchemeSel][ColBg] = strdup(colors[SchemeSel][ColBg]); - if (XrmGetResource(xdb, "dmenu.selforeground", "*", &type, &xval)) - colors[SchemeSel][ColFg] = strdup(xval.addr); - else - colors[SchemeSel][ColFg] = strdup(colors[SchemeSel][ColFg]); - - XrmDestroyDatabase(xdb); - } -} - int main(int argc, char *argv[]) { @@ -810,38 +733,30 @@ main(int argc, char *argv[]) topbar = 0; else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */ fast = 1; - else if (!strcmp(argv[i], "-c")) /* centers dmenu on screen */ - centered = 1; else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */ fstrncmp = strncasecmp; fstrstr = cistrstr; } else if (i + 1 == argc) usage(); /* these options take one argument */ - else if (!strcmp(argv[i], "-g")) { /* number of columns in grid */ - columns = atoi(argv[++i]); - if (lines == 0) lines = 1; - } else if (!strcmp(argv[i], "-l")) { /* number of lines in grid */ + else if (!strcmp(argv[i], "-l")) /* number of lines in vertical list */ lines = atoi(argv[++i]); - if (columns == 0) columns = 1; - } else if (!strcmp(argv[i], "-m")) + else if (!strcmp(argv[i], "-m")) mon = atoi(argv[++i]); else if (!strcmp(argv[i], "-p")) /* adds prompt to left of input field */ prompt = argv[++i]; else if (!strcmp(argv[i], "-fn")) /* font or font set */ - tempfonts = argv[++i]; + fonts[0] = argv[++i]; else if (!strcmp(argv[i], "-nb")) /* normal background color */ - colortemp[0] = argv[++i]; + colors[SchemeNorm][ColBg] = argv[++i]; else if (!strcmp(argv[i], "-nf")) /* normal foreground color */ - colortemp[1] = argv[++i]; + colors[SchemeNorm][ColFg] = argv[++i]; else if (!strcmp(argv[i], "-sb")) /* selected background color */ - colortemp[2] = argv[++i]; + colors[SchemeSel][ColBg] = argv[++i]; else if (!strcmp(argv[i], "-sf")) /* selected foreground color */ - colortemp[3] = argv[++i]; + colors[SchemeSel][ColFg] = argv[++i]; else if (!strcmp(argv[i], "-w")) /* embedding window id */ embed = argv[++i]; - else if (!strcmp(argv[i], "-bw")) - border_width = atoi(argv[++i]); /* border width */ else usage(); @@ -857,23 +772,8 @@ main(int argc, char *argv[]) die("could not get embedding window attributes: 0x%lx", parentwin); drw = drw_create(dpy, screen, root, wa.width, wa.height); - readxresources(); - /* Now we check whether to override xresources with commandline parameters */ - if ( tempfonts ) - fonts[0] = strdup(tempfonts); - if ( colortemp[0]) - colors[SchemeNorm][ColBg] = strdup(colortemp[0]); - if ( colortemp[1]) - colors[SchemeNorm][ColFg] = strdup(colortemp[1]); - if ( colortemp[2]) - colors[SchemeSel][ColBg] = strdup(colortemp[2]); - if ( colortemp[3]) - colors[SchemeSel][ColFg] = strdup(colortemp[3]); - - if (!drw_fontset_create(drw, (const char**)fonts, LENGTH(fonts))) + if (!drw_fontset_create(drw, fonts, LENGTH(fonts))) die("no fonts could be loaded."); - - free(fonts[0]); lrpad = drw->fonts->h; #ifdef __OpenBSD__ diff --git a/.suckless/dmenu/dmenu.o b/.suckless/dmenu/dmenu.o index e4915920c257b8588ba36d0e1a7d63156f322041..abfb67e9d61cc52d1a5b16f5198223a9df06c8ea 100644 GIT binary patch delta 155 zcmaFxlkve%#tkocIQ|0x0}yQfz!N4X%)%f6;s5~)gkn&i?5Hiixj_4kDi26V1S-5a zBd~&z;}1wT5Nv)Cbc3A}#@jPlF-m;$gQx|Jzb7|FM}zeVL-kF55&eW0WDrb1WAejT S@y#D%0;CyPHak|#X8{0n5H!L7 delta 159 zcmaFxlkve%#tkocI2aii82$sn<_|n!a?;E|9t5yJX?36iMh0dEmd%OUzg2la3jTo9 z1HtBuzzRkVs5*wtFM@8cbHaFgCM!mXPks=!fbsw2#^`9UzTXgS|0lnQe!>ef2qvI0 V`C+X1<_|Fe(u^FN9V_Ou002Z-J7WL<