Compare commits

...

3 Commits

Author SHA1 Message Date
f4ce7e6aa9 update st and dmenu overlay
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-11-25 02:27:36 +05:30
3f4abeee23 hosts/satori: mount drives under /media from now on
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-11-25 02:27:16 +05:30
df4ba5fff7 home/natto: theme related changes
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2022-11-25 02:26:35 +05:30
14 changed files with 141 additions and 528 deletions

View File

@@ -1,66 +0,0 @@
[global]
monitor = 0
follow = mouse
geometry = "250x20-50+20"
# Turn on the progess bar
progress_bar = true
progress_bar_height = 3
progress_bar_frame_width = 1
progress_bar_min_width = 125
progress_bar_max_width = 250
indicate_hidden = yes
shrink = no
transparency = 0.8
separator_height = 2
padding = 5
text_icon_padding = 4
frame_width = 3
frame_color = "#268bd2"
separator_color = frame
sort = yes
idle_threshold = 120
font = Fira Mono 10
markup = full
format = "<b>%a<b> - %s\n%b"
alignment = left
vertical_alignment = center
show_age_threshold = 60
word_wrap = yes
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
icon_position = left
min_icon_size = 0
max_icon_size = 32
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
sticky_history = yes
history_length = 20
dmenu = /usr/bin/dmenu -p dunst:
browser = /usr/bin/firefox -new-tab
always_run_script = true
title = Dunst
class = Dunst
startup_notification = false
verbosity = mesg
corner_radius = 1
ignore_dbusclose = false
[urgency_low]
background = "#6c71c4"
foreground = "#eee8d5"
timeout = 10
[urgency_normal]
background = "#cb4b16"
foreground = "#eee8d5"
timeout = 10
[urgency_critical]
background = "#dc322f"
foreground = "#eee8d5"
frame_color = "#d33682"
timeout = 10

View File

@@ -1,2 +0,0 @@
Shamelessly taken from https://github.com/mut-ex/minimal-functional-fox
and added gruvbox colors

View File

@@ -1,355 +0,0 @@
:root {
/* Minimal Functional Fox variables*/
--mff-bg: #1d2021;
--mff-icon-color: #bbbbbb;
--mff-nav-toolbar-padding: 8px;
--mff-sidebar-bg: var(--mff-bg);
--mff-sidebar-color: #e0fbfc;
--mff-tab-border-radius: 0px;
--mff-tab-color: #ebdbb2;
--mff-tab-font-family: "Fira Mono for Powerline", sans;
--mff-tab-font-size: 11pt;
--mff-tab-font-weight: 400;
--mff-tab-height: 32px;
--mff-tab-pinned-bg: #70c1b3;
--mff-tab-selected-bg: #ebdbb2;
--mff-tab-selected-color: #1d2021;
--mff-tab-soundplaying-bg: #818181;
--mff-tab-soundplaying-color: #1d2021;
--mff-urlbar-color: #98c1d9;
--mff-urlbar-focused-color: #e0fbfc;
--mff-urlbar-font-family: "Fira Mono for Powerline", serif;
--mff-urlbar-font-size: 12pt;
--mff-urlbar-font-weight: 500;
--mff-urlbar-results-color: #e0fbfc;
--mff-urlbar-results-font-family: "Fira Mono for Powerline", serif;
--mff-urlbar-results-font-size: 12pt;
--mff-urlbar-results-font-weight: 500;
--mff-urlbar-results-url-color: #98c1d9;
/* --mff-tab-selected-bg: linear-gradient(90deg, rgba(232,74,95,1) 0%, rgba(255,132,124,1) 50%, rgba(254,206,168,1) 100%); */
/* --mff-urlbar-font-weight: 600; */
/* Overriden Firefox variables*/
--autocomplete-popup-background: var(--mff-bg) !important;
--default-arrowpanel-background: var(--mff-bg) !important;
--default-arrowpanel-color: #fefefa !important;
--lwt-toolbarbutton-icon-fill: var(--mff-icon-color) !important;
--panel-disabled-color: #f9f9fa80;
--toolbar-bgcolor: var(--mff-bg) !important;
--urlbar-separator-color: transparent !important;
}
/*
_____ _ ___ ___
|_ _/_\ | _ ) __|
| |/ _ \| _ \__ \
|_/_/ \_\___/___/
*/
.tab-background[selected="true"] {
background: var(--mff-tab-selected-bg) !important;
}
.tab-text[selected="true"] {
color: var(--mff-tab-selected-color) !important;
font-weight: bold !important;
}
.tab-background:not[visuallyselected] {
background: var(--mff-tab-selected-bg) !important;
opacity: 0.5 !important;
}
/* This positions the tabs under the navaigator container */
#titlebar {
-moz-box-ordinal-group: 3 !important;
}
.tabbrowser-tab::after,
.tabbrowser-tab::before {
border-left: none !important;
}
.tab-background {
border: none !important;
}
.tabbrowser-arrowscrollbox {
margin-inline-start: 4px !important;
margin-inline-end: 0px !important;
}
.tab-close-button {
display: none !important;
}
.tab-text {
font-family: var(--mff-tab-font-family);
font-weight: var(--mff-tab-font-weight);
font-size: var(--mff-tab-font-size) !important;
color: var(--mff-tab-color);
}
/* Hide the favicon for tabs */
hbox.tab-content .tab-icon-image {
display: none !important;
}
/* Show the favicon for tabs that are pinned */
hbox.tab-content[pinned=true] .tab-icon-image {
display: initial !important;
}
hbox.tab-content[pinned=true] .tab-text {
display: none !important;
}
#tabbrowser-tabs {
--tab-loading-fill: #033433 !important;
}
.tab-label-container:not([textoverflow]) {
display: flex;
overflow: hidden;
justify-content: center;
width: 50% !important;
max-width: 50% !important;
min-width: 50% !important;
}
/* .tab-label-container::after {
content: "?" !important;
} */
.tab-line {
display: none !important;
}
.tabbrowser-tab {
border-radius: var(--mff-tab-border-radius) !important;
border-width: 0;
height: var(--mff-tab-height) !important;
margin-bottom: 4px !important;
margin-inline-end: 4px !important;
margin-top: 4px !important;
max-height: var(--mff-tab-height) !important;
min-height: var(--mff-tab-height) !important;
}
.tabbrowser-tab[soundplaying="true"] {
background-color: var(--mff-tab-soundplaying-bg) !important;
}
#tabs-newtab-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/add.svg") !important;
opacity: 0.7;
}
.tab-icon-sound {
display: none !important;
}
/*
_____ ___ ___ _ ___ _ ___
|_ _/ _ \ / _ \| | | _ ) /_\ | _ \
| || (_) | (_) | |__| _ \/ _ \| /
|_| \___/ \___/|____|___/_/ \_\_|_\
*/
.urlbar-icon > image {
fill: var(--mff-icon-color) !important;
color: var(--mff-icon-color) !important;
}
.toolbarbutton-text {
color: var(--mff-icon-color) !important;
}
.urlbar-icon {
color: var(--mff-icon-color) !important;
}
.toolbarbutton-icon {
/* filter: drop-shadow(0 0 0.75rem crimson); */
}
#urlbar-results {
font-family: var(--mff-urlbar-results-font-family);
font-weight: var(--mff-urlbar-results-font-weight);
font-size: var(--mff-urlbar-results-font-size) !important;
color: var(--mff-urlbar-results-color) !important;
}
.urlbarView-row[type="bookmark"] > span{
color: green !important;
}
.urlbarView-row[type="switchtab"] > span{
color: orange !important;
}
.urlbarView-url, .search-panel-one-offs-container {
color: var(--mff-urlbar-results-url-color) !important;
font-family: var(--mff-urlbar-font-family);
font-weight: var(--mff-urlbar-results-font-weight);
font-size: var(--mff-urlbar-font-size) !important;
}
.urlbarView-favicon, .urlbarView-type-icon {
display: none !important;
}
#urlbar-input {
font-size: var(--mff-urlbar-font-size) !important;
color: var(--mff-urlbar-color) !important;
font-family: var(--mff-urlbar-font-family) !important;
font-weight: var(--mff-urlbar-font-weight)!important;
text-align: center !important;
}
#tracking-protection-icon-container, #identity-box {
display: none;
}
#back-button > .toolbarbutton-icon{
--backbutton-background: transparent !important;
border: none !important;
}
#back-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/left-arrow.svg") !important;
}
#forward-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/right-arrow.svg") !important;
}
toolbar {
background-image: none !important;
}
#urlbar-background {
opacity: .98 !important;
}
#navigator-toolbox, toolbaritem {
border: none !important;
}
#urlbar-background {
background-color: var(--mff-bg) !important;
border: none !important;
}
.toolbar-items {
background-color: var(--mff-bg) !important;
}
#sidebar-search-container {
background-color: var(--mff-sidebar-bg) !important;
}
box.panel-arrowbox {
display: none;
}
box.panel-arrowcontent {
border-radius: 8px !important;
border: none !important;
}
tab.tabbrowser-tab {
overflow: hidden;
}
tab.tabbrowser-tab:hover {
box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
image#star-button {
display: none;
}
toolbar#nav-bar {
padding: var(--mff-nav-toolbar-padding) !important;
}
toolbar#nav-bar {
padding: 4px !important;
}
#urlbar {
max-width: 70% !important;
margin: 0 15% !important;
/* position: unset!important; */;
}
#urlbar-input:focus {
color: var(--mff-urlbar-focused-color) !important;
}
.megabar[breakout-extend="true"]:not([open="true"]) > #urlbar-background {
box-shadow: none !important;
background-color: transparent !important;
}
toolbarbutton {
box-shadow: none !important;
}
/*
___ ___ ___ ___ ___ _ ___
/ __|_ _| \| __| _ ) /_\ | _ \
\__ \| || |) | _|| _ \/ _ \| /
|___/___|___/|___|___/_/ \_\_|_\
*/
.close-icon, .urlbar-icon {
fill: var(--mff-icon-color) !important;
}
.sidebar-placesTree {
color: var(--mff-sidebar-color) !important;
}
#sidebar-switcher-target {
/* color: white !important; */
}
#sidebar-box {
--sidebar-background-color: var(--mff-sidebar-bg) !important;
}
splitter#sidebar-splitter {
opacity: 0 !important;
}
splitter#sidebar-splitter {
border: none !important;
background-color: transparent !important;
}
image#sidebar-icon {
display: none;
}
/*
_ ___ ___ _____ _____ _ _ _ ___ _
/_\ | _ \ _ \/ _ \ \ / / _ \/_\ | \| | __| |
/ _ \| / / (_) \ \/\/ /| _/ _ \| .` | _|| |__
/_/ \_\_|_\_|_\\___/ \_/\_/ |_|/_/ \_\_|\_|___|____|
*/
.panel-arrowcontent {
padding: 0px !important;
margin: 0px !important;
}
toolbarseparator {
display: none;
}

View File

@@ -1,23 +0,0 @@
@import url("userChrome.css");
/* Removes white loading page */
@-moz-document url(about:blank), url(about:newtab), url(about:home) {
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
background: var(--mff-bg) !important;
}
}
/* Hide scrollbar */
:root{
scrollbar-width: none !important;
}
@-moz-document url(about:privatebrowsing) {
:root{
scrollbar-width: none !important;
}
}

View File

@@ -6,8 +6,6 @@
package = pkgs.master.firefox;
profiles.natto = {
name = "natto";
# userChrome = builtins.readFile ./config/firefox/userChrome.css;
# userContent = builtins.readFile ./config/firefox/userContent.css;
};
};
chromium = {

View File

@@ -37,6 +37,7 @@ in
};
extraConfig = builtins.readFile ./config/mpd/mpd.conf;
};
mpd-discord-rpc = {
enable = true;
settings = {
@@ -49,6 +50,37 @@ in
};
};
};
dunst = {
enable = true;
settings = {
global = {
font = "Monospace 10";
frame_color = "#93a1a1";
separator_color = "#93a1a1";
shrink = true;
icon_theme = config.gtk.iconTheme.name;
};
urgency_low = {
background = "#586e75";
foreground = "#eee8d5";
timeout = 5;
};
urgency_normal = {
background = "#073642";
foreground = "#eee8d5";
timeout = 5;
};
urgency_critical = {
background = "#dc322f";
foreground = "#eee8d5";
timeout = 0;
};
};
};
};
systemd.user.services = {

View File

@@ -1,14 +1,15 @@
{ config, lib, pkgs, ... }: {
xdg = {
enable = true;
userDirs.enable = true;
};
home = {
sessionVariables = {
LV2_PATH = lib.makeSearchPath "lib/lv2" (with pkgs; [ calf ]);
TERM = "st-24bits";
};
file = with config; {
dunstrc = {
source = ./config/dunst/dunstrc;
target = "${xdg.configHome}/dunst/dunstrc";
};
stalonetray = {
source = ./config/stalonetrayrc;
target = "${home.homeDirectory}/.stalonetrayrc";

View File

@@ -1,11 +1,29 @@
{ pkgs, config, ... }:
{
gtk.cursorTheme = {
package = pkgs.numix-cursor-theme;
name = "Numix";
home.pointerCursor = {
package = pkgs.simp1e-cursors;
name = "Simp1e-Solarized-Light";
x11 = {
enable = true;
defaultCursor = "crosshair";
};
gtk.enable = true;
};
gtk = {
enable = true;
theme = {
package = pkgs.numix-solarized-gtk-theme;
name = "NumixSolarizedDarkMagenta";
};
iconTheme = {
package = pkgs.zafiro-icons;
name = "Zafiro-icons-Dark";
};
};
xsession = {
enable = true;
windowManager = {
xmonad = {
enable = true;

View File

@@ -19,14 +19,14 @@
fsType = "vfat";
};
fileSystems."/mnt/ntfs" =
fileSystems."/media/ntfs" =
{
device = "/dev/disk/by-uuid/A4CC66B6CC668282";
fsType = "ntfs";
options = [ "uid=natto" "gid=users" "umask=0022" "rw" ];
};
fileSystems."/mnt/real" =
fileSystems."/media/real" =
{
device = "/dev/disk/by-uuid/6372bc0c-0917-469d-a845-2ce65513e306";
fsType = "ext4";

View File

@@ -12,6 +12,16 @@
allowedUDPPorts = [ 22 17840 18172 ];
trustedInterfaces = [ "docker0" ];
};
interfaces = {
enp7s0 = {
useDHCP = true;
ipv4.addresses = [{
prefixLength = 24;
address = "192.168.1.109";
}];
};
};
wireguard.interfaces.wg0 = {
ips = [ "10.55.0.3/32" ];
listenPort = 17840;

View File

@@ -14,6 +14,7 @@
ACTION=="add|change", KERNEL=="sda", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"
'';
zfs.autoScrub.enable = true;
gvfs.enable = true;
logind.extraConfig = "RuntimeDirectorySize=30%";
};
systemd.services.tor.wantedBy = lib.mkForce [ ];

View File

@@ -1,9 +1,10 @@
final: prev: {
dmenu = prev.dmenu.overrideAttrs (oldAttrs: rec {
version = "5.2";
src = builtins.fetchTarball {
url = "https://dl.suckless.org/tools/dmenu-5.1.tar.gz";
sha256 = "1zwl0qlc4mmr973km03lmnfxjibdh2inwzb0vr6pvrfhrm0glvrk";
url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz";
sha256 = "1rxxc3qdb5qvwg284f0hximg9953fnvlymxwmi1zlqkqbs8qbizk";
};
patches = [ ./patches/dmenu.patch ];
});
@@ -17,9 +18,10 @@ final: prev: {
});
st = prev.st.overrideAttrs (oldAttrs: rec {
version = "0.9";
src = builtins.fetchTarball {
url = "https://dl.suckless.org/st/st-0.8.5.tar.gz";
sha256 = "0iy7sj40m5x7wr4qkicijckk3cb0h9815mzacfjb3xrlrvpx6hm5";
url = "https://dl.suckless.org/st/st-${version}.tar.gz";
sha256 = "1bdhh5lnhiz7q4ihig1f5q0ay5glsqxhpxpnsfqxwffqqwmy1vlh";
};
patches = [ ./patches/st.patch ];
});

View File

@@ -1,6 +1,6 @@
diff --color -u a/config.def.h b/config.def.h
--- a/config.def.h 2020-09-02 22:07:07.000000000 +0530
+++ b/config.def.h 2021-05-21 00:20:28.562140000 +0530
diff --color -ru dmenu-5.2/config.def.h dmenu-5.2-a/config.def.h
--- dmenu-5.2/config.def.h 2022-10-04 23:06:58.000000000 +0530
+++ dmenu-5.2-a/config.def.h 2022-11-25 02:20:05.393693557 +0530
@@ -2,16 +2,21 @@
/* Default settings; can be overriden by command line. */
@@ -32,10 +32,10 @@ diff --color -u a/config.def.h b/config.def.h
static const char worddelimiters[] = " ";
+/* Size of the window border */
+static const unsigned int border_width = 4;
Only in b: config.def.h.orig
diff --color -u a/dmenu.1 b/dmenu.1
--- a/dmenu.1 2020-09-02 22:07:07.000000000 +0530
+++ b/dmenu.1 2020-12-29 02:11:41.804718200 +0530
Only in dmenu-5.2-a: config.h
diff --color -ru dmenu-5.2/dmenu.1 dmenu-5.2-a/dmenu.1
--- dmenu-5.2/dmenu.1 2022-10-04 23:06:58.000000000 +0530
+++ dmenu-5.2-a/dmenu.1 2022-11-25 02:20:05.393693557 +0530
@@ -40,6 +40,9 @@
.B \-b
dmenu appears at the bottom of the screen.
@@ -46,9 +46,9 @@ diff --color -u a/dmenu.1 b/dmenu.1
.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.
diff --color -u a/dmenu.c b/dmenu.c
--- a/dmenu.c 2020-09-02 22:07:07.000000000 +0530
+++ b/dmenu.c 2020-12-29 02:24:03.168766600 +0530
diff --color -ru dmenu-5.2/dmenu.c dmenu-5.2-a/dmenu.c
--- dmenu-5.2/dmenu.c 2022-10-04 23:06:58.000000000 +0530
+++ dmenu-5.2-a/dmenu.c 2022-11-25 02:22:42.610351072 +0530
@@ -26,8 +26,7 @@
#define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
@@ -59,7 +59,7 @@ diff --color -u a/dmenu.c b/dmenu.c
struct item {
char *text;
struct item *left, *right;
@@ -89,6 +88,15 @@
@@ -96,6 +95,15 @@
break;
}
@@ -75,7 +75,7 @@ diff --color -u a/dmenu.c b/dmenu.c
static void
cleanup(void)
{
@@ -113,6 +121,43 @@
@@ -130,6 +138,43 @@
return NULL;
}
@@ -119,7 +119,7 @@ diff --color -u a/dmenu.c b/dmenu.c
static int
drawitem(struct item *item, int x, int y, int w)
{
@@ -123,7 +168,9 @@
@@ -140,7 +185,9 @@
else
drw_setscheme(drw, scheme[SchemeNorm]);
@@ -130,7 +130,7 @@ diff --color -u a/dmenu.c b/dmenu.c
}
static void
@@ -501,6 +548,119 @@
@@ -529,6 +576,119 @@
}
static void
@@ -250,7 +250,7 @@ diff --color -u a/dmenu.c b/dmenu.c
paste(void)
{
char *p, *q;
@@ -561,6 +721,9 @@
@@ -582,6 +742,9 @@
break;
cleanup();
exit(1);
@@ -260,7 +260,7 @@ diff --color -u a/dmenu.c b/dmenu.c
case Expose:
if (ev.xexpose.count == 0)
drw_map(drw, win, 0, 0, mw, mh);
@@ -611,6 +774,7 @@
@@ -632,6 +795,7 @@
bh = drw->fonts->h + 2;
lines = MAX(lines, 0);
mh = (lines + 1) * bh;
@@ -268,8 +268,8 @@ diff --color -u a/dmenu.c b/dmenu.c
#ifdef XINERAMA
i = 0;
if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) {
@@ -637,9 +801,16 @@
if (INTERSECT(x, y, 1, 1, info[i]))
@@ -658,9 +822,16 @@
if (INTERSECT(x, y, 1, 1, info[i]) != 0)
break;
- x = info[i].x_org;
@@ -288,7 +288,7 @@ diff --color -u a/dmenu.c b/dmenu.c
XFree(info);
} else
#endif
@@ -647,21 +818,30 @@
@@ -668,21 +839,29 @@
if (!XGetWindowAttributes(dpy, parentwin, &wa))
die("could not get embedding window attributes: 0x%lx",
parentwin);
@@ -307,16 +307,16 @@ diff --color -u a/dmenu.c b/dmenu.c
+ }
}
- promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0;
inputw = MIN(inputw, mw/3);
inputw = mw / 3; /* input width: ~33% of monitor width */
match();
/* create menu window */
swa.override_redirect = True;
swa.background_pixel = scheme[SchemeNorm][ColBg].pixel;
- swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
- win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0,
+ swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask |
+ ButtonPressMask;
swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
- win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0,
+ win = XCreateWindow(dpy, parentwin, x, y, mw, mh, border_width,
CopyFromParent, CopyFromParent, CopyFromParent,
CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
@@ -324,7 +324,7 @@ diff --color -u a/dmenu.c b/dmenu.c
XSetClassHint(dpy, win, &ch);
@@ -709,6 +889,8 @@
@@ -729,6 +908,8 @@
topbar = 0;
else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
fast = 1;
@@ -333,6 +333,3 @@ diff --color -u a/dmenu.c b/dmenu.c
else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
fstrncmp = strncasecmp;
fstrstr = cistrstr;
Only in b: dmenu.c.orig
Only in a: dmenu_path
Only in a: dmenu_run

View File

@@ -1,6 +1,6 @@
diff --color -u b/config.def.h a/config.def.h
--- b/config.def.h 2022-03-18 10:26:17.487413585 +0530
+++ a/config.def.h 2022-03-18 11:11:09.497847262 +0530
diff --color -ru st-0.9/config.def.h st-0.9-a/config.def.h
--- st-0.9/config.def.h 2022-10-04 23:11:26.000000000 +0530
+++ st-0.9-a/config.def.h 2022-11-25 02:12:19.384259019 +0530
@@ -3,9 +3,10 @@
/*
* appearance
@@ -148,9 +148,9 @@ diff --color -u b/config.def.h a/config.def.h
};
/*
diff --color -u b/st.c a/st.c
--- b/st.c 2022-03-18 10:26:17.488413654 +0530
+++ a/st.c 2022-03-18 10:59:06.308482438 +0530
diff --color -ru st-0.9/st.c st-0.9-a/st.c
--- st-0.9/st.c 2022-10-04 23:11:26.000000000 +0530
+++ st-0.9-a/st.c 2022-11-25 02:12:19.384259019 +0530
@@ -35,6 +35,7 @@
#define ESC_ARG_SIZ 16
#define STR_BUF_SIZ ESC_BUF_SIZ
@@ -179,7 +179,7 @@ diff --color -u b/st.c a/st.c
int *dirty; /* dirtyness of lines */
TCursor c; /* cursor */
int ocx; /* old cursor col */
@@ -184,8 +191,8 @@
@@ -185,8 +192,8 @@
static void tputtab(int);
static void tputc(Rune);
static void treset(void);
@@ -190,7 +190,7 @@ diff --color -u b/st.c a/st.c
static void tsetattr(const int *, int);
static void tsetchar(Rune, const Glyph *, int, int);
static void tsetdirt(int, int);
@@ -416,10 +423,10 @@
@@ -409,10 +416,10 @@
{
int i = term.col;
@@ -203,7 +203,7 @@ diff --color -u b/st.c a/st.c
--i;
return i;
@@ -528,7 +535,7 @@
@@ -521,7 +528,7 @@
* Snap around if the word wraps around at the end or
* beginning of a line.
*/
@@ -212,7 +212,7 @@ diff --color -u b/st.c a/st.c
prevdelim = ISDELIM(prevgp->u);
for (;;) {
newx = *x + direction;
@@ -543,14 +550,14 @@
@@ -536,14 +543,14 @@
yt = *y, xt = *x;
else
yt = newy, xt = newx;
@@ -229,7 +229,7 @@ diff --color -u b/st.c a/st.c
delim = ISDELIM(gp->u);
if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim
|| (delim && gp->u != prevgp->u)))
@@ -571,14 +578,14 @@
@@ -564,14 +571,14 @@
*x = (direction < 0) ? 0 : term.col - 1;
if (direction < 0) {
for (; *y > 0; *y += direction) {
@@ -246,7 +246,7 @@ diff --color -u b/st.c a/st.c
& ATTR_WRAP)) {
break;
}
@@ -609,13 +616,13 @@
@@ -602,13 +609,13 @@
}
if (sel.type == SEL_RECTANGULAR) {
@@ -263,7 +263,7 @@ diff --color -u b/st.c a/st.c
while (last >= gp && last->u == ' ')
--last;
@@ -851,6 +858,9 @@
@@ -844,6 +851,9 @@
ttywrite(const char *s, size_t n, int may_echo)
{
const char *next;
@@ -273,7 +273,7 @@ diff --color -u b/st.c a/st.c
if (may_echo && IS_SET(MODE_ECHO))
twrite(s, n, 1);
@@ -1062,13 +1072,53 @@
@@ -1055,13 +1065,53 @@
}
void
@@ -328,7 +328,7 @@ diff --color -u b/st.c a/st.c
tsetdirt(orig, term.bot-n);
tclearregion(0, term.bot-n+1, term.col-1, term.bot);
@@ -1078,17 +1128,28 @@
@@ -1071,17 +1121,28 @@
term.line[i-n] = temp;
}
@@ -359,7 +359,7 @@ diff --color -u b/st.c a/st.c
tclearregion(0, orig, term.col-1, orig+n-1);
tsetdirt(orig+n, term.bot);
@@ -1098,7 +1159,8 @@
@@ -1091,7 +1152,8 @@
term.line[i+n] = temp;
}
@@ -369,7 +369,7 @@ diff --color -u b/st.c a/st.c
}
void
@@ -1127,7 +1189,7 @@
@@ -1120,7 +1182,7 @@
int y = term.c.y;
if (y == term.bot) {
@@ -378,7 +378,7 @@ diff --color -u b/st.c a/st.c
} else {
y++;
}
@@ -1292,14 +1354,14 @@
@@ -1285,14 +1347,14 @@
tinsertblankline(int n)
{
if (BETWEEN(term.c.y, term.top, term.bot))
@@ -395,7 +395,7 @@ diff --color -u b/st.c a/st.c
}
int32_t
@@ -1736,11 +1798,11 @@
@@ -1729,11 +1791,11 @@
break;
case 'S': /* SU -- Scroll <n> line up */
DEFAULT(csiescseq.arg[0], 1);
@@ -409,7 +409,7 @@ diff --color -u b/st.c a/st.c
break;
case 'L': /* IL -- Insert <n> blank lines */
DEFAULT(csiescseq.arg[0], 1);
@@ -2330,7 +2392,7 @@
@@ -2296,7 +2358,7 @@
return 0;
case 'D': /* IND -- Linefeed */
if (term.c.y == term.bot) {
@@ -418,7 +418,7 @@ diff --color -u b/st.c a/st.c
} else {
tmoveto(term.c.x, term.c.y+1);
}
@@ -2343,7 +2405,7 @@
@@ -2309,7 +2371,7 @@
break;
case 'M': /* RI -- Reverse index */
if (term.c.y == term.top) {
@@ -427,7 +427,7 @@ diff --color -u b/st.c a/st.c
} else {
tmoveto(term.c.x, term.c.y-1);
}
@@ -2557,7 +2619,7 @@
@@ -2523,7 +2585,7 @@
void
tresize(int col, int row)
{
@@ -436,7 +436,7 @@ diff --color -u b/st.c a/st.c
int minrow = MIN(row, term.row);
int mincol = MIN(col, term.col);
int *bp;
@@ -2594,6 +2656,14 @@
@@ -2560,6 +2622,14 @@
term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty));
term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs));
@@ -451,7 +451,7 @@ diff --color -u b/st.c a/st.c
/* resize each row to new width, zero-pad if needed */
for (i = 0; i < minrow; i++) {
term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph));
@@ -2652,7 +2722,7 @@
@@ -2618,7 +2688,7 @@
continue;
term.dirty[y] = 0;
@@ -460,7 +460,7 @@ diff --color -u b/st.c a/st.c
}
}
@@ -2673,8 +2743,9 @@
@@ -2639,8 +2709,9 @@
cx--;
drawregion(0, 0, term.col, term.row);
@@ -472,9 +472,9 @@ diff --color -u b/st.c a/st.c
term.ocx = cx;
term.ocy = term.c.y;
xfinishdraw();
diff --color -u b/st.h a/st.h
--- b/st.h 2022-03-18 10:26:17.488413654 +0530
+++ a/st.h 2022-03-18 11:04:56.429522959 +0530
diff --color -ru st-0.9/st.h st-0.9-a/st.h
--- st-0.9/st.h 2022-10-04 23:11:26.000000000 +0530
+++ st-0.9-a/st.h 2022-11-25 02:12:19.385259029 +0530
@@ -81,6 +81,8 @@
void redraw(void);
void draw(void);
@@ -484,7 +484,7 @@ diff --color -u b/st.h a/st.h
void printscreen(const Arg *);
void printsel(const Arg *);
void sendbreak(const Arg *);
@@ -122,6 +124,7 @@
@@ -120,6 +122,7 @@
extern int allowaltscreen;
extern int allowwindowops;
extern char *termname;
@@ -492,9 +492,9 @@ diff --color -u b/st.h a/st.h
extern unsigned int tabspaces;
extern unsigned int defaultfg;
extern unsigned int defaultbg;
diff --color -u b/x.c a/x.c
--- b/x.c 2022-03-18 10:26:17.489413722 +0530
+++ a/x.c 2022-03-18 11:04:56.429522959 +0530
diff --color -ru st-0.9/x.c st-0.9-a/x.c
--- st-0.9/x.c 2022-10-04 23:11:26.000000000 +0530
+++ st-0.9-a/x.c 2022-11-25 02:12:19.385259029 +0530
@@ -55,6 +55,7 @@
static void clippaste(const Arg *);
static void numlock(const Arg *);
@@ -513,7 +513,7 @@ diff --color -u b/x.c a/x.c
static void xsetenv(void);
@@ -254,6 +256,8 @@
static int oldbutton = 3; /* button event on startup: 3 = release */
static uint buttons; /* bit field of pressed buttons */
+int usealtcolors = 0; /* 1 to use alternate palette */
+
@@ -543,7 +543,7 @@ diff --color -u b/x.c a/x.c
cresize(0, 0);
redraw();
xhints();
@@ -750,6 +763,11 @@
@@ -766,6 +779,11 @@
return x == 0 ? 0 : 0x3737 + 0x2828 * x;
}
@@ -555,7 +555,7 @@ diff --color -u b/x.c a/x.c
int
xloadcolor(int i, const char *name, Color *ncolor)
{
@@ -768,7 +786,7 @@
@@ -784,7 +802,7 @@
return XftColorAllocValue(xw.dpy, xw.vis,
xw.cmap, &color, ncolor);
} else
@@ -564,7 +564,7 @@ diff --color -u b/x.c a/x.c
}
return XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, ncolor);
@@ -791,8 +809,8 @@
@@ -807,8 +825,8 @@
for (i = 0; i < dc.collen; i++)
if (!xloadcolor(i, NULL, &dc.col[i])) {
@@ -575,7 +575,7 @@ diff --color -u b/x.c a/x.c
else
die("could not allocate color %d\n", i);
}
@@ -1034,6 +1052,67 @@
@@ -1050,6 +1068,67 @@
FcPatternDestroy(pattern);
}
@@ -643,7 +643,7 @@ diff --color -u b/x.c a/x.c
void
xunloadfont(Font *f)
{
@@ -1131,6 +1210,10 @@
@@ -1147,6 +1226,10 @@
usedfont = (opt_font == NULL)? font : opt_font;
xloadfonts(usedfont, 0);
@@ -654,7 +654,7 @@ diff --color -u b/x.c a/x.c
/* colors */
xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
xloadcols();
@@ -1184,13 +1267,13 @@
@@ -1200,13 +1283,13 @@
cursor = XCreateFontCursor(xw.dpy, mouseshape);
XDefineCursor(xw.dpy, xw.win, cursor);
@@ -670,7 +670,7 @@ diff --color -u b/x.c a/x.c
xmousebg.red = 0x0000;
xmousebg.green = 0x0000;
xmousebg.blue = 0x0000;
@@ -1398,7 +1481,7 @@
@@ -1414,7 +1497,7 @@
/* Change basic system colors [0-7] to bright system colors [8-15] */
if ((base.mode & ATTR_BOLD_FAINT) == ATTR_BOLD && BETWEEN(base.fg, 0, 7))
@@ -679,7 +679,7 @@ diff --color -u b/x.c a/x.c
if (IS_SET(MODE_REVERSE)) {
if (fg == &dc.col[defaultfg]) {
@@ -1626,6 +1709,8 @@
@@ -1642,6 +1725,8 @@
int
xstartdraw(void)
{