109 lines
2.3 KiB
Nix
109 lines
2.3 KiB
Nix
|
self: {
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib) fileContents mkIf mkOption types;
|
||
|
|
||
|
cfg = config.programs.bash;
|
||
|
in {
|
||
|
imports = [
|
||
|
./starship
|
||
|
(import ./git self)
|
||
|
(import ./misc self)
|
||
|
(import ./nix-tools self)
|
||
|
(import ./trash self)
|
||
|
];
|
||
|
|
||
|
options.programs.bash = {
|
||
|
promptMainColor = mkOption {
|
||
|
type = types.enum (import ./prompt-schemes.nix {});
|
||
|
default = "purple";
|
||
|
};
|
||
|
|
||
|
promptColors = mkOption {
|
||
|
description = ''
|
||
|
Colors used in starship prompt
|
||
|
'';
|
||
|
|
||
|
default = import ./prompt-schemes.nix {color = cfg.promptMainColor;};
|
||
|
|
||
|
readOnly = true;
|
||
|
type = types.submodule {
|
||
|
options = let
|
||
|
inherit (types) str;
|
||
|
in {
|
||
|
textColor = mkOption {type = str;};
|
||
|
firstColor = mkOption {type = str;};
|
||
|
secondColor = mkOption {type = str;};
|
||
|
thirdColor = mkOption {type = str;};
|
||
|
fourthColor = mkOption {type = str;};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
programs.bash = {
|
||
|
enableCompletion = true;
|
||
|
|
||
|
historyFile = "\$HOME/.cache/.bash_history";
|
||
|
historyFileSize = 100000; # default
|
||
|
historySize = 10000; # default
|
||
|
historyControl = [
|
||
|
"erasedups"
|
||
|
"ignorespace"
|
||
|
];
|
||
|
historyIgnore = [
|
||
|
"ls"
|
||
|
"exit"
|
||
|
"logout"
|
||
|
];
|
||
|
|
||
|
shellOptions = [
|
||
|
"histappend"
|
||
|
"checkwinsize"
|
||
|
"extglob"
|
||
|
"globstar"
|
||
|
"checkjobs"
|
||
|
"autocd"
|
||
|
"cdspell"
|
||
|
"dirspell"
|
||
|
"dotglob"
|
||
|
];
|
||
|
|
||
|
shellAliases = {
|
||
|
# Add whitespace after, to allow
|
||
|
# sudo to inherit all other aliases
|
||
|
sudo = "sudo ";
|
||
|
|
||
|
ls = "ls -lah --color=auto";
|
||
|
tree = "tree -a -I node_modules";
|
||
|
cp = "cp -r";
|
||
|
};
|
||
|
|
||
|
#profileExtra = ''
|
||
|
#'';
|
||
|
bashrcExtra =
|
||
|
# bash
|
||
|
''
|
||
|
# Check if shell is interactive
|
||
|
[[ $- == *i* ]] || return 0
|
||
|
|
||
|
${fileContents ./config/dracula/less.sh}
|
||
|
${fileContents ./config/dracula/fzf.sh}
|
||
|
|
||
|
${fileContents ./config/colorgrid.sh}
|
||
|
${fileContents ./config/bashrc}
|
||
|
'';
|
||
|
#initExtra = ''
|
||
|
#'';
|
||
|
#logoutExtra = ''
|
||
|
#'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# For accurate stack trace
|
||
|
_file = ./default.nix;
|
||
|
}
|