Compare commits
10 commits
4397a1814f
...
cae36041b4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cae36041b4 | ||
|
|
304293d4e1 | ||
|
|
5a65d4a512 | ||
|
|
0f0f929022 | ||
|
|
2a20129a48 | ||
|
|
f2c7f80738 | ||
|
|
0b4c1084f0 | ||
|
|
816061be47 | ||
|
|
292f3ae44d | ||
|
|
c87ded477c |
7 changed files with 287 additions and 66 deletions
110
config.def.h
110
config.def.h
|
|
@ -5,13 +5,10 @@
|
||||||
*
|
*
|
||||||
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
|
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
|
||||||
*/
|
*/
|
||||||
static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
|
static char *font = "Cascadia Code NF:regular:pixelsize=13.5:fontfeatures=calt,ss01:antialias=true:autohint=true";
|
||||||
#if FONT2_PATCH
|
#if FONT2_PATCH
|
||||||
/* Spare fonts */
|
/* Spare fonts */
|
||||||
static char *font2[] = {
|
static char *font2[] = { "CaskaydiaCove Nerd Font:pixelsize=13.5:antialias=true:autohint=true" };
|
||||||
/* "Inconsolata for Powerline:pixelsize=12:antialias=true:autohint=true", */
|
|
||||||
/* "Hack Nerd Font Mono:pixelsize=11:antialias=true:autohint=true", */
|
|
||||||
};
|
|
||||||
#endif // FONT2_PATCH
|
#endif // FONT2_PATCH
|
||||||
|
|
||||||
#if BACKGROUND_IMAGE_PATCH
|
#if BACKGROUND_IMAGE_PATCH
|
||||||
|
|
@ -130,11 +127,11 @@ int hidecursor = 1;
|
||||||
* Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored.
|
* Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored.
|
||||||
* 0: disable (render all U25XX glyphs normally from the font).
|
* 0: disable (render all U25XX glyphs normally from the font).
|
||||||
*/
|
*/
|
||||||
const int boxdraw = 0;
|
const int boxdraw = 1;
|
||||||
const int boxdraw_bold = 0;
|
const int boxdraw_bold = 1;
|
||||||
|
|
||||||
/* braille (U28XX): 1: render as adjacent "pixels", 0: use font */
|
/* braille (U28XX): 1: render as adjacent "pixels", 0: use font */
|
||||||
const int boxdraw_braille = 0;
|
const int boxdraw_braille = 1;
|
||||||
#endif // BOXDRAW_PATCH
|
#endif // BOXDRAW_PATCH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -176,35 +173,68 @@ float alphaUnfocused = 0.6;
|
||||||
#endif // ALPHA_PATCH
|
#endif // ALPHA_PATCH
|
||||||
|
|
||||||
/* Terminal colors (16 first used in escape sequence) */
|
/* Terminal colors (16 first used in escape sequence) */
|
||||||
static const char *colorname[] = {
|
static char *colorname[] = {
|
||||||
/* 8 normal colors */
|
"#011627", /* hard contrast: #1d2021 / soft contrast: #32302f */
|
||||||
"black",
|
"#d3423e",
|
||||||
"red3",
|
"#2aa298",
|
||||||
"green3",
|
"#daaa01",
|
||||||
"yellow3",
|
"#4876d6",
|
||||||
"blue2",
|
"#403f53",
|
||||||
"magenta3",
|
"#08916a",
|
||||||
"cyan3",
|
"#7a8181",
|
||||||
"gray90",
|
"#7a8181",
|
||||||
|
"#f76e6e",
|
||||||
/* 8 bright colors */
|
"#49d0c5",
|
||||||
"gray50",
|
"#dac26b",
|
||||||
"red",
|
"#5ca7e4",
|
||||||
"green",
|
"#697098",
|
||||||
"yellow",
|
"#00c990",
|
||||||
"#5c5cff",
|
"#989fb1",
|
||||||
"magenta",
|
|
||||||
"cyan",
|
|
||||||
"white",
|
|
||||||
|
|
||||||
[255] = 0,
|
[255] = 0,
|
||||||
|
|
||||||
/* more colors can be added after 255 to use with DefaultXX */
|
/* more colors can be added after 255 to use with DefaultXX */
|
||||||
"#add8e6", /* 256 -> cursor */
|
"#403f53", /* 256 -> cursor */
|
||||||
|
"#f2f2f2", /* 257 -> rev cursor*/
|
||||||
|
"#ffffff", /* 258 -> bg */
|
||||||
|
"#403f53", /* 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*/
|
"#555555", /* 257 -> rev cursor*/
|
||||||
"#000000", /* 258 -> bg */
|
"#000000", /* 258 -> bg */
|
||||||
"#e5e5e5", /* 259 -> fg */
|
"#ffffff", /* 259 -> fg */
|
||||||
};
|
}};
|
||||||
|
|
||||||
|
#endif // DARKMAN_PATCH
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -368,8 +398,8 @@ static MouseShortcut mshortcuts[] = {
|
||||||
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
|
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
|
||||||
#endif // CLIPBOARD_PATCH
|
#endif // CLIPBOARD_PATCH
|
||||||
#if SCROLLBACK_MOUSE_PATCH
|
#if SCROLLBACK_MOUSE_PATCH
|
||||||
{ ShiftMask, Button4, kscrollup, {.i = 1}, 0, S_PRI},
|
{ ShiftMask, Button4, kscrollup, {.i = 4}, 0, S_PRI},
|
||||||
{ ShiftMask, Button5, kscrolldown, {.i = 1}, 0, S_PRI},
|
{ ShiftMask, Button5, kscrolldown, {.i = 4}, 0, S_PRI},
|
||||||
#elif UNIVERSCROLL_PATCH
|
#elif UNIVERSCROLL_PATCH
|
||||||
{ XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, S_PRI },
|
{ XK_ANY_MOD, Button4, ttysend, {.s = "\033[5;2~"}, 0, S_PRI },
|
||||||
{ XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, S_PRI },
|
{ XK_ANY_MOD, Button5, ttysend, {.s = "\033[6;2~"}, 0, S_PRI },
|
||||||
|
|
@ -378,8 +408,8 @@ static MouseShortcut mshortcuts[] = {
|
||||||
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
|
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
|
||||||
#endif // SCROLLBACK_MOUSE_PATCH
|
#endif // SCROLLBACK_MOUSE_PATCH
|
||||||
#if SCROLLBACK_MOUSE_ALTSCREEN_PATCH || REFLOW_PATCH
|
#if SCROLLBACK_MOUSE_ALTSCREEN_PATCH || REFLOW_PATCH
|
||||||
{ XK_ANY_MOD, Button4, kscrollup, {.i = 1}, 0, S_PRI },
|
{ XK_ANY_MOD, Button4, kscrollup, {.i = 4}, 0, S_PRI },
|
||||||
{ XK_ANY_MOD, Button5, kscrolldown, {.i = 1}, 0, S_PRI },
|
{ XK_ANY_MOD, Button5, kscrolldown, {.i = 4}, 0, S_PRI },
|
||||||
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"}, 0, S_ALT },
|
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"}, 0, S_ALT },
|
||||||
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"}, 0, S_ALT },
|
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"}, 0, S_ALT },
|
||||||
#else
|
#else
|
||||||
|
|
@ -410,8 +440,8 @@ static Shortcut shortcuts[] = {
|
||||||
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
|
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
|
||||||
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
|
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
|
||||||
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
|
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
|
||||||
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
|
{ MODKEY | ControlMask, XK_comma, zoom, {.f = +1} },
|
||||||
{ TERMMOD, XK_Next, zoom, {.f = -1} },
|
{ MODKEY | ControlMask, XK_semicolon, zoom, {.f = -1} },
|
||||||
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
|
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
|
||||||
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
|
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
|
||||||
{ TERMMOD, XK_V, clippaste, {.i = 0} },
|
{ TERMMOD, XK_V, clippaste, {.i = 0} },
|
||||||
|
|
@ -455,7 +485,7 @@ static Shortcut shortcuts[] = {
|
||||||
#endif // EXTERNALPIPEIN_PATCH
|
#endif // EXTERNALPIPEIN_PATCH
|
||||||
#endif // EXTERNALPIPE_PATCH
|
#endif // EXTERNALPIPE_PATCH
|
||||||
#if KEYBOARDSELECT_PATCH
|
#if KEYBOARDSELECT_PATCH
|
||||||
{ TERMMOD, XK_Escape, keyboard_select, { 0 } },
|
{ TERMMOD, XK_space, keyboard_select, { 0 } },
|
||||||
#endif // KEYBOARDSELECT_PATCH
|
#endif // KEYBOARDSELECT_PATCH
|
||||||
#if KEYBOARDSELECT_PATCH && REFLOW_PATCH
|
#if KEYBOARDSELECT_PATCH && REFLOW_PATCH
|
||||||
{ TERMMOD, XK_F, searchforward, { 0 } },
|
{ TERMMOD, XK_F, searchforward, { 0 } },
|
||||||
|
|
|
||||||
12
config.mk
12
config.mk
|
|
@ -21,14 +21,14 @@ PKG_CONFIG = pkg-config
|
||||||
#XCURSOR = `$(PKG_CONFIG) --libs xcursor`
|
#XCURSOR = `$(PKG_CONFIG) --libs xcursor`
|
||||||
|
|
||||||
# Uncomment the lines below for the ligatures patch / LIGATURES_PATCH
|
# Uncomment the lines below for the ligatures patch / LIGATURES_PATCH
|
||||||
#LIGATURES_C = hb.c
|
LIGATURES_C = hb.c
|
||||||
#LIGATURES_H = hb.h
|
LIGATURES_H = hb.h
|
||||||
#LIGATURES_INC = `$(PKG_CONFIG) --cflags harfbuzz`
|
LIGATURES_INC = `$(PKG_CONFIG) --cflags harfbuzz`
|
||||||
#LIGATURES_LIBS = `$(PKG_CONFIG) --libs harfbuzz`
|
LIGATURES_LIBS = `$(PKG_CONFIG) --libs harfbuzz`
|
||||||
|
|
||||||
# Uncomment this for the SIXEL patch / SIXEL_PATCH
|
# Uncomment this for the SIXEL patch / SIXEL_PATCH
|
||||||
#SIXEL_C = sixel.c sixel_hls.c
|
SIXEL_C = sixel.c sixel_hls.c
|
||||||
#SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2`
|
SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2`
|
||||||
|
|
||||||
# Uncomment for the netwmicon patch / NETWMICON_PATCH
|
# Uncomment for the netwmicon patch / NETWMICON_PATCH
|
||||||
#NETWMICON_LIBS = `$(PKG_CONFIG) --libs gdlib`
|
#NETWMICON_LIBS = `$(PKG_CONFIG) --libs gdlib`
|
||||||
|
|
|
||||||
56
default.nix
Normal file
56
default.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
{ 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
||||||
41
flake.nix
Normal file
41
flake.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
* when including this patch.
|
* when including this patch.
|
||||||
* https://st.suckless.org/patches/alpha/
|
* https://st.suckless.org/patches/alpha/
|
||||||
*/
|
*/
|
||||||
#define ALPHA_PATCH 0
|
#define ALPHA_PATCH 1
|
||||||
|
|
||||||
/* The alpha focus highlight patch allows the user to specify two distinct opacity values or
|
/* 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
|
* 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.
|
* This patch makes bold text rendered simply as bold, leaving the color unaffected.
|
||||||
* https://st.suckless.org/patches/bold-is-not-bright/
|
* https://st.suckless.org/patches/bold-is-not-bright/
|
||||||
*/
|
*/
|
||||||
#define BOLD_IS_NOT_BRIGHT_PATCH 0
|
#define BOLD_IS_NOT_BRIGHT_PATCH 1
|
||||||
|
|
||||||
/* This patch adds custom rendering of lines/blocks/braille characters for gapless alignment.
|
/* This patch adds custom rendering of lines/blocks/braille characters for gapless alignment.
|
||||||
* https://st.suckless.org/patches/boxdraw/
|
* https://st.suckless.org/patches/boxdraw/
|
||||||
*/
|
*/
|
||||||
#define BOXDRAW_PATCH 0
|
#define BOXDRAW_PATCH 1
|
||||||
|
|
||||||
/* By default st only sets PRIMARY on selection.
|
/* By default st only sets PRIMARY on selection.
|
||||||
* This patch makes st set CLIPBOARD on selection.
|
* This patch makes st set CLIPBOARD on selection.
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
* that are available to GUI applications.
|
* that are available to GUI applications.
|
||||||
* https://st.suckless.org/patches/fix_keyboard_input/
|
* https://st.suckless.org/patches/fix_keyboard_input/
|
||||||
*/
|
*/
|
||||||
#define FIXKEYBOARDINPUT_PATCH 0
|
#define FIXKEYBOARDINPUT_PATCH 1
|
||||||
|
|
||||||
/* This patch allows you to add spare font besides the default. Some glyphs can be not present in
|
/* 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.
|
* 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.
|
* So they will be used first for glyphs that are absent in the default font.
|
||||||
* https://st.suckless.org/patches/font2/
|
* https://st.suckless.org/patches/font2/
|
||||||
*/
|
*/
|
||||||
#define FONT2_PATCH 0
|
#define FONT2_PATCH 1
|
||||||
|
|
||||||
/* This patch adds the ability to toggle st into fullscreen mode.
|
/* 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
|
* 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/
|
* https://st.suckless.org/patches/keyboard_select/
|
||||||
*/
|
*/
|
||||||
#define KEYBOARDSELECT_PATCH 0
|
#define KEYBOARDSELECT_PATCH 1
|
||||||
|
|
||||||
/* This patch adds support for drawing ligatures using the Harfbuzz library to transform
|
/* 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.
|
* original text of a single line to a list of glyphs with ligatures included.
|
||||||
|
|
@ -239,6 +239,9 @@
|
||||||
*/
|
*/
|
||||||
#define FONTFEATURES_PATCH 1
|
#define FONTFEATURES_PATCH 1
|
||||||
|
|
||||||
|
#define DARKMAN_PATCH 1
|
||||||
|
|
||||||
|
|
||||||
/* This patch makes st ignore terminal color attributes by forcing display of the default
|
/* 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.
|
* 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/
|
* https://www.reddit.com/r/suckless/comments/ixbx6z/how_to_use_black_and_white_only_for_st/
|
||||||
|
|
@ -283,7 +286,7 @@
|
||||||
* same CWD (current working directory) as the original st instance.
|
* same CWD (current working directory) as the original st instance.
|
||||||
* https://st.suckless.org/patches/newterm/
|
* https://st.suckless.org/patches/newterm/
|
||||||
*/
|
*/
|
||||||
#define NEWTERM_PATCH 0
|
#define NEWTERM_PATCH 1
|
||||||
|
|
||||||
/* This patch will set the _MOTIF_WM_HINTS property for the st window which, if the window manager
|
/* 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.
|
* respects it, will show the st window without window decorations.
|
||||||
|
|
@ -303,7 +306,7 @@
|
||||||
*
|
*
|
||||||
* https://www.reddit.com/r/suckless/comments/cc83om/st_open_url/
|
* https://www.reddit.com/r/suckless/comments/cc83om/st_open_url/
|
||||||
*/
|
*/
|
||||||
#define OPENURLONCLICK_PATCH 0
|
#define OPENURLONCLICK_PATCH 1
|
||||||
|
|
||||||
/* This patch allows st to fetch the current working directory through the OSC 7 escape
|
/* 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.
|
* sequence emitted by shells. Must be used with newterm patch.
|
||||||
|
|
@ -325,7 +328,7 @@
|
||||||
* Text wraps when the terminal window is made smaller.
|
* Text wraps when the terminal window is made smaller.
|
||||||
* Comes with scrollback.
|
* Comes with scrollback.
|
||||||
*/
|
*/
|
||||||
#define REFLOW_PATCH 0
|
#define REFLOW_PATCH 1
|
||||||
|
|
||||||
/* This patch allows you to specify a border that is relative in size to the width of a cell
|
/* This patch allows you to specify a border that is relative in size to the width of a cell
|
||||||
* in the terminal.
|
* in the terminal.
|
||||||
|
|
@ -342,19 +345,19 @@
|
||||||
/* Scroll back through terminal output using Shift+{PageUp, PageDown}.
|
/* Scroll back through terminal output using Shift+{PageUp, PageDown}.
|
||||||
* https://st.suckless.org/patches/scrollback/
|
* https://st.suckless.org/patches/scrollback/
|
||||||
*/
|
*/
|
||||||
#define SCROLLBACK_PATCH 0
|
#define SCROLLBACK_PATCH 1
|
||||||
|
|
||||||
/* Scroll back through terminal output using Shift+MouseWheel.
|
/* Scroll back through terminal output using Shift+MouseWheel.
|
||||||
* This variant depends on SCROLLBACK_PATCH being enabled.
|
* This variant depends on SCROLLBACK_PATCH being enabled.
|
||||||
* https://st.suckless.org/patches/scrollback/
|
* https://st.suckless.org/patches/scrollback/
|
||||||
*/
|
*/
|
||||||
#define SCROLLBACK_MOUSE_PATCH 0
|
#define SCROLLBACK_MOUSE_PATCH 1
|
||||||
|
|
||||||
/* Scroll back through terminal output using mouse wheel (when not in MODE_ALTSCREEN).
|
/* Scroll back through terminal output using mouse wheel (when not in MODE_ALTSCREEN).
|
||||||
* This variant depends on SCROLLBACK_PATCH being enabled.
|
* This variant depends on SCROLLBACK_PATCH being enabled.
|
||||||
* https://st.suckless.org/patches/scrollback/
|
* https://st.suckless.org/patches/scrollback/
|
||||||
*/
|
*/
|
||||||
#define SCROLLBACK_MOUSE_ALTSCREEN_PATCH 0
|
#define SCROLLBACK_MOUSE_ALTSCREEN_PATCH 1
|
||||||
|
|
||||||
/* This patch adds the two color-settings selectionfg and selectionbg to config.def.h.
|
/* 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
|
* Those define the fore- and background colors which are used when text on the screen is selected
|
||||||
|
|
@ -382,7 +385,7 @@
|
||||||
*
|
*
|
||||||
* https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809
|
* https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809
|
||||||
*/
|
*/
|
||||||
#define SIXEL_PATCH 0
|
#define SIXEL_PATCH 1
|
||||||
|
|
||||||
/* This patch allows clients to embed into the st window and is useful if you tend to
|
/* 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:
|
* start X applications from the terminal. For example:
|
||||||
|
|
@ -442,7 +445,7 @@
|
||||||
*
|
*
|
||||||
* https://st.suckless.org/patches/undercurl/
|
* https://st.suckless.org/patches/undercurl/
|
||||||
*/
|
*/
|
||||||
#define UNDERCURL_PATCH 0
|
#define UNDERCURL_PATCH 1
|
||||||
|
|
||||||
/* Allows mouse scroll without modifier keys for regardless of alt screen using the external
|
/* Allows mouse scroll without modifier keys for regardless of alt screen using the external
|
||||||
* scroll program.
|
* scroll program.
|
||||||
|
|
|
||||||
36
x.c
36
x.c
|
|
@ -795,10 +795,13 @@ setsel(char *str, Time t)
|
||||||
#endif // CLIPBOARD_PATCH
|
#endif // CLIPBOARD_PATCH
|
||||||
}
|
}
|
||||||
|
|
||||||
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH
|
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH || DARKMAN_PATCH
|
||||||
void
|
void
|
||||||
sigusr1_reload(int sig)
|
sigusr1_reload(int sig)
|
||||||
{
|
{
|
||||||
|
#if DARKMAN_PATCH
|
||||||
|
xloadcols();
|
||||||
|
#endif // DARKMAN_PATCH
|
||||||
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH
|
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH
|
||||||
reload_config(sig);
|
reload_config(sig);
|
||||||
#endif // XRESOURCES_RELOAD_PATCH
|
#endif // XRESOURCES_RELOAD_PATCH
|
||||||
|
|
@ -976,6 +979,28 @@ xloadalpha(void)
|
||||||
}
|
}
|
||||||
#endif // ALPHA_FOCUS_HIGHLIGHT_PATCH
|
#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
|
#if ALPHA_PATCH && ALPHA_FOCUS_HIGHLIGHT_PATCH
|
||||||
void
|
void
|
||||||
xloadcols(void)
|
xloadcols(void)
|
||||||
|
|
@ -1009,6 +1034,8 @@ xloadcols(void)
|
||||||
static int loaded;
|
static int loaded;
|
||||||
Color *cp;
|
Color *cp;
|
||||||
|
|
||||||
|
darkmanThemeChoose();
|
||||||
|
|
||||||
if (loaded) {
|
if (loaded) {
|
||||||
for (cp = dc.col; cp < &dc.col[dc.collen]; ++cp)
|
for (cp = dc.col; cp < &dc.col[dc.collen]; ++cp)
|
||||||
XftColorFree(xw.dpy, xw.vis, xw.cmap, cp);
|
XftColorFree(xw.dpy, xw.vis, xw.cmap, cp);
|
||||||
|
|
@ -3978,9 +4005,12 @@ run:
|
||||||
|
|
||||||
setlocale(LC_CTYPE, "");
|
setlocale(LC_CTYPE, "");
|
||||||
XSetLocaleModifiers("");
|
XSetLocaleModifiers("");
|
||||||
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH
|
#if XRESOURCES_PATCH && XRESOURCES_RELOAD_PATCH || BACKGROUND_IMAGE_PATCH && BACKGROUND_IMAGE_RELOAD_PATCH || DARKMAN_PATCH
|
||||||
signal(SIGUSR1, sigusr1_reload);
|
signal(SIGUSR1, sigusr1_reload);
|
||||||
#endif // XRESOURCES_RELOAD_PATCH | BACKGROUND_IMAGE_RELOAD_PATCH
|
#endif // XRESOURCES_RELOAD_PATCH | BACKGROUND_IMAGE_RELOAD_PATCH | DARKMAN_PATCH
|
||||||
|
#if DARKMAN_PATCH
|
||||||
|
memcpy(colornames[0], colorname, sizeof(colorname));
|
||||||
|
#endif // DARKMAN_PATCH
|
||||||
#if XRESOURCES_PATCH
|
#if XRESOURCES_PATCH
|
||||||
if (!(xw.dpy = XOpenDisplay(NULL)))
|
if (!(xw.dpy = XOpenDisplay(NULL)))
|
||||||
die("Can't open display\n");
|
die("Can't open display\n");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue