nixos/apps/fastfetch.nix

84 lines
2.2 KiB
Nix
Raw Normal View History

2025-12-03 19:53:58 +00:00
{ config, pkgs, ... }:
{
2025-12-21 13:42:38 +00:00
# Install fastfetch, ghostty, and nerd fonts
2025-12-03 19:53:58 +00:00
environment.systemPackages = with pkgs; [
fastfetch
];
2025-12-03 20:29:05 +00:00
# Install Nerd Fonts for icon support
fonts.packages = with pkgs; [
2025-12-03 20:29:57 +00:00
nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
nerd-fonts.meslo-lg
2025-12-03 20:29:05 +00:00
];
2025-12-20 22:37:20 +00:00
# Create the fastfetch config file with custom image
2025-12-03 19:53:58 +00:00
environment.etc."fastfetch/config.jsonc".text = ''
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
2025-12-21 12:16:53 +00:00
"logo": {
"source": "none"
},
2025-12-03 19:53:58 +00:00
"display": {
2025-12-03 20:22:36 +00:00
"separator": " ",
2025-12-03 19:53:58 +00:00
"color": {
"keys": "blue",
"title": "cyan"
2025-12-03 20:58:54 +00:00
},
"key": {
"type": "icon"
2025-12-03 19:53:58 +00:00
}
},
"modules": [
{
2025-12-21 14:05:34 +00:00
"type": "command",
"text": "echo $(whoami)@$(hostname) $(uname -r)"
2025-12-03 19:53:58 +00:00
},
{
"type": "colors",
"symbol": "circle"
}
]
}
'';
2025-12-03 20:22:36 +00:00
# Set up bash with fastfetch and a nice prompt
2025-12-03 20:29:05 +00:00
programs.bash.promptInit = ''
2025-12-21 14:11:48 +00:00
# Powerline-style prompt with background colors
2025-12-03 20:22:36 +00:00
# Color definitions
RESET="\[\033[0m\]"
2025-12-21 14:11:48 +00:00
# Powerline separator
SEP=""
# Background colors with foreground text
BG_BLUE="\[\033[48;5;33m\]" # Blue background
BG_PURPLE="\[\033[48;5;98m\]" # Purple background
BG_GREEN="\[\033[48;5;35m\]" # Green background
# Foreground colors for separators
FG_BLUE="\[\033[38;5;33m\]"
FG_PURPLE="\[\033[38;5;98m\]"
FG_GREEN="\[\033[38;5;35m\]"
# White text
WHITE="\[\033[97m\]"
2025-12-03 20:22:36 +00:00
# Function to get git branch
parse_git_branch() {
2025-12-21 14:11:48 +00:00
local branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
if [ -n "$branch" ]; then
echo -e "''${BG_PURPLE}''${FG_GREEN}''${SEP}''${BG_PURPLE}''${WHITE} $branch ''${RESET}''${FG_PURPLE}''${SEP}"
else
echo -e "''${RESET}''${FG_GREEN}''${SEP}"
fi
2025-12-03 20:22:36 +00:00
}
2025-12-21 14:11:48 +00:00
# Powerline prompt
PS1="''${BG_GREEN}''${WHITE} \w ''${RESET}\$(parse_git_branch)''${RESET} "
2025-12-03 19:53:58 +00:00
'';
2025-12-03 20:29:05 +00:00
programs.bash.interactiveShellInit = ''
2025-12-03 21:29:18 +00:00
# Run fastfetch on terminal start
2025-12-03 20:29:05 +00:00
if [[ $- == *i* ]]; then
2025-12-03 21:29:18 +00:00
${pkgs.fastfetch}/bin/fastfetch --config /etc/fastfetch/config.jsonc
2025-12-03 20:29:05 +00:00
fi
'';
2025-12-03 19:53:58 +00:00
}