This commit is contained in:
Schrottkatze 2026-03-28 17:23:29 +01:00
commit 70e5b25e38
No known key found for this signature in database
19 changed files with 286 additions and 236 deletions

View file

@ -62,7 +62,6 @@
pkgs.mobile-broadband-provider-info
pkgs.modem-manager-gui
pkgs.wireshark
pkgs.jetbrains.idea-ultimate
];
# Bootloader.

View file

@ -17,9 +17,7 @@ with lib;
{ pkgs, ... }:
{
home.packages = with pkgs; [
lutris
prismlauncher
wineWowPackages.stable
dxvk_2
vkd3d-proton
];

View file

@ -59,7 +59,6 @@ with lib;
mumble
element-desktop
pkgs.evolution-data-server-gtk4
iamb
deltachat-desktop
];
};

View file

@ -14,6 +14,6 @@
environment.systemPackages = with pkgs; [
playerctl
pulsemixer
helvum
crosspipe
];
}

View file

@ -17,29 +17,23 @@
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install =
builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}")
[
"bitwarden-password-manager"
"darkreader"
"gruvbox-dark-theme"
"indie-wiki-buddy"
"kagi-search-for-firefox"
"multi-account-containers"
"privacy-badger17"
"return-youtube-dislikes"
"shinigami-eyes"
"sponsorblock"
"styl-us"
"tabby-cat-friend"
"terms-of-service-didnt-read"
"torproject-snowflake"
"tridactyl-vim"
"ublock-origin"
"view-page-archive"
"web-clipper-obsidian"
"web-scrobbler"
];
Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
"bitwarden-password-manager"
"darkreader"
"indie-wiki-buddy"
"kagi-search-for-firefox"
"multi-account-containers"
"privacy-badger17"
"return-youtube-dislikes"
"sponsorblock"
"styl-us"
"tabby-cat-friend"
"torproject-snowflake"
"tridactyl-vim"
"ublock-origin"
"web-clipper-obsidian"
"web-scrobbler"
];
Extensions.Uninstall = [
"ddg@search.mozilla.org"
"google@search.mozilla.org"
@ -180,6 +174,21 @@
icon = "https://lib.rs/favicon.png";
definedAliases = [ "libs" ];
};
"gleam packages" = {
urls = [
{
template = "https://packages.gleam.run/";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "https://packages.gleam.run/static/packages-icon.svg";
definedAliases = [ "libs" ];
};
"rust docs" = {
urls = [
{
@ -195,6 +204,16 @@
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = [ "docs" ];
};
"gleam docs direct open" = {
urls = [
{
template = "https://hexdocs.pm/{searchTerms}";
}
];
definedAliases = [
"gd"
];
};
"rust docs direct open" = {
urls = [
{
@ -202,8 +221,7 @@
}
];
definedAliases = [
"doc"
"docd"
"rd"
];
};
"rust std docs" = {

View file

@ -1,4 +1,6 @@
#define PI 3.14159
#define TAU 6.28319
#define WIDTH 3.

View file

@ -4,7 +4,6 @@
enable = true;
font.size = 12;
font.name = "Departure Mono Nerd Font";
shellIntegration.enableFishIntegration = false;
keybindings = {
"ctrl+shift+n" = "new_os_window_with_cwd";
};

View file

@ -105,6 +105,13 @@
};
};
language = [
{
name = "gleam";
language-servers = [
"gleam"
"discord-presence-lsp"
];
}
{
name = "nu";
language-servers = [

View file

@ -1,26 +1,31 @@
{ ... }:
{ lib, ... }:
let
domains = [
"tiktok.com"
"twitter.com"
"instagram.com"
"facebook.com"
"snapchat.com"
# "youtube.com"
"google-analytics.com"
"stats.g.doubleclick.net"
"googleadservices.com"
"googletagmanager.com"
"googletagservices.com"
"googlesyndication.com"
];
prefixes = [
"www."
""
];
in
{
networking.hosts = {
"127.0.0.1" = [
"www.tiktok.com"
"www.twitter.com"
"www.instagram.com"
"www.facebook.com"
"www.snapchat.com"
"tiktok.com"
"twitter.com"
"instagram.com"
"facebook.com"
"snapchat.com"
"lovense.com"
"google-analytics.com"
"stats.g.doubleclick.net"
"googleadservices.com"
"googletagmanager.com"
"googletagservices.com"
"googlesyndication.com"
];
};
networking.hosts =
let
withPrefixes = prefixes |> map (prefix: map (domain: prefix + domain) domains) |> lib.flatten;
in
{
"127.0.0.1" = withPrefixes;
};
}

View file

@ -1,22 +1,18 @@
{ ... }:
{ pkgs, ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
programs.btop = {
enable = true;
package = pkgs.btop-rocm;
settings = {
shown_boxes = "cpu mem net proc gpu0";
color_theme = "gruvbox_dark";
vim_keys = true;
proc_per_core = true;
proc_filter_kernel = true;
proc_aggregate = true;
cpu_graph_upper = "total";
cpu_graph_lower = "user";
update_ms = 500;
};
};
programs.btop = {
enable = true;
package = pkgs.btop-rocm;
settings = {
shown_boxes = "cpu mem net proc gpu0";
color_theme = "gruvbox_dark";
vim_keys = true;
proc_per_core = true;
proc_filter_kernel = true;
proc_aggregate = true;
cpu_graph_upper = "total";
cpu_graph_lower = "user";
update_ms = 500;
};
};
}

View file

@ -1,19 +1,23 @@
{ pkgs, ... }:
{
imports = [
./nu.nix
./starship.nix
./tty.nix
./git.nix
./mprocs.nix
./btop.nix
./sudo.nix
];
programs.mosh.enable = true;
programs.bat.enable = true;
environment.systemPackages = [ pkgs.nushell ];
home-manager.users.jade =
{ ... }:
{
imports = [
./btop.nix
./mprocs.nix
./git.nix
./starship.nix
./nu.nix
./elvish.nix
];
programs.broot = {
enable = true;
settings = {
@ -33,5 +37,6 @@
};
};
users.defaultUserShell = pkgs.nushell;
# TODO: Proper switch
users.defaultUserShell = pkgs.elvish;
}

8
modules/shell/elvish.nix Normal file
View file

@ -0,0 +1,8 @@
{ ... }:
{
xdg.configFile."elvish" = {
recursive = true;
executable = true;
source = ./elvish;
};
}

View file

@ -0,0 +1,18 @@
## hook for direnv
set @edit:before-readline = $@edit:before-readline {
try {
var m = [("/nix/store/kv03kmfwkinhv4ar2hvh79jfkm1n5id5-direnv-2.37.1/bin/direnv" export elvish | from-json)]
if (> (count $m) 0) {
set m = (all $m)
keys $m | each { |k|
if $m[$k] {
set-env $k $m[$k]
} else {
unset-env $k
}
}
}
} catch e {
echo $e
}
}

View file

@ -0,0 +1,28 @@
# <aliases>
fn gnix {|@a| cd ~/nix-configs $@a }
fn grepo {|@a| cd ~/Documents/repos $@a }
fn wh {|@a| wormhole-rs $@a }
fn gc {|@a| git commit $@a }
fn gca {|@a| git commit --all $@a }
fn gp {|@a| git push $@a }
fn gl {|@a| git pull $@a }
fn gs {|@a| git status $@a }
fn cr {|@a| cargo run $@a }
fn cl {|@a| cargo clippy $@a }
fn cb {|@a| cargo build $@a }
fn cch {|@a| cargo check $@a }
fn jb {|@a| just build $@a }
fn px {|@a| pulsemixer $@a }
fn guni {|@a| cd ~/Docs/uni $@a }
fn juts {|@a| just $@a }
# </aliases>
use direnv

View file

@ -5,51 +5,43 @@
...
}:
{
home-manager.users.jade =
{
pkgs,
config,
...
}:
{
programs.git = {
enable = true;
settings = {
user = {
name = "Schrottkatze";
email = "git@schrottkatze.de";
};
};
signing = {
format = "ssh";
key = lib.mkDefault "${pkgs.writeText "blue_nk3.pub" "SHA256:h7d9+w4uACtz63L/MI7B1oB3fYxh8u+q6bs+SsSTKzY ssh:"}";
signByDefault = true;
};
};
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: "")),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
)
'';
programs.git = {
enable = true;
settings = {
user = {
name = "Schrottkatze";
email = "git@schrottkatze.de";
};
};
signing = {
format = "ssh";
key = lib.mkDefault "${pkgs.writeText "blue_nk3.pub" "SHA256:h7d9+w4uACtz63L/MI7B1oB3fYxh8u+q6bs+SsSTKzY ssh:"}";
signByDefault = true;
};
};
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: "")),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
)
'';
};
}

View file

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

View file

@ -1,46 +1,42 @@
{ config, ... }:
{ pkgs, ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
# Needed for nu_scripts background_task
services.pueue = {
enable = true;
settings = {
shared = {
use_unix_socket = true;
};
};
# 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;
plugin use query;
plugin use polars;
plugin use formats;
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;
};
};
home.packages = [
pkgs.pueue
];
home.file."shell-startup" = {
source = ./nu/shell-startup.nu;
target = ".config/nushell/shell-startup.nu";
};
programs.nushell = {
enable = false;
# 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;
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;
}

View file

@ -1,16 +1,8 @@
alias gnix = cd ~/nix-configs;
alias grepo = cd ~/Documents/repos;
alias wh = wormhole-rs;
alias b = broot;
alias gg = gitui;
alias ga = git add;
alias gc = git commit;
alias gca = git commit --all;
alias gp = git push;
alias gl = git pull;
alias gs = git status;
alias clip = xclip -selection c;
alias cr = cargo run;

View file

@ -1,44 +1,40 @@
{ ... }:
{
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 = " ";
};
};
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 = " ";
};
};
};
}