wip
This commit is contained in:
@@ -1,11 +1,9 @@
|
|||||||
if [[ $- != *i* ]] ; then
|
if [[ $- != *i* ]] ; then
|
||||||
# Shell is non-interactive. Be done now!
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PATH="/usr/lib/llvm/20/bin:$PATH"
|
|
||||||
|
|
||||||
alias ls="ls -a --color"
|
alias ls="ls -a --color"
|
||||||
alias comp="sudo rm -rf config.h && make && sudo make install && pkill dwm"
|
alias comp="doas rm -rf config.h && make && doas make install"
|
||||||
alias edit="sh /home/andrew/.config/suckless/dwm/scripts/edit-suckless.sh"
|
alias edit="sh /home/andrew/.config/suckless/dwm/scripts/edit-suckless.sh"
|
||||||
alias update_world="sudo emerge --ask --update --newuse --deep @world"
|
alias update_world="doas emerge --ask --update --newuse --deep @world"
|
||||||
|
alias env="sh /home/andrew/dotfiles/env.sh"
|
||||||
|
|||||||
+28
-20
@@ -1,3 +1,30 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", "https://github.com/folke/lazy.nvim.git", lazypath })
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
"cohama/lexima.vim",
|
||||||
|
"DarthMoomancer/Polydev",
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
{ "saghen/blink.cmp", version = "v1.*", opts = {
|
||||||
|
completion = {
|
||||||
|
ghost_text = {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
checker = { enabled = true },
|
||||||
|
},
|
||||||
|
})
|
||||||
vim.opt.mouse = ""
|
vim.opt.mouse = ""
|
||||||
vim.opt.completeopt = "noselect"
|
vim.opt.completeopt = "noselect"
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
@@ -9,7 +36,6 @@ vim.opt.hlsearch = false
|
|||||||
vim.opt.swapfile = false
|
vim.opt.swapfile = false
|
||||||
vim.opt.clipboard = unnamedplus
|
vim.opt.clipboard = unnamedplus
|
||||||
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||||
vim.keymap.set("x", "<leader>p", [["_dP]])
|
vim.keymap.set("x", "<leader>p", [["_dP]])
|
||||||
@@ -19,7 +45,7 @@ vim.keymap.set('n', '<leader>xg', ":Telescope live_grep<CR>", { desc = 'Telescop
|
|||||||
vim.keymap.set('n', '<leader>xh', ":Telescope help_tags<CR>", { desc = 'Telescope help tags' })
|
vim.keymap.set('n', '<leader>xh', ":Telescope help_tags<CR>", { desc = 'Telescope help tags' })
|
||||||
vim.keymap.set("n", "<leader>xc", "<Cmd>cclose<CR>")
|
vim.keymap.set("n", "<leader>xc", "<Cmd>cclose<CR>")
|
||||||
vim.keymap.set("n", "<leader>xx", function()
|
vim.keymap.set("n", "<leader>xx", function()
|
||||||
vim.diagnostic.setqflist({ open = true })
|
vim.diagnostic.setqflist({ open = true })
|
||||||
end, { desc = "Show diagnostics in quickfix" })
|
end, { desc = "Show diagnostics in quickfix" })
|
||||||
|
|
||||||
vim.cmd.colorscheme('everforest')
|
vim.cmd.colorscheme('everforest')
|
||||||
@@ -32,24 +58,6 @@ vim.api.nvim_create_autocmd("FileType", {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
vim.pack.add({
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
"cohama/lexima.vim",
|
|
||||||
"DarthMoomancer/Polydev",
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
{ src = "saghen/blink.cmp", version = "v1.*" },
|
|
||||||
})
|
|
||||||
|
|
||||||
require("blink.cmp").setup({
|
|
||||||
completion = {
|
|
||||||
ghost_text = {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
require("nvim-treesitter.configs").setup({
|
require("nvim-treesitter.configs").setup({
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
indent = { enable = true }
|
indent = { enable = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "/home/andrew/.config/suckless/dwm/themes/everforest.h"
|
#include "/home/andrew/.config/suckless/dwm/themes/everforest.h"
|
||||||
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
|
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
|
||||||
static const char *fonts[] = {
|
static const char *fonts[] = {
|
||||||
"CaskaydiaCove NFM style:Regular:size=12"
|
"CaskaydiaCove NFM style:SemiBold:size=11"
|
||||||
};
|
};
|
||||||
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
|
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
|
||||||
static const char *colors[SchemeLast][2] = {
|
static const char *colors[SchemeLast][2] = {
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
/* 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 */
|
|
||||||
/* -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 */
|
|
||||||
static const char *colors[SchemeLast][2] = {
|
|
||||||
/* fg bg */
|
|
||||||
[SchemeNorm] = { "#bbbbbb", "#222222" },
|
|
||||||
[SchemeSel] = { "#eeeeee", "#005577" },
|
|
||||||
[SchemeOut] = { "#000000", "#00ffff" },
|
|
||||||
[SchemeCursor] = { "#222222", "#bbbbbb"},
|
|
||||||
};
|
|
||||||
/* -l and -g options; controls number of lines and columns in grid if > 0 */
|
|
||||||
static unsigned int lines = 0;
|
|
||||||
static unsigned int columns = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Characters not considered part of a word while deleting words
|
|
||||||
* for example: " /?\"&[]"
|
|
||||||
*/
|
|
||||||
static const char worddelimiters[] = " ";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* -vi option; if nonzero, vi mode is always enabled and can be
|
|
||||||
* accessed with the global_esc keysym + mod mask
|
|
||||||
*/
|
|
||||||
static unsigned int vi_mode = 1;
|
|
||||||
static unsigned int start_mode = 0; /* mode to use when -vi is passed. 0 = insert mode, 1 = normal mode */
|
|
||||||
static Key global_esc = { XK_n, Mod1Mask }; /* escape key when vi mode is not enabled explicitly */
|
|
||||||
static Key quit_keys[] = {
|
|
||||||
/* keysym modifier */
|
|
||||||
{ XK_q, 0 }
|
|
||||||
};
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "/home/andrew/.config/suckless/dwm/themes/everforest.h"
|
#include "/home/andrew/.config/suckless/dwm/themes/everforest.h"
|
||||||
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
|
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
|
||||||
static const char *fonts[] = {
|
static const char *fonts[] = {
|
||||||
"CaskaydiaCove NFM style:Regular:size=12"
|
"CaskaydiaCove NFM style:SemiBold:size=11"
|
||||||
};
|
};
|
||||||
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
|
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
|
||||||
static const char *colors[SchemeLast][2] = {
|
static const char *colors[SchemeLast][2] = {
|
||||||
|
|||||||
Binary file not shown.
@@ -1,202 +0,0 @@
|
|||||||
.TH DMENU 1 dmenu\-VERSION
|
|
||||||
.SH NAME
|
|
||||||
dmenu \- dynamic menu
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B dmenu
|
|
||||||
.RB [ \-bfiv ]
|
|
||||||
.RB [ \-g
|
|
||||||
.IR columns ]
|
|
||||||
.RB [ \-l
|
|
||||||
.IR lines ]
|
|
||||||
.RB [ \-m
|
|
||||||
.IR monitor ]
|
|
||||||
.RB [ \-p
|
|
||||||
.IR prompt ]
|
|
||||||
.RB [ \-fn
|
|
||||||
.IR font ]
|
|
||||||
.RB [ \-nb
|
|
||||||
.IR color ]
|
|
||||||
.RB [ \-nf
|
|
||||||
.IR color ]
|
|
||||||
.RB [ \-sb
|
|
||||||
.IR color ]
|
|
||||||
.RB [ \-sf
|
|
||||||
.IR color ]
|
|
||||||
.RB [ \-w
|
|
||||||
.IR windowid ]
|
|
||||||
.P
|
|
||||||
.BR dmenu_run " ..."
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B dmenu
|
|
||||||
is a dynamic menu for X, which reads a list of newline\-separated items from
|
|
||||||
stdin. When the user selects an item and presses Return, their choice is printed
|
|
||||||
to stdout and dmenu terminates. Entering text will narrow the items to those
|
|
||||||
matching the tokens in the input.
|
|
||||||
.P
|
|
||||||
.B dmenu_run
|
|
||||||
is a script used by
|
|
||||||
.IR dwm (1)
|
|
||||||
which lists programs in the user's $PATH and runs the result in their $SHELL.
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP
|
|
||||||
.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.
|
|
||||||
.TP
|
|
||||||
.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.
|
|
||||||
.TP
|
|
||||||
.BI \-m " monitor"
|
|
||||||
dmenu is displayed on the monitor number supplied. Monitor numbers are starting
|
|
||||||
from 0.
|
|
||||||
.TP
|
|
||||||
.BI \-p " prompt"
|
|
||||||
defines the prompt to be displayed to the left of the input field.
|
|
||||||
.TP
|
|
||||||
.BI \-fn " font"
|
|
||||||
defines the font or font set used.
|
|
||||||
.TP
|
|
||||||
.BI \-nb " color"
|
|
||||||
defines the normal background color.
|
|
||||||
.IR #RGB ,
|
|
||||||
.IR #RRGGBB ,
|
|
||||||
and X color names are supported.
|
|
||||||
.TP
|
|
||||||
.BI \-nf " color"
|
|
||||||
defines the normal foreground color.
|
|
||||||
.TP
|
|
||||||
.BI \-sb " color"
|
|
||||||
defines the selected background color.
|
|
||||||
.TP
|
|
||||||
.BI \-sf " color"
|
|
||||||
defines the selected foreground color.
|
|
||||||
.TP
|
|
||||||
.B \-v
|
|
||||||
prints version information to stdout, then exits.
|
|
||||||
.TP
|
|
||||||
.BI \-w " windowid"
|
|
||||||
embed into windowid.
|
|
||||||
.SH USAGE
|
|
||||||
dmenu is completely controlled by the keyboard. Items are selected using the
|
|
||||||
arrow keys, page up, page down, home, and end.
|
|
||||||
.TP
|
|
||||||
.B Tab
|
|
||||||
Copy the selected item to the input field.
|
|
||||||
.TP
|
|
||||||
.B Return
|
|
||||||
Confirm selection. Prints the selected item to stdout and exits, returning
|
|
||||||
success.
|
|
||||||
.TP
|
|
||||||
.B Ctrl-Return
|
|
||||||
Confirm selection. Prints the selected item to stdout and continues.
|
|
||||||
.TP
|
|
||||||
.B Shift\-Return
|
|
||||||
Confirm input. Prints the input text to stdout and exits, returning success.
|
|
||||||
.TP
|
|
||||||
.B Escape
|
|
||||||
Exit without selecting an item, returning failure.
|
|
||||||
.TP
|
|
||||||
.B Ctrl-Left
|
|
||||||
Move cursor to the start of the current word
|
|
||||||
.TP
|
|
||||||
.B Ctrl-Right
|
|
||||||
Move cursor to the end of the current word
|
|
||||||
.TP
|
|
||||||
.B C\-a
|
|
||||||
Home
|
|
||||||
.TP
|
|
||||||
.B C\-b
|
|
||||||
Left
|
|
||||||
.TP
|
|
||||||
.B C\-c
|
|
||||||
Escape
|
|
||||||
.TP
|
|
||||||
.B C\-d
|
|
||||||
Delete
|
|
||||||
.TP
|
|
||||||
.B C\-e
|
|
||||||
End
|
|
||||||
.TP
|
|
||||||
.B C\-f
|
|
||||||
Right
|
|
||||||
.TP
|
|
||||||
.B C\-g
|
|
||||||
Escape
|
|
||||||
.TP
|
|
||||||
.B C\-h
|
|
||||||
Backspace
|
|
||||||
.TP
|
|
||||||
.B C\-i
|
|
||||||
Tab
|
|
||||||
.TP
|
|
||||||
.B C\-j
|
|
||||||
Return
|
|
||||||
.TP
|
|
||||||
.B C\-J
|
|
||||||
Shift-Return
|
|
||||||
.TP
|
|
||||||
.B C\-k
|
|
||||||
Delete line right
|
|
||||||
.TP
|
|
||||||
.B C\-m
|
|
||||||
Return
|
|
||||||
.TP
|
|
||||||
.B C\-M
|
|
||||||
Shift-Return
|
|
||||||
.TP
|
|
||||||
.B C\-n
|
|
||||||
Down
|
|
||||||
.TP
|
|
||||||
.B C\-p
|
|
||||||
Up
|
|
||||||
.TP
|
|
||||||
.B C\-u
|
|
||||||
Delete line left
|
|
||||||
.TP
|
|
||||||
.B C\-w
|
|
||||||
Delete word left
|
|
||||||
.TP
|
|
||||||
.B C\-y
|
|
||||||
Paste from primary X selection
|
|
||||||
.TP
|
|
||||||
.B C\-Y
|
|
||||||
Paste from X clipboard
|
|
||||||
.TP
|
|
||||||
.B M\-b
|
|
||||||
Move cursor to the start of the current word
|
|
||||||
.TP
|
|
||||||
.B M\-f
|
|
||||||
Move cursor to the end of the current word
|
|
||||||
.TP
|
|
||||||
.B M\-g
|
|
||||||
Home
|
|
||||||
.TP
|
|
||||||
.B M\-G
|
|
||||||
End
|
|
||||||
.TP
|
|
||||||
.B M\-h
|
|
||||||
Up
|
|
||||||
.TP
|
|
||||||
.B M\-j
|
|
||||||
Page down
|
|
||||||
.TP
|
|
||||||
.B M\-k
|
|
||||||
Page up
|
|
||||||
.TP
|
|
||||||
.B M\-l
|
|
||||||
Down
|
|
||||||
.SH SEE ALSO
|
|
||||||
.IR dwm (1),
|
|
||||||
.IR stest (1)
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,7 +7,6 @@ static const int topbar = 1;
|
|||||||
static const char *barlayout = "t|s";
|
static const char *barlayout = "t|s";
|
||||||
|
|
||||||
static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" };
|
static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" };
|
||||||
static const char dmenufont[] = { "CaskaydiaCove NFM style:SemiBold:size=12" };
|
|
||||||
static const char *colors[][3] = {
|
static const char *colors[][3] = {
|
||||||
[SchemeNorm] = { foreground, background, aqua },
|
[SchemeNorm] = { foreground, background, aqua },
|
||||||
[SchemeSel] = { dark_gray, yellow, green },
|
[SchemeSel] = { dark_gray, yellow, green },
|
||||||
@@ -17,7 +16,7 @@ static const char *tags[] = { "1", "2", "3", "4" };
|
|||||||
static const Rule rules[] = {
|
static const Rule rules[] = {
|
||||||
/* class instance title tags mask isfloating monitor */
|
/* class instance title tags mask isfloating monitor */
|
||||||
{ "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 },
|
{ "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 },
|
||||||
{ "mercury-browser", "mercury-browser", NULL, 1 << 1, 0, -1 },
|
{ "mercury-default", "Navigator", NULL, 1 << 1, 0, -1 },
|
||||||
{ "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 },
|
{ "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 },
|
||||||
{ "st-256color", "st-256color", NULL, 1, 0, -1 },
|
{ "st-256color", "st-256color", NULL, 1, 0, -1 },
|
||||||
};
|
};
|
||||||
@@ -39,9 +38,8 @@ static const Layout layouts[] = { { "[]=", tile } };
|
|||||||
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
||||||
|
|
||||||
static char dmenumon[2] = "0";
|
static char dmenumon[2] = "0";
|
||||||
static const char *dmenucmd[] = { "dmenu_run", "-g", "6", "-l", "3", "-m", dmenumon, "-fn", dmenufont, "-nb", background, "-nf", foreground, "-sb", blue, "-sf", dark_gray, NULL };
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, NULL };
|
||||||
static const char *termcmd[] = { "st", NULL };
|
static const char *termcmd[] = { "st", NULL };
|
||||||
static const char *browser[] = { "firefox-bin", NULL };
|
|
||||||
|
|
||||||
#include "movestack.c"
|
#include "movestack.c"
|
||||||
#include "X11/XF86keysym.h"
|
#include "X11/XF86keysym.h"
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ static const int topbar = 1;
|
|||||||
static const char *barlayout = "t|s";
|
static const char *barlayout = "t|s";
|
||||||
|
|
||||||
static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" };
|
static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" };
|
||||||
static const char dmenufont[] = { "CaskaydiaCove NFM style:SemiBold:size=12" };
|
|
||||||
static const char *colors[][3] = {
|
static const char *colors[][3] = {
|
||||||
[SchemeNorm] = { foreground, background, aqua },
|
[SchemeNorm] = { foreground, background, aqua },
|
||||||
[SchemeSel] = { dark_gray, yellow, green },
|
[SchemeSel] = { dark_gray, yellow, green },
|
||||||
@@ -17,7 +16,7 @@ static const char *tags[] = { "1", "2", "3", "4" };
|
|||||||
static const Rule rules[] = {
|
static const Rule rules[] = {
|
||||||
/* class instance title tags mask isfloating monitor */
|
/* class instance title tags mask isfloating monitor */
|
||||||
{ "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 },
|
{ "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 },
|
||||||
{ "mercury-browser", "mercury-browser", NULL, 1 << 1, 0, -1 },
|
{ "mercury-default", "Navigator", NULL, 1 << 1, 0, -1 },
|
||||||
{ "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 },
|
{ "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 },
|
||||||
{ "st-256color", "st-256color", NULL, 1, 0, -1 },
|
{ "st-256color", "st-256color", NULL, 1, 0, -1 },
|
||||||
};
|
};
|
||||||
@@ -39,9 +38,8 @@ static const Layout layouts[] = { { "[]=", tile } };
|
|||||||
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
|
||||||
|
|
||||||
static char dmenumon[2] = "0";
|
static char dmenumon[2] = "0";
|
||||||
static const char *dmenucmd[] = { "dmenu_run", "-g", "6", "-l", "3", "-m", dmenumon, "-fn", dmenufont, "-nb", background, "-nf", foreground, "-sb", blue, "-sf", dark_gray, NULL };
|
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, NULL };
|
||||||
static const char *termcmd[] = { "st", NULL };
|
static const char *termcmd[] = { "st", NULL };
|
||||||
static const char *browser[] = { "firefox-bin", NULL };
|
|
||||||
|
|
||||||
#include "movestack.c"
|
#include "movestack.c"
|
||||||
#include "X11/XF86keysym.h"
|
#include "X11/XF86keysym.h"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -19,7 +19,7 @@ done
|
|||||||
|
|
||||||
shift $((OPTIND - 1))
|
shift $((OPTIND - 1))
|
||||||
APP="$1"
|
APP="$1"
|
||||||
APP_DIR="$HOME/.config/suckless/$APP"
|
APP_DIR="/home/andrew/dotfiles/.config/suckless/$APP"
|
||||||
CONFIG_FILE="$APP_DIR/config.def.h"
|
CONFIG_FILE="$APP_DIR/config.def.h"
|
||||||
|
|
||||||
if [[ -z "$APP" ]]; then
|
if [[ -z "$APP" ]]; then
|
||||||
@@ -52,9 +52,9 @@ AFTER_HASH=$(sha256sum config.def.h | cut -d ' ' -f1)
|
|||||||
|
|
||||||
if [[ "$BEFORE_HASH" != "$AFTER_HASH" || "$REBUILD" == true ]]; then
|
if [[ "$BEFORE_HASH" != "$AFTER_HASH" || "$REBUILD" == true ]]; then
|
||||||
echo "Rebuilding $APP..."
|
echo "Rebuilding $APP..."
|
||||||
sudo rm -f config.h
|
doas rm -f config.h
|
||||||
make
|
make
|
||||||
sudo make install
|
doas make install
|
||||||
pkill dwm
|
pkill dwm
|
||||||
else
|
else
|
||||||
echo "No changes detected. Skipping rebuild."
|
echo "No changes detected. Skipping rebuild."
|
||||||
|
|||||||
@@ -1,253 +0,0 @@
|
|||||||
## Why does st not handle utmp entries?
|
|
||||||
|
|
||||||
Use the excellent tool of [utmp](https://git.suckless.org/utmp/) for this task.
|
|
||||||
|
|
||||||
|
|
||||||
## Some _random program_ complains that st is unknown/not recognised/unsupported/whatever!
|
|
||||||
|
|
||||||
It means that st doesn’t have any terminfo entry on your system. Chances are
|
|
||||||
you did not `make install`. If you just want to test it without installing it,
|
|
||||||
you can manually run `tic -sx st.info`.
|
|
||||||
|
|
||||||
|
|
||||||
## Nothing works, and nothing is said about an unknown terminal!
|
|
||||||
|
|
||||||
* Some programs just assume they’re running in xterm i.e. they don’t rely on
|
|
||||||
terminfo. What you see is the current state of the “xterm compliance”.
|
|
||||||
* Some programs don’t complain about the lacking st description and default to
|
|
||||||
another terminal. In that case see the question about terminfo.
|
|
||||||
|
|
||||||
|
|
||||||
## How do I scroll back up?
|
|
||||||
|
|
||||||
* Using a terminal multiplexer.
|
|
||||||
* `st -e tmux` using C-b [
|
|
||||||
* `st -e screen` using C-a ESC
|
|
||||||
* Using the excellent tool of [scroll](https://git.suckless.org/scroll/).
|
|
||||||
* Using the scrollback [patch](https://st.suckless.org/patches/scrollback/).
|
|
||||||
|
|
||||||
|
|
||||||
## I would like to have utmp and/or scroll functionality by default
|
|
||||||
|
|
||||||
You can add the absolute path of both programs in your config.h file. You only
|
|
||||||
have to modify the value of utmp and scroll variables.
|
|
||||||
|
|
||||||
|
|
||||||
## Why doesn't the Del key work in some programs?
|
|
||||||
|
|
||||||
Taken from the terminfo manpage:
|
|
||||||
|
|
||||||
If the terminal has a keypad that transmits codes when the keys
|
|
||||||
are pressed, this information can be given. Note that it is not
|
|
||||||
possible to handle terminals where the keypad only works in
|
|
||||||
local (this applies, for example, to the unshifted HP 2621 keys).
|
|
||||||
If the keypad can be set to transmit or not transmit, give these
|
|
||||||
codes as smkx and rmkx. Otherwise the keypad is assumed to
|
|
||||||
always transmit.
|
|
||||||
|
|
||||||
In the st case smkx=E[?1hE= and rmkx=E[?1lE>, so it is mandatory that
|
|
||||||
applications which want to test against keypad keys send these
|
|
||||||
sequences.
|
|
||||||
|
|
||||||
But buggy applications (like bash and irssi, for example) don't do this. A fast
|
|
||||||
solution for them is to use the following command:
|
|
||||||
|
|
||||||
$ printf '\033[?1h\033=' >/dev/tty
|
|
||||||
|
|
||||||
or
|
|
||||||
$ tput smkx
|
|
||||||
|
|
||||||
In the case of bash, readline is used. Readline has a different note in its
|
|
||||||
manpage about this issue:
|
|
||||||
|
|
||||||
enable-keypad (Off)
|
|
||||||
When set to On, readline will try to enable the
|
|
||||||
application keypad when it is called. Some systems
|
|
||||||
need this to enable arrow keys.
|
|
||||||
|
|
||||||
Adding this option to your .inputrc will fix the keypad problem for all
|
|
||||||
applications using readline.
|
|
||||||
|
|
||||||
If you are using zsh, then read the zsh FAQ
|
|
||||||
<http://zsh.sourceforge.net/FAQ/zshfaq03.html#l25>:
|
|
||||||
|
|
||||||
It should be noted that the O / [ confusion can occur with other keys
|
|
||||||
such as Home and End. Some systems let you query the key sequences
|
|
||||||
sent by these keys from the system's terminal database, terminfo.
|
|
||||||
Unfortunately, the key sequences given there typically apply to the
|
|
||||||
mode that is not the one zsh uses by default (it's the "application"
|
|
||||||
mode rather than the "raw" mode). Explaining the use of terminfo is
|
|
||||||
outside of the scope of this FAQ, but if you wish to use the key
|
|
||||||
sequences given there you can tell the line editor to turn on
|
|
||||||
"application" mode when it starts and turn it off when it stops:
|
|
||||||
|
|
||||||
function zle-line-init () { echoti smkx }
|
|
||||||
function zle-line-finish () { echoti rmkx }
|
|
||||||
zle -N zle-line-init
|
|
||||||
zle -N zle-line-finish
|
|
||||||
|
|
||||||
Putting these lines into your .zshrc will fix the problems.
|
|
||||||
|
|
||||||
|
|
||||||
## How can I use meta in 8bit mode?
|
|
||||||
|
|
||||||
St supports meta in 8bit mode, but the default terminfo entry doesn't
|
|
||||||
use this capability. If you want it, you have to use the 'st-meta' value
|
|
||||||
in TERM.
|
|
||||||
|
|
||||||
|
|
||||||
## I cannot compile st in OpenBSD
|
|
||||||
|
|
||||||
OpenBSD lacks librt, despite it being mandatory in POSIX
|
|
||||||
<http://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html#tag_20_11_13>.
|
|
||||||
If you want to compile st for OpenBSD you have to remove -lrt from config.mk, and
|
|
||||||
st will compile without any loss of functionality, because all the functions are
|
|
||||||
included in libc on this platform.
|
|
||||||
|
|
||||||
|
|
||||||
## The Backspace Case
|
|
||||||
|
|
||||||
St is emulating the Linux way of handling backspace being delete and delete being
|
|
||||||
backspace.
|
|
||||||
|
|
||||||
This is an issue that was discussed in suckless mailing list
|
|
||||||
<https://lists.suckless.org/dev/1404/20697.html>. Here is why some old grumpy
|
|
||||||
terminal users wants its backspace to be how he feels it:
|
|
||||||
|
|
||||||
Well, I am going to comment why I want to change the behaviour
|
|
||||||
of this key. When ASCII was defined in 1968, communication
|
|
||||||
with computers was done using punched cards, or hardcopy
|
|
||||||
terminals (basically a typewriter machine connected with the
|
|
||||||
computer using a serial port). ASCII defines DELETE as 7F,
|
|
||||||
because, in punched-card terms, it means all the holes of the
|
|
||||||
card punched; it is thus a kind of 'physical delete'. In the
|
|
||||||
same way, the BACKSPACE key was a non-destructive backspace,
|
|
||||||
as on a typewriter. So, if you wanted to delete a character,
|
|
||||||
you had to BACKSPACE and then DELETE. Another use of BACKSPACE
|
|
||||||
was to type accented characters, for example 'a BACKSPACE `'.
|
|
||||||
The VT100 had no BACKSPACE key; it was generated using the
|
|
||||||
CONTROL key as another control character (CONTROL key sets to
|
|
||||||
0 b7 b6 b5, so it converts H (code 0x48) into BACKSPACE (code
|
|
||||||
0x08)), but it had a DELETE key in a similar position where
|
|
||||||
the BACKSPACE key is located today on common PC keyboards.
|
|
||||||
All the terminal emulators emulated the difference between
|
|
||||||
these keys correctly: the backspace key generated a BACKSPACE
|
|
||||||
(^H) and delete key generated a DELETE (^?).
|
|
||||||
|
|
||||||
But a problem arose when Linus Torvalds wrote Linux. Unlike
|
|
||||||
earlier terminals, the Linux virtual terminal (the terminal
|
|
||||||
emulator integrated in the kernel) returned a DELETE when
|
|
||||||
backspace was pressed, due to the VT100 having a DELETE key in
|
|
||||||
the same position. This created a lot of problems (see [1]
|
|
||||||
and [2]). Since Linux has become the king, a lot of terminal
|
|
||||||
emulators today generate a DELETE when the backspace key is
|
|
||||||
pressed in order to avoid problems with Linux. The result is
|
|
||||||
that the only way of generating a BACKSPACE on these systems
|
|
||||||
is by using CONTROL + H. (I also think that emacs had an
|
|
||||||
important point here because the CONTROL + H prefix is used
|
|
||||||
in emacs in some commands (help commands).)
|
|
||||||
|
|
||||||
From point of view of the kernel, you can change the key
|
|
||||||
for deleting a previous character with stty erase. When you
|
|
||||||
connect a real terminal into a machine you describe the type
|
|
||||||
of terminal, so getty configures the correct value of stty
|
|
||||||
erase for this terminal. In the case of terminal emulators,
|
|
||||||
however, you don't have any getty that can set the correct
|
|
||||||
value of stty erase, so you always get the default value.
|
|
||||||
For this reason, it is necessary to add 'stty erase ^H' to your
|
|
||||||
profile if you have changed the value of the backspace key.
|
|
||||||
Of course, another solution is for st itself to modify the
|
|
||||||
value of stty erase. I usually have the inverse problem:
|
|
||||||
when I connect to non-Unix machines, I have to press CONTROL +
|
|
||||||
h to get a BACKSPACE. The inverse problem occurs when a user
|
|
||||||
connects to my Unix machines from a different system with a
|
|
||||||
correct backspace key.
|
|
||||||
|
|
||||||
[1] http://www.ibb.net/~anne/keyboard.html
|
|
||||||
[2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html
|
|
||||||
|
|
||||||
|
|
||||||
## But I really want the old grumpy behaviour of my terminal
|
|
||||||
|
|
||||||
Apply [1].
|
|
||||||
|
|
||||||
[1] https://st.suckless.org/patches/delkey
|
|
||||||
|
|
||||||
|
|
||||||
## Why do images not work in st using the w3m image hack?
|
|
||||||
|
|
||||||
w3mimg uses a hack that draws an image on top of the terminal emulator Drawable
|
|
||||||
window. The hack relies on the terminal to use a single buffer to draw its
|
|
||||||
contents directly.
|
|
||||||
|
|
||||||
st uses double-buffered drawing so the image is quickly replaced and may show a
|
|
||||||
short flicker effect.
|
|
||||||
|
|
||||||
Below is a patch example to change st double-buffering to a single Drawable
|
|
||||||
buffer.
|
|
||||||
|
|
||||||
diff --git a/x.c b/x.c
|
|
||||||
--- a/x.c
|
|
||||||
+++ b/x.c
|
|
||||||
@@ -732,10 +732,6 @@ xresize(int col, int row)
|
|
||||||
win.tw = col * win.cw;
|
|
||||||
win.th = row * win.ch;
|
|
||||||
|
|
||||||
- XFreePixmap(xw.dpy, xw.buf);
|
|
||||||
- xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
|
||||||
- DefaultDepth(xw.dpy, xw.scr));
|
|
||||||
- XftDrawChange(xw.draw, xw.buf);
|
|
||||||
xclear(0, 0, win.w, win.h);
|
|
||||||
|
|
||||||
/* resize to new width */
|
|
||||||
@@ -1148,8 +1144,7 @@ xinit(int cols, int rows)
|
|
||||||
gcvalues.graphics_exposures = False;
|
|
||||||
dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures,
|
|
||||||
&gcvalues);
|
|
||||||
- xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
|
||||||
- DefaultDepth(xw.dpy, xw.scr));
|
|
||||||
+ xw.buf = xw.win;
|
|
||||||
XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel);
|
|
||||||
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h);
|
|
||||||
|
|
||||||
@@ -1632,8 +1627,6 @@ xdrawline(Line line, int x1, int y1, int x2)
|
|
||||||
void
|
|
||||||
xfinishdraw(void)
|
|
||||||
{
|
|
||||||
- XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, win.w,
|
|
||||||
- win.h, 0, 0);
|
|
||||||
XSetForeground(xw.dpy, dc.gc,
|
|
||||||
dc.col[IS_SET(MODE_REVERSE)?
|
|
||||||
defaultfg : defaultbg].pixel);
|
|
||||||
|
|
||||||
|
|
||||||
## BadLength X error in Xft when trying to render emoji
|
|
||||||
|
|
||||||
Xft makes st crash when rendering color emojis with the following error:
|
|
||||||
|
|
||||||
"X Error of failed request: BadLength (poly request too large or internal Xlib length error)"
|
|
||||||
Major opcode of failed request: 139 (RENDER)
|
|
||||||
Minor opcode of failed request: 20 (RenderAddGlyphs)
|
|
||||||
Serial number of failed request: 1595
|
|
||||||
Current serial number in output stream: 1818"
|
|
||||||
|
|
||||||
This is a known bug in Xft (not st) which happens on some platforms and
|
|
||||||
combination of particular fonts and fontconfig settings.
|
|
||||||
|
|
||||||
See also:
|
|
||||||
https://gitlab.freedesktop.org/xorg/lib/libxft/issues/6
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=107534
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1498269
|
|
||||||
|
|
||||||
The solution is to remove color emoji fonts or disable this in the fontconfig
|
|
||||||
XML configuration. As an ugly workaround (which may work only on newer
|
|
||||||
fontconfig versions (FC_COLOR)), the following code can be used to mask color
|
|
||||||
fonts:
|
|
||||||
|
|
||||||
FcPatternAddBool(fcpattern, FC_COLOR, FcFalse);
|
|
||||||
|
|
||||||
Please don't bother reporting this bug to st, but notify the upstream Xft
|
|
||||||
developers about fixing this bug.
|
|
||||||
|
|
||||||
As of 2022-09-05 this now seems to be finally fixed in libXft 2.3.5:
|
|
||||||
https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
A STATEMENT ON LEGACY SUPPORT
|
|
||||||
|
|
||||||
In the terminal world there is much cruft that comes from old and unsup‐
|
|
||||||
ported terminals that inherit incompatible modes and escape sequences
|
|
||||||
which noone is able to know, except when he/she comes from that time and
|
|
||||||
developed a graphical vt100 emulator at that time.
|
|
||||||
|
|
||||||
One goal of st is to only support what is really needed. When you en‐
|
|
||||||
counter a sequence which you really need, implement it. But while you
|
|
||||||
are at it, do not add the other cruft you might encounter while sneek‐
|
|
||||||
ing at other terminal emulators. History has bloated them and there is
|
|
||||||
no real evidence that most of the sequences are used today.
|
|
||||||
|
|
||||||
|
|
||||||
Christoph Lohmann <20h@r-36.net>
|
|
||||||
2012-09-13T07:00:36.081271045+02:00
|
|
||||||
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
MIT/X Consortium License
|
|
||||||
|
|
||||||
© 2014-2022 Hiltjo Posthuma <hiltjo at codemadness dot org>
|
|
||||||
© 2018 Devin J. Pohly <djpohly at gmail dot com>
|
|
||||||
© 2014-2017 Quentin Rameau <quinq at fifth dot space>
|
|
||||||
© 2009-2012 Aurélien APTEL <aurelien dot aptel at gmail dot com>
|
|
||||||
© 2008-2017 Anselm R Garbe <garbeam at gmail dot com>
|
|
||||||
© 2012-2017 Roberto E. Vargas Caballero <k0ga at shike2 dot com>
|
|
||||||
© 2012-2016 Christoph Lohmann <20h at r-36 dot net>
|
|
||||||
© 2013 Eon S. Jeon <esjeon at hyunmu dot am>
|
|
||||||
© 2013 Alexander Sedov <alex0player at gmail dot com>
|
|
||||||
© 2013 Mark Edgar <medgar123 at gmail dot com>
|
|
||||||
© 2013-2014 Eric Pruitt <eric.pruitt at gmail dot com>
|
|
||||||
© 2013 Michael Forney <mforney at mforney dot org>
|
|
||||||
© 2013-2014 Markus Teich <markus dot teich at stusta dot mhn dot de>
|
|
||||||
© 2014-2015 Laslo Hunhold <dev at frign dot de>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the "Software"),
|
|
||||||
to deal in the Software without restriction, including without limitation
|
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
st - simple terminal
|
|
||||||
--------------------
|
|
||||||
st is a simple terminal emulator for X which sucks less.
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
|
||||||
In order to build st you need the Xlib header files.
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
Edit config.mk to match your local setup (st is installed into
|
|
||||||
the /usr/local namespace by default).
|
|
||||||
|
|
||||||
Afterwards enter the following command to build and install st (if
|
|
||||||
necessary as root):
|
|
||||||
|
|
||||||
make clean install
|
|
||||||
|
|
||||||
|
|
||||||
Running st
|
|
||||||
----------
|
|
||||||
If you did not install st with make clean install, you must compile
|
|
||||||
the st terminfo entry with the following command:
|
|
||||||
|
|
||||||
tic -sx st.info
|
|
||||||
|
|
||||||
See the man page for additional details.
|
|
||||||
|
|
||||||
Credits
|
|
||||||
-------
|
|
||||||
Based on Aurélien APTEL <aurelien dot aptel at gmail dot com> bt source code.
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
vt emulation
|
|
||||||
------------
|
|
||||||
|
|
||||||
* double-height support
|
|
||||||
|
|
||||||
code & interface
|
|
||||||
----------------
|
|
||||||
|
|
||||||
* add a simple way to do multiplexing
|
|
||||||
|
|
||||||
drawing
|
|
||||||
-------
|
|
||||||
* add diacritics support to xdraws()
|
|
||||||
* switch to a suckless font drawing library
|
|
||||||
* make the font cache simpler
|
|
||||||
* add better support for brightening of the upper colors
|
|
||||||
|
|
||||||
bugs
|
|
||||||
----
|
|
||||||
|
|
||||||
* fix shift up/down (shift selection in emacs)
|
|
||||||
* remove DEC test sequence when appropriate
|
|
||||||
|
|
||||||
misc
|
|
||||||
----
|
|
||||||
|
|
||||||
$ grep -nE 'XXX|TODO' st.c
|
|
||||||
|
|
||||||
@@ -1,14 +1,4 @@
|
|||||||
/* See LICENSE file for copyright and license details. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* appearance
|
|
||||||
*
|
|
||||||
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
|
|
||||||
*/
|
|
||||||
// static char *font = "CaskaydiaCoveNerdFontMono-Regular:size=11:antialias=true:autohint=true";
|
|
||||||
// static char *font = "CaskaydiaCove Nerd Font Mono:style=SemiBold:size=11:antialias=true:autohint=true";
|
|
||||||
static char *font = "CaskaydiaCove Nerd Font Mono:weight=180:size=11.5:antialias=true:autohint=true";
|
static char *font = "CaskaydiaCove Nerd Font Mono:weight=180:size=11.5:antialias=true:autohint=true";
|
||||||
|
|
||||||
static int borderpx = 10;
|
static int borderpx = 10;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -76,27 +66,10 @@ static unsigned int cursorthickness = 2;
|
|||||||
*/
|
*/
|
||||||
static int bellvolume = 0;
|
static int bellvolume = 0;
|
||||||
|
|
||||||
/* default TERM value */
|
// char *termname = "st-256color";
|
||||||
char *termname = "st-256color";
|
char *termname = "st";
|
||||||
|
|
||||||
/*
|
|
||||||
* spaces per tab
|
|
||||||
*
|
|
||||||
* When you are changing this value, don't forget to adapt the »it« value in
|
|
||||||
* the st.info and appropriately install the st.info in the environment where
|
|
||||||
* you use this st version.
|
|
||||||
*
|
|
||||||
* it#$tabspaces,
|
|
||||||
*
|
|
||||||
* Secondly make sure your kernel is not expanding tabs. When running `stty
|
|
||||||
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
|
|
||||||
* running following command:
|
|
||||||
*
|
|
||||||
* stty tabs
|
|
||||||
*/
|
|
||||||
unsigned int tabspaces = 8;
|
unsigned int tabspaces = 8;
|
||||||
|
|
||||||
/* Terminal colors (16 first used in escape sequence) */
|
|
||||||
static const char *colorname[] = {
|
static const char *colorname[] = {
|
||||||
/* 8 normal colors */
|
/* 8 normal colors */
|
||||||
"#343f44", // black
|
"#343f44", // black
|
||||||
@@ -133,24 +106,15 @@ unsigned int defaultcs = 258;
|
|||||||
static unsigned int defaultrcs = 259;
|
static unsigned int defaultrcs = 259;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default shape of cursor
|
|
||||||
* 2: Block ("█")
|
* 2: Block ("█")
|
||||||
* 4: Underline ("_")
|
* 4: Underline ("_")
|
||||||
* 6: Bar ("|")
|
* 6: Bar ("|")
|
||||||
* 7: Snowman ("☃")
|
|
||||||
*/
|
*/
|
||||||
static unsigned int cursorshape = 2;
|
static unsigned int cursorshape = 2;
|
||||||
|
|
||||||
/*
|
|
||||||
* Default columns and rows numbers
|
|
||||||
*/
|
|
||||||
|
|
||||||
static unsigned int cols = 80;
|
static unsigned int cols = 80;
|
||||||
static unsigned int rows = 30;
|
static unsigned int rows = 24;
|
||||||
|
|
||||||
/*
|
|
||||||
* Default colour and shape of the mouse cursor
|
|
||||||
*/
|
|
||||||
static unsigned int mouseshape = XC_xterm;
|
static unsigned int mouseshape = XC_xterm;
|
||||||
static unsigned int mousefg = 7;
|
static unsigned int mousefg = 7;
|
||||||
static unsigned int mousebg = 0;
|
static unsigned int mousebg = 0;
|
||||||
@@ -278,7 +242,8 @@ static Key key[] = {
|
|||||||
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
||||||
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", -1, 0},
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
||||||
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
||||||
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
|
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
|
||||||
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
||||||
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
||||||
@@ -345,7 +310,8 @@ static Key key[] = {
|
|||||||
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
||||||
{ XK_Delete, XK_ANY_MOD, "\033[3~", -1, 0},
|
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
||||||
|
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
||||||
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
|
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
|
||||||
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
|
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
|
||||||
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
--- config.def.h
|
|
||||||
+++ config.def.h
|
|
||||||
@@ -201,6 +201,8 @@ static Shortcut shortcuts[] = {
|
|
||||||
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
|
|
||||||
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
|
|
||||||
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
|
|
||||||
+ { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} },
|
|
||||||
+ { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} },
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -1,14 +1,4 @@
|
|||||||
/* See LICENSE file for copyright and license details. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* appearance
|
|
||||||
*
|
|
||||||
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
|
|
||||||
*/
|
|
||||||
// static char *font = "CaskaydiaCoveNerdFontMono-Regular:size=11:antialias=true:autohint=true";
|
|
||||||
// static char *font = "CaskaydiaCove Nerd Font Mono:style=SemiBold:size=11:antialias=true:autohint=true";
|
|
||||||
static char *font = "CaskaydiaCove Nerd Font Mono:weight=180:size=11.5:antialias=true:autohint=true";
|
static char *font = "CaskaydiaCove Nerd Font Mono:weight=180:size=11.5:antialias=true:autohint=true";
|
||||||
|
|
||||||
static int borderpx = 10;
|
static int borderpx = 10;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -76,27 +66,10 @@ static unsigned int cursorthickness = 2;
|
|||||||
*/
|
*/
|
||||||
static int bellvolume = 0;
|
static int bellvolume = 0;
|
||||||
|
|
||||||
/* default TERM value */
|
// char *termname = "st-256color";
|
||||||
char *termname = "st-256color";
|
char *termname = "st";
|
||||||
|
|
||||||
/*
|
|
||||||
* spaces per tab
|
|
||||||
*
|
|
||||||
* When you are changing this value, don't forget to adapt the »it« value in
|
|
||||||
* the st.info and appropriately install the st.info in the environment where
|
|
||||||
* you use this st version.
|
|
||||||
*
|
|
||||||
* it#$tabspaces,
|
|
||||||
*
|
|
||||||
* Secondly make sure your kernel is not expanding tabs. When running `stty
|
|
||||||
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
|
|
||||||
* running following command:
|
|
||||||
*
|
|
||||||
* stty tabs
|
|
||||||
*/
|
|
||||||
unsigned int tabspaces = 8;
|
unsigned int tabspaces = 8;
|
||||||
|
|
||||||
/* Terminal colors (16 first used in escape sequence) */
|
|
||||||
static const char *colorname[] = {
|
static const char *colorname[] = {
|
||||||
/* 8 normal colors */
|
/* 8 normal colors */
|
||||||
"#343f44", // black
|
"#343f44", // black
|
||||||
@@ -133,24 +106,15 @@ unsigned int defaultcs = 258;
|
|||||||
static unsigned int defaultrcs = 259;
|
static unsigned int defaultrcs = 259;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default shape of cursor
|
|
||||||
* 2: Block ("█")
|
* 2: Block ("█")
|
||||||
* 4: Underline ("_")
|
* 4: Underline ("_")
|
||||||
* 6: Bar ("|")
|
* 6: Bar ("|")
|
||||||
* 7: Snowman ("☃")
|
|
||||||
*/
|
*/
|
||||||
static unsigned int cursorshape = 2;
|
static unsigned int cursorshape = 2;
|
||||||
|
|
||||||
/*
|
|
||||||
* Default columns and rows numbers
|
|
||||||
*/
|
|
||||||
|
|
||||||
static unsigned int cols = 80;
|
static unsigned int cols = 80;
|
||||||
static unsigned int rows = 30;
|
static unsigned int rows = 24;
|
||||||
|
|
||||||
/*
|
|
||||||
* Default colour and shape of the mouse cursor
|
|
||||||
*/
|
|
||||||
static unsigned int mouseshape = XC_xterm;
|
static unsigned int mouseshape = XC_xterm;
|
||||||
static unsigned int mousefg = 7;
|
static unsigned int mousefg = 7;
|
||||||
static unsigned int mousebg = 0;
|
static unsigned int mousebg = 0;
|
||||||
@@ -278,7 +242,8 @@ static Key key[] = {
|
|||||||
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
||||||
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", -1, 0},
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
||||||
|
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
||||||
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
|
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
|
||||||
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
||||||
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
||||||
@@ -345,7 +310,8 @@ static Key key[] = {
|
|||||||
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
|
||||||
{ XK_Delete, XK_ANY_MOD, "\033[3~", -1, 0},
|
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
|
||||||
|
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
|
||||||
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
|
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
|
||||||
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
|
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
|
||||||
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
||||||
|
|||||||
@@ -1,129 +0,0 @@
|
|||||||
diff --git a/config.def.h b/config.def.h
|
|
||||||
index 2cd740a..019a4e1 100644
|
|
||||||
--- a/config.def.h
|
|
||||||
+++ b/config.def.h
|
|
||||||
@@ -93,6 +93,9 @@ char *termname = "st-256color";
|
|
||||||
*/
|
|
||||||
unsigned int tabspaces = 8;
|
|
||||||
|
|
||||||
+/* bg opacity */
|
|
||||||
+float alpha = 0.8;
|
|
||||||
+
|
|
||||||
/* Terminal colors (16 first used in escape sequence) */
|
|
||||||
static const char *colorname[] = {
|
|
||||||
/* 8 normal colors */
|
|
||||||
diff --git a/x.c b/x.c
|
|
||||||
index d73152b..f32fd6c 100644
|
|
||||||
--- a/x.c
|
|
||||||
+++ b/x.c
|
|
||||||
@@ -105,6 +105,7 @@ typedef struct {
|
|
||||||
XSetWindowAttributes attrs;
|
|
||||||
int scr;
|
|
||||||
int isfixed; /* is fixed geometry? */
|
|
||||||
+ int depth; /* bit depth */
|
|
||||||
int l, t; /* left and top offset */
|
|
||||||
int gm; /* geometry mask */
|
|
||||||
} XWindow;
|
|
||||||
@@ -752,7 +753,7 @@ xresize(int col, int row)
|
|
||||||
|
|
||||||
XFreePixmap(xw.dpy, xw.buf);
|
|
||||||
xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
|
||||||
- DefaultDepth(xw.dpy, xw.scr));
|
|
||||||
+ xw.depth);
|
|
||||||
XftDrawChange(xw.draw, xw.buf);
|
|
||||||
xclear(0, 0, win.w, win.h);
|
|
||||||
|
|
||||||
@@ -812,6 +813,10 @@ xloadcols(void)
|
|
||||||
else
|
|
||||||
die("could not allocate color %d\n", i);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * alpha);
|
|
||||||
+ dc.col[defaultbg].pixel &= 0x00FFFFFF;
|
|
||||||
+ dc.col[defaultbg].pixel |= (unsigned char)(0xff * alpha) << 24;
|
|
||||||
loaded = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -842,6 +847,12 @@ xsetcolorname(int x, const char *name)
|
|
||||||
XftColorFree(xw.dpy, xw.vis, xw.cmap, &dc.col[x]);
|
|
||||||
dc.col[x] = ncolor;
|
|
||||||
|
|
||||||
+ if (x == defaultbg) {
|
|
||||||
+ dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * alpha);
|
|
||||||
+ dc.col[defaultbg].pixel &= 0x00FFFFFF;
|
|
||||||
+ dc.col[defaultbg].pixel |= (unsigned char)(0xff * alpha) << 24;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1134,11 +1145,25 @@ xinit(int cols, int rows)
|
|
||||||
Window parent, root;
|
|
||||||
pid_t thispid = getpid();
|
|
||||||
XColor xmousefg, xmousebg;
|
|
||||||
+ XWindowAttributes attr;
|
|
||||||
+ XVisualInfo vis;
|
|
||||||
|
|
||||||
if (!(xw.dpy = XOpenDisplay(NULL)))
|
|
||||||
die("can't open display\n");
|
|
||||||
xw.scr = XDefaultScreen(xw.dpy);
|
|
||||||
- xw.vis = XDefaultVisual(xw.dpy, xw.scr);
|
|
||||||
+
|
|
||||||
+ root = XRootWindow(xw.dpy, xw.scr);
|
|
||||||
+ if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0))))
|
|
||||||
+ parent = root;
|
|
||||||
+
|
|
||||||
+ if (XMatchVisualInfo(xw.dpy, xw.scr, 32, TrueColor, &vis) != 0) {
|
|
||||||
+ xw.vis = vis.visual;
|
|
||||||
+ xw.depth = vis.depth;
|
|
||||||
+ } else {
|
|
||||||
+ XGetWindowAttributes(xw.dpy, parent, &attr);
|
|
||||||
+ xw.vis = attr.visual;
|
|
||||||
+ xw.depth = attr.depth;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* font */
|
|
||||||
if (!FcInit())
|
|
||||||
@@ -1148,7 +1173,7 @@ xinit(int cols, int rows)
|
|
||||||
xloadfonts(usedfont, 0);
|
|
||||||
|
|
||||||
/* colors */
|
|
||||||
- xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
|
|
||||||
+ xw.cmap = XCreateColormap(xw.dpy, parent, xw.vis, None);
|
|
||||||
xloadcols();
|
|
||||||
|
|
||||||
/* adjust fixed window geometry */
|
|
||||||
@@ -1168,11 +1193,8 @@ xinit(int cols, int rows)
|
|
||||||
| ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
|
|
||||||
xw.attrs.colormap = xw.cmap;
|
|
||||||
|
|
||||||
- root = XRootWindow(xw.dpy, xw.scr);
|
|
||||||
- if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0))))
|
|
||||||
- parent = root;
|
|
||||||
- xw.win = XCreateWindow(xw.dpy, root, xw.l, xw.t,
|
|
||||||
- win.w, win.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
|
|
||||||
+ xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t,
|
|
||||||
+ win.w, win.h, 0, xw.depth, InputOutput,
|
|
||||||
xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity
|
|
||||||
| CWEventMask | CWColormap, &xw.attrs);
|
|
||||||
if (parent != root)
|
|
||||||
@@ -1183,7 +1205,7 @@ xinit(int cols, int rows)
|
|
||||||
dc.gc = XCreateGC(xw.dpy, xw.win, GCGraphicsExposures,
|
|
||||||
&gcvalues);
|
|
||||||
xw.buf = XCreatePixmap(xw.dpy, xw.win, win.w, win.h,
|
|
||||||
- DefaultDepth(xw.dpy, xw.scr));
|
|
||||||
+ xw.depth);
|
|
||||||
XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel);
|
|
||||||
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, win.w, win.h);
|
|
||||||
|
|
||||||
@@ -2047,6 +2069,10 @@ main(int argc, char *argv[])
|
|
||||||
case 'a':
|
|
||||||
allowaltscreen = 0;
|
|
||||||
break;
|
|
||||||
+ case 'A':
|
|
||||||
+ alpha = strtof(EARGF(usage()), NULL);
|
|
||||||
+ LIMIT(alpha, 0.0, 1.0);
|
|
||||||
+ break;
|
|
||||||
case 'c':
|
|
||||||
opt_class = EARGF(usage());
|
|
||||||
break;
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
From 215ec30d6b5fe3319f88f1c9d16a37b6e14e5a53 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bakkeby <bakkeby@gmail.com>
|
|
||||||
Date: Mon, 19 Dec 2022 10:20:47 +0100
|
|
||||||
Subject: [PATCH] dynamic cursor color: cursor color taken from current
|
|
||||||
character
|
|
||||||
|
|
||||||
---
|
|
||||||
x.c | 17 ++++++++++++++---
|
|
||||||
1 file changed, 14 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/x.c b/x.c
|
|
||||||
index 2a3bd38..21aadce 100644
|
|
||||||
--- a/x.c
|
|
||||||
+++ b/x.c
|
|
||||||
@@ -1520,6 +1520,7 @@ void
|
|
||||||
xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
|
|
||||||
{
|
|
||||||
Color drawcol;
|
|
||||||
+ XRenderColor colbg;
|
|
||||||
|
|
||||||
/* remove the old cursor */
|
|
||||||
if (selected(ox, oy))
|
|
||||||
@@ -1548,11 +1549,21 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
|
|
||||||
if (selected(cx, cy)) {
|
|
||||||
g.fg = defaultfg;
|
|
||||||
g.bg = defaultrcs;
|
|
||||||
+ } else if (!(og.mode & ATTR_REVERSE)) {
|
|
||||||
+ unsigned long col = g.bg;
|
|
||||||
+ g.bg = g.fg;
|
|
||||||
+ g.fg = col;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (IS_TRUECOL(g.bg)) {
|
|
||||||
+ colbg.alpha = 0xffff;
|
|
||||||
+ colbg.red = TRUERED(g.bg);
|
|
||||||
+ colbg.green = TRUEGREEN(g.bg);
|
|
||||||
+ colbg.blue = TRUEBLUE(g.bg);
|
|
||||||
+ XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg, &drawcol);
|
|
||||||
} else {
|
|
||||||
- g.fg = defaultbg;
|
|
||||||
- g.bg = defaultcs;
|
|
||||||
+ drawcol = dc.col[g.bg];
|
|
||||||
}
|
|
||||||
- drawcol = dc.col[g.bg];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* draw the new one */
|
|
||||||
--
|
|
||||||
2.38.1
|
|
||||||
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
RESET='\033[0m'
|
||||||
|
|
||||||
|
DOTFILES_HOME="/home/andrew/dotfiles/"
|
||||||
|
DOTFILES_CONFIG="${DOTFILES_HOME}.config/"
|
||||||
|
DOTFILES_LOCAL="${DOTFILES_HOME}.local/"
|
||||||
|
|
||||||
|
PERSONAL_HOME="/home/andrew/"
|
||||||
|
CONFIG="${PERSONAL_HOME}.config/"
|
||||||
|
LOCAL="${PERSONAL_HOME}.local/"
|
||||||
|
|
||||||
|
ORIGINAL_DOTS=(
|
||||||
|
"${DOTFILES_CONFIG}nvim/"
|
||||||
|
"${DOTFILES_CONFIG}suckless/"
|
||||||
|
"${DOTFILES_LOCAL}share/fonts/"
|
||||||
|
"${DOTFILES_HOME}.xinitrc"
|
||||||
|
"${DOTFILES_HOME}.bashrc")
|
||||||
|
COPY_DOTS=(
|
||||||
|
"${CONFIG}nvim/"
|
||||||
|
"${CONFIG}suckless/"
|
||||||
|
"${LOCAL}share/fonts/"
|
||||||
|
"${PERSONAL_HOME}.xinitrc"
|
||||||
|
"${PERSONAL_HOME}.bashrc")
|
||||||
|
|
||||||
|
for x in "${!COPY_DOTS[@]}"; do
|
||||||
|
i="${COPY_DOTS[${x}]}"
|
||||||
|
if [[ -d ${i} ]]; then
|
||||||
|
echo -e "${i} ${GREEN}exists: Removing${RESET}"
|
||||||
|
rm -rd "${i}"
|
||||||
|
elif [[ -f ${i} ]]; then
|
||||||
|
echo -e "${i} ${GREEN}exists: Removing${RESET}"
|
||||||
|
rm -rf "${i}"
|
||||||
|
else
|
||||||
|
echo -e "${i} ${YELLOW}does not exist: Skipping${RESET}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for x in "${!ORIGINAL_DOTS[@]}"; do
|
||||||
|
i="${ORIGINAL_DOTS[${x}]}"
|
||||||
|
if [[ -d ${i} ]]; then
|
||||||
|
echo "Directory: ${i} -> ${COPY_DOTS[${x}]}"
|
||||||
|
cp -r ${i} ${COPY_DOTS[${x}]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ${i} ]]; then
|
||||||
|
echo "File: ${i} -> ${COPY_DOTS[${x}]}"
|
||||||
|
cp ${i} ${COPY_DOTS[${x}]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "${GREEN}Re-caching fonts${RESET}"
|
||||||
|
fc-cache -f
|
||||||
|
|
||||||
|
echo -e "${GREEN}Rebuilding Suckless Software${RESET}"
|
||||||
|
for x in "${CONFIG}suckless"/*/; do
|
||||||
|
[[ -d "${x}" ]] || continue
|
||||||
|
cd "${x}" && doas rm -rf config.h && make && doas make install
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user