Add project to repo

This commit is contained in:
panotaka
2023-11-21 00:39:36 -04:00
parent 26064838f8
commit ce7c15186e
31 changed files with 1315 additions and 0 deletions

17
home/shell/common.nix Normal file
View File

@@ -0,0 +1,17 @@
{ pkgs
, ...
}:
# nix tooling
{
home.packages = with pkgs; [
alejandra
deadnix
statix
];
programs.direnv = {
enable = true;
nix-direnv.enable = true;
enableZshIntegration = true;
};
}

36
home/shell/default.nix Normal file
View File

@@ -0,0 +1,36 @@
{ config, ... }:
let
d = config.xdg.dataHome;
c = config.xdg.configHome;
cache = config.xdg.cacheHome;
in
{
imports = [
./nushell
./common.nix
./starship.nix
./terminals.nix
];
# add environment variables
home.sessionVariables = {
# clean up ~
LESSHISTFILE = cache + "/less/history";
LESSKEY = c + "/less/lesskey";
WINEPREFIX = d + "/wine";
# set default applications
EDITOR = "vim";
BROWSER = "firefox";
TERMINAL = "alacritty";
# enable scrolling in git diff
DELTA_PAGER = "less -R";
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
};
home.shellAliases = {
k = "kubectl";
};
}

View File

View File

@@ -0,0 +1,7 @@
{
programs.nushell = {
enable = true;
configFile.source = ./config.nu;
envFile.source = ./env.nu;
};
}

36
home/shell/nushell/env.nu Normal file
View File

@@ -0,0 +1,36 @@
# Nushell Environment Config File
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
let-env ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) | path expand -n }
to_string: { |v| $v | path expand -n | str join (char esep) }
}
}
# Directories to search for scripts when calling source or use
#
# By default, <nushell-config-dir>/scripts is added
let-env NU_LIB_DIRS = [
($nu.config-path | path dirname | path join 'scripts')
]
# Directories to search for plugin binaries when calling register
#
# By default, <nushell-config-dir>/plugins is added
let-env NU_PLUGIN_DIRS = [
($nu.config-path | path dirname | path join 'plugins')
]
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
# let-env PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
mkdir ~/.cache/starship
starship init nu | sed "s/size -c/size/" | save ~/.cache/starship/init.nu

13
home/shell/starship.nix Normal file
View File

@@ -0,0 +1,13 @@
{ config, ... }: {
home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship";
programs.starship = {
enable = true;
settings = {
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
};
};
}

29
home/shell/terminals.nix Normal file
View File

@@ -0,0 +1,29 @@
{ pkgs, ... }:
# terminals
let
font = "JetBrainsMono Nerd Font";
in
{
programs.alacritty = {
enable = true;
settings = {
window.opacity = 0.95;
window.dynamic_padding = true;
window.padding = {
x = 5;
y = 5;
};
scrolling.history = 10000;
font = {
normal.family = font;
bold.family = font;
italic.family = font;
size = 11;
};
};
};
}