Initial commit
This commit is contained in:
183
modules/features/zsh.nix
Normal file
183
modules/features/zsh.nix
Normal file
@@ -0,0 +1,183 @@
|
||||
{ inputs, lib, self, ... }: {
|
||||
flake.nixosModules.zsh = { pkgs, config, ... }: {
|
||||
|
||||
imports = [ # Include the results of the hardware scan.
|
||||
self.nixosModules.fastfetch
|
||||
];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.zsh.syntaxHighlighting.enable = true;
|
||||
programs.zsh.histSize=1000;
|
||||
programs.zsh.histFile="${config.users.users.adam.home}/.local/histfile";
|
||||
programs.zsh.setOptions= [
|
||||
"beep"
|
||||
"prompt_subst"
|
||||
];
|
||||
programs.zsh.shellInit =
|
||||
''
|
||||
bindkey -v
|
||||
bindkey "^H" backward-delete-char
|
||||
bindkey "^?" backward-delete-char
|
||||
'';
|
||||
environment.sessionVariables = rec {
|
||||
EDITOR = "nvim";
|
||||
BROWSER = "firefox";
|
||||
ZDOTDIR = "/etc/";
|
||||
};
|
||||
programs.zsh.shellAliases = {
|
||||
fs = "lf";
|
||||
ls = "ls --color=auto";
|
||||
cp = "cp -v";
|
||||
mkdir = "mkdir -v";
|
||||
mv = "mv -v";
|
||||
rm = "rm -v";
|
||||
};
|
||||
programs.zsh.promptInit =
|
||||
''
|
||||
autoload -Uz add-zsh-hook vcs_info
|
||||
add-zsh-hook precmd vcs_info
|
||||
sep=""
|
||||
rsep=""
|
||||
purple="#957fb8"
|
||||
blue="#7e9cd8"
|
||||
black="#090618"
|
||||
green="#76946a"
|
||||
zstyle ':vcs_info:*' formats "%F{$purple}%K{$blue}$sep%k%f%K{$blue}%F{$black} (%r:%b) %F{$blue}"
|
||||
export PS1='%K{$purple}%F{$black} %1~ %F{$purple}''${vcs_info_msg_0_}%k$sep%k%f '
|
||||
export RPROMPT="%F{$green}$rsep%f%K{$green}%F{$black} %n@%m %f%k"
|
||||
tty > /dev/null && (clear ; fastfetch)
|
||||
'';
|
||||
system.userActivationScripts.zshrc = "touch .zshrc";
|
||||
};
|
||||
|
||||
flake.nixosModules.fastfetch = { pkgs, ... }: let
|
||||
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
|
||||
in {
|
||||
environment.systemPackages = [
|
||||
selfpkgs.myFastfetch
|
||||
];
|
||||
};
|
||||
|
||||
perSystem = { pkgs, ... }: let
|
||||
conf =
|
||||
pkgs.writeText "config.jsonc"
|
||||
''
|
||||
{
|
||||
"''$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"type": "auto",
|
||||
"color": {
|
||||
"1": "35",
|
||||
},
|
||||
},
|
||||
"display": {
|
||||
"separator": " ",
|
||||
"constants": [
|
||||
"─────────────────"
|
||||
],
|
||||
"key": {
|
||||
"type": "icon",
|
||||
"paddingLeft": 2
|
||||
},
|
||||
"color": {
|
||||
"keys": "35",
|
||||
},
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"type": "custom", // HardwareStart
|
||||
"format": "┌{''$1} {#1}Hardware Information{#} {''$1}┐"
|
||||
},
|
||||
//"host",
|
||||
"cpu",
|
||||
"gpu",
|
||||
"disk",
|
||||
"swap",
|
||||
"display",
|
||||
"brightness",
|
||||
"battery",
|
||||
"poweradapter",
|
||||
"bluetooth",
|
||||
//"sound",
|
||||
"memory",
|
||||
"gamepad",
|
||||
{
|
||||
"type": "custom", // SoftwareStart
|
||||
"format": "├{''$1} {#1}Software Information{#} {''$1}┤"
|
||||
},
|
||||
/*{
|
||||
"type": "title",
|
||||
"keyIcon": "",
|
||||
"key": "Title", // Title module has no key by default, so that icon is not displayed
|
||||
"format": "{user-name}@{host-name}"
|
||||
},*/
|
||||
"os",
|
||||
//"kernel",
|
||||
//"lm",
|
||||
"de",
|
||||
"wm",
|
||||
"shell",
|
||||
"terminal",
|
||||
"terminalfont",
|
||||
"theme",
|
||||
"icons",
|
||||
"wallpaper",
|
||||
"packages",
|
||||
"uptime",
|
||||
//"media",
|
||||
/*{
|
||||
"type": "localip",
|
||||
"compact": true
|
||||
},
|
||||
"publicip",
|
||||
{
|
||||
"type": "wifi",
|
||||
"format": "{ssid}"
|
||||
},
|
||||
"locale",*/
|
||||
{
|
||||
"type": "custom", // InformationEnd
|
||||
"format": "└{''$1}──────────────────────{''$1}┘"
|
||||
},
|
||||
{
|
||||
"type": "colors",
|
||||
"paddingLeft": 2,
|
||||
"symbol": "circle"
|
||||
}
|
||||
]
|
||||
}
|
||||
'';
|
||||
logo =
|
||||
pkgs.writeText "navi.txt"
|
||||
''
|
||||
/X\
|
||||
XXX
|
||||
\X/
|
||||
/X/ /XXXXXXXXX\ \X\
|
||||
/XXX/ /XXX/ \XXX\ \XXX\
|
||||
/XX/ /XXX/ \XXX\ \XX\
|
||||
/XX/ XXX /XXX\ XXX \XX\
|
||||
XXX XXX /XXXXX\ XXX XXX
|
||||
XXX\ XXX \XXXXX/ XXX /XXX
|
||||
\XX\ \XX\ \XXX/ /XX/ /XX/
|
||||
\XXX\ \XX\ /XX/ /XXX/
|
||||
XX \XX\ \XXX\ /XXX/ /XX/ XX
|
||||
XX \XX\ /XX/ XX
|
||||
XXX XXX
|
||||
XXX XXX
|
||||
\XX\ /XX/ \XX\ /XX/
|
||||
\XXXXXXX/ \XXXXXXX/
|
||||
|
||||
'';
|
||||
|
||||
in {
|
||||
packages.myFastfetch = inputs.wrappers.lib.wrapPackage {
|
||||
inherit pkgs;
|
||||
package = pkgs.fastfetch;
|
||||
flags = {
|
||||
"--config" = "${conf}";
|
||||
"--logo" = "${logo}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user