Lucien Cartier-Tilet
7177981ec5
My neofetch config will now be written in pure orgmode with neofetch.org. The previous config.conf file for Neofetch is no longer needed in this repo.
530 lines
16 KiB
Org Mode
530 lines
16 KiB
Org Mode
#+title: Neofetch configuration (WIP)
|
||
#+setupfile: headers
|
||
#+OPTIONS: auto-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 :noweb yes :padline no :mkdir yes :shebang "#!/usr/bin/env sh"
|
||
|
||
* 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 |
|
||
| OS | 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)
|
||
(format "info %s%s"
|
||
(if (not (string= (car x) ""))
|
||
(format "\"%s\" " (car x))
|
||
"")
|
||
(cadr x)))
|
||
table
|
||
"\n")
|
||
#+END_SRC
|
||
|
||
#+RESULTS[1e66bf48472ad24006f0cb9dc9c86078764ba84e]: info-elements-gen
|
||
#+begin_example
|
||
info line_break
|
||
info title
|
||
info line_break
|
||
info cols
|
||
info line_break
|
||
info "OS" 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
|
||
info "Disks" disks
|
||
#+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.
|
||
|
||
**** 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
|
||
#+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 this 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 to show sorter CPU speed with less 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
|