589 lines
16 KiB
Org Mode
589 lines
16 KiB
Org Mode
#+title: Neofetch configuration
|
||
#+setupfile: headers
|
||
#+OPTIONS: unique-id:t
|
||
#+HTML_HEAD_EXTRA: <meta name="description" content="Phundrak's Neofetch config" />
|
||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's Neofetch config" />
|
||
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the Neofetch config file of Phundrak" />
|
||
#+PROPERTY: header-args :noweb yes :exports code :tangle no :exports none
|
||
#+PROPERTY: header-args:sh :tangle ~/.config/neofetch/config.conf :exports code
|
||
#+PROPERTY: header-args:sh+ :noweb yes :padline no :mkdirp yes
|
||
|
||
* Introduction
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Introduction-5942aea3
|
||
:END:
|
||
[[https://github.com/dylanaraps/neofetch][Neofetch]] is a CLI utility used to display system information. It was written in
|
||
Bash, and thus its configuration file is written as a Bash script too. This
|
||
document was written with org-mode, and my configuration file is tangled from
|
||
the source blocks you will see below to ~~/.config/neofetch/config.conf~. This
|
||
configuration will only contain what I need. For any further information, please
|
||
refer to the [[https://github.com/dylanaraps/neofetch][original repository]] and [[https://github.com/dylanaraps/neofetch/wiki/Customizing-Info][its documentation]].
|
||
|
||
* The ~print_info~ functions
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: The_print_info_functions-bb30763f
|
||
:END:
|
||
The ~print_info~ function is the function called by Neofetch in order to print
|
||
the system information it could fetch. In this function, we’ll choose what to
|
||
display, and how. This function looks like this:
|
||
#+BEGIN_SRC sh :tangle no
|
||
print_info() {
|
||
# Print information here…
|
||
}
|
||
#+END_SRC
|
||
|
||
Generally, what we will display will be shown through the ~info~ function,
|
||
redefined inside Neofetch (this is not ~info(1)~). This ~info~ function accepts
|
||
one or two arguments. With one argument, such as with ~info memory~, we can get
|
||
a result that looks like ~5136MiB / 15873MiB~, while calling it with two
|
||
arguments will treat the first one as a prefix and the second one as the
|
||
interesting information; ~info "Memory" memory~ will look like
|
||
~Memory: 5136MiB / 15873MiB~. Here is what we want to display:
|
||
#+NAME: info-elements-table
|
||
| Prefix | Information | What it does |
|
||
|----------+-------------+------------------------------|
|
||
| | title | Username and hostname |
|
||
| | line_break | Insert a blank line |
|
||
| | cols | System theme |
|
||
| | line_break | Insert a blank line |
|
||
| Distro | distro | Distribution name |
|
||
| Kernel | kernel | Kernel version |
|
||
| Uptime | uptime | Machine uptime |
|
||
| Packages | packages | Number of installed packages |
|
||
| Shell | shell | User’s default shell |
|
||
| WM | wm | User’s Window Manager |
|
||
| Terminal | term | Default terminal |
|
||
| CPU | cpu | CPU information |
|
||
| GPU | gpu | GPU information |
|
||
| Memory | memory | RAM information |
|
||
|
||
#+NAME: info-elements-gen
|
||
#+BEGIN_SRC emacs-lisp :var table=info-elements-table :cache yes
|
||
(mapconcat (lambda (x)
|
||
(let ((prefix (car x))
|
||
(information (cadr x)))
|
||
(format "info %s%s"
|
||
(if (not (string= prefix ""))
|
||
(format "\"%s\" " prefix)
|
||
"")
|
||
information)))
|
||
table
|
||
"\n")
|
||
#+END_SRC
|
||
|
||
#+RESULTS[83eb4aaa554df955ad996157d911eec3a9251628]: info-elements-gen
|
||
#+begin_example
|
||
info title
|
||
info line_break
|
||
info cols
|
||
info line_break
|
||
info "Distro" distro
|
||
info "Kernel" kernel
|
||
info "Uptime" uptime
|
||
info "Packages" packages
|
||
info "Shell" shell
|
||
info "WM" wm
|
||
info "Terminal" term
|
||
info "CPU" cpu
|
||
info "GPU" gpu
|
||
info "Memory" memory
|
||
#+end_example
|
||
|
||
Hence, the function looks like so:
|
||
#+BEGIN_SRC sh
|
||
print_info() {
|
||
<<info-elements-gen()>>
|
||
}
|
||
#+END_SRC
|
||
|
||
Each of these modules can be tuned with the variables presented below.
|
||
|
||
* Information settings
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-9d4cfe88
|
||
:END:
|
||
Each of the following variable tunes a function that can be called in
|
||
~print_info~ described above. It is possible to tune them by modifying this
|
||
document or the configuration file itself, and they can be overridden by the
|
||
command line with flags passed to ~neofetch~. I will divide these variables in
|
||
two main categories: hardware and software-related properties.
|
||
|
||
** Software
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-59f4cb0f
|
||
:END:
|
||
*** OS
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-OS-67908fc4
|
||
:END:
|
||
**** Distro
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-OS-Distro-cd12bc4f
|
||
:END:
|
||
This variable can shorten the output of the ~distro~ function.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--distro_shorthand~
|
||
- Supports :: Everything except Windows and Haiku
|
||
- Examples ::
|
||
- on :: ~Arch Linux~
|
||
- off :: ~Arch~
|
||
#+begin_src sh
|
||
distro_shorthand="off"
|
||
#+end_src
|
||
|
||
It is possible to display when the distro has been installed on the computer.
|
||
|
||
***** Distro art or image
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information-settings-Software-OS-Distro-Distro-art-or-image-e60cbd1e
|
||
:END:
|
||
By default, Neofetch will display ascii art next to our system information
|
||
representing our distro’s logo. We’ll customize it a bit. First, let’s change
|
||
the ~backend~ value. Note that most of them (except ~off~ of course) support
|
||
shorthands such as ~--kitty~ when passed as arguments from the command line. In
|
||
my case, I will use the Kitty backend since it is the native backend of the
|
||
terminal emulator I use.
|
||
- Default value :: ~"ascii"~
|
||
- Values ::
|
||
- ~ascii~
|
||
- ~caca~
|
||
- ~catimg~
|
||
- ~chafa~
|
||
- ~jp2a~
|
||
- ~iterm2~
|
||
- ~off~
|
||
- ~pot~
|
||
- ~termpix~
|
||
- ~pixterm~
|
||
- ~tycat~
|
||
- ~w3m~
|
||
- ~kitty~
|
||
- ~ueberzug~
|
||
- ~viu~
|
||
- flag :: ~--backend~
|
||
#+BEGIN_SRC sh
|
||
image_backend="kitty"
|
||
#+END_SRC
|
||
|
||
Now, since I indicated I wanted an image engine, I’ll indicate neofetch which
|
||
image to find. Note that ~auto~ will pick the best image source for whatever
|
||
image backend is used. In ascii mode, distro ascii art will be used and in an
|
||
image mode, your wallpaper will be used.
|
||
- Default value :: ~auto~
|
||
- Values ::
|
||
- ~auto~
|
||
- ~ascii~
|
||
- ~wallpaper~
|
||
- ~/path/to/img~
|
||
- ~/path/to/ascii~
|
||
- ~/path/to/dir/~
|
||
- ~command output (neofetch --ascii "$(fortune | cowsay -W 30)")~
|
||
- Flag :: ~--source~
|
||
#+BEGIN_SRC sh
|
||
image_source="$HOME/org/config/img/leon.png"
|
||
#+END_SRC
|
||
|
||
The default image size will probably not be correct since it is half the
|
||
terminal width and I have an ultrawide monitor, so I’ll need to set it manually.
|
||
- Default value :: ~auto~
|
||
- Values ::
|
||
- ~auto~
|
||
- ~00px~
|
||
- ~00%~
|
||
- ~none~
|
||
- Flag :: ~--image-size~ or ~--size~
|
||
#+BEGIN_SRC sh
|
||
image_size="224px"
|
||
#+END_SRC
|
||
|
||
**** Kernel
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-OS-Kernel-658cedce
|
||
:END:
|
||
The variable below can shorten the output ofh the ~kernel~ function.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--kernel_shorthand~
|
||
- Supports :: Everything except *BSDs (except PacBSD and PC-BSD)
|
||
- Examples ::
|
||
- on :: ~4.8.9-1-ARCH~
|
||
- off :: ~Linux 4.8.9-1-ARCH~
|
||
#+begin_src sh
|
||
kernel_shorthand="off"
|
||
#+end_src
|
||
|
||
**** OS Architecture
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-OS-OS_Architecture-2f60c93c
|
||
:END:
|
||
This variable can show or hide the OS architecture in the ~distro~ output.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--os_arch~
|
||
- Examples ::
|
||
- on :: ~Arch Linux x86_64~
|
||
- off :: ~Arch Linux~
|
||
#+begin_src sh
|
||
os_arch="off"
|
||
#+end_src
|
||
|
||
**** Packages
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-OS-Packages-f836a58d
|
||
:END:
|
||
It is possible to show or hide Package Manager names.
|
||
- Default :: ~'tiny'~
|
||
- Values :: ~'on'~ / ~'tiny'~ / ~'off'~
|
||
- Flag :: ~--package_managers~
|
||
- Example ::
|
||
- on :: ~'998 (pacman), 8 (flatpak), 4 (snap)'~
|
||
- tiny :: ~'908 (pacman, flatpak, snap)'~
|
||
- off :: ~'908'~
|
||
#+BEGIN_SRC sh
|
||
package_managers="on"
|
||
#+END_SRC
|
||
|
||
**** Shell
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Shell-76439406
|
||
:END:
|
||
***** Shell path
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Shell-Shell_path-9eda636d
|
||
:END:
|
||
This allows to show either the path of the user’s shell, or simply its name.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--shell_path~
|
||
- Examples ::
|
||
- on :: ~/bin/bash~
|
||
- off :: ~bash~
|
||
#+begin_src sh
|
||
shell_path="off"
|
||
#+end_src
|
||
|
||
***** Shell version
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Shell-Shell_version-03964bb3
|
||
:END:
|
||
This allows to show the shell’s version in the output of ~shell~.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--shell_version~
|
||
- Examples ::
|
||
- on :: ~bash 4.4.5~
|
||
- off :: ~bash~
|
||
#+begin_src sh
|
||
shell_version="off"
|
||
#+end_src
|
||
|
||
*** Uptime
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Uptime-a7b5361a
|
||
:END:
|
||
This variable can shorten the output of the ~uptime~ function. ~on~ shortens
|
||
it a bit, while ~tiny~ shortens it greatly.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"tiny"~
|
||
- ~"off"~
|
||
- Flag :: ~--uptime_shorthand~
|
||
- Examples ::
|
||
- on :: ~2 days, 10 hours, 3 mins~
|
||
- off :: ~2 days, 10 hours, 3 minutes~
|
||
- tiny :: ~2d 10h 3m~
|
||
#+begin_src sh
|
||
uptime_shorthand="on"
|
||
#+end_src
|
||
|
||
*** IP address
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-IP_address-26df5e1d
|
||
:END:
|
||
It is possible to display the machine’s public IP address with the function
|
||
~ip~. The value below allows the user to change the website used to fetch it.
|
||
- Default value :: ~"http://ident.me"~
|
||
- Value :: ~"url"~
|
||
- Flag :: ~--ip_host~
|
||
#+begin_src sh
|
||
public_ip_host="http://ident.me"
|
||
#+end_src
|
||
|
||
# - Default value :: ~""~
|
||
# - Values ::
|
||
# - ~""~
|
||
# - ~""~
|
||
# - Flag :: ~""~
|
||
# - Supports ::
|
||
# - Examples ::
|
||
# - on :: ~~
|
||
# - off :: ~~
|
||
# #+begin_src sh
|
||
# #+end_src
|
||
|
||
*** Theming
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Theming-ba7f1ccd
|
||
:END:
|
||
This section will allow the user to modify what Neofetch can and cannot display
|
||
about the machine’s theming —by this, I mean its GTK theme, its icons and its
|
||
default font.
|
||
|
||
**** Shorten output
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Theming-Shorten_output-cbef1fa4
|
||
:END:
|
||
With this value, it is possible to shorten the output of the computer’s theming.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--gtk_shorthand~
|
||
- Examples ::
|
||
- on :: ~Numix, Adwaita~
|
||
- off :: ~Numix [GTK2], Adwaita [GTK3]~
|
||
#+begin_src sh
|
||
gtk_shorthand="on"
|
||
#+end_src
|
||
|
||
**** Enable or disable theming display for GTK2
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK2-f4398571
|
||
:END:
|
||
It is possible to explicitely show or hide the computer’s theming with GTK2 with
|
||
this variable.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--gtk2~
|
||
- Examples ::
|
||
- on :: ~Numix [GTK2], Adwaita [GTK3]~
|
||
- off :: ~Adwaita [GTK3]~
|
||
#+begin_src sh
|
||
gtk2="off"
|
||
#+end_src
|
||
|
||
**** Enable or disable theming display for GTK3
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK3-c4070e66
|
||
:END:
|
||
The same variable as above is also available for GTK3.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--gtk3~
|
||
- Examples ::
|
||
- on :: ~Numix [GTK2], Adwaita [GTK3]~
|
||
- off :: ~Numix [GTK2]~
|
||
#+begin_src sh
|
||
gtk3="off"
|
||
#+end_src
|
||
|
||
** Hardware
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-de7ed990
|
||
:END:
|
||
*** CPU
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-eb0bcd7d
|
||
:END:
|
||
**** CPU brand
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_brand-5b25776b
|
||
:END:
|
||
With these variables, it is possible to show or hide the brand of a CPU in the
|
||
~cpu~ output.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--cpu_brand~
|
||
- Examples ::
|
||
- on :: ~Intel i7-6500U~
|
||
- off :: ~i7-6500U~
|
||
#+begin_src sh
|
||
cpu_brand="off"
|
||
#+end_src
|
||
|
||
**** CPU speed
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed-2bf6e5f7
|
||
:END:
|
||
With this variable, it is possible to show or hide the speed of the CPU.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--cpu_speed~
|
||
- Examples ::
|
||
- on :: ~Intel i7-6500U (4) @ 3.1GHz~
|
||
- off :: ~Intel i7-6500U (4)~
|
||
#+begin_src sh
|
||
cpu_speed="off"
|
||
#+end_src
|
||
|
||
**** CPU speed type
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_type-a24de48f
|
||
:END:
|
||
This allows Neofetch to know what type of speed it has to fetch regarding the
|
||
machine’s CPU. Any file in ~/sys/devices/system/cpu/cpu0/cpufreq~ can be used as
|
||
a value.
|
||
- Default value :: ~"bios_limit"~
|
||
- Values ::
|
||
- ~"scaling_cur_freq"~
|
||
- ~"scaling_min_freq"~
|
||
- ~"scaling_max_freq"~
|
||
- ~"bios_limit"~
|
||
- Flag :: ~--speed_type~
|
||
- Supports :: Linux with ~cpufreq~
|
||
#+begin_src sh
|
||
speed_type="bios_limit"
|
||
#+end_src
|
||
|
||
**** CPU speed shorthand
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_shorthand-0d15fe08
|
||
:END:
|
||
This value allows showing sorter CPU speed with fewer digits. This flag
|
||
is not supported in systems with CPU speed below 1GHz.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"on"~
|
||
- Flag :: ~--speed_shorthand~
|
||
- Examples ::
|
||
- on :: ~i7-6500U (4) @ 3.1GHz~
|
||
- off :: ~i7-6500U (4) @ 3.100GHz~
|
||
#+begin_src sh
|
||
speed_shorthand="on"
|
||
#+end_src
|
||
|
||
**** CPU cores
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_cores-30177354
|
||
:END:
|
||
With this variable, it is possible to display the number of cores that are
|
||
available in the CPU.
|
||
- Default value :: ~"logical"~
|
||
- Values ::
|
||
- ~"logical"~
|
||
- ~"physical"~
|
||
- ~"off"~
|
||
- Flag :: ~--cpu_cores~
|
||
- Supports :: ~physical~ does not work on BSD.
|
||
- Examples ::
|
||
- logical :: ~Intel i7-6500U (4) @ 3.1GHz~ (All virtual cores)
|
||
- physical :: ~Intel i7-6500U (2) @ 3.1GHz~ (All physical cores)
|
||
- off :: ~Intel i7-6500U @ 3.1GHz~
|
||
#+begin_src sh
|
||
cpu_cores="off"
|
||
#+end_src
|
||
|
||
**** CPU temperature
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_temperature-a22e522c
|
||
:END:
|
||
This variable allows the user to hide or show the CPU’s temperature, and if
|
||
shown, the user can display it in Celcius or Farenheit degrees. For FreeBSD and
|
||
NetBSD-based systems, you’ll need to enable the ~coretemp~ kernel module. This
|
||
only supports newer Intel processors.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"C"~
|
||
- ~"F"~
|
||
- ~"off"~
|
||
- Flag :: ~--cpu_temp~
|
||
- Supports :: Linux, BSD
|
||
- Examples ::
|
||
- C :: ~Intel i7-6500U (4) @ 3.1GHz [27.2°C]~
|
||
- F :: ~Intel i7-6500U (4) @ 3.1GHz [82.0°F]~
|
||
- off :: ~Intel i7-6500U (4) @ 3.1GHz~
|
||
#+begin_src sh
|
||
cpu_temp="off"
|
||
#+end_src
|
||
|
||
*** GPU
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-GPU-2c842575
|
||
:END:
|
||
The function responsible for displaying information regarding the GPUs is ~gpu~.
|
||
It will try to list all available GPUs and display what it knows about them.
|
||
|
||
**** GPU brand
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-GPU-GPU_brand-6e2da615
|
||
:END:
|
||
This value allows the user to hide or show the brand of their GPU in the output
|
||
of ~gpu~.
|
||
- Default value :: ~"on"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--gpu_brand~
|
||
- Supports ::
|
||
- Examples ::
|
||
- on :: ~AMD HD 7950~
|
||
- off :: ~HD 7950~
|
||
#+begin_src sh
|
||
gpu_brand="off"
|
||
#+end_src
|
||
|
||
**** Which GPU to display
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-GPU-Which_GPU_to_display-f40d3aac
|
||
:END:
|
||
This allows the user to choose which GPU appears in the output of the function
|
||
~gpu~.
|
||
- Default value :: ~"all"~
|
||
- Values ::
|
||
- ~"all"~
|
||
- ~"dedicated"~
|
||
- ~"integrated"~
|
||
- Flag :: ~--gpu_type~
|
||
- Supports :: Linux
|
||
- Examples ::
|
||
- all ::
|
||
#+BEGIN_SRC text
|
||
GPU1: AMD HD 7950
|
||
GPU2: Intel Integrated Graphics
|
||
#+END_SRC
|
||
- dedicated :: ~GPU1: AMD HD 7950~
|
||
- integrated :: ~GPU1: Intel Integrated Graphics~
|
||
#+begin_src sh
|
||
gpu_type="all"
|
||
#+end_src
|
||
|
||
*** Resolution
|
||
:PROPERTIES:
|
||
:CUSTOM_ID: Information_settings-Hardware-Resolution-b768f865
|
||
:END:
|
||
This will try to list all the connected screens and display their resolution
|
||
individually. It is possible to display the refresh rate or to hide it.
|
||
- Default value :: ~"off"~
|
||
- Values ::
|
||
- ~"on"~
|
||
- ~"off"~
|
||
- Flag :: ~--refresh_rate~
|
||
- Supports :: Does not work on Windows
|
||
- Examples ::
|
||
- on :: ~1920x1080 @ 60Hz~
|
||
- off :: ~1920x1080~
|
||
#+begin_src sh
|
||
refresh_rate="off"
|
||
#+end_src
|