This commit is contained in:
Alvaro Fresquet 2024-05-02 01:44:26 +00:00 committed by GitHub
commit dc066f8c18
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 230 additions and 0 deletions

View File

@ -548,4 +548,10 @@
github = "zorrobert";
githubId = 118135271;
};
afresquet = {
name = "Alvaro Fresquet";
email = "29437693+afresquet@users.noreply.github.com";
github = "afresquet";
githubId = 29437693;
};
}

View File

@ -1584,6 +1584,17 @@ in {
https://conky.cc/ for more.
'';
}
{
time = "2024-05-02T00:25:03+00:00";
message = ''
A new module is available: 'programs.fastfetch'.
Fastfetch is a neofetch-like tool for fetching system information
and displaying them in a pretty way. See
https://github.com/fastfetch-cli/fastfetch for more.
'';
}
];
};
}

View File

@ -87,6 +87,7 @@ let
./programs/emacs.nix
./programs/eww.nix
./programs/eza.nix
./programs/fastfetch.nix
./programs/fd.nix
./programs/feh.nix
./programs/firefox.nix

View File

@ -0,0 +1,96 @@
{ pkgs, lib, config, ... }:
let
cfg = config.programs.fastfetch;
jsonFormat = pkgs.formats.json { };
in {
meta.maintainers = [ lib.hm.maintainers.afresquet ];
options.programs.fastfetch = {
enable = lib.mkEnableOption "Fastfetch";
package = lib.mkPackageOption pkgs "fastfetch" { };
settings = lib.mkOption {
type = jsonFormat.type;
default = {
modules = [
"title"
"separator"
"os"
"host"
"kernel"
"uptime"
"packages"
"shell"
"display"
"de"
"wm"
"wmtheme"
"theme"
"icons"
"font"
"cursor"
"terminal"
"terminalfont"
"cpu"
"gpu"
"memory"
"swap"
"disk"
"localip"
"battery"
"poweradapter"
"locale"
"break"
"colors"
];
};
example = lib.literalExpression ''
{
logo = {
source = "nixos_small";
padding = {
right = 1;
};
};
display = {
binaryPrefix = "si";
color = "blue";
separator = " ";
};
modules = [
{
type = "datetime";
key = "Date";
format = "{1}-{3}-{11}";
}
{
type = "datetime";
key = "Time";
format = "{14}:{17}:{20}";
}
"break"
"player"
"media"
];
};
'';
description = ''
Configuration written to {file}`$XDG_CONFIG_HOME/fastfetch/config.jsonc`.
See <https://github.com/fastfetch-cli/fastfetch/wiki/Json-Schema>
for the documentation.
'';
};
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
xdg.configFile."fastfetch/config.jsonc".source =
jsonFormat.generate "config.jsonc" cfg.settings;
};
}

View File

@ -71,6 +71,7 @@ in import nmtSrc {
./modules/programs/dircolors
./modules/programs/direnv
./modules/programs/emacs
./modules/programs/fastfetch
./modules/programs/feh
./modules/programs/fish
./modules/programs/gallery-dl

View File

@ -0,0 +1,28 @@
{
"display": {
"binaryPrefix": "si",
"color": "blue",
"separator": "  "
},
"logo": {
"padding": {
"right": 1
},
"source": "nixos_small"
},
"modules": [
{
"format": "{1}-{3}-{11}",
"key": "Date",
"type": "datetime"
},
{
"format": "{14}:{17}:{20}",
"key": "Time",
"type": "datetime"
},
"break",
"player",
"media"
]
}

View File

@ -0,0 +1,39 @@
{
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "nixos_small";
padding = { right = 1; };
};
display = {
binaryPrefix = "si";
color = "blue";
separator = " ";
};
modules = [
{
type = "datetime";
key = "Date";
format = "{1}-{3}-{11}";
}
{
type = "datetime";
key = "Time";
format = "{14}:{17}:{20}";
}
"break"
"player"
"media"
];
};
};
test.stubs.fastfetch = { };
nmt.script = let config-file = "home-files/.config/fastfetch/config.jsonc";
in ''
assertFileExists "${config-file}"
assertFileContent "${config-file}" ${./basic-configuration.jsonc}
'';
}

View File

@ -0,0 +1,33 @@
{
"modules": [
"title",
"separator",
"os",
"host",
"kernel",
"uptime",
"packages",
"shell",
"display",
"de",
"wm",
"wmtheme",
"theme",
"icons",
"font",
"cursor",
"terminal",
"terminalfont",
"cpu",
"gpu",
"memory",
"swap",
"disk",
"localip",
"battery",
"poweradapter",
"locale",
"break",
"colors"
]
}

View File

@ -0,0 +1,11 @@
{
programs.fastfetch.enable = true;
test.stubs.fastfetch = { };
nmt.script = let config-file = "home-files/.config/fastfetch/config.jsonc";
in ''
assertFileExists "${config-file}"
assertFileContent "${config-file}" ${./default-configuration.jsonc}
'';
}

View File

@ -0,0 +1,4 @@
{
fastfetch-default-configuration = ./default-configuration.nix;
fastfetch-basic-configuration = ./basic-configuration.nix;
}