back to black <3
This commit is contained in:
parent
33496feccd
commit
743dd01070
23 changed files with 618 additions and 270 deletions
33
Makefile
33
Makefile
|
|
@ -1,77 +1,44 @@
|
||||||
###############################################################################
|
|
||||||
# 🛠️ NixOS & System Management Commands
|
|
||||||
#
|
|
||||||
# These commands help manage the system configuration using Nix flakes.
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
.PHONY: copy-config deploy home upgrade debug up upp test history repl clean gc-sudo gc gcboot
|
.PHONY: copy-config deploy home upgrade debug up upp test history repl clean gc-sudo gc gcboot
|
||||||
|
|
||||||
# 🛑 Utility function: copy ~/nixos to /etc/nixos
|
|
||||||
copy-config:
|
copy-config:
|
||||||
sudo rm -rf /etc/nixos/*
|
sudo rm -rf /etc/nixos/*
|
||||||
sudo cp -r ~/nixos/* /etc/nixos/
|
sudo cp -r ~/nixos/* /etc/nixos/
|
||||||
|
|
||||||
# 🚀 Deploy the current system configuration and make it the default on boot.
|
|
||||||
# Usage: make deploy
|
|
||||||
deploy: copy-config
|
deploy: copy-config
|
||||||
sudo nixos-rebuild switch --flake .#nixos
|
sudo nixos-rebuild switch --flake .#nixos
|
||||||
|
|
||||||
# 🏡 Same as `deploy`, but with a custom flake target (e.g., for home-manager).
|
|
||||||
# Usage: make home
|
|
||||||
home: copy-config
|
home: copy-config
|
||||||
sudo nixos-rebuild switch --flake /etc/nixos#nixos
|
sudo nixos-rebuild switch --flake /etc/nixos#nixos
|
||||||
|
|
||||||
# ⬆️ Upgrade system packages and apply the latest flake changes.
|
|
||||||
# Usage: make upgrade
|
|
||||||
upgrade: copy-config
|
upgrade: copy-config
|
||||||
sudo nixos-rebuild switch --upgrade --flake /etc/nixos
|
sudo nixos-rebuild switch --upgrade --flake /etc/nixos
|
||||||
|
|
||||||
# 🐛 Like `deploy`, but with verbose logs and error traces for debugging.
|
|
||||||
# Usage: make debug
|
|
||||||
debug: copy-config
|
debug: copy-config
|
||||||
sudo nixos-rebuild switch --flake /etc/nixos --show-trace --verbose
|
sudo nixos-rebuild switch --flake /etc/nixos --show-trace --verbose
|
||||||
|
|
||||||
# 🌐 Update all flake inputs to their latest versions.
|
|
||||||
# Usage: make up
|
|
||||||
up:
|
up:
|
||||||
sudo nix flake update --flake /etc/nixos
|
sudo nix flake update --flake /etc/nixos
|
||||||
|
|
||||||
# 🔍 Update a specific flake input (e.g., `make upp i=home-manager`)
|
|
||||||
# Usage: make upp i=home-manager
|
|
||||||
upp:
|
upp:
|
||||||
nix flake update ~/nixos/${i}
|
nix flake update ~/nixos/${i}
|
||||||
|
|
||||||
# 🧪 Test the configuration without setting it as the default boot entry.
|
|
||||||
# Usage: make test
|
|
||||||
test: copy-config
|
test: copy-config
|
||||||
sudo nixos-rebuild test --flake /etc/nixos
|
sudo nixos-rebuild test --flake /etc/nixos
|
||||||
|
|
||||||
# 🕓 Show system profile history.
|
|
||||||
# Usage: make history
|
|
||||||
history:
|
history:
|
||||||
nix profile history --profile /nix/var/nix/profiles/system
|
nix profile history --profile /nix/var/nix/profiles/system
|
||||||
|
|
||||||
# 💻 Launch the Nix REPL with nixpkgs from the flake.
|
|
||||||
# Usage: make repl
|
|
||||||
repl:
|
repl:
|
||||||
nix repl -f flake:nixpkgs
|
nix repl -f flake:nixpkgs
|
||||||
|
|
||||||
# 🧹 Clean up system profile history older than 1 day.
|
|
||||||
# Usage: make clean
|
|
||||||
clean:
|
clean:
|
||||||
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 1d
|
sudo nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 1d
|
||||||
|
|
||||||
# 🧼 Collect and delete old garbage as root.
|
|
||||||
# Usage: make gc-sudo
|
|
||||||
gc-sudo:
|
gc-sudo:
|
||||||
sudo nix-collect-garbage -d
|
sudo nix-collect-garbage -d
|
||||||
|
|
||||||
# 🧽 Same as above, but for the current user.
|
|
||||||
# Usage: make gc
|
|
||||||
gc:
|
gc:
|
||||||
nix-collect-garbage -d
|
nix-collect-garbage -d
|
||||||
|
|
||||||
# 🥾 Boot into a specific configuration without switching immediately.
|
|
||||||
# Usage: make gcboot
|
|
||||||
gcboot:
|
gcboot:
|
||||||
sudo /run/current-system/bin/switch-to-configuration boot
|
sudo /run/current-system/bin/switch-to-configuration boot
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,14 @@
|
||||||
|
|
||||||
# terminal stuff
|
# terminal stuff
|
||||||
./modules/terminal/foot/default.nix
|
./modules/terminal/foot/default.nix
|
||||||
|
./modules/terminal/st/default.nix
|
||||||
|
|
||||||
# shell stuff
|
# shell stuff
|
||||||
./modules/shell/bash/default.nix
|
./modules/shell/bash/default.nix
|
||||||
./modules/shell/direnv/default.nix
|
|
||||||
./modules/shell/fish/default.nix
|
./modules/shell/fish/default.nix
|
||||||
|
|
||||||
# user stuff
|
# user stuff
|
||||||
|
./modules/user/direnv/default.nix
|
||||||
./modules/user/tofi/default.nix
|
./modules/user/tofi/default.nix
|
||||||
./modules/user/dunst/default.nix
|
./modules/user/dunst/default.nix
|
||||||
./modules/user/git/default.nix
|
./modules/user/git/default.nix
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
./nixd.nix
|
./nixd.nix
|
||||||
./go.nix
|
./go.nix
|
||||||
./v.nix
|
./v.nix
|
||||||
|
./web.nix
|
||||||
];
|
];
|
||||||
plugins = {
|
plugins = {
|
||||||
lsp = {
|
lsp = {
|
||||||
|
|
|
||||||
12
home/modules/ide/nvim/lsp/web.nix
Normal file
12
home/modules/ide/nvim/lsp/web.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
plugins.lsp = {
|
||||||
|
servers = {
|
||||||
|
svelte = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
ts_ls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -25,10 +25,19 @@
|
||||||
globals.mapleader = " ";
|
globals.mapleader = " ";
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
# lsp
|
||||||
|
typescript
|
||||||
|
typescript-language-server
|
||||||
|
svelte-language-server
|
||||||
|
# misc
|
||||||
stylua
|
stylua
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
vlang
|
vlang
|
||||||
];
|
];
|
||||||
|
|
||||||
|
extraPlugins = with pkgs; [
|
||||||
|
vimPlugins.vim-crystal
|
||||||
|
];
|
||||||
|
|
||||||
extraConfigLua = builtins.readFile ./config.lua;
|
extraConfigLua = builtins.readFile ./config.lua;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ direnv hook fish | source
|
||||||
source ~/.config/fish/aliases/git.fish
|
source ~/.config/fish/aliases/git.fish
|
||||||
|
|
||||||
# path
|
# path
|
||||||
fish_add_path -g ~/bin ~/.config/v-analyzer/bin
|
fish_add_path -g ~/bin ~/go/bin ~/.config/v-analyzer/bin
|
||||||
|
|
||||||
# custom
|
# custom
|
||||||
function vir
|
function vir
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
nv = "nvim";
|
nv = "nvim";
|
||||||
cls = "clear";
|
cls = "clear";
|
||||||
|
unfetch = "unfetch -distro=eyes -art-dir=/home/elisiei/.config/unfetch -pkg=nix -fields=title,separator,os,kernel,uptime,shell,terminal,memory,packages";
|
||||||
};
|
};
|
||||||
|
|
||||||
functions = {
|
functions = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
"fg:green",
|
|
||||||
"${spwd}",
|
|
||||||
"fg:yellow",
|
"fg:yellow",
|
||||||
|
"${spwd}",
|
||||||
|
"fg:green",
|
||||||
"exec:fish -c 'git_branch'",
|
"exec:fish -c 'git_branch'",
|
||||||
{
|
{
|
||||||
"git_status_noclean": ["fg:red", " (+)"]
|
"git_status_noclean": ["fg:red", " (+)"]
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
},
|
},
|
||||||
"fg:blue",
|
"fg:blue",
|
||||||
"exec:fish -c 'nix_shell'",
|
"exec:fish -c 'nix_shell'",
|
||||||
"fg:red",
|
"fg:green",
|
||||||
": "
|
": "
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,28 @@
|
||||||
{lib, ...}: {
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
shell = "fish";
|
shell = "fish";
|
||||||
pad = "0x0center";
|
pad = "4x4center";
|
||||||
font = lib.mkForce "Maple Mono NF:size=12";
|
font = lib.mkForce "Maple Mono NF:size=12";
|
||||||
};
|
};
|
||||||
scrollback = {
|
scrollback = {
|
||||||
lines = 100000;
|
lines = 100000;
|
||||||
|
multiplier = 3;
|
||||||
|
indicator-position = "relative";
|
||||||
|
indicator-format = "line";
|
||||||
|
};
|
||||||
|
url = {
|
||||||
|
launch = "${pkgs.xdg-utils}/bin/xdg-open \${url}";
|
||||||
|
};
|
||||||
|
cursor = {
|
||||||
|
style = "beam";
|
||||||
|
beam-thickness = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
475
home/modules/terminal/st/config.h
Normal file
475
home/modules/terminal/st/config.h
Normal file
|
|
@ -0,0 +1,475 @@
|
||||||
|
/* See LICENSE file for copyright and license details. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* appearance
|
||||||
|
*
|
||||||
|
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
|
||||||
|
*/
|
||||||
|
static char *font = "Maple Mono NF:pixelsize=16:antialias=true:autohint=true";
|
||||||
|
static int borderpx = 5;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* What program is execed by st depends of these precedence rules:
|
||||||
|
* 1: program passed with -e
|
||||||
|
* 2: scroll and/or utmp
|
||||||
|
* 3: SHELL environment variable
|
||||||
|
* 4: value of shell in /etc/passwd
|
||||||
|
* 5: value of shell in config.h
|
||||||
|
*/
|
||||||
|
static char *shell = "fish";
|
||||||
|
char *utmp = NULL;
|
||||||
|
/* scroll program: to enable use a string like "scroll" */
|
||||||
|
char *scroll = NULL;
|
||||||
|
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
|
||||||
|
|
||||||
|
/* identification sequence returned in DA and DECID */
|
||||||
|
char *vtiden = "\033[?6c";
|
||||||
|
|
||||||
|
/* Kerning / character bounding-box multipliers */
|
||||||
|
static float cwscale = 1.0;
|
||||||
|
static float chscale = 1.0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* word delimiter string
|
||||||
|
*
|
||||||
|
* More advanced example: L" `'\"()[]{}"
|
||||||
|
*/
|
||||||
|
wchar_t *worddelimiters = L" ";
|
||||||
|
|
||||||
|
/* selection timeouts (in milliseconds) */
|
||||||
|
static unsigned int doubleclicktimeout = 300;
|
||||||
|
static unsigned int tripleclicktimeout = 600;
|
||||||
|
|
||||||
|
/* alt screens */
|
||||||
|
int allowaltscreen = 1;
|
||||||
|
|
||||||
|
/* allow certain non-interactive (insecure) window operations such as:
|
||||||
|
setting the clipboard text */
|
||||||
|
int allowwindowops = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* draw latency range in ms - from new content/keypress/etc until drawing.
|
||||||
|
* within this range, st draws when content stops arriving (idle). mostly it's
|
||||||
|
* near minlatency, but it waits longer for slow updates to avoid partial draw.
|
||||||
|
* low minlatency will tear/flicker more, as it can "detect" idle too early.
|
||||||
|
*/
|
||||||
|
static double minlatency = 2;
|
||||||
|
static double maxlatency = 33;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* blinking timeout (set to 0 to disable blinking) for the terminal blinking
|
||||||
|
* attribute.
|
||||||
|
*/
|
||||||
|
static unsigned int blinktimeout = 800;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* thickness of underline and bar cursors
|
||||||
|
*/
|
||||||
|
static unsigned int cursorthickness = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* bell volume. It must be a value between -100 and 100. Use 0 for disabling
|
||||||
|
* it
|
||||||
|
*/
|
||||||
|
static int bellvolume = 0;
|
||||||
|
|
||||||
|
/* default TERM value */
|
||||||
|
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;
|
||||||
|
|
||||||
|
/* Terminal colors (16 first used in escape sequence) */
|
||||||
|
static const char *colorname[] = {
|
||||||
|
/* 8 normal colors */
|
||||||
|
"black",
|
||||||
|
"red3",
|
||||||
|
"green3",
|
||||||
|
"yellow3",
|
||||||
|
"blue2",
|
||||||
|
"magenta3",
|
||||||
|
"cyan3",
|
||||||
|
"gray90",
|
||||||
|
|
||||||
|
/* 8 bright colors */
|
||||||
|
"gray50",
|
||||||
|
"red",
|
||||||
|
"green",
|
||||||
|
"yellow",
|
||||||
|
"#5c5cff",
|
||||||
|
"magenta",
|
||||||
|
"cyan",
|
||||||
|
"white",
|
||||||
|
|
||||||
|
[255] = 0,
|
||||||
|
|
||||||
|
/* more colors can be added after 255 to use with DefaultXX */
|
||||||
|
"#cccccc",
|
||||||
|
"#555555",
|
||||||
|
"gray90", /* default foreground colour */
|
||||||
|
"black", /* default background colour */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default colors (colorname index)
|
||||||
|
* foreground, background, cursor, reverse cursor
|
||||||
|
*/
|
||||||
|
unsigned int defaultfg = 258;
|
||||||
|
unsigned int defaultbg = 259;
|
||||||
|
unsigned int defaultcs = 256;
|
||||||
|
static unsigned int defaultrcs = 257;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default shape of cursor
|
||||||
|
* 2: Block ("█")
|
||||||
|
* 4: Underline ("_")
|
||||||
|
* 6: Bar ("|")
|
||||||
|
* 7: Snowman ("☃")
|
||||||
|
*/
|
||||||
|
static unsigned int cursorshape = 2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default columns and rows numbers
|
||||||
|
*/
|
||||||
|
|
||||||
|
static unsigned int cols = 80;
|
||||||
|
static unsigned int rows = 24;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default colour and shape of the mouse cursor
|
||||||
|
*/
|
||||||
|
static unsigned int mouseshape = XC_xterm;
|
||||||
|
static unsigned int mousefg = 7;
|
||||||
|
static unsigned int mousebg = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Color used to display font attributes when fontconfig selected a font which
|
||||||
|
* doesn't match the ones requested.
|
||||||
|
*/
|
||||||
|
static unsigned int defaultattr = 11;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
|
||||||
|
* Note that if you want to use ShiftMask with selmasks, set this to an other
|
||||||
|
* modifier, set to 0 to not use it.
|
||||||
|
*/
|
||||||
|
static uint forcemousemod = ShiftMask;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internal mouse shortcuts.
|
||||||
|
* Beware that overloading Button1 will disable the selection.
|
||||||
|
*/
|
||||||
|
static MouseShortcut mshortcuts[] = {
|
||||||
|
/* mask button function argument release */
|
||||||
|
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
|
||||||
|
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
|
||||||
|
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
|
||||||
|
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
|
||||||
|
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Internal keyboard shortcuts. */
|
||||||
|
#define MODKEY Mod1Mask
|
||||||
|
#define TERMMOD (ControlMask|ShiftMask)
|
||||||
|
|
||||||
|
static Shortcut shortcuts[] = {
|
||||||
|
/* mask keysym function argument */
|
||||||
|
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
|
||||||
|
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
|
||||||
|
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
|
||||||
|
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
|
||||||
|
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
|
||||||
|
{ TERMMOD, XK_Next, zoom, {.f = -1} },
|
||||||
|
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
|
||||||
|
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
|
||||||
|
{ TERMMOD, XK_V, clippaste, {.i = 0} },
|
||||||
|
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
|
||||||
|
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
|
||||||
|
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special keys (change & recompile st.info accordingly)
|
||||||
|
*
|
||||||
|
* Mask value:
|
||||||
|
* * Use XK_ANY_MOD to match the key no matter modifiers state
|
||||||
|
* * Use XK_NO_MOD to match the key alone (no modifiers)
|
||||||
|
* appkey value:
|
||||||
|
* * 0: no value
|
||||||
|
* * > 0: keypad application mode enabled
|
||||||
|
* * = 2: term.numlock = 1
|
||||||
|
* * < 0: keypad application mode disabled
|
||||||
|
* appcursor value:
|
||||||
|
* * 0: no value
|
||||||
|
* * > 0: cursor application mode enabled
|
||||||
|
* * < 0: cursor application mode disabled
|
||||||
|
*
|
||||||
|
* Be careful with the order of the definitions because st searches in
|
||||||
|
* this table sequentially, so any XK_ANY_MOD must be in the last
|
||||||
|
* position for a key.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
|
||||||
|
* to be mapped below, add them to this array.
|
||||||
|
*/
|
||||||
|
static KeySym mappedkeys[] = { -1 };
|
||||||
|
|
||||||
|
/*
|
||||||
|
* State bits to ignore when matching key or button events. By default,
|
||||||
|
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
|
||||||
|
*/
|
||||||
|
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the huge key array which defines all compatibility to the Linux
|
||||||
|
* world. Please decide about changes wisely.
|
||||||
|
*/
|
||||||
|
static Key key[] = {
|
||||||
|
/* keysym mask string appkey appcursor */
|
||||||
|
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
|
||||||
|
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
|
||||||
|
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
|
||||||
|
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
|
||||||
|
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
|
||||||
|
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
|
||||||
|
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
|
||||||
|
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
|
||||||
|
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
|
||||||
|
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
|
||||||
|
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
|
||||||
|
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
|
||||||
|
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
|
||||||
|
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
|
||||||
|
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
|
||||||
|
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
|
||||||
|
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
|
||||||
|
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
|
||||||
|
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
|
||||||
|
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
|
||||||
|
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
|
||||||
|
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
|
||||||
|
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
|
||||||
|
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
|
||||||
|
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
|
||||||
|
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
|
||||||
|
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
|
||||||
|
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
|
||||||
|
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
|
||||||
|
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
|
||||||
|
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
|
||||||
|
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
|
||||||
|
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
|
||||||
|
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
|
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
|
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +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_Add, XK_ANY_MOD, "\033Ok", +2, 0},
|
||||||
|
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
|
||||||
|
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
|
||||||
|
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
|
||||||
|
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
|
||||||
|
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
|
||||||
|
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
|
||||||
|
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
|
||||||
|
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
|
||||||
|
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
|
||||||
|
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
|
||||||
|
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
|
||||||
|
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
|
||||||
|
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
|
||||||
|
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
|
||||||
|
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
|
||||||
|
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
|
||||||
|
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
|
||||||
|
{ XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0},
|
||||||
|
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
|
||||||
|
{ XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0},
|
||||||
|
{ XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0},
|
||||||
|
{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0},
|
||||||
|
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
|
||||||
|
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
|
||||||
|
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
|
||||||
|
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
|
||||||
|
{ XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0},
|
||||||
|
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
|
||||||
|
{ XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0},
|
||||||
|
{ XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0},
|
||||||
|
{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0},
|
||||||
|
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
|
||||||
|
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
|
||||||
|
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
|
||||||
|
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
|
||||||
|
{ XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0},
|
||||||
|
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
|
||||||
|
{ XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0},
|
||||||
|
{ XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0},
|
||||||
|
{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0},
|
||||||
|
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
|
||||||
|
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
|
||||||
|
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
|
||||||
|
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
|
||||||
|
{ XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0},
|
||||||
|
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
|
||||||
|
{ XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0},
|
||||||
|
{ XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0},
|
||||||
|
{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0},
|
||||||
|
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
|
||||||
|
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
|
||||||
|
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
|
||||||
|
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
|
||||||
|
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
|
||||||
|
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
|
||||||
|
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
|
||||||
|
{ XK_Insert, ControlMask, "\033[L", -1, 0},
|
||||||
|
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
|
||||||
|
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
|
||||||
|
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
|
||||||
|
{ XK_Delete, ControlMask, "\033[M", -1, 0},
|
||||||
|
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
|
||||||
|
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
|
||||||
|
{ XK_Delete, ShiftMask, "\033[3;2~", +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, Mod1Mask, "\033\177", 0, 0},
|
||||||
|
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
|
||||||
|
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
|
||||||
|
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
|
||||||
|
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
|
||||||
|
{ XK_End, ControlMask, "\033[J", -1, 0},
|
||||||
|
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
|
||||||
|
{ XK_End, ShiftMask, "\033[K", -1, 0},
|
||||||
|
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
|
||||||
|
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
|
||||||
|
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
|
||||||
|
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
|
||||||
|
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
|
||||||
|
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
|
||||||
|
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
|
||||||
|
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
|
||||||
|
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
|
||||||
|
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
|
||||||
|
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
|
||||||
|
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
|
||||||
|
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
|
||||||
|
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
|
||||||
|
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
|
||||||
|
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
|
||||||
|
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
|
||||||
|
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
|
||||||
|
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
|
||||||
|
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
|
||||||
|
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
|
||||||
|
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
|
||||||
|
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
|
||||||
|
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
|
||||||
|
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
|
||||||
|
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
|
||||||
|
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
|
||||||
|
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
|
||||||
|
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
|
||||||
|
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
|
||||||
|
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
|
||||||
|
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
|
||||||
|
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
|
||||||
|
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
|
||||||
|
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
|
||||||
|
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
|
||||||
|
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
|
||||||
|
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
|
||||||
|
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
|
||||||
|
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
|
||||||
|
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
|
||||||
|
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
|
||||||
|
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
|
||||||
|
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
|
||||||
|
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
|
||||||
|
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
|
||||||
|
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
|
||||||
|
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
|
||||||
|
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
|
||||||
|
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
|
||||||
|
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
|
||||||
|
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
|
||||||
|
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
|
||||||
|
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
|
||||||
|
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
|
||||||
|
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
|
||||||
|
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
|
||||||
|
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
|
||||||
|
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
|
||||||
|
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
|
||||||
|
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
|
||||||
|
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
|
||||||
|
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
|
||||||
|
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
|
||||||
|
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
|
||||||
|
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
|
||||||
|
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
|
||||||
|
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
|
||||||
|
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
|
||||||
|
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
|
||||||
|
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
|
||||||
|
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
|
||||||
|
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
|
||||||
|
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
|
||||||
|
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
|
||||||
|
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
|
||||||
|
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
|
||||||
|
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
|
||||||
|
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
|
||||||
|
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
|
||||||
|
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
|
||||||
|
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
|
||||||
|
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
|
||||||
|
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
|
||||||
|
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
|
||||||
|
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
|
||||||
|
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
|
||||||
|
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
|
||||||
|
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
|
||||||
|
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
|
||||||
|
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
|
||||||
|
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
|
||||||
|
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
|
||||||
|
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Selection types' masks.
|
||||||
|
* Use the same masks as usual.
|
||||||
|
* Button1Mask is always unset, to make masks match between ButtonPress.
|
||||||
|
* ButtonRelease and MotionNotify.
|
||||||
|
* If no match is found, regular selection is used.
|
||||||
|
*/
|
||||||
|
static uint selmasks[] = {
|
||||||
|
[SEL_RECTANGULAR] = Mod1Mask,
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Printable characters in ASCII, used to estimate the advance width
|
||||||
|
* of single wide characters.
|
||||||
|
*/
|
||||||
|
static char ascii_printable[] =
|
||||||
|
" !\"#$%&'()*+,-./0123456789:;<=>?"
|
||||||
|
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
|
||||||
|
"`abcdefghijklmnopqrstuvwxyz{|}~";
|
||||||
|
|
||||||
|
|
@ -1,27 +1,20 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(st.overrideAttrs (oldAttrs: {
|
(st.overrideAttrs (oldAttrs: rec {
|
||||||
src = fetchFromGitHub {
|
buildInputs = oldAttrs.buildInputs ++ [harfbuzz];
|
||||||
owner = "elisiei";
|
patches = [
|
||||||
repo = "st";
|
(fetchpatch {
|
||||||
rev = "dd154987103b12df593a424fd238713201fbce54";
|
url = "https://st.suckless.org/patches/scrollback/st-scrollback-ringbuffer-0.9.2.diff";
|
||||||
sha256 = "sha256-/++WajhlI6zlE18DlslOn+qtoqxROxnZb63NK4MTeX0=";
|
sha256 = "1r23q4mi5bkam49ld5c3ccwaa1li7bbjx0ndjgm207p02az9h4cn";
|
||||||
};
|
})
|
||||||
|
(fetchpatch {
|
||||||
nativeBuildInputs = oldAttrs.nativeBuildInputs or [ ] ++ [ pkg-config ];
|
url = "https://st.suckless.org/patches/scrollback/st-scrollback-mouse-0.9.2.diff";
|
||||||
buildInputs = oldAttrs.buildInputs ++ [
|
sha256 = "068s5rjvvw2174y34i5xxvpw4jvjy58akd1kgf025h1153hmf7jy";
|
||||||
imlib2
|
})
|
||||||
zlib
|
|
||||||
harfbuzz
|
|
||||||
];
|
];
|
||||||
|
|
||||||
preBuild = ''
|
configFile = writeText "config.def.h" (builtins.readFile ./config.h);
|
||||||
cp config.def.h config.h
|
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
|
||||||
'';
|
|
||||||
|
|
||||||
makeFlags = [ "CC=${pkgs.gcc}/bin/gcc" ];
|
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
|
||||||
}))
|
}))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableNushellIntegration = true;
|
|
||||||
silent = true;
|
silent = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.wrapFirefox (pkgs.firefox-unwrapped.override {pipewireSupport = true;}) {};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,12 @@
|
||||||
fetch.prune = true;
|
fetch.prune = true;
|
||||||
|
|
||||||
# @elisiei
|
# @elisiei
|
||||||
url."git@github.com-elisiei:".insteadOf = "https://github.com/elisiei/";
|
# url."git@github.com-elisiei:".insteadOf = "https://github.com/elisiei/";
|
||||||
url."git@github.com-elisiei:".pushInsteadOf = "https://github.com/elisiei/";
|
# url."git@github.com-elisiei:".pushInsteadOf = "https://github.com/elisiei/";
|
||||||
|
|
||||||
# @yehorovye
|
# @yehorovye
|
||||||
url."git@github.com-yehorovye:".insteadOf = "https://github.com/yehorovye/";
|
# url."git@github.com-yehorovye:".insteadOf = "https://github.com/yehorovye/";
|
||||||
url."git@github.com-yehorovye:".pushInsteadOf = "https://github.com/yehorovye/";
|
# url."git@github.com-yehorovye:".pushInsteadOf = "https://github.com/yehorovye/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,27 @@ in {
|
||||||
enabledExtensions = with spicePkgs.extensions; [
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
adblock
|
adblock
|
||||||
hidePodcasts
|
hidePodcasts
|
||||||
shuffle
|
|
||||||
beautifulLyrics
|
|
||||||
];
|
];
|
||||||
|
|
||||||
theme = lib.mkForce spicePkgs.themes.text;
|
theme = lib.mkForce spicePkgs.themes.text;
|
||||||
|
colorScheme = "custom";
|
||||||
|
customColorScheme = {
|
||||||
|
text = "FFFFFF";
|
||||||
|
subtext = "C0C0C0";
|
||||||
|
sidebar-text = "FFFFFF";
|
||||||
|
main = "000000";
|
||||||
|
sidebar = "1A1A1A";
|
||||||
|
player = "000000";
|
||||||
|
card = "121212";
|
||||||
|
shadow = "000000";
|
||||||
|
selected-row = "404040";
|
||||||
|
button = "B0B0B0";
|
||||||
|
button-active = "FFFFFF";
|
||||||
|
button-disabled = "4A4A4A";
|
||||||
|
tab-active = "FFFFFF";
|
||||||
|
notification = "121212";
|
||||||
|
notification-error = "FFFFFF";
|
||||||
|
misc = "000000";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyodark.yaml";
|
base16Scheme = ./pitchblack.yaml;
|
||||||
|
|
||||||
icons = {
|
icons = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
21
home/modules/user/stylix/pitchblack.yaml
Normal file
21
home/modules/user/stylix/pitchblack.yaml
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
system: "base16"
|
||||||
|
name: "pitch black"
|
||||||
|
author: "elisiei"
|
||||||
|
variant: "dark"
|
||||||
|
palette:
|
||||||
|
base00: "#000000"
|
||||||
|
base01: "#121212"
|
||||||
|
base02: "#262626"
|
||||||
|
base03: "#3a3a3a"
|
||||||
|
base04: "#9a9a9a"
|
||||||
|
base05: "#cfcfcf"
|
||||||
|
base06: "#e6e6e6"
|
||||||
|
base07: "#ffffff"
|
||||||
|
base08: "#7a7a7a"
|
||||||
|
base09: "#8c8c8c"
|
||||||
|
base0A: "#a6a6a6"
|
||||||
|
base0B: "#949494"
|
||||||
|
base0C: "#8a8a8a"
|
||||||
|
base0D: "#707070"
|
||||||
|
base0E: "#7c7c7c"
|
||||||
|
base0F: "#5c5c5c"
|
||||||
|
|
@ -1,177 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
wallpaperScript = pkgs.writeShellScriptBin "random-wallpaper" ''
|
|
||||||
pkill swaybg 2>/dev/null || true
|
|
||||||
WALP=$(find "$HOME/wallpapers" -type f \( -iname "*.jpg" -o -iname "*.png" \) | shuf -n 1)
|
|
||||||
[ -n "$WALP" ] && ${pkgs.swaybg}/bin/swaybg -i "$WALP" --mode fill
|
|
||||||
'';
|
|
||||||
startupScript = pkgs.writeShellScriptBin "start" ''
|
|
||||||
${wallpaperScript}/bin/random-wallpaper
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = [ wallpaperScript ];
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
settings = {
|
|
||||||
monitor = [
|
|
||||||
",1920x1080,auto,1,bitdepth,8"
|
|
||||||
",preferred,auto,1,mirror,eDP-1,bitdepth,8"
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = "true";
|
|
||||||
};
|
|
||||||
|
|
||||||
exec-once = [ "${startupScript}/bin/start" ];
|
|
||||||
|
|
||||||
"$term" = "foot";
|
|
||||||
"$browser" = "librewolf";
|
|
||||||
"$menu" = "exec $(tofi-drun)";
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"XCURSOR_THEME,macOS"
|
|
||||||
"XCURSOR_SIZE,24"
|
|
||||||
];
|
|
||||||
|
|
||||||
general = {
|
|
||||||
gaps_in = "0";
|
|
||||||
gaps_out = "0";
|
|
||||||
border_size = "0";
|
|
||||||
"col.active_border" = "rgba(0,0,0,0)";
|
|
||||||
"col.inactive_border" = "rgba(0,0,0,0)";
|
|
||||||
resize_on_border = "false";
|
|
||||||
allow_tearing = "false";
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
|
|
||||||
debug = {
|
|
||||||
disable_logs = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = "0";
|
|
||||||
active_opacity = "1";
|
|
||||||
inactive_opacity = "0.95";
|
|
||||||
shadow.enabled = false;
|
|
||||||
blur = {
|
|
||||||
enabled = false;
|
|
||||||
xray = false;
|
|
||||||
special = true;
|
|
||||||
new_optimizations = true;
|
|
||||||
size = 10;
|
|
||||||
passes = 3;
|
|
||||||
brightness = 0.9;
|
|
||||||
noise = 2.0e-2;
|
|
||||||
contrast = 1.1;
|
|
||||||
popups = true;
|
|
||||||
popups_ignorealpha = 0.5;
|
|
||||||
|
|
||||||
vibrancy = 0.2;
|
|
||||||
vibrancy_darkness = 0.1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = false;
|
|
||||||
animations = {
|
|
||||||
bezier = [
|
|
||||||
"easeOutQuint, 0.23, 1, 0.32, 1"
|
|
||||||
"easeInOutCubic, 0.65, 0.05, 0.36, 1"
|
|
||||||
"linear, 0, 0, 1, 1"
|
|
||||||
"almostLinear, 0.5, 0.5, 0.75, 1.0"
|
|
||||||
"quick, 0.15, 0, 0.1, 1"
|
|
||||||
];
|
|
||||||
animation = [
|
|
||||||
"global, 1, 10, default"
|
|
||||||
"border, 1, 5.39, easeOutQuint"
|
|
||||||
"windows, 1, 4.79, easeOutQuint"
|
|
||||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
|
||||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
|
||||||
"fadeIn, 1, 1.73, almostLinear"
|
|
||||||
"fadeOut, 1, 1.46, almostLinear"
|
|
||||||
"fade, 1, 3.03, quick"
|
|
||||||
"layers, 1, 3.81, easeOutQuint"
|
|
||||||
"layersIn, 1, 4, easeOutQuint, fade"
|
|
||||||
"layersOut, 1, 1.5, linear, fade"
|
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
|
||||||
"workspaces, 1, 1.94, almostLinear, fade"
|
|
||||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
|
||||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
|
||||||
"zoomFactor, 1, 7, quick"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
force_default_wallpaper = "0";
|
|
||||||
disable_hyprland_logo = "true";
|
|
||||||
middle_click_paste = "false";
|
|
||||||
vfr = "true";
|
|
||||||
};
|
|
||||||
|
|
||||||
gestures.workspace_swipe = "false";
|
|
||||||
|
|
||||||
device = {
|
|
||||||
name = "epic-mouse-v1";
|
|
||||||
sensitivity = "-0.5";
|
|
||||||
};
|
|
||||||
|
|
||||||
"$mainMod" = "SUPER";
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
"$mainMod SHIFT, PRINT, exec, ~/bin/grimblast copy screen" # whole screen
|
|
||||||
"$mainMod, PRINT, exec, ~/bin/grimblast copy area" # selection
|
|
||||||
"$mainMod, SPACE, exec, $menu"
|
|
||||||
"$mainMod, W, exec, random-wallpaper"
|
|
||||||
"$mainMod, S, pin"
|
|
||||||
"$mainMod, T, exec, $term"
|
|
||||||
"$mainMod, Z, exec, $browser"
|
|
||||||
# "$mainMod, K, exec, st" # CHANGE THIS SDBHFDSFSFHJ
|
|
||||||
"$mainMod, Q, killactive"
|
|
||||||
"$mainMod SHIFT, M, exit"
|
|
||||||
"$mainMod, V, togglefloating"
|
|
||||||
"$mainMod, left, movefocus, l"
|
|
||||||
"$mainMod, right, movefocus, r"
|
|
||||||
"$mainMod, up, movefocus, u"
|
|
||||||
"$mainMod, down, movefocus, d"
|
|
||||||
"$mainMod, 1, workspace, 1"
|
|
||||||
"$mainMod, 2, workspace, 2"
|
|
||||||
"$mainMod, 3, workspace, 3"
|
|
||||||
"$mainMod, 4, workspace, 4"
|
|
||||||
"$mainMod, 5, workspace, 5"
|
|
||||||
"$mainMod, 6, workspace, 6"
|
|
||||||
"$mainMod, 7, workspace, 7"
|
|
||||||
"$mainMod, 8, workspace, 8"
|
|
||||||
"$mainMod, 9, workspace, 9"
|
|
||||||
"$mainMod, 0, workspace, 10"
|
|
||||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
|
||||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
|
||||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
|
||||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
|
||||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
];
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "es,ru";
|
|
||||||
kb_options = "grp:alt_space_toggle";
|
|
||||||
numlock_by_default = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow" # left click
|
|
||||||
"$mainMod, mouse:273, resizewindow" # right click
|
|
||||||
];
|
|
||||||
|
|
||||||
windowrulev2 = "suppressevent maximize, class:.*";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -16,8 +16,8 @@ in {
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland = true;
|
xwayland = true;
|
||||||
|
|
||||||
config = rec {
|
config = rec {
|
||||||
|
# vars
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
terminal = "foot";
|
terminal = "foot";
|
||||||
menu = "exec $(tofi-run)";
|
menu = "exec $(tofi-run)";
|
||||||
|
|
@ -56,14 +56,15 @@ in {
|
||||||
# keybindings
|
# keybindings
|
||||||
keybindings = lib.mkOptionDefault {
|
keybindings = lib.mkOptionDefault {
|
||||||
# screenshots
|
# screenshots
|
||||||
"${modifier}+Shift+Print" = "exec ~/bin/grimblast copy screen";
|
"${modifier}+Shift+Print" = "exec ~/bin/sss screen";
|
||||||
"${modifier}+Print" = "exec ~/bin/grimblast --freeze copy area";
|
"${modifier}+Print" = "exec ~/bin/sss area";
|
||||||
|
|
||||||
# launchers
|
# launchers
|
||||||
"${modifier}+space" = "exec ${menu}";
|
"${modifier}+space" = "exec ${menu}";
|
||||||
"${modifier}+w" = "exec ${wallpaperScript}/bin/random-wallpaper";
|
"${modifier}+w" = "exec ${wallpaperScript}/bin/random-wallpaper";
|
||||||
"${modifier}+t" = "exec ${terminal}";
|
"${modifier}+t" = "exec ${terminal}";
|
||||||
"${modifier}+z" = "exec firefox";
|
"${modifier}+z" = "exec firefox";
|
||||||
|
"${modifier}+r" = "exec st";
|
||||||
|
|
||||||
# window
|
# window
|
||||||
"${modifier}+q" = "kill";
|
"${modifier}+q" = "kill";
|
||||||
|
|
@ -115,7 +116,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $opacity 1
|
set $opacity 0.99
|
||||||
for_window [class=".*"] opacity $opacity
|
for_window [class=".*"] opacity $opacity
|
||||||
for_window [app_id=".*"] opacity $opacity
|
for_window [app_id=".*"] opacity $opacity
|
||||||
|
|
||||||
|
|
@ -142,5 +143,6 @@ in {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
XCURSOR_THEME = "macOS";
|
XCURSOR_THEME = "macOS";
|
||||||
XCURSOR_SIZE = "24";
|
XCURSOR_SIZE = "24";
|
||||||
|
XDG_CURRENT_DESKTOP = "sway";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
./modules/fonts.nix
|
./modules/fonts.nix
|
||||||
|
|
||||||
# gaming shi
|
# gaming shi
|
||||||
./modules/gaming.nix
|
# ./modules/gaming.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.experimental-features = [
|
nix.settings.experimental-features = [
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,17 @@
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "es_ES.UTF-8";
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
LC_IDENTIFICATION = "es_ES.UTF-8";
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
LC_MEASUREMENT = "es_ES.UTF-8";
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
LC_MONETARY = "es_ES.UTF-8";
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
LC_NAME = "es_ES.UTF-8";
|
LC_NAME = "en_US.UTF-8";
|
||||||
LC_NUMERIC = "es_ES.UTF-8";
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
LC_PAPER = "es_ES.UTF-8";
|
LC_PAPER = "en_US.UTF-8";
|
||||||
LC_TELEPHONE = "es_ES.UTF-8";
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
LC_TIME = "es_ES.UTF-8";
|
LC_TIME = "en_US.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
documentation.enable = false;
|
||||||
|
i18n.supportedLocales = ["en_US.UTF-8/UTF-8"];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
|
XDG_CURRENT_DESKTOP = "sway";
|
||||||
};
|
};
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
services.xserver.enable = true;
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.xserver.enable = false;
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
|
|
@ -19,11 +21,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver.xkb = {
|
|
||||||
layout = "es,ru";
|
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = rec {
|
settings = rec {
|
||||||
|
|
@ -37,6 +34,16 @@
|
||||||
|
|
||||||
console.keyMap = "es";
|
console.keyMap = "es";
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-wlr
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
#environment.etc."xdg/sessions/hyprland.desktop".text = ''
|
#environment.etc."xdg/sessions/hyprland.desktop".text = ''
|
||||||
# [Desktop Entry]
|
# [Desktop Entry]
|
||||||
# Name=Hyprland
|
# Name=Hyprland
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue