tree-wide change. seperated config from 'real' modles.
This commit is contained in:
parent
3eee4e105d
commit
a0c1ad0beb
13
configs/home-manager/btop.nix
Normal file
13
configs/home-manager/btop.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
vim_keys = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -25,6 +25,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
../hostopts.nix
|
../../modules/hostopts.nix
|
||||||
|
../../modules/home-manager
|
||||||
];
|
];
|
||||||
}
|
}
|
11
configs/home-manager/direnv.nix
Normal file
11
configs/home-manager/direnv.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pgks,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
}
|
14
configs/home-manager/gpg.nix
Normal file
14
configs/home-manager/gpg.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.gpg.enable = true;
|
||||||
|
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSshSupport = true;
|
||||||
|
pinentryPackage = lib.mkDefault pkgs.pinentry-tty;
|
||||||
|
};
|
||||||
|
}
|
40
configs/home-manager/nushell/default.nix
Normal file
40
configs/home-manager/nushell/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.file = {
|
||||||
|
".config/nushell/completions".source = ./completions;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
#sessionVariables, sessionPath and shellAliases are not applied to nushell.
|
||||||
|
nushell = {
|
||||||
|
enable = true;
|
||||||
|
configFile.source = ./config.nu;
|
||||||
|
envFile.source = ./env.nu;
|
||||||
|
};
|
||||||
|
|
||||||
|
yazi.enableNushellIntegration = true;
|
||||||
|
zoxide.enableNushellIntegration = true;
|
||||||
|
starship.enableNushellIntegration = true;
|
||||||
|
eza.enableNushellIntegration = true;
|
||||||
|
carapace = {
|
||||||
|
enable = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
};
|
||||||
|
direnv.enableNushellIntegration = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
gpg-agent.enableNushellIntegration = true;
|
||||||
|
pueue = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
daemon = {
|
||||||
|
default_parallel_tasks = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
configs/home-manager/pass.nix
Normal file
17
configs/home-manager/pass.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.password-store = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PASSWORD_STORE_DIR = "$HOME/keys/password-store";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nushell.extraEnv = ''
|
||||||
|
$env.PASSWORD_STORE_DIR = ($env.HOME | path join "keys" "password-store")
|
||||||
|
'';
|
||||||
|
}
|
11
configs/home-manager/ssh-agent.nix
Normal file
11
configs/home-manager/ssh-agent.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.ssh-agent.enable = true;
|
||||||
|
programs.nushell.extraEnv = ''
|
||||||
|
$env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent"
|
||||||
|
'';
|
||||||
|
}
|
109
configs/home-manager/starship.nix
Normal file
109
configs/home-manager/starship.nix
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"[](color_orange)"
|
||||||
|
"$shell"
|
||||||
|
"$username"
|
||||||
|
"[@](bg:color_orange)"
|
||||||
|
"$hostname"
|
||||||
|
"[ ](bg:color_orange)"
|
||||||
|
"[](bg:color_yellow fg:color_orange)"
|
||||||
|
"$directory"
|
||||||
|
"[](fg:color_yellow bg:color_aqua)"
|
||||||
|
"$git_branch"
|
||||||
|
"$git_status"
|
||||||
|
"[](fg:color_aqua bg:color_blue)"
|
||||||
|
"$git_metrics"
|
||||||
|
"[](fg:color_blue bg:color_bg3)"
|
||||||
|
"$git_commit"
|
||||||
|
"[](fg:color_bg3 bg:color_bg1)"
|
||||||
|
"$time"
|
||||||
|
"[ ](fg:color_bg1)"
|
||||||
|
"$line_break"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
add_newline = false;
|
||||||
|
palette = "gruvbox_dark";
|
||||||
|
palettes.gruvbox_dark = {
|
||||||
|
color_fg0 = "#fbf1c7";
|
||||||
|
color_bg1 = "#3c3836";
|
||||||
|
color_bg3 = "#665c54";
|
||||||
|
color_blue = "#458588";
|
||||||
|
color_aqua = "#689d6a";
|
||||||
|
color_green = "#98971a";
|
||||||
|
color_orange = "#d65d0e";
|
||||||
|
color_purple = "#b16286";
|
||||||
|
color_red = "#cc241d";
|
||||||
|
color_yellow = "#d79921";
|
||||||
|
};
|
||||||
|
hostname = {
|
||||||
|
ssh_only = false;
|
||||||
|
ssh_symbol = "🌐";
|
||||||
|
format = "[$hostname $ssh_symbol]($style)";
|
||||||
|
style = "bg:color_orange";
|
||||||
|
};
|
||||||
|
shell = {
|
||||||
|
disabled = false;
|
||||||
|
bash_indicator = "$";
|
||||||
|
fish_indicator = "<><";
|
||||||
|
zsh_indicator = "%";
|
||||||
|
nu_indicator = ">";
|
||||||
|
format = "[$indicator ]($style)";
|
||||||
|
style = "bg:color_orange";
|
||||||
|
};
|
||||||
|
fill = {
|
||||||
|
symbol = " ";
|
||||||
|
style = "bg:color_bg3";
|
||||||
|
};
|
||||||
|
username = {
|
||||||
|
show_always = true;
|
||||||
|
style_user = "bg:color_orange fg:color_fg0";
|
||||||
|
style_root = "bg:color_orange fg:color_fg0";
|
||||||
|
format = "[$user]($style)";
|
||||||
|
};
|
||||||
|
directory = {
|
||||||
|
style = "fg:color_fg0 bg:color_yellow";
|
||||||
|
format = "[ $path ]($style)";
|
||||||
|
fish_style_pwd_dir_length = 3;
|
||||||
|
truncation_length = 4;
|
||||||
|
truncation_symbol = "…/";
|
||||||
|
};
|
||||||
|
git_branch = {
|
||||||
|
symbol = "";
|
||||||
|
style = "bg:color_aqua";
|
||||||
|
format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
|
||||||
|
};
|
||||||
|
git_status = {
|
||||||
|
style = "bg:color_aqua";
|
||||||
|
format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
|
||||||
|
};
|
||||||
|
git_metrics = {
|
||||||
|
disabled = false;
|
||||||
|
added_style = "bg:color_blue fg:bold green";
|
||||||
|
deleted_style = "bg:color_blue fg:bold red";
|
||||||
|
format = "([ +$added ]($added_style))([-$deleted ]($deleted_style))";
|
||||||
|
};
|
||||||
|
git_commit = {
|
||||||
|
only_detached = false;
|
||||||
|
tag_disabled = false;
|
||||||
|
format = "[($hash$tag)]($style)";
|
||||||
|
style = "bg:color_bg3";
|
||||||
|
};
|
||||||
|
time = {
|
||||||
|
disabled = false;
|
||||||
|
time_format = "%R";
|
||||||
|
style = "bg:color_bg1";
|
||||||
|
format = "[[ $time ](fg:color_fg0 bg:color_bg1)]($style)";
|
||||||
|
};
|
||||||
|
line_break.disabled = false;
|
||||||
|
character.disabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,8 +4,6 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options.user.tiny.enable=lib.mkEnableOption "enable tiny irc client";
|
|
||||||
config=lib.mkIf config.user.tiny.enable {
|
|
||||||
programs.tiny = {
|
programs.tiny = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -46,4 +44,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};}
|
}
|
11
configs/home-manager/zellij/default.nix
Normal file
11
configs/home-manager/zellij/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.zellij.enable = true;
|
||||||
|
home.file = {
|
||||||
|
".config/zellij/config.kdl".source = ./config.kdl;
|
||||||
|
};
|
||||||
|
}
|
107
configs/home-manager/zsh.nix
Normal file
107
configs/home-manager/zsh.nix
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs = {
|
||||||
|
starship.enableZshIntegration = true;
|
||||||
|
fzf.enableZshIntegration = true;
|
||||||
|
zoxide.enableZshIntegration = true;
|
||||||
|
yazi.enableZshIntegration = true;
|
||||||
|
eza.enableZshIntegration = true;
|
||||||
|
direnv.enableZshIntegration = true;
|
||||||
|
kitty.shellIntegration.enableZshIntegration = true;
|
||||||
|
carapace.enableZshIntegration = false;
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
initExtra = lib.mkMerge [
|
||||||
|
''
|
||||||
|
#have the menu highlight while we cycle through options
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
#case insensitive completion
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
||||||
|
#allow completion from midword
|
||||||
|
setopt COMPLETE_IN_WORD
|
||||||
|
#move cursor to end of word after completing
|
||||||
|
setopt ALWAYS_TO_END
|
||||||
|
#complete aliases as well
|
||||||
|
setopt COMPLETE_ALIASES
|
||||||
|
#select first item when you press tab the first time.
|
||||||
|
setopt MENU_COMPLETE
|
||||||
|
#case insensitive globbing
|
||||||
|
setopt NO_CASE_GLOB
|
||||||
|
#sort globs that expand to numbers by number rather than alphabeticly
|
||||||
|
setopt NUMERIC_GLOB_SORT
|
||||||
|
#allows for some neat globbing.
|
||||||
|
setopt EXTENDED_GLOB
|
||||||
|
#allow backspacing beyond the point you entered insert mode:
|
||||||
|
bindkey -v '^?' backward-delete-char
|
||||||
|
bindkey "^W" backward-kill-word
|
||||||
|
|
||||||
|
#cheat.sh is a wonderful tool, the less typing needed the better.
|
||||||
|
cheat(){
|
||||||
|
for i in $*; do;
|
||||||
|
curl cheat.sh/$i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
''
|
||||||
|
(lib.mkIf (!config.programs.starship.enable) ''
|
||||||
|
autoload -U promptinit
|
||||||
|
promptinit
|
||||||
|
autoload -U colors
|
||||||
|
colors
|
||||||
|
|
||||||
|
#stuff to show git things.
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
setopt prompt_subst
|
||||||
|
precmd_vcs() {vcs_info}
|
||||||
|
#when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
|
||||||
|
zstyle ':vcs_info:*' nvcsformats '%~'
|
||||||
|
zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
|
||||||
|
zstyle ':vcs_info:*' actionformats '%r/%S %F{green}[%b] %F{red}<%a>%f'
|
||||||
|
|
||||||
|
#the precmd function, called just before printing the prompt.
|
||||||
|
function precmd() {
|
||||||
|
precmd_vcs
|
||||||
|
}
|
||||||
|
|
||||||
|
#Make the right prompt blank, just to be sure.
|
||||||
|
RPROMPT=""
|
||||||
|
|
||||||
|
#on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to input next to...)
|
||||||
|
PROMPT=$'%F{cyan}[%n@%m]%f%F{red}├────┤%f$${vcs_info_msg_0_} %F{white}[%D %T]%f\n»'
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
autocd = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
defaultKeymap = "viins";
|
||||||
|
history = {
|
||||||
|
ignoreAllDups = true;
|
||||||
|
extended = true;
|
||||||
|
};
|
||||||
|
shellAliases = {
|
||||||
|
ll = "ls -lh";
|
||||||
|
la = "ls -lha";
|
||||||
|
please = "sudo $(fc -ln -1)";
|
||||||
|
pyactivate = "source ./.venv/bin/activate";
|
||||||
|
};
|
||||||
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
highlighters = [
|
||||||
|
"main"
|
||||||
|
"brackets"
|
||||||
|
"pattern"
|
||||||
|
"regexp"
|
||||||
|
"root"
|
||||||
|
"line"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.gpg-agent.enableZshIntegration = true;
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
curl
|
||||||
|
];
|
||||||
|
}
|
|
@ -29,6 +29,10 @@
|
||||||
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
];
|
];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
../../modules/hostopts.nix
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = {inherit inputs outputs;};
|
home-manager.extraSpecialArgs = {inherit inputs outputs;};
|
|
@ -11,12 +11,11 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../roles/nixos/graphical-vm.nix
|
../../roles/nixos/graphical-vm.nix
|
||||||
../../modules/hostopts.nix
|
../../configs/nixos/common.nix
|
||||||
../../modules/nixos/common.nix
|
../../configs/nixos/printing.nix
|
||||||
../../modules/nixos/printing.nix
|
../../configs/nixos/sound.nix
|
||||||
../../modules/both/sound.nix
|
../../configs/nixos/networking.nix
|
||||||
../../modules/nixos/networking.nix
|
../../configs/nixos/i3
|
||||||
../../modules/both/i3
|
|
||||||
({
|
({
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -71,8 +70,8 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
../../roles/home-manager/terminal.nix
|
../../roles/home-manager/terminal.nix
|
||||||
../../modules/home-manager/common.nix
|
../../configs/home-manager/common.nix
|
||||||
../../modules/home-manager/email.nix
|
../../configs/home-manager/email.nix
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -32,10 +32,10 @@ inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
imports = [
|
imports = [
|
||||||
../roles/home-manager/terminal.nix
|
../roles/home-manager/terminal.nix
|
||||||
../roles/home-manager/music.nix
|
../roles/home-manager/music.nix
|
||||||
../modules/home-manager/common.nix
|
../configs/home-manager/common.nix
|
||||||
../modules/home-manager/syncthing.nix
|
../configs/home-manager/syncthing.nix
|
||||||
../modules/home-manager/email.nix
|
../configs/home-manager/email.nix
|
||||||
../modules/home-manager/terminal/voice.nix
|
../configs/home-manager/terminal/voice.nix
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
|
|
@ -37,8 +37,8 @@ inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
home.homeDirectory = /home/gabe;
|
home.homeDirectory = /home/gabe;
|
||||||
imports = [
|
imports = [
|
||||||
../roles/home-manager/terminal.nix
|
../roles/home-manager/terminal.nix
|
||||||
../modules/home-manager/common.nix
|
../configs/home-manager/common.nix
|
||||||
../modules/home-manager/syncthing.nix
|
../configs/home-manager/syncthing.nix
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -14,13 +14,12 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../roles/nixos/graphical-vm.nix
|
../../roles/nixos/graphical-vm.nix
|
||||||
../../modules/hostopts.nix
|
../../configs/nixos/printing.nix
|
||||||
../../modules/nixos/common.nix
|
../../configs/nixos/sound.nix
|
||||||
../../modules/nixos/printing.nix
|
../../configs/nixos/networking.nix
|
||||||
../../modules/both/sound.nix
|
../../configs/nixos/nfsv2.nix
|
||||||
../../modules/nixos/networking.nix
|
../../configs/nixos/i3
|
||||||
../../modules/nixos/nfsv2.nix
|
../../configs/nixos/common.nix
|
||||||
../../modules/both/i3
|
|
||||||
({
|
({
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -76,7 +75,7 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
../../roles/home-manager/terminal.nix
|
../../roles/home-manager/terminal.nix
|
||||||
../../modules/home-manager/common.nix
|
../../configs/home-manager/common.nix
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,8 +9,7 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.nixos-wsl.nixosModules.default
|
inputs.nixos-wsl.nixosModules.default
|
||||||
../modules/hostopts.nix
|
../configs/nixos/common.nix
|
||||||
../modules/nixos/common.nix
|
|
||||||
({
|
({
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -56,7 +55,7 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
};
|
};
|
||||||
imports = [
|
imports = [
|
||||||
../roles/home-manager/terminal.nix
|
../roles/home-manager/terminal.nix
|
||||||
../modules/home-manager/common.nix
|
../configs/home-manager/common.nix
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
7
modules/home-manager/default.nix
Normal file
7
modules/home-manager/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./git.nix
|
||||||
|
./nvim
|
||||||
|
./voice.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
}: {
|
}: {
|
||||||
options = {
|
options = {
|
||||||
user.git = {
|
user.git = {
|
||||||
enable= lib.mkEnableOption "enable git";
|
enable = lib.mkEnableOption "enable git";
|
||||||
workProfile = {
|
workProfile = {
|
||||||
enable = lib.mkEnableOption "git work profile";
|
enable = lib.mkEnableOption "git work profile";
|
||||||
email = lib.mkOption {
|
email = lib.mkOption {
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.btop.enable = lib.mkEnableOption "enable btop";
|
|
||||||
config = lib.mkIf config.user.btop.enable {
|
|
||||||
programs.btop = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
vim_keys = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports=[
|
|
||||||
./nushell
|
|
||||||
./zellij
|
|
||||||
./btop.nix
|
|
||||||
./direnv.nix
|
|
||||||
./git.nix
|
|
||||||
./gpg.nix
|
|
||||||
./irssi.nix
|
|
||||||
./pass.nix
|
|
||||||
./ssh-agent.nix
|
|
||||||
./starship.nix
|
|
||||||
./tiny-irc.nix
|
|
||||||
./voice.nix
|
|
||||||
./zsh.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pgks,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.direnv.enable = lib.mkEnableOption "enable direnv";
|
|
||||||
config= lib.mkIf config.user.direnv.enable{
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.gpg.enable = lib.mkEnableOption "enable gpg";
|
|
||||||
config = lib.mkIf config.user.gpg.enable {
|
|
||||||
programs.gpg.enable = true;
|
|
||||||
|
|
||||||
services.gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSshSupport = true;
|
|
||||||
pinentryPackage = lib.mkDefault pkgs.pinentry-tty;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.nushell.enable = lib.mkEnableOption "enable nushell";
|
|
||||||
config = lib.mkIf config.user.nushell.enable {
|
|
||||||
home.file = {
|
|
||||||
".config/nushell/completions".source = ./completions;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
#sessionVariables, sessionPath and shellAliases are not applied to nushell.
|
|
||||||
nushell = {
|
|
||||||
enable = true;
|
|
||||||
configFile.source = ./config.nu;
|
|
||||||
envFile.source = ./env.nu;
|
|
||||||
};
|
|
||||||
|
|
||||||
yazi.enableNushellIntegration = true;
|
|
||||||
zoxide.enableNushellIntegration = true;
|
|
||||||
starship.enableNushellIntegration = true;
|
|
||||||
eza.enableNushellIntegration = true;
|
|
||||||
carapace = {
|
|
||||||
enable = true;
|
|
||||||
enableNushellIntegration = true;
|
|
||||||
};
|
|
||||||
direnv.enableNushellIntegration = true;
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
gpg-agent.enableNushellIntegration = true;
|
|
||||||
pueue = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
daemon = {
|
|
||||||
default_parallel_tasks = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.pass.enable = lib.mkEnableOption "enable pass password manager";
|
|
||||||
config = lib.mkIf config.user.pass.enable {
|
|
||||||
programs.password-store = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PASSWORD_STORE_DIR = "$HOME/keys/password-store";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nushell.extraEnv = ''
|
|
||||||
$env.PASSWORD_STORE_DIR = ($env.HOME | path join "keys" "password-store")
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.ssh-agent.enable = lib.mkEnableOption "enable ssh-agent";
|
|
||||||
config = lib.mkIf config.user.ssh-agent.enable {
|
|
||||||
services.ssh-agent.enable = true;
|
|
||||||
programs.nushell.extraEnv = ''
|
|
||||||
$env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,112 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.starship.enable = lib.mkEnableOption "enable starship prompt";
|
|
||||||
config = lib.mkIf config.user.starship.enable {
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
format = lib.concatStrings [
|
|
||||||
"[](color_orange)"
|
|
||||||
"$shell"
|
|
||||||
"$username"
|
|
||||||
"[@](bg:color_orange)"
|
|
||||||
"$hostname"
|
|
||||||
"[ ](bg:color_orange)"
|
|
||||||
"[](bg:color_yellow fg:color_orange)"
|
|
||||||
"$directory"
|
|
||||||
"[](fg:color_yellow bg:color_aqua)"
|
|
||||||
"$git_branch"
|
|
||||||
"$git_status"
|
|
||||||
"[](fg:color_aqua bg:color_blue)"
|
|
||||||
"$git_metrics"
|
|
||||||
"[](fg:color_blue bg:color_bg3)"
|
|
||||||
"$git_commit"
|
|
||||||
"[](fg:color_bg3 bg:color_bg1)"
|
|
||||||
"$time"
|
|
||||||
"[ ](fg:color_bg1)"
|
|
||||||
"$line_break"
|
|
||||||
"$character"
|
|
||||||
];
|
|
||||||
add_newline = false;
|
|
||||||
palette = "gruvbox_dark";
|
|
||||||
palettes.gruvbox_dark = {
|
|
||||||
color_fg0 = "#fbf1c7";
|
|
||||||
color_bg1 = "#3c3836";
|
|
||||||
color_bg3 = "#665c54";
|
|
||||||
color_blue = "#458588";
|
|
||||||
color_aqua = "#689d6a";
|
|
||||||
color_green = "#98971a";
|
|
||||||
color_orange = "#d65d0e";
|
|
||||||
color_purple = "#b16286";
|
|
||||||
color_red = "#cc241d";
|
|
||||||
color_yellow = "#d79921";
|
|
||||||
};
|
|
||||||
hostname = {
|
|
||||||
ssh_only = false;
|
|
||||||
ssh_symbol = "🌐";
|
|
||||||
format = "[$hostname $ssh_symbol]($style)";
|
|
||||||
style = "bg:color_orange";
|
|
||||||
};
|
|
||||||
shell = {
|
|
||||||
disabled = false;
|
|
||||||
bash_indicator = "$";
|
|
||||||
fish_indicator = "<><";
|
|
||||||
zsh_indicator = "%";
|
|
||||||
nu_indicator = ">";
|
|
||||||
format = "[$indicator ]($style)";
|
|
||||||
style = "bg:color_orange";
|
|
||||||
};
|
|
||||||
fill = {
|
|
||||||
symbol = " ";
|
|
||||||
style = "bg:color_bg3";
|
|
||||||
};
|
|
||||||
username = {
|
|
||||||
show_always = true;
|
|
||||||
style_user = "bg:color_orange fg:color_fg0";
|
|
||||||
style_root = "bg:color_orange fg:color_fg0";
|
|
||||||
format = "[$user]($style)";
|
|
||||||
};
|
|
||||||
directory = {
|
|
||||||
style = "fg:color_fg0 bg:color_yellow";
|
|
||||||
format = "[ $path ]($style)";
|
|
||||||
fish_style_pwd_dir_length = 3;
|
|
||||||
truncation_length = 4;
|
|
||||||
truncation_symbol = "…/";
|
|
||||||
};
|
|
||||||
git_branch = {
|
|
||||||
symbol = "";
|
|
||||||
style = "bg:color_aqua";
|
|
||||||
format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
|
|
||||||
};
|
|
||||||
git_status = {
|
|
||||||
style = "bg:color_aqua";
|
|
||||||
format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
|
|
||||||
};
|
|
||||||
git_metrics = {
|
|
||||||
disabled = false;
|
|
||||||
added_style = "bg:color_blue fg:bold green";
|
|
||||||
deleted_style = "bg:color_blue fg:bold red";
|
|
||||||
format = "([ +$added ]($added_style))([-$deleted ]($deleted_style))";
|
|
||||||
};
|
|
||||||
git_commit = {
|
|
||||||
only_detached = false;
|
|
||||||
tag_disabled = false;
|
|
||||||
format = "[($hash$tag)]($style)";
|
|
||||||
style = "bg:color_bg3";
|
|
||||||
};
|
|
||||||
time = {
|
|
||||||
disabled = false;
|
|
||||||
time_format = "%R";
|
|
||||||
style = "bg:color_bg1";
|
|
||||||
format = "[[ $time ](fg:color_fg0 bg:color_bg1)]($style)";
|
|
||||||
};
|
|
||||||
line_break.disabled = false;
|
|
||||||
character.disabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.zellij.enable = lib.mkEnableOption "enable zellij";
|
|
||||||
config = lib.mkIf config.user.zellij.enable {
|
|
||||||
programs.zellij.enable = true;
|
|
||||||
home.file = {
|
|
||||||
".config/zellij/config.kdl".source = ./config.kdl;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,110 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.user.zsh.enable = lib.mkEnableOption "enable zsh";
|
|
||||||
config = lib.mkIf config.user.zsh.enable {
|
|
||||||
programs = {
|
|
||||||
starship.enableZshIntegration = true;
|
|
||||||
fzf.enableZshIntegration = true;
|
|
||||||
zoxide.enableZshIntegration = true;
|
|
||||||
yazi.enableZshIntegration = true;
|
|
||||||
eza.enableZshIntegration = true;
|
|
||||||
direnv.enableZshIntegration = true;
|
|
||||||
kitty.shellIntegration.enableZshIntegration = true;
|
|
||||||
carapace.enableZshIntegration = false;
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
initExtra = lib.mkMerge [
|
|
||||||
''
|
|
||||||
#have the menu highlight while we cycle through options
|
|
||||||
zstyle ':completion:*' menu select
|
|
||||||
#case insensitive completion
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
||||||
#allow completion from midword
|
|
||||||
setopt COMPLETE_IN_WORD
|
|
||||||
#move cursor to end of word after completing
|
|
||||||
setopt ALWAYS_TO_END
|
|
||||||
#complete aliases as well
|
|
||||||
setopt COMPLETE_ALIASES
|
|
||||||
#select first item when you press tab the first time.
|
|
||||||
setopt MENU_COMPLETE
|
|
||||||
#case insensitive globbing
|
|
||||||
setopt NO_CASE_GLOB
|
|
||||||
#sort globs that expand to numbers by number rather than alphabeticly
|
|
||||||
setopt NUMERIC_GLOB_SORT
|
|
||||||
#allows for some neat globbing.
|
|
||||||
setopt EXTENDED_GLOB
|
|
||||||
#allow backspacing beyond the point you entered insert mode:
|
|
||||||
bindkey -v '^?' backward-delete-char
|
|
||||||
bindkey "^W" backward-kill-word
|
|
||||||
|
|
||||||
#cheat.sh is a wonderful tool, the less typing needed the better.
|
|
||||||
cheat(){
|
|
||||||
for i in $*; do;
|
|
||||||
curl cheat.sh/$i
|
|
||||||
done
|
|
||||||
}
|
|
||||||
''
|
|
||||||
(lib.mkIf (!config.programs.starship.enable) ''
|
|
||||||
autoload -U promptinit
|
|
||||||
promptinit
|
|
||||||
autoload -U colors
|
|
||||||
colors
|
|
||||||
|
|
||||||
#stuff to show git things.
|
|
||||||
autoload -Uz vcs_info
|
|
||||||
setopt prompt_subst
|
|
||||||
precmd_vcs() {vcs_info}
|
|
||||||
#when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
|
|
||||||
zstyle ':vcs_info:*' nvcsformats '%~'
|
|
||||||
zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
|
|
||||||
zstyle ':vcs_info:*' actionformats '%r/%S %F{green}[%b] %F{red}<%a>%f'
|
|
||||||
|
|
||||||
#the precmd function, called just before printing the prompt.
|
|
||||||
function precmd() {
|
|
||||||
precmd_vcs
|
|
||||||
}
|
|
||||||
|
|
||||||
#Make the right prompt blank, just to be sure.
|
|
||||||
RPROMPT=""
|
|
||||||
|
|
||||||
#on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to input next to...)
|
|
||||||
PROMPT=$'%F{cyan}[%n@%m]%f%F{red}├────┤%f$${vcs_info_msg_0_} %F{white}[%D %T]%f\n»'
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
autocd = true;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
defaultKeymap = "viins";
|
|
||||||
history = {
|
|
||||||
ignoreAllDups = true;
|
|
||||||
extended = true;
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
ll = "ls -lh";
|
|
||||||
la = "ls -lha";
|
|
||||||
please = "sudo $(fc -ln -1)";
|
|
||||||
pyactivate = "source ./.venv/bin/activate";
|
|
||||||
};
|
|
||||||
syntaxHighlighting = {
|
|
||||||
enable = true;
|
|
||||||
highlighters = [
|
|
||||||
"main"
|
|
||||||
"brackets"
|
|
||||||
"pattern"
|
|
||||||
"regexp"
|
|
||||||
"root"
|
|
||||||
"line"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.gpg-agent.enableZshIntegration = true;
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
curl
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -5,16 +5,14 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/home-manager/terminal
|
../../configs/home-manager/btop.nix
|
||||||
../../modules/home-manager/nvim
|
../../configs/home-manager/direnv.nix
|
||||||
|
../../configs/home-manager/ssh-agent.nix
|
||||||
|
../../configs/home-manager/zsh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
user = {
|
user = {
|
||||||
btop.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
ssh-agent.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
nvim.enable = true;
|
nvim.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,12 @@
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./minimal-terminal.nix
|
./minimal-terminal.nix
|
||||||
../../modules/home-manager/terminal/nushell
|
../../configs/home-manager/nushell
|
||||||
../../modules/home-manager/terminal/starship.nix
|
../../configs/home-manager/starship.nix
|
||||||
../../modules/home-manager/terminal/tiny-irc.nix
|
../../configs/home-manager/tiny-irc.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
user = {
|
user = {
|
||||||
nushell.enable = true;
|
|
||||||
starship.enable = true;
|
|
||||||
tiny.enable = true;
|
|
||||||
nvim = {
|
nvim = {
|
||||||
enable-lsp = true;
|
enable-lsp = true;
|
||||||
enable-treesitter = true;
|
enable-treesitter = true;
|
||||||
|
|
Loading…
Reference in a new issue