[Org files] Formatted org files to look better with new org config

This commit is contained in:
Lucien Cartier-Tilet 2020-11-13 15:18:43 +01:00
parent e3880c48b1
commit 3a1015b9e7
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
14 changed files with 5326 additions and 6531 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1794,7 +1794,6 @@ One of the amazing features of org-mode is its literary programming capacities b
| sass | | sass |
| scheme | | scheme |
| shell | | shell |
| swift |
#+NAME: org-babel-languages-gen #+NAME: org-babel-languages-gen
#+BEGIN_SRC emacs-lisp :exports none :tangle no :var languages=org-babel-languages-table[,0] :cache yes :results replace #+BEGIN_SRC emacs-lisp :exports none :tangle no :var languages=org-babel-languages-table[,0] :cache yes :results replace
@ -1803,7 +1802,7 @@ One of the amazing features of org-mode is its literary programming capacities b
"\n") "\n")
#+END_SRC #+END_SRC
#+RESULTS[d8ef67cfac36191c43e0f20b9c0a024cb1e9413e]: org-babel-languages-gen #+RESULTS[cf8b81f0da6306f8131e34be6d3742248fdb057b]: org-babel-languages-gen
#+begin_example #+begin_example
(C . t) (C . t)
(dot . t) (dot . t)
@ -1815,7 +1814,6 @@ One of the amazing features of org-mode is its literary programming capacities b
(sass . t) (sass . t)
(scheme . t) (scheme . t)
(shell . t) (shell . t)
(swift . t)
#+end_example #+end_example
The corresponding code is as follows: The corresponding code is as follows:
@ -2604,7 +2602,6 @@ I also want to always be in ~visual-line-mode~ so Emacs soft-wraps lines that ar
I also want for some non-programming modes to enable a hard-limit in terms of how many characters can fit on one line. The modes that benefit are ~message-mode~, ~org-mode~, ~text-mode~ and ~markdown-mode~. I also want for some non-programming modes to enable a hard-limit in terms of how many characters can fit on one line. The modes that benefit are ~message-mode~, ~org-mode~, ~text-mode~ and ~markdown-mode~.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(mapc (lambda (x) (mapc (lambda (x)
(add-hook x 'auto-fill-mode)
(add-hook x 'visual-line-mode)) (add-hook x 'visual-line-mode))
'(message-mode-hook '(message-mode-hook
text-mode-hook text-mode-hook
@ -3005,16 +3002,15 @@ I want to see by default how much battery my computer has, so lets enable it:
:END: :END:
As I will always say, orgmode is an amazing piece of software that deserves particular care and love. That is why I want to give it a unique look and feel compared to the rest of my Emacs configuration, in order to make it feel much more comfortable. As I will always say, orgmode is an amazing piece of software that deserves particular care and love. That is why I want to give it a unique look and feel compared to the rest of my Emacs configuration, in order to make it feel much more comfortable.
In order to make org-mode even sexier, lets enable ~variable-pitch-mode~ for org-mode so we can get some proportional font: In order to make org-mode even sexier, lets enable ~variable-pitch-mode~ for org-mode so we can get some proportional font. Ill also remove ~auto-fill-mode~ which seems to stick to Orgmode like hell and I dont know why.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(add-hook 'org-mode-hook 'variable-pitch-mode) (add-hook 'org-mode-hook 'variable-pitch-mode)
(add-hook 'org-mode-hook 'visual-line-mode) (add-hook 'org-mode-hook 'visual-line-mode)
(message "coucou") (remove-hook 'org-mode-hook 'auto-fill-mode)
#+END_SRC #+END_SRC
Fonts will play an important part in this, but so will colors and font size. The following code is largely based on the one found [[https://zzamboni.org/post/beautifying-org-mode-in-emacs/][on this blog post]]. Fonts will play an important part in this, but so will colors and font size. The following code is largely based on the one found [[https://zzamboni.org/post/beautifying-org-mode-in-emacs/][on this blog post]].
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(message "Setting up some beautiful org-mode")
(let* ((font `(:font "Charis SIL")) (let* ((font `(:font "Charis SIL"))
(head `(:inherit default :weight bold)) (head `(:inherit default :weight bold))
(fixed `(:inherit fixed-pitch :height 0.8))) (fixed `(:inherit fixed-pitch :height 0.8)))
@ -3044,7 +3040,6 @@ Fonts will play an important part in this, but so will colors and font size. The
`(org-link ((t (:foreground ,phundrak/nord8 :underline t)))) `(org-link ((t (:foreground ,phundrak/nord8 :underline t))))
'(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch) :height 0.8)))) '(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch) :height 0.8))))
'(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch))))))) '(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch)))))))
(message "Org-mode is now beautiful")
#+END_SRC #+END_SRC
Finally, lets limit the width of images inlined in org buffers to 400px: Finally, lets limit the width of images inlined in org buffers to 400px:

View File

@ -11,40 +11,32 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Presentation-340195eb :CUSTOM_ID: Presentation-340195eb
:END: :END:
The file present in =~/.config/fish/config.fish= is the configuration file for The file present in =~/.config/fish/config.fish= is the configuration file for the [[https://fishshell.com/][fish shell]]. It contains custom functions, environment variables and abbreviations.
the [[https://fishshell.com/][fish shell]]. It contains custom functions, environment variables and
abbreviations.
Just in case, we might need sometimes to declare the fish function Just in case, we might need sometimes to declare the fish function =fish_title= as =true=, so lets do so.
=fish_title= as =true=, so lets do so. #+BEGIN_SRC fish
#+BEGIN_SRC fish
function fish_title function fish_title
true true
end end
#+END_SRC #+END_SRC
* Fish from within Emacs * Fish from within Emacs
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Fish_from_within_Emacs-360c0a74 :CUSTOM_ID: Fish_from_within_Emacs-360c0a74
:END: :END:
I sometimes call fish from within emacs, with =M-x ansi-term=. In this case, I sometimes call fish from within emacs, with =M-x ansi-term=. In this case, the variable =TERM= needs to have the value =eterm-color=.
the variable =TERM= needs to have the value =eterm-color=. #+BEGIN_SRC fish
#+BEGIN_SRC fish
if test -n "$EMACS" if test -n "$EMACS"
set -x TERM eterm-color set -x TERM eterm-color
end end
#+END_SRC #+END_SRC
* Tramp remote access * Tramp remote access
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Tramp_remote_access-72aedec2 :CUSTOM_ID: Tramp_remote_access-72aedec2
:END: :END:
When accessing from a remote machine our computer from Emacs, tramp needs a When accessing from a remote machine our computer from Emacs, tramp needs a precise shell appearance: a simple =$= followed by a space after which to put the commands it needs to execute, and nothing else. Due to this, lets deactivate and redefine some of the functions defining the appearance of fish.
precise shell appearance: a simple =$= followed by a space after which to put #+BEGIN_SRC fish
the commands it needs to execute, and nothing else. Due to this, lets
deactivate and redefine some of the functions defining the appearance of
fish.
#+BEGIN_SRC fish
if test "$TERM" = "dumb" if test "$TERM" = "dumb"
function fish_prompt function fish_prompt
echo "\$ " echo "\$ "
@ -53,17 +45,14 @@
function fish_greeting; end function fish_greeting; end
function fish_title; end function fish_title; end
end end
#+END_SRC #+END_SRC
* Regular fish shell appearance * Regular fish shell appearance
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Regular_fish_shell_appearance-c3e532e1 :CUSTOM_ID: Regular_fish_shell_appearance-c3e532e1
:END: :END:
Now, there is only one function I modify when it comes to the appearance of Now, there is only one function I modify when it comes to the appearance of fish when Im the one using it: the ~fish_greeting~ function. I use it to give me an overview of my computers status, including its hostname, uptime, disks usage, ram usage, swap usage, and networking.
fish when Im the one using it: the ~fish_greeting~ function. I use it to give #+BEGIN_SRC fish
me an overview of my computers status, including its hostname, uptime, disks
usage, ram usage, swap usage, and networking.
#+BEGIN_SRC fish
set RED '\033[0;31m' set RED '\033[0;31m'
set GREEN '\033[0;32m' set GREEN '\033[0;32m'
set NC '\033[0m' set NC '\033[0m'
@ -129,536 +118,450 @@
printf "Swap....: %s %5dM / %5dM (%2d%%)\n" (display_slider $swap_used $swap_total) $swap_used $swap_total $swap_p printf "Swap....: %s %5dM / %5dM (%2d%%)\n" (display_slider $swap_used $swap_total) $swap_used $swap_total $swap_p
echo $ruler echo $ruler
end end
#+END_SRC #+END_SRC
* Global variables * Global variables
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Global_variables-1c84df8b :CUSTOM_ID: Global_variables-1c84df8b
:END: :END:
In order to keep some other code clean, I set the ~$BROWSER~ variable so I dont have to call my web browser directly but rather with this variable.
In order to keep some other code clean, I set the ~$BROWSER~ variable so I #+BEGIN_SRC fish
dont have to call my web browser directly but rather with this variable.
#+BEGIN_SRC fish
set -gx BROWSER firefox set -gx BROWSER firefox
#+END_SRC #+END_SRC
Sometimes, software will rely on =SUDO_ASKPASS= to get a GUI from which it Sometimes, software will rely on =SUDO_ASKPASS= to get a GUI from which it can get the sudo password. So, lets declare it.
can get the sudo password. So, lets declare it. #+BEGIN_SRC fish
#+BEGIN_SRC fish
set -gx SUDO_ASKPASS ~/.local/bin/askpass set -gx SUDO_ASKPASS ~/.local/bin/askpass
#+END_SRC #+END_SRC
** Development ** Development
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Global_variables-Development-76b3ff13 :CUSTOM_ID: Global_variables-Development-76b3ff13
:END: :END:
Now, lets declare our editor of choice, EmacsClient; not Emacs itself since Now, lets declare our editor of choice, EmacsClient; not Emacs itself since it will most often be just quick edits, nothing too heavy, if it is called from the ~EDITOR~ variable (from Git, for example), or from the ~VISUAL~ variable.
it will most often be just quick edits, nothing too heavy, if it is called #+BEGIN_SRC fish
from the ~EDITOR~ variable (from Git, for example), or from the ~VISUAL~
variable.
#+BEGIN_SRC fish
set -gx EDITOR emacsclient -c set -gx EDITOR emacsclient -c
set -gx VISUAL emacsclient -c set -gx VISUAL emacsclient -c
#+END_SRC #+END_SRC
We also need to set the path to the Dart SDK. We also need to set the path to the Dart SDK.
#+BEGIN_SRC fish #+BEGIN_SRC fish
set -gx DART_SDK /opt/dart-sdk/bin set -gx DART_SDK /opt/dart-sdk/bin
#+END_SRC #+END_SRC
And we also need to specify where the Android SDK it located. And we also need to specify where the Android SDK it located.
#+BEGIN_SRC fish #+BEGIN_SRC fish
set -gx ANDROID_HOME $HOME/Android/Sdk set -gx ANDROID_HOME $HOME/Android/Sdk
#+END_SRC #+END_SRC
Still related to Dart and Flutter development, Still related to Dart and Flutter development,
#+BEGIN_SRC fish #+BEGIN_SRC fish
set -gx CHROME_EXECUTABLE /usr/bin/chromium set -gx CHROME_EXECUTABLE /usr/bin/chromium
#+END_SRC #+END_SRC
Next, we have two variables from Deno, the Node.js destroyer. Its base Next, we have two variables from Deno, the Node.js destroyer. Its base directory will be set in my XDG config directory, and its binaries will be located in my local binaries directory (see below).
directory will be set in my XDG config directory, and its binaries will be #+BEGIN_SRC fish
located in my local binaries directory (see below).
#+BEGIN_SRC fish
set -gx DENO_DIR $HOME/.config/deno set -gx DENO_DIR $HOME/.config/deno
set -gx DENO_INSTALL_ROOT $HOME/.local/bin/deno set -gx DENO_INSTALL_ROOT $HOME/.local/bin/deno
#+END_SRC #+END_SRC
Finally, some development packages require the =PKG_CONFIG_PATH= to be set, Finally, some development packages require the =PKG_CONFIG_PATH= to be set, so lets do so.
so lets do so. #+BEGIN_SRC fish
#+BEGIN_SRC fish
set -gx PKG_CONFIG_PATH /usr/local/lib/pkgconfig/ $PKG_CONFIG_PATH set -gx PKG_CONFIG_PATH /usr/local/lib/pkgconfig/ $PKG_CONFIG_PATH
#+END_SRC #+END_SRC
** $PATH ** ~$PATH~
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Global_variables-$PATH-e1320303 :CUSTOM_ID: Global_variables-$PATH-e1320303
:END: :END:
Some global variables might sometimes be needed and need to be modified. This Some global variables might sometimes be needed and need to be modified. This is for example the case with my ~PATH~ variable in which I add Rusts Cargos binaries, Gos binaries and my own executables. And of course, dont forget to add the already existing ~PATH~.
is for example the case with my ~PATH~ variable in which I add Rusts Cargos
binaries, Gos binaries and my own executables. And of course, dont forget
to add the already existing ~PATH~.
#+NAME: extra-paths #+NAME: extra-paths
| additional path | what it leads to | | additional path | what it leads to |
|---------------------------+--------------------------------------| |---------------------------+--------------------------------------|
| $HOME/.pub-cache/bin | Dart binaries and executables | | $HOME/.pub-cache/bin | Dart binaries and executables |
| $HOME/.local/bin | Custom executables, see [[file:bin.org]] | | $HOME/.local/bin | Custom executables, see [[file:bin.org]] |
| $HOME/go/bin | Go binaries and executables | | $HOME/go/bin | Go binaries and executables |
| $HOME/.cargo/bin | Rust binaries and executables | | $HOME/.cargo/bin | Rust binaries and executables |
| $HOME/.gem/ruby/2.6.0/bin | Ruby binaries and executables | | $HOME/.gem/ruby/2.6.0/bin | Ruby binaries and executables |
| $HOME/.cabal/bin | Haskel binaries | | $HOME/.cabal/bin | Haskel binaries |
#+NAME: generate-extra-paths #+NAME: generate-extra-paths
#+BEGIN_SRC emacs-lisp :var paths=extra-paths[,0] :exports none :cache yes #+BEGIN_SRC emacs-lisp :var paths=extra-paths[,0] :exports none :cache yes
(mapconcat (lambda (x) x) (mapconcat (lambda (x) x)
paths " ") paths " ")
#+END_SRC #+END_SRC
#+RESULTS[f1fff053cb9e2239f35571249763683a4a62e643]: generate-extra-paths #+RESULTS[f1fff053cb9e2239f35571249763683a4a62e643]: generate-extra-paths
: $HOME/.pub-cache/bin $HOME/.local/bin $HOME/go/bin $HOME/.cargo/bin $HOME/.gem/ruby/2.6.0/bin $HOME/.cabal/bin : $HOME/.pub-cache/bin $HOME/.local/bin $HOME/go/bin $HOME/.cargo/bin $HOME/.gem/ruby/2.6.0/bin $HOME/.cabal/bin
The code below ensures the ~PATH~ is updated only at login, and every The code below ensures the ~PATH~ is updated only at login, and every location is addded only once.
location is addded only once. #+BEGIN_SRC fish :noweb yes
#+BEGIN_SRC fish :noweb yes
for p in <<generate-extra-paths()>> for p in <<generate-extra-paths()>>
if status is-login if status is-login
contains $p $PATH || set PATH $p $PATH contains $p $PATH || set PATH $p $PATH
end end
end end
#+END_SRC #+END_SRC
* Abbreviations * Abbreviations
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-97537716 :CUSTOM_ID: Abbreviations-97537716
:END: :END:
#+NAME: generate-abbr #+NAME: generate-abbr
#+BEGIN_SRC emacs-lisp :var table=[] :exports none :tangle no #+BEGIN_SRC emacs-lisp :var table=[] :exports none :tangle no
(replace-regexp-in-string "\\\\vert[{}]*" (replace-regexp-in-string "\\\\vert[{}]*"
"|" "|"
(mapconcat (lambda (x) (format "abbr %s '%s'" (car x) (cadr x))) (mapconcat (lambda (x) (format "abbr %s '%s'" (car x) (cadr x)))
table table
"\n") "\n")
t t) t t)
#+END_SRC #+END_SRC
** System monitoring ** System monitoring
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-System_monitoring-bd909755 :CUSTOM_ID: Abbreviations-System_monitoring-bd909755
:END: :END:
Here I have some abbreviations which are quite useful when performing some Here I have some abbreviations which are quite useful when performing some system monitoring. With =df=, we can get an overview of our filesystem usage, while with =diskspace= we get some more precise information. =meminfo= is a call to =free= with sane defaults, and similar to =meminfo=, we also have =gpumeminfo= so we can get a quick look at the memory-related logs of our X session. I also declared =cpuinfo= an alias of =lscpu= in order to keep consistent with =meminfo=. =pscpu= gives us information on what the CPU is running right now, and =pscpu10= limits that to the top 10 threads. Similarly, =psmem= gives us information on the memory usage of the current threads, and =psmem10= only the ten most important threads in terms of memory usage.
system monitoring. With =df=, we can get an overview of our filesystem usage, #+NAME: mgmt-abbr
while with =diskspace= we get some more precise information. =meminfo= is a | abbreviation | command |
call to =free= with sane defaults, and similar to =meminfo=, we also have |--------------+---------------------------------------------------|
=gpumeminfo= so we can get a quick look at the memory-related logs of our X | df | df -H |
session. I also declared =cpuinfo= an alias of =lscpu= in order to keep | diskspace | sudo df -h \vert grep -E "sd\vert{}lv\vert{}Size" |
consistent with =meminfo=. =pscpu= gives us information on what the CPU is | du | du -ch |
running right now, and =pscpu10= limits that to the top 10 threads. | meminfo | free -m -l -t |
Similarly, =psmem= gives us information on the memory usage of the current | gpumeminfo | grep -i --color memory /var/log/Xorg.0.log |
threads, and =psmem10= only the ten most important threads in terms of memory | cpuinfo | lscpu |
usage. | pscpu | ps auxf \vert sort -nr -k 3 |
#+NAME: mgmt-abbr | pscpu10 | ps auxf \vert sort -nr -k 3 \vert head -10 |
| abbreviation | command | | psmem | ps auxf \vert sort -nr -k 4 |
|--------------+---------------------------------------------------| | psmem10 | ps auxf \vert sort -nr -k 4 \vert head -10 |
| df | df -H |
| diskspace | sudo df -h \vert grep -E "sd\vert{}lv\vert{}Size" |
| du | du -ch |
| meminfo | free -m -l -t |
| gpumeminfo | grep -i --color memory /var/log/Xorg.0.log |
| cpuinfo | lscpu |
| pscpu | ps auxf \vert sort -nr -k 3 |
| pscpu10 | ps auxf \vert sort -nr -k 3 \vert head -10 |
| psmem | ps auxf \vert sort -nr -k 4 |
| psmem10 | ps auxf \vert sort -nr -k 4 \vert head -10 |
#+begin_SRC fish #+begin_SRC fish
<<generate-abbr(table=mgmt-abbr)>> <<generate-abbr(table=mgmt-abbr)>>
#+END_SRC #+END_SRC
** System management (packages and services) ** System management (packages and services)
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-7249fbb7 :CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-7249fbb7
:END: :END:
I added some of these abbreviations due to how often I have to write the I added some of these abbreviations due to how often I have to write the whole thing.
whole thing.
*** Package management *** Package management
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-Package_management-efbcdf0f :CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-Package_management-efbcdf0f
:END: :END:
The first command is =remove= which removes a package from my system, as The first command is =remove= which removes a package from my system, as well as its dependencies no longer needed. =p=. =pacman='s or =yay='s. This is why I simply type =purge=. And if I want to simply seach among the =pacman= repos, I can type =search=. Otherwise, if I want to include AUR results, Ill use =yay=.
well as its dependencies no longer needed. =p=. =pacman='s or =yay='s. This
is why I simply type =purge=. And if I want to simply seach among the
=pacman= repos, I can type =search=. Otherwise, if I want to include AUR
results, Ill use =yay=.
#+NAME: pm-abbr #+NAME: pm-abbr
| abbreviation | command | | abbreviation | command |
|--------------+--------------------| |--------------+--------------------|
| remove | sudo pacman -Rscnd | | remove | sudo pacman -Rscnd |
| p | sudo pacman | | p | sudo pacman |
| purge | yay -Sc | | purge | yay -Sc |
| search | yay -Ss | | search | yay -Ss |
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=pm-abbr)>> <<generate-abbr(table=pm-abbr)>>
#+END_SRC #+END_SRC
*** Service management *** Service management
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-Service_management-8c5ae482 :CUSTOM_ID: Abbreviations-System_management_(packages_and_services)-Service_management-8c5ae482
:END: :END:
I dont have the muscle memory of =systemctl=. So instead, I simply type I dont have the muscle memory of =systemctl=. So instead, I simply type =c= when I want to do something user service related. And if I want to manipulate system services, I can instead type a simple capital =S=.
=c= when I want to do something user service related. #+NAME: service-abbr
And if I want to manipulate system services, I can instead type a simple | abbreviation | command |
capital =S=. |--------------+-----------|
#+NAME: service-abbr | s | systemctl |
| abbreviation | command |
|--------------+-----------|
| s | systemctl |
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=service-abbr)>> <<generate-abbr(table=service-abbr)>>
#+END_SRC #+END_SRC
** Development ** Development
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-d6050ca4 :CUSTOM_ID: Abbreviations-Development-d6050ca4
:END: :END:
A good amount of these commands are development related, especially when it A good amount of these commands are development related, especially when it comes to compilation or Docker.
comes to compilation or Docker.
*** CMake *** CMake
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-CMake-f2951675 :CUSTOM_ID: Abbreviations-Development-CMake-f2951675
:END: :END:
I have the following abbreviations so I can quickly run CMake and create a I have the following abbreviations so I can quickly run CMake and create a configuration for debug or release profiles.
configuration for debug or release profiles. #+NAME: abbr-cmake
#+NAME: abbr-cmake | abbreviation | command |
| abbreviation | command | |--------------+----------------------------------|
|--------------+----------------------------------| | cdebug | cmake -DCMAKE_BUILD_TYPE=Debug |
| cdebug | cmake -DCMAKE_BUILD_TYPE=Debug | | crelease | cmake -DCMAKE_BUILD_TYPE=Release |
| crelease | cmake -DCMAKE_BUILD_TYPE=Release |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=abbr-cmake)>> <<generate-abbr(table=abbr-cmake)>>
#+END_SRC #+END_SRC
*** Docker *** Docker
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-Docker-2d0a1288 :CUSTOM_ID: Abbreviations-Development-Docker-2d0a1288
:END: :END:
And of course, when it comes to Docker Compose, I don't have time to write And of course, when it comes to Docker Compose, I don't have time to write the full command, so I use these instead.
the full command, so I use these instead. #+NAME: abbr-docker
#+NAME: abbr-docker | abbreviation | command |
| abbreviation | command | |--------------+------------------------------|
|--------------+------------------------------| | dc | docker-compose |
| dc | docker-compose | | dcb | docker-compose build |
| dcb | docker-compose build | | dcd | docker-compose down |
| dcd | docker-compose down | | dcl | docker-compose logs |
| dcl | docker-compose logs | | dcp | docker-compose pull |
| dcp | docker-compose pull | | dcr | docker-compose run --rm |
| dcr | docker-compose run --rm | | dcu | docker-compose up |
| dcu | docker-compose up | | dcub | docker-compose up --build |
| dcub | docker-compose up --build | | dcud | docker-compose up -d |
| dcud | docker-compose up -d | | dcudb | docker-compose up -d --build |
| dcudb | docker-compose up -d --build |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=abbr-docker)>> <<generate-abbr(table=abbr-docker)>>
#+END_SRC #+END_SRC
*** Text editors *** Text editors
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-Text_editors-5a23df47 :CUSTOM_ID: Abbreviations-Development-Text_editors-5a23df47
:END: :END:
I greatly prefer to use Emacsclient as my main text editor; Emacs has I greatly prefer to use Emacsclient as my main text editor; Emacs has basically all I need. So, it's only normal I have an abbreviation to launch a new instance of it. However, in a graphical environment, this will launch a new graphical window of Emacs. To launch a terminal instance, I'll use ~enw~ (~nw~ stands for the option “nowindow” ~-nw~ of Emacs). I also wish to completely stop using other text editors, such as ~vi~, ~vim~, ~nano~ and ~ed~, so let's all add their command as an abbreviation for Emacs.
basically all I need. So, it's only normal I have an abbreviation to launch
a new instance of it. However, in a graphical environment, this will launch
a new graphical window of Emacs. To launch a terminal instance, I'll use
~enw~ (~nw~ stands for the option “nowindow” ~-nw~ of Emacs). I also wish to
completely stop using other text editors, such as ~vi~, ~vim~, ~nano~ and
~ed~, so let's all add their command as an abbreviation for Emacs.
#+NAME: abbr-text-ed #+NAME: abbr-text-ed
| abbreviation | command | | abbreviation | command |
|--------------+--------------------| |--------------+--------------------|
| e | emacsclient -c | | e | emacsclient -c |
| enw | emacsclient -c -nw | | enw | emacsclient -c -nw |
| vi | emacsclient -c | | vi | emacsclient -c |
| vim | emacsclient -c | | vim | emacsclient -c |
| nano | emacsclient -c | | nano | emacsclient -c |
| ed | emacsclient -c | | ed | emacsclient -c |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish :noweb yes #+BEGIN_SRC fish :noweb yes
<<generate-abbr(table=abbr-text-ed)>> <<generate-abbr(table=abbr-text-ed)>>
#+END_SRC #+END_SRC
*** Compilation *** Compilation
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-Compilation-dd066050 :CUSTOM_ID: Abbreviations-Development-Compilation-dd066050
:END: :END:
By default, I set ~clang~, ~clang++~, ~gcc~ and ~g++~ to the latest By default, I set ~clang~, ~clang++~, ~gcc~ and ~g++~ to the latest standard and with the ~-Wall~ flag activated.
standard and with the ~-Wall~ flag activated. #+NAME: abbr-comp
#+NAME: abbr-comp | abbreviation | command |
| abbreviation | command | |--------------+----------------------|
|--------------+----------------------| | clang | clang -Wall |
| clang | clang -Wall | | clang++ | clang++ -Wall |
| clang++ | clang++ -Wall | | g++ | g++ -Wall -std=c++20 |
| g++ | g++ -Wall -std=c++20 | | gcc | gcc -Wall -std=c18 |
| gcc | gcc -Wall -std=c18 |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=abbr-comp)>> <<generate-abbr(table=abbr-comp)>>
#+END_SRC #+END_SRC
*** Git *** Git
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Development-Git-5e5055c1 :CUSTOM_ID: Abbreviations-Development-Git-5e5055c1
:END: :END:
And let's face it: we all at one point just wanted to commit our code And let's face it: we all at one point just wanted to commit our code without thinking about the message, to just get over with it. Don't worry, I got you covered.
without thinking about the message, to just get over with it. Don't worry, #+NAME: abbr-git
I got you covered. | abbreviation | command |
#+NAME: abbr-git |--------------+-----------------------------------------------------|
| abbreviation | command | | randcommit | git commit -m (curl -s whatthecommit.com/index.txt) |
|--------------+-----------------------------------------------------|
| randcommit | git commit -m (curl -s whatthecommit.com/index.txt) |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=abbr-git)>> <<generate-abbr(table=abbr-git)>>
#+END_SRC #+END_SRC
** LaTeX ** LaTeX
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-LaTeX-76865eb9 :CUSTOM_ID: Abbreviations-LaTeX-76865eb9
:END: :END:
Yes, although I use org-mode, I still have some use for LaTeX, especially Yes, although I use org-mode, I still have some use for LaTeX, especially when it comes to PDF exports of my org files. Hence why I use the LaTeX package manager. It is recommended to use ~tllocalmgr~ instead of ~tlmgr~, but I can never remember the command, and the latter is faster to type, so time for an abbreviation. Same goes for ~texhash~ which must be run as sudo.
when it comes to PDF exports of my org files. Hence why I use the LaTeX #+NAME: latex-abbr
package manager. It is recommended to use ~tllocalmgr~ instead of ~tlmgr~, | abbreviation | command |
but I can never remember the command, and the latter is faster to type, so |--------------+--------------|
time for an abbreviation. Same goes for ~texhash~ which must be run as sudo. | tlmgr | tllocalmgr |
#+NAME: latex-abbr | texhash | sudo texhash |
| abbreviation | command |
|--------------+--------------|
| tlmgr | tllocalmgr |
| texhash | sudo texhash |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=latex-abbr)>> <<generate-abbr(table=latex-abbr)>>
#+END_SRC #+END_SRC
** Some security measures ** Some security measures
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Some_security_measures-489cb521 :CUSTOM_ID: Abbreviations-Some_security_measures-489cb521
:END: :END:
Some commands can be quite dangerous when not used properly, which is why I Some commands can be quite dangerous when not used properly, which is why I added default flags and options so I can get warnings before things get ugly. The =-i= and =-I= add prompts in case we might not want to do what we asked the shell to do. Notice =lns= which creates symlinks, =rmd= which removes directories, =rmf= which forces deletion, and =rmdf= which forces the delition of a directory. Notice also the =--preserve-root= which will prevent me from accidentally removing the root folder. I added the same option to =chgrp=, =chmod=, and =chown=.
added default flags and options so I can get warnings before things get ugly. #+NAME: sec-abbr
The =-i= and =-I= add prompts in case we might not want to do what we asked | abbreviation | command |
the shell to do. Notice =lns= which creates symlinks, =rmd= which removes |--------------+--------------------------|
directories, =rmf= which forces deletion, and =rmdf= which forces the | cp | cp -i |
delition of a directory. Notice also the =--preserve-root= which will prevent | ln | ln -i |
me from accidentally removing the root folder. I added the same option to | lns | ln -si |
=chgrp=, =chmod=, and =chown=. | mv | mv -i |
#+NAME: sec-abbr | rm | rm -Iv |
| abbreviation | command | | rmd | rm --preserve-root -Irv |
|--------------+--------------------------| | rmdf | rm --preserve-root -Irfv |
| cp | cp -i | | rmf | rm --preserve-root -Ifv |
| ln | ln -i | | chgrp | chgrp --preserve-root -v |
| lns | ln -si | | chmod | chmod --preserve-root -v |
| mv | mv -i | | chown | chown --preserve-root -v |
| rm | rm -Iv |
| rmd | rm --preserve-root -Irv |
| rmdf | rm --preserve-root -Irfv |
| rmf | rm --preserve-root -Ifv |
| chgrp | chgrp --preserve-root -v |
| chmod | chmod --preserve-root -v |
| chown | chown --preserve-root -v |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=sec-abbr)>> <<generate-abbr(table=sec-abbr)>>
#+END_SRC #+END_SRC
** Typos ** Typos
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Typos-370bbb27 :CUSTOM_ID: Abbreviations-Typos-370bbb27
:END: :END:
Let's admit it, we all make typos from time to time in the shell, and some Let's admit it, we all make typos from time to time in the shell, and some are recurrent enough we make abbreviations or aliases of the correct command. Well, I have some of my abbreviations which were make exactly because of this. Sometimes for some reasons, my brain makes me write ~clean~ instead of ~clear~. So, let's just replace the former by the latter. I'm also very bad at typing ~exit~. And sometimes I suck at typing ~htop~. ~q~ isn't a typo per se, instead just a habit I have.
are recurrent enough we make abbreviations or aliases of the correct command. #+NAME: typo-abbr
Well, I have some of my abbreviations which were make exactly because of | abbreviation | command |
this. Sometimes for some reasons, my brain makes me write ~clean~ instead of |--------------+---------|
~clear~. So, let's just replace the former by the latter. I'm also very bad | clean | clear |
at typing ~exit~. And sometimes I suck at typing ~htop~. ~q~ isn't a typo per | exi | exit |
se, instead just a habit I have. | exti | exit |
#+NAME: typo-abbr | q | exit |
| abbreviation | command | | hotp | htop |
|--------------+---------|
| clean | clear |
| exi | exit |
| exti | exit |
| q | exit |
| hotp | htop |
Here is the corresponding fish configuration: Here is the corresponding fish configuration:
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=typo-abbr)>> <<generate-abbr(table=typo-abbr)>>
#+END_SRC #+END_SRC
** Misc ** Misc
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-c2631eb6 :CUSTOM_ID: Abbreviations-Misc-c2631eb6
:END: :END:
Finally, some miscellaneous abbreviations that don't really fit into any of Finally, some miscellaneous abbreviations that don't really fit into any of the above categories.
the above categories.
*** Media *** Media
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-Media-e4b85d56 :CUSTOM_ID: Abbreviations-Misc-Media-e4b85d56
:END: :END:
Here you will find various commands related to media in general. the first Here you will find various commands related to media in general. the first one is a command to play some chillhop from the [[https://www.youtube.com/user/Chillhopdotcom][Chillhop YouTube channel]]'s livestream.
one is a command to play some chillhop from the [[https://www.youtube.com/user/Chillhopdotcom][Chillhop YouTube channel]]'s #+BEGIN_SRC fish
livestream.
#+BEGIN_SRC fish
abbr chill 'mpv --force-window=no --no-video "https://www.youtube.com/user/Chillhopdotcom/live" &' abbr chill 'mpv --force-window=no --no-video "https://www.youtube.com/user/Chillhopdotcom/live" &'
#+END_SRC #+END_SRC
When it comes to mpv, I do not want to force it to open a graphical window When it comes to mpv, I do not want to force it to open a graphical window if for example I want to listen to an audio file. I also do not want any border on that window. So, I declared this abbreviation.
if for example I want to listen to an audio file. I also do not want any #+BEGIN_SRC fish
border on that window. So, I declared this abbreviation.
#+BEGIN_SRC fish
abbr mpv 'mpv --no-border --force-window=no' abbr mpv 'mpv --no-border --force-window=no'
#+END_SRC #+END_SRC
When I want to download a song from YouTube, I'll just use the command ~flac When I want to download a song from YouTube, I'll just use the command ~flac videoIdentifier~ to get it through ~youtube-dl~.
videoIdentifier~ to get it through ~youtube-dl~. #+BEGIN_SRC fish
#+BEGIN_SRC fish
abbr flac 'youtube-dl -x --audio-format flac --audio-quality 0 -o "~/Music/%(uploader)s/%(title)s.%(ext)s"' abbr flac 'youtube-dl -x --audio-format flac --audio-quality 0 -o "~/Music/%(uploader)s/%(title)s.%(ext)s"'
#+END_SRC #+END_SRC
I download a LOT of videos from YouTube, generally educative videos that I I download a LOT of videos from YouTube, generally educative videos that I do not want to lose to YouTube one day who will decide that such channel is unworthy of their platform, or if the original author decides to delete their videos or whatever. So, I use the abbreviation ~ytdl~ to download either one video, or a whole YouTube channel.
do not want to lose to YouTube one day who will decide that such channel is #+BEGIN_SRC fish
unworthy of their platform, or if the original author decides to delete
their videos or whatever. So, I use the abbreviation ~ytdl~ to download
either one video, or a whole YouTube channel.
#+BEGIN_SRC fish
abbr ytdl 'youtube-dl -f best -ciw -o "~/Videos/YouTube/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s"' abbr ytdl 'youtube-dl -f best -ciw -o "~/Videos/YouTube/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s"'
#+END_SRC #+END_SRC
Some sane default options for ~sxiv~, a simple X image Viewer. This includes Some sane default options for ~sxiv~, a simple X image Viewer. This includes playing GIFs and not displaying the filename below. Sxiv will also open in fullscreen and will fit the displayed image to the frame. I also abbreviated ~feh~ to sxiv, old habits die hard.
playing GIFs and not displaying the filename below. Sxiv will also open in #+BEGIN_SRC fish
fullscreen and will fit the displayed image to the frame. I also abbreviated
~feh~ to sxiv, old habits die hard.
#+BEGIN_SRC fish
abbr sxiv 'sxiv -abfs f' abbr sxiv 'sxiv -abfs f'
abbr feh 'sxiv -abfs f' abbr feh 'sxiv -abfs f'
#+END_SRC #+END_SRC
Finally, let's declare the following abbreviation that will launch an mpv Finally, let's declare the following abbreviation that will launch an mpv instance displaying my webcam:
instance displaying my webcam: #+BEGIN_SRC fish
#+BEGIN_SRC fish
abbr webcam 'mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0' abbr webcam 'mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0'
#+END_SRC #+END_SRC
*** Sudo *** Sudo
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-Sudo-aef0214a :CUSTOM_ID: Abbreviations-Misc-Sudo-aef0214a
:END: :END:
First, I make it so that ~sudo~ comes with the ~-A~ switch in order to call First, I make it so that ~sudo~ comes with the ~-A~ switch in order to call my custom graphical script for getting my password (see [[file:bin.org::#Askpass-d0d7a8c0][askpass]]). I also made it so ~please~ is an equivalent to ~sudo -A~ as a joke.
my custom graphical script for getting my password (see [[file:bin.org::#Askpass-d0d7a8c0][askpass]]). I also #+BEGIN_SRC fish
made it so ~please~ is an equivalent to ~sudo -A~ as a joke.
#+BEGIN_SRC fish
abbr please 'sudo -A' abbr please 'sudo -A'
#+END_SRC #+END_SRC
*** History *** History
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-History-a2124b23 :CUSTOM_ID: Abbreviations-Misc-History-a2124b23
:END: :END:
I also find it more intuitive and faster to just write ~hist~ instead of I also find it more intuitive and faster to just write ~hist~ instead of ~history~, so let's declare that.
~history~, so let's declare that. #+BEGIN_SRC fish
#+BEGIN_SRC fish
abbr hist history abbr hist history
#+END_SRC #+END_SRC
*** Compression *** Compression
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-Compression-4fd4ffef :CUSTOM_ID: Abbreviations-Misc-Compression-4fd4ffef
:END: :END:
It seems it's just like many other people, but I cannot for the life of me It seems it's just like many other people, but I cannot for the life of me remember the syntax of ~tar~. So, I made the following abbreviations, and one day hopefully, after seeing the abbreviations' expansion over and over I'll remember the command like I did for the abbreviation of ~remove~ (see [[#Abbreviations-System_management_(packages_and_services)-Package_management-efbcdf0f][Package management]]).
remember the syntax of ~tar~. So, I made the following abbreviations, and #+NAME: tar-abbr
one day hopefully, after seeing the abbreviations' expansion over and over | abbreviation | command |
I'll remember the command like I did for the abbreviation of ~remove~ (see |--------------+-----------|
[[#Abbreviations-System_management_(packages_and_services)-Package_management-efbcdf0f][Package management]]). | compress | tar -czf |
#+NAME: tar-abbr | untar | tar -xvzf |
| abbreviation | command |
|--------------+-----------|
| compress | tar -czf |
| untar | tar -xvzf |
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=tar-abbr)>> <<generate-abbr(table=tar-abbr)>>
#+END_SRC #+END_SRC
*** exa *** exa
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-exa-e1b528b9 :CUSTOM_ID: Abbreviations-Misc-exa-e1b528b9
:END: :END:
#+NAME: exa-abbr #+NAME: exa-abbr
| abbreviation | command | | abbreviation | command |
|--------------+--------------------------------------------| |--------------+--------------------------------------------|
| exa | exa -halg@ --group-directories-first --git | | exa | exa -halg@ --group-directories-first --git |
| ls | exa -halg@ --group-directories-first --git | | ls | exa -halg@ --group-directories-first --git |
| lsl | exa -halg@ --group-directories-first --git | | lsl | exa -halg@ --group-directories-first --git |
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=exa-abbr)>> <<generate-abbr(table=exa-abbr)>>
#+END_SRC #+END_SRC
*** Network Management *** Network Management
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-Network_Management-0b7fc91d :CUSTOM_ID: Abbreviations-Misc-Network_Management-0b7fc91d
:END: :END:
First, we have just =nmcli= with sane default options, that is a pretty output First, we have just =nmcli= with sane default options, that is a pretty output with colors.
with colors. #+BEGIN_SRC fish
#+BEGIN_SRC fish
abbr nmcli 'nmcli -p -c auto' abbr nmcli 'nmcli -p -c auto'
#+END_SRC #+END_SRC
*** NordVPN *** NordVPN
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-NordVPN-09438638 :CUSTOM_ID: Abbreviations-Misc-NordVPN-09438638
:END: :END:
Next, we have some NordVPN-related shortcuts. The first one is a simple Next, we have some NordVPN-related shortcuts. The first one is a simple abbreviation to =nordvpn=. The second one is a shortcut to connect to a server, and to disconnect from the current server. I also have a couple of shortcuts to quickly connect to some preselected countries, mainly France, Germany, Japan and the US.
abbreviation to =nordvpn=. The second one is a shortcut to connect to a #+NAME: nordvpn-abbr
server, and to disconnect from the current server. I also have a couple of | abbreviation | command |
shortcuts to quickly connect to some preselected countries, mainly France, |--------------+-------------------------|
Germany, Japan and the US. | n | nordvpn |
#+NAME: nordvpn-abbr | nc | nordvpn c |
| abbreviation | command | | nd | nordvpn d |
|--------------+-------------------------| | ncf | nordvpn c France |
| n | nordvpn | | ncg | nordvpn c Germany |
| nc | nordvpn c | | ncj | nordvpn c Japan |
| nd | nordvpn d | | ncu | nordvpn c United_States |
| ncf | nordvpn c France |
| ncg | nordvpn c Germany |
| ncj | nordvpn c Japan |
| ncu | nordvpn c United_States |
#+BEGIN_SRC fish #+BEGIN_SRC fish
<<generate-abbr(table=nordvpn-abbr)>> <<generate-abbr(table=nordvpn-abbr)>>
#+END_SRC #+END_SRC
*** Wget *** Wget
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Abbreviations-Misc-Wget-27f4bebf :CUSTOM_ID: Abbreviations-Misc-Wget-27f4bebf
:END: :END:
By default, continue a download that was interupted. By default, continue a download that was interupted.
#+BEGIN_SRC fish #+BEGIN_SRC fish
abbr wget 'wget -c' abbr wget 'wget -c'
#+END_SRC #+END_SRC

File diff suppressed because it is too large Load Diff

View File

@ -9,69 +9,51 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Presentation-981f2f04 :CUSTOM_ID: Presentation-981f2f04
:END: :END:
This is my collection of dotfiles for my daily GNU/Linux environment, tweaked This is my collection of dotfiles for my daily GNU/Linux environment, tweaked to my liking. If you wish to get the same setup as mine, follow the instructions below.
to my liking. If you wish to get the same setup as mine, follow the
instructions below.
For starters, here is the link to all the pages on my website that you might For starters, here is the link to all the pages on my website that you might find interesting. Ill describe them in more details below.
find interesting. Ill describe them in more details below. - [[file:installation.org][Arch Linux bootstrap script]]
- [[file:installation.org][Arch Linux bootstrap script]] - [[file:awesome.org][AwesomeWM configuration]]
- [[file:awesome.org][AwesomeWM configuration]] - [[file:bin.org][Custom scripts]]
- [[file:bin.org][Custom scripts]] - [[file:spacemacs.org][Emacs (Spacemacs) configuration]]
- [[file:spacemacs.org][Emacs (Spacemacs) configuration]] - [[file:fish.org][Fish shell configuration]]
- [[file:fish.org][Fish shell configuration]] - [[file:i3.org][i3 configuration]] (deprecated)
- [[file:i3.org][i3 configuration]] (deprecated) - [[file:nano.org][Nano configuration]] (deprecated)
- [[file:nano.org][Nano configuration]] (deprecated) - [[file:ncmpcpp.org][ncmpcpp configuration]] (work in progress)
- [[file:ncmpcpp.org][ncmpcpp configuration]] (work in progress) - [[file:neofetch.org][Neofetch configuration]]
- [[file:neofetch.org][Neofetch configuration]] - [[file:picom.org][Picom configuration]] (new fork of Compton)
- [[file:picom.org][Picom configuration]] (new fork of Compton) - [[file:polybar.org][Polybar configuration]] (deprecated)
- [[file:polybar.org][Polybar configuration]] (deprecated) - [[file:rustfmt.org][Rustfmt configuration]]
- [[file:rustfmt.org][Rustfmt configuration]] - [[file:tmux.org][Tmux configuration]]
- [[file:tmux.org][Tmux configuration]]
As you can see, I personally use [[https://fishshell.com/][fish]] as my shell of choice, and [[https://www.gnu.org/software/emacs/][Emacs]] 28.0 As you can see, I personally use [[https://fishshell.com/][fish]] as my shell of choice, and [[https://www.gnu.org/software/emacs/][Emacs]] 28.0 (using the ~native-comp~ branch) using [[http://spacemacs.org][Spacemacs]] (still with Emacs keybinding in Insert mode but with Evil in Normal mode) as my main text editor.
(using the ~native-comp~ branch) using [[http://spacemacs.org][Spacemacs]] (still with Emacs keybinding
in Insert mode but with Evil in Normal mode) as my main text editor.
When it comes to my graphical UI, I do not have any desktop environment. When it comes to my graphical UI, I do not have any desktop environment. Instead, I have a tiling window manager, AwesomeWM. The historical first on my configuration is [[https://github.com/Airblader/i3][i3-gaps]], an [[https://i3wm.org/][i3]] fork by [[https://github.com/Airblader/i3][Airblader]] with which I use two bars generated by [[https://polybar.github.io/][Polybar]]. It used [[https://github.com/dylanaraps/pywal][pywal]] to define their color scheme, as well as [[https://github.com/davatorium/rofi][rofi]]s color scheme. My other TWM and the one I currently use is [[https://awesomewm.org/][AwesomeWM]].
Instead, I have a tiling window manager, AwesomeWM. The historical first on my
configuration is [[https://github.com/Airblader/i3][i3-gaps]], an [[https://i3wm.org/][i3]] fork by [[https://github.com/Airblader/i3][Airblader]] with which I use two bars
generated by [[https://polybar.github.io/][Polybar]]. It used [[https://github.com/dylanaraps/pywal][pywal]] to define their color scheme, as well as
[[https://github.com/davatorium/rofi][rofi]]s color scheme. My other TWM and the one I currently use is [[https://awesomewm.org/][AwesomeWM]].
Finally, you can find my configuration for my ErgodoxEZ keyboard [[https://configure.ergodox-ez.com/ergodox-ez/layouts/5WrVw/latest/0][here]]. It is Finally, you can find my configuration for my ErgodoxEZ keyboard [[https://configure.ergodox-ez.com/ergodox-ez/layouts/5WrVw/latest/0][here]]. It is optimized for usage with the Bépo layout set as a software layout, and for shortcuts from i3.
optimized for usage with the Bépo layout set as a software layout, and for
shortcuts from i3.
* Screenshots * Screenshots
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Screenshots-51f1cef3 :CUSTOM_ID: Screenshots-51f1cef3
:END: :END:
#+CAPTION: Desktop with Neofetch in the terminal
[[./img/neofetch.png.webp]]
#+CAPTION: Desktop with Neofetch in the terminal #+CAPTION: Desktop with Emacs opened
[[./img/neofetch.png.webp]] [[./img/emacs.png.webp]]
#+CAPTION: Desktop with Emacs opened #+CAPTION: Desktop with Rofi
[[./img/emacs.png.webp]] [[./img/rofi.png.webp]]
#+CAPTION: Desktop with Rofi
[[./img/rofi.png.webp]]
* Features * Features
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-5ab2a2c0 :CUSTOM_ID: Features-5ab2a2c0
:END: :END:
- Emacs configuration perfectly tailored for my own use - Emacs configuration perfectly tailored for my own use
- Beautiful and comfy i3 and polybar configuration - Beautiful and comfy i3 and polybar configuration
- And enough information below to get basically the same distro install as I - And enough information below to get basically the same distro install as I have on my main computer and my travel laptop.
have on my main computer and my travel laptop.
Most of the org files you will find in this repos are the actual source code Most of the org files you will find in this repos are the actual source code of much of my config files. For instance, the bootstrap found in [[file:installation.org][installation.org]] exports almost all of its code snippets to [[file:.config/yadm/bootstrap][.config/yadm/bootstrap]] thanks to =M-x org-babel-tangle= from within Emacs. Below I will also present and comment some of my short config files which do not deserve to have a full org file dedicated to them.
of much of my config files. For instance, the bootstrap found in
[[file:installation.org][installation.org]] exports almost all of its code snippets to
[[file:.config/yadm/bootstrap][.config/yadm/bootstrap]] thanks to =M-x org-babel-tangle= from within Emacs.
Below I will also present and comment some of my short config files which do
not deserve to have a full org file dedicated to them.
** Tiling Window Managers ** Tiling Window Managers
:PROPERTIES: :PROPERTIES:
@ -81,25 +63,19 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-AwesomeWM-2eac61a9 :CUSTOM_ID: Features-Tiling_Window_Managers-AwesomeWM-2eac61a9
:END: :END:
AwesomeWM is the TWM I use the most on my computer between itself and i3. My AwesomeWM is the TWM I use the most on my computer between itself and i3. My configuration for it is documented in detail in its corresponding document, which you can find [[file:awesome.org][here]].
configuration for it is documented in detail in its corresponding document,
which you can find [[file:awesome.org][here]].
*** i3 configuration (Deprecated) *** i3 configuration (Deprecated)
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-i3_configuration-9c92e43c :CUSTOM_ID: Features-Tiling_Window_Managers-i3_configuration-9c92e43c
:END: :END:
The i3 configuration is detailed in its corresponding README which you can The i3 configuration is detailed in its corresponding README which you can find [[file:i3.org][here]]. Be aware I do not use i3 anymore, and I will not update it until I may someday use it again. This was deprecated on August 22nd, 2020.
find [[file:i3.org][here]]. Be aware I do not use i3 anymore, and I will not update it until
I may someday use it again. This was deprecated on August 22nd, 2020.
** Polybar config (Deprecated) ** Polybar config (Deprecated)
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Polybar_config_(Deprecated)-c8f95774 :CUSTOM_ID: Features-Polybar_config_(Deprecated)-c8f95774
:END: :END:
My annotated polybar config can be found [[file:polybar.org][here]], if you wish to use it. Be My annotated polybar config can be found [[file:polybar.org][here]], if you wish to use it. Be aware I do not use polybar anymore, and I will not update it until I may someday use it again. This was deprecated on August 22nd, 2020.
aware I do not use polybar anymore, and I will not update it until I may
someday use it again. This was deprecated on August 22nd, 2020.
** Graphical tweaks ** Graphical tweaks
:PROPERTIES: :PROPERTIES:
@ -118,167 +94,151 @@
:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0 :HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-General_configuration-eb1f1f3c :CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-General_configuration-eb1f1f3c
:END: :END:
This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the GTK3 configuration file you will see below, and it shares most of its settings. First, lets select the Nordic theme for GTK2. Lets also set the icon theme.
GTK3 configuration file you will see below, and it shares most of its #+BEGIN_SRC conf-unix
settings. First, lets select the Nordic theme for GTK2. Lets also set
the icon theme.
#+BEGIN_SRC conf-unix
# -*- mode: unix-config -*- # -*- mode: unix-config -*-
gtk-theme-name="Nordic" gtk-theme-name="Nordic"
gtk-icon-theme-name="Flat-Remix-Dark" gtk-icon-theme-name="Flat-Remix-Dark"
#+END_SRC #+END_SRC
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-xft-antialias=1 gtk-xft-antialias=1
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight" gtk-xft-hintstyle="hintslight"
#+END_SRC #+END_SRC
This changes the shortcuts in menu, lets also make the menus snappier. This changes the shortcuts in menu, lets also make the menus snappier.
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-can-change-accels=1 gtk-can-change-accels=1
gtk-menu-bar-popup-delay=0 gtk-menu-bar-popup-delay=0
gtk-menu-popdown-delay=0 gtk-menu-popdown-delay=0
gtk-menu-popup-delay=0 gtk-menu-popup-delay=0
#+END_SRC #+END_SRC
***** Filechooser ***** Filechooser
:PROPERTIES: :PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini :HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-Filechooser-389f040d :CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-Filechooser-389f040d
:END: :END:
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
[Filechooser Settings] [Filechooser Settings]
#+END_SRC #+END_SRC
The first option alows me to open the file chooser in the current working The first option alows me to open the file chooser in the current working directory:
directory: #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
StartupMode=cwd StartupMode=cwd
#+END_SRC #+END_SRC
Next, setting the location mode to ~path-bar~ will show the path as buttons Next, setting the location mode to ~path-bar~ will show the path as buttons that can be clicked rather than the full path.
that can be clicked rather than the full path. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
LocationMode=path-bar LocationMode=path-bar
#+END_SRC #+END_SRC
With this configuration, by default we wont see hidden files. With this configuration, by default we wont see hidden files.
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
ShowHidden=true ShowHidden=true
#+END_SRC #+END_SRC
And we'll also see the size of the visible files. And we'll also see the size of the visible files.
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
ShowSizeColumn=true ShowSizeColumn=true
#+END_SRC #+END_SRC
Now, lets choose the geometry of our file picker. These two first lines Now, lets choose the geometry of our file picker. These two first lines set where the file picker appears:
set where the file picker appears: #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
GeometryX=566 GeometryX=566
GeometryY=202 GeometryY=202
#+END_SRC #+END_SRC
And these two describe the size of the window: And these two describe the size of the window:
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
GeometryWidth=800 GeometryWidth=800
GeometryHeight=400 GeometryHeight=400
#+END_SRC #+END_SRC
With these two lines, we set how our files are sorted: by name, and in the With these two lines, we set how our files are sorted: by name, and in the ascending order.
ascending order. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
SortColumn=name SortColumn=name
SortOrder=ascending SortOrder=ascending
#+END_SRC #+END_SRC
Our default view mode is a list of files: Our default view mode is a list of files:
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
ViewMode=list-view ViewMode=list-view
#+END_SRC #+END_SRC
And finally, setting our icon view scale to ~-1~ sets the icon view to the And finally, setting our icon view scale to ~-1~ sets the icon view to the max size.
max size. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
IconViewScale=-1 IconViewScale=-1
#+END_SRC #+END_SRC
**** GTK3 **** GTK3
:PROPERTIES: :PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini :HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK3-3d6cba86 :CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK3-3d6cba86
:END: :END:
The following file helps me choosing the aspect of various GTK+ 3 software, The following file helps me choosing the aspect of various GTK+ 3 software, including their theme and icons. First, lets declare the header:
including their theme and icons. First, lets declare the header: #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
[Settings] [Settings]
#+END_SRC #+END_SRC
Now, lets hint to GTK that I prefer dark themes. This can have an Now, lets hint to GTK that I prefer dark themes. This can have an influence also on some websites that can detect this preference and therefore set their own theme to dark by themselves.
influence also on some websites that can detect this preference and #+BEGIN_SRC conf-unix
therefore set their own theme to dark by themselves.
#+BEGIN_SRC conf-unix
gtk-application-prefer-dark-theme = true gtk-application-prefer-dark-theme = true
#+END_SRC #+END_SRC
Next, the icon theme is the Flat Remix Dark icon theme: Next, the icon theme is the Flat Remix Dark icon theme:
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-icon-theme-name = Flat-Remix-Dark gtk-icon-theme-name = Flat-Remix-Dark
#+END_SRC #+END_SRC
Now, the general theme for GTK3 is Nordic. Now, the general theme for GTK3 is Nordic.
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-theme-name = Nordic gtk-theme-name = Nordic
#+END_SRC #+END_SRC
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-can-change-accels=1 gtk-can-change-accels=1
gtk-menu-bar-popup-delay=0 gtk-menu-bar-popup-delay=0
gtk-menu-popdown-delay=0 gtk-menu-popdown-delay=0
gtk-menu-popup-delay=0 gtk-menu-popup-delay=0
#+END_SRC #+END_SRC
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
gtk-xft-antialias=1 gtk-xft-antialias=1
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight gtk-xft-hintstyle=hintslight
# gtk-xft-rgba=rgb # gtk-xft-rgba=rgb
#+END_SRC #+END_SRC
Since window decorations are handled by my WMs, I will leave this variable Since window decorations are handled by my WMs, I will leave this variable empty.
empty. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
gtk-decoration-layout= gtk-decoration-layout=
#+END_SRC #+END_SRC
*** Picom (Compton) *** Picom (Compton)
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Graphical_tweaks-Picom-b5b9a4dd :CUSTOM_ID: Features-Graphical_tweaks-Picom-b5b9a4dd
:END: :END:
Picom is a standalone compositor for Xorg, and the successor to Compton, Picom is a standalone compositor for Xorg, and the successor to Compton, itself successor to xcompmgr-dana, itself a fork of xcompmgr. You can find my Picom configuration [[file:picom.org][here]].
itself successor to xcompmgr-dana, itself a fork of xcompmgr. You can find
my Picom configuration [[file:picom.org][here]].
*** Xresources *** Xresources
:PROPERTIES: :PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code :HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code
:CUSTOM_ID: Features-Graphical_tweaks-Xresources-8b622de1 :CUSTOM_ID: Features-Graphical_tweaks-Xresources-8b622de1
:END: :END:
My Xresources file is very short. Indeed, it only contains two lines which My Xresources file is very short. Indeed, it only contains two lines which are dedicated to my =st= terminal to set its font and shell. The font is set as follows.
are dedicated to my =st= terminal to set its font and shell. The font is set #+BEGIN_SRC conf
as follows.
#+BEGIN_SRC conf
st.font: Fantasque Sans Mono:size=10:antialias=true st.font: Fantasque Sans Mono:size=10:antialias=true
#+END_SRC #+END_SRC
I can also set the transparency of st (my terminal emulator) like so:
#+BEGIN_SRC conf
st.alpha: 0.85
#+END_SRC
Next is the declaration of my color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, I can also set the transparency of st (my terminal emulator) like so:
from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]]. #+BEGIN_SRC conf
#+BEGIN_SRC conf st.alpha: 0.85
#+END_SRC
Next is the declaration of my color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]].
#+BEGIN_SRC conf
#define nord0 #2E3440 #define nord0 #2E3440
#define nord1 #3B4252 #define nord1 #3B4252
#define nord2 #434C5E #define nord2 #434C5E
@ -318,7 +278,7 @@
,*.color13: nord15 ,*.color13: nord15
,*.color14: nord7 ,*.color14: nord7
,*.color15: nord6 ,*.color15: nord6
#+END_SRC #+END_SRC
** Text and source code editing ** Text and source code editing
:PROPERTIES: :PROPERTIES:
@ -328,47 +288,36 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Emacs_configuration-ef937102 :CUSTOM_ID: Features-Text_and_source_code_editing-Emacs_configuration-ef937102
:END: :END:
Emacs is my main text editor, which I use for almost everything. Because, Emacs is my main text editor, which I use for almost everything. Because, you know…
you know… #+begin_quote
#+begin_quote Emacs is a great operating system, it just lacks a good text editor.
Emacs is a great operating system, it just lacks a good text editor. #+end_quote
#+end_quote
You can find my Emacs config, based on Spacemacs, in my [[https://labs.phundrak.com/phundrak/dotfiles/src/branch/master/.spacemacs][.spacemacs]] file, and You can find my Emacs config, based on Spacemacs, in my [[https://labs.phundrak.com/phundrak/dotfiles/src/branch/master/.spacemacs][.spacemacs]] file, and my user configuration in my [[file:emacs.org][emacs.org]] file.
my user configuration in my [[file:emacs.org][emacs.org]] file.
*** Nano (deprecated) *** Nano (deprecated)
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Nano-a9d4839f :CUSTOM_ID: Features-Text_and_source_code_editing-Nano-a9d4839f
:END: :END:
Although it is a very simple piece of software, nano does offer some Although it is a very simple piece of software, nano does offer some customization. Mine can be found in my [[file:~/org/config-website/nano.org][nano.org]] file. Be aware I do not use nano anymore, and I will not update it until I may someday use it again. This was deprecated on August 28th, 2020.
customization. Mine can be found in my [[file:~/org/config-website/nano.org][nano.org]] file. Be aware I do not use
nano anymore, and I will not update it until I may someday use it again.
This was deprecated on August 28th, 2020.
*** Rustfmt *** Rustfmt
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Rustfmt-2c4ac0b3 :CUSTOM_ID: Features-Text_and_source_code_editing-Rustfmt-2c4ac0b3
:END: :END:
You can find my Rustfmt configuration [[file:rustfmt.org][here]]. You can find my Rustfmt configuration [[file:rustfmt.org][here]].
** Custom scripts in =PATH= ** Custom scripts in =PATH=
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Custom_scripts_in_=PATH=-043e8c8e :CUSTOM_ID: Features-Custom_scripts_in_=PATH=-043e8c8e
:END: :END:
I have written some scripts that help me daily accomplish some simple tasks, I have written some scripts that help me daily accomplish some simple tasks, like mounting and unmounting a drive or Android device, an emoji picker, a utility to set up my Wacom tablet, and so on. You can find them stored in my [[file:bin.org][bin.org]] file along with their detailed explanation in the README placed in the same folder —which is actually their source code once the org-mode file gets tangled.
like mounting and unmounting a drive or Android device, an emoji picker, a
utility to set up my Wacom tablet, and so on. You can find them stored in my
[[file:bin.org][bin.org]] file along with their detailed explanation in the README placed in
the same folder —which is actually their source code once the org-mode file
gets tangled.
** Fish configuration with useful abbreviations ** Fish configuration with useful abbreviations
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Fish_configuration_with_useful_abbreviations-c71ffba0 :CUSTOM_ID: Features-Fish_configuration_with_useful_abbreviations-c71ffba0
:END: :END:
You can also find in my Fish shell configuration in my [[file:~/org/config-website/fish.org][fish.org]] file, which You can also find in my Fish shell configuration in my [[file:~/org/config-website/fish.org][fish.org]] file, which contains my usual abbreviations.
contains my usual abbreviations.
** And some minor configuration files ** And some minor configuration files
:PROPERTIES: :PROPERTIES:
@ -379,85 +328,69 @@
:HEADER-ARGS: :mkdirp yes :tangle ~/.signature :HEADER-ARGS: :mkdirp yes :tangle ~/.signature
:CUSTOM_ID: Features-And_some_minor_configuration_files-Email_signature-8c5f2218 :CUSTOM_ID: Features-And_some_minor_configuration_files-Email_signature-8c5f2218
:END: :END:
This file gets inserted automatically at the end of my emails. This file gets inserted automatically at the end of my emails.
#+BEGIN_SRC text #+BEGIN_SRC text
Lucien “Phundrak” Cartier-Tilet Lucien “Phundrak” Cartier-Tilet
Étudiant en Master Informatique, Tuteur, Université Paris 8 Étudiant en Master Informatique, Tuteur, Université Paris 8
https://phundrak.com (Français) https://phundrak.com (Français)
https://phundrak.com/en (English) https://phundrak.com/en (English)
Sent from GNU/Emacs Sent from GNU/Emacs
#+END_SRC #+END_SRC
*** Global gitignore *** Global gitignore
:PROPERTIES: :PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.gitignore_global :HEADER-ARGS: :mkdirp yes :tangle ~/.gitignore_global
:CUSTOM_ID: Features-And_some_minor_configuration_files-Global_gitignore-42467108 :CUSTOM_ID: Features-And_some_minor_configuration_files-Global_gitignore-42467108
:END: :END:
Sometimes, there are some lines that always reappear in gitignores. So, Sometimes, there are some lines that always reappear in gitignores. So, instead of always adding them, let git now that some elements are to be ignored by default, hence the [[file:.gitignore_global][~/.gitignore_global]] file. First, we dont want nanos backup files.
instead of always adding them, let git now that some elements are to be #+BEGIN_SRC text
ignored by default, hence the [[file:.gitignore_global][~/.gitignore_global]] file. First, we dont want
nanos backup files.
#+BEGIN_SRC text
~* ~*
#+END_SRC #+END_SRC
And object files and output binaries generated by =gcc= and the likes arent And object files and output binaries generated by =gcc= and the likes arent welcome either.
welcome either. #+BEGIN_SRC text
#+BEGIN_SRC text
,*.out ,*.out
,*.o ,*.o
#+END_SRC #+END_SRC
** Tmux configuration ** Tmux configuration
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Features-Tmux_configuration-ce76e030 :CUSTOM_ID: Features-Tmux_configuration-ce76e030
:END: :END:
You can find my tmux configuration in [[file:tmux.org][tmux.org]]. It depends on the submodule You can find my tmux configuration in [[file:tmux.org][tmux.org]]. It depends on the submodule [[https://github.com/gpakosz/.tmux.git][.tmux]] by [[https://pempek.net/][Gregory Pakosz]].
[[https://github.com/gpakosz/.tmux.git][.tmux]] by [[https://pempek.net/][Gregory Pakosz]].
* Dependencies * Dependencies
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Dependencies-ef5057dd :CUSTOM_ID: Dependencies-ef5057dd
:END: :END:
Of course, some dependencies are needed for my dotfiles to work well. Here is Of course, some dependencies are needed for my dotfiles to work well. Here is a non-exhaustive list of software needed by these configuration files:
a non-exhaustive list of software needed by these configuration files: - [[https://www.gnu.org/software/emacs/][GNU/Emacs]] >= 26.2
- [[https://www.gnu.org/software/emacs/][GNU/Emacs]] >= 26.2
- [[http://spacemacs.org][Spacemacs]] (develop branch) - [[http://spacemacs.org][Spacemacs]] (develop branch)
- My [[https://labs.phundrak.com/phundrak/conlang-layer][conlanging layer]] - My [[https://labs.phundrak.com/phundrak/conlang-layer][conlanging layer]]
- [[https://github.com/venmos/w3m-layer][Venmos]] [[https://github.com/venmos/w3m-layer][w3m layer]] - [[https://github.com/venmos/w3m-layer][Venmos]] [[https://github.com/venmos/w3m-layer][w3m layer]]
- The [[https://fishshell.com/][Fish shell]], using [[https://github.com/jorgebucaran/fisher][fisher]] - The [[https://fishshell.com/][Fish shell]], using [[https://github.com/jorgebucaran/fisher][fisher]]
- [[https://lukesmith.xyz/][Luke Smith]]s [[https://github.com/LukeSmithxyz/st][fork]] of [[https://st.suckless.org/][st]] - [[https://lukesmith.xyz/][Luke Smith]]s [[https://github.com/LukeSmithxyz/st][fork]] of [[https://st.suckless.org/][st]]
- [[https://resloved.info/][Resloved]]s [[https://github.com/resloved/i3][i3-gaps-rounded]] fork of [[https://github.com/Airblader/i3][Airblader]]s [[https://github.com/Airblader/i3][i3-gaps]], itself a fork of [[https://i3wm.org/][i3]] - [[https://tools.suckless.org/dmenu/][dmenu]]
- [[https://github.com/yshui/compton][Compton]], more specificaly [[https://github.com/tryone144/compton][Tryone]]s [[https://github.com/tryone144/compton][fork]] - [[https://github.com/enkore/j4-dmenu-desktop][j4-dmenu-desktop]]
- [[https://github.com/dylanaraps/pywal/][pywal]] - [[https://github.com/davatorium/rofi][Rofi]]
- [[https://tools.suckless.org/dmenu/][dmenu]] - [[https://github.com/gpoore/minted][minted]]
- [[https://github.com/enkore/j4-dmenu-desktop][j4-dmenu-desktop]] - [[https://www.rust-lang.org/][Rust]] (stable and nightly)
- [[https://github.com/davatorium/rofi][Rofi]] - [[https://www.latex-project.org/][LaTeX]] and [[http://xetex.sourceforge.net/][XeTeX]] (=texlive= packages on Arch Linux)
- [[https://github.com/gpoore/minted][minted]] - [[https://github.com/tmux/tmux][tmux]], based on [[https://github.com/gpakosz/.tmux][this repo]]s configuration by [[https://pempek.net/][Grégory Pakosz]].
- [[https://www.rust-lang.org/][Rust]] (stable and nightly) - And a bunch of other stuff, see below
- [[https://www.latex-project.org/][LaTeX]] and [[http://xetex.sourceforge.net/][XeTeX]] (=texlive= packages on Arch Linux) And some other stuff scattered around in my dotfiles.
- [[https://github.com/tmux/tmux][tmux]], based on [[https://github.com/gpakosz/.tmux][this repo]]s configuration by [[https://pempek.net/][Grégory Pakosz]].
- And a bunch of other stuff, see below
And some other stuff scattered around in my dotfiles.
BTW, I use Arch. BTW, I use Arch.
* Installation * Installation
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Installation-9ec2ae86 :CUSTOM_ID: Installation-9ec2ae86
:END: :END:
For an installation walkthrough of my Arch Linux installation, check out my For an installation walkthrough of my Arch Linux installation, check out my [[file:installation.org][installation.org]] file where I walk you through the first manual steps and through the bootstrap you can execute to automatically take care of a lot of elements.
[[file:installation.org][installation.org]] file where I walk you through the first manual steps and
through the bootstrap you can execute to automatically take care of a lot of
elements.
* Licence * Licence
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Licence-48911096 :CUSTOM_ID: Licence-48911096
:END: :END:
All of my dotfiles (and my dotfiles only) are available under the GNU GPLv3 All of my dotfiles (and my dotfiles only) are available under the GNU GPLv3 Licence. Please consult [[file:LICENCE.md]] for more information. In short: you are free to access, edit and redistribute all of my dotfiles under the same licence and as allowed by the licence, and if you fuck up something, its your own responsibility.
Licence. Please consult [[file:LICENCE.md]] for more information. In short: you
are free to access, edit and redistribute all of my dotfiles under the same
licence and as allowed by the licence, and if you fuck up something, its your
own responsibility.

File diff suppressed because it is too large Load Diff

View File

@ -10,134 +10,106 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Introduction-7e535842 :CUSTOM_ID: Introduction-7e535842
:END: :END:
*Before proceeding, be aware that I deprecated this nano config on August *Before proceeding, be aware that I deprecated this nano config on August 28th, 2020, meaning I wont update it anymore unless I use it again some day in the future. I will keep it on my website though.*
28th, 2020, meaning I wont update it anymore unless I use it again some day
in the future. I will keep it on my website though.*
I nowadays rarely use Nano as a text editor, since I mainly rely on Emacs for I nowadays rarely use Nano as a text editor, since I mainly rely on Emacs for all sorts of tasks, including quick file editing. However, at times, Emacs wont work or wont be available, and I therefore need a lightweight, fast and reliable text editor: Nano. And despite Nano being a simple piece of software, it does offer some customization I cannot refuse. Here is how I configured it:
all sorts of tasks, including quick file editing. However, at times, Emacs
wont work or wont be available, and I therefore need a lightweight, fast and
reliable text editor: Nano. And despite Nano being a simple piece of software,
it does offer some customization I cannot refuse. Here is how I configured it:
* Configuration * Configuration
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-b55668a7 :CUSTOM_ID: Configuration-b55668a7
:END: :END:
When saving a file, create a backup file by adding a tilde (=~=) to the file's When saving a file, create a backup file by adding a tilde (=~=) to the file's name. And make and keep not just one backup file, but make and keep a uniquely numbered one every time a file is saved — when backups are enabled with =set backup= or =--backup= or =-B=. The uniquely numbered files are stored in the directory =~/.cache/nano/backups/=.
name. And make and keep not just one backup file, but make and keep a uniquely #+BEGIN_SRC conf
numbered one every time a file is saved — when backups are enabled with =set
backup= or =--backup= or =-B=. The uniquely numbered files are stored in the
directory =~/.cache/nano/backups/=.
#+BEGIN_SRC conf
set backup set backup
set backupdir /home/phundrak/.cache/nano/backups/ set backupdir /home/phundrak/.cache/nano/backups/
#+END_SRC #+END_SRC
Save a file by default in Unix format. This overrides nano's default behavior Save a file by default in Unix format. This overrides nano's default behavior of saving a file in the format that it had. (This option has no effect when you also use =set noconvert=.)
of saving a file in the format that it had. (This option has no effect when #+BEGIN_SRC conf
you also use =set noconvert=.)
#+BEGIN_SRC conf
set unix set unix
#+END_SRC #+END_SRC
** Keys behavior ** Keys behavior
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-Keys_behavior-c665fa36 :CUSTOM_ID: Configuration-Keys_behavior-c665fa36
:END: :END:
Make the Home key smarter. When Home is pressed anywhere but at the very Make the Home key smarter. When Home is pressed anywhere but at the very beginning of non-whitespace characters on a line, the cursor will jump to that beginning (either forwards or backwards). If the cursor is already at that position, it will jump to the true beginning of the line.
beginning of non-whitespace characters on a line, the cursor will jump to #+BEGIN_SRC conf
that beginning (either forwards or backwards). If the cursor is already at
that position, it will jump to the true beginning of the line.
#+BEGIN_SRC conf
set smarthome set smarthome
#+END_SRC #+END_SRC
** Search ** Search
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-Search-6e458076 :CUSTOM_ID: Configuration-Search-6e458076
:END: :END:
Do case-unsensitive searches by default. Do case-unsensitive searches by default.
#+BEGIN_SRC conf #+BEGIN_SRC conf
unset casesensitive unset casesensitive
#+END_SRC #+END_SRC
Do regular-expression searches by default. Regular expressions in =nano= are Do regular-expression searches by default. Regular expressions in =nano= are of the extended type (ERE).
of the extended type (ERE). #+BEGIN_SRC conf
#+BEGIN_SRC conf
set regexp set regexp
#+END_SRC #+END_SRC
** Visual settings ** Visual settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-Visual_settings-9952f2ae :CUSTOM_ID: Configuration-Visual_settings-9952f2ae
:END: :END:
Use bold instead of reverse video for the title bar, status bar, key combos, Use bold instead of reverse video for the title bar, status bar, key combos, function tags, line numbers, and selected text. This can be overridden by setting the options =titlecolor=, =statuscolor=, =keycolor=, =functioncolor=, =numbercolor=, and =selectedcolor=.
function tags, line numbers, and selected text. This can be overridden by #+BEGIN_SRC conf
setting the options =titlecolor=, =statuscolor=, =keycolor=, =functioncolor=,
=numbercolor=, and =selectedcolor=.
#+BEGIN_SRC conf
set boldtext set boldtext
#+END_SRC #+END_SRC
Enable soft line wrapping for easier viewing of very long lines. Enable soft line wrapping for easier viewing of very long lines.
#+BEGIN_SRC conf #+BEGIN_SRC conf
set softwrap set softwrap
#+END_SRC #+END_SRC
When soft line wrapping is enabled, make it wrap lines at blank characters When soft line wrapping is enabled, make it wrap lines at blank characters (tabs and spaces) instead of always at the edge of the screen.
(tabs and spaces) instead of always at the edge of the screen. #+BEGIN_SRC conf
#+BEGIN_SRC conf
set atblanks set atblanks
#+END_SRC #+END_SRC
Display line numbers to the left of the text area. Display line numbers to the left of the text area.
#+BEGIN_SRC conf #+BEGIN_SRC conf
set linenumbers set linenumbers
#+END_SRC #+END_SRC
Constantly display the cursor position in the status bar. This overrides the Constantly display the cursor position in the status bar. This overrides the option =quickblank=.
option =quickblank=. #+BEGIN_SRC conf
#+BEGIN_SRC conf
set constantshow set constantshow
#+END_SRC #+END_SRC
** Whitespace settings ** Whitespace settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-Whitespace_settings-8cef9cd7 :CUSTOM_ID: Configuration-Whitespace_settings-8cef9cd7
:END: :END:
Convert typed tabs to spaces. Sue me. Convert typed tabs to spaces. Sue me.
#+BEGIN_SRC conf #+BEGIN_SRC conf
set tabstospaces set tabstospaces
#+END_SRC #+END_SRC
Use a tab size of a certain amount of columns. The value of number must be Use a tab size of a certain amount of columns. The value of number must be greater than 0. The default value is 8.
greater than 0. The default value is 8. #+BEGIN_SRC conf
#+BEGIN_SRC conf set tabsize 2
set tabsize 2 #+END_SRC
#+END_SRC
Automatically indent a newly created line to the same number of tabs and/or Automatically indent a newly created line to the same number of tabs and/or spaces as the previous line (or as the next line if the previous line is the beginning of a paragraph).
spaces as the previous line (or as the next line if the previous line is the #+BEGIN_SRC conf
beginning of a paragraph).
#+BEGIN_SRC conf
set autoindent set autoindent
#+END_SRC #+END_SRC
Remove trailing whitespace from wrapped lines when automatic hard-wrapping Remove trailing whitespace from wrapped lines when automatic hard-wrapping occurs or when text is justified.
occurs or when text is justified. #+BEGIN_SRC conf
#+BEGIN_SRC conf set trimblanks
set trimblanks #+END_SRC
#+END_SRC
** Included configuration file ** Included configuration file
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Configuration-Included_configuration_file-70b0f35b :CUSTOM_ID: Configuration-Included_configuration_file-70b0f35b
:END: :END:
Nano gives the opportunity to include some files located elsewhere. This is Nano gives the opportunity to include some files located elsewhere. This is why I added [[https://github.com/scopatz/nanorc][this repo]] as a submodule of my dotfiles so I can access a lot of them at the same time. Since the submodule is cloned in =~/.config/nanorc=, we can add only one line to include all of the =.nanorc= files.
why I added [[https://github.com/scopatz/nanorc][this repo]] as a submodule of my dotfiles so I can access a lot of #+BEGIN_SRC conf
them at the same time. Since the submodule is cloned in =~/.config/nanorc=,
we can add only one line to include all of the =.nanorc= files.
#+BEGIN_SRC conf
include ~/.config/nano/nano-syntax/*.nanorc include ~/.config/nano/nano-syntax/*.nanorc
#+END_SRC #+END_SRC

View File

@ -10,55 +10,47 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Introduction-3e61ecfc :CUSTOM_ID: Introduction-3e61ecfc
:END: :END:
Ncmpcpp is a TUI front-end for MPD, with an UI very similar to Ncmpc. This is Ncmpcpp is a TUI front-end for MPD, with an UI very similar to Ncmpc. This is
my main MPD front-end after my i3 shortcuts. You can find below some my main MPD front-end after my i3 shortcuts. You can find below some
screenshots of how my current ncmpcpp configuration looks like. screenshots of how my current ncmpcpp configuration looks like.
[[file:img/ncmpcpp-queue.png]] [[file:img/ncmpcpp-queue.png]]
[[file:img/ncmpcpp-directory.png]] [[file:img/ncmpcpp-directory.png]]
[[file:img/ncmpcpp-visualizer.png]] [[file:img/ncmpcpp-visualizer.png]]
* Core Ncmpcpp settings * Core Ncmpcpp settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Core_Ncmpcpp_settings-8cacae18 :CUSTOM_ID: Core_Ncmpcpp_settings-8cacae18
:END: :END:
#+BEGIN_SRC conf :exports none #+BEGIN_SRC conf :exports none
# -*- mode: conf -*- # -*- mode: conf -*-
#+END_SRC #+END_SRC
** Directories ** Directories
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Core_Ncmpcpp_settings-Directories-28092c92 :CUSTOM_ID: Core_Ncmpcpp_settings-Directories-28092c92
:END: :END:
Ncmpcpp has two vital directories: the lyrics directory, and its own Ncmpcpp has two vital directories: the lyrics directory, and its own configuration directory. The configuration for ncmpcpp is generally either in ~$HOME/.ncmpcpp/~ or in ~$XDG_CONFIG_HOME/ncmpcpp/~.
configuration directory. The configuration for ncmpcpp is generally either in #+BEGIN_SRC conf
~$HOME/.ncmpcpp/~ or in ~$XDG_CONFIG_HOME/ncmpcpp/~.
#+BEGIN_SRC conf
ncmpcpp_directory = ~/.config/ncmpcpp ncmpcpp_directory = ~/.config/ncmpcpp
#+END_SRC #+END_SRC
When it comes to the lyrics, be sure to set the directory to the same When it comes to the lyrics, be sure to set the directory to the same directory pointed at by Mpd.
directory pointed at by Mpd. #+BEGIN_SRC conf
#+BEGIN_SRC conf
lyrics_directory = ~/.lyrics lyrics_directory = ~/.lyrics
#+END_SRC #+END_SRC
** MPD ** MPD
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Core_Ncmpcpp_settings-MPD-a2a7452e :CUSTOM_ID: Core_Ncmpcpp_settings-MPD-a2a7452e
:END: :END:
These settings tell ncmpcpp how to communicate with Mpd. Once again, be sure These settings tell ncmpcpp how to communicate with Mpd. Once again, be sure to follow your own MPD settings. In my case, I am connecting to my local MPD server, hence the ~localhost~ value of the variable below, and I did not change the default port of MPD. My music is located at =~/Music=, and ncmpcpp should connect pretty much immediately, although I allow a five seconds timeout before ncmpcpp treats it as an error. Also, no crossfade please.
to follow your own MPD settings. In my case, I am connecting to my local MPD #+BEGIN_SRC conf
server, hence the ~localhost~ value of the variable below, and I did not
change the default port of MPD. My music is located at =~/Music=, and ncmpcpp
should connect pretty much immediately, although I allow a five seconds
timeout before ncmpcpp treats it as an error. Also, no crossfade please.
#+BEGIN_SRC conf
mpd_host = localhost mpd_host = localhost
mpd_port = 6600 mpd_port = 6600
mpd_music_dir = ~/Music mpd_music_dir = ~/Music
mpd_connection_timeout = 5 mpd_connection_timeout = 5
mpd_crossfade_time = 0 mpd_crossfade_time = 0
#+END_SRC #+END_SRC

View File

@ -11,53 +11,40 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Introduction-5942aea3 :CUSTOM_ID: Introduction-5942aea3
:END: :END:
[[https://github.com/dylanaraps/neofetch][Neofetch]] is a CLI utility used to display system information. It was written [[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]].
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 * The ~print_info~ functions
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: The_print_info_functions-bb30763f :CUSTOM_ID: The_print_info_functions-bb30763f
:END: :END:
The ~print_info~ function is the function called by Neofetch in order to print The ~print_info~ function is the function called by Neofetch in order to print the system information it could fetch. In this function, well choose what to display, and how. This function looks like this:
the system information it could fetch. In this function, well choose what to #+BEGIN_SRC sh :tangle no
display, and how. This function looks like this:
#+BEGIN_SRC sh :tangle no
print_info() { print_info() {
# Print information here… # Print information here…
} }
#+END_SRC #+END_SRC
Generally, what we will display will be shown through the ~info~ function, 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:
redefined inside Neofetch (this is not ~info(1)~). This ~info~ function #+NAME: info-elements-table
accepts one or two arguments. With one argument, such as with ~info memory~, | Prefix | Information | What it does |
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 | | title | Username and hostname |
the interesting information; ~info "Memory" memory~ will look like | | line_break | Insert a blank line |
~Memory: 5136MiB / 15873MiB~. Here is what we want to display: | | cols | System theme |
#+NAME: info-elements-table | | line_break | Insert a blank line |
| Prefix | Information | What it does | | OS | distro | Distribution name |
|----------+-------------+-----------------------------------| | Kernel | kernel | Kernel version |
| | title | Username and hostname | | Uptime | uptime | Machine uptime |
| | line_break | Insert a blank line | | Packages | packages | Number of installed packages |
| | cols | System theme | | Shell | shell | Users default shell |
| | line_break | Insert a blank line | | WM | wm | Users Window Manager |
| OS | distro | Distribution name | | Terminal | term | Default terminal |
| Kernel | kernel | Kernel version | | CPU | cpu | CPU information |
| Uptime | uptime | Machine uptime | | GPU | gpu | GPU information |
| Packages | packages | Number of installed packages | | Memory | memory | RAM information |
| Shell | shell | Users default shell |
| WM | wm | Users Window Manager |
| Terminal | term | Default terminal |
| CPU | cpu | CPU information |
| GPU | gpu | GPU information |
| Memory | memory | RAM information |
#+NAME: info-elements-gen #+NAME: info-elements-gen
#+BEGIN_SRC emacs-lisp :var table=info-elements-table :cache yes #+BEGIN_SRC emacs-lisp :var table=info-elements-table :cache yes
(mapconcat (lambda (x) (mapconcat (lambda (x)
(format "info %s%s" (format "info %s%s"
(if (not (string= (car x) "")) (if (not (string= (car x) ""))
@ -66,46 +53,42 @@
(cadr x))) (cadr x)))
table table
"\n") "\n")
#+END_SRC #+END_SRC
#+RESULTS[1e66bf48472ad24006f0cb9dc9c86078764ba84e]: info-elements-gen #+RESULTS[1e66bf48472ad24006f0cb9dc9c86078764ba84e]: info-elements-gen
#+begin_example #+begin_example
info line_break info line_break
info title info title
info line_break info line_break
info cols info cols
info line_break info line_break
info "OS" distro info "OS" distro
info "Kernel" kernel info "Kernel" kernel
info "Uptime" uptime info "Uptime" uptime
info "Packages" packages info "Packages" packages
info "Shell" shell info "Shell" shell
info "WM" wm info "WM" wm
info "Terminal" term info "Terminal" term
info "CPU" cpu info "CPU" cpu
info "GPU" gpu info "GPU" gpu
info "Memory" memory info "Memory" memory
info "Disks" disks info "Disks" disks
#+end_example #+end_example
Hence, the function looks like so: Hence, the function looks like so:
#+BEGIN_SRC sh #+BEGIN_SRC sh
print_info() { print_info() {
<<info-elements-gen()>> <<info-elements-gen()>>
} }
#+END_SRC #+END_SRC
Each of these modules can be tuned with the variables presented below. Each of these modules can be tuned with the variables presented below.
* Information settings * Information settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-9d4cfe88 :CUSTOM_ID: Information_settings-9d4cfe88
:END: :END:
Each of the following variable tunes a function that can be called in 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.
~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 ** Software
:PROPERTIES: :PROPERTIES:
@ -119,73 +102,72 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-OS-Distro-cd12bc4f :CUSTOM_ID: Information_settings-Software-OS-Distro-cd12bc4f
:END: :END:
This variable can shorten the output of the ~distro~ function. This variable can shorten the output of the ~distro~ function.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--distro_shorthand~ - Flag :: ~--distro_shorthand~
- Supports :: Everything except Windows and Haiku - Supports :: Everything except Windows and Haiku
- Examples :: - Examples ::
- on :: ~Arch Linux~ - on :: ~Arch Linux~
- off :: ~Arch~ - off :: ~Arch~
#+begin_src sh #+begin_src sh
distro_shorthand="off" distro_shorthand="off"
#+end_src #+end_src
It is possible to display when the distro has been installed on the computer. It is possible to display when the distro has been installed on the computer.
**** Kernel **** Kernel
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-OS-Kernel-658cedce :CUSTOM_ID: Information_settings-Software-OS-Kernel-658cedce
:END: :END:
The variable below can shorten the output ofh the ~kernel~ function. The variable below can shorten the output ofh the ~kernel~ function.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--kernel_shorthand~ - Flag :: ~--kernel_shorthand~
- Supports :: Everything except *BSDs (except PacBSD and PC-BSD) - Supports :: Everything except *BSDs (except PacBSD and PC-BSD)
- Examples :: - Examples ::
- on :: ~4.8.9-1-ARCH~ - on :: ~4.8.9-1-ARCH~
- off :: ~Linux 4.8.9-1-ARCH~ - off :: ~Linux 4.8.9-1-ARCH~
#+begin_src sh #+begin_src sh
kernel_shorthand="off" kernel_shorthand="off"
#+end_src #+end_src
**** OS Architecture **** OS Architecture
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-OS-OS_Architecture-2f60c93c :CUSTOM_ID: Information_settings-Software-OS-OS_Architecture-2f60c93c
:END: :END:
This variable can show or hide the OS architecture in the ~distro~ output. This variable can show or hide the OS architecture in the ~distro~ output.
- Default value :: ~"off"~ - Default value :: ~"off"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--os_arch~ - Flag :: ~--os_arch~
- Examples :: - Examples ::
- on :: ~Arch Linux x86_64~ - on :: ~Arch Linux x86_64~
- off :: ~Arch Linux~ - off :: ~Arch Linux~
#+begin_src sh #+begin_src sh
os_arch="off" os_arch="off"
#+end_src #+end_src
**** Packages **** Packages
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-OS-Packages-f836a58d :CUSTOM_ID: Information_settings-Software-OS-Packages-f836a58d
:END: :END:
It is possible to show or hide Package Manager names. It is possible to show or hide Package Manager names.
- Default :: ~'tiny'~
- Default :: ~'tiny'~ - Values :: ~'on'~ / ~'tiny'~ / ~'off'~
- Values :: ~'on'~ / ~'tiny'~ / ~'off'~ - Flag :: ~--package_managers~
- Flag :: ~--package_managers~ - Example ::
- Example ::
- on :: ~'998 (pacman), 8 (flatpak), 4 (snap)'~ - on :: ~'998 (pacman), 8 (flatpak), 4 (snap)'~
- tiny :: ~'908 (pacman, flatpak, snap)'~ - tiny :: ~'908 (pacman, flatpak, snap)'~
- off :: ~'908'~ - off :: ~'908'~
#+BEGIN_SRC sh #+BEGIN_SRC sh
package_managers="on" package_managers="on"
#+END_SRC #+END_SRC
**** Shell **** Shell
:PROPERTIES: :PROPERTIES:
@ -195,142 +177,136 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Shell-Shell_path-9eda636d :CUSTOM_ID: Information_settings-Software-Shell-Shell_path-9eda636d
:END: :END:
This allows to show either the path of the users shell, or simply its This allows to show either the path of the users shell, or simply its name.
name. - Default value :: ~"off"~
- Default value :: ~"off"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--shell_path~ - Flag :: ~--shell_path~
- Examples :: - Examples ::
- on :: ~/bin/bash~ - on :: ~/bin/bash~
- off :: ~bash~ - off :: ~bash~
#+begin_src sh +begin_src sh
shell_path="off" shell_path="off"
#+end_src +end_src
***** Shell version ***** Shell version
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Shell-Shell_version-03964bb3 :CUSTOM_ID: Information_settings-Software-Shell-Shell_version-03964bb3
:END: :END:
This allows to show the shells version in the output of ~shell~. This allows to show the shells version in the output of ~shell~.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--shell_version~ - Flag :: ~--shell_version~
- Examples :: - Examples ::
- on :: ~bash 4.4.5~ - on :: ~bash 4.4.5~
- off :: ~bash~ - off :: ~bash~
#+begin_src sh #+begin_src sh
shell_version="off" shell_version="off"
#+end_src #+end_src
*** Uptime *** Uptime
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Uptime-a7b5361a :CUSTOM_ID: Information_settings-Software-Uptime-a7b5361a
:END: :END:
This variable can shorten the output of the ~uptime~ function. ~on~ shortens This variable can shorten the output of the ~uptime~ function. ~on~ shortens
it a bit, while ~tiny~ shortens it greatly. it a bit, while ~tiny~ shortens it greatly.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"tiny"~ - ~"tiny"~
- ~"off"~ - ~"off"~
- Flag :: ~--uptime_shorthand~ - Flag :: ~--uptime_shorthand~
- Examples :: - Examples ::
- on :: ~2 days, 10 hours, 3 mins~ - on :: ~2 days, 10 hours, 3 mins~
- off :: ~2 days, 10 hours, 3 minutes~ - off :: ~2 days, 10 hours, 3 minutes~
- tiny :: ~2d 10h 3m~ - tiny :: ~2d 10h 3m~
#+begin_src sh #+begin_src sh
uptime_shorthand="on" uptime_shorthand="on"
#+end_src #+end_src
*** IP address *** IP address
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-IP_address-26df5e1d :CUSTOM_ID: Information_settings-Software-IP_address-26df5e1d
:END: :END:
It is possible to display the machines public IP address with the function It is possible to display the machines public IP address with the function ~ip~. The value below allows the user to change the website used to fetch it.
~ip~. The value below allows the user to change the website used to fetch - Default value :: ~"http://ident.me"~
it. - Value :: ~"url"~
- Default value :: ~"http://ident.me"~ - Flag :: ~--ip_host~
- Value :: ~"url"~ #+begin_src sh
- Flag :: ~--ip_host~
#+begin_src sh
public_ip_host="http://ident.me" public_ip_host="http://ident.me"
#+end_src #+end_src
- Default value :: ~""~ - Default value :: ~""~
- Values :: - Values ::
- ~""~ - ~""~
- ~""~ - ~""~
- Flag :: ~""~ - Flag :: ~""~
- Supports :: - Supports ::
- Examples :: - Examples ::
- on :: ~~ - on :: ~~
- off :: ~~ - off :: ~~
#+begin_src sh #+begin_src sh
#+end_src #+end_src
*** Theming *** Theming
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Theming-ba7f1ccd :CUSTOM_ID: Information_settings-Software-Theming-ba7f1ccd
:END: :END:
This section will allow the user to modify what Neofetch can and cannot This section will allow the user to modify what Neofetch can and cannot display about the machines theming —by this, I mean its GTK theme, its icons and its default font.
display about the machines theming —by this, I mean its GTK theme, its
icons and its default font.
**** Shorten output **** Shorten output
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Theming-Shorten_output-cbef1fa4 :CUSTOM_ID: Information_settings-Software-Theming-Shorten_output-cbef1fa4
:END: :END:
With this value, it is possible to shorten the output of the computers With this value, it is possible to shorten the output of the computers theming.
theming. - Default value :: ~"off"~
- Default value :: ~"off"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--gtk_shorthand~ - Flag :: ~--gtk_shorthand~
- Examples :: - Examples ::
- on :: ~Numix, Adwaita~ - on :: ~Numix, Adwaita~
- off :: ~Numix [GTK2], Adwaita [GTK3]~ - off :: ~Numix [GTK2], Adwaita [GTK3]~
#+begin_src sh #+begin_src sh
gtk_shorthand="on" gtk_shorthand="on"
#+end_src #+end_src
**** Enable or disable theming display for GTK2 **** Enable or disable theming display for GTK2
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK2-f4398571 :CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK2-f4398571
:END: :END:
It is possible to explicitely show or hide the computers theming with GTK2 It is possible to explicitely show or hide the computers theming with GTK2 with this variable.
with this variable. - Default value :: ~"on"~
- Default value :: ~"on"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--gtk2~ - Flag :: ~--gtk2~
- Examples :: - Examples ::
- on :: ~Numix [GTK2], Adwaita [GTK3]~ - on :: ~Numix [GTK2], Adwaita [GTK3]~
- off :: ~Adwaita [GTK3]~ - off :: ~Adwaita [GTK3]~
#+begin_src sh #+begin_src sh
gtk2="off" gtk2="off"
#+end_src #+end_src
**** Enable or disable theming display for GTK3 **** Enable or disable theming display for GTK3
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK3-c4070e66 :CUSTOM_ID: Information_settings-Software-Theming-Enable_or_disable_theming_display_for_GTK3-c4070e66
:END: :END:
The same variable as above is also available for GTK3. The same variable as above is also available for GTK3.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--gtk3~ - Flag :: ~--gtk3~
- Examples :: - Examples ::
- on :: ~Numix [GTK2], Adwaita [GTK3]~ - on :: ~Numix [GTK2], Adwaita [GTK3]~
- off :: ~Numix [GTK2]~ - off :: ~Numix [GTK2]~
#+begin_src sh #+begin_src sh
#+end_src gtk3="off"
#+end_src
** Hardware ** Hardware
:PROPERTIES: :PROPERTIES:
@ -340,164 +316,152 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-eb0bcd7d :CUSTOM_ID: Information_settings-Hardware-CPU-eb0bcd7d
:END: :END:
**** CPU brand **** CPU brand
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_brand-5b25776b :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_brand-5b25776b
:END: :END:
With this variables, it is possible to show or hide the brand of a CPU in With this variables, it is possible to show or hide the brand of a CPU in
the ~cpu~ output. the ~cpu~ output.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--cpu_brand~ - Flag :: ~--cpu_brand~
- Examples :: - Examples ::
- on :: ~Intel i7-6500U~ - on :: ~Intel i7-6500U~
- off :: ~i7-6500U~ - off :: ~i7-6500U~
#+begin_src sh #+begin_src sh
cpu_brand="off" cpu_brand="off"
#+end_src #+end_src
**** CPU speed **** CPU speed
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed-2bf6e5f7 :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed-2bf6e5f7
:END: :END:
With this variable, it is possible to show or hide the speed of the CPU. With this variable, it is possible to show or hide the speed of the CPU.
- Default value :: ~"on"~ - Default value :: ~"on"~
- Values :: - Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--cpu_speed~ - Flag :: ~--cpu_speed~
- Examples :: - Examples ::
- on :: ~Intel i7-6500U (4) @ 3.1GHz~ - on :: ~Intel i7-6500U (4) @ 3.1GHz~
- off :: ~Intel i7-6500U (4)~ - off :: ~Intel i7-6500U (4)~
#+begin_src sh #+begin_src sh
cpu_speed="off" cpu_speed="off"
#+end_src #+end_src
**** CPU speed type **** CPU speed type
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_type-a24de48f :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_type-a24de48f
:END: :END:
This allows Neofetch to know what type of speed it has to fetch regarding This allows Neofetch to know what type of speed it has to fetch regarding the machines CPU. Any file in ~/sys/devices/system/cpu/cpu0/cpufreq~ can be used as a value.
the machines CPU. Any file in ~/sys/devices/system/cpu/cpu0/cpufreq~ can - Default value :: ~"bios_limit"~
be used as a value. - Values ::
- Default value :: ~"bios_limit"~
- Values ::
- ~"scaling_cur_freq"~ - ~"scaling_cur_freq"~
- ~"scaling_min_freq"~ - ~"scaling_min_freq"~
- ~"scaling_max_freq"~ - ~"scaling_max_freq"~
- ~"bios_limit"~ - ~"bios_limit"~
- Flag :: ~--speed_type~ - Flag :: ~--speed_type~
- Supports :: Linux with ~cpufreq~ - Supports :: Linux with ~cpufreq~
#+begin_src sh #+begin_src sh
speed_type="bios_limit" speed_type="bios_limit"
#+end_src #+end_src
**** CPU speed shorthand **** CPU speed shorthand
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_shorthand-0d15fe08 :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_speed_shorthand-0d15fe08
:END: :END:
This value allows to show sorter CPU speed with less digits. This flag is This value allows to show sorter CPU speed with less digits. This flag is not supported in systems with CPU speed below 1GHz.
not supported in systems with CPU speed below 1GHz. - Default value :: ~"off"~
- Default value :: ~"off"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"on"~ - ~"on"~
- Flag :: ~--speed_shorthand~ - Flag :: ~--speed_shorthand~
- Examples :: - Examples ::
- on :: ~i7-6500U (4) @ 3.1GHz~ - on :: ~i7-6500U (4) @ 3.1GHz~
- off :: ~i7-6500U (4) @ 3.100GHz~ - off :: ~i7-6500U (4) @ 3.100GHz~
#+begin_src sh #+begin_src sh
speed_shorthand="on" speed_shorthand="on"
#+end_src #+end_src
**** CPU cores **** CPU cores
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_cores-30177354 :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_cores-30177354
:END: :END:
With this variable, it is possible to display the number of cores that are With this variable, it is possible to display the number of cores that are available in the CPU.
available in the CPU. - Default value :: ~"logical"~
- Default value :: ~"logical"~ - Values ::
- Values ::
- ~"logical"~ - ~"logical"~
- ~"physical"~ - ~"physical"~
- ~"off"~ - ~"off"~
- Flag :: ~--cpu_cores~ - Flag :: ~--cpu_cores~
- Supports :: ~physical~ does not work on BSD. - Supports :: ~physical~ does not work on BSD.
- Examples :: - Examples ::
- logical :: ~Intel i7-6500U (4) @ 3.1GHz~ (All virtual cores) - logical :: ~Intel i7-6500U (4) @ 3.1GHz~ (All virtual cores)
- physical :: ~Intel i7-6500U (2) @ 3.1GHz~ (All physical cores) - physical :: ~Intel i7-6500U (2) @ 3.1GHz~ (All physical cores)
- off :: ~Intel i7-6500U @ 3.1GHz~ - off :: ~Intel i7-6500U @ 3.1GHz~
#+begin_src sh #+begin_src sh
cpu_cores="off" cpu_cores="off"
#+end_src #+end_src
**** CPU temperature **** CPU temperature
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-CPU-CPU_temperature-a22e522c :CUSTOM_ID: Information_settings-Hardware-CPU-CPU_temperature-a22e522c
:END: :END:
This variable allows the user to hide or show the CPUs temperature, and if This variable allows the user to hide or show the CPUs temperature, and if shown, the user can display it in Celcius or Farenheit degrees. For FreeBSD and NetBSD-based systems, youll need to enable the ~coretemp~ kernel module. This only supports newer Intel processors.
shown, the user can display it in Celcius or Farenheit degrees. For FreeBSD - Default value :: ~"off"~
and NetBSD-based systems, youll need to enable the ~coretemp~ kernel - Values ::
module. This only supports newer Intel processors.
- Default value :: ~"off"~
- Values ::
- ~"C"~ - ~"C"~
- ~"F"~ - ~"F"~
- ~"off"~ - ~"off"~
- Flag :: ~--cpu_temp~ - Flag :: ~--cpu_temp~
- Supports :: Linux, BSD - Supports :: Linux, BSD
- Examples :: - Examples ::
- C :: ~Intel i7-6500U (4) @ 3.1GHz [27.2°C]~ - C :: ~Intel i7-6500U (4) @ 3.1GHz [27.2°C]~
- F :: ~Intel i7-6500U (4) @ 3.1GHz [82.0°F]~ - F :: ~Intel i7-6500U (4) @ 3.1GHz [82.0°F]~
- off :: ~Intel i7-6500U (4) @ 3.1GHz~ - off :: ~Intel i7-6500U (4) @ 3.1GHz~
#+begin_src sh #+begin_src sh
cpu_temp="off" cpu_temp="off"
#+end_src #+end_src
*** GPU *** GPU
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-GPU-2c842575 :CUSTOM_ID: Information_settings-Hardware-GPU-2c842575
:END: :END:
The function responsible for displaying information regarding the GPUs is 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~. It will try to list all available GPUs and display what it knows
about them.
**** GPU brand **** GPU brand
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-GPU-GPU_brand-6e2da615 :CUSTOM_ID: Information_settings-Hardware-GPU-GPU_brand-6e2da615
:END: :END:
This value allows the user to hide or show the brand of their GPU in the This value allows the user to hide or show the brand of their GPU in the output of ~gpu~.
output of ~gpu~. - Default value :: ~"on"~
- Default value :: ~"on"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--gpu_brand~ - Flag :: ~--gpu_brand~
- Supports :: - Supports ::
- Examples :: - Examples ::
- on :: ~AMD HD 7950~ - on :: ~AMD HD 7950~
- off :: ~HD 7950~ - off :: ~HD 7950~
#+begin_src sh #+begin_src sh
gpu_brand="off" gpu_brand="off"
#+end_src #+end_src
**** Which GPU to display **** Which GPU to display
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-GPU-Which_GPU_to_display-f40d3aac :CUSTOM_ID: Information_settings-Hardware-GPU-Which_GPU_to_display-f40d3aac
:END: :END:
This allows the user to choose which GPU appears in the output of the This allows the user to choose which GPU appears in the output of the function ~gpu~.
function ~gpu~. - Default value :: ~"all"~
- Default value :: ~"all"~ - Values ::
- Values ::
- ~"all"~ - ~"all"~
- ~"dedicated"~ - ~"dedicated"~
- ~"integrated"~ - ~"integrated"~
- Flag :: ~--gpu_type~ - Flag :: ~--gpu_type~
- Supports :: Linux - Supports :: Linux
- Examples :: - Examples ::
- all :: - all ::
#+BEGIN_SRC text #+BEGIN_SRC text
GPU1: AMD HD 7950 GPU1: AMD HD 7950
@ -505,25 +469,24 @@
#+END_SRC #+END_SRC
- dedicated :: ~GPU1: AMD HD 7950~ - dedicated :: ~GPU1: AMD HD 7950~
- integrated :: ~GPU1: Intel Integrated Graphics~ - integrated :: ~GPU1: Intel Integrated Graphics~
#+begin_src sh #+begin_src sh
gpu_type="all" gpu_type="all"
#+end_src #+end_src
*** Resolution *** Resolution
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Information_settings-Hardware-Resolution-b768f865 :CUSTOM_ID: Information_settings-Hardware-Resolution-b768f865
:END: :END:
This will try to list all the connected screens and display their resolution 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.
individually. It is possible to display the refresh rate or to hide it. - Default value :: ~"off"~
- Default value :: ~"off"~ - Values ::
- Values ::
- ~"on"~ - ~"on"~
- ~"off"~ - ~"off"~
- Flag :: ~--refresh_rate~ - Flag :: ~--refresh_rate~
- Supports :: Does not work on Windows - Supports :: Does not work on Windows
- Examples :: - Examples ::
- on :: ~1920x1080 @ 60Hz~ - on :: ~1920x1080 @ 60Hz~
- off :: ~1920x1080~ - off :: ~1920x1080~
#+begin_src sh #+begin_src sh
refresh_rate="off" refresh_rate="off"
#+end_src #+end_src

View File

@ -9,58 +9,51 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Introduction-a5320326 :CUSTOM_ID: Introduction-a5320326
:END: :END:
Picom is the successor to Compton, a standalone compositor for Xorg. It Picom is the successor to Compton, a standalone compositor for Xorg. It provides compositing for WM that do not provide any, such as i3. I am currently using [[https://github.com/ibhagwan/picom][ibhagwans fork of compton]] which provides the ~dual-kawase~ blur from [[https://github.com/tryone144/compton][tryones compton]] and rounded corners from [[https://github.com/sdhand/picom][sdhands compton]].
provides compositing for WM that do not provide any, such as i3. I am
currently using [[https://github.com/ibhagwan/picom][ibhagwans fork of compton]] which provides the ~dual-kawase~
blur from [[https://github.com/tryone144/compton][tryones compton]] and rounded corners from [[https://github.com/sdhand/picom][sdhands compton]].
* Shadows * Shadows
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Shadows-f4ffbb27 :CUSTOM_ID: Shadows-f4ffbb27
:END: :END:
The following enables client-side shadows on windows. Note desktop windows The following enables client-side shadows on windows. Note desktop windows (windows with ~_NET_WM_WINDOW_TYPE_DESKTOP~) never get shadow, unless explicitly requested using the wintypes option. I personally deactivated shadows because they dont work out too well with rounded corners.
(windows with ~_NET_WM_WINDOW_TYPE_DESKTOP~) never get shadow, unless #+BEGIN_SRC conf
explicitly requested using the wintypes option. I personally deactivated
shadows because they dont work out too well with rounded corners.
#+BEGIN_SRC conf
shadow = false; shadow = false;
#+END_SRC #+END_SRC
The blur radius radius for shadows is measured in pixels, and it defaults to The blur radius radius for shadows is measured in pixels, and it defaults to 12px.
12px. #+BEGIN_SRC conf
#+BEGIN_SRC conf
shadow-radius = 7; shadow-radius = 7;
#+END_SRC #+END_SRC
Picom can also apply some level of opacity on shadows. Picom can also apply some level of opacity on shadows.
| Default value | ~0.75~ | | Default value | ~0.75~ |
| Min value | ~0.0~ | | Min value | ~0.0~ |
| Max value | ~1.0~ | | Max value | ~1.0~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
shadow-opacity = 0.85 shadow-opacity = 0.85
#+END_SRC #+END_SRC
The left and top offsets for shadows are expressed in pixels. The left and top offsets for shadows are expressed in pixels.
| Default value | ~-15~ | | Default value | ~-15~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
shadow-offset-x = -5; shadow-offset-x = -5;
shadow-offset-y = -5; shadow-offset-y = -5;
#+END_SRC #+END_SRC
The following values have an impact on the shadows RGB color. The following values have an impact on the shadows RGB color.
| Default value | ~0.0~ | | Default value | ~0.0~ |
| Min value | ~0.0~ | | Min value | ~0.0~ |
| Max value | ~1.0~ | | Max value | ~1.0~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
shadow-red = 0.0; shadow-red = 0.0;
shadow-green = 0.0; shadow-green = 0.0;
shadow-blue = 0.0; shadow-blue = 0.0;
#+END_SRC #+END_SRC
It is possible to specify a list of conditions of windows that should have no It is possible to specify a list of conditions of windows that should have no
shadow. shadow.
| Default value | ~[]~ | | Default value | ~[]~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
shadow-exclude = [ shadow-exclude = [
"name = 'Notification'", "name = 'Notification'",
"class_g = 'Conky'", "class_g = 'Conky'",
@ -68,226 +61,196 @@
"class_g = 'Cairo-clock'", "class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c" "_GTK_FRAME_EXTENTS@:c"
]; ];
#+END_SRC #+END_SRC
It is also possible to specify an X geometry that describes the region in It is also possible to specify an X geometry that describes the region in
which shadows should not be painted in, such as a dock window region. For which shadows should not be painted in, such as a dock window region. For
example, example,
#+BEGIN_SRC conf :tangle no #+BEGIN_SRC conf :tangle no
# shadow-exclude-reg = "x10+0+0" # shadow-exclude-reg = "x10+0+0"
#+END_SRC #+END_SRC
would make the 10 pixels at the bottom of the screen not have any shadow would make the 10 pixels at the bottom of the screen not have any shadow
painted on. painted on.
| Default value | ~""~ | | Default value | ~""~ |
#+BEGIN_SRC conf :tangle no #+BEGIN_SRC conf :tangle no
shadow-exclude-reg = "" shadow-exclude-reg = ""
#+END_SRC #+END_SRC
Finally, it is also possible to crop the shadow of a window fully on a Finally, it is also possible to crop the shadow of a window fully on a
particular Xinerama screen to the screen. particular Xinerama screen to the screen.
- Default value :: ~false~ - Default value :: ~false~
#+BEGIN_SRC conf #+BEGIN_SRC conf
xinerama-shadow-crop = false xinerama-shadow-crop = false
#+END_SRC #+END_SRC
** Deprecated options ** Deprecated options
:PROPERTIES: :PROPERTIES:
:HEADER-ARGS:conf: :tangle no :HEADER-ARGS:conf: :tangle no
:CUSTOM_ID: Shadows-Deprecated_options-da215d5a :CUSTOM_ID: Shadows-Deprecated_options-da215d5a
:END: :END:
Options in this subheader *will not* be exported to my configuration file. Options in this subheader *will not* be exported to my configuration file.
Thanks to this value, Picom can avoid drawing shadows on dock or panel Thanks to this value, Picom can avoid drawing shadows on dock or panel windows. This option is deprecated, and users should use the ~wintypes~ option in their config file instead.
windows. This option is deprecated, and users should use the ~wintypes~ | Default value | ~false~ |
option in their config file instead. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
no-dock-shadow = false; no-dock-shadow = false;
#+END_SRC #+END_SRC
This option allows Picom not to draw on drag-and-drop windows. This option is This option allows Picom not to draw on drag-and-drop windows. This option is deprecated, and users should use the ~wintypes~ option in their config file instead.
deprecated, and users should use the ~wintypes~ option in their config file | Default value | ~false~ |
instead. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
no-dnd-shadow = false; no-dnd-shadow = false;
#+END_SRC #+END_SRC
~shadow-ignore-shaped~ is also deprecated. It used to indicate Picom not to ~shadow-ignore-shaped~ is also deprecated. It used to indicate Picom not to paint shadows on shaped windows. Note shaped windows here means windows setting their shape through X Shape extension. Those using ARGB background are beyond Picoms control. Since it is deprecated, you could instead use
paint shadows on shaped windows. Note shaped windows here means windows #+BEGIN_SRC conf :tangle no
setting their shape through X Shape extension. Those using ARGB background
are beyond Picoms control. Since it is deprecated, you could instead use
#+BEGIN_SRC conf :tangle no
shadow-exclude = 'bounding_shaped' shadow-exclude = 'bounding_shaped'
#+END_SRC #+END_SRC
or or
#+BEGIN_SRC conf :tangle no #+BEGIN_SRC conf :tangle no
shadow-exclude = 'bounding_shaped && !rounded_corners' shadow-exclude = 'bounding_shaped && !rounded_corners'
#+END_SRC #+END_SRC
| Default value | ~""~ | | Default value | ~""~ |
#+BEGIN_SRC conf :tangle no #+BEGIN_SRC conf :tangle no
shadow-ignore-shaped = "" shadow-ignore-shaped = ""
#+END_SRC #+END_SRC
* Rounded corners * Rounded corners
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Rounded_corners-33bfcd20 :CUSTOM_ID: Rounded_corners-33bfcd20
:END: :END:
A great feature added by ibhagwans fork of compton is the addition of rounded A great feature added by ibhagwans fork of picom is the addition of rounded corners from sdhands fork, and the Kawase blur (described [[#Background_blurring-55835066][here]]) from tryone144s fork. Here we can see the declaration of the corners radius:
corners from sdhands fork, and the Kawase blur (described [[#Background_blurring-55835066][here]]) from #+BEGIN_SRC conf
tryone144s fork. Here we can see the declaration of the corners radius:
#+BEGIN_SRC conf
corner-radius = 9.0; corner-radius = 9.0;
#+END_SRC #+END_SRC
It is also possible to exclude some windows from getting their corners It is also possible to exclude some windows from getting their corners rounded. I personally excluded any window generated by AwesomeWM.
rounded. I personally excluded any window generated by AwesomeWM. #+BEGIN_SRC conf
#+BEGIN_SRC conf
rounded-corners-exclude = [ rounded-corners-exclude = [
"_NET_WM_WINDOW_TYPE@[0]:a = '_NET_WM_WINDOW_TYPE_DOCK'" "_NET_WM_WINDOW_TYPE@[0]:a = '_NET_WM_WINDOW_TYPE_DOCK'"
]; ];
#+END_SRC #+END_SRC
* Fading * Fading
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Fading-419d8047 :CUSTOM_ID: Fading-419d8047
:END: :END:
Picom has the ability to create some fading effects on windows when opening or Picom has the ability to create some fading effects on windows when opening or closing or when the opacity changes. The following parameter toggles this feature on or off. However, its behavior can be changed with ~no-fading-openclose~.
closing or when the opacity changes. The following parameter toggles this | Default value | ~false~ |
feature on or off. However, its behavior can be changed with #+BEGIN_SRC conf
~no-fading-openclose~.
| Default value | ~false~ |
#+BEGIN_SRC conf
fading = true fading = true
#+END_SRC #+END_SRC
These values controls the opacity change between steps while fading in and These values controls the opacity change between steps while fading in and out.
out. | Default value | ~0.028~ (fade-in), ~0.03~ (fade-out) |
| Default value | ~0.028~ (fade-in), ~0.03~ (fade-out) | | Min value | ~0.01~ |
| Min value | ~0.01~ | | Max value | ~1.0~ |
| Max value | ~1.0~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
fade-in-step = 0.09; fade-in-step = 0.09;
fade-out-step = 0.08; fade-out-step = 0.08;
#+END_SRC #+END_SRC
This value represents the time between steps in fade steps, in milliseconds. This value represents the time between steps in fade steps, in milliseconds.
| Default value | ~10~ | | Default value | ~10~ |
| Min value | ~1~ | | Min value | ~1~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
fade-delta = 20; fade-delta = 20;
#+END_SRC #+END_SRC
It is possible to exclude some windows that should not be faded with a It is possible to exclude some windows that should not be faded with a specified list of conditions.
specified list of conditions. | Default value | ~[]~ |
| Default value | ~[]~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
fade-exclude = [ "class_g = 'mpv'" ]; fade-exclude = [ "class_g = 'mpv'" ];
#+END_SRC #+END_SRC
This option allows Picom not to create any fade on windows opening or closing. This option allows Picom not to create any fade on windows opening or closing.
| Default value | ~false~ | | Default value | ~false~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
no-fading-openclose = true; no-fading-openclose = true;
#+END_SRC #+END_SRC
Finally, this option is a workaround for Openbox, Fluxbox and others by not Finally, this option is a workaround for Openbox, Fluxbox and others by not fading destroyed ARGB windows with WM frame.
fading destroyed ARGB windows with WM frame. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
no-fading-destroyed-argb = false no-fading-destroyed-argb = false
#+END_SRC #+END_SRC
* Transparency and opacity * Transparency and opacity
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Transparency_and_opacity-6c6b36d2 :CUSTOM_ID: Transparency_and_opacity-6c6b36d2
:END: :END:
Picom is also able to create some opacity or transparency for windows, Picom is also able to create some opacity or transparency for windows, depending on their state or on some user-defined rules. For instance, the following value describes the opacity of inactive windows.
depending on their state or on some user-defined rules. For instance, the | Default value | ~1.0~ |
following value describes the opacity of inactive windows. | Min value | ~0.1~ |
| Default value | ~1.0~ | | Max value | ~1.0~ |
| Min value | ~0.1~ | #+BEGIN_SRC conf
| Max value | ~1.0~ |
#+BEGIN_SRC conf
inactive-opacity = 0.6; inactive-opacity = 0.6;
#+END_SRC #+END_SRC
On the other hand, it is possible to declare a default opacity for active On the other hand, it is possible to declare a default opacity for active windows.
windows. | Default value | ~1.0~ |
| Default value | ~1.0~ | | Min value | ~0.1~ |
| Min value | ~0.1~ | | Max value | ~1.0~ |
| Max value | ~1.0~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
active-opacity = 1; active-opacity = 1;
#+END_SRC #+END_SRC
This however describes the opacity of window titlebars and borders. This however describes the opacity of window titlebars and borders.
| Default value | ~1.0~ | | Default value | ~1.0~ |
| Min value | ~0.1~ | | Min value | ~0.1~ |
| Max value | ~1.0~ | | Max value | ~1.0~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
frame-opacity = 1.0; frame-opacity = 1.0;
#+END_SRC #+END_SRC
~menu-opacity~ describes the opacity for dropdown menus and popup menus. ~menu-opacity~ describes the opacity for dropdown menus and popup menus.
| Default value | ~1.0~ | | Default value | ~1.0~ |
| Min value | ~0.1~ | | Min value | ~0.1~ |
| Max value | ~1.0~ | | Max value | ~1.0~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
# menu-opacity = 0.9; # menu-opacity = 0.9;
#+END_SRC #+END_SRC
~inactive-opacity-override~ allows the user to let inactive opacity set by ~inactive-opacity-override~ allows the user to let inactive opacity set by ~-i~ override the ~_NET_WM_OPACITY_ values of windows.
~-i~ override the ~_NET_WM_OPACITY_ values of windows. | Default value | ~true~ |
| Default value | ~true~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
inactive-opacity-override = true; inactive-opacity-override = true;
#+END_SRC #+END_SRC
While it is possible to alter opacity on inactive windows, it is also possible While it is possible to alter opacity on inactive windows, it is also possible to dim them.
to dim them. | Default value | ~1.0~ |
| Default value | ~1.0~ | | Min value | ~0.1~ |
| Min value | ~0.1~ | | Max value | ~1.0~ |
| Max value | ~1.0~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
# inactive-dim = 1.0 # inactive-dim = 1.0
#+END_SRC #+END_SRC
It is also possible to use a fixed inactive dim value, instead of adjusting It is also possible to use a fixed inactive dim value, instead of adjusting according to window opacity.
according to window opacity. | Default value | ~1.0~ |
| Default value | ~1.0~ | | Min value | ~0.1~ |
| Min value | ~0.1~ | | Max value | ~1.0~ |
| Max value | ~1.0~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
# inactive-dim-fixed = 1.0 # inactive-dim-fixed = 1.0
#+END_SRC #+END_SRC
It is also possible to specify a list of conditions of windows that should It is also possible to specify a list of conditions of windows that should always be considered focused.
always be considered focused. | Default value | ~[]~ |
| Default value | ~[]~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
focus-exclude = [ "class_g = 'mpv'" ]; focus-exclude = [ "class_g = 'mpv'" ];
#+END_SRC #+END_SRC
The user can also specify a list of opacity rules, in the format The user can also specify a list of opacity rules, in the format ~PERCENT:PATTERN~, like ~50:name *= "Firefox"~ . ~picom-trans~ is recommended over this. Note we don't make any guarantee about possible conflicts with other programs that set ~_NET_WM_WINDOW_OPACITY~ on frame or client windows.
~PERCENT:PATTERN~, like ~50:name *= "Firefox"~. picom-trans is recommended | Default value | ~[]~ |
over this. Note we don't make any guarantee about possible conflicts with #+BEGIN_SRC conf
other programs that set ~_NET_WM_WINDOW_OPACITY~ on frame or client windows. opacity-rule = [];
| Default value | ~[]~ | #+END_SRC
#+BEGIN_SRC conf
opacity-rule = [
"85:class_g = 'Polybar'",
# "55:class_g *?= 'Rofi'",
];
#+END_SRC
* Background blurring * Background blurring
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Background_blurring-55835066 :CUSTOM_ID: Background_blurring-55835066
:END: :END:
The following are the parameters for background blurring, see the \*BLUR\* The following are the parameters for background blurring, see the \*BLUR\* section for more information.
section for more information. #+BEGIN_SRC conf
#+BEGIN_SRC conf
blur: { blur: {
method = "dual_kawase"; method = "dual_kawase";
strength = 7; strength = 7;
@ -295,306 +258,249 @@
background-frame = false; background-frame = false;
background-fixed = false; background-fixed = false;
} }
#+END_SRC #+END_SRC
This value enables or disables the blur for the background of semi-transparent This value enables or disables the blur for the background of semi-transparent or ARGB windows. It has bad performances though, with driver-dependent behavior. The name of the switch may change without prior notifications.
or ARGB windows. It has bad performances though, with driver-dependent | Default value | ~false~ |
behavior. The name of the switch may change without prior notifications. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
blur-background = true; blur-background = true;
#+END_SRC #+END_SRC
Blur background of windows when the window frame is not opaque. If true, this Blur background of windows when the window frame is not opaque. If true, this implies the value ~true~ for ~blur-background~.
implies the value ~true~ for ~blur-background~. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
blur-background-frame = true; blur-background-frame = true;
#+END_SRC #+END_SRC
The following determines whether to use fixed blur strength rather than The following determines whether to use fixed blur strength rather than adjusting according to window opacity.
adjusting according to window opacity. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
blur-background-fixed = false; blur-background-fixed = false;
#+END_SRC #+END_SRC
Specify the blur convolution kernel, with the format Specify the blur convolution kernel, with the format ~"5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"~.
~"5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"~. | Default value | ~""~ |
| Default value | ~""~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
# blur-kern = "3x3box"; # blur-kern = "3x3box";
blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
#+END_SRC #+END_SRC
It is possible to write exclude conditions for background blur. It is possible to write exclude conditions for background blur.
| Default value | ~[]~ | | Default value | ~[]~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
blur-background-exclude = [ blur-background-exclude = [
"window_type = 'desktop'", "window_type = 'desktop'",
"class_g = 'Polybar'", "class_g = 'Polybar'",
"class_g = 'discord-overlay'", "class_g = 'discord-overlay'",
"_GTK_FRAME_EXTENTS@:c" "_GTK_FRAME_EXTENTS@:c"
]; ];
#+END_SRC #+END_SRC
* General settings * General settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: General_settings-41398de7 :CUSTOM_ID: General_settings-41398de7
:END: :END:
Daemonize process. Fork to background after initialization. Causes issues Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
with certain (badly-written) drivers. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
daemon = true; daemon = true;
#+END_SRC #+END_SRC
Picom has three backends it can use: ~xrender~, ~glx~, and ~xr_glx_hybrid~. Picom has three backends it can use: ~xrender~, ~glx~, and ~xr_glx_hybrid~. GLX backend is typically much faster but depends on a sane driver.
GLX backend is typically much faster but depends on a sane driver. | Default value | ~xrender~ |
| Default value | ~xrender~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
backend = "glx"; backend = "glx";
#+END_SRC #+END_SRC
This enables or disables VSync. This enables or disables VSync.
| Default value | ~false~ | | Default value | ~false~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
vsync = true; vsync = true;
#+END_SRC #+END_SRC
Enable remote control via D-Bus. See the *D-BUS API* section below for more Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
details. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
dbus = false; dbus = false;
#+END_SRC #+END_SRC
Try to detect WM windows (a non-override-redirect window with no child that Try to detect WM windows (a non-override-redirect window with no child that has ~WM_STATE~) and markz them as active.
has ~WM_STATE~) and markz them as active. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
mark-wmwin-focused = true; mark-wmwin-focused = true;
#+END_SRC #+END_SRC
Mark override-redirect windows that doesn't have a child window with Mark override-redirect windows that doesn't have a child window with ~WM_STATE~ focused.
~WM_STATE~ focused. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
mark-ovredir-focused = true; mark-ovredir-focused = true;
#+END_SRC #+END_SRC
Try to detect windows with rounded corners and don't consider them shaped Try to detect windows with rounded corners and don't consider them shaped windows. The accuracy is not very high, unfortunately.
windows. The accuracy is not very high, unfortunately. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
detect-rounded-corners = true; detect-rounded-corners = true;
#+END_SRC #+END_SRC
Detect ~_NET_WM_OPACITY~ on client windows, useful for window managers not Detect ~_NET_WM_OPACITY~ on client windows, useful for window managers not passing ~_NET_WM_OPACITY~ of client windows to frame windows.
passing ~_NET_WM_OPACITY~ of client windows to frame windows. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
detect-client-opacity = true; detect-client-opacity = true;
#+END_SRC #+END_SRC
Specify refresh rate of the screen. If not specified or 0, picom will try Specify refresh rate of the screen. If not specified or 0, picom will try detecting this with X RandR extension.
detecting this with X RandR extension. | Default value | ~60~ |
| Default value | ~60~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf refresh-rate = 120;
refresh-rate = 60; #+END_SRC
#+END_SRC
Limit picom to repaint at most once every 1 / ~refresh_rate~ second to boost Limit picom to repaint at most once every 1 / ~refresh_rate~ second to boost performance. This should not be used with
performance. This should not be used with #+BEGIN_SRC text :tangle no
#+BEGIN_SRC text :tangle no
vsync drm/opengl/opengl-oml vsync drm/opengl/opengl-oml
#+END_SRC #+END_SRC
as they essentially does sw-opti's job already, unless you wish to specify a as they essentially does sw-opti's job already, unless you wish to specify a lower refresh rate than the actual value.
lower refresh rate than the actual value. | Default value | ~""~ |
| Default value | ~""~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
# sw-opti =; # sw-opti =;
#+END_SRC #+END_SRC
Use EWMH ~_NET_ACTIVE_WINDOW~ to determine currently focused window, rather Use EWMH ~_NET_ACTIVE_WINDOW~ to determine currently focused window, rather than listening to ~FocusIn~/~FocusOut~ event. Might have more accuracy, provided that the WM supports it.
than listening to ~FocusIn~/~FocusOut~ event. Might have more accuracy, | Default value | ~false~ |
provided that the WM supports it. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
# use-ewmh-active-win = false; # use-ewmh-active-win = false;
#+END_SRC #+END_SRC
Unredirect all windows if a full-screen opaque window is detected, to maximize Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows. Known to cause flickering when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
performance for full-screen windows. Known to cause flickering when | Default value | ~false~ |
redirecting/unredirecting windows. paint-on-overlay may make the flickering #+BEGIN_SRC conf
less obvious.
| Default value | ~false~ |
#+BEGIN_SRC conf
unredir-if-possible = false; unredir-if-possible = false;
#+END_SRC #+END_SRC
Delay before unredirecting the window, in milliseconds. Delay before unredirecting the window, in milliseconds.
| Default value | ~0~ | | Default value | ~0~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
unredir-if-possible-delay = 0; unredir-if-possible-delay = 0;
#+END_SRC #+END_SRC
Conditions of windows that shouldn't be considered full-screen for Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
unredirecting screen. | Default value | ~[]~ |
| Default value | ~[]~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
unredir-if-possible-exclude = []; unredir-if-possible-exclude = [];
#+END_SRC #+END_SRC
Use ~WM_TRANSIENT_FOR~ to group windows, and consider windows in the same Use ~WM_TRANSIENT_FOR~ to group windows, and consider windows in the same group focused at the same time.
group focused at the same time. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
detect-transient = true; detect-transient = true;
#+END_SRC #+END_SRC
Use ~WM_CLIENT_LEADER~ to group windows, and consider windows in the same Use ~WM_CLIENT_LEADER~ to group windows, and consider windows in the same group focused at the same time. ~WM_TRANSIENT_FOR~ has higher priority if detect-transient is enabled, too.
group focused at the same time. ~WM_TRANSIENT_FOR~ has higher priority if | Default value | ~false~ |
detect-transient is enabled, too. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
detect-client-leader = true; detect-client-leader = true;
#+END_SRC #+END_SRC
Resize damaged region by a specific number of pixels. A positive value Resize damaged region by a specific number of pixels. A positive value enlarges it while a negative one shrinks it. If the value is positive, those additional pixels will not be actually painted to screen, only used in blur calculation, and such. (Due to technical limitations, with use-damage, those pixels will still be incorrectly painted to screen.) Primarily used to fix the line corruption issues of blur, in which case you should use the blur radius value here (e.g. with a 3x3 kernel, you should use ~--resize-damage 1~, with a 5x5 one you use ~--resize-damage 2~, and so on). May or may not work with ~--glx-no-stencil~. Shrinking doesn't function correctly.
enlarges it while a negative one shrinks it. If the value is positive, those | Default value | ~1~ |
additional pixels will not be actually painted to screen, only used in blur #+BEGIN_SRC conf
calculation, and such. (Due to technical limitations, with use-damage, those
pixels will still be incorrectly painted to screen.) Primarily used to fix the
line corruption issues of blur, in which case you should use the blur radius
value here (e.g. with a 3x3 kernel, you should use ~--resize-damage 1~, with a
5x5 one you use ~--resize-damage 2~, and so on). May or may not work with
*--glx-no-stencil*. Shrinking doesn't function correctly.
| Default value | ~1~ |
#+BEGIN_SRC conf
resize-damage = 1; resize-damage = 1;
#+END_SRC #+END_SRC
Specify a list of conditions of windows that should be painted with inverted Specify a list of conditions of windows that should be painted with inverted color. Resource-hogging, and is not well tested.
color. Resource-hogging, and is not well tested. | Default value | ~[]~ |
| Default value | ~[]~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
invert-color-include = []; invert-color-include = [];
#+END_SRC #+END_SRC
Disable the use of damage information. This cause the whole screen to be Disable the use of damage information. This cause the whole screen to be redrawn everytime, instead of the part of the screen has actually changed. Potentially degrades the performance, but might fix some artifacts. The opposing option is use-damage
redrawn everytime, instead of the part of the screen has actually changed. | Default value | ~false~ |
Potentially degrades the performance, but might fix some artifacts. The #+BEGIN_SRC conf
opposing option is use-damage
| Default value | ~false~ |
#+BEGIN_SRC conf
use-damage = false; use-damage = false;
#+END_SRC #+END_SRC
Use X Sync fence to sync clients' draw calls, to make sure all draw calls are Use X Sync fence to sync clients' draw calls, to make sure all draw calls are finished before picom starts drawing. Needed on nvidia-drivers with GLX backend for some users.
finished before picom starts drawing. Needed on nvidia-drivers with GLX | Default value | ~false~ |
backend for some users. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
xrender-sync-fence = false; xrender-sync-fence = false;
#+END_SRC #+END_SRC
Force all windows to be painted with blending. Useful if you have a Force all windows to be painted with blending. Useful if you have a glx-fshader-win that could turn opaque pixels transparent.
glx-fshader-win that could turn opaque pixels transparent. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
force-win-blend = false; force-win-blend = false;
#+END_SRC #+END_SRC
Do not use EWMH to detect fullscreen windows. Reverts to checking if a window Do not use EWMH to detect fullscreen windows. Reverts to checking if a window is fullscreen based only on its size and coordinates.
is fullscreen based only on its size and coordinates. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
no-ewmh-fullscreen = false; no-ewmh-fullscreen = false;
#+END_SRC #+END_SRC
Dimming bright windows so their brightness doesn't exceed this set value. Dimming bright windows so their brightness doesn't exceed this set value. Brightness of a window is estimated by averaging all pixels in the window, so this could comes with a performance hit. Setting this to 1.0 disables this behaviour. Requires ~--use-damage~ to be disabled.
Brightness of a window is estimated by averaging all pixels in the window, so | Default value | ~1.0~ |
this could comes with a performance hit. Setting this to 1.0 disables this #+BEGIN_SRC conf
behaviour. Requires ~--use-damage~ to be disabled.
| Default value | ~1.0~ |
#+BEGIN_SRC conf
max-brightness = 1.0; max-brightness = 1.0;
#+END_SRC #+END_SRC
Make transparent windows clip other windows like non-transparent windows do, Make transparent windows clip other windows like non-transparent windows do, instead of blending on top of them.
instead of blending on top of them. | Default value | ~false~ |
| Default value | ~false~ | #+BEGIN_SRC conf
#+BEGIN_SRC conf
transparent-clipping = false; transparent-clipping = false;
#+END_SRC #+END_SRC
Set the log level. Possible values are: Set the log level. Possible values are:
- ~trace~ - ~trace~
- ~debug~ - ~debug~
- ~info~ - ~info~
- ~warn~ - ~warn~
- ~error~ - ~error~
in increasing level of importance. Case doesn't matter. If using the "TRACE" in increasing level of importance. Case doesn't matter. If using the "TRACE" log level, it's better to log into a file using ~--log-file~, since it can generate a huge stream of logs.
log level, it's better to log into a file using ~--log-file~, since it can | Default value | ~"debug"~ |
generate a huge stream of logs. #+BEGIN_SRC conf
| Default value | ~"debug"~ |
#+BEGIN_SRC conf
log-level = "warn"; log-level = "warn";
#+END_SRC #+END_SRC
Set the log file. If ~--log-file~ is never specified, logs will be written to Set the log file. If ~--log-file~ is never specified, logs will be written to stderr. Otherwise, logs will to written to the given file, though some of the early logs might still be written to the stderr. When setting this option from the config file, it is recommended to use an absolute path.
stderr. Otherwise, logs will to written to the given file, though some of the | Default value | ~''~ |
early logs might still be written to the stderr. When setting this option from #+BEGIN_SRC conf
the config file, it is recommended to use an absolute path.
| Default value | ~''~ |
#+BEGIN_SRC conf
# log-file = '/path/to/your/log/file'; # log-file = '/path/to/your/log/file';
#+END_SRC #+END_SRC
Show all X errors (for debugging) Show all X errors (for debugging)
| Default value | ~false~ | | Default value | ~false~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
# show-all-xerrors = false; # show-all-xerrors = false;
#+END_SRC #+END_SRC
Write process ID to a file. Write process ID to a file.
| Default value | ~''~ | | Default value | ~''~ |
#+BEGIN_SRC conf #+BEGIN_SRC conf
# write-pid-path = '/path/to/your/log/file'; # write-pid-path = '/path/to/your/log/file';
#+END_SRC #+END_SRC
Window type settings. ~WINDOW_TYPE~ is one of the 15 window types defined in Window type settings. ~WINDOW_TYPE~ is one of the 15 window types defined in EWMH standard:
EWMH standard: - ~"unknown"~
- ~"unknown"~ - ~"desktop"~
- ~"desktop"~ - ~"dock"~
- ~"dock"~ - ~"toolbar"~
- ~"toolbar"~ - ~"menu"~
- ~"menu"~ - ~"utility"~
- ~"utility"~ - ~"splash"~
- ~"splash"~ - ~"dialog"~
- ~"dialog"~ - ~"normal"~
- ~"normal"~ - ~"dropdown_menu"~
- ~"dropdown_menu"~ - ~"popup_menu"~
- ~"popup_menu"~ - ~"tooltip"~
- ~"tooltip"~ - ~"notification"~
- ~"notification"~ - ~"combo"~
- ~"combo"~ - ~"dnd"~
- ~"dnd"~ Following per window-type options are available:
Following per window-type options are available: - fade, shadow :: Controls window-type-specific shadow and fade settings.
- fade, shadow :: Controls window-type-specific shadow and fade settings. - opacity :: Controls default opacity of the window type.
- opacity :: Controls default opacity of the window type. - focus :: Controls whether the window of this type is to be always considered focused. (By default, all window types except "normal" and "dialog" has this on.)
- focus :: Controls whether the window of this type is to be always considered - full-shadow :: Controls whether shadow is drawn under the parts of the window that you normally won't be able to see. Useful when the window has parts of it transparent, and you want shadows in those areas.
focused. (By default, all window types except "normal" and "dialog" has this - redir-ignore :: Controls whether this type of windows should cause screen to become redirected again after been unredirected. If you have unredir-if-possible set, and doesn't want certain window to cause unnecessary screen redirection, you can set this to `true`.
on.) #+BEGIN_SRC conf
- full-shadow :: Controls whether shadow is drawn under the parts of the
window that you normally won't be able to see. Useful when the window has
parts of it transparent, and you want shadows in those areas.
- redir-ignore :: Controls whether this type of windows should cause screen to
become redirected again after been unredirected. If you have
unredir-if-possible set, and doesn't want certain window to cause
unnecessary screen redirection, you can set this to `true`.
#+BEGIN_SRC conf
wintypes: wintypes:
{ {
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
@ -603,33 +509,26 @@
popup_menu = { opacity = 0.8; } popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; } dropdown_menu = { opacity = 0.8; }
}; };
#+END_SRC #+END_SRC
** GLX backend-specific options ** GLX backend-specific options
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: General_settings-GLX_backend-specific_options-43892981 :CUSTOM_ID: General_settings-GLX_backend-specific_options-43892981
:END: :END:
Avoid using stencil buffer, useful if you don't have a stencil buffer. Might Avoid using stencil buffer, useful if you don't have a stencil buffer. Might cause incorrect opacity when rendering transparent content (but never practically happened) and may not work with blur-background. Tests show a 15% performance boost. Recommended.
cause incorrect opacity when rendering transparent content (but never | Default value | ~false~ |
practically happened) and may not work with blur-background. Tests show a 15% #+BEGIN_SRC conf
performance boost. Recommended.
| Default value | ~false~ |
#+BEGIN_SRC conf
glx-no-stencil = true; glx-no-stencil = true;
#+END_SRC #+END_SRC
Avoid rebinding pixmap on window damage. Probably could improve performance Avoid rebinding pixmap on window damage. Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). Recommended if it works.
on rapid window content changes, but is known to break things on some drivers | Default value | ~false~ |
(LLVMpipe, xf86-video-intel, etc.). Recommended if it works. #+BEGIN_SRC conf
| Default value | ~false~ |
#+BEGIN_SRC conf
glx-no-rebind-pixmap = false; glx-no-rebind-pixmap = false;
#+END_SRC #+END_SRC
Use specified GLSL fragment shader for rendering window contents. See Use specified GLSL fragment shader for rendering window contents. See ~compton-default-fshader-win.glsl~ and ~compton-fake-transparency-fshader-win.glsl~ in the source tree for examples.
~compton-default-fshader-win.glsl~ and | Default value | ~''~ |
~compton-fake-transparency-fshader-win.glsl~ in the source tree for examples. #+BEGIN_SRC conf :tangle no
| Default value | ~''~ |
#+BEGIN_SRC conf :tangle no
glx-fshader-win = ''; glx-fshader-win = '';
#+END_SRC #+END_SRC

File diff suppressed because it is too large Load Diff

View File

@ -10,117 +10,99 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Introduction-465e99fe :CUSTOM_ID: Introduction-465e99fe
:END: :END:
The ~.rustfmt.toml~ file located in the ~$HOME~ directory is a global The ~.rustfmt.toml~ file located in the ~$HOME~ directory is a global configuration file for Rusts code formatters, such as ~rustfmt~. In this file, you can find how my Rust code is always formatted.
configuration file for Rusts code formatters, such as ~rustfmt~. In this
file, you can find how my Rust code is always formatted.
* General settings * General settings
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: General_settings-7f5cb2f6 :CUSTOM_ID: General_settings-7f5cb2f6
:END: :END:
First, we are using the 2018 edition of Rust. First, we are using the 2018 edition of Rust.
#+BEGIN_SRC toml #+BEGIN_SRC toml
edition = "2018" edition = "2018"
#+END_SRC #+END_SRC
Put single-expression functions on a single line.
Put single-expression functions on a single line. #+BEGIN_SRC toml
#+BEGIN_SRC toml
fn_single_line = true fn_single_line = true
#+END_SRC #+END_SRC
Format string literals where necessary.
Format string literals where necessary. #+BEGIN_SRC toml
#+BEGIN_SRC toml
format_strings = true format_strings = true
#+END_SRC #+END_SRC
Maximum width of each line
Maximum width of each line #+BEGIN_SRC toml
#+BEGIN_SRC toml
max_width = 80 max_width = 80
#+END_SRC #+END_SRC
Merge multiple imports into a single nested import.
Merge multiple imports into a single nested import. #+BEGIN_SRC toml
#+BEGIN_SRC toml
merge_imports = true merge_imports = true
#+END_SRC #+END_SRC
* Structs and Enums * Structs and Enums
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Structs_and_Enums-6a2a856d :CUSTOM_ID: Structs_and_Enums-6a2a856d
:END: :END:
The maximum length of enum variant having discriminant, that gets vertically The maximum length of enum variant having discriminant, that gets vertically aligned with others. Variants without discriminants would be ignored for the purpose of alignment.
aligned with others. Variants without discriminants would be ignored for the
purpose of alignment.
Note that this is not how much whitespace is inserted, but instead the longest Note that this is not how much whitespace is inserted, but instead the longest variant name that doesn't get ignored when aligning.
variant name that doesn't get ignored when aligning. #+BEGIN_SRC toml
#+BEGIN_SRC toml
enum_discrim_align_threshold = 20 enum_discrim_align_threshold = 20
#+END_SRC #+END_SRC
The maximum diff of width between struct fields to be aligned with each other.
The maximum diff of width between struct fields to be aligned with each other. #+BEGIN_SRC toml
#+BEGIN_SRC toml
struct_field_align_threshold = 20 struct_field_align_threshold = 20
#+END_SRC #+END_SRC
Reorder impl items. ~type~ and ~const~ are put first, then macros and methods.
Reorder impl items. ~type~ and ~const~ are put first, then macros and methods. #+BEGIN_SRC toml
#+BEGIN_SRC toml
reorder_impl_items = true reorder_impl_items = true
#+END_SRC #+END_SRC
* Comments * Comments
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Comments-b1904bb0 :CUSTOM_ID: Comments-b1904bb0
:END: :END:
Convert ~/* */~ comments to ~//~ comments where possible. Convert ~/* */~ comments to ~//~ comments where possible.
#+BEGIN_SRC toml #+BEGIN_SRC toml
normalize_comments = true normalize_comments = true
#+END_SRC #+END_SRC
Break comments to fit on the line.
Break comments to fit on the line. #+BEGIN_SRC toml
#+BEGIN_SRC toml
wrap_comments = true wrap_comments = true
#+END_SRC #+END_SRC
Report ~FIXME~ items in comments.
Report ~FIXME~ items in comments. #+BEGIN_SRC toml
#+BEGIN_SRC toml
report_fixme = "Always" report_fixme = "Always"
#+END_SRC #+END_SRC
Report ~TODO~ items in comments.
Report ~TODO~ items in comments. #+BEGIN_SRC toml
#+BEGIN_SRC toml
todo = "Always" todo = "Always"
#+END_SRC #+END_SRC
* Documentation * Documentation
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Documentation-0c7981c7 :CUSTOM_ID: Documentation-0c7981c7
:END: :END:
Format code snippet included in doc comments. Format code snippet included in doc comments.
#+BEGIN_SRC toml #+BEGIN_SRC toml
format_code_in_doc_comments = true format_code_in_doc_comments = true
#+END_SRC #+END_SRC
Convert ~#![doc]~ and ~#[doc]~ attributes to ~//!~ and ~///~ doc comments.
Convert ~#![doc]~ and ~#[doc]~ attributes to ~//!~ and ~///~ doc comments. #+BEGIN_SRC toml
#+BEGIN_SRC toml
normalize_doc_attributes = true normalize_doc_attributes = true
#+END_SRC #+END_SRC
* Whitespace * Whitespace
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Whitespace-e8792b44 :CUSTOM_ID: Whitespace-e8792b44
:END: :END:
Use tab characters for indentation, spaces for alignment.
Use tab characters for indentation, spaces for alignment. #+BEGIN_SRC toml
#+BEGIN_SRC toml
hard_tabs = false hard_tabs = false
#+END_SRC #+END_SRC
Number of spaces per tab.
Number of spaces per tab. #+BEGIN_SRC toml
#+BEGIN_SRC toml
tab_spaces = 4 tab_spaces = 4
#+END_SRC #+END_SRC
I want newlines to always be Unix style.
I want newlines to always be Unix style. #+BEGIN_SRC toml
#+BEGIN_SRC toml
newline_style = "Unix" newline_style = "Unix"
#+END_SRC #+END_SRC

View File

@ -10,396 +10,334 @@
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Presentation-0b37c6c0 :CUSTOM_ID: Presentation-0b37c6c0
:END: :END:
I dont really use tmux often, but I certainly do like a nice presentation and I dont really use tmux often, but I certainly do like a nice presentation and useful features, hence this configuration. This config file is inspired by gpakoszs tmux configuration repo you can find [[https://github.com/gpakosz/.tmux][here]].
useful features, hence this configuration. This config file is inspired by
gpakoszs tmux configuration repo you can find [[https://github.com/gpakosz/.tmux][here]].
* Windows and pane creation * Windows and pane creation
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Windows_and_pane_creation-66275518 :CUSTOM_ID: Windows_and_pane_creation-66275518
:END: :END:
Whether if a new *window* will retain the current path. Possible values are: Whether if a new *window* will retain the current path. Possible values are:
- true - ~true~
- false (default) - ~false~ (default)
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
tmux_conf_new_window_retain_current_path=true tmux_conf_new_window_retain_current_path=true
#+END_SRC #+END_SRC
Whether if a new *pane* should retain the current path. Possible values are:
Whether if a new *pane* should retain the current path. Possible values are: - ~true~ (default)
- true (default) - ~false~
- false #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix tmux_conf_new_window_retain_current_path=true
tmux_conf_new_window_retain_current_path=true #+END_SRC
#+END_SRC Whether or not tmux should attempt to reconnect to the current ssh session. This is still experimental. Possible values are:
- ~true~
Whether or not tmux should attempt to reconnect to the current ssh session. - ~false~ (default)
This is still experimental. Possible values are: #+BEGIN_SRC conf-unix
- true tmux_conf_new_pane_reconnect_ssh=true
- false (default) #+END_SRC
#+BEGIN_SRC conf-unix Whether tmux should prompt for new session name when creating a new one. Possible values are:
tmux_conf_new_pane_reconnect_ssh=true - ~true~
#+END_SRC - ~false~ (default)
#+BEGIN_SRC conf-unix
Whether tmux should prompt for new session name when creating a new one. tmux_conf_new_session_prompt=false
Possible values are: #+END_SRC
- true
- false (default)
#+BEGIN_SRC conf-unix
tmux_conf_new_session_prompt=false
#+END_SRC
* Display * Display
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Display-d5ae1908 :CUSTOM_ID: Display-d5ae1908
:END: :END:
Whether to activate RGB 24-bit color support (only available in tmux >= 2.2). Whether to activate RGB 24-bit color support (only available in tmux >= 2.2). Possible values are:
Possible values are: - ~true~
- true - ~false~ (default)
- false (default) #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix tmux_conf_theme_24b_colour=false
tmux_conf_theme_24b_colour=false #+END_SRC
#+END_SRC These variables are for chosing the window style. I use the default one.
#+BEGIN_SRC conf-unix
These variables are for chosing the window style. I use the default one.
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_fg='default' tmux_conf_theme_window_fg='default'
tmux_conf_theme_window_bg='default' tmux_conf_theme_window_bg='default'
#+END_SRC #+END_SRC
Whether the focused pane should be highlighted (only available in tmux >= 2.1). Possible values are:
Whether the focused pane should be highlighted (only available in tmux >= - ~true~
2.1). Possible values are: - ~false~ (default)
- true #+BEGIN_SRC conf-unix
- false (default)
#+BEGIN_SRC conf-unix
tmux_conf_theme_highlight_focused_pane=false tmux_conf_theme_highlight_focused_pane=false
#+END_SRC #+END_SRC
Set the terminal title. Built-in variables are:
Set the terminal title. Built-in variables are: - =#{circled_window_index}=
- =#{circled_window_index}= - =#{circled_session_name}=
- =#{circled_session_name}= - =#{hostname}=
- =#{hostname}= - =#{hostname_ssh}=
- =#{hostname_ssh}= - =#{username}=
- =#{username}= - =#{username_ssh}=
- =#{username_ssh}= #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_terminal_title='#h ❐ #S ● #I #W' tmux_conf_theme_terminal_title='#h ❐ #S ● #I #W'
#+END_SRC #+END_SRC
These variables set the left/right separators between sections. With the current values, you dont need to install Powerline, but only fonts patched with Powerline symbols or the standalone PowerlineSymbols.otf font.
These variables set the left/right separators between sections. With the #+BEGIN_SRC conf-unix
current values, you dont need to install Powerline, but only fonts patched
with Powerline symbols or the standalone PowerlineSymbols.otf font.
#+BEGIN_SRC conf-unix
tmux_conf_theme_left_separator_main='\uE0B0' tmux_conf_theme_left_separator_main='\uE0B0'
tmux_conf_theme_left_separator_sub='\uE0B1' tmux_conf_theme_left_separator_sub='\uE0B1'
tmux_conf_theme_right_separator_main='\uE0B2' tmux_conf_theme_right_separator_main='\uE0B2'
tmux_conf_theme_right_separator_sub='\uE0B3' tmux_conf_theme_right_separator_sub='\uE0B3'
#+END_SRC #+END_SRC
** Colors and style ** Colors and style
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Display-Colors_and_style-0994a014 :CUSTOM_ID: Display-Colors_and_style-0994a014
:END: :END:
Colors displayed in tmux can be chosen thanks to the following variables. Any Colors displayed in tmux can be chosen thanks to the following variables. Any color should be formatted as a hexadecimal RGB value preceded by a pound sign =#= (e.g. =#00afff= for light blue) or =default= to let our terminal set it for us.
color should be formatted as a hexadecimal RGB value preceded by a pound sign
=#= (e.g. =#00afff= for light blue) or =default= to let our terminal set it
for us.
Choose the style of the pane borders. Possible values are: Choose the style of the pane borders. Possible values are:
- thin (default) - ~thin~ (default)
- fat - ~fat~
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
tmux_conf_theme_pane_border_style=thin tmux_conf_theme_pane_border_style=thin
#+END_SRC #+END_SRC
Declare what the colors of the focused pane should be. The first variable specifies the foreground color, the other the background color.
Declare what the colors of the focused pane should be. The first variable #+BEGIN_SRC conf-unix
specifies the foreground color, the other the background color.
#+BEGIN_SRC conf-unix
tmux_conf_theme_focused_pane_fg='default' tmux_conf_theme_focused_pane_fg='default'
tmux_conf_theme_focused_pane_bg='#0087d7' tmux_conf_theme_focused_pane_bg='#0087d7'
#+END_SRC #+END_SRC
Here you can set the colors of the pane borders.
Here you can set the colors of the pane borders. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_pane_border='#444444' tmux_conf_theme_pane_border='#444444'
tmux_conf_theme_pane_active_border='#00afff' tmux_conf_theme_pane_active_border='#00afff'
#+END_SRC #+END_SRC
With these variables, you can set the colors for the pane indicators.
With these variables, you can set the colors for the pane indicators. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_pane_indicator='#00afff' tmux_conf_theme_pane_indicator='#00afff'
tmux_conf_theme_pane_active_indicator='#00afff' tmux_conf_theme_pane_active_indicator='#00afff'
#+END_SRC #+END_SRC
These variables set the colors and the style of the status line.
These variables set the colors and the style of the status line. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_message_fg='#000000' tmux_conf_theme_message_fg='#000000'
tmux_conf_theme_message_bg='#ffff00' tmux_conf_theme_message_bg='#ffff00'
tmux_conf_theme_message_attr='bold' tmux_conf_theme_message_attr='bold'
#+END_SRC #+END_SRC
Same as above for the status line command style.
Same as above for the status line command style. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_message_command_fg='#ffff00' tmux_conf_theme_message_command_fg='#ffff00'
tmux_conf_theme_message_command_bg='#000000' tmux_conf_theme_message_command_bg='#000000'
tmux_conf_theme_message_command_attr='bold' tmux_conf_theme_message_command_attr='bold'
#+END_SRC #+END_SRC
These variables set the style of the window modes.
These variables set the style of the window modes. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_mode_fg='#000000' tmux_conf_theme_mode_fg='#000000'
tmux_conf_theme_mode_bg='#ffff00' tmux_conf_theme_mode_bg='#ffff00'
tmux_conf_theme_mode_attr='bold' tmux_conf_theme_mode_attr='bold'
#+END_SRC #+END_SRC
Set the style of the status line.
Set the style of the status line. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_status_fg='#8a8a8a' tmux_conf_theme_status_fg='#8a8a8a'
tmux_conf_theme_status_bg='#080808' tmux_conf_theme_status_bg='#080808'
tmux_conf_theme_status_attr='none' tmux_conf_theme_status_attr='none'
#+END_SRC #+END_SRC
** Window status bar ** Window status bar
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Display-Window_status_bar-dff37ae7 :CUSTOM_ID: Display-Window_status_bar-dff37ae7
:END: :END:
The following variables are to set the windows status style and format. The following variables are to set the windows status style and format.
Sets the colors and style of the window status. Sets the colors and style of the window status.
#+BEGIN_SRC conf-unix #+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_fg='#8a8a8a' tmux_conf_theme_window_status_fg='#8a8a8a'
tmux_conf_theme_window_status_bg='#080808' tmux_conf_theme_window_status_bg='#080808'
tmux_conf_theme_window_status_attr='none' tmux_conf_theme_window_status_attr='none'
#+END_SRC #+END_SRC
Sets the format of the window status. Built-in variables are:
Sets the format of the window status. Built-in variables are: - =#{circled_window_index}=
- =#{circled_window_index}= - =#{circled_session_name}=
- =#{circled_session_name}= - =#{hostname}=
- =#{hostname}= - =#{hostname_ssh}=
- =#{hostname_ssh}= - =#{username}=
- =#{username}= - =#{username_ssh}=
- =#{username_ssh}= #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix tmux_conf_theme_window_status_format='#I #W'
tmux_conf_theme_window_status_format='#I #W' #+END_SRC
#+END_SRC Sets the colors and style of the current window status.
#+BEGIN_SRC conf-unix
Sets the colors and style of the current window status.
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_current_fg='#000000' tmux_conf_theme_window_status_current_fg='#000000'
tmux_conf_theme_window_status_current_bg='#00afff' tmux_conf_theme_window_status_current_bg='#00afff'
tmux_conf_theme_window_status_current_attr='bold' tmux_conf_theme_window_status_current_attr='bold'
#+END_SRC #+END_SRC
Sets the format of the currentwindow status. Built-in variables are:
Sets the format of the currentwindow status. Built-in variables are: - =#{circled_window_index}=
- =#{circled_window_index}= - =#{circled_session_name}=
- =#{circled_session_name}= - =#{hostname}=
- =#{hostname}= - =#{hostname_ssh}=
- =#{hostname_ssh}= - =#{username}=
- =#{username}= - =#{username_ssh}=
- =#{username_ssh}= #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_current_format='#I #W' tmux_conf_theme_window_status_current_format='#I #W'
#+END_SRC #+END_SRC
Sets the window activity status style.
Sets the window activity status style. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_activity_fg='default' tmux_conf_theme_window_status_activity_fg='default'
tmux_conf_theme_window_status_activity_bg='default' tmux_conf_theme_window_status_activity_bg='default'
tmux_conf_theme_window_status_activity_attr='underscore' tmux_conf_theme_window_status_activity_attr='underscore'
#+END_SRC #+END_SRC
Sets the window bell status style.
Sets the window bell status style. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_bell_fg='#ffff00' tmux_conf_theme_window_status_bell_fg='#ffff00'
tmux_conf_theme_window_status_bell_bg='default' tmux_conf_theme_window_status_bell_bg='default'
tmux_conf_theme_window_status_bell_attr='blink,bold' tmux_conf_theme_window_status_bell_attr='blink,bold'
#+END_SRC #+END_SRC
Sets the window last status style.
Sets the window last status style. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_window_status_last_fg='#00afff' tmux_conf_theme_window_status_last_fg='#00afff'
tmux_conf_theme_window_status_last_bg='default' tmux_conf_theme_window_status_last_bg='default'
tmux_conf_theme_window_status_last_attr='none' tmux_conf_theme_window_status_last_attr='none'
#+END_SRC #+END_SRC
Sets the left and right content of the status bar of tmux. Sections should be separated with =|=, subsections with =,=. The built-in values are:
Sets the left and right content of the status bar of tmux. Sections should be - =#{battery_bar}=
separated with =|=, subsections with =,=. The built-in values are: - =#{battery_hbar}=
- =#{battery_bar}= - =#{battery_percentage}=
- =#{battery_hbar}= - =#{battery_status}=
- =#{battery_percentage}= - =#{battery_vbar}=
- =#{battery_status}= - =#{circled_session_name}=
- =#{battery_vbar}= - =#{hostname_ssh}=
- =#{circled_session_name}= - =#{hostname}=
- =#{hostname_ssh}= - =#{loadavg}=
- =#{hostname}= - =#{pairing}=
- =#{loadavg}= - =#{prefix}=
- =#{pairing}= - =#{root}=
- =#{prefix}= - =#{synchronized}=
- =#{root}= - =#{uptime_y}=
- =#{synchronized}= - =#{uptime_d}= (modulo 365 when =#{uptime_y}= is used)
- =#{uptime_y}= - =#{uptime_h}=
- =#{uptime_d}= (modulo 365 when =#{uptime_y}= is used) - =#{uptime_m}=
- =#{uptime_h}= - =#{uptime_s}=
- =#{uptime_m}= - =#{username}=
- =#{uptime_s}= - =#{username_ssh}=
- =#{username}= #+BEGIN_SRC conf-unix
- =#{username_ssh}=
#+BEGIN_SRC conf-unix
tmux_conf_theme_status_left=' ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} ' tmux_conf_theme_status_left=' ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} '
tmux_conf_theme_status_right='#{prefix}#{pairing}#{synchronized} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} ' tmux_conf_theme_status_right='#{prefix}#{pairing}#{synchronized} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} '
#+END_SRC #+END_SRC
Sets the left status style and colors.
Sets the left status style and colors. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4' tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4'
tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff' tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff'
tmux_conf_theme_status_left_attr='bold,none,none' tmux_conf_theme_status_left_attr='bold,none,none'
#+END_SRC #+END_SRC
Sets the right status style and colors.
Sets the right status style and colors. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000' tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000'
tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4' tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4'
tmux_conf_theme_status_right_attr='none,none,bold' tmux_conf_theme_status_right_attr='none,none,bold'
#+END_SRC #+END_SRC
Set the pairing indicator, its style and its attribute.
Set the pairing indicator, its style and its attribute. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_pairing='👓 ' # U+1F453 tmux_conf_theme_pairing='👓 ' # U+1F453
tmux_conf_theme_pairing_fg='none' tmux_conf_theme_pairing_fg='none'
tmux_conf_theme_pairing_bg='none' tmux_conf_theme_pairing_bg='none'
tmux_conf_theme_pairing_attr='none' tmux_conf_theme_pairing_attr='none'
#+END_SRC #+END_SRC
Set the pairing indicator, its style and its attribute.
Set the pairing indicator, its style and its attribute. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
# prefix indicator # prefix indicator
tmux_conf_theme_prefix='⌨ ' # U+2328 tmux_conf_theme_prefix='⌨ ' # U+2328
tmux_conf_theme_prefix_fg='none' tmux_conf_theme_prefix_fg='none'
tmux_conf_theme_prefix_bg='none' tmux_conf_theme_prefix_bg='none'
tmux_conf_theme_prefix_attr='none' tmux_conf_theme_prefix_attr='none'
#+END_SRC #+END_SRC
Set the root indicator, its style and its attribute.
Set the root indicator, its style and its attribute. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_root='!' tmux_conf_theme_root='!'
tmux_conf_theme_root_fg='none' tmux_conf_theme_root_fg='none'
tmux_conf_theme_root_bg='none' tmux_conf_theme_root_bg='none'
tmux_conf_theme_root_attr='bold,blink' tmux_conf_theme_root_attr='bold,blink'
#+END_SRC #+END_SRC
Set the synchronized indicator, its style and its attribute.
Set the synchronized indicator, its style and its attribute. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_theme_synchronized='🔒' # U+1F512 tmux_conf_theme_synchronized='🔒' # U+1F512
tmux_conf_theme_synchronized_fg='none' tmux_conf_theme_synchronized_fg='none'
tmux_conf_theme_synchronized_bg='none' tmux_conf_theme_synchronized_bg='none'
tmux_conf_theme_synchronized_attr='none' tmux_conf_theme_synchronized_attr='none'
#+END_SRC #+END_SRC
Set the battery bar symbols.
Set the battery bar symbols. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_battery_bar_symbol_full='◼' tmux_conf_battery_bar_symbol_full='◼'
tmux_conf_battery_bar_symbol_empty='◻' tmux_conf_battery_bar_symbol_empty='◻'
#+END_SRC #+END_SRC
Set the battery bar length in terms of amount of symbols. Possible values are:
Set the battery bar length in terms of amount of symbols. Possible values - =auto=
are: - an integer number, e.g. 5
- =auto= #+BEGIN_SRC conf-unix
- an integer number, e.g. 5
#+BEGIN_SRC conf-unix
tmux_conf_battery_bar_length='auto' tmux_conf_battery_bar_length='auto'
#+END_SRC #+END_SRC
Set the battery bar palette. Possible values are:
Set the battery bar palette. Possible values are: - =gradient= (default)
- =gradient= (default) - =heat=
- =heat= - =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB value preceded by a pound symbol =#=.
- =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB #+BEGIN_SRC conf-unix
value preceded by a pound symbol =#=.
#+BEGIN_SRC conf-unix
tmux_conf_battery_bar_palette='gradient' tmux_conf_battery_bar_palette='gradient'
#tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000' #tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000'
#+END_SRC #+END_SRC
Set the hbar palette. Possible values are:
Set the hbar palette. Possible values are: - =gradient= (default)
- =gradient= (default) - =heat=
- =heat= - =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB value preceded by a pound symbol =#=.
- =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB #+BEGIN_SRC conf-unix
value preceded by a pound symbol =#=.
#+BEGIN_SRC conf-unix
tmux_conf_battery_hbar_palette='gradient' tmux_conf_battery_hbar_palette='gradient'
#+END_SRC #+END_SRC
Set the vbar palette. Possible values are:
Set the vbar palette. Possible values are: - =gradient= (default)
- =gradient= (default) - =heat=
- =heat= - =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB value preceded by a pound symbol =#=.
- =color_full_fg,color_empty_fg,color_bg= with each being an hexadecimal RGB #+BEGIN_SRC conf-unix
value preceded by a pound symbol =#=.
#+BEGIN_SRC conf-unix
tmux_conf_battery_vbar_palette='gradient' tmux_conf_battery_vbar_palette='gradient'
#+END_SRC #+END_SRC
Set symbols used to indicate whether the battery is charging or discharging.
Set symbols used to indicate whether the battery is charging or discharging. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_battery_status_charging='⚡ ' # U+26A1 tmux_conf_battery_status_charging='⚡ ' # U+26A1
tmux_conf_battery_status_discharging='🔋 ' # U+1F50B tmux_conf_battery_status_discharging='🔋 ' # U+1F50B
# tmux_conf_battery_status_charging='↑' # U+2191 # tmux_conf_battery_status_charging='↑' # U+2191
# tmux_conf_battery_status_discharging='↓' # U+2193 # tmux_conf_battery_status_discharging='↓' # U+2193
#tmux_conf_battery_status_charging='🔌 ' # U+1F50C #tmux_conf_battery_status_charging='🔌 ' # U+1F50C
#+END_SRC #+END_SRC
Set the clock style. If it is displayed on the right side of the status bar, it might be better to use =%I:%M %p= rather than =%R= in =tmux_conf_theme_status_right=.
Set the clock style. If it is displayed on the right side of the status bar, #+BEGIN_SRC conf-unix
it might be better to use =%I:%M %p= rather than =%R= in
=tmux_conf_theme_status_right=.
#+BEGIN_SRC conf-unix
tmux_conf_theme_clock_colour='#00afff' tmux_conf_theme_clock_colour='#00afff'
tmux_conf_theme_clock_style='24' tmux_conf_theme_clock_style='24'
#+END_SRC #+END_SRC
* Clipboard * Clipboard
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Clipboard-66d0d03a :CUSTOM_ID: Clipboard-66d0d03a
:END: :END:
Whether if in copy mode, copying the selection also copies to the OS Whether if in copy mode, copying the selection also copies to the OS clipboard. Possible values are:
clipboard. Possible values are: - ~true~
- true - ~false~ (default)
- false (default) #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
tmux_conf_copy_to_os_clipboard=false tmux_conf_copy_to_os_clipboard=false
#+END_SRC #+END_SRC
* User customizations * User customizations
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: User_customizations-c913b5d7 :CUSTOM_ID: User_customizations-c913b5d7
:END: :END:
Here we can override or undo some setting from settings from tmux. First, we Here we can override or undo some setting from settings from tmux. First, we can increase the history size.
can increase the history size. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
set -g history-limit 10000 set -g history-limit 10000
#+END_SRC #+END_SRC
We can also start with mouse mode enabled. But I dont.
We can also start with mouse mode enabled. But I dont. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
#set -g mouse on #set -g mouse on
#+END_SRC #+END_SRC
Whether or not Vi mode should be enabled. But really, we should rather export the =VISUAL= or =EDITOR= environment variables, see the tmux manual. Although I dont, as said in my dotfish, I prefer to use Emacs.
Whether or not Vi mode should be enabled. But really, we should rather export #+BEGIN_SRC conf-unix
the =VISUAL= or =EDITOR= environment variables, see the tmux manual. Although
I dont, as said in my dotfish, I prefer to use Emacs.
#+BEGIN_SRC conf-unix
#set -g status-keys vi #set -g status-keys vi
#set -g mode-keys vi #set -g mode-keys vi
#+END_SRC #+END_SRC
Replace =C-b= by =C-a= instead of using both prefixes. I personally prefer to just use =C-b=, hence why the lines are commented.
Replace =C-b= by =C-a= instead of using both prefixes. I personally prefer to #+BEGIN_SRC conf-unix
just use =C-b=, hence why the lines are commented.
#+BEGIN_SRC conf-unix
# set -gu prefix2 # set -gu prefix2
# unbind C-a # unbind C-a
# unbind C-b # unbind C-b
# set -g prefix C-a # set -g prefix C-a
# bind C-a send-prefix # bind C-a send-prefix
#+END_SRC #+END_SRC
Move the status line to the top.
Move the status line to the top. #+BEGIN_SRC conf-unix
#+BEGIN_SRC conf-unix
#set -g status-position top #set -g status-position top
#+END_SRC #+END_SRC