Custom Neofetch(自定义neofetch)

custom own neofetch output Linux distribution ascii logo

警告
本文最后更新于 2023-03-09,文中内容可能已过时。

前言

之前在看一些博客发现,一些博主在分享某些程序的时候在博文里带上Linux的logo及系统的信息的截图,感觉特别炫酷。例如下面的截图:

Ubuntu

ubuntu

Mac OS

Mac

Custom

image-20230309201311827

Custom:

  1. git clone neofetch repo:

    1
    2
    
    git clone https://github.com/dylanaraps/neofetch.git
    cd neofetch
  2. add custom Linux distro ascii logo

    1. use edit open neofetch file,example:vim neofetch

    2. find out get_distro_ascci() function

      image-20230309202425770

    3. copy any template and edit it

      image-20230309203351477

  3. install neofetch

    1
    
    make install
  4. edit os-release

      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    
    OS-RELEASE(5)                                         os-release                                        OS-RELEASE(5)
    
    
    
    NAME
           os-release - Operating system identification
    
    SYNOPSIS
           /etc/os-release
    
           /usr/lib/os-release
    
    DESCRIPTION
           The /etc/os-release and /usr/lib/os-release files contain operating system identification data.
    
           The basic file format of os-release is a newline-separated list of environment-like shell-compatible variable
           assignments. It is possible to source the configuration from shell scripts, however, beyond mere variable
           assignments, no shell features are supported (this means variable expansion is explicitly not supported),
           allowing applications to read the file without implementing a shell compatible execution engine. Variable
           assignment values must be enclosed in double or single quotes if they include spaces, semicolons or other
           special characters outside of A-Z, a-z, 0-9. Shell special characters ("$", quotes, backslash, backtick) must
           be escaped with backslashes, following shell style. All strings should be in UTF-8 format, and non-printable
           characters should not be used. It is not supported to concatenate multiple individually quoted strings. Lines
           beginning with "#" shall be ignored as comments.
    
           The file /etc/os-release takes precedence over /usr/lib/os-release. Applications should check for the former,
           and exclusively use its data if it exists, and only fall back to /usr/lib/os-release if it is missing.
           Applications should not read data from both files at the same time.  /usr/lib/os-release is the recommended
           place to store OS release information as part of vendor trees.  /etc/os-release should be a relative symlink
           to /usr/lib/os-release, to provide compatibility with applications only looking at /etc. A relative symlink
           instead of an absolute symlink is necessary to avoid breaking the link in a chroot or initrd environment such
           as dracut.
    
           os-release contains data that is defined by the operating system vendor and should generally not be changed by
           the administrator.
    
           As this file only encodes names and identifiers it should not be localized.
    
           The /etc/os-release and /usr/lib/os-release files might be symlinks to other files, but it is important that
           the file is available from earliest boot on, and hence must be located on the root file system.
    
           For a longer rationale for os-release please refer to the Announcement of /etc/os-release[1].
    
    OPTIONS
           The following OS identifications parameters may be set using os-release:
    
           NAME=
               A string identifying the operating system, without a version component, and suitable for presentation to
               the user. If not set, defaults to "NAME=Linux". Example: "NAME=Fedora" or "NAME="Debian GNU/Linux"".
    
           VERSION=
               A string identifying the operating system version, excluding any OS name information, possibly including a
               release code name, and suitable for presentation to the user. This field is optional. Example:
               "VERSION=17" or "VERSION="17 (Beefy Miracle)"".
    
           ID=
               A lower-case string (no spaces or other characters outside of 0-9, a-z, ".", "_" and "-") identifying the
               operating system, excluding any version information and suitable for processing by scripts or usage in
               generated filenames. If not set, defaults to "ID=linux". Example: "ID=fedora" or "ID=debian".
    
    
           VERSION_ID=
               A lower-case string (mostly numeric, no spaces or other characters outside of 0-9, a-z, ".", "_" and "-")
               identifying the operating system version, excluding any OS name information or release code name, and
               suitable for processing by scripts or usage in generated filenames. This field is optional. Example:
               "VERSION_ID=17" or "VERSION_ID=11.04".
    
           PRETTY_NAME=
               A pretty operating system name in a format suitable for presentation to the user. May or may not contain a
               release code name or OS version of some kind, as suitable. If not set, defaults to "PRETTY_NAME="Linux"".
               Example: "PRETTY_NAME="Fedora 17 (Beefy Miracle)"".
    
           ANSI_COLOR=
               A suggested presentation color when showing the OS name on the console. This should be specified as string
               suitable for inclusion in the ESC [ m ANSI/ECMA-48 escape code for setting graphical rendition. This field
               is optional. Example: "ANSI_COLOR="0;31"" for red, or "ANSI_COLOR="1;34"" for light blue.
    
           CPE_NAME=
               A CPE name for the operating system, following the Common Platform Enumeration Specification[2] as
               proposed by the MITRE Corporation. This field is optional. Example:
               "CPE_NAME="cpe:/o:fedoraproject:fedora:17""
    
           HOME_URL=, SUPPORT_URL=, BUG_REPORT_URL=, PRIVACY_POLICY_URL=
               Links to resources on the Internet related the operating system.  HOME_URL= should refer to the homepage
               of the operating system, or alternatively some homepage of the specific version of the operating system.
               SUPPORT_URL= should refer to the main support page for the operating system, if there is any. This is
               primarily intended for operating systems which vendors provide support for.  BUG_REPORT_URL= should refer
               to the main bug reporting page for the operating system, if there is any. This is primarily intended for
               operating systems that rely on community QA.  PRIVACY_POLICY_URL= should refer to the main privacy policy
               page for the operation system, if there is any. These settings are optional, and providing only some of
               these settings is common. These URLs are intended to be exposed in "About this system" UIs behind links
               with captions such as "About this Operating System", "Obtain Support", "Report a Bug", or "Privacy
               Policy". The values should be in RFC3986 format[3], and should be "http:" or "https:" URLs, and possibly
               "mailto:" or "tel:". Only one URL shall be listed in each setting. If multiple resources need to be
               referenced, it is recommended to provide an online landing page linking all available resources. Examples:
               "HOME_URL="https://fedoraproject.org/"" and "BUG_REPORT_URL="https://bugzilla.redhat.com/""
    
           BUILD_ID=
               A string uniquely identifying the system image used as the origin for a distribution (it is not updated
               with system updates). The field can be identical between different VERSION_IDs as BUILD_ID is an only a
               unique identifier to a specific version. Distributions that release each update as a new version would
               only need to use VERSION_ID as each build is already distinct based on the VERSION_ID. This field is
               optional. Example: "BUILD_ID="2013-03-20.3"" or "BUILD_ID=201303203".
    
           VARIANT=
               A string identifying a specific variant or edition of the operating system suitable for presentation to
               the user. This field may be used to inform the user that the configuration of this system is subject to a
               specific divergent set of rules or default configuration settings. This field is optional and may not be
               implemented on all systems. Examples: "VARIANT="Server Edition"", "VARIANT="Smart Refrigerator Edition""
               Note: this field is for display purposes only. The VARIANT_ID field should be used for making programmatic
               decisions.
    
           VARIANT_ID=
               A lower-case string (no spaces or other characters outside of 0-9, a-z, ".", "_" and "-"), identifying a
               specific variant or edition of the operating system. This may be interpreted by other packages in order to
    
           prefix new fields with an OS specific name in order to avoid name clashes. Applications reading this file must
           ignore unknown fields. Example: "DEBIAN_BTS="debbugs://bugs.debian.org/""
    
    EXAMPLE
               NAME=Fedora
               VERSION="17 (Beefy Miracle)"
               ID=fedora
               VERSION_ID=17
               PRETTY_NAME="Fedora 17 (Beefy Miracle)"
               ANSI_COLOR="0;34"
               CPE_NAME="cpe:/o:fedoraproject:fedora:17"
               HOME_URL="https://fedoraproject.org/"
               BUG_REPORT_URL="https://bugzilla.redhat.com/"
    
    SEE ALSO
           systemd(1), lsb_release(1), hostname(5), machine-id(5), machine-info(5)
    
    NOTES
            1. Announcement of /etc/os-release
               http://0pointer.de/blog/projects/os-release
    
            2. Common Platform Enumeration Specification
               https://cpe.mitre.org/specification/
    
            3. RFC3986 format
               https://tools.ietf.org/html/rfc3986
    
    
    
    systemd 219                                                                                             OS-RELEASE(5)

    edit PRETTY_NAME as root

    image-20230309203856323

  5. test neofetch

image-20230309204057124

the ascii logo merge from leap0x7b:cutefishos

this is a simple guide, read more

Buy Me a Coffee ~~
hiifong 支付宝支付宝
hiifong 微信微信
0%