{
  lib,
  config,
  pkgs,
  ...
}:
let
  inherit (lib) mkIf;

  cfg = config.marleyos.programs.hyfetch;
in
{
  config = mkIf cfg.enable {
    # TODO: Switch to fastfetch
    home.packages = with pkgs; [
      neofetch
    ];

    xdg.configFile."neofetch/config.conf".text = # bash
      ''
        print_info() {
          prin " "
          info " ​ ​  " title
          prin "''$(color 7)┌──────────────────────────────────────┐"

          info " ​ ​ ''$(color 4)󰌢 \n" model
          info " ​ ​ ''$(color 6)󰍛 \n" cpu
          info " ​ ​ ''$(color 2) \n" gpu
          info " ​ ​ ''$(color 1) \n" memory
          # info " ​ ​ ''$(color 5)󰍹 \n" resolution

          prin "''$(color 7)├──────────────────────────────────────┤"

          info " ​ ​ ''$(color 4) \n" distro
          info " ​ ​ ''$(color 4) \n" kernel
          info " ​ ​ ''$(color 6) \n" wm
          info " ​ ​ ''$(color 2) \n" shell
          info " ​ ​ ''$(color 3) \n" term
          info " ​ ​ ''$(color 7) \n" term_font
          info " ​ ​ ''$(color 5)󰉼 \n" theme
          info " ​ ​ ''$(color 1)󰀻 \n" icons
          info " ​ ​ ''$(color 2)󰊠 \n" packages
          info " ​ ​ ''$(color 3) \n" uptime

          prin "''$(color 7)├──────────────────────────────────────┤"

          info cols
          prin

          prin "''$(color 7)└──────────────────────────────────────┘"
        }

        title_fqdn="off"
        kernel_shorthand="on"
        distro_shorthand="on"
        os_arch="on"
        uptime_shorthand="tiny"
        memory_percent="off"
        memory_unit="gib"
        package_managers="tiny"
        shell_path="off"
        shell_version="off"
        speed_type="bios_limit"
        speed_shorthand="on"
        cpu_brand="on"
        cpu_speed="on"
        cpu_cores="off"
        cpu_temp="off"
        gpu_brand="on"
        gpu_type="all"
        refresh_rate="on"
        gtk_shorthand="on"
        gtk2="off"
        gtk3="on"
        public_ip_host="http://ident.me"
        public_ip_timeout=2
        local_ip_interface=('auto')
        de_version="on"
        disk_show=('/')
        disk_subtitle="mount"
        disk_percent="on"
        music_player="auto"
        song_format="%artist% - %album% - %title%"
        song_shorthand="off"
        mpc_args=()
        colors=(distro)
        bold="on"
        underline_enabled="on"
        underline_char="-"
        separator=" 󰾞"
        block_range=(0 15)
        color_blocks="on"
        block_width=3
        block_height=1
        col_offset=49
        bar_char_elapsed="-"
        bar_char_total="="
        bar_border="on"
        bar_length=15
        bar_color_elapsed="distro"
        bar_color_total="distro"
        memory_display="off"
        battery_display="off"
        disk_display="off"
        image_backend="ascii"
        image_source="auto"
        ascii_distro="auto"
        ascii_colors=(distro)
        ascii_bold="on"
        image_loop="off"
        thumbnail_dir="''${XDG_CACHE_HOME:-''${HOME}/.cache}/thumbnails/neofetch"
        crop_mode="normal"
        crop_offset="center"
        image_size="auto"
        catimg_size="2"
        gap=3
        yoffset=0
        xoffset=0
        background_color=
        stdout="off"
      '';
  };
}
