formatting, big time

This commit is contained in:
Schrottkatze 2025-04-11 09:20:46 +02:00
parent 38d96c9f52
commit 509320c115
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
64 changed files with 1293 additions and 990 deletions

View file

@ -1,11 +1,14 @@
{...}: {
home-manager.users.jade = {pkgs, ...}: {
programs.btop = {
enable = true;
settings = {
color_theme = "gruvbox_dark";
vim_keys = true;
{ ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
programs.btop = {
enable = true;
settings = {
color_theme = "gruvbox_dark";
vim_keys = true;
};
};
};
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
imports = [
./helix.nix
./nu.nix
@ -11,10 +12,12 @@
];
programs.mosh.enable = true;
programs.bat.enable = true;
home-manager.users.jade = {...}: {
programs.carapace.enable = true;
programs.direnv.enable = true;
};
home-manager.users.jade =
{ ... }:
{
programs.carapace.enable = true;
programs.direnv.enable = true;
};
users.defaultUserShell = pkgs.nushell;
}

View file

@ -3,54 +3,57 @@
lib,
pkgs,
...
}: {
home-manager.users.jade = {
pkgs,
config,
...
}: {
programs.git = {
enable = true;
userName = "Schrottkatze";
userEmail = "git@schrottkatze.de";
aliases = {
a = "add";
c = "commit";
ca = "commit --all";
p = "push";
pl = "pull";
s = "status";
};
signing = {
format = "ssh";
key = "${pkgs.writeText "blue_nk3.pub" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg7hhAKxIAbokHHcIj9HBgbkgoKGCG2R+gx7HZKL+iz cardno:000F_93C6A612"}";
signByDefault = true;
};
};
programs.jujutsu = {
enable = true;
settings = {
user = {
name = config.programs.git.userName;
email = config.programs.git.userEmail;
}:
{
home-manager.users.jade =
{
pkgs,
config,
...
}:
{
programs.git = {
enable = true;
userName = "Schrottkatze";
userEmail = "git@schrottkatze.de";
aliases = {
a = "add";
c = "commit";
ca = "commit --all";
p = "push";
pl = "pull";
s = "status";
};
signing = {
format = "ssh";
key = "${pkgs.writeText "blue_nk3.pub" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg7hhAKxIAbokHHcIj9HBgbkgoKGCG2R+gx7HZKL+iz cardno:000F_93C6A612"}";
signByDefault = true;
};
};
};
programs.gitui = {
enable = true;
keyConfig = ''
(
move_left: Some(( code: Char('h'), modifiers: "")),
move_right: Some(( code: Char('l'), modifiers: "")),
move_up: Some(( code: Char('k'), modifiers: "")),
move_down: Some(( code: Char('j'), modifiers: "")),
programs.jujutsu = {
enable = true;
settings = {
user = {
name = config.programs.git.userName;
email = config.programs.git.userEmail;
};
};
};
programs.gitui = {
enable = true;
keyConfig = ''
(
move_left: Some(( code: Char('h'), modifiers: "")),
move_right: Some(( code: Char('l'), modifiers: "")),
move_up: Some(( code: Char('k'), modifiers: "")),
move_down: Some(( code: Char('j'), modifiers: "")),
stash_open: Some(( code: Char('l'), modifiers: "")),
open_help: Some(( code: F(1), modifiers: "")),
stash_open: Some(( code: Char('l'), modifiers: "")),
open_help: Some(( code: F(1), modifiers: "")),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
)
'';
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
)
'';
};
};
};
}

View file

@ -1,213 +1,225 @@
{config, ...}: {
home-manager.users.jade = {
pkgs,
pkgs-stable,
...
}: {
home = {
sessionVariables.EDITOR = "hx";
packages = [
pkgs.wl-clipboard-rs
pkgs.nil
pkgs.vscode-langservers-extracted
pkgs.nodePackages.typescript-language-server
pkgs.emmet-language-server
pkgs.jdt-language-server
pkgs.tinymist
pkgs.typstyle
];
};
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "gruvbox_dark_hard";
editor = {
line-number = "relative";
bufferline = "multiple";
color-modes = true;
cursorline = true;
auto-save = {
after-delay.enable = true;
after-delay.timeout = 10000;
};
auto-format = true;
end-of-line-diagnostics = "hint";
# slightly optimized based on my layout
jump-label-alphabet = "jfkdhaslgwenuiopbcmyzqrtvx";
clipboard-provider = "wayland";
inline-diagnostics = {
cursor-line = "hint";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
};
popup-border = "popup";
shell = ["nu" "-c"];
statusline.left = [
"mode"
"spinner"
"spacer"
"version-control"
"file-name"
"diagnostics"
"read-only-indicator"
"file-modification-indicator"
"spacer"
];
statusline.right = [
"workspace-diagnostics"
"register"
"position"
"selections"
"file-encoding"
"file-type"
];
idle-timeout = 50;
completion-timeout = 100;
indent-guides = {
render = true;
character = "";
skip-levels = 3;
};
soft-wrap = {
enable = true;
};
whitespace = {
render = {
space = "none";
tab = "all";
newline = "none";
};
characters = {
nbsp = "·";
tab = "";
};
};
};
keys = {
normal = {
space."=" = ":fmt";
space.space = "@[<space>]<space>";
# smart tab++
tab = "move_parent_node_end";
S-tab = "move_parent_node_start";
A-S = "@S[\\s]+<ret>";
"'" = {
D = "@<C-w>sgd";
F = "@<C-w>sgy";
d = "@<C-w>vgd";
f = "@<C-w>vgy";
h = ":toggle-option lsp.display-inlay-hints";
t = ":pipe flip-bool";
};
};
insert = {
up = "no_op";
down = "no_op";
left = "no_op";
right = "no_op";
pageup = "no_op";
pagedown = "no_op";
home = "no_op";
end = "no_op";
# smart tab ++
S-tab = "move_parent_node_start";
};
select = {
# smart tab++
tab = "extend_parent_node_end";
S-tab = "extend_parent_node_start";
};
};
};
languages = {
language-server = {
"nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu";
args = ["--lsp"];
};
"rust-analyzer" = {
config = {
check.command = "check";
completion.snippets.custom = {
"pub fn" = {
prefix = ["pfn" "pubfn"];
postfix = ["pfn"];
body = [
"pub fn $\{receiver\}() {"
"\\t$1"
"}"
];
scope = "type";
};
};
completion.termSearch.enable = true;
diagnostics.enable = true;
inlayHints = {
bindingModeHints.enable = true;
closureCaptureHints.enable = true;
closureReturnTypeHints.enable = true;
discriminantHints.enable = true;
expressionAdjustmentHints = {
hideOutsideUnsafe = true;
};
lifetimeElisionHints.enable = "skip_trivial";
};
interpret.tests = true;
lens = {
references = {
adt.enable = true;
trait.enable = true;
};
};
typing.autoClosingAngleBrackets.enable = true;
};
};
"emmet-language-server" = {
command = "emmet-language-server";
args = ["--stdio"];
};
"psalm" = {
command = "psalm";
args = ["--language-server"];
};
"tinymist" = {
config = {
exportPdf = "onType";
formatterMode = "typstyle";
};
};
};
language = [
{
name = "nu";
language-servers = ["nu-builtin-lsp"];
}
{
name = "php";
language-servers = ["psalm"];
}
{
name = "nix";
formatter = {
command = "${pkgs.alejandra}/bin/alejandra";
args = ["--quiet"];
};
auto-format = true;
}
{
name = "html";
roots = [".git"];
language-servers = ["vscode-html-language-server" "emmet-language-server"];
auto-format = false;
}
{ config, ... }:
{
home-manager.users.jade =
{
pkgs,
pkgs-stable,
...
}:
{
home = {
sessionVariables.EDITOR = "hx";
packages = [
pkgs.wl-clipboard-rs
pkgs.nil
pkgs.vscode-langservers-extracted
pkgs.nodePackages.typescript-language-server
pkgs.emmet-language-server
pkgs.jdt-language-server
pkgs.tinymist
pkgs.typstyle
];
};
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "gruvbox_dark_hard";
editor = {
line-number = "relative";
bufferline = "multiple";
color-modes = true;
cursorline = true;
auto-save = {
after-delay.enable = true;
after-delay.timeout = 10000;
};
auto-format = true;
end-of-line-diagnostics = "hint";
# slightly optimized based on my layout
jump-label-alphabet = "jfkdhaslgwenuiopbcmyzqrtvx";
clipboard-provider = "wayland";
inline-diagnostics = {
cursor-line = "hint";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
};
popup-border = "popup";
shell = [
"nu"
"-c"
];
statusline.left = [
"mode"
"spinner"
"spacer"
"version-control"
"file-name"
"diagnostics"
"read-only-indicator"
"file-modification-indicator"
"spacer"
];
statusline.right = [
"workspace-diagnostics"
"register"
"position"
"selections"
"file-encoding"
"file-type"
];
idle-timeout = 50;
completion-timeout = 100;
indent-guides = {
render = true;
character = "";
skip-levels = 3;
};
soft-wrap = {
enable = true;
};
whitespace = {
render = {
space = "none";
tab = "all";
newline = "none";
};
characters = {
nbsp = "·";
tab = "";
};
};
};
keys = {
normal = {
space."=" = ":fmt";
space.space = "@[<space>]<space>";
# smart tab++
tab = "move_parent_node_end";
S-tab = "move_parent_node_start";
A-S = "@S[\\s]+<ret>";
"'" = {
D = "@<C-w>sgd";
F = "@<C-w>sgy";
d = "@<C-w>vgd";
f = "@<C-w>vgy";
h = ":toggle-option lsp.display-inlay-hints";
t = ":pipe flip-bool";
};
};
insert = {
up = "no_op";
down = "no_op";
left = "no_op";
right = "no_op";
pageup = "no_op";
pagedown = "no_op";
home = "no_op";
end = "no_op";
# smart tab ++
S-tab = "move_parent_node_start";
};
select = {
# smart tab++
tab = "extend_parent_node_end";
S-tab = "extend_parent_node_start";
};
};
};
languages = {
language-server = {
"nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu";
args = [ "--lsp" ];
};
"rust-analyzer" = {
config = {
check.command = "check";
completion.snippets.custom = {
"pub fn" = {
prefix = [
"pfn"
"pubfn"
];
postfix = [ "pfn" ];
body = [
"pub fn $\{receiver\}() {"
"\\t$1"
"}"
];
scope = "type";
};
};
completion.termSearch.enable = true;
diagnostics.enable = true;
inlayHints = {
bindingModeHints.enable = true;
closureCaptureHints.enable = true;
closureReturnTypeHints.enable = true;
discriminantHints.enable = true;
expressionAdjustmentHints = {
hideOutsideUnsafe = true;
};
lifetimeElisionHints.enable = "skip_trivial";
};
interpret.tests = true;
lens = {
references = {
adt.enable = true;
trait.enable = true;
};
};
typing.autoClosingAngleBrackets.enable = true;
};
};
"emmet-language-server" = {
command = "emmet-language-server";
args = [ "--stdio" ];
};
"psalm" = {
command = "psalm";
args = [ "--language-server" ];
};
"tinymist" = {
config = {
exportPdf = "onType";
formatterMode = "typstyle";
};
};
};
language = [
{
name = "nu";
language-servers = [ "nu-builtin-lsp" ];
}
{
name = "php";
language-servers = [ "psalm" ];
}
{
name = "nix";
formatter = {
command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
args = [ "--quiet" ];
};
auto-format = true;
}
{
name = "html";
roots = [ ".git" ];
language-servers = [
"vscode-html-language-server"
"emmet-language-server"
];
auto-format = false;
}
];
};
};
};
};
}

View file

@ -1,24 +1,31 @@
{...}: {
home-manager.users.jade = {
pkgs,
lib,
...
}: {
home = {
packages = [pkgs.mprocs];
};
xdg.configFile."mprocs/mprocs.yaml" = {
text = builtins.toJSON {
proc_list_width = 15;
keymap_procs = {
"<l>" = {c = "toggle-focus";};
};
keymap_term = {
"<C-a>" = null;
# Ctrl-m so it doesnt overlap with zellij or helix
"<C-M>" = {c = "toggle-focus";};
{ ... }:
{
home-manager.users.jade =
{
pkgs,
lib,
...
}:
{
home = {
packages = [ pkgs.mprocs ];
};
xdg.configFile."mprocs/mprocs.yaml" = {
text = builtins.toJSON {
proc_list_width = 15;
keymap_procs = {
"<l>" = {
c = "toggle-focus";
};
};
keymap_term = {
"<C-a>" = null;
# Ctrl-m so it doesnt overlap with zellij or helix
"<C-M>" = {
c = "toggle-focus";
};
};
};
};
};
};
}

View file

@ -1,44 +1,46 @@
{config, ...}: {
home-manager.users.jade = {pkgs, ...}: {
# Needed for nu_scripts background_task
services.pueue = {
enable = true;
settings = {
shared = {
use_unix_socket = true;
{ config, ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
# Needed for nu_scripts background_task
services.pueue = {
enable = true;
settings = {
shared = {
use_unix_socket = true;
};
};
};
};
home.packages = [
pkgs.pueue
];
home.file."shell-startup" = {
source = ./nu/shell-startup.nu;
target = ".config/nushell/shell-startup.nu";
};
programs.nushell = {
enable = true;
package = config.users.defaultUserShell;
configFile.source = ./nu/config.nu;
envFile.source = ./nu/env.nu;
extraConfig = ''
plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query;
plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars;
plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats;
home.packages = [
pkgs.pueue
];
home.file."shell-startup" = {
source = ./nu/shell-startup.nu;
target = ".config/nushell/shell-startup.nu";
};
programs.nushell = {
enable = true;
package = config.users.defaultUserShell;
configFile.source = ./nu/config.nu;
envFile.source = ./nu/env.nu;
extraConfig = ''
plugin add ${pkgs.nushellPlugins.query}/bin/nu_plugin_query;
plugin add ${pkgs.nushellPlugins.polars}/bin/nu_plugin_polars;
plugin add ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats;
plugin use query;
plugin use polars;
plugin use formats;
plugin use query;
plugin use polars;
plugin use formats;
source ${./nu/custom_commands.nu};
source ${./nu/aliases.nu};
nu ${./nu/shell-startup.nu};
'';
extraEnv = ''
'';
source ${./nu/custom_commands.nu};
source ${./nu/aliases.nu};
nu ${./nu/shell-startup.nu};
'';
extraEnv = '''';
};
# programs.starship.enableNushellIntegration = true;
programs.carapace.enableNushellIntegration = true;
programs.direnv.enableNushellIntegration = true;
};
# programs.starship.enableNushellIntegration = true;
programs.carapace.enableNushellIntegration = true;
programs.direnv.enableNushellIntegration = true;
};
}

View file

@ -1,41 +1,44 @@
{...}: {
home-manager.users.jade = {pkgs, ...}: {
programs.starship = {
enable = true;
enableNushellIntegration = false;
settings = {
format = "$all$directory$character";
character = {
success_symbol = "[\\$](green)";
error_symbol = "[X](red)";
};
git_branch = {
format = "\\[[$symbol$branch]($style)\\]";
symbol = " ";
};
git_status = {
format = "([\\[$all_status$ahead_behind\\]]($style))";
};
haskell = {
format = "\\[[$symbol($version)]($style)\\]";
symbol = " ";
};
cmd_duration = {
format = "\\[[ $duration]($style)\\]";
};
nix_shell = {
format = "\\[[$symbol$state( \\($name\\))]($style)\\]";
symbol = " ";
};
rust = {
format = "\\[[$symbol($version)]($style)\\]";
symbol = " ";
};
package = {
format = "\\[[$symbol$version]($style)\\]";
symbol = " ";
{ ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
programs.starship = {
enable = true;
enableNushellIntegration = false;
settings = {
format = "$all$directory$character";
character = {
success_symbol = "[\\$](green)";
error_symbol = "[X](red)";
};
git_branch = {
format = "\\[[$symbol$branch]($style)\\]";
symbol = " ";
};
git_status = {
format = "([\\[$all_status$ahead_behind\\]]($style))";
};
haskell = {
format = "\\[[$symbol($version)]($style)\\]";
symbol = " ";
};
cmd_duration = {
format = "\\[[ $duration]($style)\\]";
};
nix_shell = {
format = "\\[[$symbol$state( \\($name\\))]($style)\\]";
symbol = " ";
};
rust = {
format = "\\[[$symbol($version)]($style)\\]";
symbol = " ";
};
package = {
format = "\\[[$symbol$version]($style)\\]";
symbol = " ";
};
};
};
};
};
}

View file

@ -1,6 +1,7 @@
{...}: {
{ ... }:
{
nixpkgs.config.packageOverrides = pkgs: {
sudo = pkgs.sudo.override {withInsults = true;};
sudo = pkgs.sudo.override { withInsults = true; };
};
security.sudo.extraConfig = "Defaults insults";
}

View file

@ -1,13 +1,10 @@
{config, ...}: let
generateOptions = with builtins; (
opts:
toString (
attrValues (
mapAttrs (name: value: "--${name} ${toString value}") opts
)
)
);
in {
{ config, ... }:
let
generateOptions =
with builtins;
(opts: toString (attrValues (mapAttrs (name: value: "--${name} ${toString value}") opts)));
in
{
# TODO: global colorscheme vars for everything
console.colors = [
"282828"