diff --git a/config.def.h b/config.def.h index 35beb92..952efed 100644 --- a/config.def.h +++ b/config.def.h @@ -5,10 +5,13 @@ * * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html */ -static char *font = "Cascadia Code NF:regular:pixelsize=13.5:fontfeatures=calt,ss01:antialias=true:autohint=true"; +static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; #if FONT2_PATCH /* Spare fonts */ -static char *font2[] = { "CaskaydiaCove Nerd Font:pixelsize=13.5:antialias=true:autohint=true" }; +static char *font2[] = { +/* "Inconsolata for Powerline:pixelsize=12:antialias=true:autohint=true", */ +/* "Hack Nerd Font Mono:pixelsize=11:antialias=true:autohint=true", */ +}; #endif // FONT2_PATCH #if BACKGROUND_IMAGE_PATCH @@ -127,11 +130,11 @@ int hidecursor = 1; * Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored. * 0: disable (render all U25XX glyphs normally from the font). */ -const int boxdraw = 1; -const int boxdraw_bold = 1; +const int boxdraw = 0; +const int boxdraw_bold = 0; /* braille (U28XX): 1: render as adjacent "pixels", 0: use font */ -const int boxdraw_braille = 1; +const int boxdraw_braille = 0; #endif // BOXDRAW_PATCH /* @@ -173,69 +176,36 @@ float alphaUnfocused = 0.6; #endif // ALPHA_PATCH /* Terminal colors (16 first used in escape sequence) */ -static char *colorname[] = { - "#011627", /* hard contrast: #1d2021 / soft contrast: #32302f */ - "#d3423e", - "#2aa298", - "#daaa01", - "#4876d6", - "#403f53", - "#08916a", - "#7a8181", - "#7a8181", - "#f76e6e", - "#49d0c5", - "#dac26b", - "#5ca7e4", - "#697098", - "#00c990", - "#989fb1", - [255] = 0, - /* more colors can be added after 255 to use with DefaultXX */ - "#403f53", /* 256 -> cursor */ - "#f2f2f2", /* 257 -> rev cursor*/ - "#ffffff", /* 258 -> bg */ - "#403f53", /* 259 -> fg */ +static const char *colorname[] = { + /* 8 normal colors */ + "black", + "red3", + "green3", + "yellow3", + "blue2", + "magenta3", + "cyan3", + "gray90", + + /* 8 bright colors */ + "gray50", + "red", + "green", + "yellow", + "#5c5cff", + "magenta", + "cyan", + "white", + + [255] = 0, + + /* more colors can be added after 255 to use with DefaultXX */ + "#add8e6", /* 256 -> cursor */ + "#555555", /* 257 -> rev cursor*/ + "#000000", /* 258 -> bg */ + "#e5e5e5", /* 259 -> fg */ }; -#if DARKMAN_PATCH -#define colorname_len (sizeof(colorname) / sizeof(char *)) - -enum theme { - THEME_LIGHT, - THEME_DARK, - THEME_NUM, -}; - -/* Terminal colors (16 first used in escape sequence) */ -static const char *colornames[THEME_NUM][colorname_len] = { - { }, { - "#1a1a1a", /* hard contrast: #1d2021 / soft contrast: #32302f */ - "#f4005f", - "#98e024", - "#fa8419", - "#9d65ff", - "#f4005f", - "#58d1eb", - "#c4c5b5", - "#625e4c", - "#f4005f", - "#98e024", - "#e0d561", - "#9d65ff", - "#f4005f", - "#58d1eb", - "#f6f6ef", - [255] = 0, - /* more colors can be added after 255 to use with DefaultXX */ - "#aaaaaa", /* 256 -> cursor */ - "#555555", /* 257 -> rev cursor*/ - "#000000", /* 258 -> bg */ - "#ffffff", /* 259 -> fg */ -}}; - -#endif // DARKMAN_PATCH - /* * Default colors (colorname index) @@ -398,8 +368,8 @@ static MouseShortcut mshortcuts[] = { { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, #endif // CLIPBOARD_PATCH #if SCROLLBACK_MOUSE_PATCH - { ShiftMask, Button4, kscrollup, {.i = 4}, 0, S_PRI}, - { ShiftMask, Button5, kscrolldown, {.i = 4}, 0, S_PRI}, + { ShiftMask, Button4, kscrollup, {.i = 1}, 0, S_PRI}, + { ShiftMask, Button5, kscrolldown, {.i = 1}, 0, S_PRI}, #elif UNIVERSCROLL_PATCH { XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, S_PRI }, { XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, S_PRI }, @@ -408,8 +378,8 @@ static MouseShortcut mshortcuts[] = { { ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} }, #endif // SCROLLBACK_MOUSE_PATCH #if SCROLLBACK_MOUSE_ALTSCREEN_PATCH || REFLOW_PATCH - { XK_ANY_MOD, Button4, kscrollup, {.i = 4}, 0, S_PRI }, - { XK_ANY_MOD, Button5, kscrolldown, {.i = 4}, 0, S_PRI }, + { XK_ANY_MOD, Button4, kscrollup, {.i = 1}, 0, S_PRI }, + { XK_ANY_MOD, Button5, kscrolldown, {.i = 1}, 0, S_PRI }, { XK_ANY_MOD, Button4, ttysend, {.s = "\031"}, 0, S_ALT }, { XK_ANY_MOD, Button5, ttysend, {.s = "\005"}, 0, S_ALT }, #else @@ -440,8 +410,8 @@ static Shortcut shortcuts[] = { { ControlMask, XK_Print, toggleprinter, {.i = 0} }, { ShiftMask, XK_Print, printscreen, {.i = 0} }, { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, - { MODKEY | ControlMask, XK_comma, zoom, {.f = +1} }, - { MODKEY | ControlMask, XK_semicolon, zoom, {.f = -1} }, + { 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} }, @@ -485,7 +455,7 @@ static Shortcut shortcuts[] = { #endif // EXTERNALPIPEIN_PATCH #endif // EXTERNALPIPE_PATCH #if KEYBOARDSELECT_PATCH - { TERMMOD, XK_space, keyboard_select, { 0 } }, + { TERMMOD, XK_Escape, keyboard_select, { 0 } }, #endif // KEYBOARDSELECT_PATCH #if KEYBOARDSELECT_PATCH && REFLOW_PATCH { TERMMOD, XK_F, searchforward, { 0 } }, diff --git a/config.mk b/config.mk index 832bcff..ffcd3cb 100644 --- a/config.mk +++ b/config.mk @@ -21,14 +21,14 @@ PKG_CONFIG = pkg-config #XCURSOR = `$(PKG_CONFIG) --libs xcursor` # Uncomment the lines below for the ligatures patch / LIGATURES_PATCH -LIGATURES_C = hb.c -LIGATURES_H = hb.h -LIGATURES_INC = `$(PKG_CONFIG) --cflags harfbuzz` -LIGATURES_LIBS = `$(PKG_CONFIG) --libs harfbuzz` +#LIGATURES_C = hb.c +#LIGATURES_H = hb.h +#LIGATURES_INC = `$(PKG_CONFIG) --cflags harfbuzz` +#LIGATURES_LIBS = `$(PKG_CONFIG) --libs harfbuzz` # Uncomment this for the SIXEL patch / SIXEL_PATCH -SIXEL_C = sixel.c sixel_hls.c -SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2` +#SIXEL_C = sixel.c sixel_hls.c +#SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2` # Uncomment for the netwmicon patch / NETWMICON_PATCH #NETWMICON_LIBS = `$(PKG_CONFIG) --libs gdlib` diff --git a/default.nix b/default.nix deleted file mode 100644 index 0450b6c..0000000 --- a/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, stdenv -, pkg-config -, fontconfig -, freetype -, libX11 -, libXft -, harfbuzz -, gd -, glib -, ncurses -, writeText -, conf ? null -, patches ? [] -, extraLibs ? [] -, nixosTests -, imlib2 -}: - -stdenv.mkDerivation rec { - pname = "st"; - version = "0.8.5"; - - src = ./.; - inherit patches; - - configFile = - lib.optionalString (conf != null) (writeText "config.def.h" conf); - - postPatch = lib.optionalString (conf != null) "cp ${configFile} config.def.h" - + lib.optionalString stdenv.isDarwin '' - substituteInPlace config.mk --replace "-lrt" "" - ''; - - strictDeps = true; - - makeFlags = [ "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ]; - - nativeBuildInputs = [ pkg-config ncurses fontconfig freetype ]; - buildInputs = [ libX11 libXft harfbuzz gd glib imlib2 ] ++ extraLibs; - - preInstall = '' - export TERMINFO=$out/share/terminfo - ''; - - installFlags = [ "PREFIX=$(out)" ]; - - passthru.tests.test = nixosTests.terminal-emulators.st; - - meta = with lib; { - description = "st terminal"; - license = licenses.mit; - maintainers = with maintainers; [ sioodmy ]; - platforms = platforms.unix; - }; -} diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 586a00c..0000000 --- a/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1736549401, - "narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index a30e80d..0000000 --- a/flake.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - description = "st terminal"; - - inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; - inputs.flake-utils.url = "github:numtide/flake-utils"; - - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in rec { - packages = flake-utils.lib.flattenTree { - st = pkgs.callPackage ./default.nix { }; - }; - defaultPackage = packages.st; - apps.st = flake-utils.lib.mkApp { - drv = packages.st; - exePath = "/bin/st"; - }; - apps.default = apps.st; - defaultApp = apps.st; - devShell = pkgs.mkShell rec { - name = "st"; - packages = with pkgs; [ - pkg-config - xorg.libX11 - xorg.libXft - fontconfig - harfbuzz.dev - imlib2 - gd - glib - # ccls - # bear - # lldb - # gdb - # valgrind - ]; - }; - - }); -} diff --git a/patches.def.h b/patches.def.h index 46834e8..dbfb2a0 100644 --- a/patches.def.h +++ b/patches.def.h @@ -14,7 +14,7 @@ * when including this patch. * https://st.suckless.org/patches/alpha/ */ -#define ALPHA_PATCH 1 +#define ALPHA_PATCH 0 /* The alpha focus highlight patch allows the user to specify two distinct opacity values or * background colors in order to easily differentiate between focused and unfocused terminal @@ -70,12 +70,12 @@ * This patch makes bold text rendered simply as bold, leaving the color unaffected. * https://st.suckless.org/patches/bold-is-not-bright/ */ -#define BOLD_IS_NOT_BRIGHT_PATCH 1 +#define BOLD_IS_NOT_BRIGHT_PATCH 0 /* This patch adds custom rendering of lines/blocks/braille characters for gapless alignment. * https://st.suckless.org/patches/boxdraw/ */ -#define BOXDRAW_PATCH 1 +#define BOXDRAW_PATCH 0 /* By default st only sets PRIMARY on selection. * This patch makes st set CLIPBOARD on selection. @@ -176,7 +176,7 @@ * that are available to GUI applications. * https://st.suckless.org/patches/fix_keyboard_input/ */ -#define FIXKEYBOARDINPUT_PATCH 1 +#define FIXKEYBOARDINPUT_PATCH 0 /* This patch allows you to add spare font besides the default. Some glyphs can be not present in * the default font. For this glyphs st uses font-config and try to find them in font cache first. @@ -184,7 +184,7 @@ * So they will be used first for glyphs that are absent in the default font. * https://st.suckless.org/patches/font2/ */ -#define FONT2_PATCH 1 +#define FONT2_PATCH 0 /* This patch adds the ability to toggle st into fullscreen mode. * Two key bindings are defined: F11 which is typical with other applications and Alt+Enter @@ -223,7 +223,7 @@ * * https://st.suckless.org/patches/keyboard_select/ */ -#define KEYBOARDSELECT_PATCH 1 +#define KEYBOARDSELECT_PATCH 0 /* This patch adds support for drawing ligatures using the Harfbuzz library to transform * original text of a single line to a list of glyphs with ligatures included. @@ -239,9 +239,6 @@ */ #define FONTFEATURES_PATCH 1 -#define DARKMAN_PATCH 1 - - /* This patch makes st ignore terminal color attributes by forcing display of the default * foreground and background colors only - making for a monochrome look. Idea ref. * https://www.reddit.com/r/suckless/comments/ixbx6z/how_to_use_black_and_white_only_for_st/ @@ -286,7 +283,7 @@ * same CWD (current working directory) as the original st instance. * https://st.suckless.org/patches/newterm/ */ -#define NEWTERM_PATCH 1 +#define NEWTERM_PATCH 0 /* This patch will set the _MOTIF_WM_HINTS property for the st window which, if the window manager * respects it, will show the st window without window decorations. @@ -306,7 +303,7 @@ * * https://www.reddit.com/r/suckless/comments/cc83om/st_open_url/ */ -#define OPENURLONCLICK_PATCH 1 +#define OPENURLONCLICK_PATCH 0 /* This patch allows st to fetch the current working directory through the OSC 7 escape * sequence emitted by shells. Must be used with newterm patch. @@ -328,7 +325,7 @@ * Text wraps when the terminal window is made smaller. * Comes with scrollback. */ -#define REFLOW_PATCH 1 +#define REFLOW_PATCH 0 /* This patch allows you to specify a border that is relative in size to the width of a cell * in the terminal. @@ -345,19 +342,19 @@ /* Scroll back through terminal output using Shift+{PageUp, PageDown}. * https://st.suckless.org/patches/scrollback/ */ -#define SCROLLBACK_PATCH 1 +#define SCROLLBACK_PATCH 0 /* Scroll back through terminal output using Shift+MouseWheel. * This variant depends on SCROLLBACK_PATCH being enabled. * https://st.suckless.org/patches/scrollback/ */ -#define SCROLLBACK_MOUSE_PATCH 1 +#define SCROLLBACK_MOUSE_PATCH 0 /* Scroll back through terminal output using mouse wheel (when not in MODE_ALTSCREEN). * This variant depends on SCROLLBACK_PATCH being enabled. * https://st.suckless.org/patches/scrollback/ */ -#define SCROLLBACK_MOUSE_ALTSCREEN_PATCH 1 +#define SCROLLBACK_MOUSE_ALTSCREEN_PATCH 0 /* This patch adds the two color-settings selectionfg and selectionbg to config.def.h. * Those define the fore- and background colors which are used when text on the screen is selected @@ -385,7 +382,7 @@ * * https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809 */ -#define SIXEL_PATCH 1 +#define SIXEL_PATCH 0 /* This patch allows clients to embed into the st window and is useful if you tend to * start X applications from the terminal. For example: @@ -445,7 +442,7 @@ * * https://st.suckless.org/patches/undercurl/ */ -#define UNDERCURL_PATCH 1 +#define UNDERCURL_PATCH 0 /* Allows mouse scroll without modifier keys for regardless of alt screen using the external * scroll program. diff --git a/x.c b/x.c index 7bf72e9..a54304f 100644 --- a/x.c +++ b/x.c @@ -795,13 +795,10 @@ setsel(char *str, Time t) #endif // CLIPBOARD_PATCH } -#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH || DARKMAN_PATCH +#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH void sigusr1_reload(int sig) { - #if DARKMAN_PATCH - xloadcols(); - #endif // DARKMAN_PATCH #if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH reload_config(sig); #endif // XRESOURCES_RELOAD_PATCH @@ -979,28 +976,6 @@ xloadalpha(void) } #endif // ALPHA_FOCUS_HIGHLIGHT_PATCH -#if DARKMAN_PATCH -void -darkmanThemeChoose() { - FILE *fp; - char path[128]; - - fp = popen("darkman get", "r"); - if (fp == NULL) { - memcpy(colorname, colornames[0], sizeof(colorname)); - } else { - /* match the stdout with the theme */ - while (fgets(path, sizeof(path)-1, fp) != NULL) { - if (strcmp(path, "light\n") == 0) { - memcpy(colorname, colornames[0], sizeof(colorname)); - } else if (strcmp(path, "dark\n") == 0) { - memcpy(colorname, colornames[1], sizeof(colorname)); - } - } - } -} -#endif // DARKMAN_PATCH - #if ALPHA_PATCH && ALPHA_FOCUS_HIGHLIGHT_PATCH void xloadcols(void) @@ -1034,8 +1009,6 @@ xloadcols(void) static int loaded; Color *cp; - darkmanThemeChoose(); - if (loaded) { for (cp = dc.col; cp < &dc.col[dc.collen]; ++cp) XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); @@ -4005,12 +3978,9 @@ run: setlocale(LC_CTYPE, ""); XSetLocaleModifiers(""); - #if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH || DARKMAN_PATCH + #if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH signal(SIGUSR1, sigusr1_reload); - #endif // XRESOURCES_RELOAD_PATCH | BACKGROUND_IMAGE_RELOAD_PATCH | DARKMAN_PATCH - #if DARKMAN_PATCH - memcpy(colornames[0], colorname, sizeof(colorname)); - #endif // DARKMAN_PATCH + #endif // XRESOURCES_RELOAD_PATCH | BACKGROUND_IMAGE_RELOAD_PATCH #if XRESOURCES_PATCH if (!(xw.dpy = XOpenDisplay(NULL))) die("Can't open display\n");