diff --git a/docs/alacritty.html b/docs/alacritty.html index 05b8423..86590ee 100644 --- a/docs/alacritty.html +++ b/docs/alacritty.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Alacritty Configuration @@ -16,21 +16,21 @@ UP | HOME -
+

Alacritty Configuration

-
+

Table of Contents

- -
-

Fonts

-
+
+

Fonts

+
font:
   normal:
@@ -55,9 +55,9 @@
 
-
-

Colors

-
+
+

Colors

+
colors:
   primary:
@@ -108,7 +108,7 @@
 

Author: Dehaeze Thomas

-

Created: 2021-06-20 dim. 14:22

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/android.html b/docs/android.html index 28ede9e..7aa8a09 100644 --- a/docs/android.html +++ b/docs/android.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Android Phone @@ -16,56 +16,56 @@ UP | HOME -
+

Android Phone

-
+

Table of Contents

- -
-

Install

-
+
+

Install

+
-
-

Unlock the bootloader

-
+
+

Unlock the bootloader

+
-
-

Flash ROM

-
+ -
-

Root

-
+ -
-

Further work

-
+ -
-

Favorite Apps

-
- +
+

Favorite Apps

+
+
@@ -366,7 +366,7 @@ Tutorial: https://www.yout
Table 1: Open Source Apps
- +
@@ -435,7 +435,7 @@ Tutorial: https://www.yout
Table 2: Close Source Apps
- +
@@ -469,13 +469,13 @@ Tutorial: https://www.yout -
-

Tutorials

-
+
+

Tutorials

+
-
-

Backup

-
+ -
-

Connect to the phone by SSH

-
+
+

Connect to the phone by SSH

+

https://wiki.termux.com/wiki/Bypassing_NAT

@@ -506,7 +506,7 @@ An other option would be to use Wireguard and shen to ssh.

Author: Dehaeze Thomas

-

Created: 2021-06-20 dim. 14:21

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/applications.html b/docs/applications.html index e4a19d7..603521f 100644 --- a/docs/applications.html +++ b/docs/applications.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Desktop file for the applications - + @@ -16,31 +16,29 @@ UP | HOME -
+

Desktop file for the applications

-
+

Table of Contents

- -
-

Mime Applications

-
+
+

Mime Applications

+
[Default Applications]
 text/plain=nvim.desktop
@@ -74,9 +72,9 @@
 
-
-

Neomutt

-
+
+

Neomutt

+
[Desktop Entry]
 Name=Neomutt
@@ -92,37 +90,16 @@
 
-
-

Weechat

-
-
-
[Desktop Entry]
-Encoding=UTF-8
-MultipleArgs=false
-Terminal=false
-Exec=$TERMINAL --class=WeeChat -e 'weechat'
-StartupWMClass=WeeChat
-Icon=/usr/share/icons/Papirus/64x64/apps/weechat.svg
-Type=Application
-Categories=Network;IRCClient;
-StartupNotify=true
-Name=WeeChat
-GenericName=IRC Client
-
-
-
-
- -
-

Matlab

-
+
+

Matlab

+
[Desktop Entry]
 Version=R2020b
 Type=Application
 Terminal=false
 MimeType=text/x-matlab
-Exec=/usr/local/MATLAB/R2020b/bin/matlab -desktop
+Exec=/home/thomas/.local/bin/matlab -desktop
 Name=MATLAB
 Icon=matlab
 Categories=Development;Math;Science
@@ -133,9 +110,9 @@
 
-
-

Neovim

-
+
+

Neovim

+
[Desktop Entry]
 Name=Neovim
@@ -154,9 +131,9 @@
 
-
-

Images

-
+
+

Images

+
[Desktop Entry]
 Type=Application
@@ -167,9 +144,9 @@
 
-
-

Org-Protocol

-
+
+

Org-Protocol

+
[Desktop Entry]
 Name=org-protocol
@@ -183,9 +160,9 @@
 
-
-

Ranger

-
+
+

Ranger

+
[Desktop Entry]
 Type=Application
@@ -200,9 +177,9 @@
 
-
-

Emacs Client

-
+
+

Emacs Client

+
[Desktop Entry]
 Name=Emacs Client
@@ -219,22 +196,9 @@
 
-
-

Torrent with Transmission

-
-
-
[Desktop Entry]
-Type=Application
-Name=Torrent
-Exec=tremc %U
-
-
-
-
- -
-

Qutebrowser

-
+
+

Qutebrowser

+
[Desktop Entry]
 Name=qutebrowser
@@ -255,9 +219,9 @@
 
-
-

Zathura

-
+
+

Zathura

+
[Desktop Entry]
 Version=1.0
@@ -276,7 +240,7 @@
 

Author: Dehaeze Thomas

-

Created: 2021-02-10 mer. 17:57

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/bash.html b/docs/bash.html index 7531ddd..07fc9f6 100644 --- a/docs/bash.html +++ b/docs/bash.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Bash Configuration @@ -24,55 +24,55 @@
-
-

SVG to PNG

-
+
+

SVG to PNG

+
svg2png_function() { \
     if command -v inkscape &> /dev/null; then
@@ -1148,9 +823,9 @@ List of useful programs:
 
-
-

SVG to PDF

-
+
+

SVG to PDF

+
svg2pdf_function() { \
     if command -v inkscape &> /dev/null; then
@@ -1162,9 +837,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert SVG Files
 svg2() { \
@@ -1189,9 +864,9 @@ List of useful programs:
 
-
-

PDF files

-
+
+

PDF files

+

List of useful programs:

@@ -1206,9 +881,9 @@ List of useful programs:
-
-

PDF to PNG

-
+
+

PDF to PNG

+
pdf2png_function() { \
     if command -v pdftocairo &> /dev/null; then
@@ -1226,9 +901,9 @@ List of useful programs:
 
-
-

PDF to SVG

-
+
+

PDF to SVG

+
pdf2svg_function() { \
     if command -v pdftocairo &> /dev/null; then
@@ -1244,9 +919,9 @@ List of useful programs:
 
-
-

PDF Reduce Size

-
+
+

PDF Reduce Size

+
pdfreduce_function() { \
     if command -v gs &> /dev/null; then
@@ -1259,9 +934,9 @@ List of useful programs:
 
-
-

PDF Trim

-
+
+

PDF Trim

+
pdftrim_function() { \
     if command -v pdfcrop &> /dev/null; then
@@ -1273,9 +948,9 @@ List of useful programs:
 
-
-

PDF Extract Pages

-
+
+

PDF Extract Pages

+
pdfextract_function() { \
     if command -v pdftk &> /dev/null; then
@@ -1312,9 +987,9 @@ List of useful programs:
 
-
-

Delete First Page

-
+
+

Delete First Page

+
pdf_delete_first_page_function() { \
     if command -v stapler &> /dev/null; then
@@ -1328,9 +1003,9 @@ List of useful programs:
 
-
-

Remove Annotations

-
+
+

Remove Annotations

+
pdf_remove_annotations_function() { \
     if command -v pdftk &> /dev/null; then
@@ -1344,9 +1019,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert PDF Files
 pdf2() { \
@@ -1386,9 +1061,9 @@ List of useful programs:
 
-
-

DVI files

-
+
+

DVI files

+

List of useful programs:

@@ -1398,9 +1073,9 @@ List of useful programs:
-
-

DVI to PNG

-
+
+

DVI to PNG

+
dvi2png_function() { \
     if command -v dvipng &> /dev/null; then
@@ -1412,9 +1087,9 @@ List of useful programs:
 
-
-

DVI to SVG

-
+
+

DVI to SVG

+
dvi2svg_function() { \
     if command -v dvisvgm &> /dev/null; then
@@ -1426,9 +1101,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert DVI Files
 dvi2() { \
@@ -1453,13 +1128,13 @@ List of useful programs:
 
-
-

DOCX/PTTX files

-
+
+

DOCX/PTTX files

+
-
-

DOC to PDF

-
+
+

DOC to PDF

+
doc2pdf_function() { \
     if command -v lowriter &> /dev/null; then
@@ -1471,9 +1146,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert DOCX/PPTX Files
 docx2() { \
@@ -1495,13 +1170,13 @@ List of useful programs:
 
-
-

GIF files

-
+
+

GIF files

+
-
-

GIF to PNG

-
+
+

GIF to PNG

+
gif2png_function() { \
     if command -v convert &> /dev/null; then
@@ -1513,9 +1188,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert GIF Files
 gif2() { \
@@ -1537,13 +1212,13 @@ List of useful programs:
 
-
-

PNG files

-
+
+

PNG files

+
-
-

PNG to PDF

-
+
+

PNG to PDF

+
png2pdf_function() { \
     if command -v convert &> /dev/null; then
@@ -1555,9 +1230,9 @@ List of useful programs:
 
-
-

PNG to JPG

-
+
+

PNG to JPG

+
png2jpg_function() { \
     if command -v convert &> /dev/null; then
@@ -1569,9 +1244,9 @@ List of useful programs:
 
-
-

PNG Trim

-
+
+

PNG Trim

+
pngtrim_function() { \
     if command -v convert &> /dev/null; then
@@ -1583,9 +1258,9 @@ List of useful programs:
 
-
-

PNG Resize

-
+
+

PNG Resize

+
pngresize_function() { \
     if command -v convert &> /dev/null; then
@@ -1604,9 +1279,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert PNG Files
 png2() { \
@@ -1637,13 +1312,13 @@ List of useful programs:
 
-
-

JPG files

-
+
+

JPG files

+
-
-

JPG to PDF

-
+
+

JPG to PDF

+
jpg2pdf_function() { \
     if command -v convert &> /dev/null; then
@@ -1655,9 +1330,9 @@ List of useful programs:
 
-
-

JPG Resize

-
+
+

JPG Resize

+
jpgresize_function() { \
     if command -v convert &> /dev/null; then
@@ -1676,9 +1351,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert JPG Files
 jpg2() { \
@@ -1703,13 +1378,13 @@ List of useful programs:
 
-
-

MP4 files

-
+
+

MP4 files

+
-
-

MP4 to GIF

-
+
+

MP4 to GIF

+
mp42gif_function() { \
     if command -v ffmpeg &> /dev/null; then
@@ -1733,9 +1408,9 @@ List of useful programs:
 
-
-

Main function

-
+
+

Main function

+
# Convert MP4 Files
 mp42() { \
@@ -1757,9 +1432,100 @@ List of useful programs:
 
-
-

Case statement

-
+
+

Case statement

+
+
+
case "$in_ext" in
+    "svg")
+        svg2
+        ;;
+    "gif")
+        gif2
+        ;;
+    "dvi")
+        dvi2
+        ;;
+    "pdf")
+        pdf2
+        ;;
+    "mp4")
+        mp42
+        ;;
+    "png")
+        png2
+        ;;
+    "jpg")
+        jpg2
+        ;;
+    "jpeg")
+        jpg2
+        ;;
+    "docx")
+        docx2
+        ;;
+    "pttx")
+        docx2
+        ;;
+esac
+
+
+
+
+
+ +
+

preview-file - Preview any file

+
+
+
+

Get basic information about the file

+
+
+
# Get filename
+filename_with_extension=$(basename -- "$1")
+# Extract extension of the file
+in_ext="${filename_with_extension##*.}"
+# filename without extension
+filename_without_extension=${filename_with_extension%.*}
+
+
+
+
+ +
+

SVG files

+
+
+
# Convert SVG Files
+svg2() { \
+    if command -v inkscape &> /dev/null; then
+        inkscape --export-type="$out_ext" "$filename_with_extension" --export-filename="/tmp/$filename_without_extension.pdf" && zathura "/tmp/$filename_without_extension.pdf"
+    fi
+}
+
+
+
+
+ +
+

DOCX files

+
+
+
# Convert DOCX/PPTX Files
+docx2() { \
+    if command -v lowriter &> /dev/null; then
+        lowriter --convert-to pdf "$filename_with_extension" --outdir /tmp/ && zathura "/tmp/$filename_without_extension.pdf"
+    fi
+}
+
+
+
+
+ +
+

Case statement

+
case "$in_ext" in
     "svg")
@@ -1951,13 +1717,12 @@ Run some simple calculations with rofi.
 
 # Send the password to the clipboard
 printf "$pass" | xclip -sel clip &&  \
-    dunstify 'Password' 'Generated'
+    notify-send 'Password' 'Generated'
 
-

sxhkd-help - List of keybindings using Rofi

@@ -1972,7 +1737,7 @@ Run some simple calculations with rofi.

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/bspwm.html b/docs/bspwm.html index c33489a..df42108 100644 --- a/docs/bspwm.html +++ b/docs/bspwm.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + BSPWM - + @@ -16,24 +16,24 @@ UP | HOME -
+

BSPWM

-
+

Table of Contents

- -
-

List Desktops

-
+
+

List Desktops

+
bspc monitor -d code web mail misc figs
 
@@ -41,9 +41,9 @@
-
-

Basic Config

-
+
+

Basic Config

+
bspc config border_width         1
 bspc config window_gap           8
@@ -59,9 +59,9 @@ bspc config focus_follows_pointer       true
 
-
-

Colors

-
+
+

Colors

+
bspc config normal_border_color \#32302f
 bspc config focused_border_color \#bdae93
@@ -70,9 +70,9 @@ bspc config focused_border_color \#bdae93
 
-
-

Rules

-
+
+

Rules

+

Use xprop to obtain information about the window.

@@ -93,9 +93,9 @@ bspc rule --add Blueman-manager state=flo
-
-

Run Polybar and SXHKD

-
+
+

Run Polybar and SXHKD

+
polybar top >>/tmp/polybar.log 2>&1 &
 sxhkd -m 1 -c ~/.config/sxhkd/sxhkdrc.bspwm &
@@ -106,7 +106,7 @@ sxhkd -m 1 -c ~/.config/sxhkd/
 

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:43

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/calendar-contact.html b/docs/calendar-contact.html index 24dee58..e409e42 100644 --- a/docs/calendar-contact.html +++ b/docs/calendar-contact.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Calendar and Contact Configuration @@ -22,17 +22,17 @@

Table of Contents

-
-

vdirsyncer - Synchronize calendars and contacts

-
+
+

vdirsyncer - Synchronize calendars and contacts

+
[general]
 status_path = "~/.config/vdirsyncer/status/"
@@ -47,7 +47,7 @@
 type = "caldav"
 url = "https://radicale.tdehaeze.xyz/tdehaeze/"
 username = "tdehaeze"
-password = "<<get-password(passname='radicale.tdehaeze.xyz/tdehaeze')>>"
+password.fetch = ["command", "get-pass", "radicale.tdehaeze.xyz/tdehaeze"]
 
 [storage radicale_calendar_local]
 type = "filesystem"
@@ -64,7 +64,7 @@
 type = "caldav"
 url = "https://calendar.esrf.fr/egroupware/groupdav.php/calendar"
 username = "dehaeze"
-password = "<<get-password(passname='esrf.fr/dehaeze')>>"
+password.fetch = ["command", "get-pass", "esrf.fr/dehaeze"]
 
 [storage esrf_calendar_local]
 type = "filesystem"
@@ -86,15 +86,15 @@
 type = "carddav"
 url = "https://radicale.tdehaeze.xyz/tdehaeze/"
 username = "tdehaeze"
-password = "<<get-password(passname='radicale.tdehaeze.xyz/tdehaeze')>>"
+password.fetch = ["command", "get-pass", "radicale.tdehaeze.xyz/tdehaeze"]
 
-
-

khal - CLI calendar application

-
+
+

khal - CLI calendar application

+
[calendars]
 
@@ -139,9 +139,9 @@
 
-
-

khard - CLI contact application

-
+
+

khard - CLI contact application

+
[addressbooks]
 [[contacts]]
@@ -163,7 +163,7 @@
 # append nicknames to name column: yes / no
 show_nicknames = no
 # show uid table column: yes / no
-show_uids = yes
+show_uids = no
 # sort by first or last name: first_name / last_name
 sort = last_name
 # localize dates: yes / no
@@ -207,15 +207,15 @@ To share an event by email, the currently best way to proceed is to first find t
 
 
if [[ -f $1 ]]; then
-    resp=$(echo -e "yes\nno" | rofi -i -only-match -dmenu -p "Would you like to add the event:" -mesg "`khal printics $1 | tail -n +2`")
+    resp=$(echo -e "yes\nno" | rofi -i -only-match -dmenu -p "Would you like to add the event:" -mesg "`khal printics \"$1\" | tail -n +2`")
 
     if [[ "$resp" == "yes" ]]; then
         calendar=$(echo "`khal printcalendars`" | rofi -i -only-match -dmenu -p "Save to:")
         if [ -z "$calendar" ]; then
             exit;
         fi
-        khal import -a "$calendar" --batch $1 && \
-            dunstify "Calendar" "Even added";
+        khal import -a "$calendar" --batch "$1" && \
+            notify-send --hint=string:x-dunst-stack-tag:fJeNG8gc "Calendar" "Even added";
     fi
 fi
 
@@ -225,7 +225,7 @@ To share an event by email, the currently best way to proceed is to first find t

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/compositor.html b/docs/compositor.html index 6476018..a9b22a0 100644 --- a/docs/compositor.html +++ b/docs/compositor.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Picom (Compositor) - + @@ -16,24 +16,24 @@ UP | HOME -
+

Picom (Compositor)

-
+

Table of Contents

- -
-

Shadow

-
+
+

Shadow

+
shadow = true;
 shadow-radius = 12;
@@ -53,9 +53,9 @@
 
-
-

Opacity

-
+
+

Opacity

+
inactive-opacity = 1.0;
 frame-opacity = 1.0;
@@ -65,9 +65,9 @@
 
-
-

Fading

-
+
+

Fading

+
fading = false;
 fade-in-step = 0.03;
@@ -77,9 +77,9 @@
 
-
-

Other

-
+
+

Other

+
backend = "xrender";
 mark-wmwin-focused = true;
@@ -92,9 +92,9 @@
 
-
-

Window Type Setting

-
+
+

Window Type Setting

+
wintypes:
 {
@@ -109,7 +109,7 @@
 

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:43

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/config.html b/docs/config.html index b810fa3..36c2af0 100644 --- a/docs/config.html +++ b/docs/config.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Configuration Files @@ -22,55 +22,63 @@

Table of Contents

-
-

SSH

-
+
+

SSH

+
AddKeysToAgent  yes
 
+Host *
+   ControlMaster auto
+   ControlPath ~/.ssh/master-%r@%h:%p.socket
+
 Host homelab
     hostname <<get-password(passname="ip/homelab")>>
     Port 22
     user thomas
     IdentityFile ~/.ssh/id_rsa
 
-Host router
-    hostname 192.168.1.1
-    Port 22
-    user root
+Host *.esrf.fr
+    User dehaeze
     IdentityFile ~/.ssh/id_rsa
 
-Host smarttv
-    hostname 192.168.1.73
-    Port 22
-    user thomas
-    IdentityFile ~/.ssh/id_rsa
+Host firewall.esrf.fr
+    Port 5022
+    Compression yes
 
-Host oneplus
-    hostname 192.168.1.101
-    Port 8022
+Match host *.esrf.fr !host firewall.esrf.fr !exec "~/.ssh/esrf-test"
+    ProxyJump firewall.esrf.fr
+
+
+Host rnice
+    Port 22
+    user dehaeze
     IdentityFile ~/.ssh/id_rsa
 
+ +
+
test -n "$(timeout 1s dig +short proxy.esrf.fr.)"
+
+
-
-

Font

-
+
+

Font

+
<?xml version='1.0'?>
 <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
@@ -99,9 +107,9 @@ Host oneplus
 
-
-

GnuPG

-
+
+

GnuPG

+
default-cache-ttl 60480000
 max-cache-ttl 60480000
@@ -110,9 +118,9 @@ max-cache-ttl 60480000
 
-
-

Redshift

-
+
+

Redshift

+
[redshift]
 temp-day=5700
@@ -135,9 +143,9 @@ max-cache-ttl 60480000
 
-
-

dmenu

-
+
+

dmenu

+
# define the font for dmenu to be used
 DMENU_FN="Hack Nerd Font 12"
@@ -164,9 +172,9 @@ max-cache-ttl 60480000
 
-
-

Locale

-
+
+

Locale

+
LANG=en_US.UTF-8
 LC_CTYPE="en_US.UTF-8"
@@ -187,9 +195,9 @@ max-cache-ttl 60480000
 
-
-

Xcompose

-
+
+

Xcompose

+
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
 
@@ -755,102 +763,17 @@ max-cache-ttl 60480000
 
-
-

Netrc

-
+
+

Netrc

+

It is very important that ~/.netrc as 600 permissions.

-
machine traefik.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="traefik.tdehaeze.xyz/tdehaeze")>>
-
-machine portainer.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="portainer.tdehaeze.xyz/tdehaeze")>>
-
-machine cloud.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="cloud.tdehaeze.xyz/tdehaeze")>>
-
-machine syncthing.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="syncthing.tdehaeze.xyz/tdehaeze")>>
-
-machine torrent.tdehaeze.xyz
+
machine torrent.tdehaeze.xyz
 login tdehaeze
 password <<get-password(passname="nas/transmission")>>
-
-machine dl.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="dl.tdehaeze.xyz/tdehaeze")>>
-
-machine deemix.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="deemix.tdehaeze.xyz/tdehaeze")>>
-
-machine octoprint.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="octoprint.tdehaeze.xyz/tdehaeze")>>
-
-machine adguardhome.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="adguardhome.tdehaeze.xyz/tdehaeze")>>
-
-machine qobuz.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="qobuz.tdehaeze.xyz/tdehaeze")>>
-
-machine down.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="down.tdehaeze.xyz/tdehaeze")>>
-
-machine joal.tdehaeze.xyz
-login tdehaeze
-password <<get-password(passname="joal.tdehaeze.xyz/tdehaeze")>>
-
-
-
-
- -
-

bukurun Rofi Frontend for Buku (Bookmark Manager)

-
-
-
_rofi () {
-    rofi -dmenu -i -no-levenshtein-sort -width 1000 "$@"
-}
-
-
- -

-Display settings -

-
-
display_type=1
-max_str_width=80
-
-
- -

-Keybindings -

-
-
switch_view="Alt+Tab"
-new_bookmark="Alt+n"
-actions="Alt+a"
-edit="Alt+e"
-delete="Alt+d"
-
-
- -

-Colors -

-
-
help_color="#2d7ed8"
 
@@ -858,7 +781,7 @@ Colors

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/data.html b/docs/data.html index 343ba43..7bec812 100644 --- a/docs/data.html +++ b/docs/data.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Data @@ -16,11 +16,11 @@ UP | HOME -
+

Data

-
+

Table of Contents

-
+

Author: Dehaeze Thomas

-

Created: 2021-04-25 dim. 19:09

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/doom.html b/docs/doom.html index 9490c0a..b3abd8d 100644 --- a/docs/doom.html +++ b/docs/doom.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Doom Emacs Configuration @@ -22,200 +22,193 @@

Table of Contents

-
-

Installation

-
-
-
yay -Ss aspell aspell-fr aspell-en
-
-
-
-
- -
-

Introduction and Resources

-
+
+

Introduction and Resources

+
-
-

Useful Bindings

-
+
+

Useful Bindings

+
  • align-regexp: equivalent of vim-easy-align. Very useful to align tables and stuff
-
-

General Bindings

-
+
+

General Bindings

+
Table 3: Apps requiring Root
@@ -388,9 +381,9 @@ After that, restart Emacs with spc q r. -
-

Org-Babel Bindings

-
+
+

Org-Babel Bindings

+
@@ -531,9 +524,9 @@ Tables: -
-

Evil bindings

-
+
+

Evil bindings

+
@@ -578,13 +571,13 @@ Tables: -
-

Basic Configuration

-
+
+

Basic Configuration

+
-
-

Personal Information

-
+
+

Personal Information

+
;; These are used for a number of things, particularly for GPG configuration,
 ;; some email clients, file templates and snippets.
@@ -595,9 +588,9 @@ Tables:
 
-
-

Doom Config

-
+
+

Doom Config

+
(setq doom-font (font-spec :family "Hack Nerd Font Mono" :size 12 :weight 'semi-light)
       doom-variable-pitch-font (font-spec :family "Hack Nerd Font Mono")
@@ -643,9 +636,9 @@ Tables:
 
-
-

Evil

-
+
+

Evil

+
(after! evil
   (map! :m  "-"  #'dired-jump)
@@ -700,9 +693,9 @@ Evil Surround (not working):
 
-
-

Which Key

-
+
+

Which Key

+
(after! which-key
   (setq which-key-idle-delay 0.5
@@ -713,9 +706,9 @@ Evil Surround (not working):
 
-
-

Visual

-
+
+

Visual

+

Automatic line wrap.

@@ -740,9 +733,9 @@ Turn off auto-fill mode that add line breaks.
-
-

Useful General Functions

-
+
+

Useful General Functions

+
(defun tdh-matlab-work ()
   "Setup Matlab Work Windows"
@@ -760,9 +753,9 @@ Turn off auto-fill mode that add line breaks.
 
-
-

Change default alert backend

-
+
+

Change default alert backend

+
(setq alert-default-style 'libnotify)
 
@@ -770,14 +763,14 @@ Turn off auto-fill mode that add line breaks.
-
-

Spell Check

-
+
+

Spell Check

+

Switch from one language to an other (link).

-
(setq ispell-dictionary "en_US")
+
(setq ispell-dictionary "en")
 (setq ispell-program-name "aspell")
 
@@ -800,9 +793,9 @@ Switch from one language to an other ( -

Lockfiles

-
+
+

Lockfiles

+
(setq create-lockfiles nil)
 
@@ -810,9 +803,9 @@ Switch from one language to an other (
-

Disable highlight of current line

-
+
+

Disable highlight of current line

+
(global-hl-line-mode -1)
 (after! org
@@ -827,9 +820,9 @@ Switch from one language to an other (
-

Remap jump-forward key binding

-
+
+

Remap jump-forward key binding

+
(with-eval-after-load 'better-jumper
   (map!
@@ -840,16 +833,14 @@ Switch from one language to an other (
-

Magit

-
+
+

Magit

+
(setenv "GIT_ASKPASS" "git-gui--askpass")
 
 (after! magit
   (setq magit-diff-refine-hunk 'all)
-  (setq magit-repository-directories `(("~/Cloud/thesis/matlab/" . 1)
-                                       ("~/Cloud/thesis/papers/" . 1)))
   (setq magit-repolist-columns '(("Name" 25 magit-repolist-column-ident nil)
                                  ("Status" 7 magit-repolist-column-flag)
                                  ("B<U" 3 magit-repolist-column-unpulled-from-upstream
@@ -865,9 +856,9 @@ Switch from one language to an other (
-

Dired

-
+
+

Dired

+
  • C-c C-e Writable Dired mode, when changes are done C-c C-c.
@@ -907,9 +898,9 @@ This works also with C-x C-q
-
-

PDF-Tools

-
+
+

PDF-Tools

+
(use-package! pdf-tools
   :config
@@ -943,9 +934,9 @@ This works also with C-x C-q
 
-
-

Flycheck

-
+
+

Flycheck

+
(flycheck-define-checker proselint
   "A linter for prose."
@@ -975,9 +966,9 @@ Disable flycheck for now with orgmode buffers:
 
-
-

Yassnippets

-
+
+

Yassnippets

+
(push "~/.config/doom/snippets" yas-snippet-dirs)
 (yas-global-mode 1)
@@ -986,29 +977,44 @@ Disable flycheck for now with orgmode buffers:
 
-
-

Ox-Hugo

-
+
+

Ox-Hugo

+
-
(defun tdh-export-everything-to-hugo ()
-  "Export all the .org files in the specified directory to markdown using Hugo"
-  (interactive)
-  (setq org-files (directory-files (read-directory-name "Directory:" "/home/thomas/Cloud/brain/") t "org$" t))
+
;; (defun tdh-export-everything-to-hugo ()
+;;   "Export all the .org files in the specified directory to markdown using Hugo"
+;;   (interactive)
+;;   (setq org-files (directory-files (read-directory-name "Directory:" "/home/thomas/Cloud/brain/") t "org$" t))
 
-  (while org-files
-    (setq current-org-file (car org-files))
-    (message "Exporting %s" current-org-file)
-    (find-file current-org-file)
-    (org-hugo-export-to-md)
-    (setq org-files (cdr org-files))))
+;;   (while org-files
+;;     (setq current-org-file (car org-files))
+;;     (message "Exporting %s" current-org-file)
+;;     (find-file current-org-file)
+;;     (org-hugo-export-to-md)
+;;     (setq org-files (cdr org-files))))
 
-
-

Others

-
+
+

Tramp

+
+
+
(after! tramp
+  (add-to-list 'tramp-remote-process-environment "GIT_AUTHOR_EMAIL=thomas.dehaeze@esrf.fr")
+  (add-to-list 'tramp-remote-process-environment "GIT_AUTHOR_NAME='Thomas Dehaeze'")
+  (add-to-list 'tramp-remote-process-environment "GIT_COMMITTER_EMAIL=thomas.dehaeze@esrf.fr")
+  (add-to-list 'tramp-remote-process-environment "GIT_COMMITTER_EMAIL='Thomas Dehaeze'")
+  )
+
+
+
+
+ +
+

Others

+
(setq auto-save-default t)
 
@@ -1017,9 +1023,9 @@ Disable flycheck for now with orgmode buffers:
-
-

Org Mode

-
+
+

Org Mode

+
-
-

Org General Config

-
+
+

Org General Config

+
(setq org-directory "~/Cloud/org/")
 (after! org
@@ -1070,9 +1076,9 @@ TAB was changed to toggle only the visibility state of the current subtree, rath
 
-
-

Org Inline Images

-
+
+

Org Inline Images

+

Display the real size of images and not the one set with attr_latex: :width \linewidth for instance.

@@ -1084,9 +1090,9 @@ Display the real size of images and not the one set with attr_latex: :widt
-
-

Org Links

-
+
+

Org Links

+
(after! org
   (setq org-link-abbrev-alist
@@ -1110,9 +1116,9 @@ Display the real size of images and not the one set with attr_latex: :widt
 
-
-

Org Tagging

-
+
+

Org Tagging

+
(after! org
   ;; Align Tags and flush right
@@ -1128,9 +1134,9 @@ Display the real size of images and not the one set with attr_latex: :widt
 
-
-

Org Refile

-
+
+

Org Refile

+
(after! org
   (setq org-refile-targets '((org-agenda-files . (:maxlevel . 6))))
@@ -1140,45 +1146,39 @@ Display the real size of images and not the one set with attr_latex: :widt
 
-
-

Org TODO

-
+
+

Org TODO

+
(after! org
   ;; Tags with fast selection keys
   (setq org-todo-keywords '(
-                            (sequence "TODO(t)" "NEXT(n)" "MAIL(m)" "|" "DONE(d)")
-                            (sequence "READ(r)" "BKMK(b)" "EXER(x)" "|" "DONE(d)")
-                            (sequence "WAIT(w@/!)" "SDAY(s)" "|" "CANC(c@/!)")
+                            (sequence "TODO(t)" "MAIL(m)" "|" "DONE(d)")
+                            (sequence "READ(r)" "|" "DONE(d)")
+                            (sequence "WAIT(w@/!)" "DELE(e)" "|" "CANC(c@/!)")
                             (sequence "QUES(q)" "|" "ANSW(a)")
-                            (sequence "EXAM(e)" "IDEA(i)" "|")
                             ))
 
   ;; Display of the keywords
   (setq org-todo-keyword-faces
         '(("TODO" . (:foreground "#cc241d" :weight bold)) ;; red
-          ("EXER" . (:foreground "#cc241d" :weight bold)) ;; red
-          ("NEXT" . (:foreground "#cc241d" :weight bold)) ;; red
           ("MAIL" . (:foreground "#cc241d" :weight bold)) ;; red
           ("READ" . (:foreground "#cc241d" :weight bold)) ;; red
           ("ANSW" . (:foreground "#689d6a" :weight bold)) ;; aqua
           ("DONE" . (:foreground "#689d6a" :weight bold)) ;; aqua
+          ("QUES" . (:foreground "#d65d0e" :weight bold)) ;; orange
           ("WAIT" . (:foreground "#d65d0e" :weight bold)) ;; orange
-          ("QUES" . (:foreground "#d79921" :weight bold)) ;; yellow
           ("CANC" . (:foreground "#a89984" :weight bold)) ;; grey
-          ("SDAY" . (:foreground "#98971a" :weight bold)) ;; green
-          ("BKMK" . (:foreground "#98971a" :weight bold)) ;; green
-          ("IDEA" . (:foreground "#98971a" :weight bold)) ;; green
-          ("EXAM" . (:foreground "#98971a" :weight bold)))) ;; green
+          ("DELE" . (:foreground "#98971a" :weight bold)))) ;; green
   )
 
-
-

Org Archive

-
+
+

Org Archive

+

https://gist.github.com/Fuco1/e86fb5e0a5bb71ceafccedb5ca22fcfb Archive subtrees under the same hierarchy as original in the archive files @@ -1234,9 +1234,9 @@ Archive subtrees under the same hierarchy as original in the archive files

-
-

Org Agenda

-
+
+

Org Agenda

+

General configuration

@@ -1285,19 +1285,28 @@ Org Agenda Custom Views (org-agenda-skip-entry-if 'scheduled 'deadline 'regexp "\n]+>")) (setq org-agenda-custom-commands - '(("w" "Work" - ((org-ql-block '(and (tags "@work") + '(("T" "test" + ((org-ql-block '(planning) + ((org-ql-block-header "To refill"))) + )) + ("w" "Work" + ((org-ql-block '(and (tags "inbox")) + ((org-ql-block-header "To refill"))) + (org-ql-block '(and (scheduled) + (not (done))) + ((org-ql-block-header "Scheduled Tasks"))) + (org-ql-block '(and (not (tags "@home")) + (not (tags "@biblio")) (todo "TODO") (priority "A")) - ((org-ql-block-header "Important TODOs"))) - (org-ql-block '(and (tags "@work") - (todo "TODO") - (priority "B")) - ((org-ql-block-header "TODOs"))) - (org-ql-block '(and (tags "@work") - (todo "TODO") - (priority "C")) - ((org-ql-block-header "Not important TODOs"))))) + ((org-ql-block-header "Important Tasks"))) + (org-ql-block '(and (not (tags "@home")) + (todo "DELE")) + ((org-ql-block-header "Delegated Tasks"))) + (org-ql-block '(and (not (tags "@home")) + (todo "WAIT")) + ((org-ql-block-header "Tasks on hold"))) + )) ("h" "Home" ((org-ql-block '(and (tags "@home") (todo "TODO") @@ -1364,9 +1373,49 @@ Org Agenda Custom Views
-
-

Org Agenda HTML

-
+
+

Synchronize Agenda with ICS

+
+

+https://200ok.ch/posts/2022-02-13_integrating_org_mode_agenda_into_other_calendar_apps.html +

+ +
+
;; Setting variables for the ics file path
+(setq org-agenda-private-local-path "~/.calendars/radicale/d2ff3f82-9cdb-7e0c-ec9e-5887da0993f4/dummy.ics")
+
+;; Define a custom command to save the org agenda to a file
+(setq org-agenda-custom-commands
+      `(("X" agenda "" nil ,(list org-agenda-private-local-path))))
+
+(defun org-agenda-export-to-ics ()
+  (setq org-agenda-files (list "~/Cloud/org/"))
+  ;; Run all custom agenda commands that have a file argument.
+  (org-batch-store-agenda-views)
+
+  ;; Org mode correctly exports TODO keywords as VTODO events in ICS.
+  ;; However, some proprietary calendars do not really work with
+  ;; standards (looking at you Google), so VTODO is ignored and only
+  ;; VEVENT is read.
+  (with-current-buffer (find-file-noselect org-agenda-private-local-path)
+    (goto-char (point-min))
+    (save-buffer)))
+
+
+ +

+Then, use: +

+
+
(org-agenda-export-to-ics)
+
+
+
+
+ +
+

Org Agenda HTML

+

This function can be used to export the week calendar to html. This html page can be used as a starting page for the browser. @@ -1382,9 +1431,9 @@ This idea comes from

-
-

Org Fancy Priority

-
+
+

Org Fancy Priority

+
-
-

Org Notification based on calendar event

-
+
+

Org Notification based on calendar event

+
-
-

appt-notification script

-
+
+

appt-notification script

+
TIME="$1"TODO
 MSG="$2"
 
-dunstify --replace=85401 "Event in $TIME minutes" "$MSG"
+notify-send "Event in $TIME minutes" "$MSG"
 
-
-

Org Structure Template

-
+
+

Org Structure Template

+
(after! org
   (require 'org-tempo)
@@ -1473,9 +1526,9 @@ dunstify --replace=85401 
 
-
-

Org Capture

-
+
+

Org Capture

+

Documentation:

@@ -1547,9 +1600,9 @@ Documentation:
-
-

message: link to mutt

-
+
+

message: link to mutt

+
(require 'org-protocol)
 
@@ -1584,9 +1637,9 @@ Documentation:
 
-
-

Org Export

-
+
+

Org Export

+

Basic configuration:

@@ -1633,9 +1686,20 @@ Do not export headline with the :ignore: tag:
-
-

Org Effort

-
+
+

Org-ql

+
+
+
(use-package! org-ql
+  :after org)
+
+
+
+
+ +
+

Org Effort

+
(after! org
   (setq org-global-properties
@@ -1646,13 +1710,29 @@ Do not export headline with the :ignore: tag:
 
-
-

HTML Export

-
+
+

Open Files

+
+
+
(after! org
+  (setq org-file-apps
+        '((auto-mode . emacs)
+          ("\\.x?html?\\'" . "firefox %s")
+          ("\\.pdf\\'" . "zathura \"%s\"")
+          ("\\.pdf::\\([0-9]+\\)\\'" . "zathura \"%s\" -p %1")))
+  )
+
-
-

HTML Defaults

-
+
+
+ +
+

HTML Export

+
+
+
+

HTML Defaults

+
(after! org
   (setq org-html-head "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">")
@@ -1676,9 +1756,9 @@ Do not export headline with the :ignore: tag:
 
-
-

MathJax

-
+
+

MathJax

+
(after! org
   (setq org-html-mathjax-template
@@ -1712,9 +1792,9 @@ Do not export headline with the :ignore: tag:
 
-
-

MP4 Video - video link

-
+
+

MP4 Video - video link

+
(defun org-video-link-export (path desc backend)
   (let ((ext (file-name-extension path)))
@@ -1735,9 +1815,9 @@ Do not export headline with the :ignore: tag:
 
-
-

Ensuring useful HTML Anchors

-
+
+

Ensuring useful HTML Anchors

+
-
-

Folded Drawers

-
+ -
-

Org Xournalpp

-
+
+

Org Xournalpp

+
-
-

Org Transclusion

-
+
+

Org Transclusion

+
-
-

Org LaTeX

-
+
+

Org LaTeX

+
-
-

LaTeX Fragments

-
+
+

LaTeX Fragments

+
-
-

LaTeX Classes

-
+
+

LaTeX Classes

+
-
-

Ox Latex Subfigure package

-
+
+

Ox Latex Subfigure package

+
-
-

Clear page before heading

-
+ -
-

Default added packages

-
+
+

Default added packages

+
-
-

Some configurations

-
+
+

Some configurations

+
-
-

Beamer

-
+
+

Beamer

+

Bold Text

@@ -2274,9 +2354,9 @@ Special Environments
-
-

Custom Export - Add Page and Label for LaTeX export

-
+ -
-

Number Equations

-
+ -
-

Org Media Note

-
+
+

Org Media Note

+
(use-package! org-media-note
   :hook (org-mode .  org-media-note-setup-org-ref)
@@ -2407,9 +2487,9 @@ Special Environments
 
-
-

LaTeX macro both for LaTeX and HTML export

-
+
+

LaTeX macro both for LaTeX and HTML export

+
-
-

Org Projects

-
+
+

Igo-go

+
+
+
(with-eval-after-load "org"
+  (require 'igo-org)
+  (igo-org-setup))
+
+
+
+
+ +
+

Org Projects

+
(setq org-publish-project-alist
       '(("config"
@@ -2502,9 +2594,9 @@ Special Environments
 
-
-

Automatically run startblock when opening org-mode files

-
+
+

Automatically run startblock when opening org-mode files

+
(after! org
   (defun tdh-eval-startblock ()
@@ -2523,9 +2615,9 @@ Special Environments
 
-
@@ -2856,18 +2935,16 @@ Special Environments :ni "C-c F" 'tdh-insert-link-to-previous-figure) (:desc "Insert Screenshot" :ni "C-c s" 'tdh-insert-screenshot-org-link) - (:desc "Find Roam" - :ni "C-c r" 'orb-find-non-ref-file) - (:desc "Insert Roam" - :ni "C-c R" 'orb-insert-non-ref) + (:desc "Insert Screenshot" + :ni "C-c R" 'org-roam-node-find) )) -
-

Insert Elements ,i

-
+
+

Insert Elements ,i

+

Insert Link to paper

@@ -3025,9 +3102,9 @@ Map Keys
-
-

LaTeX ,l

-
+
+

LaTeX ,l

+
(defun tdh-latex-watch ()
   "Watch LaTeX file using latexmk"
@@ -3058,9 +3135,9 @@ Map Keys
 
-
-

Org LaTeX Automatic fragment

-
+
+

Org LaTeX Automatic fragment

+
(use-package! org-fragtog
   :after org
@@ -3092,9 +3169,25 @@ Map Keys
 
-
-

Bibtex ,r

-
+
+

Org-Appear

+
+
+
(use-package! org-appear
+  :after org
+  :hook (org-mode . org-appear-mode)
+  :config (setq
+           org-appear-autolinks t
+           org-appear-autoentities t
+           org-appear-autosubmarkers t ))
+
+
+
+
+ +
+

Bibtex ,r

+
(after! org
   (map! :map org-mode-map
@@ -3108,9 +3201,9 @@ Map Keys
 
-
-

Open ranger in current directory ,o

-
+
+

Open ranger in current directory ,o

+
(defun tdh-open-ranger-in-workdir ()
   (interactive)
@@ -3128,9 +3221,9 @@ Map Keys
 
-
-

View in External programs ,v

-
+
+

View in External programs ,v

+

Open PDF output with zathura

@@ -3166,19 +3259,19 @@ Open HTML output externally
-
-

Org Babel

-
+
+

Org Babel

+
-
-

Main configuration

-
+
+

Main configuration

+

Don’t ask for confirmation when evaluating following blocs

(defun tdh-org-confirm-babel-evaluate (lang body)
-  (not (member lang '("emacs-lisp" "latex" "matlab" "sh" "latex-macros" "python"))))
+  (not (member lang '("emacs-lisp" "latex" "matlab" "sh" "latex-macros" "python" "ipython" "jupyter-python" "dot"))))
 
 (after! org
   (setq org-confirm-babel-evaluate 'tdh-org-confirm-babel-evaluate))
@@ -3205,9 +3298,9 @@ Use the current window for C-c ’ source editing
 
-
-

Appearance of source blocks

-
+
+

Appearance of source blocks

+
(defun tdh-org-prettify-symbols ()
   (mapc (apply-partially 'add-to-list 'prettify-symbols-alist)
@@ -3224,9 +3317,9 @@ Use the current window for C-c ’ source editing
 
-
-

Indentation

-
+
+

Indentation

+
(after! org
   ;; Don't change indentation when toggling
@@ -3237,9 +3330,9 @@ Use the current window for C-c ’ source editing
 
-
-

Library of Babel

-
+
+

Library of Babel

+

Add all named source blocks to org-babel-library-of-babel (link).

@@ -3252,13 +3345,12 @@ Add all named source blocks to org-babel-library-of-babel (
- -
-

Org-Babel Matlab

-
+
+

Org-Babel Matlab

+
(after! org
-  (setq org-babel-matlab-shell-command "/home/thomas/.local/bin/matlab -softwareopengl -nodesktop -nosplash")
+  (setq org-babel-matlab-shell-command "/home/thomas/.local/bin/matlab -softwareopengl -nodesktop -nosplash")
   )
 
@@ -3268,7 +3360,7 @@ Default options for Matlab code

(after! org
-  (setq org-babel-default-header-args:matlab
+  (setq org-babel-default-header-args:matlab
         '((:results . "none")
           (:session . "*MATLAB*")
           (:comments . "org")
@@ -3306,27 +3398,27 @@ Better format the output results for Matlab ((",*\\s-*\n+"                . ", ")) ;Concatenate lines
                            body)
                         body)
-                      org-babel-octave-eoe-indicator) "\n"))
+                      org-babel-octave-eoe-indicator) "\n"))
               (`value
-               (if (and matlabp org-babel-matlab-with-emacs-link)
+               (if (and matlabp org-babel-matlab-with-emacs-link)
                    (concat
-                    (format org-babel-matlab-emacs-link-wrapper-method
+                    (format org-babel-matlab-emacs-link-wrapper-method
                             body
                             (org-babel-process-file-name tmp-file 'noquote)
                             (org-babel-process-file-name tmp-file 'noquote) wait-file) "\n")
                  (mapconcat
                   #'org-babel-chomp
-                  (list (format org-babel-octave-wrapper-method
+                  (list (format org-babel-octave-wrapper-method
                                 body
                                 (org-babel-process-file-name tmp-file 'noquote)
                                 (org-babel-process-file-name tmp-file 'noquote))
-                        org-babel-octave-eoe-indicator) "\n")))))
-           (raw (if (and matlabp org-babel-matlab-with-emacs-link)
+                        org-babel-octave-eoe-indicator) "\n")))))
+           (raw (if (and matlabp org-babel-matlab-with-emacs-link)
                     (save-window-excursion
                       (with-temp-buffer
                         (insert full-body)
                         (write-region "" 'ignored wait-file nil nil nil 'excl)
-                        (matlab-shell-run-region (point-min) (point-max))
+                        (matlab-shell-run-region (point-min) (point-max))
                         (message "Waiting for Matlab Emacs Link")
                         (while (file-exists-p wait-file) (sit-for 0.01))
                         "")) ;; matlab-shell-run-region doesn't seem to
@@ -3336,19 +3428,19 @@ Better format the output results for Matlab ((org-babel-comint-with-output
                       (session
                        (if matlabp
-                           org-babel-octave-eoe-indicator
-                         org-babel-octave-eoe-output)
+                           org-babel-octave-eoe-indicator
+                         org-babel-octave-eoe-output)
                        t full-body)
                     (insert full-body) (comint-send-input nil t)))) results)
       (pcase result-type
         (`value
-         (org-babel-octave-import-elisp-from-file tmp-file))
+         (org-babel-octave-import-elisp-from-file tmp-file))
         (`output
          (setq results
                (if matlabp
                    (cdr (reverse (delete "" (mapcar #'org-strip-quotes
                                                     (mapcar #'org-trim (remove-car-upto-newline raw))))))
-                 (cdr (member org-babel-octave-eoe-output
+                 (cdr (member org-babel-octave-eoe-output
                               (reverse (mapcar #'org-strip-quotes
                                                (mapcar #'org-trim raw)))))))
          (mapconcat #'identity (reverse results) "\n")))))
@@ -3375,9 +3467,9 @@ Better format the output results for Matlab (
-

Mermaid

-
@@ -3407,16 +3499,16 @@ Future task2 : des4, after des3, 5d
-
+

mermaid.png

-
-

Some functions for using Matlab with Org Babel ,m

-
+
+

Some functions for using Matlab with Org Babel ,m

+

whos matlab function

@@ -3505,9 +3597,9 @@ Map Functions
-
-

Remap ctrl-ret used to execute the src block and go to the next one

-
+
+

Remap ctrl-ret used to execute the src block and go to the next one

+

https://emacs.stackexchange.com/questions/13869/how-to-toggle-org-mode-source-code-block-eval-no-status

@@ -3524,7 +3616,7 @@ when inside a source block. Otherwise, keep the normal behavior for ctrl-r "Returns t when the point is inside a source code block" (string= "src" (org-in-block-p '("src")))) - (if (tdh-in-src-block-p) + (if (tdh-in-src-block-p) (progn (org-babel-execute-src-block) (org-babel-next-src-block)) @@ -3541,13 +3633,13 @@ when inside a source block. Otherwise, keep the normal behavior for ctrl-r
-
-

Remap ctrl-shift-ret used to execute the (matlab) src block in the background and go to the next one

-
+
+

Remap ctrl-shift-ret used to execute the (matlab) src block in the background and go to the next one

+
-
-

tdh-org-babel-execute-matlab-background

-
+
+

tdh-org-babel-execute-matlab-background

+
(defun tdh-org-babel-execute-matlab-background (&optional arg info params)
   (interactive)
@@ -3613,9 +3705,9 @@ when inside a source block. Otherwise, keep the normal behavior for ctrl-r
 
-
-

tdh-matlab-execute-selected

-
+
+

tdh-matlab-execute-selected

+
(defun tdh-matlab-execute-selected (start end)
 "Execute selected text in the *MATLAB* buffer"
@@ -3627,9 +3719,9 @@ when inside a source block. Otherwise, keep the normal behavior for ctrl-r
 
-
-

Remap ctrl-shift-ref

-
+
+

Remap ctrl-shift-ref

+

This function:

@@ -3650,13 +3742,15 @@ if no region is selected, it runs all the code blocks and goes to the next block "Returns t when the point is inside a source code block" (string= "src" (org-in-block-p '("src")))) - (if (tdh-in-src-block-p) + (if (tdh-in-src-block-p) (let ((lang (nth 0 (org-babel-get-src-block-info)))) (if (string= lang "matlab") (if (region-active-p) (tdh-matlab-execute-selected (region-beginning) (region-end)) - (progn (tdh-org-babel-execute-matlab-background) - (org-babel-next-src-block))) + (progn (tdh-org-babel-execute-matlab-background))) + (org-babel-next-src-block)) + (if (string= lang "jupyter-python") + (org-babel-execute-maybe) (org-babel-next-src-block)) ) (org-babel-next-src-block) @@ -3675,9 +3769,9 @@ if no region is selected, it runs all the code blocks and goes to the next block
-
-

Align Source Blocks

-
+
+

Align Source Blocks

+
(defun tdh-align-src-block ()
   (interactive)
@@ -3685,7 +3779,7 @@ if no region is selected, it runs all the code blocks and goes to the next block
     "Returns t when the point is inside a source code block"
     (string= "src" (org-in-block-p '("src"))))
 
-  (if (tdh-in-src-block-p)
+  (if (tdh-in-src-block-p)
       (progn
         (org-edit-special)
         (indent-region (point-min) (point-max))
@@ -3696,9 +3790,9 @@ if no region is selected, it runs all the code blocks and goes to the next block
 
-
-

Helping Functions - Tangling ,b

-
+
+

Helping Functions - Tangling ,b

+

Org-Babel Tangle Sub-tree

@@ -3734,6 +3828,15 @@ Org-Tangle and Org-Babel Jump to Tangle File
+
+
(defun tdh-org-babel-tangle-block ()
+  (interactive)
+  (let ((current-prefix-arg '(4)))
+    (call-interactively 'org-babel-tangle)
+    ))
+
+
+

Map Functions

@@ -3742,6 +3845,7 @@ Map Functions (map! :map org-mode-map (:prefix (",b" . "Tangle") :n "F" 'tdh-org-babel-jump-to-tangle-file + :n "b" 'tdh-org-babel-tangle-block :n "T" 'tdh-org-babel-tangle-subtree)))
@@ -3749,9 +3853,9 @@ Map Functions
-
-

Bibliography Management

-
+
+

Bibliography Management

+

My bibliography management is mainly based on the following packages:

@@ -3764,9 +3868,9 @@ My bibliography management is mainly based on the following packages:
-
-

Org Ref (link)

-
+
+

Org Ref (link)

+

Nice Functions:

@@ -3782,19 +3886,27 @@ Nice Functions:
(use-package! org-ref
   :after org
   :init
+  (with-eval-after-load 'ox
+    (defun my/org-ref-process-buffer--html (backend)
+      "Preprocess `org-ref' citations to HTML format.
+      Do this only if the export backend is `html' or a derivative of
+      that."
+      ;; `ox-hugo' is derived indirectly from `ox-html'.
+      ;; ox-hugo <- ox-blackfriday <- ox-md <- ox-html
+      (when (org-export-derived-backend-p backend 'html)
+        (org-ref-process-buffer 'html)))
+    (add-to-list 'org-export-before-parsing-hook #'my/org-ref-process-buffer--html))
   :config
   ;; Folder where the notes files are located (or file if just one Note file)
-  (setq org-ref-notes-directory "~/Cloud/brain")
-  (setq org-ref-bibliography-notes "~/Cloud/brain")
+  (setq bibtex-completion-notes-path "~/Cloud/brain/")
 
   ;; Bibliography File
-  (setq reftex-default-bibliography  '("~/Cloud/brain/biblio/references.bib"))
-  (setq org-ref-default-bibliography '("~/Cloud/brain/biblio/references.bib"))
+  (setq bibtex-completion-bibliography '("~/Cloud/brain/biblio/references.bib"))
 
   ;; Folder where all the pdf are located
-  (setq org-ref-pdf-directory "~/Cloud/pdfs")
+  (setq bibtex-completion-library-path '("~/Cloud/pdfs/"))
 
-  (setq org-ref-bibliography-entry-format
+  (setq org-ref-bibliography-entry-format
         '(("article" . "%a, %t, %j, v(%n), %p (%y).")
           ("book" . "%a, %t, %u (%y).")
           ("techreport" . "%a, %t, %i, %u (%y).")
@@ -3803,31 +3915,31 @@ Nice Functions:
           ("inproceedings" . "%a, %t, %p, in %b, edited by %e, %u (%y)")))
 
   ;; Tell org-ref to let helm-bibtex find notes for it
-  (setq org-ref-notes-function
+  (setq org-ref-notes-function
         (lambda (thekey)
           (let ((bibtex-completion-bibliography (org-ref-find-bibliography)))
             (bibtex-completion-edit-notes
              (list (car (org-ref-get-bibtex-key-and-file thekey)))))))
 
   ;; Problem with speed: don't display broken links
-  (setq org-ref-show-broken-links t)
+  (setq org-ref-show-broken-links t)
   ;; Display information on the citation
-  (setq org-ref-show-citation-on-enter t)
+  (setq org-ref-show-citation-on-enter t)
 
-  (add-to-list 'org-ref-helm-user-candidates
-               '("Open pdf in Zathura" . (lambda () (call-process "zathura" nil 0 nil  (concat
-                                                                                        (file-name-as-directory org-ref-pdf-directory)
-                                                                                        (car (org-ref-get-bibtex-key-and-file))
-                                                                                        ".pdf"))))
-               t)
+  ;; (add-to-list 'org-ref-helm-user-candidates
+  ;;              '("Open pdf in Zathura" . (lambda () (call-process "zathura" nil 0 nil  (concat
+  ;;                                                                                       (file-name-as-directory org-ref-pdf-directory)
+  ;;                                                                                       (car (org-ref-get-bibtex-key-and-file))
+  ;;                                                                                       ".pdf"))))
+  ;;              t)
 
-  (add-to-list 'org-ref-helm-user-candidates
-               '("Drag and Drop" . (lambda () (call-process "/bin/bash" nil 0 nil "-c" (concat
-                                                                                        "dragon-drag-and-drop "
-                                                                                        (file-name-as-directory org-ref-pdf-directory)
-                                                                                        (car (org-ref-get-bibtex-key-and-file))
-                                                                                        ".pdf"))))
-               t)
+  ;; (add-to-list 'org-ref-helm-user-candidates
+  ;;              '("Drag and Drop" . (lambda () (call-process "/bin/bash" nil 0 nil "-c" (concat
+  ;;                                                                                       "dragon "
+  ;;                                                                                       (file-name-as-directory org-ref-pdf-directory)
+  ;;                                                                                       (car (org-ref-get-bibtex-key-and-file))
+  ;;                                                                                       ".pdf"))))
+  ;;              t)
 
   ;; Let Mathjax deals with equation reference
   (defun org-ref-eqref-export (keyword desc format)
@@ -3839,48 +3951,54 @@ Nice Functions:
 
+
+
(after! org
+  (require 'org-ref))
+
+
+
(defun tdh-org-ref-open-pdf-at-point ()
   "Open the pdf in external program for bibtex key under point if it exists."
   (interactive)
   (let* ((results (org-ref-get-bibtex-key-and-file))
          (key (car results))
-         (pdf-file (funcall org-ref-get-pdf-filename-function key)))
+         (pdf-file (funcall org-ref-get-pdf-filename-function key)))
     (if (file-exists-p pdf-file)
         (call-process "zathura" nil 0 nil pdf-file)
       (message "no pdf found for %s" key))))
 
 
 ;; Open with Zathura by default
-(setq org-ref-open-pdf-function 'tdh-org-ref-open-pdf-at-point)
+(setq org-ref-open-pdf-function 'tdh-org-ref-open-pdf-at-point)
 
-
-

Org Noter (link)

-
+
+

Org Noter (link)

+
(use-package! org-noter
   :defer t
   :after (:any org pdf-view)
   :config
-  (setq org-noter-always-create-frame nil)
+  (setq org-noter-always-create-frame nil)
 
-  (setq org-noter-kill-frame-at-session-end nil)
+  (setq org-noter-kill-frame-at-session-end nil)
 
   ;; Fraction of the frame that the document window will occupy when split
-  (setq org-noter-doc-split-fraction '(0.6 . 0.6))
+  (setq org-noter-doc-split-fraction '(0.6 . 0.6))
 
   ;; Save the last visited location automatically; when starting a new session, go to that location
-  (setq org-noter-auto-save-last-location nil)
+  (setq org-noter-auto-save-last-location nil)
 
   ;; Add an empty line between each note's heading and content
-  (setq org-noter-separate-notes-from-heading t)
+  (setq org-noter-separate-notes-from-heading t)
 
   ;; List of paths to check (non recursively) when searching for a notes file
-  (setq org-noter-notes-search-path "~/Cloud/brain")
+  (setq org-noter-notes-search-path "~/Cloud/brain")
 
   (defun org-noter-init-pdf-view ()
     (pdf-view-fit-page-to-window)
@@ -3898,18 +4016,18 @@ Nice Functions:
 
-
-

Capture Templates

-
+
+

Capture Templates

+
-
-

Bibliography

-
+ -
-

Default

-
-
-

Org Roam (link)

-
+
+

Org Roam (link)

+
(use-package! org-roam
   :custom-face
@@ -3995,7 +4113,7 @@ Re-Export all roam files.
 
(defun tdh-org-roam-export-all ()
   "Re-exports all Org-roam files to Hugo markdown."
   (interactive)
-  (dolist (f (org-roam--list-all-files))
+  (dolist (f (org-roam--list-files "~/Cloud/brain/"))
     (with-current-buffer (find-file f)
       (when (s-contains? "SETUPFILE" (buffer-string))
         (org-hugo-export-wim-to-md)))))
@@ -4004,21 +4122,19 @@ Re-Export all roam files.
 
-
-

Helm-Bibtex (link)

-
+
+

Helm-Bibtex (link)

+
(use-package! helm-bibtex
   :after-call helm-bibtex
   :init
   :config
   ;; Bibliography file
-  (setq bibtex-completion-bibliography '("~/Cloud/brain/biblio/references.bib"
-    "~/Cloud/acoustic/resources/acoustics.bib"))
+  (setq bibtex-completion-bibliography '("~/Cloud/brain/biblio/references.bib"))
 
   ;; Directory with all the pdfs
-  (setq bibtex-completion-library-path '("~/Cloud/pdfs/"
-                                         "~/Cloud/acoustic/resources/pdfs/"))
+  (setq bibtex-completion-library-path '("~/Cloud/pdfs/"))
 
   ;; Directory with notes files
   (setq bibtex-completion-notes-path "~/Cloud/brain/")
@@ -4028,9 +4144,9 @@ Re-Export all roam files.
   (setq bibtex-completion-additional-search-fields '(keywords))
 
   ;; Use "keywords" field when looking for bib entries
-  (setq helm-bibtex-additional-search-fields '(keywords))
+  (setq helm-bibtex-additional-search-fields '(keywords))
 
-  (setq helm-bibtex-full-frame nil)
+  (setq helm-bibtex-full-frame nil)
 
   ;; Display of bibtex entries with helm
   (setq bibtex-completion-display-formats
@@ -4062,15 +4178,15 @@ Re-Export all roam files.
                                                                 ))
 
   ;; Make "Edit notes" the default action
-  (helm-delete-action-from-source "Edit notes" helm-source-bibtex)
-  (helm-add-action-to-source "Edit notes" 'helm-bibtex-edit-notes helm-source-bibtex 0)
+  (helm-delete-action-from-source "Edit notes" helm-source-bibtex)
+  (helm-add-action-to-source "Edit notes" 'helm-bibtex-edit-notes helm-source-bibtex 0)
 
-  (helm-delete-action-from-source "Open PDF Externally" helm-source-bibtex)
-  (helm-add-action-to-source "Open PDF Externally" 'tdh-open-pdf-externally helm-source-bibtex 1)
+  (helm-delete-action-from-source "Open PDF Externally" helm-source-bibtex)
+  (helm-add-action-to-source "Open PDF Externally" 'tdh-open-pdf-externally helm-source-bibtex 1)
 
-  (helm-add-action-to-source "Insert Link to Note" 'tdh-insert-link-to-note helm-source-bibtex 2)
+  (helm-add-action-to-source "Insert Link to Note" 'tdh-insert-link-to-note helm-source-bibtex 2)
 
-  (helm-add-action-to-source "Insert E-Reader Link" 'tdh-insert-link-to-pdf-entry helm-source-bibtex 3)
+  (helm-add-action-to-source "Insert E-Reader Link" 'tdh-insert-link-to-pdf-entry helm-source-bibtex 3)
   )
 
@@ -4091,7 +4207,7 @@ Re-Export all roam files.
(defun tdh-insert-link-to-note (key)
   "Insert a link to a note associated with the bibtex entry."
   (if (and bibtex-completion-notes-path
-           (f-directory? bibtex-completion-notes-path))
+           (f-directory? bibtex-completion-notes-path))
       (let* ((path (f-join bibtex-completion-notes-path
                            (s-concat key bibtex-completion-notes-extension))))
         (if (file-exists-p path)
@@ -4148,21 +4264,9 @@ List all element of the bibliography without pdf associated
 
-
-

Deft (link)

-
-
-
(use-package! deft
-  :custom
-  (deft-directory "~/Cloud/brain/"))
-
-
-
-
- -
-

Org-Roam-Bibtex (link)

-
+
+

Org-Roam-Bibtex (link)

+

Provides nice functions such as:

@@ -4193,23 +4297,9 @@ Provides nice functions such as:
-
- -
-

Bibtex-Mode

-
+
+

Bibtex-Mode

+
(after! bibtex
   (map! :map bibtex-mode-map
@@ -4218,20 +4308,37 @@ Provides nice functions such as:
 
+ +
+

Citar

+
+
+
;; (use-package! citar
+;;   :custom
+;;   (org-cite-global-bibliography '("~/Cloud/brain/biblio/references.bib"))
+;;   (setq citar-library-paths '("~/Cloud/pdfs/"))
+;;   (setq citar-open-note-function 'orb-citar-edit-note)
+;;   (org-cite-insert-processor 'citar)
+;;   (org-cite-follow-processor 'citar)
+;;   (org-cite-activate-processor 'citar))
+
+
+
+
-
-

LaTeX

-
+
+

LaTeX

+
-
-

Basic Config

-
+
+

Basic Config

+
(after! auctex
   (setq +latex-viewers '(zathura pdf-tools)))
@@ -4240,9 +4347,9 @@ Provides nice functions such as:
 
-
-

Bibtex

-
+
+

Bibtex

+
(use-package! bibtex
   :config
@@ -4253,30 +4360,30 @@ Provides nice functions such as:
 
-
-

Matlab

-
+
+

Matlab

+ -
-

Setup Matlab Mode

-
+
+

Setup Matlab Mode

+
-
(setq matlab-shell-command "/home/thomas/.local/bin/matlab")
-(setq matlab-shell-command-switches (list "-softwareopengl -nodesktop -nosplash"))
+
(setq matlab-shell-command "/home/thomas/.local/bin/matlab")
+(setq matlab-shell-command-switches (list "-softwareopengl -nodesktop -nosplash"))
 (setq matlab-indent-function t)
-(setq mlint-programs '("mlint" "/home/thomas/.local/bin/mlint"))
+(setq mlint-programs '("mlint" "/home/thomas/.local/bin/mlint"))
 
-
-

Setup Flycheck to work with mlint

-
+
+

Setup Flycheck to work with mlint

+
(defvar mlint-executable "/home/thomas/.local/bin/mlint")
 
@@ -4296,20 +4403,20 @@ Provides nice functions such as:
 
-
-

Completion in the Matlab Shell

-
+
+

Completion in the Matlab Shell

+
-
(map! :map matlab-shell-mode-map
+
(map! :map matlab-shell-mode-map
       :i "<tab>" 'matlab-shell-tab)
 
-
-

Beautify code

-
+
+

Beautify code

+
(defun tdh-matlab-beautify-buffer ()
   "Beautify Current Matlab Buffer"
@@ -4318,7 +4425,7 @@ Provides nice functions such as:
   (if (string= (file-name-extension (buffer-file-name)) "m")
       (progn
         (save-buffer)
-        (matlab-shell-run-command (concat "MBeautify.formatFileNoEditor(\"" (buffer-file-name) "\", \"" (buffer-file-name) "\")"))
+        (matlab-shell-run-command (concat "MBeautify.formatFileNoEditor(\"" (buffer-file-name) "\", \"" (buffer-file-name) "\")"))
         (revert-buffer :ignore-auto :noconfirm))
     (message "Current buffer is not a matlab file")
     )
@@ -4328,37 +4435,37 @@ Provides nice functions such as:
 
-
-

Key Bindings

-
+
+

Key Bindings

+
(defun tdh-matlab-add-breakpoint ()
   (interactive)
-  (matlab-shell-run-command (concat "dbstop in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
+  (matlab-shell-run-command (concat "dbstop in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
 
 (defun tdh-matlab-remove-breakpoint ()
   (interactive)
-  (matlab-shell-run-command (concat "dbclear in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
+  (matlab-shell-run-command (concat "dbclear in " (buffer-name) " at " (number-to-string (line-number-at-pos nil)))))
 
 (defun tdh-matlab-list-breakpoints ()
   (interactive)
-  (matlab-shell-run-command (concat "dbstatus " (buffer-name))))
+  (matlab-shell-run-command (concat "dbstatus " (buffer-name))))
 
 (defun tdh-matlab-clear-breakpoints ()
   (interactive)
-  (matlab-shell-run-command (concat "dbclear in " (buffer-name))))
+  (matlab-shell-run-command (concat "dbclear in " (buffer-name))))
 
 (defun tdh-matlab-no-debug-on-error ()
   (interactive)
-  (matlab-shell-run-command (concat "dbclear if error")))
+  (matlab-shell-run-command (concat "dbclear if error")))
 
 (defun tdh-matlab-debug-on-error ()
   (interactive)
-  (matlab-shell-run-command (concat "dbstop if error")))
+  (matlab-shell-run-command (concat "dbstop if error")))
 
 (defun tdh-matlab-go-to-file-directory ()
   (interactive)
-  (matlab-shell-run-command (concat "cd " (file-name-directory buffer-file-name))))
+  (matlab-shell-run-command (concat "cd " (file-name-directory buffer-file-name))))
 
@@ -4383,9 +4490,9 @@ Provides nice functions such as:
-
-

Pandoc

-
+
+

Pandoc

+
(use-package! pandoc-mode
   )
@@ -4394,13 +4501,13 @@ Provides nice functions such as:
 
-
-

Mu4e

-
+
+

Mu4e

+
-
-

Resources

-
+
+

Resources

+

Documentation:

@@ -4427,9 +4534,9 @@ Send math and source code:
-
-

Cheatsheet

-
+
+

Cheatsheet

+
@@ -4474,9 +4581,9 @@ Send math and source code: -
-

Helping function

-
+
+

Helping function

+

This is a helper to help determine which account context I am in based on the folder in my maildir the email (eg. ~/.mail/nine27) is located in.

@@ -4485,10 +4592,10 @@ This is a helper to help determine which account context I am in based on the fo (when rx (if (listp rx) ;; If rx is a list, try each one for a match - (or (mu4e-message-maildir-matches msg (car rx)) - (mu4e-message-maildir-matches msg (cdr rx))) + (or (mu4e-message-maildir-matches msg (car rx)) + (mu4e-message-maildir-matches msg (cdr rx))) ;; Not a list, check rx - (string-match rx (mu4e-message-field msg :maildir))))) + (string-match rx (mu4e-message-field msg :maildir)))))
@@ -4513,35 +4620,35 @@ Choose account label to feed msmtp -a option based on From header in Message buf
-
-

Basic Config

-
+
+

Basic Config

+
(use-package! mu4e
   :config
   (setq mail-user-agent 'mu4e-user-agent
-        mu4e-mu-binary "/usr/bin/mu"
+        mu4e-mu-binary "/usr/bin/mu"
         mu4e-maildir "~/.mail"
-        mu4e-compose-format-flowed t
-        mu4e-compose-in-new-frame nil
-        mu4e-view-show-images t
-        mu4e-html2text-command "w3m -dump -T text/html"
-        mu4e-use-fancy-chars t
-        mu4e-headers-include-related t
-        mu4e-attachment-dir  "~/Downloads"
+        mu4e-compose-format-flowed t
+        mu4e-compose-in-new-frame nil
+        mu4e-view-show-images t
+        mu4e-html2text-command "w3m -dump -T text/html"
+        mu4e-use-fancy-chars t
+        mu4e-headers-include-related t
+        mu4e-attachment-dir  "~/Downloads"
         message-kill-buffer-on-exit t
-        mu4e-compose-signature-auto-include t
-        mu4e-view-show-images t
-        mu4e-view-show-addresses t)
+        mu4e-compose-signature-auto-include t
+        mu4e-view-show-images t
+        mu4e-view-show-addresses t)
   )
 
-
-

Additional config

-
+
+

Additional config

+
(use-package! mu4e
   :config
@@ -4551,94 +4658,94 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
   ;; Sometimes html email is just not readable in a text based client, this lets me open the
   ;; email in my browser.
-  (add-to-list 'mu4e-view-actions '("View in browser" . mu4e-action-view-in-browser) t)
+  (add-to-list 'mu4e-view-actions '("View in browser" . mu4e-action-view-in-browser) t)
 
   ;; Spell checking ftw.
-  (add-hook 'mu4e-compose-mode-hook 'flyspell-mode)
+  (add-hook 'mu4e-compose-mode-hook 'flyspell-mode)
 
   ;; Use Helm to select mailboxes
-  (setq mu4e-completing-read-function 'completing-read)
+  (setq mu4e-completing-read-function 'completing-read)
   ;; Don't ask for a 'context' upon opening mu4e
-  (setq mu4e-context-policy 'pick-first)
+  (setq mu4e-context-policy 'pick-first)
   ;; Don't ask to quit... why is this the default?
-  (setq mu4e-confirm-quit nil)
+  (setq mu4e-confirm-quit nil)
   )
 
-
-

Provide Information

-
+
+

Provide Information

+
(use-package! mu4e
   :config
   (setq mu4e-user-mail-address-list '("dehaeze.thomas@gmail.com" "thomas.dehaeze@esrf.fr")
-        mu4e-compose-signature "Thomas Dehaeze\n"
+        mu4e-compose-signature "Thomas Dehaeze\n"
         user-mail-address "dehaeze.thomas@gmail.com")
   ;; Default Folders
-  (setq mu4e-sent-folder "/gmail/Sent"
-        mu4e-drafts-folder "/gmail/Drafts"
-        mu4e-trash-folder "/gmail/Trash"
-        mu4e-refile-folder "/gmail/Archive")
+  (setq mu4e-sent-folder "/gmail/Sent"
+        mu4e-drafts-folder "/gmail/Drafts"
+        mu4e-trash-folder "/gmail/Trash"
+        mu4e-refile-folder "/gmail/Archive")
   )
 
-
-

Receiving emails using mbsync

-
+
+

Receiving emails using mbsync

+
(use-package! mu4e
   :config
-  (setq mu4e-get-mail-command "checkmail"
-        mu4e-update-interval nil
-        mu4e-change-filenames-when-moving t) ;; Fix for mbsync
+  (setq mu4e-get-mail-command "checkmail"
+        mu4e-update-interval nil
+        mu4e-change-filenames-when-moving t) ;; Fix for mbsync
   )
 
-
-

Contexts

-
+
+

Contexts

+
(use-package! mu4e
   :config
-  (setq mu4e-contexts
-        `( ,(make-mu4e-context
+  (setq mu4e-contexts
+        `( ,(make-mu4e-context
              :name "gmail"
-             :enter-func (lambda () (mu4e-message "Switch to the gmail context"))
+             :enter-func (lambda () (mu4e-message "Switch to the gmail context"))
              :match-func (lambda (msg) (when msg
-                                         (string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
-             :leave-func (lambda () (mu4e-clear-caches))
+                                         (string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
+             :leave-func (lambda () (mu4e-clear-caches))
              :vars '(
                      (user-mail-address . "dehaeze.thomas@gmail.com")
                      (user-full-name        . "Thomas Dehaeze")
-                     (mu4e-sent-folder . "/gmail/Sent")
-                     (mu4e-trash-folder . "/gmail/Trash")
-                     (mu4e-drafts-folder . "/gmail/Drafts")
-                     (mu4e-refile-folder . "/gmail/Archive")
-                     (mu4e-compose-signature  . "Thomas Dehaeze\n")
+                     (mu4e-sent-folder . "/gmail/Sent")
+                     (mu4e-trash-folder . "/gmail/Trash")
+                     (mu4e-drafts-folder . "/gmail/Drafts")
+                     (mu4e-refile-folder . "/gmail/Archive")
+                     (mu4e-compose-signature  . "Thomas Dehaeze\n")
                      ))
-           ,(make-mu4e-context
+           ,(make-mu4e-context
              :name "esrf"
-             :enter-func (lambda () (mu4e-message "Switch to the esrf context"))
+             :enter-func (lambda () (mu4e-message "Switch to the esrf context"))
              :match-func (lambda (msg) (when msg
-                                         (string-prefix-p "/esrf" (mu4e-message-field msg :maildir))))
-             :leave-func (lambda () (mu4e-clear-caches))
+                                         (string-prefix-p "/esrf" (mu4e-message-field msg :maildir))))
+             :leave-func (lambda () (mu4e-clear-caches))
              :vars '(
                      (user-mail-address . "thomas.dehaeze@esrf.fr")
                      (user-full-name        . "Thomas Dehaeze")
-                     (mu4e-sent-folder . "/esrf/Sent")
-                     (mu4e-trash-folder . "/esrf/Trash")
-                     (mu4e-drafts-folder . "/esrf/Drafts")
-                     (mu4e-refile-folder . "/esrf/Archive")
-                     (mu4e-compose-signature  . "Thomas Dehaeze\n")
+                     (mu4e-sent-folder . "/esrf/Sent")
+                     (mu4e-trash-folder . "/esrf/Trash")
+                     (mu4e-drafts-folder . "/esrf/Drafts")
+                     (mu4e-refile-folder . "/esrf/Archive")
+                     (mu4e-compose-signature  . "Thomas Dehaeze\n")
                      ))
            ))
   )
@@ -4647,18 +4754,18 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
-
-

Sending mails

-
+
+

Sending mails

+
(use-package! mu4e
   :config
   (setq message-send-mail-function 'message-send-mail-with-sendmail
-        sendmail-program "/usr/bin/msmtp"
+        sendmail-program "/usr/bin/msmtp"
         user-full-name "Thomas Dehaeze")
 
   ;; This prevents saving the email to the Sent folder since gmail will do this for us on their end.
-  (setq mu4e-sent-messages-behavior 'delete)
+  (setq mu4e-sent-messages-behavior 'delete)
 
   ;; Use the correct account context when sending mail based on the from header.
   (setq message-sendmail-envelope-from 'header)
@@ -4669,13 +4776,13 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
-
-

Bookmarks

-
+
+

Bookmarks

+
(use-package! mu4e
   :config
-  (setq mu4e-bookmarks `(,(make-mu4e-bookmark
+  (setq mu4e-bookmarks `(,(make-mu4e-bookmark
                           :name "All Inboxes"
                           :query "maildir:/gmail/Inbox OR maildir:/esrf/Inbox"
                           :key ?i)
@@ -4689,9 +4796,9 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
-
-

Doom init.el

-
+
+

Doom init.el

+
(when noninteractive
   (after! undo-tree
@@ -4713,6 +4820,7 @@ Choose account label to feed msmtp -a option based on From header in Message buf
         +all             ; catch all popups that start with an asterix
         +defaults)       ; default popup rules
        unicode           ; extended unicode support for various languages
+       indent-guides
        vc-gutter         ; vcs diff in the fringe
        vi-tilde-fringe   ; fringe tildes to mark beyond EOB
        workspaces        ; tab emulation, persistence & separate workspaces
@@ -4752,7 +4860,9 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
        :checkers
        syntax          ; tasing you for every semicolon you forget
-       (spell +aspell)          ; tasing you for misspelling mispelling
+       (spell
+        +aspell
+        +everywhere)          ; tasing you for misspelling mispelling
 
        :lang
        data              ; config/data formats
@@ -4768,6 +4878,7 @@ Choose account label to feed msmtp -a option based on From header in Message buf
         +hugo            ; use Emacs for hugo blogging
         +roam2         ;
         +gnuplot
+        +jupyter
         +present)        ; using org-mode for presentations
        python            ; beautiful is better than ugly
        (sh                ; she sells {ba,z,fi}sh shells on the C xor
@@ -4793,9 +4904,9 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
-
-

Doom packages.el

-
+
+

Doom packages.el

+
(package! org-xournalpp
   :recipe (:host gitlab
@@ -4804,6 +4915,22 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
+
+
(package! yasnippet-radical-snippets
+  :recipe (:host github :repo "Xaldew/yasnippet-radical-snippets"
+           :files (:defaults "snippets" "yasnippet-radical-snippets.el")))
+
+
+ +
+
(package! igo-org
+  :recipe (:host github
+           :repo "misohena/el-igo"
+           :branch "master"
+           :files ("*.el")))
+
+
+
(package! org-transclusion
   :recipe (:host github
@@ -4830,6 +4957,7 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
;; Automatic toggling of LaTeX fragments
 (package! org-fragtog)
+(package! org-appear)
 
@@ -4854,12 +4982,6 @@ Choose account label to feed msmtp -a option based on From header in Message buf
-
-
;; Renders Org-mode citations in CSL styles
-(package! citeproc-org)
-
-
-
;; Connector between Org-roam, BibTeX-completion, and Org-ref
 (package! org-roam-bibtex
@@ -4896,8 +5018,10 @@ Choose account label to feed msmtp -a option based on From header in Message buf
 
 
;; Org-mode query language
-(package! org-ql)
-(package! helm-org-ql)
+(package! org-ql :recipe (:host github :repo "alphapapa/org-ql"
+                          :files ("*.el")
+                          ))
+;; (package! helm-org-ql)
 
@@ -4929,7 +5053,7 @@ Choose account label to feed msmtp -a option based on From header in Message buf

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/emacs-library-babel.html b/docs/emacs-library-babel.html index 1f7ec5e..a712711 100644 --- a/docs/emacs-library-babel.html +++ b/docs/emacs-library-babel.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + My Own Library of Babel - + @@ -16,41 +16,41 @@ UP | HOME -
+

My Own Library of Babel

-
+

Table of Contents

-
-
-

get-password - Get Password from pass

-
+
+

get-password - Get Password from pass

+
-
pass $passname | sed -n 1p
+
pass $passname | sed -n 1p
 
-
-

pdf2svg - Export to pdf/png/svg at the same time

-
+
+

pdf2svg - Export to pdf/png/svg at the same time

+
-
_mydir="$(pwd)";
+
_mydir="$(pwd)";
 file=$(echo "$file" | cut -f 2- -d ':');
 _figdir=$(dirname "$file");
 cd $_figdir;
@@ -64,31 +64,31 @@ pdftocairo -svg "
 
-
-

addhdr - Add hline to tables

-
+
+

addhdr - Add hline to tables

+
-
(cons (car tbl) (cons 'hline (cdr tbl)))
+
(cons (car tbl) (cons 'hline (cdr tbl)))
 
-
-

Matlab Related

-
+
+

Matlab Related

+
-
-

matlab-dir Go to current directory

+
+

matlab-dir Go to current directory

-
-

matlab-init Initialize matlab

+
+

matlab-init Initialize matlab

-
-

plt-matlab Plot figures

-
+
+

plt-matlab Plot figures

+

Some variable can be set by block that expands this org source code block:

@@ -98,15 +98,15 @@ Some variable can be set by block that expands this org source code block:
-
if ~exist('filepath') || length(filepath) < 2
-  symbols = ['a':'z' 'A':'Z' '0':'9'];
+
if ~exist('filepath') || length(filepath) < 2
+  symbols = ['a':'z' 'A':'Z' '0':'9'];
   random_string = symbols(randi(numel(symbols),[1 5]));
   filepath = ['/tmp/matlab-fig-', random_string];
 end
 
 size_strings = strsplit(figsize, '-');
 
-ans = exportFig(filepath, 'width', size_strings{1}, 'height', size_strings{2});
+ans = exportFig(filepath, 'width', size_strings{1}, 'height', size_strings{2});
 
@@ -115,7 +115,7 @@ size_strings = strsplit(figsize, '-');

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:32

+

Created: 2022-05-09 lun. 10:03

diff --git a/docs/emacs-snippets.html b/docs/emacs-snippets.html index 0aaf607..45eb5af 100644 --- a/docs/emacs-snippets.html +++ b/docs/emacs-snippets.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Doom Emacs Configuration @@ -22,75 +22,84 @@

Table of Contents

-
-

LaTeX

-
+
+

LaTeX

+
-
-

Coordinate

-
+
+

Coordinate

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :coordinate
@@ -102,9 +111,9 @@ $0
 
-
-

Draw

-
+
+

Draw

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :draw
@@ -116,9 +125,9 @@ $0
 
-
-

Node

-
+
+

Node

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :node
@@ -130,9 +139,9 @@ $0
 
-
-

Path

-
+
+

Path

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :path
@@ -145,13 +154,13 @@ $0
 
-
-

Matlab

-
+
+

Matlab

+
-
-

Clear

-
+
+

Clear

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :clear and close all
@@ -163,9 +172,9 @@ $0
 
-
-

Function

-
+
+

Function

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :function
@@ -205,13 +214,13 @@ if exist('opts_param','
 
-
-

Org Mode

-
+
+

Org Mode

+
-
-

Begin

-
+
+

Begin

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :LaTeX Environment
@@ -224,9 +233,9 @@ $0
 
-
-

Caption

-
+
+

Caption

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Caption
@@ -237,9 +246,9 @@ $0
 
-
-

Block

-
+
+

Block

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Org-Mode Block
@@ -255,9 +264,9 @@ $0
 
-
-

Custom Box

-
+
+

Custom Box

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Custom Box
@@ -271,9 +280,9 @@ $0
 
-
-

Latex Class

-
+
+

Latex Class

+
#name: latex-class
 #key: lc
@@ -286,9 +295,9 @@ $0
 
-
-

Bibliography with completion

-
+
+

Bibliography with completion

+
#name: bibliography with completion
 #key: bib
@@ -299,9 +308,9 @@ bibliography:${1:$$(yas-choose
 
-
-

Cite

-
+
+

Cite

+
#name: org-ref cite link
 #key: cite
@@ -314,9 +323,9 @@ cite:${1:$$(completing-read
 
-
-

Ref

-
+
+

Ref

+
#name: org-ref ref link with completion
 #key: ref
@@ -327,9 +336,9 @@ ref:${1:$$(completing-read 
 
-
-

Beamer - CBOX

-
+
+

Beamer - CBOX

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Beamer Custom Box
@@ -346,9 +355,9 @@ $0
 
-
-

HTML Details

-
+
+

HTML Details

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :details
@@ -362,9 +371,9 @@ $0
 
-
-

Code

-
+
+

Code

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Code
@@ -379,9 +388,9 @@ $0
 
-
-

Equation

-
+
+

Equation

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Equation
@@ -395,9 +404,9 @@ $0
 
-
-

Figure

-
+
+

Figure

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Figure
@@ -411,9 +420,9 @@ $0
 
-
-

Frac

-
+
+

Frac

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :LaTeX Fraction
@@ -424,9 +433,9 @@ $0
 
-
-

Left

-
+
+

Left

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Left Right mathematical delimitations
@@ -437,9 +446,9 @@ $0
 
-
-

Minipage

-
+
+

Minipage

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :minipage
@@ -467,9 +476,9 @@ $0
 
-
-

Minipage Figures

-
+
+

Minipage Figures

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Minipage with Figures
@@ -495,9 +504,9 @@ $0
 
-
-

Wrap Figure

-
+
+

Wrap Figure

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Wrap Figure
@@ -513,9 +522,9 @@ $0
 
-
-

Multicolumn

-
+
+

Multicolumn

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Multcolumn
@@ -527,9 +536,9 @@ $0
 
-
-

Subfigure

-
+
+

Subfigure

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Subfigure
@@ -545,9 +554,9 @@ $0
 
-
-

Table

-
+
+

Table

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Table
@@ -555,7 +564,7 @@ $0
 #+name: tab:${1:table_name}
 #+caption: ${2:Table caption}
 #+attr_latex: :environment tabularx :width ${3:\linewidth} :align ${4:lXX}
-#+attr_latex: :center t :booktabs t :float t
+#+attr_latex: :center t :booktabs t
 | $0  |   |   |
 |---+---+---|
 |   |   |   |
@@ -564,9 +573,9 @@ $0
 
-
-

Tikz

-
+
+

Tikz

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Tikz figure
@@ -581,9 +590,9 @@ $0
 
-
-

Tikzfig

-
+
+

Tikzfig

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Tikz Figure
@@ -607,9 +616,9 @@ $0
 
-
-

Tikzheader

-
+
+

Tikzheader

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Tikz Header
@@ -630,9 +639,9 @@ $0
 
-
-

User-config

-
+
+

User-config

+
# -*- mode: snippet -*-
 # name: user-config
@@ -646,9 +655,9 @@ $1
 
-
-

User-init

-
+
+

User-init

+

#+begin_src conf :tangle ~/.config/doom/snippets/org-mode/user-init

@@ -662,9 +671,9 @@ $1
-
-

Wrap

-
+
+

Wrap

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Wrap
@@ -676,13 +685,41 @@ $0
 
-
-

Matlab Specific

-
+
+

Python Specific

+
-
-

Mconfig

-
+
+

Pfigure

+
+
+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
+#name :Python-Figure
+# --
+#+begin_src jupyter-python :file ${2:filename}.png :results none
+# Figure - ${1:description}
+plt.figure(figsize=(${3:1200}/150, ${4:800}/150), dpi=150)
+plt.clf
+$0
+plt.savefig('figs/$2.pdf', transparent=True, bbox_inches='tight', pad_inches=0)
+#+end_src
+
+#+name: fig:$2
+#+caption: $1
+[[file:figs/$2.png]]
+
+
+
+
+
+ +
+

Matlab Specific

+
+
+
+

Mconfig

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Configuration-Header
@@ -702,64 +739,35 @@ $0
 
-
-

Mdescription

-
-
-
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
-#name :Measurement-Description
-# --
-* Measurement description
-** Setup                                                             :ignore:
-*Setup*:
-
-** Goal                                                              :ignore:
-*Goal*:
-
-** Measurements                                                      :ignore:
-*Measurements*:
-
-Three measurements are done:
-| Measurement File        | Description                  |
-|-------------------------+------------------------------|
-| =mat/data_${1:001}.mat= | $2                           |
-
-Each of the measurement =mat= file contains one =data= array with 3 columns:
-| Column number | Description       |
-|---------------+-------------------|
-|             1 | $3                |
-|             2 | $4                |
-|             3 | Time              |
-
-$0
-
-
-
-
- -
-

Mfigure

-
+
+

Mfigure

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Figure
 # --
-#+begin_src matlab :tangle no :exports results :results file replace
-   exportFig('figs/${1:filename}.pdf', 'width', '${2:full}', 'height', '${3:full}');
+#+begin_src matlab :exports none :results none
+%% ${1:description}
+figure;
+$0
 #+end_src
 
-#+name: fig:$1
-#+caption: $0
+#+begin_src matlab :tangle no :exports results :results file replace
+exportFig('figs/${2:filename}.pdf', 'width', '${3:full}', 'height', '${4:full}');
+#+end_src
+
+#+name: fig:$2
+#+caption: $1
 #+RESULTS:
-[[file:figs/$1.png]]
+[[file:figs/$2.png]]
 
-
-

Mfunction

-
+
+

Mfunction

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Function
@@ -792,9 +800,9 @@ end
 
-
-

Mheader

-
+
+

Mheader

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Header
@@ -827,9 +835,9 @@ $0
 
-
-

Minit

-
+
+

Minit

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Init
@@ -849,9 +857,9 @@ $0
 
-
-

Mtable

-
+
+

Mtable

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Table
@@ -865,9 +873,9 @@ $0
 
-
-

Mvalue

-
+
+

Mvalue

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Matlab-Value
@@ -882,9 +890,9 @@ $0
 
-
-

Binary

-
+
+

Binary

+
#contributor : Thomas Dehaeze <dehaeze.thomas@gmail.com>
 #name :Binary
@@ -902,10 +910,60 @@ $0
 
+ +
+

Python

+
+
+
+

Function

+
+
+
# -*- coding: utf-8 -*-
+# name: de
+# contributor: Orestis Markou
+# contributor: Yasser González Fernández <yglez@uh.cu>
+# contributor: Tibor Simko <tibor.simko@cern.ch>
+# --
+def ${1:name}($2):
+    """
+    $3
+    ${2:$
+    (let* ((indent
+            (concat "\n" (make-string (current-column) 32)))
+           (args
+            (mapconcat
+             '(lambda (x)
+                (if (not (string= (nth 0 x) ""))
+                    (concat "@param " (nth 0 x) ": " indent
+                            "@type " (nth 0 x) ": ")))
+             (mapcar
+              '(lambda (x)
+                 (mapcar
+                  '(lambda (x)
+                     (replace-regexp-in-string "[[:blank:]]*$" ""
+                      (replace-regexp-in-string "^[[:blank:]]*" "" x)))
+                  x))
+              (mapcar '(lambda (x) (split-string x "="))
+                      (split-string text ",")))
+             indent)))
+      (if (string= args "")
+          (concat indent "@return: " indent "@rtype: " indent (make-string 3 34))
+        (mapconcat
+         'identity
+         (list "" args "@return: " "@rtype: " (make-string 3 34))
+         indent)))
+    }
+    $0
+
+
+
+
+

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/git.html b/docs/git.html index a6e2f31..b71c34a 100644 --- a/docs/git.html +++ b/docs/git.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Git Configuration - + @@ -16,40 +16,39 @@ UP | HOME -
+

Git Configuration

-
+

Table of Contents

- -
-

~/.gitconfig

-
+
+

~/.gitconfig

+
-
-

Aliases

-
+
+

Aliases

+
[alias]
   # View abbreviated SHA, description, and history graph of the latest 20 commits
@@ -126,9 +125,9 @@
 
-
-

Apply

-
+
+

Apply

+
[apply]
   # Detect whitespace errors when applying a patch
@@ -138,9 +137,9 @@
 
-
-

Colors

-
+
+

Colors

+
[color]
   # Use colors in Git commands that are capable of colored output when outputting to the terminal
@@ -174,9 +173,9 @@
 
-
-

Default Remote

-
+
+

Default Remote

+
# Use `origin` as the default remote on the `master` branch in all cases
 [branch "master"]
@@ -187,9 +186,9 @@
 
-
-

Push Configuration

-
+
+

Push Configuration

+
[push]
   default = matching
@@ -200,9 +199,9 @@
 
-
-

User

-
+
+

User

+
[user]
   name = Thomas Dehaeze
@@ -212,9 +211,9 @@
 
-
-

Core configuration

-
+
+

Core configuration

+
[core]
   # Use custom `.gitignore` and `.gitattributes`
@@ -240,9 +239,9 @@
 
-
-

Credentials using pass

-
+
+

Credentials using pass

+
[credential]
     helper = !pass-git-helper $@
@@ -260,9 +259,9 @@
 
-
-

Diff-so-fancy

-
+
+

Diff-so-fancy

+
[diff-so-fancy]
   markEmptyLines = false
@@ -270,23 +269,11 @@
 
- -
-

Github

-
-
-
[github]
-  user = tdehaeze
-  oauth-token = 8cc5b41120f7e9a869c24fa3678667d3d8422e6f
-
-
-
-
-
-

~/.gitignore_global - Global Git Ignore

-
+
+

~/.gitignore_global - Global Git Ignore

+
*~
 .DS_Store
@@ -296,9 +283,9 @@ Session.vim
 
-
-

pass-git-helper - Use pass for git passwords

-
+
+

pass-git-helper - Use pass for git passwords

+
[github.com*]
 target=github.com/tdehaeze
@@ -315,7 +302,7 @@ Session.vim
 

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:40

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/gtk.html b/docs/gtk.html index feab34d..155ef03 100644 --- a/docs/gtk.html +++ b/docs/gtk.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + GTK Configuration - + @@ -16,21 +16,21 @@ UP | HOME -
+

GTK Configuration

-
+

Table of Contents

- -
-

GTK-2.0

-
+
+

GTK-2.0

+
gtk-theme-name="Arc-Dark"
 gtk-icon-theme-name="Arc"
@@ -52,9 +52,9 @@
 
-
-

GTK-3.0

-
+
+

GTK-3.0

+
[Settings]
 gtk-theme-name=Arc-Dark
@@ -79,7 +79,7 @@
 

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:43

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/homelab.html b/docs/homelab.html index 4a3011b..03d2c90 100644 --- a/docs/homelab.html +++ b/docs/homelab.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Home Server @@ -22,136 +22,131 @@

Table of Contents

-
-

Hardware

-
+
+

Hardware

+
@@ -211,13 +206,13 @@ -
-

Installation

-
+
+

Installation

+
-
-

Ubuntu

-
+
+

Ubuntu

+
  • Download Ubuntu Server 20.04 LTS (link).
  • Activate OpenSSH and add SSH Keys
  • @@ -226,9 +221,9 @@
-
-

Install Important software

-
+
+

Install Important software

+
sudo apt install neovim tmux fd-find ripgrep fzf apache2-utils unrar ranger
 
@@ -236,9 +231,9 @@
-
-

Terminal Problem

-
+
+

Terminal Problem

+

On the local host, using Termite:

@@ -259,9 +254,9 @@ On the remote host, in the directory where you copied termite.terminfo
-
-

Minor Modifications of ~/.inputrc

-
+
+

Minor Modifications of ~/.inputrc

+

Modify ~/.inputrc, like so:

@@ -273,9 +268,9 @@ Modify ~/.inputrc, like so:
-
-

Partition and Format Disk Drives

-
+
+

Partition and Format Disk Drives

+

A nice tutorial is available here.

@@ -302,9 +297,9 @@ A nice tutorial is available -

MergerFS and FStab

-
+ -
-

Automating with SnapRAID Runner

-
+
+

Automating with SnapRAID Runner

+

SnapRAID is a snapshot parity calculation tool which acts at the block level independent of filesystem (link).

@@ -359,9 +354,9 @@ SnapRAID is here used inside a Docker container ( -

Install Docker

-
+
+

Install Docker

+

The procedure is well explained here.

@@ -376,9 +371,9 @@ If docker is already installed, remove it:
-
-

Executing the Docker Command Without Sudo

-
+
+

Executing the Docker Command Without Sudo

+
sudo usermod -aG docker ${USER}
 
@@ -394,9 +389,9 @@ To apply the new group membership, log out of the server and back in, or type th
-
-

Install Docker-Compose

-
+
+

Install Docker-Compose

+
sudo apt install docker-compose
 
@@ -404,9 +399,9 @@ To apply the new group membership, log out of the server and back in, or type th
-
-

Setup Docker Networks

-
+
+

Setup Docker Networks

+
docker network create --gateway 192.168.90.1 --subnet 192.168.90.0/24 t2_proxy
 docker network create docker_default
@@ -415,9 +410,9 @@ docker network create docker_default
 
-
-

Change Timezone

-
+
+

Change Timezone

+
sudo timedatectl set-timezone Europe/Paris
 
@@ -425,9 +420,9 @@ docker network create docker_default
-
-

Secure the Web Server

-
+
+

Secure the Web Server

+

Most of it comes from here.

@@ -438,9 +433,9 @@ Most of it comes from -

Automatic Security Updates

-
+
+

Automatic Security Updates

+

The procedure is well explained here.

@@ -470,9 +465,9 @@ APT::Periodic::Unattended-Upgrade "1";
-
-

Setup cronjobs

-
+
+

Setup cronjobs

+

Create a folder ~/cron with all the scripts and logs related to cron.

@@ -492,9 +487,9 @@ To check how the first part of the crontab works, check -

Run docker-compose

-
+
+

Run docker-compose

+
cd ~/docker && docker-compose up -d
 
@@ -502,9 +497,9 @@ To check how the first part of the crontab works, check
-

Docker config ~/.docker/config.json

-
+
+

Docker config ~/.docker/config.json

+
-
-

Maintenance - How To

-
+
+

Maintenance - How To

+
-
-

Update System/Packages

-
+
+

Update System/Packages

+
sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'
 
@@ -529,9 +540,9 @@ To check how the first part of the crontab works, check -

Docker Commands

-
+
+

Docker Commands

+
  • Starting a container: $ docker start homeassistant
  • Stopping a container: $ docker stop homeassistant
  • @@ -561,9 +572,9 @@ This will delete all unused images, volumes and networks.
-
-

snapraid

-
+
+

snapraid

+

To see all files “backed up” by snapraid, use:

@@ -586,9 +597,9 @@ The path to file should be relative: /srv/storage/Cloud/org/file.org
-
-

Restore Online backup with restic

-
+
+

Restore Online backup with restic

+

To list backups:

@@ -665,13 +676,13 @@ If indeed, we want to make a copy of the file, we can use the backup folder
-
-

Add wireguard client

-
+
+

Add wireguard client

+
-
-

With an Android client

-
+
+

With an Android client

+

Show the QRcode corresponding the a specific peer with:

@@ -686,9 +697,9 @@ Then, simply scan the QRcode with the -

With a Linux client

-
+
+

With a Linux client

+

Copy the file $CONFIGDIR/wireguard/peeri/peeri.conf, e.g.:

@@ -727,18 +738,19 @@ Then, start the tunnel with:
-
-

Docker-Compose

-
+
+

Docker-Compose

+
+
+ +
+

Basic Config

+
version: "3.4"
 
-
-
-

Networks

-
networks:
   t2_proxy:
@@ -750,12 +762,7 @@ Then, start the tunnel with:
     driver: bridge
 
-
-
-
-

Logging

-
x-logging:
   &default-logging
@@ -765,17 +772,21 @@ Then, start the tunnel with:
     max-file: "10"
 
-
-
-
+
+

Docker Config and Tools

+
+
+
+

traefik - Application proxy (link)

+
  traefik:
     container_name: traefik
@@ -793,10 +804,9 @@ Then, start the tunnel with:
       - 443:443 # https
       - 8448:8448 # Matrix
     volumes:
-      - $CONFIGDIR/traefik2/rules:/rules
-      - $CONFIGDIR/traefik2/acme/acme.json:/acme.json
-      - $CONFIGDIR/traefik2/shared:/shared
+      - $CONFIGDIR/traefik2/acme.json:/acme.json
       - $CONFIGDIR/traefik2/traefik.yaml:/etc/traefik/traefik.yaml
+      - $CONFIGDIR/traefik2/services.yaml:/etc/traefik/services.yaml
       - /var/log/traefik:/var/log
       - /var/run/docker.sock:/var/run/docker.sock:ro
     environment:
@@ -820,14 +830,27 @@ Then, start the tunnel with:
       - "traefik.http.services.traefik-svc.loadbalancer.server.port=8080"
       # Services - API
       - "traefik.http.routers.traefik-rtr.service=api@internal"
+      # Router
+      - "traefik.http.routers.openwrt.entrypoints=https"
+      - "traefik.http.routers.openwrt.rule=Host(`openwrt.$DOMAINNAME`)"
+      - "traefik.http.routers.openwrt.tls=true"
+      - "traefik.http.routers.openwrt.service=openwrt@file"
+      # Valetudo
+      - "traefik.http.routers.valetudo.entrypoints=https"
+      - "traefik.http.routers.valetudo.rule=Host(`valetudo.$DOMAINNAME`)"
+      - "traefik.http.routers.valetudo.tls=true"
+      - "traefik.http.routers.valetudo.middlewares=authelia@docker"
+      - "traefik.http.routers.valetudo.service=valetudo@file"
+      # Basic Auth
+      - "traefik.http.middlewares.wasabi-auth.basicauth.users=wasabi:$$2y$$05$$GWMXPYbVPtIbnKR8nJBUseTfuLn4vgMzMXtIqs.3.0Je9eUGbRiwG"
+      - "traefik.http.middlewares.potaupho-auth.basicauth.users=potaupho:$$2y$$05$$0.hcoM36J1bhooHg6w/PBeP.HyxUpZwU7eFurq5RCrpaYNMVq1f4y"
     logging: *default-logging
 
-
-
-

traefik.yaml

-
+

+traefik.yaml +

global:
   checkNewVersion: true
@@ -862,7 +885,7 @@ Then, start the tunnel with:
     network: t2_proxy
     swarmMode: false
   file:
-    directory: /rules
+    filename: /etc/traefik/services.yaml
     watch: true
 
 certificatesResolvers:
@@ -875,13 +898,27 @@ Then, start the tunnel with:
         resolvers: 1.1.1.1:53,1.0.0.1:53
 
+ +
+
http:
+  services:
+    openwrt:
+      loadBalancer:
+        servers:
+        - url: "http://192.168.1.1/"
+    valetudo:
+      loadBalancer:
+        servers:
+        - url: "http://192.168.1.110/"
+        - url: "http://192.168.2.157/"
+
-
-

authelia - Single Sign-On Multi-Factor portal (link)

-
+
+

authelia - Single Sign-On Multi-Factor portal (link)

+
  authelia:
     image: authelia/authelia:4.30
@@ -914,11 +951,10 @@ Then, start the tunnel with:
       - "traefik.docker.network=t2_proxy"
 
-
-
-

configuration.yml

-
+

+configuration.yml +

---
 ###############################################################
@@ -952,11 +988,16 @@ Then, start the tunnel with:
 access_control:
   default_policy: deny
   rules:
-    - domain: traefik.tdehaeze.xyz
+    - domain: valetudo.tdehaeze.xyz
       policy: one_factor
       subject:
       - ["group:admins"]
-    - domain: zigbee2mqttassistant.tdehaeze.xyz
+      - ["group:family"]
+    - domain: openwrt.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: traefik.tdehaeze.xyz
       policy: one_factor
       subject:
       - ["group:admins"]
@@ -968,6 +1009,18 @@ Then, start the tunnel with:
       policy: one_factor
       subject:
       - ["group:admins"]
+    - domain: sync-ju.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: sync-jm.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: sync-anne.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
     - domain: syncthing.tdehaeze.xyz
       policy: one_factor
       subject:
@@ -976,20 +1029,45 @@ Then, start the tunnel with:
       policy: one_factor
       subject:
       - ["group:admins"]
+      - ["group:family"]
+    - domain: tina2.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+      - ["group:family"]
     - domain: uptime.tdehaeze.xyz
       policy: one_factor
       subject:
       - ["group:admins"]
+    - domain: wireguard.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
     - domain: joal.tdehaeze.xyz
       policy: one_factor
       subject:
       - ["group:admins"]
-    - domain: down.tdehaeze.xyz
+    - domain: change.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: esphome.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: node-red.tdehaeze.xyz
       policy: one_factor
       subject:
       - ["group:admins"]
-      - ["group:friends"]
       - ["group:family"]
+    - domain: zigbee2mqtt.tdehaeze.xyz
+      policy: one_factor
+      subject:
+      - ["group:admins"]
+    - domain: qobuz.tdehaeze.xyz
+      policy: bypass
+      resources:
+      - "^/download.*$"
     - domain: qobuz.tdehaeze.xyz
       policy: one_factor
       subject:
@@ -1022,40 +1100,74 @@ Then, start the tunnel with:
 
-
-
-

lldap - LDAP Server (link)

-
+
+

portainer - Manage docker (link)

+
-
  lldap:
-    image: nitnelave/lldap
-    container_name: lldap
+
  portainer:
+    container_name: portainer
+    image: portainer/portainer
     restart: unless-stopped
+    command: -H unix:///var/run/docker.sock
+    command: --no-auth
     networks:
       - t2_proxy
-      - backend
-    ports:
-      - 3890:3890
+    security_opt:
+      - no-new-privileges:true
     volumes:
-      - $CONFIGDIR/lldap:/data
+      - /var/run/docker.sock:/var/run/docker.sock:ro
+      - $CONFIGDIR/portainer:/data
+    environment:
+      - TZ=$TZ
     labels:
       - "traefik.enable=true"
-      - "traefik.http.routers.lldap-rtr.entrypoints=https"
-      - "traefik.http.routers.lldap-rtr.rule=Host(`lldap.$DOMAINNAME`)"
-      - "traefik.http.routers.lldap-rtr.tls=true"
-      - "traefik.http.routers.lldap-rtr.service=lldap-svc"
-      - "traefik.http.routers.lldap-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.lldap-svc.loadbalancer.server.port=17170"
+      - "traefik.http.routers.portainer-rtr.entrypoints=https"
+      - "traefik.http.routers.portainer-rtr.rule=Host(`portainer.$DOMAINNAME`)"
+      - "traefik.http.routers.portainer-rtr.tls=true"
+      - "traefik.http.routers.portainer-rtr.service=portainer-svc"
+      - "traefik.http.routers.portainer-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"
     logging: *default-logging
 
-
-

gotify - Notification service (link)

-
+
+

uptime-kuma - Monitoring Tool (link)

+
+
+
  uptime-kuma:
+    container_name: uptime-kuma
+    image: louislam/uptime-kuma
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    volumes:
+    environment:
+      - TZ=$TZ
+      - UID=$PUID
+      - GID=$PGID
+    volumes:
+      - $CONFIGDIR/uptime-kuma:/app/data
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.uptime-rtr.entrypoints=https"
+      - "traefik.http.routers.uptime-rtr.rule=Host(`uptime.$DOMAINNAME`)"
+      - "traefik.http.routers.uptime-rtr.tls=true"
+      - "traefik.http.routers.uptime-rtr.service=uptime-svc"
+      - "traefik.http.routers.uptime-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.uptime-svc.loadbalancer.server.port=3001"
+    logging: *default-logging
+
+
+
+
+ +
+

gotify - Notification service (link)

+ - -
-

homer - Home page (link)

-
-
-
  homer:
-    container_name: homer
-    image: b4bz/homer
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - UID=$PUID
-      - GID=$PGID
-      - TZ=$TZ
-    volumes:
-      - $CONFIGDIR/homer/assets/:/www/assets
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.homer-rtr.entrypoints=https"
-      - "traefik.http.routers.homer-rtr.rule=Host(`homer.$DOMAINNAME`)"
-      - "traefik.http.routers.homer-rtr.tls=true"
-      - "traefik.http.routers.homer-rtr.service=homer-svc"
-      - "traefik.http.services.homer-svc.loadbalancer.server.port=8080"
-    logging: *default-logging
-
-
-
- -
-

config.yml

-
-
-
---
-title: "Homepage"
-subtitle: ""
-logo: "assets/homer.png"
-header: false
-footer: false
-
-columns: "auto"
-connectivityCheck: false
-
-theme: default
-
-links: []
-
-services:
-  - name: "Websites"
-    icon: "fas fa-desktop"
-    items:
-    - name: "Brain"
-      logo: "/assets/tools/brain.png"
-      subtitle: "Digital Brain"
-      url: "https://brain.tdehaeze.xyz"
-    - name: "Wiki"
-      logo: "/assets/tools/wikijs.png"
-      subtitle: "Shared Wiki"
-      url: "https://wiki.tdehaeze.xyz"
-    - name: "Research"
-      logo: "/assets/tools/orgmode.png"
-      subtitle: "Research Pages"
-      url: "https://research.tdehaeze.xyz"
-    - name: "Dotfiles"
-      logo: "/assets/tools/dotfiles.png"
-      subtitle: "My Literate Dotfiles"
-      url: "https://dotfiles.tdehaeze.xyz"
-    - name: "Miam"
-      logo: "/assets/tools/miam.png"
-      subtitle: "Personnal Recipes"
-      url: "https://miam.tdehaeze.xyz"
-  - name: "Multimedia"
-    icon: "fas fa-photo-video"
-    items:
-    - name: "Jellyfin"
-      logo: "/assets/tools/jellyfin.png"
-      subtitle: "Media Library"
-      url: "https://jellyfin.tdehaeze.xyz"
-    - name: "Kavita"
-      logo: "/assets/tools/kavita.png"
-      subtitle: "Book Library"
-      url: "https://kavita.tdehaeze.xyz"
-  - name: "Cloud"
-    icon: "fas fa-cloud"
-    items:
-    - name: "File Browser"
-      logo: "/assets/tools/cloud.png"
-      subtitle: "Simple Personnal Could"
-      url: "https://cloud.tdehaeze.xyz"
-    - name: "Syncthing"
-      logo: "/assets/tools/syncthing.png"
-      subtitle: "P2P Sync"
-      url: "https://syncthing.tdehaeze.xyz"
-    - name: "Radicale"
-      logo: "/assets/tools/radicale.png"
-      subtitle: "CalDAV/CardDAV Server"
-      url: "https://radicale.tdehaeze.xyz"
-    - name: "Miniflux"
-      logo: "/assets/tools/miniflux.png"
-      subtitle: "RSS Feeds"
-      url: "https://rss.tdehaeze.xyz"
-    - name: "Gitea"
-      logo: "/assets/tools/gitea.png"
-      subtitle: "Git Server"
-      url: "https://git.tdehaeze.xyz"
-  - name: "Download"
-    icon: "fas fa-download"
-    items:
-    - name: "Down"
-      logo: "/assets/tools/down.png"
-      subtitle: "Torrent Download"
-      url: "https://down.tdehaeze.xyz/"
-    - name: "Qobuz"
-      subtitle: "Music Download"
-      logo: "/assets/tools/qobuz.png"
-      url: "https://qobuz.tdehaeze.xyz"
-    - name: "Transmission"
-      logo: "/assets/tools/transmission.png"
-      subtitle: "Torrent Client"
-      url: "http://torrent.tdehaeze.xyz:9091/transmission/web/"
-    - name: "Joal"
-      logo: "/assets/tools/joal.png"
-      subtitle: "Increase Ratio"
-      url: "https://joal.tdehaeze.xyz/joal/ui/#/"
-  - name: "Config"
-    icon: "fas fa-cog"
-    items:
-    - name: "Portainer"
-      logo: "/assets/tools/portainer.png"
-      subtitle: "Manger Docker"
-      url: "https://portainer.tdehaeze.xyz/#/containers"
-    - name: "Traefik"
-      logo: "/assets/tools/traefik.png"
-      subtitle: "Reverse Proxy"
-      url: "https://traefik.tdehaeze.xyz"
-    - name: "Uptime"
-      logo: "/assets/tools/uptime.png"
-      subtitle: "Monitoring"
-      url: "https://uptime.tdehaeze.xyz"
-    - name: "Commento"
-      logo: "/assets/tools/commento.png"
-      subtitle: "Commenting System"
-      url: "https://commento.tdehaeze.xyz"
-    - name: "Gotify"
-      logo: "/assets/tools/gotify.png"
-      subtitle: "Messaging System"
-      url: "https://gotify.tdehaeze.xyz"
-    - name: "Scrutiny"
-      logo: "/assets/tools/scrutiny.png"
-      subtitle: "S.M.A.R.T"
-      url: "http://scrutiny.tdehaeze.xyz/web/dashboard"
-  - name: "Home"
-    icon: "fas fa-home"
-    items:
-    - name: "OpenWRT"
-      logo: "/assets/tools/openwrt.png"
-      subtitle: "Router"
-      url: "http://192.168.1.1/"
-    - name: "Home Assistant"
-      logo: "/assets/tools/homeassistant.png"
-      subtitle: "Home Assistant"
-      url: "http://home.tdehaeze.xyz:8123"
-    - name: "Zigbee2MQTT"
-      logo: "/assets/tools/zigbee2mqtt.png"
-      subtitle: "Zigbee2MQTT Assistant"
-      url: "https://zigbee2mqttassistant.tdehaeze.xyz/"
-    - name: "OctoPrint"
-      logo: "/assets/tools/octoprint.png"
-      subtitle: "3D-Printing"
-      url: "https://octoprint.tdehaeze.xyz/"
-
-
-
-
-
- -
-

snapraid - Manage local backup with parity disk (link)

-
+ -
-

portainer - Manage docker (link)

-
-
-
  portainer:
-    container_name: portainer
-    image: portainer/portainer
-    restart: unless-stopped
-    command: -H unix:///var/run/docker.sock
-    command: --no-auth
-    networks:
-      - t2_proxy
-    security_opt:
-      - no-new-privileges:true
-    volumes:
-      - /var/run/docker.sock:/var/run/docker.sock:ro
-      - $CONFIGDIR/portainer:/data
-    environment:
-      - TZ=$TZ
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.portainer-rtr.entrypoints=https"
-      - "traefik.http.routers.portainer-rtr.rule=Host(`portainer.$DOMAINNAME`)"
-      - "traefik.http.routers.portainer-rtr.tls=true"
-      - "traefik.http.routers.portainer-rtr.service=portainer-svc"
-      - "traefik.http.routers.portainer-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"
-    logging: *default-logging
-
-
-
-
- -
-

wireguard - VPN (link)

-
-
-
  wireguard:
-    container_name: wireguard
-    image: linuxserver/wireguard
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    cap_add:
-      - NET_ADMIN
-      - SYS_MODULE
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - SERVERURL=wireguard.tdehaeze.xyz
-      - SERVERPORT=51820
-      - PEERS=3
-      - PEERDNS=auto
-    volumes:
-      - $CONFIGDIR/wireguard:/config
-      - /lib/modules:/lib/modules
-    ports:
-      - 51820:51820/udp
-    logging: *default-logging
-
-
-
-
- -
-

gluetun - Provide VPN connection to other containers (link)

-
-
-
  gluetun:
-    image: qmcgaw/gluetun
-    container_name: gluetun
-    restart: unless-stopped
-    cap_add:
-      - NET_ADMIN
-    network_mode: bridge
-    ports:
-      - 8065:8065 # For transmission
-      - 9091:9091 # For transmission
-      - 51413:51413 # For transmission
-      - 51413:51413/udp # For transmission
-    environment:
-      - OPENVPN_USER=$NORDVPN_NAME
-      - OPENVPN_PASSWORD=$NORDVPN_PASS
-      - VPNSP=nordvpn
-      - REGION=France
-      - SERVER_NUMBER=776
-      - TZ=$TZ
-    volumes:
-      - $CONFIGDIR/gluetun:/config
-
-
-
-
- -
-

transmission - Torrent client (link)

-
-
-
  transmission:
-    container_name: transmission
-    image: ghcr.io/linuxserver/transmission
-    restart: unless-stopped
-    network_mode: container:gluetun
-    depends_on:
-      - gluetun
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - USER=$TRANSMISSION_NAME
-      - PASS=$TRANSMISSION_PASS
-    volumes:
-      - $CONFIGDIR/transmission:/config
-      - /srv/storage/Downloads:/downloads
-      - /srv/storage/Downloads/watch:/watch
-    logging: *default-logging
-
-
-
-
- -
-

gitea - Git server (link)

-
-
-
  gitea:
-    container_name: git
-    image: gitea/gitea:1.13.2
-    depends_on:
-      - gitea_db
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-      - backend
-    volumes:
-      - $CONFIGDIR/gitea:/data
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - SSH_PORT=$GITEA_SSH_PORT
-    ports:
-      - "2222:22"
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.git-rtr.entrypoints=https"
-      - "traefik.http.routers.git-rtr.rule=Host(`git.$DOMAINNAME`)"
-      - "traefik.http.routers.git-rtr.tls=true"
-      - "traefik.http.routers.git-rtr.service=git-svc"
-      - "traefik.http.services.git-svc.loadbalancer.server.port=3000"
-    logging: *default-logging
-
-
- -
-
  gitea_db:
-    container_name: gitea_db
-    image: mariadb:10
-    restart: unless-stopped
-    networks:
-      - backend
-    ports:
-      - 3306:3306
-    environment:
-      - MYSQL_ROOT_PASSWORD=$GITEA_DB_MYSQL_ROOT_PASSWORD
-      - MYSQL_DATABASE=gitea
-      - MYSQL_USER=gitea
-      - MYSQL_PASSWORD=$GITEA_DB_MYSQL_PASSWORD
-    volumes:
-      - $CONFIGDIR/mariadb:/var/lib/mysql
-
-
-
-
- -
-

wikijs - Wiki App (link)

-
-
-
  wikijs:
-    image: ghcr.io/linuxserver/wikijs:version-2.5.201
-    container_name: wikijs
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-    volumes:
-      - $CONFIGDIR/wikijs/config:/config
-      - $CONFIGDIR/wikijs/data:/data
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.wikijs-rtr.entrypoints=https"
-      - "traefik.http.routers.wikijs-rtr.rule=Host(`wiki.$DOMAINNAME`)"
-      - "traefik.http.routers.wikijs-rtr.tls=true"
-      - "traefik.http.routers.wikijs-rtr.service=wikijs-svc"
-      - "traefik.http.services.wikijs-svc.loadbalancer.server.port=3000"
-    logging: *default-logging
-
-
-
-
- -
-

research - Research Pages (link)

-
-
-
  caddy:
-    container_name: caddy
-    image: abiosoft/caddy:1.0.3-no-stats
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - PLUGINS=git
-    volumes:
-      - $CONFIGDIR/caddy/Caddyfile:/etc/Caddyfile
-      - $CONFIGDIR/web:/srv
-        # - ~/.ssh:/root/.ssh
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.caddy-rtr.entrypoints=https"
-      - "traefik.http.routers.caddy-rtr.rule=Host(`research.$DOMAINNAME`)"
-      - "traefik.http.routers.caddy-rtr.tls=true"
-      - "traefik.http.routers.caddy-rtr.service=caddy-svc"
-      - "traefik.http.services.caddy-svc.loadbalancer.server.port=2015"
-    logging: *default-logging
-
-
-
- -
-

Caddyfile

-
-
-
0.0.0.0:2015 {
-    root /srv/www/
-
-    git {
-        repo     https://git.tdehaeze.xyz/tdehaeze/research-home-page
-        path     /srv/www/
-        interval -1
-        hook     /research-home-page/webhook QHZgAKjD8q2v54Ru
-        then     git submodule update --init --recursive --merge
-    }
-}
-
-
-
-
-
- -
-

dotfiles - Dotfiles (link)

-
-
-
  dotfiles:
-    container_name: dotfiles
-    image: abiosoft/caddy:1.0.3-no-stats
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - PLUGINS=git
-    volumes:
-      - $CONFIGDIR/dotfiles/Caddyfile:/etc/Caddyfile
-      - $CONFIGDIR/dotfiles/www:/srv/www
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.dotfiles-rtr.entrypoints=https"
-      - "traefik.http.routers.dotfiles-rtr.rule=Host(`dotfiles.$DOMAINNAME`)"
-      - "traefik.http.routers.dotfiles-rtr.tls=true"
-      - "traefik.http.routers.dotfiles-rtr.service=dotfiles-svc"
-      - "traefik.http.services.dotfiles-svc.loadbalancer.server.port=2015"
-    logging: *default-logging
-
-
-
- -
-

Caddyfile

-
-
-
0.0.0.0:2015 {
-    root /srv/www/docs/
-
-    git {
-        repo     https://git.tdehaeze.xyz/tdehaeze/literate-dotfiles
-        path     /srv/www/
-        interval -1
-        hook     /literate-dotfiles/webhook QHZgAKjD8q2v54Ru
-    }
-}
-
-
-
-
-
- -
-

hugo - Wiki + Blog (link)

-
-
-
  hugo:
-    container_name: hugo
-    image: tdehaeze/hugo-caddy
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-        - REPO=git.tdehaeze.xyz/tdehaeze/digital-brain
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.hugo-rtr.entrypoints=https"
-      - "traefik.http.routers.hugo-rtr.rule=Host(`brain.$DOMAINNAME`)"
-      - "traefik.http.routers.hugo-rtr.tls=true"
-      - "traefik.http.routers.hugo-rtr.service=hugo-svc"
-      - "traefik.http.services.hugo-svc.loadbalancer.server.port=2015"
-    logging: *default-logging
-
-
-
-
- -
-

syncthing - File Synchronization (link)

-
-
-
  syncthing:
-    container_name: syncthing
-    image: linuxserver/syncthing
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - UMASK_SET=022
-    volumes:
-      - $CONFIGDIR/syncthing:/config
-      - /srv/storage/Cloud:/Cloud
-      - /srv/storage/Cloud/pictures/phone:/Pictures
-      - /srv/storage/Cloud/pdfs:/Onyx/Download
-      - /srv/storage/Cloud/pdfs-notes:/Onyx/note
-      - /srv/storage/Cloud/.stfolder:/Onyx/.stfolder
-      - /srv/storage/.password-store:/.password-store
-    ports:
-      - 22000:22000
-      - 21027:21027/udp
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.syncthing-rtr.entrypoints=https"
-      - "traefik.http.routers.syncthing-rtr.rule=Host(`syncthing.$DOMAINNAME`)"
-      - "traefik.http.routers.syncthing-rtr.tls=true"
-      - "traefik.http.routers.syncthing-rtr.service=syncthing-svc"
-      - "traefik.http.routers.syncthing-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.syncthing-svc.loadbalancer.server.port=8384"
-    logging: *default-logging
-
-
-
-
- -
-

miniflux - RSS reader (link)

-
-
-
  miniflux:
-    container_name: miniflux
-    image: miniflux/miniflux
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-      - backend
-    depends_on:
-      - miniflux_db
-    environment:
-      - DATABASE_URL=postgres://miniflux:SCJWWXqHwehP7f8g@miniflux_db/miniflux?sslmode=disable
-      - RUN_MIGRATIONS=1
-      - CREATE_ADMIN=1
-      - ADMIN_USERNAME=$MINIFLUX_ADMIN_NAME
-      - ADMIN_PASSWORD=$MINIFLUX_ADMIN_PASS
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.miniflux-rtr.entrypoints=https"
-      - "traefik.http.routers.miniflux-rtr.rule=Host(`rss.$DOMAINNAME`)"
-      - "traefik.http.routers.miniflux-rtr.tls=true"
-      - "traefik.http.routers.miniflux-rtr.service=miniflux-svc"
-      - "traefik.http.services.miniflux-svc.loadbalancer.server.port=8080"
-    logging: *default-logging
-
-
- -
-
  miniflux_db:
-    container_name: miniflux_db
-    image: postgres:12
-    restart: unless-stopped
-    networks:
-      - backend
-    environment:
-      - POSTGRES_USER=miniflux
-      - POSTGRES_PASSWORD=$MINIFLUX_POSTGRES_PASSWORD
-    volumes:
-      - $CONFIGDIR/miniflux_db:/var/lib/postgresql/data
-    logging: *default-logging
-
-
-
-
- -
-

homeassistant - Home Automation (link)

-
-
-
  homeassistant:
-    container_name: homeassistant
-    image: homeassistant/home-assistant
-    restart: unless-stopped
-    #networks:
-    #  - t2_proxy
-    #ports:
-    #  - target: 8123
-    #    published: 8123
-    #    protocol: tcp
-    #    mode: host
-    privileged: true
-    ports:
-      - 8123:8123
-    # network_mode: host
-    volumes:
-      - $CONFIGDIR/homeassistant:/config
-      - /etc/localtime:/etc/localtime:ro
-      - /dev/bus/usb:/dev/bus/usb
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.homeassistant-rtr.entrypoints=https"
-      - "traefik.http.routers.homeassistant-rtr.rule=Host(`home.$DOMAINNAME`)"
-      - "traefik.http.routers.homeassistant-rtr.tls=true"
-      - "traefik.http.routers.homeassistant-rtr.service=homeassistant-svc"
-      - "traefik.http.services.homeassistant-svc.loadbalancer.server.port=8123"
-      # - "traefik.http.services.homeassistant-svc.loadbalancer.servers.url=http://172.17.0.1:8123"
-    logging: *default-logging
-
-
-
-
- -
-

jellyfin - Media server (link)

-
-
-
  jellyfin:
-    container_name: jellyfin
-    image: linuxserver/jellyfin
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    volumes:
-      - $CONFIGDIR/jellyfin:/config
-      - /srv/storage/TVShows:/data/tvshows
-      - /srv/storage/Documentaries:/data/documentaries
-      - /srv/storage/LiveMusic:/data/livemusic
-      - /srv/storage/Animes:/data/animes
-      - /srv/storage/Movies:/data/movies
-      - /srv/storage/Music:/data/music
-      - /srv/storage/StandUp:/data/standup
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-    group-add:
-      - 109
-    devices:
-      # VAAPI Devices
-      - /dev/dri/renderD128:/dev/dri/renderD128
-      - /dev/dri/card0:/dev/dri/card0
-    ports:
-      - 8096:8096
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.jellyfin-rtr.entrypoints=https"
-      - "traefik.http.routers.jellyfin-rtr.rule=Host(`jellyfin.$DOMAINNAME`)"
-      - "traefik.http.routers.jellyfin-rtr.tls=true"
-      - "traefik.http.routers.jellyfin-rtr.service=jellyfin-svc"
-      - "traefik.http.services.jellyfin-svc.loadbalancer.server.port=8096"
-    logging: *default-logging
-
-
-
-
- -
-

jfa-go - Manage Jellyfin Users (link)

-
-
-
  jfa:
-    container_name: jfa
-    image: hrfee/jfa-go
-    restart: unless-stopped
-    depends_on:
-      - jellyfin
-    networks:
-      - t2_proxy
-    volumes:
-      - $CONFIGDIR/jfa:/data
-      - $CONFIGDIR/jellyfin:/jf
-      - /etc/localtime:/etc/localtime:ro
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.jfa-rtr.entrypoints=https"
-      - "traefik.http.routers.jfa-rtr.rule=Host(`jfa.$DOMAINNAME`)"
-      - "traefik.http.routers.jfa-rtr.tls=true"
-      - "traefik.http.routers.jfa-rtr.service=jfa-svc"
-      - "traefik.http.services.jfa-svc.loadbalancer.server.port=8056"
-    logging: *default-logging
-
-
-
-
- -
-

audioserve - Audiobook server (link)

-
-
-
  audioserve:
-    container_name: audioserve
-    image: izderadicka/audioserve
-    restart: unless-stopped
-    command: /audiobooks
-    networks:
-      - t2_proxy
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-      - AUDIOSERVE_SHARED_SECRET=$AUDIOSERVE_SHARED_SECRET
-    volumes:
-      - /srv/storage/AudioBooks:/audiobooks
-      - /etc/localtime:/etc/localtime:ro
-      - $CONFIGDIR/audioserve:/home/audioserve/.audioserve
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.audioserve-rtr.entrypoints=https"
-      - "traefik.http.routers.audioserve-rtr.rule=Host(`audiobook.$DOMAINNAME`)"
-      - "traefik.http.routers.audioserve-rtr.tls=true"
-      - "traefik.http.routers.audioserve-rtr.service=audioserve-svc"
-      - "traefik.http.services.audioserve-svc.loadbalancer.server.port=3000"
-    logging: *default-logging
-
-
-
-
- -
-

filebrowser - Web file browser (link)

-
-
-
  filebrowser:
-    container_name: filebrowser
-    image: filebrowser/filebrowser
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    volumes:
-      - $CONFIGDIR/filebrowser/database.db:/database.db
-      - $CONFIGDIR/filebrowser/.filebrowser.json:/.filebrowser.json
-      - /srv/storage:/srv/storage
-    user: "${PUID}:${PGID}"
-    environment:
-      - PUID=$PUID
-      - PGID=$PGID
-      - TZ=$TZ
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.filebrowser-rtr.entrypoints=https"
-      - "traefik.http.routers.filebrowser-rtr.rule=Host(`cloud.$DOMAINNAME`)"
-      - "traefik.http.routers.filebrowser-rtr.tls=true"
-      - "traefik.http.routers.filebrowser-rtr.service=filebrowser-svc"
-      - "traefik.http.services.filebrowser-svc.loadbalancer.server.port=80"
-    logging: *default-logging
-
-
-
- -
-

.filebrowser.json

-
-
-
{
-  "port": 80,
-  "baseURL": "",
-  "address": "",
-  "log": "stdout",
-  "database": "/database.db",
-  "root": "/srv/storage"
-}
-
-
-
-
-
- -
-

scrutiny - Hard drive monitoring (link)

-
+
+

scrutiny - Hard drive monitoring (link)

+
  scrutiny:
     container_name: scrutiny
@@ -2114,181 +1368,130 @@ exclude .AppleDB
 
-
-

radicale - CalDAV/CardDAV server (link)

-
+
+

wireguard - VPN (link)

+
-
  radicale:
-    container_name: radicale
-    image: tomsquest/docker-radicale:latest
+
  wireguard:
+    container_name: wireguard
+    image: linuxserver/wireguard
     restart: unless-stopped
     networks:
       - t2_proxy
-    volumes:
-      - $CONFIGDIR/radicale/config:/config:ro
-      - $CONFIGDIR/radicale/data:/data
-    environment:
-      - TZ=$TZ
-      - UID=$PUID
-      - GID=$PGID
-    security_opt:
-      - no-new-privileges:true
-    cap_drop:
-      - ALL
     cap_add:
-      - SETUID
-      - SETGID
-      - CHOWN
-      - KILL
+      - NET_ADMIN
+      - SYS_MODULE
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - SERVERURL=wireguard.tdehaeze.xyz
+      - SERVERPORT=51820
+      - PEERS=4
+      - PEERDNS=8.8.8.8
+    volumes:
+      - $CONFIGDIR/wireguard:/config
+      - /lib/modules:/lib/modules
+    ports:
+      - 51820:51820/udp
+    logging: *default-logging
+
+
+ +
+
  wireguard:
+    container_name: wireguard
+    image: weejewel/wg-easy
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    cap_add:
+      - NET_ADMIN
+      - SYS_MODULE
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - WG_HOST=wireguard.tdehaeze.xyz
+      - PASSWORD=$WIREGUARD_PASS
+    volumes:
+      - $CONFIGDIR/wg-easy:/etc/wireguard
+      - /lib/modules:/lib/modules
+    ports:
+      - 51820:51820/udp
     labels:
       - "traefik.enable=true"
-      - "traefik.http.routers.radicale-rtr.entrypoints=https"
-      - "traefik.http.routers.radicale-rtr.rule=Host(`radicale.$DOMAINNAME`)"
-      - "traefik.http.routers.radicale-rtr.tls=true"
-      - "traefik.http.routers.radicale-rtr.service=radicale-svc"
-      - "traefik.http.services.radicale-svc.loadbalancer.server.port=5232"
+      - "traefik.http.routers.wireguard-rtr.entrypoints=https"
+      - "traefik.http.routers.wireguard-rtr.rule=Host(`wireguard.$DOMAINNAME`)"
+      - "traefik.http.routers.wireguard-rtr.tls=true"
+      - "traefik.http.routers.wireguard-rtr.service=wireguard-svc"
+      - "traefik.http.routers.wireguard-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.wireguard-svc.loadbalancer.server.port=51821"
     logging: *default-logging
 
+
-
-

config

-
+
+

nginx - Root (used for Matrix)

+
-
[server]
-hosts = 0.0.0.0:5232
-
-[auth]
-type = htpasswd
-htpasswd_filename = /config/users
-htpasswd_encryption = md5
-
-[storage]
-filesystem_folder = /data/collections
-
-
-
-
-
- -
-

restic - Automatic online backups (link)

-
-
-
  restic:
-    container_name: restic
-    image: mazzolino/restic
+
  root:
+    container_name: root
+    image: nginx
     restart: unless-stopped
     networks:
       - t2_proxy
     environment:
-      - BACKUP_CRON=0 30 0 * * *
-      - RESTIC_REPOSITORY=b2:tdehaeze:/restic
-      - RESTIC_PASSWORD=$RESTIC_PASSWORD
-      - RESTIC_BACKUP_SOURCES=/source
-      - RESTIC_FORGET_ARGS=--group-by tag --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
-      - RESTIC_BACKUP_ARGS=--tag local --exclude-file /exclude.txt
-      - B2_ACCOUNT_ID=$RESTIC_B2_ACCOUNT_ID
-      - B2_ACCOUNT_KEY=$RESTIC_B2_ACCOUNT_KEY
-      - UID=$PUID
-      - GID=$PGID
+      - PUID=$PUID
+      - PGID=$PGID
       - TZ=$TZ
     volumes:
-      - $CONFIGDIR/restic/exclude.txt:/exclude.txt:ro
-      - /srv/storage/Cloud/thesis:/source/Cloud/thesis:ro
-      - /home/thomas/docker:/source/docker:ro
-    logging: *default-logging
-
-
-
- -
-

exclude.txt - Exclude files

-
-
-
*.db
-*.log
-*.log.*
-/source/docker/config/gitea/git/
-/source/docker/config/guacamole/
-/source/docker/config/guacamole_db/
-/source/docker/config/mariadb/
-/source/docker/config/miniflux_db/
-/source/docker/config/jellyfin/data/
-/source/docker/config/dotfiles/www/
-/source/docker/config/web/www/
-
-
-
-
-
- -
-

octoprint - Web interface for 3D printing (link)

-
-
-
  octoprint:
-    container_name: octoprint
-    image: octoprint/octoprint
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - UID=$PUID
-      - GID=$PGID
-      - TZ=$TZ
-    privileged: true
-    volumes:
-      - $CONFIGDIR/octoprint:/octoprint
-      - /dev/bus/usb:/dev/bus/usb
+      - $CONFIGDIR/root/nginx.conf:/etc/nginx/nginx.conf
     labels:
       - "traefik.enable=true"
-      - "traefik.http.routers.octoprint-rtr.entrypoints=https"
-      - "traefik.http.routers.octoprint-rtr.rule=Host(`octoprint.$DOMAINNAME`)"
-      - "traefik.http.routers.octoprint-rtr.tls=true"
-      - "traefik.http.routers.octoprint-rtr.service=octoprint-svc"
-      - "traefik.http.routers.octoprint-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.octoprint-svc.loadbalancer.server.port=80"
+      - "traefik.http.routers.root-rtr.entrypoints=https"
+      - "traefik.http.routers.root-rtr.rule=Host(`$DOMAINNAME`)"
+      - "traefik.http.routers.root-rtr.tls=true"
+      - "traefik.http.routers.root-rtr.service=root-svc"
+      - "traefik.http.services.root-svc.loadbalancer.server.port=8080"
     logging: *default-logging
 
-
-
-
-

mealie - Recipe Manager (link)

-
+

+nginx.conf +

-
  miam:
-    container_name: miam
-    image: hkotel/mealie
-    restart: unless-stopped
-    networks:
-      - t2_proxy
-    environment:
-      - db_type=sqlite
-      - UID=$PUID
-      - GID=$PGID
-      - TZ=$TZ
-    volumes:
-      - $CONFIGDIR/mealie:/app/data
-    labels:
-      - "traefik.enable=true"
-      - "traefik.http.routers.miam-rtr.entrypoints=https"
-      - "traefik.http.routers.miam-rtr.rule=Host(`miam.$DOMAINNAME`)"
-      - "traefik.http.routers.miam-rtr.tls=true"
-      - "traefik.http.routers.miam-rtr.service=miam-svc"
-      - "traefik.http.services.miam-svc.loadbalancer.server.port=80"
-    logging: *default-logging
+
events {
+
+}
+
+http {
+    server {
+        server_name tdehaeze.xyz;
+        listen 8080;
+
+        location /.well-known/matrix/client {
+            proxy_pass https://matrix.tdehaeze.xyz/.well-known/matrix/client;
+            proxy_set_header X-Forwarded-For $remote_addr;
+        }
+
+        location /.well-known/matrix/server {
+            proxy_pass https://matrix.tdehaeze.xyz/.well-known/matrix/server;
+            proxy_set_header X-Forwarded-For $remote_addr;
+        }
+    }
+}
 
-
-

diun - Notification for Docker image updates (link)

-
+
+

diun - Notification for Docker image updates (link)

+
  diun:
     container_name: diun
@@ -2314,10 +1517,473 @@ exclude .AppleDB
 
+
-
-

commento - Commenting system (link)

-
+
+

Websites

+
+
+
+

wasabi - Affichtoo

+
+
+
  wasabi:
+    container_name: wasabi
+    image: tdehaeze/affichtoo
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/wasabi/config:/app/config
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.wasabi-rtr.entrypoints=https"
+      - "traefik.http.routers.wasabi-rtr.rule=Host(`wasabi.$DOMAINNAME`)"
+      - "traefik.http.routers.wasabi-rtr.tls=true"
+      - "traefik.http.routers.wasabi-rtr.service=wasabi-svc"
+      - "traefik.http.services.wasabi-svc.loadbalancer.server.port=8000"
+      - "traefik.http.routers.wasabi-rtr.middlewares=wasabi-auth"
+    logging: *default-logging
+
+
+
+
+ +
+

potaupho - Affichtoo

+
+
+
  potaupho:
+    container_name: potaupho
+    image: tdehaeze/affichtoo
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/potaupho/config:/app/config
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.potaupho-rtr.entrypoints=https"
+      - "traefik.http.routers.potaupho-rtr.rule=Host(`potaupho.$DOMAINNAME`)"
+      - "traefik.http.routers.potaupho-rtr.tls=true"
+      - "traefik.http.routers.potaupho-rtr.service=potaupho-svc"
+      - "traefik.http.services.potaupho-svc.loadbalancer.server.port=8000"
+      - "traefik.http.routers.potaupho-rtr.middlewares=potaupho-auth"
+    logging: *default-logging
+
+
+
+
+ +
+

homer - Home page (link)

+
+
+
  homer:
+    container_name: homer
+    image: b4bz/homer
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/homer/assets/:/www/assets
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.homer-rtr.entrypoints=https"
+      - "traefik.http.routers.homer-rtr.rule=Host(`homer.$DOMAINNAME`)"
+      - "traefik.http.routers.homer-rtr.tls=true"
+      - "traefik.http.routers.homer-rtr.service=homer-svc"
+      - "traefik.http.services.homer-svc.loadbalancer.server.port=8080"
+    logging: *default-logging
+
+
+ +

+config.yml +

+
+
---
+title: "Homepage"
+subtitle: ""
+logo: "assets/homer.png"
+header: false
+footer: false
+
+columns: "auto"
+connectivityCheck: false
+
+theme: default
+
+links: []
+
+services:
+  - name: "Websites"
+    icon: "fas fa-desktop"
+    items:
+    - name: "Brain"
+      logo: "/assets/tools/brain.png"
+      subtitle: "Digital Brain"
+      url: "https://brain.tdehaeze.xyz"
+    - name: "Wiki"
+      logo: "/assets/tools/wikijs.png"
+      subtitle: "Shared Wiki"
+      url: "https://wiki.tdehaeze.xyz"
+    - name: "Research"
+      logo: "/assets/tools/orgmode.png"
+      subtitle: "Research Pages"
+      url: "https://research.tdehaeze.xyz"
+    - name: "Dotfiles"
+      logo: "/assets/tools/dotfiles.png"
+      subtitle: "My Literate Dotfiles"
+      url: "https://dotfiles.tdehaeze.xyz"
+    - name: "Miam"
+      logo: "/assets/tools/miam.png"
+      subtitle: "Personnal Recipes"
+      url: "https://miam.tdehaeze.xyz"
+  - name: "Multimedia"
+    icon: "fas fa-photo-video"
+    items:
+    - name: "Jellyfin"
+      logo: "/assets/tools/jellyfin.png"
+      subtitle: "Media Library"
+      url: "https://jellyfin.tdehaeze.xyz"
+    - name: "Audioserve"
+      logo: "/assets/tools/audiobook.png"
+      subtitle: "Audiobook Server"
+      url: "https://audiobook.tdehaeze.xyz"
+    - name: "Kavita"
+      logo: "/assets/tools/kavita.png"
+      subtitle: "Book Library"
+      url: "https://kavita.tdehaeze.xyz"
+  - name: "Cloud"
+    icon: "fas fa-cloud"
+    items:
+    - name: "File Browser"
+      logo: "/assets/tools/cloud.png"
+      subtitle: "Simple Personnal Could"
+      url: "https://cloud.tdehaeze.xyz"
+    - name: "Syncthing"
+      logo: "/assets/tools/syncthing.png"
+      subtitle: "P2P Sync"
+      url: "https://syncthing.tdehaeze.xyz"
+    - name: "Radicale"
+      logo: "/assets/tools/radicale.png"
+      subtitle: "CalDAV/CardDAV Server"
+      url: "https://radicale.tdehaeze.xyz"
+    - name: "Miniflux"
+      logo: "/assets/tools/miniflux.png"
+      subtitle: "RSS Feeds"
+      url: "https://rss.tdehaeze.xyz"
+    - name: "LinkDing"
+      logo: "/assets/tools/linkding.png"
+      subtitle: "Bookmark Manager"
+      url: "https://bm.tdehaeze.xyz"
+    - name: "Gitea"
+      logo: "/assets/tools/gitea.png"
+      subtitle: "Git Server"
+      url: "https://git.tdehaeze.xyz"
+  - name: "Download"
+    icon: "fas fa-download"
+    items:
+    - name: "Down"
+      logo: "/assets/tools/down.png"
+      subtitle: "Torrent Download"
+      url: "https://down.tdehaeze.xyz/"
+    - name: "Qobuz"
+      subtitle: "Music Download"
+      logo: "/assets/tools/qobuz.png"
+      url: "https://qobuz.tdehaeze.xyz"
+    - name: "Transmission"
+      logo: "/assets/tools/transmission.png"
+      subtitle: "Torrent Client"
+      url: "http://torrent.tdehaeze.xyz:9091/transmission/web/"
+    - name: "Joal"
+      logo: "/assets/tools/joal.png"
+      subtitle: "Increase Ratio"
+      url: "https://joal.tdehaeze.xyz/joal/ui/#/"
+  - name: "Config"
+    icon: "fas fa-cog"
+    items:
+    - name: "Portainer"
+      logo: "/assets/tools/portainer.png"
+      subtitle: "Manger Docker"
+      url: "https://portainer.tdehaeze.xyz/#/containers"
+    - name: "Traefik"
+      logo: "/assets/tools/traefik.png"
+      subtitle: "Reverse Proxy"
+      url: "https://traefik.tdehaeze.xyz"
+    - name: "Uptime"
+      logo: "/assets/tools/uptime.png"
+      subtitle: "Monitoring"
+      url: "https://uptime.tdehaeze.xyz"
+    - name: "Commento"
+      logo: "/assets/tools/commento.png"
+      subtitle: "Commenting System"
+      url: "https://commento.tdehaeze.xyz"
+    - name: "Gotify"
+      logo: "/assets/tools/gotify.png"
+      subtitle: "Messaging System"
+      url: "https://gotify.tdehaeze.xyz"
+    - name: "JFA-Go"
+      logo: "/assets/tools/jellyfin.png"
+      subtitle: "Manage Jellyfin Users"
+      url: "http://jfa.tdehaeze.xyz/"
+    - name: "Scrutiny"
+      logo: "/assets/tools/scrutiny.png"
+      subtitle: "S.M.A.R.T"
+      url: "http://scrutiny.tdehaeze.xyz/web/dashboard"
+  - name: "Home"
+    icon: "fas fa-home"
+    items:
+    - name: "OpenWRT"
+      logo: "/assets/tools/openwrt.png"
+      subtitle: "Router"
+      url: "https://openwrt.tdehaeze.xyz/"
+    - name: "Home Assistant"
+      logo: "/assets/tools/homeassistant.png"
+      subtitle: "Home Assistant"
+      url: "http://home.tdehaeze.xyz:8123"
+    - name: "Changedetection.io"
+      logo: "/assets/tools/changedetection.png"
+      subtitle: "Detect change in websites"
+      url: "https://change.tdehaeze.xyz"
+    - name: "Zigbee2MQTT"
+      logo: "/assets/tools/zigbee2mqtt.png"
+      subtitle: "Zigbee2MQTT"
+      url: "https://zigbee2mqtt.tdehaeze.xyz/"
+    - name: "Node Red"
+      logo: "/assets/tools/node-red.png"
+      subtitle: "Event-driven applications"
+      url: "https://node-red.tdehaeze.xyz/"
+    - name: "ESPHome"
+      logo: "/assets/tools/esphome.png"
+      subtitle: "System to control ESP8266/ESP32"
+      url: "https://esphome.tdehaeze.xyz/"
+    - name: "OctoPrint"
+      logo: "/assets/tools/octoprint.png"
+      subtitle: "3D-Printing"
+      url: "https://octoprint.tdehaeze.xyz/"
+
+
+
+
+ +
+

hugo - Wiki + Blog (link)

+
+
+
  hugo:
+    container_name: hugo
+    image: tdehaeze/hugo-caddy
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+        - REPO=git.tdehaeze.xyz/tdehaeze/digital-brain
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.hugo-rtr.entrypoints=https"
+      - "traefik.http.routers.hugo-rtr.rule=Host(`brain.$DOMAINNAME`)"
+      - "traefik.http.routers.hugo-rtr.tls=true"
+      - "traefik.http.routers.hugo-rtr.service=hugo-svc"
+      - "traefik.http.services.hugo-svc.loadbalancer.server.port=2015"
+    logging: *default-logging
+
+
+
+
+ +
+

research - Research Pages (link)

+
+
+
  caddy:
+    container_name: caddy
+    image: abiosoft/caddy:1.0.3-no-stats
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - PLUGINS=git
+    volumes:
+      - $CONFIGDIR/caddy/Caddyfile:/etc/Caddyfile
+      - $CONFIGDIR/web:/srv
+        # - ~/.ssh:/root/.ssh
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.caddy-rtr.entrypoints=https"
+      - "traefik.http.routers.caddy-rtr.rule=Host(`research.$DOMAINNAME`)"
+      - "traefik.http.routers.caddy-rtr.tls=true"
+      - "traefik.http.routers.caddy-rtr.service=caddy-svc"
+      - "traefik.http.services.caddy-svc.loadbalancer.server.port=2015"
+    logging: *default-logging
+
+
+ +

+Caddyfile +

+
+
0.0.0.0:2015 {
+    root /srv/www/
+
+    git {
+        repo     https://git.tdehaeze.xyz/tdehaeze/research-home-page
+        path     /srv/www/
+        interval -1
+        hook     /research-home-page/webhook QHZgAKjD8q2v54Ru
+        then     git submodule update --init --recursive --merge
+    }
+}
+
+
+
+
+ +
+

dotfiles - Dotfiles (link)

+
+
+
  dotfiles:
+    container_name: dotfiles
+    image: abiosoft/caddy:1.0.3-no-stats
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - PLUGINS=git
+    volumes:
+      - $CONFIGDIR/dotfiles/Caddyfile:/etc/Caddyfile
+      - $CONFIGDIR/dotfiles/www:/srv/www
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.dotfiles-rtr.entrypoints=https"
+      - "traefik.http.routers.dotfiles-rtr.rule=Host(`dotfiles.$DOMAINNAME`)"
+      - "traefik.http.routers.dotfiles-rtr.tls=true"
+      - "traefik.http.routers.dotfiles-rtr.service=dotfiles-svc"
+      - "traefik.http.services.dotfiles-svc.loadbalancer.server.port=2015"
+    logging: *default-logging
+
+
+ +

+Caddyfile +

+
+
0.0.0.0:2015 {
+    root /srv/www/docs/
+
+    git {
+        repo     https://git.tdehaeze.xyz/tdehaeze/literate-dotfiles
+        path     /srv/www/
+        interval -1
+        hook     /literate-dotfiles/webhook QHZgAKjD8q2v54Ru
+    }
+}
+
+
+
+
+ +
+

family-page - Dotfiles (link)

+
+
+
  family-page:
+    container_name: family-page
+    image: abiosoft/caddy:1.0.3-no-stats
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - PLUGINS=git
+    volumes:
+      - $CONFIGDIR/family-page/Caddyfile:/etc/Caddyfile
+      - $CONFIGDIR/family-page/www:/srv/www
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.family-page-rtr.entrypoints=https"
+      - "traefik.http.routers.family-page-rtr.rule=Host(`help.$DOMAINNAME`)"
+      - "traefik.http.routers.family-page-rtr.tls=true"
+      - "traefik.http.routers.family-page-rtr.service=family-page-svc"
+      - "traefik.http.services.family-page-svc.loadbalancer.server.port=2015"
+    logging: *default-logging
+
+
+ +

+Caddyfile +

+
+
0.0.0.0:2015 {
+    root /srv/www/
+
+    git {
+        repo     https://git.tdehaeze.xyz/tdehaeze/family-page
+        path     /srv/www/
+        interval -1
+        hook     /family-page/webhook 0fdVzNShbcmw
+    }
+}
+
+
+
+
+ +
+

wikijs - Wiki App (link)

+
+
+
  wikijs:
+    image: ghcr.io/linuxserver/wikijs:version-2.5.201
+    container_name: wikijs
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/wikijs/config:/config
+      - $CONFIGDIR/wikijs/data:/data
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.wikijs-rtr.entrypoints=https"
+      - "traefik.http.routers.wikijs-rtr.rule=Host(`wiki.$DOMAINNAME`)"
+      - "traefik.http.routers.wikijs-rtr.tls=true"
+      - "traefik.http.routers.wikijs-rtr.service=wikijs-svc"
+      - "traefik.http.services.wikijs-svc.loadbalancer.server.port=3000"
+    logging: *default-logging
+
+
+
+
+ +
+

commento - Commenting system (link)

+
  commento:
     container_name: commento
@@ -2372,40 +2038,240 @@ exclude .AppleDB
 
-
-

uptime-kuma - Monitoring Tool (link)

-
+
+

mealie - Recipe Manager (link)

+
-
  uptime-kuma:
-    container_name: uptime-kuma
-    image: louislam/uptime-kuma
+
  miam:
+    container_name: miam
+    image: hkotel/mealie
     restart: unless-stopped
     networks:
       - t2_proxy
-    volumes:
     environment:
-      - TZ=$TZ
+      - db_type=sqlite
       - UID=$PUID
       - GID=$PGID
+      - TZ=$TZ
     volumes:
-      - $CONFIGDIR/uptime-kuma:/app/data
+      - $CONFIGDIR/mealie:/app/data
     labels:
       - "traefik.enable=true"
-      - "traefik.http.routers.uptime-rtr.entrypoints=https"
-      - "traefik.http.routers.uptime-rtr.rule=Host(`uptime.$DOMAINNAME`)"
-      - "traefik.http.routers.uptime-rtr.tls=true"
-      - "traefik.http.routers.uptime-rtr.service=uptime-svc"
-      - "traefik.http.routers.uptime-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.uptime-svc.loadbalancer.server.port=3001"
+      - "traefik.http.routers.miam-rtr.entrypoints=https"
+      - "traefik.http.routers.miam-rtr.rule=Host(`miam.$DOMAINNAME`)"
+      - "traefik.http.routers.miam-rtr.tls=true"
+      - "traefik.http.routers.miam-rtr.service=miam-svc"
+      - "traefik.http.services.miam-svc.loadbalancer.server.port=80"
     logging: *default-logging
 
-
-

kavita - Reading server (link)

-
+
+

gitea - Git server (link)

+
+
+
  gitea:
+    container_name: git
+    image: gitea/gitea:1.13.2
+    depends_on:
+      - gitea_db
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+      - backend
+    volumes:
+      - $CONFIGDIR/gitea:/data
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - SSH_PORT=$GITEA_SSH_PORT
+    ports:
+      - "2222:22"
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.git-rtr.entrypoints=https"
+      - "traefik.http.routers.git-rtr.rule=Host(`git.$DOMAINNAME`)"
+      - "traefik.http.routers.git-rtr.tls=true"
+      - "traefik.http.routers.git-rtr.service=git-svc"
+      - "traefik.http.services.git-svc.loadbalancer.server.port=3000"
+    logging: *default-logging
+
+
+ +
+
  gitea_db:
+    container_name: gitea_db
+    image: mariadb:10
+    restart: unless-stopped
+    networks:
+      - backend
+    ports:
+      - 3306:3306
+    environment:
+      - MYSQL_ROOT_PASSWORD=$GITEA_DB_MYSQL_ROOT_PASSWORD
+      - MYSQL_DATABASE=gitea
+      - MYSQL_USER=gitea
+      - MYSQL_PASSWORD=$GITEA_DB_MYSQL_PASSWORD
+    volumes:
+      - $CONFIGDIR/mariadb:/var/lib/mysql
+
+
+
+
+ +
+

changedetection - Detect change in websites (link)

+
+
+
  changedetection:
+    container_name: changedetection
+    image: ghcr.io/dgtlmoon/changedetection.io
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+      - BASE_URL=https://change.tdehaeze.xyz
+    volumes:
+      - $CONFIGDIR/changedetection:/datastore
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.changedetection-rtr.entrypoints=https"
+      - "traefik.http.routers.changedetection-rtr.rule=Host(`change.$DOMAINNAME`)"
+      - "traefik.http.routers.changedetection-rtr.tls=true"
+      - "traefik.http.routers.changedetection-rtr.service=changedetection-svc"
+      - "traefik.http.routers.changedetection-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.changedetection-svc.loadbalancer.server.port=5000"
+    logging: *default-logging
+
+
+
+
+
+ +
+

Multimedia

+
+
+
+

jellyfin - Media server (link)

+
+
+
  jellyfin:
+    container_name: jellyfin
+    image: linuxserver/jellyfin
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    volumes:
+      - $CONFIGDIR/jellyfin:/config
+      - /srv/storage/TVShows:/data/tvshows
+      - /srv/storage/Documentaries:/data/documentaries
+      - /srv/storage/LiveMusic:/data/livemusic
+      - /srv/storage/Animes:/data/animes
+      - /srv/storage/Movies:/data/movies
+      - /srv/storage/Music:/data/music
+      - /srv/storage/StandUp:/data/standup
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+    group_add:
+      - 109
+    devices:
+      # VAAPI Devices
+      - /dev/dri/renderD128:/dev/dri/renderD128
+      - /dev/dri/card0:/dev/dri/card0
+    ports:
+      - 8096:8096
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.jellyfin-rtr.entrypoints=https"
+      - "traefik.http.routers.jellyfin-rtr.rule=Host(`jellyfin.$DOMAINNAME`)"
+      - "traefik.http.routers.jellyfin-rtr.tls=true"
+      - "traefik.http.routers.jellyfin-rtr.service=jellyfin-svc"
+      - "traefik.http.services.jellyfin-svc.loadbalancer.server.port=8096"
+    logging: *default-logging
+
+
+
+
+ +
+

jfa-go - Manage Jellyfin Users (link)

+
+
+
  jfa:
+    container_name: jfa
+    image: hrfee/jfa-go
+    restart: unless-stopped
+    depends_on:
+      - jellyfin
+    networks:
+      - t2_proxy
+    volumes:
+      - $CONFIGDIR/jfa:/data
+      - $CONFIGDIR/jellyfin:/jf
+      - /etc/localtime:/etc/localtime:ro
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.jfa-rtr.entrypoints=https"
+      - "traefik.http.routers.jfa-rtr.rule=Host(`jfa.$DOMAINNAME`)"
+      - "traefik.http.routers.jfa-rtr.tls=true"
+      - "traefik.http.routers.jfa-rtr.service=jfa-svc"
+      - "traefik.http.services.jfa-svc.loadbalancer.server.port=8056"
+    logging: *default-logging
+
+
+
+
+ +
+

audioserve - Audiobook server (link)

+
+
+
  audioserve:
+    container_name: audioserve
+    image: izderadicka/audioserve
+    restart: unless-stopped
+    command: /audiobooks
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - AUDIOSERVE_SHARED_SECRET=$AUDIOSERVE_SHARED_SECRET
+    volumes:
+      - /srv/storage/AudioBooks:/audiobooks
+      - /etc/localtime:/etc/localtime:ro
+      - $CONFIGDIR/audioserve:/home/audioserve/.audioserve
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.audioserve-rtr.entrypoints=https"
+      - "traefik.http.routers.audioserve-rtr.rule=Host(`audiobook.$DOMAINNAME`)"
+      - "traefik.http.routers.audioserve-rtr.tls=true"
+      - "traefik.http.routers.audioserve-rtr.service=audioserve-svc"
+      - "traefik.http.services.audioserve-svc.loadbalancer.server.port=3000"
+    logging: *default-logging
+
+
+
+
+ + +
+

kavita - Reading server (link)

+
  kavita:
     container_name: kavita
@@ -2418,7 +2284,7 @@ exclude .AppleDB
       - UID=$PUID
       - GID=$PGID
     volumes:
-      - $CONFIGDIR/kavita:/kavita/data
+      - $CONFIGDIR/kavita:/kavita/config
       - /srv/storage/Books:/books
       - /srv/storage/Scans:/scans
       - /srv/storage/Comics:/comics
@@ -2434,10 +2300,560 @@ exclude .AppleDB
 
+
-
-

mosquitto - MQTT broker (link)

-
+
+

Cloud

+
+
+
+

syncthing - File Synchronization (link)

+
+
+
  syncthing:
+    container_name: syncthing
+    image: linuxserver/syncthing
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - UMASK_SET=022
+    volumes:
+      - $CONFIGDIR/syncthing:/config
+      - /srv/storage/Cloud:/Cloud
+      - /srv/storage/Cloud/pictures/phone:/Pictures
+      - /srv/storage/Cloud/pdfs:/Onyx/Download
+      - /srv/storage/Cloud/pdfs-notes:/Onyx/note
+      - /srv/storage/Cloud/.stfolder:/Onyx/.stfolder
+      - /srv/storage/.password-store:/.password-store
+    ports:
+      - 22000:22000
+      - 21027:21027/udp
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.syncthing-rtr.entrypoints=https"
+      - "traefik.http.routers.syncthing-rtr.rule=Host(`syncthing.$DOMAINNAME`)"
+      - "traefik.http.routers.syncthing-rtr.tls=true"
+      - "traefik.http.routers.syncthing-rtr.service=syncthing-svc"
+      - "traefik.http.routers.syncthing-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.syncthing-svc.loadbalancer.server.port=8384"
+    logging: *default-logging
+
+
+
+
+ +
+

sync-anne - File Synchronization (link)

+
+
+
  sync-anne:
+    container_name: sync-anne
+    image: linuxserver/syncthing
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - UMASK_SET=022
+    volumes:
+      - $CONFIGDIR/sync-anne:/config
+      - /srv/storage/Users/anne:/Cloud
+      - /srv/storage/Users/anne/Photos/telephone:/telephone
+    ports:
+      - 22001:22001
+      - 21028:21028/udp
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.sync-anne-rtr.entrypoints=https"
+      - "traefik.http.routers.sync-anne-rtr.rule=Host(`sync-anne.$DOMAINNAME`)"
+      - "traefik.http.routers.sync-anne-rtr.tls=true"
+      - "traefik.http.routers.sync-anne-rtr.service=sync-anne-svc"
+      - "traefik.http.routers.sync-anne-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.sync-anne-svc.loadbalancer.server.port=8384"
+    logging: *default-logging
+
+
+
+
+ +
+

sync-jm - File Synchronization (link)

+
+
+
  sync-jm:
+    container_name: sync-jm
+    image: linuxserver/syncthing
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - UMASK_SET=022
+    volumes:
+      - $CONFIGDIR/sync-jm:/config
+      - /srv/storage/Users/jean-marie:/Cloud
+      # - /srv/storage/Users/jean-marie/Photos/telephone:/telephone
+    ports:
+      - 22002:22002
+      - 21029:21029/udp
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.sync-jm-rtr.entrypoints=https"
+      - "traefik.http.routers.sync-jm-rtr.rule=Host(`sync-jm.$DOMAINNAME`)"
+      - "traefik.http.routers.sync-jm-rtr.tls=true"
+      - "traefik.http.routers.sync-jm-rtr.service=sync-jm-svc"
+      - "traefik.http.routers.sync-jm-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.sync-jm-svc.loadbalancer.server.port=8384"
+    logging: *default-logging
+
+
+
+
+ +
+

sync-ju - File Synchronization (link)

+
+
+
  sync-ju:
+    container_name: sync-ju
+    image: linuxserver/syncthing
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - UMASK_SET=022
+    volumes:
+      - $CONFIGDIR/sync-ju:/config
+      - /srv/storage/Users/juliette:/Cloud
+    ports:
+      - 22003:22003
+      - 21030:21030/udp
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.sync-ju-rtr.entrypoints=https"
+      - "traefik.http.routers.sync-ju-rtr.rule=Host(`sync-ju.$DOMAINNAME`)"
+      - "traefik.http.routers.sync-ju-rtr.tls=true"
+      - "traefik.http.routers.sync-ju-rtr.service=sync-ju-svc"
+      - "traefik.http.routers.sync-ju-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.sync-ju-svc.loadbalancer.server.port=8384"
+    logging: *default-logging
+
+
+
+
+ +
+

filebrowser - Web file browser (link)

+
+
+
  filebrowser:
+    container_name: filebrowser
+    image: filebrowser/filebrowser
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    volumes:
+      - $CONFIGDIR/filebrowser/database.db:/database.db
+      - $CONFIGDIR/filebrowser/.filebrowser.json:/.filebrowser.json
+      - /srv/storage:/srv/storage
+    user: "${PUID}:${PGID}"
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.filebrowser-rtr.entrypoints=https"
+      - "traefik.http.routers.filebrowser-rtr.rule=Host(`cloud.$DOMAINNAME`)"
+      - "traefik.http.routers.filebrowser-rtr.tls=true"
+      - "traefik.http.routers.filebrowser-rtr.service=filebrowser-svc"
+      - "traefik.http.services.filebrowser-svc.loadbalancer.server.port=80"
+    logging: *default-logging
+
+
+ +

+.filebrowser.json +

+ +
+
{
+  "port": 80,
+  "baseURL": "",
+  "address": "",
+  "log": "stdout",
+  "database": "/database.db",
+  "root": "/srv/storage"
+}
+
+
+
+
+ +
+

photoprism (link)

+
+
+
  photoprism:
+    container_name: photoprism
+    image: photoprism/photoprism:latest
+    depends_on:
+      - photoprism_db
+    networks:
+      - t2_proxy
+      - backend
+    security_opt:
+      - seccomp:unconfined
+      - apparmor:unconfined
+    user: "${PUID}:${PGID}"
+    environment:
+      PHOTOPRISM_ADMIN_PASSWORD: "pi3DnacevhCQ"
+      PHOTOPRISM_SITE_URL: "https://photos.tdehaeze.xyz/"
+      PHOTOPRISM_ORIGINALS_LIMIT: 500
+      PHOTOPRISM_READONLY: "false"
+      PHOTOPRISM_DISABLE_WEBDAV: "true"
+      PHOTOPRISM_DISABLE_TENSORFLOW: "true"
+      PHOTOPRISM_DISABLE_FACES: "true"
+      PHOTOPRISM_DISABLE_CLASSIFICATION: "true"
+      PHOTOPRISM_DARKTABLE_PRESETS: "false"          # Enables Darktable presets and disables concurrent RAW conversion
+      PHOTOPRISM_DATABASE_DRIVER: "mysql"
+      PHOTOPRISM_DATABASE_SERVER: "photoprism_db:3306"
+      PHOTOPRISM_DATABASE_NAME: "photoprism"
+      PHOTOPRISM_DATABASE_USER: "photoprism"
+      PHOTOPRISM_DATABASE_PASSWORD: "PMsLF5577UagH08c"
+      PHOTOPRISM_UID: $PUID
+      PHOTOPRISM_GID: $PGID
+      HOME: "/photoprism"
+    working_dir: "/photoprism"
+    volumes:
+      - "/srv/storage/Cloud/pictures:/photoprism/originals"               # original media files (photos and videos)
+      - "$CONFIGDIR/photoprism/storage:/photoprism/storage"                  # *writable* storage folder for cache, database, and sidecar files (never remove)
+      # - "$CONFIGDIR/photoprism/originals:/photoprism/originals"               # original media files (photos and videos)
+      # - "/example/family:/photoprism/originals/family" # *additional* media folders can be mounted like this
+      # - "~/Import:/photoprism/import"                  # *optional* base folder from which files can be imported to originals
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.photos-rtr.entrypoints=https"
+      - "traefik.http.routers.photos-rtr.rule=Host(`photos.$DOMAINNAME`)"
+      - "traefik.http.routers.photos-rtr.tls=true"
+      - "traefik.http.routers.photos-rtr.service=photos-svc"
+      - "traefik.http.services.photos-svc.loadbalancer.server.port=2342"
+    logging: *default-logging
+
+
+ +
+
  photoprism_db:
+    container_name: photoprism_db
+    restart: unless-stopped
+    image: mariadb:10.6
+    networks:
+      - backend
+    security_opt:
+      - seccomp:unconfined
+      - apparmor:unconfined
+    command: mysqld --innodb-buffer-pool-size=128M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
+    volumes:
+      - "$CONFIGDIR/photoprism_db/database:/var/lib/mysql"
+    environment:
+      MYSQL_ROOT_PASSWORD: ZyZ4vhBmnERp5Amt
+      MYSQL_DATABASE: photoprism
+      MYSQL_USER: photoprism
+      MYSQL_PASSWORD: PMsLF5577UagH08c
+
+
+
+
+ +
+

radicale - CalDAV/CardDAV server (link)

+
+
+
  radicale:
+    container_name: radicale
+    image: tomsquest/docker-radicale:latest
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    volumes:
+      - $CONFIGDIR/radicale/config:/config:ro
+      - $CONFIGDIR/radicale/data:/data
+    environment:
+      - TZ=$TZ
+      - UID=$PUID
+      - GID=$PGID
+    security_opt:
+      - no-new-privileges:true
+    cap_drop:
+      - ALL
+    cap_add:
+      - SETUID
+      - SETGID
+      - CHOWN
+      - KILL
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.radicale-rtr.entrypoints=https"
+      - "traefik.http.routers.radicale-rtr.rule=Host(`radicale.$DOMAINNAME`)"
+      - "traefik.http.routers.radicale-rtr.tls=true"
+      - "traefik.http.routers.radicale-rtr.service=radicale-svc"
+      - "traefik.http.services.radicale-svc.loadbalancer.server.port=5232"
+    logging: *default-logging
+
+
+ +

+config +

+
+
[server]
+hosts = 0.0.0.0:5232
+
+[auth]
+type = htpasswd
+htpasswd_filename = /config/users
+htpasswd_encryption = md5
+
+[storage]
+filesystem_folder = /data/collections
+
+
+
+
+ +
+

linkding - Bookmark manager (link)

+
+
+
  linkding:
+    container_name: linkding
+    image: sissbruecker/linkding:latest
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    volumes:
+      - $CONFIGDIR/linkding:/etc/linkding/data
+    environment:
+      - TZ=$TZ
+      - PUID=$PUID
+      - PGID=$PGID
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.linkding-rtr.entrypoints=https"
+      - "traefik.http.routers.linkding-rtr.rule=Host(`bm.$DOMAINNAME`)"
+      - "traefik.http.routers.linkding-rtr.tls=true"
+      - "traefik.http.routers.linkding-rtr.service=linkding-svc"
+      - "traefik.http.services.linkding-svc.loadbalancer.server.port=9090"
+    logging: *default-logging
+
+
+
+
+ +
+

restic-b2 - Automatic backups on BackBlaze (link)

+
+
+
  restic-b2:
+    container_name: restic-b2
+    image: mazzolino/restic
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - BACKUP_CRON=0 30 0 * * *
+      - RESTIC_REPOSITORY=b2:tdehaeze:/restic
+      - RESTIC_PASSWORD=$RESTIC_PASSWORD
+      - RESTIC_BACKUP_SOURCES=/source
+      - RESTIC_FORGET_ARGS=--group-by tag --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
+      - RESTIC_BACKUP_ARGS=--tag local --exclude-file /exclude.txt
+      - B2_ACCOUNT_ID=$RESTIC_B2_ACCOUNT_ID
+      - B2_ACCOUNT_KEY=$RESTIC_B2_ACCOUNT_KEY
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+      - POST_COMMANDS_FAILURE=curl "https://gotify.tdehaeze.xyz/message?token=$RESTIC_GOTIFY_TOKEN" -F "title=Restic B2" -F "message=Backup failed" -F "priority=5"
+    volumes:
+      - $CONFIGDIR/restic-b2/exclude.txt:/exclude.txt:ro
+      - /srv/storage/Cloud/thesis:/source/Cloud/thesis:ro
+      - /home/thomas/docker:/source/docker:ro
+    logging: *default-logging
+
+
+ +

+exclude.txt - Exclude files +

+ +
+
*.db
+*.log
+*.log.*
+/source/docker/config/gitea/git/
+/source/docker/config/guacamole/
+/source/docker/config/guacamole_db/
+/source/docker/config/mariadb/
+/source/docker/config/miniflux_db/
+/source/docker/config/jellyfin/data/
+/source/docker/config/dotfiles/www/
+/source/docker/config/web/www/
+
+
+
+
+ +
+

restic-aouste - Automatic backups on Raspberry (link)

+
+
+
  restic-aouste:
+    container_name: restic-aouste
+    image: mazzolino/restic
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - BACKUP_CRON=0 30 3 * * *
+      - RESTIC_REPOSITORY=sftp:thomas@192.168.1.22:/hdd/backup
+      - RESTIC_PASSWORD=$RESTIC_PASSWORD
+      - RESTIC_BACKUP_SOURCES=/source
+      - RESTIC_FORGET_ARGS=--group-by tag --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
+      - RESTIC_BACKUP_ARGS=--tag local --exclude-file /exclude.txt
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+      - POST_COMMANDS_FAILURE=curl "https://gotify.tdehaeze.xyz/message?token=AoWn1nAMGoCE0om" -F "title=Restic Aouste" -F "message=Backup failed" -F "priority=5"
+    volumes:
+      - $CONFIGDIR/restic-aouste/exclude.txt:/exclude.txt:ro
+      - /srv/storage/Users:/source/Users:ro
+      - /home/thomas/.ssh/known_hosts:/root/.ssh/known_hosts:ro
+      - /home/thomas/.ssh/id_rsa:/root/.ssh/id_rsa:ro
+
+    logging: *default-logging
+
+
+ +

+exclude.txt - Exclude files +

+ +
+
*.db
+*.log
+*.log.*
+
+
+
+
+ +
+

miniflux - RSS reader (link)

+
+
+
  miniflux:
+    container_name: miniflux
+    image: miniflux/miniflux
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+      - backend
+    depends_on:
+      - miniflux_db
+    environment:
+      - DATABASE_URL=postgres://miniflux:SCJWWXqHwehP7f8g@miniflux_db/miniflux?sslmode=disable
+      - RUN_MIGRATIONS=1
+      - CREATE_ADMIN=1
+      - ADMIN_USERNAME=$MINIFLUX_ADMIN_NAME
+      - ADMIN_PASSWORD=$MINIFLUX_ADMIN_PASS
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.miniflux-rtr.entrypoints=https"
+      - "traefik.http.routers.miniflux-rtr.rule=Host(`rss.$DOMAINNAME`)"
+      - "traefik.http.routers.miniflux-rtr.tls=true"
+      - "traefik.http.routers.miniflux-rtr.service=miniflux-svc"
+      - "traefik.http.services.miniflux-svc.loadbalancer.server.port=8080"
+    logging: *default-logging
+
+
+ +
+
  miniflux_db:
+    container_name: miniflux_db
+    image: postgres:12
+    restart: unless-stopped
+    networks:
+      - backend
+    environment:
+      - POSTGRES_USER=miniflux
+      - POSTGRES_PASSWORD=$MINIFLUX_POSTGRES_PASSWORD
+    volumes:
+      - $CONFIGDIR/miniflux_db:/var/lib/postgresql/data
+    logging: *default-logging
+
+
+
+
+
+ +
+

Home

+
+
+
+

homeassistant - Home Automation (link)

+
+
+
  homeassistant:
+    container_name: homeassistant
+    image: homeassistant/home-assistant
+    restart: unless-stopped
+    #networks:
+    #  - t2_proxy
+    #ports:
+    #  - target: 8123
+    #    published: 8123
+    #    protocol: tcp
+    #    mode: host
+    privileged: true
+    ports:
+      - 8123:8123
+    # network_mode: host
+    volumes:
+      - $CONFIGDIR/homeassistant:/config
+      - /etc/localtime:/etc/localtime:ro
+      - /dev/bus/usb:/dev/bus/usb
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.homeassistant-rtr.entrypoints=https"
+      - "traefik.http.routers.homeassistant-rtr.rule=Host(`home.$DOMAINNAME`)"
+      - "traefik.http.routers.homeassistant-rtr.tls=true"
+      - "traefik.http.routers.homeassistant-rtr.service=homeassistant-svc"
+      - "traefik.http.services.homeassistant-svc.loadbalancer.server.port=8123"
+      # - "traefik.http.services.homeassistant-svc.loadbalancer.servers.url=http://172.17.0.1:8123"
+    logging: *default-logging
+
+
+
+
+ +
+

mosquitto - MQTT broker (link)

+
  mosquitto:
     container_name: mosquitto
@@ -2465,9 +2881,9 @@ exclude .AppleDB
 
-
-

zigbee2mqtt - Zigbee to MQTT bridge (link)

-
+
+

zigbee2mqtt - Zigbee to MQTT bridge (link)

+
  zigbee2mqtt:
     container_name: zigbee2mqtt
@@ -2486,37 +2902,170 @@ exclude .AppleDB
       - $CONFIGDIR/zigbee2mqtt:/app/data
       - /run/udev:/run/udev:ro
     devices:
-      - /dev/ttyACM0:/dev/ttyACM0
+      - /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_39_57-if00-port0:/dev/ttyUSB0
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.zigbee2mqtt-rtr.entrypoints=https"
+      - "traefik.http.routers.zigbee2mqtt-rtr.rule=Host(`zigbee2mqtt.$DOMAINNAME`)"
+      - "traefik.http.routers.zigbee2mqtt-rtr.tls=true"
+      - "traefik.http.routers.zigbee2mqtt-rtr.service=zigbee2mqtt-svc"
+      - "traefik.http.routers.zigbee2mqtt-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.zigbee2mqtt-svc.loadbalancer.server.port=8080"
+    logging: *default-logging
 
-
-

zigbee2mqttassistant - GUI for Zigbee2Mqtt (link)

-
+
+

node-red - Automation tool

+
-
  zigbee2mqttAssistant:
-    container_name: zigbee2mqttassistant
-    image: carldebilly/zigbee2mqttassistant
+
  node-red:
+    container_name: node-red
+    image: nodered/node-red:latest
     restart: unless-stopped
     networks:
       - t2_proxy
     environment:
-      - Z2MA_SETTINGS__MQTTSERVER=192.168.1.21:1883
-      # - Z2MA_SETTINGS__MQTTUSERNAME={MQTTUSERNAME}
-      # - Z2MA_SETTINGS__MQTTPASSWORD={MQTTPASSWORD}
       - PUID=$PUID
       - PGID=$PGID
       - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/node-red:/data
     labels:
       - "traefik.enable=true"
-      - "traefik.http.routers.zigbee2mqttassistant-rtr.entrypoints=https"
-      - "traefik.http.routers.zigbee2mqttassistant-rtr.rule=Host(`zigbee2mqttassistant.$DOMAINNAME`)"
-      - "traefik.http.routers.zigbee2mqttassistant-rtr.tls=true"
-      - "traefik.http.routers.zigbee2mqttassistant-rtr.service=zigbee2mqttassistant-svc"
-      - "traefik.http.routers.zigbee2mqttassistant-rtr.middlewares=authelia@docker"
-      - "traefik.http.services.zigbee2mqttassistant-svc.loadbalancer.server.port=80"
+      - "traefik.http.routers.node-red-rtr.entrypoints=https"
+      - "traefik.http.routers.node-red-rtr.rule=Host(`node-red.$DOMAINNAME`)"
+      - "traefik.http.routers.node-red-rtr.tls=true"
+      - "traefik.http.routers.node-red-rtr.service=node-red-svc"
+      - "traefik.http.routers.node-red-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.node-red-svc.loadbalancer.server.port=1880"
+    logging: *default-logging
+
+
+
+
+ +
+

esphome - Automation tool

+
+
+
  esphome:
+    container_name: esphome
+    image: esphome/esphome:latest
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - ESPHOME_DASHBOARD_USE_PING=true
+    volumes:
+      - $CONFIGDIR/esphome:/config
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.esphome-rtr.entrypoints=https"
+      - "traefik.http.routers.esphome-rtr.rule=Host(`esphome.$DOMAINNAME`)"
+      - "traefik.http.routers.esphome-rtr.tls=true"
+      - "traefik.http.routers.esphome-rtr.service=esphome-svc"
+      - "traefik.http.routers.esphome-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.esphome-svc.loadbalancer.server.port=6052"
+    logging: *default-logging
+
+
+
+
+ +
+

alfawiseu20 - Web interface for 3D printing (link)

+
+
+
  octoprint:
+    container_name: alfawiseu20
+    image: octoprint/octoprint
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    privileged: true
+    volumes:
+      - $CONFIGDIR/alfawiseu20:/octoprint
+      - /dev/bus/usb:/dev/bus/usb
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.alfawiseu20-rtr.entrypoints=https"
+      - "traefik.http.routers.alfawiseu20-rtr.rule=Host(`alfawiseu20.$DOMAINNAME`)"
+      - "traefik.http.routers.alfawiseu20-rtr.tls=true"
+      - "traefik.http.routers.alfawiseu20-rtr.service=alfawiseu20-svc"
+      - "traefik.http.routers.alfawiseu20-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.alfawiseu20-svc.loadbalancer.server.port=80"
+    logging: *default-logging
+
+
+
+
+ +
+

tina2 - Web interface for 3D printing (link)

+
+
+
  tina2:
+    container_name: tina2
+    image: octoprint/octoprint
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    privileged: true
+    volumes:
+      - $CONFIGDIR/tina2:/octoprint
+      - /dev/bus/usb:/dev/bus/usb
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.tina2-rtr.entrypoints=https"
+      - "traefik.http.routers.tina2-rtr.rule=Host(`tina2.$DOMAINNAME`)"
+      - "traefik.http.routers.tina2-rtr.tls=true"
+      - "traefik.http.routers.tina2-rtr.service=tina2-svc"
+      - "traefik.http.routers.tina2-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.tina2-svc.loadbalancer.server.port=80"
+    logging: *default-logging
+
+
+
+
+ +
+

ihatemoney - Tricount Alternative (link)

+
+
+
  tricount:
+    container_name: tricount
+    image: ihatemoney/ihatemoney
+    restart: unless-stopped
+    networks:
+      - t2_proxy
+    environment:
+      - UID=$PUID
+      - GID=$PGID
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/tricount:/database
+    labels:
+      - "traefik.enable=true"
+      - "traefik.http.routers.tricount-rtr.entrypoints=https"
+      - "traefik.http.routers.tricount-rtr.rule=Host(`tricount.$DOMAINNAME`)"
+      - "traefik.http.routers.tricount-rtr.tls=true"
+      - "traefik.http.routers.tricount-rtr.service=tricount-svc"
+      # - "traefik.http.routers.tricount-rtr.middlewares=authelia@docker"
+      - "traefik.http.services.tricount-svc.loadbalancer.server.port=8000"
     logging: *default-logging
 
@@ -2524,13 +3073,78 @@ exclude .AppleDB
-
-

Cron Jobs

-
+
+

Download

+
-
-

Caddy Update

-
+
+

gluetun - Provide VPN connection to other containers (link)

+
+
+
  gluetun:
+    image: qmcgaw/gluetun:v3.28.2
+    container_name: gluetun
+    restart: unless-stopped
+    cap_add:
+      - NET_ADMIN
+    network_mode: bridge
+    ports:
+      - 8065:8065 # For transmission
+      - 9091:9091 # For transmission
+      - 51413:51413 # For transmission
+      - 51413:51413/udp # For transmission
+    environment:
+      - OPENVPN_USER=$NORDVPN_NAME
+      - OPENVPN_PASSWORD=$NORDVPN_PASS
+      - VPNSP=nordvpn
+      - REGION=France
+      - SERVER_NUMBER=822
+      - TZ=$TZ
+    volumes:
+      - $CONFIGDIR/gluetun:/config
+    logging: *default-logging
+
+
+
+
+ +
+

transmission - Torrent client (link)

+
+
+
  transmission:
+    container_name: transmission
+    image: lscr.io/linuxserver/transmission
+    restart: unless-stopped
+    network_mode: container:gluetun
+    depends_on:
+      - gluetun
+    environment:
+      - PUID=$PUID
+      - PGID=$PGID
+      - TZ=$TZ
+      - USER=$TRANSMISSION_NAME
+      - PASS=$TRANSMISSION_PASS
+      - TRANSMISSION_WEB_HOME=/flood-for-transmission/
+    volumes:
+      - $CONFIGDIR/transmission:/config
+      - /srv/storage/Downloads:/downloads
+      - /srv/storage/Downloads/watch:/watch
+    logging: *default-logging
+
+
+
+
+
+
+ +
+

Cron Jobs

+
+
+
+

Caddy Update

+

Create a script ~/cron/caddy_update.sh with:

@@ -2552,7 +3166,7 @@ Type crontab -e and add this line:

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/i3.html b/docs/i3.html index 0596c56..18f9dcd 100644 --- a/docs/i3.html +++ b/docs/i3.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + I3 Configuration @@ -22,25 +22,25 @@

Table of Contents

@@ -49,9 +49,9 @@
-
-

Mod Key

-
+
+

Mod Key

+

Set mod key (Mod1=<Alt>, Mod4=<Super>)

@@ -62,9 +62,9 @@ Set mod key (Mod1=<Alt>, Mod4=<Super>)
-
-

Border Style

-
+
+

Border Style

+
# Use custom colors for black
 new_window pixel 1
@@ -82,19 +82,19 @@ Hide borders
 
-
-

Font for window titles

-
+
+

Font for window titles

+
-
font Hack Nerd Font 11
+
font pango:Hack Nerd Font Mono 11
 
-
-

Colors Variables

-
+
+

Colors Variables

+
set_from_resource $bg         color0  #000000
 set_from_resource $darkred    color1  #000000
@@ -117,9 +117,9 @@ set_from_resource $fg         color15 #
 
-
-

Theme colors

-
+
+

Theme colors

+
# class                 border  backgr. text    indic.   child_border
 client.focused          $darkaqua $darkaqua $fg  $bg
@@ -133,9 +133,9 @@ client.background       $bg
 
-
-

Various Config

-
+
+

Various Config

+

Layout mode for new containers

@@ -145,36 +145,37 @@ Layout mode for new containers
-
focus_follows_mouse yes
+
focus_follows_mouse no
 
-
-

Border

-
+
+

Border

+
-
default_border pixel 1
+
default_border pixel 2
 
-
-

Settings for i3-gaps

-
+
+

Settings for i3-gaps

+
gaps inner 10
-gaps outer 2
+gaps outer 1
+smart_gaps on
 
-
-

Workspace names

-
+
+

Workspace names

+

To display names or symbols instead of plain workspace numbers you can use something like: set $ws1 1:mail and set $ws2 2:.

@@ -193,9 +194,9 @@ set $ws8 8
-
-

Use Mouse+$mod to drag floating windows

-
+
+

Use Mouse+$mod to drag floating windows

+
floating_modifier $mod
 
@@ -203,9 +204,9 @@ set $ws8 8
-
-

Back and Forth

-
+
+

Back and Forth

+
workspace_auto_back_and_forth yes
 
@@ -213,25 +214,26 @@ set $ws8 8
-
-

Application Specific

-
+
+

Application Specific

+
-
-

Open applications on specific workspaces

-
+
+

Open applications on specific workspaces

+
assign[title="^Fig"] $ws6 # Matlab Figures
 for_window [title="^Fig"] layout tabbed
 assign[title="^HG_Peer"] $ws6 # Name of window when export figure with matlab
+assign[class="^RDP"] $ws7 # Remote
 
-
-

Open specific applications in floating mode

-
+
+

Open specific applications in floating mode

+
for_window [title="File Transfer*"] floating enable
 for_window [class="GParted"] floating enable border normal
@@ -252,15 +254,16 @@ set $ws8 8
 for_window [title="Sensors"] floating enable, resize set 800 400, move position center
 for_window [title="nmtui"] floating enable, resize set 800 600, move position center
 for_window [title="Xournal"] floating enable, resize set 1100 750, move position center
+for_window [title="esrf-phonebook"] floating enable, resize set 1400 400, move position center
 
-
-

Scratchpad

-
+
+

Scratchpad

+

Move the currently focused window to the scratchpad

@@ -280,9 +283,9 @@ If there are multiple scratchpad windows, this command cycles through them.
-
-

Run Polybar and SXHKD

-
+
+

Run Polybar and SXHKD

+
exec --no-startup-id sxhkd -m 1 -c ~/.config/sxhkd/sxhkdrc.i3
 exec --no-startup-id polybar top >>/tmp/polybar.log 2>&1 &
@@ -293,7 +296,7 @@ exec --no-startup-id polybar top >>/tmp/polybar.log 2>&1 &
 

Author: Dehaeze Thomas

-

Created: 2021-10-25 lun. 14:33

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/image.html b/docs/image.html index 97cf8dc..78febd1 100644 --- a/docs/image.html +++ b/docs/image.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + SXIV Configuration - + @@ -16,7 +16,7 @@ UP | HOME -
+

SXIV Configuration

Press C-x to activate to key handler. @@ -39,7 +39,7 @@ done

Author: Dehaeze Thomas

-

Created: 2021-01-08 ven. 01:43

+

Created: 2022-05-09 lun. 10:04

diff --git a/docs/index.html b/docs/index.html index 5540917..6c79cb5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Dotfiles - Manjaro Linux @@ -17,7 +17,7 @@ UP | HOME -
+

Dotfiles - Manjaro Linux

The general installation procedure is described here. @@ -48,7 +48,6 @@ There are Specific configuration files for:

  • Terminal File Manager: Ranger
  • Calendar and Contacts: Vdirsyncer, Khal and Khard
  • Mails: Mbsync, Msmtp, Mu and Neomutt
  • -
  • Contacts: Khard
  • RSS-Reader: Newsboat
  • Version Control: Git
  • Scripts: Scripts
  • diff --git a/docs/inkscape.html b/docs/inkscape.html index 2979eea..77c91ec 100644 --- a/docs/inkscape.html +++ b/docs/inkscape.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Inkscape - + @@ -16,29 +16,29 @@ UP | HOME -
    +

    Inkscape

    -
    +

    Table of Contents

    - -
    -

    Save Selection to SVG extension

    -
    +
    +

    Save Selection to SVG extension

    +
    -
    -

    ink file

    -
    +
    +

    ink file

    +
    <?xml version="1.0" encoding="utf-8"?>
     <?xml version="1.0" encoding="UTF-8"?>
    @@ -73,9 +73,9 @@
     
    -
    -

    py file

    -
    +
    +

    py file

    +
    import os
     import inkex
    @@ -124,7 +124,7 @@
     

    Author: Dehaeze Thomas

    -

    Created: 2021-01-01 ven. 20:09

    +

    Created: 2022-05-09 lun. 10:04

    diff --git a/docs/install.html b/docs/install.html index f9444ee..1a053d7 100644 --- a/docs/install.html +++ b/docs/install.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Installation @@ -16,394 +16,213 @@ UP | HOME -
    +

    Installation

    -
    +

    Table of Contents

    -
    +
    -
    -

    yay - Package Manager

    -
    -

    -https://github.com/Jguer/yay -

    +
    +

    Issues to handle

    +
    +
    +

    git - Version Control System

    +

    Installation:

    -
      sudo pacman -S yay
    -
    -
    - -
    Table 1: Home Server Hardware
    - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Table 1: yay - Cheatsheet
    CommandUsage
    yayPerform system upgrade
    yay -Ss <package>Search
    yay -S <package>Install
    yay -Si <package>Get informations
    yay -Rs <package>Uninstall
    yay -YcClean unneeded dependencies
    - -

    -To check all installed packages: -

    -
    -
      pacman -Qq | fzf --preview 'pacman -Qil {}' --layout=reverse --bind 'enter:execute(pacman -Qil {} | less)'
    -
    -
    -
    -
    - -
    -

    git - Version Control System

    -
    -

    -Installation: -

    -
    -
      yay -S git
    +
    sudo apt install git
     
    @@ -414,33 +233,12 @@ Installation:
  • ~/.gitconfig
  • ~/.gitignore_global
  • - -

    -Diff-So-Fancy is a nice addition to have good-looking diffs. -It can be installed like so: -

    -
    -
      yay -S diff-so-fancy
    -
    -
    - -

    -And configured with the following command: -

    -
    -
      git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
    -
    -
    - -

    -pass can be used as credential helper for git repositories. -

    -
    -

    alacritty - Terminal

    -
    +
    +

    alacritty - Terminal

    +

    Alacritty is a very nice keyboard-centric terminal.

    @@ -449,7 +247,8 @@ And configured with the following command: It can be installed like so:

    -
      yay -S alacritty
    +
    sudo add-apt-repository ppa:aslatter/ppa
    +sudo apt install alacritty
     
    @@ -458,7 +257,7 @@ Its configuration file is described here.

    - +@@ -506,9 +305,9 @@ Its configuration file is described here. -
    -

    bash - Shell

    -
    +
    +

    bash - Shell

    +

    https://wiki.archlinux.org/index.php/Bash

    @@ -517,7 +316,7 @@ Its configuration file is described here. Installation:

    -
      yay -S bash bash-completion zsh
    +
    sudo apt install bash bash-completion zsh
     
    @@ -533,9 +332,9 @@ Installation:
    -
    -

    tmux - Terminal Multiplexer

    -
    +
    +

    tmux - Terminal Multiplexer

    +

    https://github.com/tmux/tmux

    @@ -544,7 +343,7 @@ Installation: Installation:

    -
      yay -S tmux
    +
    sudo apt install tmux
     
    @@ -565,7 +364,7 @@ Ressources:
    Table 2: alacritty - CheatsheetTable 1: alacritty - Cheatsheet
    - +@@ -613,14 +412,16 @@ Ressources: -
    -

    Fonts

    -
    +
    +

    Fonts

    +

    My font of choice is nerd-fonts-hack which can be installed as so:

    -
     yay -S nerd-fonts-hack
    +
    git clone --depth 1 https://github.com/ryanoasis/nerd-fonts
    +cd nerd-fonts
    +./install.sh Hack
     
    @@ -628,7 +429,7 @@ My font of choice is nerd-fonts-hack which can be installed as so: For emojis, use:

    -
      yay -S noto-fonts-emoji
    +
    sudo apt install fonts-noto-color-emoji
     
    @@ -646,27 +447,28 @@ Default font used: To list all fonts available:

    -
      fc-list
    +
    fc-list
     
    +
    +
    +
    +

    Syncthing

    +

    -To select fonts using a GUI, gtk2fontsel can be used: +https://leandeep.com/installer-syncthing-sur-ubuntu-20.04/

    -
    -
      yay -S gtk2fontsel
    -
    -
    -
    -

    emacs and vim - Text Editors

    -
    +
    +

    emacs and vim - Text Editors

    +
    -
    -

    Neovim

    -
    +
    +

    Neovim

    +

    I use Neovim for all the small edits.

    @@ -675,7 +477,7 @@ I use Neovim for all the small ed Installation:

    -
      yay -S neovim
    +
    sudo apt install neovim
     
    @@ -683,12 +485,20 @@ Installation: The Neovim configuration can be found here.

    +

    +Simlink the Vim config to Neovim: +

    +
    +
    mkdir ~/.config/nvim
    +ln -s ~/.vimrc ~/.config/nvim/init.vim
    +
    +
    +

    Then install the plugin manager plug:

    -
      sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
    -      https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
    +
    sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
     
    @@ -696,16 +506,20 @@ Then install the plugin manager p And to install/setup all the plugins:

    -
      nvim +PlugInstall
    -  nvim +UpdateRemotePlugins
    +
    nvim +PlugInstall
    +
    +
    + +
    +
    nvim +UpdateRemotePlugins
     
    - -
    -

    SSH setup

    -
    +
    +

    SSH setup

    +

    Generate a new SSH key:

    -
      ssh-keygen -t rsa -b 4096 -C "dehaeze.thomas@gmail.com"
    +
    ssh-keygen -t rsa -b 4096 -C "dehaeze.thomas@gmail.com"
     
    @@ -757,7 +575,7 @@ Generate a new SSH key: Start the ssh-agent in the background:

    -
      eval "$(ssh-agent -s)"
    +
    eval "$(ssh-agent -s)"
     
    @@ -765,15 +583,15 @@ Start the ssh-agent in the background: Add the SSH key to the ssh-agent:

    -
      ssh-add ~/.ssh/id_rsa
    +
    ssh-add ~/.ssh/id_rsa
     
    -
    -

    GnuPG

    -
    +
    +

    GnuPG

    +

    https://gnupg.org/

    @@ -782,7 +600,7 @@ Add the SSH key to the ssh-agent: Install the gnupg package:

    -
      yay -S gnupg
    +
    sudo apt install gnupg
     
    @@ -790,7 +608,7 @@ Install the gnupg package: Create a key pair:

    -
      gpg --full-gen-key
    +
    gpg --full-gen-key
     
    @@ -798,8 +616,8 @@ Create a key pair: To configure the gpg-agent to cache the passphrase, edit the following file ~/.gnupg/gpg-agent.conf:

    -
      default-cache-ttl 60480000
    -  max-cache-ttl 60480000
    +
    default-cache-ttl 60480000
    +max-cache-ttl 60480000
     
    @@ -807,15 +625,15 @@ To configure the gpg-agent to cache the passphrase, edit the follow Install Gnome-Keyring to automatically unlock the GnuPG keys:

    -
      yay -S gnome-keyring
    +
    sudo apt install gnome-keyring
     
    -
    -

    rofi - Application Launcher

    -
    +
    +

    rofi - Application Launcher

    +

    Rofi is a very nice alternative to dmenu.

    @@ -824,7 +642,7 @@ Install Gnome-Keyring to automatically unlock the GnuPG keys: Installation:

    -
      yay -S dmenu rofi rofi-calc
    +
    sudo apt install dmenu rofi
     
    @@ -836,28 +654,28 @@ To be able to run sudo commands with rofi ( -
      export SUDO_ASKPASS=~/.local/bin/askpass-rofi
    +
    export SUDO_ASKPASS=~/.local/bin/askpass-rofi
     

    -The askpass script is: +The askpass-rofi script is:

    -
      #!/bin/sh
    +
    #!/bin/sh
     
    -  rofi -dmenu \
    -       -password \
    -       -no-fixed-num-lines \
    -       -p "$(printf "$1" | sed s/://)"
    +rofi -dmenu \
    +     -password \
    +     -no-fixed-num-lines \
    +     -p "$(printf "$1" | sed s/://)"
     
    -
    -

    pass - Password Manager

    -
    +
    +

    pass - Password Manager

    +

    https://www.passwordstore.org/

    @@ -866,16 +684,12 @@ The askpass script is: Installation:

    -
      yay -S pass
    +
    sudo apt install pass
     
    -

    -Initialize the password store as a git repository -

    -
      pass git init
    -  pass git remote add origin https://github.com/tdehaeze/pass.git
    +
    git clone https://git.tdehaeze.xyz/tdehaeze/pass.git ~/.password-store
     
    @@ -883,7 +697,7 @@ Initialize the password store as a git repository Gui Manager: qtpass

    -
      yay -S qtpass
    +
    sudo apt install qtpass
     
    @@ -891,7 +705,10 @@ Gui Manager: qtpass Integration with Rofi: rofi-pass

    -
      yay -S rofi-pass
    +
    cd ~/.local/soft/
    +git clone https://github.com/carnager/rofi-pass
    +cd rofi-pass
    +sudo make install
     

    @@ -902,7 +719,7 @@ Then we can add a shortcut to rofi-pass on i3 config. Integration with Git: pass-git-helper

    -
      yay -S pass-git-helper
    +
    sudo apt install pass-git-helper
     
    @@ -926,9 +743,9 @@ Then, add the credential helper on the git configuration file ~/.gitconfig
    -
    -

    Integration with other programs

    -
    +
    +

    Integration with other programs

    +

    Integrate pass in other programs is usually very easy, here are few examples:

    @@ -945,9 +762,9 @@ Integrate pass in other programs is usually very easy, here are few examples:
    -
    -

    Alternative - Bitwarden

    -
    +
    +

    Alternative - Bitwarden

    +

    Bitwarden https://github.com/bitwarden/cli

    @@ -959,215 +776,63 @@ Bitwarden https://github.com/bitwarde
    -
    -

    buku - Bookmark Manager

    -
    - -
    -

    Installation

    -
    -
    -
      yay -S buku
    -
    -
    -
    -
    - -
    -

    Integration with Rofi

    - - -
    -

    Installation

    -
    -
    -
      wget https://raw.githubusercontent.com/carnager/buku_run/master/buku_run -o ~/.local/bin/buku_run
    -  chmod +x ~/.local/bin/buku_run
    -
    -
    -
    -
    - -
    -

    Configuration

    -
    -

    -The configuration file is here: ~/.config/buku_run/config -

    -
    -
    -
    - -
    -

    Integration with qutebrowser

    - -
    - -
    -

    Synchronization with a git repository

    -
    -

    -The database is stored in ~/.local/share/buku/bookmarks.db. -

    - -

    -We initialize a git repository in this folder: -

    -
    -
      cd ~/.local/share/buku/bookmarks.db
    -  git init
    -
    -
    - -

    -Then we create a script that will automatically add bookmarks.db and push to some repository: buku_git_push. -

    - -

    -To automatically run the script every day, a systemd unit is used: ~/.config/systemd/user/bukugit.timer and ~/.config/systemd/user/bukugit.service -

    - -
    -
      systemctl --user start --now bukugit.timer
    -
    -
    -
    -
    - -
    -

    Import Bookmarks from Firefox and Chrome

    -
    -

    -From Firefox, export the bookmarks as html file. -Then import the bookmark file using buku -i bookmarks.html. -This will add a tag with current date to all bookmarks imported. -To remove them, use: buku --replace '2018dec20' '' -

    -
    -
    - -
    -

    Web Interface

    -
    -

    -Run: -

    -
    -
      bukuserver run --host 127.0.0.1 --port 5001
    -
    -
    - -

    -And then browse to http://127.0.0.1:5001. -

    -
    -
    - -
    -

    Cheatsheet

    -
    -
    Table 3: tmux - CheatsheetTable 2: tmux - Cheatsheet
    - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    bukuRun buku interactively
    buku -pList all bookmarks
    buku -w idEdit bookmark
    buku -d idDelete bookmark
    buku -s <>Search bookmarks
    -
    -
    - - -
    - -
    -

    qutebrowser - Browser

    -
    +
    +

    qutebrowser - Browser

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S qutebrowser
    +
    mkdir ~/.local/soft
    +cd ~/.local/soft
    +git clone https://github.com/qutebrowser/qutebrowser.git
    +cd qutebrowser
    +sudo apt install --no-install-recommends git ca-certificates python3 python3-venv asciidoc libglib2.0-0 libgl1 libfontconfig1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libdbus-1-3 libyaml-dev gcc python3-dev libnss3
    +python3 scripts/mkvenv.py
    +
    +
    + +

    +Then it can be launched using file:~/.config/literate-dotfiles/binaries-private.org::#qutebrowser +

    +
    +
    ~/.local/soft/qutebrowser/.venv/bin/python3 -m qutebrowser
    +
    +
    + +

    +And upgraded with: +

    +
    +
    cd ~/.local/soft/qutebrowser/
    +mkvenv.py --update
     
    -
    -

    View Pdf inside qutebrowser with pdfjs

    -
    +
    +

    View Pdf inside qutebrowser with pdfjs

    +
    -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S pdfjs
    +
    sudo apt install pdf.js-common
     
    -
    -

    Usage

    -
    +
    +

    Usage

    +

    When opening a pdf file on qutebrowser, you’ll be ask for options:

    @@ -1211,15 +876,15 @@ When opening a pdf file on qutebrowser, you’ll be ask for options:
    -
    -

    Integration with Pass: the password manager

    -
    +
    +

    Integration with Pass: the password manager

    +

    Add the key-binding on ~/.config/qutebrowser/config.py

    -  config.bind(',p', 'spawn --userscript password_fill')
    +config.bind(',p', 'spawn --userscript password_fill')
     

    @@ -1229,36 +894,22 @@ It is configured using the ~/.config/qutebrowser/password_fill_rc f

    -
    -

    Integration with Buku

    -
    -

    -Custom key binding in ~/.config/qutebrowser/config.py -

    - -
    -# Add current page to Buku (Bookmark Manager)
    -config.bind('B', 'spawn buku -a {url}')
    -
    -
    -
    - -
    -

    Spell Checking

    -
    +
    +

    Spell Checking

    +
    -
      /usr/share/qutebrowser/scripts/dictcli.py install fr-FR
    -  /usr/share/qutebrowser/scripts/dictcli.py install en-US
    +
    ./scripts/dictcli.py install fr-FR
    +./scripts/dictcli.py install en-US
     
    -
    -

    firefox

    -
    +
    +

    firefox

    +
    -
      yay -S firefox-developer-edition
    +
    sudo apt install firefox
     
    @@ -1275,11 +926,11 @@ Addons:
    -
    -

    xrandr - Monitor Manager

    -
    +
    +

    xrandr - Monitor Manager

    +
    -
      yay -S xorg-xrandr arandr
    +
    sudo apt install arandr
     
    @@ -1290,13 +941,13 @@ Addons:
    -
    -

    Music Setup

    -
    +
    +

    Music Setup

    +
    -
    -

    pulseaudio - Sound Server

    -
    +
    +

    pulseaudio - Sound Server

    +

    https://wiki.archlinux.org/index.php/PulseAudio

    @@ -1305,7 +956,7 @@ Addons: Installation:

    -
      yay -S pulseaudio pulseaudio-alsa pulseaudio-bluetooth
    +
    sudo apt install pulseaudio pulseaudio-module-bluetooth
     
    @@ -1319,35 +970,36 @@ If sound is not working, should run pulseaudio --kill to kill the d
    -
    -

    pavucontrol - Sound Manager

    -
    +
    +

    pavucontrol - Sound Manager

    +

    pavucontrol is used as a sound manager:

    -
      yay -S pavucontrol
    +
      sudo apt install pavucontrol
     
    -
    -

    mopidy - Audio Server

    -
    +
    +

    mopidy - Audio Server

    +

    https://github.com/mopidy/mopidy https://medium.com/@theos.space/using-mopidy-with-spotify-and-ncmpcpp-44352f4a2ce8

    -
      yay -S mopidy
    +
    sudo apt install mopidy
     
    -
      python3 -m pip install --user mopidy-mpd mopidy-jellyfin mopidy-spotify
    +
    sudo apt install python3-pip
    +python3 -m pip install --use mopidy-jellyfin
     
    @@ -1355,7 +1007,7 @@ If sound is not working, should run pulseaudio --kill to kill the d To update local files:

    -
      mopidy local scan
    +
    mopidy local scan
     
    @@ -1365,9 +1017,9 @@ If mopidy is used, MPD should be disabled. (systemctl disable --user mpd.s
    -
    -

    ncmpcpp - MPD Client

    -
    +
    +

    ncmpcpp - MPD Client

    +

    https://wiki.archlinux.org/index.php/Ncmpcpp

    @@ -1376,7 +1028,7 @@ If mopidy is used, MPD should be disabled. (systemctl disable --user mpd.s Installation:

    -
      yay -S ncmpcpp
    +
    sudo apt install ncmpcpp
     
    @@ -1386,63 +1038,20 @@ The key bindings can be configured here: ~/.ncmpcpp/bindings.

    - -
    -

    beets - Library Manager

    -
    -

    -https://github.com/beetbox/beets -

    - -

    -Installation; -

    -
    -
      yay -S beets
    -
    -

    -Configuration folder: ~/.config/beets/ -

    - - - - --- -- - - - - - - - - - - - - -
    CommandUsage
    beet import <folder>Import folder to Music folder
    +
    +

    Movies

    +
    -
    -
    - -
    -

    Movies

    -
    -
    -
    -

    mpv - Media Player

    -
    +
    +

    mpv - Media Player

    +

    Installation:

    -
      yay -S mpv
    +
      sudo apt install mpv
     
    @@ -1451,167 +1060,15 @@ The configuration is set in /.config/mpv/input.conf.

    - -
    -

    catt - Chromecast

    -
    -

    -https://github.com/skorokithakis/catt -

    - -

    -Installation: -

    -
    -
      yay -S catt
    -
    -

    -Usage to cast videos to chromecast -

    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    catt cast “https://www.youtube.com/watch?v=dQw4w9WgXcQCast youtube video
    catt cast ./myvideo.mp4Cast local video
    catt add ./myvideo.mp4Add a video to the queue
    catt cast -s ./mysubtitle.srt /myvideo.mp4Add sub title
    catt cast_site https://en.wikipedia.org/wiki/RickrollingCast website
    - -

    -Usage for controlling the device -

    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    ffwdFastforward a video by TIME duration
    rewindRewind a video by TIME duration
    seekSeek the video to TIME position
    scanScan the local network and show all Chromecasts and their IPs
    statusShow some information about the currently-playing video
    pausePause a video
    playResume a video after it has been paused
    stopStop playing
    skipSkip to end of content
    saveSave the current state of the Chromecast for later use
    restoreReturn Chromecast to saved state
    volumeSet the volume to LVL [0-100]
    volumedownTurn down volume by a DELTA increment
    volumeupTurn up volume by a DELTA increment
    +
    +

    Contact Manager

    +
    -
    -
    - -
    -

    Contact Manager

    -
    -
    -
    -

    khard - Google Conctacts

    -
    +
    +

    khard - Google Conctacts

    +

    https://github.com/scheibler/khard

    @@ -1636,11 +1093,11 @@ To search with Khard: khard <conctact-name>
    -
    -

    mu - Index Emails

    -
    +
    +

    mu - Index Emails

    +
    -
      yay -Ss mu
    +
    sudo apt install maildir-utils
     
    @@ -1652,380 +1109,63 @@ This looks for contacts in all indexed emails.
    -
    -

    weechat - Chat Application

    - - -
    -

    Installation

    -
    -
    -
      yay -S weechat
    -
    -
    - -

    -Then we install some dependencies -

    -
    -
      yay -S tcl lua ruby
    -
    -
    -
    -
    - -
    -

    Enable mouse support

    -
    -
    -
      /mouse enable
    -
    -
    -
    -
    - -
    -

    Scripts

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    highmon.pl 
    colorize_nicks.py 
    go.py 
    autosort.py 
    buddylist.pl 
    colorize_lines.pl 
    multiline.pl 
    -
    -
    - -
    -

    Theme

    -
    -

    -https://www.bfoliver.com/technology/2017/07/15/weechat/ -https://alexjj.com/blog/2016/9/setting-up-weechat/ -

    - -
    -
      /set weechat.look.prefix_same_nick "⤷"
    -  /set weechat.look.prefix_error "⚠"
    -  /set weechat.look.prefix_action "⚡"
    -  /set weechat.look.bar_more_down "▼▼"
    -  /set weechat.look.bar_more_left "◀◀"
    -  /set weechat.look.bar_more_right "▶▶"
    -  /set weechat.look.bar_more_up "▲▲"
    -  /set weechat.look.prefix_suffix "╡"
    -  /set weechat.color.chat_nick_colors red,green,brown,blue,magenta,cyan,white,lightred,lightgreen,yellow,lightblue,lightmagenta,lightcyan
    -  /set weechat.color.separator 31
    -  /set buffers.color.current_fg 31
    -  /set buffers.color.current_bg white
    -  /set buffers.color.hotlist_message_fg 229
    -  /set buffers.color.hotlist_private_fg 121
    -  /set buffers.color.hotlist_highlight_fg 163
    -  /set buffers.color.number 239
    -  /set buffers.color.number_char 245
    -  /set weechat.bar.title.conditions "${inactive}"
    -  /set weechat.bar.title.color_fg black
    -  /set weechat.bar.title.color_bg 31         #Or white if 31 does nothing
    -
    -
    -
    -
    - - - -
    -

    Multi-line messages

    -
    -

    -Solution is provided here: https://github.com/wee-slack/wee-slack/issues/118 -It uses multiline.pl script. -Then alt-enter is bound to insert a new line: -

    -
    -
      /set plugins.var.perl.multiline.magic_paste_only on
    -  /key bind meta-ctrl-M /input insert \x0a
    -
    -
    - -

    -And enter is bound to magic_enter that directly sends the message if its one line, and if its multiple line, waits a little bit and then sends the message: -

    -
    -
      /key bind ctrl-M /input magic_enter
    -
    -
    -
    -
    - -
    -

    Send message using $EDITOR

    -
    -

    -https://github.com/keith/edit-weechat -

    -
    -
      mkdir -p ~/.weechat/python/autoload
    -  cd ~/.weechat/python/autoload
    -  wget https://raw.githubusercontent.com/keith/edit-weechat/master/edit.py
    -
    -
    - -

    -Then, on weechat, type /edit. -

    -
    -
    - -
    -

    CheatSheet

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    Ctlr-NNext channel
    Ctlr-PPrevious channel
    Esc-nToggle nicklist
    alt-entNew line
    -
    -
    - -
    -

    Slack Integration

    - - -
    -

    Installation

    -
    -
    -
      yay -S python2-websocket-client
    -
    -
    - - -
    -
      cd ~/.weechat/python
    -  wget https://raw.githubusercontent.com/wee-slack/wee-slack/master/wee_slack.py
    -  ln -s ../wee_slack.py autoload
    -
    -
    -
    -
    - -
    -

    Add your Slack API key(s)

    -
    -

    -Log in to Slack: -

    -
    -
      /slack register
    -
    -
    -

    -This command prints a link you should open in your browser to authorize WeeChat with Slack. Once you’ve accomplished this, copy the “code” portion of the URL in the browser and pass it to this command: -

    - -
    -
      /slack register [CODE_FROM_URL]
    -
    -
    - -

    -Your Slack team is now added, and you can complete setup by restarting the wee-slack script. -

    -
    -
      /python reload slack
    -
    -
    - -

    -If you don’t want to store your API token in plaintext you can use the secure features of weechat: -

    -
    -
      /secure passphrase this is a super secret password
    -  /secure set slack_token [YOUR_SLACK_TOKEN]
    -  /set plugins.var.python.slack.slack_api_token ${sec.data.slack_token}
    -
    -
    -
    -
    -
    - - - - - -
    -

    Deamon and Client

    -
    -

    -Weechat is started with the systemd service weechat. -It runs weechat inside tmux. -

    -
    -
    -
    - -
    -

    redshift

    -
    +
    +

    redshift

    +

    http://jonls.dk/redshift/

    -
      yay -S redshift
    +
      sudo apt install redshift
     
    -
    -

    Mail Setup

    -
    +
    +

    Mail Setup

    +

    Link to the mail setup.

    -
    -

    mbsync - Synchronize Mailboxes

    -
    +
    +

    mbsync - Synchronize Mailboxes

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S isync
    +
    sudo apt install isync
     
    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    ~/.mbsyncrc

    -
    -

    Automation using systemd

    -
    +
    +

    Automation using systemd

    +
    -
    -
    Retreive New mails
    -
    +
    +
    Retreive New mails
    +
    • checkmail
    • ~/.config/systemd/user/checkmail.service
    • @@ -2040,9 +1180,9 @@ systemctl --user start checkmail.timer
    -
    -
    Synchronize all the mailboxes
    -
    +
    +
    Synchronize all the mailboxes
    +
    • ~/.config/systemd/user/syncmail.service
    • ~/.config/systemd/user/syncmail.timer
    • @@ -2058,75 +1198,75 @@ systemctl --user start syncmail.timer
    -
    -

    msmtp - Send Mails

    -
    +
    +

    msmtp - Send Mails

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S msmtp
    +
    sudo apt install msmtp
     
    -
    -

    mu - Mail Index, Search and Tagging

    -
    +
    +

    mu - Mail Index, Search and Tagging

    +
    -
    -

    neomutt - Mail Client

    -
    +
    +

    neomutt - Mail Client

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S neomutt
    +
    sudo apt install neomutt
     
    -
    -

    Display html mails

    -
    +
    +

    Display html mails

    +
    -
      yay -S w3m
    +
      sudo apt install w3m
     
    -
    -

    Open Url from mail

    -
    +
    +

    Open Url from mail

    +
    -
      yay -S urlview
    +
      sudo apt install urlview
     
    -
    -

    Ressources

    -
    + -
    -

    Notification system

    -
    +
    +

    Notification system

    +

    A script (checkmail) is used to retreive new mails and use notify=send is there are new received mails.

    @@ -2146,9 +1286,9 @@ A script (checkmail) is used to retreive new mails and use no
    -
    -

    ranger=/=pcmanfm - File Manager

    -
    +
    +

    ranger=/=pcmanfm - File Manager

    +

    Configuration files:

    @@ -2158,35 +1298,35 @@ Configuration files:
    -
    -

    Ranger

    -
    +
    +

    Ranger

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
    yay -S ranger
    +
    sudo apt install ranger
     
    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    The configuration file is ~/.config/ranger/rc.conf.

    -
    -

    Display pdf

    -
    +
    +

    Display pdf

    +

    All the display of the files are defined in ~/.config/ranger/scope.sh.

    @@ -2202,9 +1342,9 @@ It works better with Urxvt.
    -
    -

    GUI File Manager: pcmanfm

    -
    +
    +

    GUI File Manager: pcmanfm

    +

    https://wiki.archlinux.org/index.php/PCManFM

    @@ -2212,38 +1352,38 @@ It works better with Urxvt.
    -
    -

    sxiv - Image viewer

    -
    +
    +

    sxiv - Image viewer

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S sxiv
    +
    sudo apt install sxiv
     
    -
    -

    Open Gif

    -
    +
    +

    Open Gif

    +
    -
      sxiv -a file.gif
    +
    sxiv -a file.gif
     
    -
    -

    Cheatsheet

    -
    +
    +

    Cheatsheet

    +
    @@ -2294,11 +1434,11 @@ It works better with Urxvt. -
    -

    sxhkd - HotKey Manager

    -
    +
    +

    sxhkd - HotKey Manager

    +
    -
      yay -S sxhkd
    +
    sudo apt install sxhkd
     
    @@ -2308,27 +1448,28 @@ Configuration file: SXHKD.
    -
    -

    i3 - Windows Manager

    -
    +
    +

    i3 - Windows Manager

    +

    Link to the documentation

    -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S i3-gaps
    +
    sudo add-apt-repository -y ppa:regolith-linux/stable
    +sudo apt install i3-gaps
     
    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    ~/.i3/config

    @@ -2336,9 +1477,9 @@ Configuration file: SXHKD.
    -
    -

    polybar - Top Bar

    -
    +
    +

    polybar - Top Bar

    +

    https://polybar.github.io/

    @@ -2348,20 +1489,27 @@ Configuration file: SXHKD.

    -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S polybar
    +
    cd ~/.local/soft
    +git clone https://github.com/jaagr/polybar.git
    +cd polybar
    +# Install necessary
    +sudo apt install build-essential git cmake cmake-data pkg-config python3-sphinx python3-packaging libuv1-dev libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python3-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev
    +# Install optional
    +sudo apt install libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev i3-wm libjsoncpp-dev libmpdclient-dev libcurl4-openssl-dev libnl-genl-3-dev
    +./build.sh
     
    -
    -

    picom - Compositor

    -
    +
    +

    picom - Compositor

    +

    https://wiki.archlinux.org/index.php/Picom

    @@ -2371,72 +1519,72 @@ Configuration file: SXHKD.

    -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S picom
    +
    sudo apt install picom
     
    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    ~/.config/picom/picom.conf

    -
    -

    Automatic run as daemon

    -
    +
    +

    Automatic run as daemon

    +

    Compton is run from .xprofile config in the background:

    -
      picom --daemon
    +
    picom --daemon
     
    -
    -

    dunst - Notification Manager

    -
    +
    +

    dunst - Notification Manager

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S dunst dunstify
    +
    sudo apt install dunst notify-send
     
    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    ~/.config/dunst/dunstrc

    -
    -

    Usage

    -
    +
    +

    Usage

    +
    -
      dunstify --replace=16549 "AppName" "Message"
    +
      notify-send "AppName" "Message"
     
    @@ -2448,106 +1596,14 @@ same application for instance.
    -
    -

    Office Suite

    -
    -
    -
    -

    libreoffice

    -
    -
    -
      yay -S libreoffice-fresh libreoffice-fresh-fr
    -
    -
    -
    -
    - -
    -

    wps Office

    -
    -
    -
      yay -S wps-office wps-office-extension-french-dictionary ttf-wps-fonts
    -
    -
    -
    -
    - -
    -

    sc-im - Minimap SpreadSheet

    -
    -

    -https://github.com/andmarti1424/sc-im -https://www.youtube.com/watch?v=K_8_gazN7h0 -

    - -

    -It permits to open Excel files on the terminal very quickly. -

    - -
    -
      yay -S sc-im
    -
    -
    -
    -
    -
    - -
    -

    blueman - Bluetooth Manager

    -
    -

    -Bluetooth manager: https://github.com/blueman-project/blueman -

    - -
    -
      yay -Ss blueman
    -
    -
    -
    -
    - -
    -

    udiskie - Automatically Mount devices

    -
    -

    -udiskie - Mount and unmount disks (https://github.com/coldfix/udiskie) -

    - -
    -
      yay -S udiskie
    -
    -
    - -

    -Automatically run udiskie on startup. -

    -
    -
    - -
    -

    LaTeX

    -
    +
    +

    LaTeX

    +

    Installation

    -
      yay -S texlive-most
    -
    -
    - -

    -Biber support for the bibliography: -

    -
    -
      yay -S biber
    -
    -
    - -

    -Support for source code using minted: -

    -
    -
      yay -S minted
    +
    sudo apt install texlive-full
     
    @@ -2558,13 +1614,13 @@ In order for LaTeX to be aware of new packages/classes, run sudo texhash
    -
    -

    Mathematical Software

    -
    +
    +

    Mathematical Software

    +
    -
    -

    Insect

    -
    +
    +

    Insect

    +

    https://github.com/sharkdp/insect

    @@ -2573,7 +1629,7 @@ In order for LaTeX to be aware of new packages/classes, run sudo texhash
    -
      yay -S insect
    +
      sudo apt install insect
     
    @@ -2601,9 +1657,9 @@ Installation
    -
    -

    Matlab

    -
    +
    +

    Matlab

    +

    https://wiki.archlinux.org/index.php/MATLAB#Installation

    @@ -2616,7 +1672,7 @@ Installation Installation

    -
      yay -S matlab
    +
      sudo apt install matlab
     
    @@ -2626,9 +1682,9 @@ If there is a problem when opening a Simulink file, check the solution -

    SageMath

    -
    -
    -

    Python and Jupyter-notebook

    +
    +

    Python and Jupyter-notebook

    -
    -

    Download Manager

    -
    -
    -
    -

    aria2 and aria2p

    -
    -
    -
      yay -S aria2
    -
    -
    - -
    -
      python3 -m pip install --user aria2p[tui]
    -
    -
    -
    -
    - -
    -

    transmission and tremc

    -
    -
    -
      yay -S tremc
    -
    -
    -
    -
    - -
    -

    youtube-dl

    -
    -
    -
      yay -S youtube-dl
    -
    -
    -
    -
    -
    - -
    - -
    -

    Desktop files

    -
    -

    -Desktop Applications -

    - -

    -~/.local/share/applications/ -

    -
    -
    - -
    -

    Bibliography Management

    -
    -

    -I am using a plain bibtex file with org-ref (link). -

    -
    -
    - -
    -

    Calendar

    -
    +
    +

    Calendar

    +

    Link to configuration

    -
    -

    vdirsyncer - Sync calendars

    - -
    -

    khal - Calendar Client

    -
    +
    +

    khal - Calendar Client

    +

    https://github.com/pimutils/khal

    @@ -2816,7 +1796,7 @@ To check the status of the service: Installation:

    -
      yay -S khal
    +
    sudo apt install khal
     
    @@ -2824,68 +1804,25 @@ Installation: Import ICS files:

    -
      khal import even.ics
    +
    khal import even.ics
     
    -
    -

    newsboat - RSS Reader

    - -
    - -
    -

    orgmode - Task Manager

    -
    -
    -

    zathura - PDF Reader

    -
    +
    +

    zathura - PDF Reader

    + -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S zathura
    +
    sudo apt install zathura
     
    @@ -2893,28 +1830,24 @@ Configuration: Then add dependecies to view specific files:

    -
      yay -S zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb
    +
    sudo apt install zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb
     
    - -

    -It seems that mupdf is better that poppler to view pdf. -

    -
    -

    Configuration

    -
    +
    +

    Configuration

    +

    ~/.config/zathura/zathurarc

    -
    -

    Cheatsheet

    -
    +
    +

    Cheatsheet

    +
    @@ -2999,9 +1932,9 @@ It seems that mupdf is better that poppler to view pdf. -
    -

    Multi-monitor pdf presentation - pdfpc

    -
    +
    +

    Multi-monitor pdf presentation - pdfpc

    +

    https://github.com/pdfpc/pdfpc

    @@ -3017,29 +1950,29 @@ pdfpc is a great tool for showing pdf presentations. It support:
    -
    -

    Installation

    -
    +
    +

    Installation

    +
    -
      yay -S pdfpc
    +
      sudo apt install pdfpc
     
    -
    -

    Video support

    -
    +
    +

    Video support

    +
    -
      yay -S gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav
    +
      sudo apt install gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav
     
    -
    -

    Usage

    -
    +
    +

    Usage

    +
      pdfpc filename.pdf
     
    @@ -3049,9 +1982,9 @@ pdfpc is a great tool for showing pdf presentations. It support:
    -
    -

    Display Manager

    -
    +
    +

    Display Manager

    +

    Before, I was using lightDM, but a single tty is enough.

    @@ -3072,293 +2005,103 @@ Add “type=x11” in /etc/pam.d/system-login:
    -
    -

    gtk=/=qt - Managing Theme

    -
    -
    -
    -

    GTK Themes

    -
    -

    -Gtk2 themes are managed using the file ~/.gtkrc-2.0 while Gtk3 themes are managed using ~/.config/gtk-3.0/settings.ini. -

    -
    - -
    -

    Gui Manager

    -
    -

    -To customize the look of the system using GUI application, run lxappearance. -

    - -

    -Installation: -

    -
    -
      yay -S lxappearance
    -
    -
    -
    -
    - -
    -

    Icons and themes

    -
    -
    -
      yay -S zukitwo-themes faenza-icon-theme
    -
    -
    - -
    -
      yay -S arc-gtk-theme
    -
    -
    -
    -
    -
    - -
    -

    QT Themes

    -
    -

    -Run qt5ct to manage QT Themes. -

    -
    -
    -
    - -
    -

    droidcam - Use Android phone as webcam

    -
    -
    -
      yay -S droidcam
    -
    -
    - -

    -Install and run droidcam on the Android phone. -Once both are connected to the same network, run the following command: -

    -
    -
      droidcam-cli -v -size=1280x720 192.168.1.51 4747
    -
    -
    - -

    -It will create a new video device accessible for all kinds of applications. -

    - -

    -To view the flux using mpv: -

    -
    -
      mpv av://v4l2:/dev/video0
    -
    -
    -
    -
    - -
    -

    inkscape - Graphical Editor

    -
    +
    +

    inkscape - Graphical Editor

    +
    -
      yay -S inkscape
    +
    sudo add-apt-repository ppa:inkscape.dev/stable
    +sudo apt update
    +sudo apt install inkscape
     
    -
    -

    kdenlive - Video Editor

    -
    -

    -kdenlive -

    - +
    +

    wireguard - VPN

    +
    -
      yay -S kdenlive
    +
    sudo apt install wireguard-tools
     
    -
    -

    kazam - Screen Recorder

    +
    +

    Others

    +
    -
    -

    obs-studio - Live streaming and screen recording

    -
    -

    -https://github.com/obsproject/obs-studio/ -

    - +
    +

    Things to install

    +
    -
      yay -Ss obs-studio
    +
    sudo apt install xwallpaper mpc mpv maim
    +sudo apt install freerdp2-x11 xsel xclip xdotool
    +sudo apt install unclutter xautolock redshift
    +sudo apt install atool unrar p7zip
     

    -To share the screen as a webcam: -http://dlaw.me/webcam-spoofing-with-obs/ +Diff so fancy

    -
      yay -S obs-v4l2sink
    -  yay -S v4l2loopback-dkms-git
    -  sudo modprobe v4l2loopback exclusive_caps=1 video_nr=9
    +
    sudo add-apt-repository ppa:aos1/diff-so-fancy
    +sudo apt-get update
    +sudo apt install diff-so-fancy
     
    -
    -
    -
    -

    anydesk - Remote Desktop

    -
    -
      yay -S anydesk-bin
    -
    -
    -
    -
    - -
    -

    wireguard - VPN

    -
    -
    -
      yay -S wireguard-tools
    -
    -
    -
    -
    - -
    -

    nordvpn - VPN

    -
    -

    -https://aur.archlinux.org/packages/nordvpn-bin/ -https://wiki.archlinux.org/index.php/NordVPN -

    - -

    -Installation: -

    -
    -
      yay -S nordvpn-bin
    +
    cd ~/.local/bin
    +wget https://raw.githubusercontent.com/carnager/rofi-pass/master/rofi-pass
    +chmod +x rofi-pass
     

    -Configuration: +For image preview in ranger:

    -
      sudo systemctl enable --now nordvpnd.service
    +
    sudo pip3 install ueberzug
     
    - -
    - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    nordvpn login 
    nordvpn connect country 
    nordvpn disconnect 
    nordvpn status 
    nordvpn countries 
    -
    -

    Others

    -
    -
    -
    -

    maim=/=flameshot - Take Screenshots

    -
    +
    +

    maim=/=flameshot - Take Screenshots

    +
    -
      yay -S maim flameshot
    +
    sudo apt install maim flameshot
     
    -
    -

    screenkey - Show pressed keys

    -
    +
    +

    Find Files

    +
    -
      yay -S screenkey
    +
    sudo apt install fd-find ripgrep fzf
     
    -
    -

    croc - File transfer

    -
    -

    -https://github.com/schollz/croc -

    - -
    -
      yay -S croc
    -
    -
    -
    -
    - -
    -

    Find Files

    -
    -
    -
      yay -S fd ripgrep fzf
    -
    -
    -
    -
    - -
    -

    PDF/Image Utilities

    -
    +
    +

    PDF/Image Utilities

    +
    -
     yay -S pdf2svg pdftk unclutter pdfarranger imagemagick
    +
    sudo apt install pdf2svg pdftk unclutter pdfarranger imagemagick
     
    -
    -

    Trash

    -
    +
    +

    Trash

    +

    trash-cli is used to manage the trash. It is integrated with ranger and pcmanFM.

    -
      yay -S trash-cli
    +
    sudo apt install trash-cli
     
    -
    -

    Google translate from the command line

    -
    -
    -
      yay -S translate-shell
    -
    -
    - -
    -
      trans englishwork en:fr
    -
    +
    +

    Nice other programs

    +
    -
    -

    Show information about the machine

    -
    -

    -neofetch -

    - -
    -
      yay -S neofetch
    -
    -
    -
    -
    -
    - -
    -

    Printer

    -
    +
    +

    Printer

    +

    https://wiki.archlinux.org/index.php/CUPS Web based administration: http://localhost:631/

    +

    +To install the ESRF printer: +

    +
    +
    lpadmin -p ctb127c1u -v ipp://cups.esrf.fr/printers/ctb127c1u -E
    +
    +
    +

    system-config-printer

    @@ -3473,676 +2205,13 @@ Stats about the printer
    -
    -

    Kernel Management

    -
    -

    -https://wiki.manjaro.org/index.php/Manjaro_Kernels -

    - - - - --- -- - - - - - - - - - - - - - - - - - - - - - - -
    CommandUsage
    mhwd-kernel -liDetermine which kernel is used
    sudo mhwd-kernel -i linux419Install new kernel
    sudo mhwd-kernel -i linux419 rmcInstall new kernel and remove old one
    +
    +

    List of all the install programs

    +
    -
    - -
    -

    Format disks

    - -
    - -
    -

    Useful commands

    -
    -
    -
    -

    Readline

    -
    -

    -https://wiki.archlinux.org/index.php/Keyboard_shortcuts -

    - - - - --- -- - - - - - - - - - - - - -
    KeyboardShortcut Description
    Ctrl+lClear the screen
    -
    - -
    -

    Cursor Movement

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyboardShortcut Description
    Ctrl+bMove cursor one character to the left
    Ctrl+fMove cursor one character to the right
    Alt+bMove cursor one word to the left
    Alt+fMove cursor one word to the right
    Ctrl+aMove cursor to start of the line
    Ctrl+eMove cursor to end of the line
    -
    -
    - -
    -

    Copy & Paste

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyboardShortcut Description
    Ctrl+uCut everything from line start to cursor
    Ctrl+kCut everything from the cursor to end of the line
    Alt+dCut the current word after the cursor
    Ctrl+wCut the current word before the cursor
    Ctrl+yPaste the previous cut text
    Alt+yPaste the second latest cut text
    Alt+Ctrl+yPaste the first argument of the previous command
    Alt+./Paste the last argument of the previous command
    -
    -
    - -
    -

    History

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    KeyboardShortcut Description
    Ctrl+pMove to the previous line
    Ctrl+nMove to the next line
    Ctrl+sSearch
    Ctrl+rReverse search
    Ctrl+jEnd search
    Ctrl+gAbort search (restores original line)
    Alt+rRestores all changes made to line
    -
    -
    - -
    -

    Completion

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - -
    KeyboardShortcut Description
    TabAuto-complete a name
    Alt+?List all possible completions
    Alt+*Insert all possible completions
    -
    -
    -
    - -
    -

    Others

    -
    - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    tldrCommunity-driven man pages
    wttr.inweather in terminal
    rtvReddit in terminal
    awkhttps://linuxhandbook.com/awk-command-tutorial/
    zJump around
    thefuckMagnificent app which corrects your previous console command
    s-tuiTerminal based CPU stress and monitoring utility
    glancesA top/htop alternative
    asciinemaReccord you terminal
    ncduSee what takes place on the disk
    batcat alternative
    procsps alternative
    sdsed alternative
    - - - - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - -
    meteoGet the meteo
    sudo cputhrottle PID %PROCLimiter l’accès au proc pour un processus
    nmap -sP “192.168.1.*"Check all ip addresses on local netword
    du -sh folderReturn the size of the folder
    df -hReport disk usage
    -
    -
    - -
    -

    Archive and Extract

    -
    -

    -Use apack and aunpack: -

    - - - --- -- - - - - - - - - - - - - - - - - - -
      
    aunpack foobar.tar.gzextract all files from archive
    apack myarchive.zip foo barcreate a zip archive of two files
    -
    -
    - -
    -

    Hardware

    -
    - - - --- -- - - - - - - - - - - - - - - - - -
    dmesgDetected hardware and boot messages
    lshwDisplay information on hardware
    lsusb -tvShow usb devices
    -
    -
    - -
    -

    Network

    -
    - - - --- -- - - - - - - - - - - - - - - - - -
    ip addr showShow all network interfaces and ip address
    ethtooo eth0Tool to show ethernet status
    netstat -tulpList all active listening ports
    -
    -
    -
    - -
    -

    After Install

    -
    -

    -Enable TRIM (SSD only) -

    -
    -
      sudo systemctl enable --now fstrim.timer
    -
    -
    - -

    -Set the fastest mirror for Pacman -

    -
    -
      sudo pacman-mirrors --fasttrack
    -
    -
    -
    -
    - -
    -

    Configuration for Laptops

    -
    -
    -
    -

    Power Management Tool: Powertop

    -
    -

    -https://wiki.archlinux.org/index.php/Powertop -https://wiki.manjaro.org/index.php?title=Power_Savings -

    - -

    -PowerTop a diagnostic tool used to identify and report issues with power consumption and management. -

    -
    -
      yay -S powertop
    -
    -
    - - -

    -TLP is used for Power Management. -

    -
    -
      yay -S tlp
    -  sudo systemctl enable tlp
    -  sudo systemctl start tlp
    -  sudo systemctl enable tlp-sleep
    -  sudo systemctl start tlp-sleep
    -  sudo tlp start
    -
    -
    - -

    -Thermald is used to automatically handle CPU frequency scaling according to system load. -

    -
    -
      yay -S thermald
    -  sudo systemctl enable thermald
    -  sudo systemctl start thermald
    -
    -
    -
    -
    - -
    -

    Lid open/close

    -
    -

    -https://wiki.archlinux.org/index.php/Power_management -

    - -

    -Should automatic show lock screen -

    - -

    -/etc/systemd/logind.conf -

    -
    -
    -
    - -
    -

    Some notes - Systemd

    -
    -

    -To improve the startup time. -

    - -
    -
      sudo systemctl disable apparmor
    -  sudo systemctl disable snapd
    -  sudo systemctl disable systemd-backlight@backlight\:intel_backlight.service
    -
    -
    - -

    -To see next timers -

    -
    -
      systemctl --user list-timers
    -
    -
    -
    -
    - - - -
    -

    List of all the install programs

    -
    -
    -
    -

    Mutt

    -
    +
    +

    Mutt

    +
    @@ -4216,55 +2285,9 @@ To see next timers -
    -

    Micro controllers

    -
    -
    - - --- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    avrdudeAtmel AVR MCU programmer
    bootloadhidUSB boot loader for AVR microcontrollers
    dfuprogrammer - Device firmware update based USB programmer for Atmel chips
    platformioEcosystem for IoT development (Arduino and ARM mbed compatible)
    micropythonPython implementation for microcontrollers and constrained systems
    arduinomk - Makefile for Arduino sketches
    -
    -
    - -
    -

    File Management

    -
    +
    +

    File Management

    +
    @@ -4338,9 +2361,9 @@ To see next timers -
    -

    File Downloader

    -
    +
    +

    File Downloader

    +
    @@ -4374,9 +2397,9 @@ To see next timers -
    -

    Utils

    -
    +
    +

    Utils

    +
    @@ -4410,9 +2433,9 @@ To see next timers -
    -

    A trier

    -
    +
    +

    A trier

    +
    @@ -4489,7 +2512,7 @@ To see next timers

    Author: Dehaeze Thomas

    -

    Created: 2021-06-20 dim. 14:21

    +

    Created: 2022-05-09 lun. 10:04

    diff --git a/docs/iot.html b/docs/iot.html index c445fe0..d6a020e 100644 --- a/docs/iot.html +++ b/docs/iot.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - +IoT @@ -22,35 +22,35 @@

    Table of Contents

    -
    -

    Smart Bulbs

    -
    + -
    -

    Smart Plugs

    -
    +
    +

    Smart Plugs

    +
    -
    -

    ESPHome

    -
    +
    +

    ESPHome

    +
    -
    -

    Sonoff S26 - Smart Socket

    -
    +
    +

    Sonoff S26 - Smart Socket

    + -
    -

    Sonoff S26 1

    -
    +
    +

    Sonoff S26 1

    +
    esphome:
       name: sonoffs26_1
    @@ -154,9 +154,9 @@
     
    -
    -

    Sonoff S26 2

    -
    +
    +

    Sonoff S26 2

    +
    esphome:
       name: sonoffs26_2
    @@ -214,9 +214,9 @@
     
    -
    -

    Sonoff S26 3

    -
    +
    +

    Sonoff S26 3

    +
    esphome:
       name: sonoffs26_3
    @@ -274,9 +274,9 @@
     
    -
    -

    Sonoff S26 4

    -
    +
    +

    Sonoff S26 4

    +
    esphome:
       name: sonoffs26_4
    @@ -335,17 +335,17 @@
     
    -
    -

    Anoopsyche SB14 - E27 Smart Bulb (Cold White / Warm White)

    -
    +
    +

    Anoopsyche SB14 - E27 Smart Bulb (Cold White / Warm White)

    + -
    -

    Anoopsyche CWWW 1

    -
    +
    +

    Anoopsyche CWWW 1

    +
    esphome:
       name: anoopsyche_cwww_1
    @@ -393,9 +393,9 @@
     
    -
    -

    Anoopsyche CWWW 2

    -
    +
    +

    Anoopsyche CWWW 2

    +
    esphome:
       name: anoopsyche_cwww_2
    @@ -444,18 +444,18 @@
     
    -
    -

    Sonoff BasicR2 - DIY Smart Socket

    -
    +
    +

    Sonoff BasicR2 - DIY Smart Socket

    + -
    -

    Sonoff Basic 1

    -
    +
    +

    Sonoff Basic 1

    +
    esphome:
       name: sonoffbasic_1
    @@ -500,9 +500,9 @@
     
    -
    -

    Sonoff Basic 2

    -
    +
    +

    Sonoff Basic 2

    +
    esphome:
       name: sonoffbasic_2
    @@ -546,9 +546,9 @@
     
    -
    -

    Sonoff Basic 3

    -
    +
    +

    Sonoff Basic 3

    +
    esphome:
       name: sonoffbasic_3
    @@ -592,9 +592,9 @@
     
    -
    -

    Sonoff Basic 4

    -
    +
    +

    Sonoff Basic 4

    +
    esphome:
       name: sonoffbasic_4
    @@ -640,17 +640,17 @@
     
    -
    -

    Sonoff POWR2 - DIY Power Monitoring Smart Socket

    -
    +
    +

    Sonoff POWR2 - DIY Power Monitoring Smart Socket

    + -
    -

    Sonoff POWR2 1

    -
    +
    +

    Sonoff POWR2 1

    +
    esphome:
       name: sonoffpowr2_1
    @@ -713,7 +713,7 @@
     

    Author: Dehaeze Thomas

    -

    Created: 2021-10-25 lun. 14:33

    +

    Created: 2022-05-09 lun. 10:04

    diff --git a/docs/latex.html b/docs/latex.html index 5c2e9e5..337ce88 100644 --- a/docs/latex.html +++ b/docs/latex.html @@ -3,11 +3,11 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + LaTeX Configuration - + @@ -16,31 +16,42 @@ UP | HOME -
    +

    LaTeX Configuration

    -
    +

    Table of Contents

    - -
    -

    Awesome LaTeX

    -
    +
    +

    LatexMK

    +
    +
    +
    $pdf_previewer = "zathura %O %S";
    +
    +
    +
    +
    + + -
    -

    Learn LaTeX

    -
    + -
    -

    Tools

    -
    + -
    -

    Theme/class

    -
    + -
    -

    Beamer

    -
    +
    +

    Beamer

    +
    @@ -99,9 +110,9 @@ Themes:
    -
    -

    Tikz

    -
    + -
    -

    Packages

    -
    + -
    -

    Snippets

    -
    +
    +

    Snippets

    +
    -
    -

    Make arrows with text above and bellow

    +
    +

    Make arrows with text above and bellow

    Author: Dehaeze Thomas

    -

    Created: 2021-01-01 ven. 20:09

    +

    Created: 2022-05-09 lun. 10:04

    diff --git a/docs/mail.html b/docs/mail.html index 95c304c..5adae6e 100644 --- a/docs/mail.html +++ b/docs/mail.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Mail Configuration @@ -24,118 +24,103 @@
    -
    -

    Global Defaults

    -
    +
    +

    Global Defaults

    +
    # Automatically create missing mailboxes, both locally and on the server
     Create Both
    @@ -174,9 +159,9 @@ Expunge Both
     
    -
    -

    Gmail Account

    -
    +
    +

    Gmail Account

    +
    IMAPAccount gmail
     Host imap.gmail.com
    @@ -249,9 +234,9 @@ Sync Pull
     
    -
    -

    ESRF Account

    -
    +
    +

    ESRF Account

    +
    IMAPAccount esrf
     Host imaps.esrf.fr
    @@ -300,7 +285,7 @@ Near :esrf-local:
     

    -For doing a quick sync of just the INBOX with `mbsync esrf-download`. +For doing a quick sync of just the INBOX with mbsync esrf-download.

    Channel esrf-download
    @@ -313,136 +298,6 @@ Sync Pull
     
    - -
    -

    ULG Student Account

    -
    -
    -
    IMAPAccount ulg
    -Host mail.ulg.ac.be
    -User thomas.dehaeze@doct.uliege.be
    -PassCmd "pass email/thomas.dehaeze@doct.uliege.be"
    -SSLType IMAPS
    -AuthMechs LOGIN
    -
    -
    - -
    -
    IMAPStore ulg-remote
    -Account ulg
    -
    -MaildirStore ulg-local
    -Path ~/.mail/ulg/
    -Inbox ~/.mail/ulg/Inbox
    -
    -Channel ulg-Home
    -Far :ulg-remote:INBOX
    -Near :ulg-local:Inbox
    -
    -Channel ulg-Drafts
    -Far :ulg-remote:Drafts
    -Near :ulg-local:Drafts
    -
    -Channel ulg-Archive
    -Far :ulg-remote:Archive
    -Near :ulg-local:Archive
    -
    -Channel ulg-Sent
    -Far :ulg-remote:Sent
    -Near :ulg-local:Sent
    -
    -Channel ulg-Trash
    -Far :ulg-remote:Trash
    -Near :ulg-local:Trash
    -
    -
    - -
    -
    Channel ulg
    -Far :ulg-remote:
    -Near :ulg-local:
    -
    -
    - -

    -For doing a quick sync of just the INBOX with `mbsync ulg-download`. -

    -
    -
    Channel ulg-download
    -Far :ulg-remote:INBOX
    -Near :ulg-local:Inbox
    -Create Near
    -Expunge Near
    -Sync Pull
    -
    -
    -
    -
    - -
    -

    ULG Personal Account

    -
    -
    -
    IMAPAccount uliege
    -Host mail.ulg.ac.be
    -User tdehaeze@uliege.be
    -PassCmd "pass email/tdehaeze@uliege.be"
    -SSLType IMAPS
    -AuthMechs LOGIN
    -
    -
    - -
    -
    IMAPStore uliege-remote
    -Account uliege
    -
    -MaildirStore uliege-local
    -Path ~/.mail/uliege/
    -Inbox ~/.mail/uliege/Inbox
    -
    -Channel uliege-Home
    -Far :uliege-remote:INBOX
    -Near :uliege-local:Inbox
    -
    -Channel uliege-Drafts
    -Far :uliege-remote:Drafts
    -Near :uliege-local:Drafts
    -
    -Channel uliege-Archive
    -Far :uliege-remote:Archive
    -Near :uliege-local:Archive
    -
    -Channel uliege-Sent
    -Far :uliege-remote:Sent
    -Near :uliege-local:Sent
    -
    -Channel uliege-Trash
    -Far :uliege-remote:Trash
    -Near :uliege-local:Trash
    -
    -
    - -
    -
    Channel uliege
    -Far :uliege-remote:
    -Near :uliege-local:
    -
    -
    - -

    -For doing a quick sync of just the INBOX with `mbsync uliege-download`. -

    -
    -
    Channel uliege-download
    -Far :uliege-remote:INBOX
    -Near :uliege-local:Inbox
    -Create Near
    -Expunge Near
    -Sync Pull
    -
    -
    -
    -
    @@ -453,9 +308,9 @@ Sync Pull

    -
    -

    Defaults

    -
    +
    +

    Defaults

    +
    defaults
     auth          on
    @@ -466,9 +321,9 @@ tls_certcheck off
     
    -
    -

    Gmail Account

    -
    +
    +

    Gmail Account

    +
    account      gmail
     host         smtp.gmail.com
    @@ -477,14 +332,16 @@ protocol     smtp
     from         dehaeze.thomas@gmail.com
     user         dehaeze.thomas@gmail.com
     passwordeval "pass email/dehaeze.thomas@gmail.com"
    +proxy_host localhost
    +proxy_port 8080
     
    -
    -

    ESRF Account

    -
    +
    +

    ESRF Account

    +
    account        esrf
     host           smtps.esrf.fr
    @@ -499,45 +356,11 @@ passwordeval   "pass email/thomas.dehaeze@esrf.fr"
     
    -
    -

    ULG Account

    -
    +
    +

    Default Account

    +
    -
    account        ulg
    -host           smtp.ulg.ac.be
    -port           587
    -protocol       smtp
    -from           thomas.dehaeze@doct.uliege.be
    -user           s177313
    -tls_starttls   on
    -passwordeval   "pass email/thomas.dehaeze@doct.uliege.be"
    -
    -
    -
    -
    - -
    -

    ULIEGE Account

    -
    -
    -
    account        uliege
    -host           smtp.ulg.ac.be
    -port           587
    -protocol       smtp
    -from           tdehaeze@uliege.be
    -user           u231244
    -tls_starttls   on
    -passwordeval   "pass email/tdehaeze@uliege.be"
    -
    -
    -
    -
    - -
    -

    Default Account

    -
    -
    -
    account default : gmail
    +
    account default : esrf
     
    @@ -579,13 +402,13 @@ man neomuttrc
    -
    -

    Bindings

    -
    +
    +

    Bindings

    +
    -
    -

    Unding all the key bindings

    -
    +
    +

    Unding all the key bindings

    +
    bind generic,pager,editor,index a noop
     bind generic,pager,editor,index b noop
    @@ -856,9 +679,9 @@ bind generic,pager,editor,index <Esc>) noop
     
    -
    -

    Quit Neomutt

    -
    +
    +

    Quit Neomutt

    +
    bind index,pager,compose Q exit
     macro index q "<shell-escape>if [ $TMUX ]; then tmux detach; fi<enter>"
    @@ -867,9 +690,9 @@ macro index q "<shell-escape>if [ $TMUX ]; then t
     
    -
    -

    Generic

    -
    +
    +

    Generic

    +
    bind generic Q exit
     
    @@ -898,9 +721,9 @@ bind generic,index,pager \Cy previous-line
     
    -
    -

    Index and Pager

    -
    +
    +

    Index and Pager

    +
    bind pager k  previous-line
     bind pager j  next-line
    @@ -1021,10 +844,9 @@ macro index M "<save-message>?<toggle-mailboxe
     
    - -
    -

    Limit

    -
    +
    +

    Limit

    +
    bind index L limit
     macro index a <limit>all<enter>
    @@ -1033,9 +855,9 @@ macro index a <limit>all<enter>
     
    -
    -

    Search

    -
    +
    +

    Search

    +
    bind generic,index,pager / search
     
    @@ -1046,9 +868,9 @@ bind index,pager N search-opposite
     
    -
    -

    Attachments

    -
    +
    +

    Attachments

    +
    bind attach l view-attach
     
    @@ -1063,9 +885,9 @@ macro attach W <save-entry><kill-line>~/Downloads/<enter>y 
     
    -
    -

    Compose

    -
    +
    +

    Compose

    +
    bind compose p postpone-message
     
    @@ -1100,15 +922,15 @@ Attach file by drooping from GUI
     
    -
    -
    Attach with Ranger Script
    -
    +
    +
    Attach with Ranger Script
    +
    tmpfile=/tmp/rangerpick
     if [ -z "$1" ]; then
         ranger --choosefiles $tmpfile && sed -i 's/\s/\\ /g' $tmpfile && echo "$(awk 'BEGIN {printf "%s", "push "} {printf "%s", "<attach-file>"$0"<enter>"}'  $tmpfile)" > $tmpfile
     elif [ $1 == "dragon" ]; then
    -    dragon-drag-and-drop --target --print-path --keep > $tmpfile && sed -i 's/\s/\\ /g' $tmpfile && echo "$(awk 'BEGIN {printf "%s", "push "} {printf "%s", "<attach-file>"$0"<enter>"}' $tmpfile)" > $tmpfile
    +    dragon --target --print-path --keep > $tmpfile && sed -i 's/\s/\\ /g' $tmpfile && echo "$(awk 'BEGIN {printf "%s", "push "} {printf "%s", "<attach-file>"$0"<enter>"}' $tmpfile)" > $tmpfile
     elif [ $1 == "clean" ]; then
         ls $tmpfile
     fi
    @@ -1117,9 +939,9 @@ Attach file by drooping from GUI
     
    -
    -
    Send HTML mails using Markdown
    -
    +
    +
    Send HTML mails using Markdown
    +

    Write html emails using markdown

    @@ -1131,9 +953,9 @@ Write html emails using markdown
    -
    -

    Browser

    -
    +
    +

    Browser

    +
    bind browser l select-entry
     macro browser h "<top-page><select-entry>"
    @@ -1146,9 +968,9 @@ bind browser q exit
     
    -
    -

    Generic

    -
    +
    +

    Generic

    +

    Enter Command

    @@ -1159,9 +981,9 @@ Enter Command
    -
    -

    Sidebar

    -
    +
    +

    Sidebar

    +
    bind index,pager \Cp sidebar-prev
     bind index,pager \Cn sidebar-next
    @@ -1173,9 +995,9 @@ bind index,pager \Ch sidebar-toggle-visible
     
    -
    -

    Reload Configuration

    -
    +
    +

    Reload Configuration

    +
    macro generic,index,pager,editor ,<Space> ":source ~/.config/neomutt/neomuttrc\n" "Reload mutt's configuration file"
     
    @@ -1183,9 +1005,9 @@ bind index,pager \Ch sidebar-toggle-visible
    -
    -

    urlview - Open URL in emails

    -
    +
    +

    urlview - Open URL in emails

    +

    Use urlview to extract urls from the mail.

    @@ -1202,12 +1024,14 @@ Use urlview to extract urls from the mail.
    -
    -

    Searching using Mu

    -
    +
    +

    Searching using Mu

    +
    -
    macro index,pager \Cf "<shell-escape>mu find --clearlinks --format=links --linksdir=~/.mail/search " \
    -                         "mu find"
    +
    macro index,pager \Cf "<shell-escape>$HOME/.config/neomutt/bin/search_mail.sh<enter><change-folder-readonly>~/.mail/search<enter>" \
    +                         "test"
    +# macro index,pager \Cf "<shell-escape>mu find --clearlinks --format=links --linksdir=~/.mail/search " \
    +#                          "mu find"
     macro index,pager gf "<change-folder-readonly>~/.mail/search<enter>" \
                              "mu find results"
     
    @@ -1215,9 +1039,9 @@ macro index,pager gf "<change-folder-readonly>~/.
    -
    -

    Link to Orgmode

    -
    +
    +

    Link to Orgmode

    +
    -
    -
    Link mail to orgmode - Script
    -
    +
    +
    Link mail to orgmode - Script
    +
    -
    -

    Colors

    -
    +
    +

    Colors

    +
    color attachment  color109 color235
     color bold        color229 color235
    @@ -1327,9 +1151,9 @@ color body color214 color235 "^gpg: invalid node with p
     
    -
    -

    Contacts with Mu

    -
    +
    +

    Contacts with Mu

    +
    set query_command="mu cfind '%s' -o mutt-ab"
     
    @@ -1339,9 +1163,9 @@ bind editor <Tab> complete-query
     
    -
    -

    Paths

    -
    +
    +

    Paths

    +
    set folder           = ~/.mail                         # mail location
     set alias_file       = ~/.config/neomutt/alias         # where to store aliases
    @@ -1355,9 +1179,9 @@ bind editor <Tab> complete-query
     
    -
    -

    Print

    -
    +
    +

    Print

    +

    https://unix.stackexchange.com/questions/20456/pretty-print-mails-from-mutt

    @@ -1369,34 +1193,30 @@ bind editor <Tab> complete-query
    -
    -

    Accounts

    -
    +
    +

    Accounts

    +
    -
    set spoolfile = "+gmail/Inbox" # Default inbox
    +
    set spoolfile = "+esrf/Inbox" # Default inbox
     set realname = "Dehaeze Thomas"
    -set from = "dehaeze.thomas@gmail.com"
    +set from = "thomas.dehaeze@esrf.fr"
     
     folder-hook gmail/* source ~/.config/neomutt/accounts/gmail
     folder-hook esrf/*  source ~/.config/neomutt/accounts/esrf
    -folder-hook ulg/*   source ~/.config/neomutt/accounts/ulg
    -folder-hook uliege/*   source ~/.config/neomutt/accounts/uliege
     
    -macro index,pager gl "<change-folder>+uliege/Inbox<enter>" "go to inbox"
    -macro index,pager gu "<change-folder>+ulg/Inbox<enter>" "go to inbox"
     macro index,pager ge "<change-folder>+esrf/Inbox<enter>" "go to inbox"
     macro index,pager gm "<change-folder>+gmail/Inbox<enter>" "go to inbox"
     
    -
    -

    Gmail

    -
    +
    +

    Gmail

    +
    -
    -
    Configuration
    -
    +
    +
    Configuration
    +
    set from     = "dehaeze.thomas@gmail.com"
     set sendmail = "~/.config/neomutt/bin/send_mail.sh gmail"
    @@ -1421,9 +1241,9 @@ macro index,pager D \
     
    -
    -
    Signature
    -
    +
    +
    Signature
    +
    Thomas Dehaeze
     
    @@ -1439,13 +1259,13 @@ This empty code block is used to add a new line after signature
    -
    -

    ESRF

    -
    +
    +

    ESRF

    +
    -
    -
    Configuration
    -
    +
    +
    Configuration
    +
    set from     = "thomas.dehaeze@esrf.fr"
     set sendmail = "~/.config/neomutt/bin/send_mail.sh esrf"
    @@ -1469,107 +1289,14 @@ macro index,pager D \
     
    -
    -
    Signature
    -
    +
    +
    Signature
    +
    -
    Thomas Dehaeze
    -
    -
    -

    -This empty code block is used to add a new line after signature -

    -
    -
    -
    -
    -
    -
    -
    - -
    -

    ULG

    -
    -
    -
    -
    Configuration
    -
    -
    -
    set from     = "thomas.dehaeze@doct.uliege.be"
    -set sendmail = "~/.config/neomutt/bin/send_mail.sh ulg"
    -
    -# Other special folders.
    -set mbox      = "+ulg/Archive"
    -set record    = "+ulg/Sent"
    -set postponed = "+ulg/Drafts"
    -
    -set signature = "~/.config/neomutt/accounts/ulg.signature"
    -
    -macro index,pager d \
    -  "<save-message>+ulg/Archive<enter>" \
    -  "Move message to the Archive"
    -
    -macro index,pager D \
    -  "<save-message>+ulg/Trash<enter>" \
    -  "Move message to the Trash"
    -
    -
    -
    -
    - -
    -
    Signature
    -
    -
    -
    Thomas Dehaeze
    -
    -
    -

    -This empty code block is used to add a new line after signature -

    -
    -
    -
    -
    -
    -
    -
    - -
    -

    ULIEGE

    -
    -
    -
    -
    Configuration
    -
    -
    -
    set from     = "tdehaeze@uliege.be"
    -set sendmail = "~/.config/neomutt/bin/send_mail.sh uliege"
    -
    -# Other special folders.
    -set mbox      = "+uliege/Archive"
    -set record    = "+uliege/Sent"
    -set postponed = "+uliege/Drafts"
    -
    -set signature = "~/.config/neomutt/accounts/uliege.signature"
    -
    -macro index,pager d \
    -  "<save-message>+uliege/Archive<enter>" \
    -  "Move message to the Archive"
    -
    -macro index,pager D \
    -  "<save-message>+uliege/Trash<enter>" \
    -  "Move message to the Trash"
    -
    -
    -
    -
    - -
    -
    Signature
    -
    -
    -
    Thomas Dehaeze
    +
    Thomas DEHAEZE
    +Mechatronics Engineer
    +ESRF - The European Synchrotron
    +Tel: +33 (0)4.76.88.22.34
     

    @@ -1584,9 +1311,9 @@ This empty code block is used to add a new line after signature

    -
    -

    Basic Options

    -
    +
    +

    Basic Options

    +
    set wait_key = no        # shut up, mutt
     set mbox_type = Maildir  # mailbox type
    @@ -1612,13 +1339,13 @@ set use_from             # 
     
    -
    -

    View Options

    -
    +
    +

    View Options

    +
    -
    -

    Status Bar

    -
    +
    +

    Status Bar

    +
    set status_on_top = no
     set status_chars  = " *%A"
    @@ -1628,9 +1355,9 @@ set use_from             # 
     
    -
    -

    Index View Options

    -
    +
    +

    Index View Options

    +
    set date_format = "%d/%m/%y %H:%M"
     set index_format = "[%Z] %D %-20.20F %s"
    @@ -1646,9 +1373,9 @@ set sort_re                                #
     
    -
    -

    Pager View Options

    -
    +
    +

    Pager View Options

    +
    set pager_index_lines = 10 # number of index lines to show
     set pager_context = 3      # number of context lines to show
    @@ -1665,9 +1392,9 @@ alternative_order text/plain text/enriched text/html     
    -

    Compose View Options

    -
    +
    +

    Compose View Options

    +
    set sig_dashes                       # dashes before sig
     set sig_on_top                       # the signature is just below the response
    @@ -1683,9 +1410,9 @@ set include                          # 
     
    -
    -

    Forward

    -
    +
    +

    Forward

    +
    set forward_format = "Fwd: %s"       # format of subject when forwarding
     set forward_decode                   # decode when forwarding
    @@ -1695,9 +1422,9 @@ set forward_quote                    # 
     
    -
    -

    Headers

    -
    +
    +

    Headers

    +
    ignore *                                # ignore all headers
     unignore from: to: cc: date: subject:   # show only these
    @@ -1709,13 +1436,13 @@ hdr_order from: to: cc: date: subject:  # 
     
    -
    -

    Sidebar

    -
    +
    +

    Sidebar

    +
    -
    -

    General Config

    -
    +
    +

    General Config

    +
    # Should the Sidebar be shown?
     set sidebar_visible = yes
    @@ -1778,9 +1505,9 @@ set mail_check_stats
     
    -
    -

    Mailboxes to show in the sidebar.

    -
    +
    +

    Mailboxes to show in the sidebar.

    +
    named-mailboxes "   Search" =search
     named-mailboxes " GMAIL" =empty/gmail
    @@ -1795,18 +1522,6 @@ named-mailboxes "   Sent" =esrf/Sent
     named-mailboxes "   Drafts" =esrf/Drafts
     named-mailboxes " ﮊ  Archive" =esrf/Archive
     named-mailboxes "   Trash" =esrf/Trash
    -named-mailboxes " ULG" =empty/ulg
    -named-mailboxes "   Inbox" =ulg/Inbox
    -named-mailboxes "   Sent" =ulg/Sent
    -named-mailboxes "   Drafts" =ulg/Drafts
    -named-mailboxes " ﮊ  Archive" =ulg/Archive
    -named-mailboxes "   Trash" =ulg/Trash
    -named-mailboxes " ULIEGE" =empty/uliege
    -named-mailboxes "   Inbox" =uliege/Inbox
    -named-mailboxes "   Sent" =uliege/Sent
    -named-mailboxes "   Drafts" =uliege/Drafts
    -named-mailboxes " ﮊ  Archive" =uliege/Archive
    -named-mailboxes "   Trash" =uliege/Trash
     
    @@ -1818,13 +1533,13 @@ named-mailboxes "  Trash" =uliege/Trash
    -
    -

    Attachments

    -
    +
    +

    Attachments

    +
    -
    -

    Attachment View Options

    -
    +
    +

    Attachment View Options

    +
    set attach_format = "[%D %t] %2n [%-7.7m/%10.10M] %.40d %> [%s] "
     
    @@ -1832,9 +1547,9 @@ named-mailboxes "  Trash" =uliege/Trash
    -
    -

    Open Attachment

    -
    +
    +

    Open Attachment

    +

    Program to open is defined in the mailcap file.

    @@ -1845,9 +1560,9 @@ A script openfile.sh is used to open files with the default applica
    -
    -

    Attach multiple files at once

    -
    +
    +

    Attach multiple files at once

    +

    First, tag the files you want to send using t, then ; to apply the action on all tagged files and finally <enter> to add them all. @@ -1859,9 +1574,9 @@ Of ranger can be used with the A keybinding.

    -
    -

    Forgotten Attachment

    -
    +
    +

    Forgotten Attachment

    +
    set abort_noattach = ask-yes
     set abort_noattach_regex = "\\<(attach(|ed|ments?)|(attaché|attachés|attache|attachons|joint|jointe|joints|jointes|joins|joignons))\\>"
    @@ -1871,13 +1586,41 @@ Of ranger can be used with the A keybinding.
     
    -
    -

    Scripts and other config files

    -
    +
    +

    Scripts and other config files

    +
    -
    -

    Send Mail Script

    -
    + +
    +

    Search Mail

    +
    +
    +
    arg_subject=$(rofi -p "Search" -dmenu)
    +
    +arg_from=$(rofi -p "From" -dmenu)
    +if [ ! -z "$arg_from" ]; then
    +    arg_from="from:${arg_from}"
    +fi
    +
    +arg_to=$(rofi -p "To" -dmenu)
    +if [ ! -z "$arg_to" ]; then
    +    arg_to="to:${arg_to}"
    +fi
    +
    +arg_mime=$(echo -e "\napplication/pdf\nimage/*\nvideo/*" | rofi -i -p "Mime" -dmenu)
    +if [ ! -z "$arg_mime" ]; then
    +    arg_mime="mime:${arg_mime}"
    +fi
    +
    +mu find --clearlinks --format=links --linksdir=~/.mail/search "${arg_from} ${arg_to} ${arg_mime} ${arg_subject}"
    +
    +
    +
    +
    + +
    +

    Send Mail Script

    +
    msmtp -a $1 ${@:2} && \
         if [ $TMUX ]; then
    @@ -1890,9 +1633,9 @@ Of ranger can be used with the A keybinding.
     
    -
    -

    Sync Mail Script

    -
    +
    +

    Sync Mail Script

    +
    if [ $TMUX ]; then
         tmux split -v -l 1 checkmail $1 && tmux select-pane -U
    @@ -1904,9 +1647,9 @@ Of ranger can be used with the A keybinding.
     
    -
    -

    Openfile Scripts

    -
    +
    +

    Openfile Scripts

    +
    base=$(basename "$1")
     ext="${base##*.}"
    @@ -1923,9 +1666,9 @@ setsid xdg-open "
     
    -
    -

    urlview Config

    -
    +
    +

    urlview Config

    +
    REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]
     
    @@ -1935,9 +1678,9 @@ COMMAND nohup qutebrowser %s </dev/null &>/dev/null &
     
    -
    -

    Mailcap

    -
    +
    +

    Mailcap

    +

    Generic

    @@ -1947,7 +1690,7 @@ video/*; setsid mpv --quiet %s & image/*; sxiv -a -b %s & application/pdf; zathura %s & audio/*; /usr/bin/xdg-open %s; copiousoutput -text/html; export DISPLAY=:0 && setsid qutebrowser %s; nametemplate=%s.html +text/html; export DISPLAY=:0 && setsid qutebrowser %s > /dev/null 2>&1 &; nametemplate=%s.html text/html; lynx -width ${COLUMNS:-80} -dump %s; nametemplate=%s.html; copiousoutput;
    @@ -2041,7 +1784,7 @@ text/rtf; libreoffice --nologo --writer '%s'; co

    Author: Dehaeze Thomas

    -

    Created: 2021-10-25 lun. 14:33

    +

    Created: 2022-05-09 lun. 10:04

    diff --git a/docs/maintenance.html b/docs/maintenance.html index 3dffbfd..51793e4 100644 --- a/docs/maintenance.html +++ b/docs/maintenance.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + System maintenance @@ -22,16 +22,16 @@

    Table of Contents

    @@ -39,13 +39,13 @@ https://wiki.archlinux.org/title/System_maintenance

    -
    -

    Update

    -
    +
    +

    Update

    +
    -
    -

    System packages

    -
    +
    +

    System packages

    +

    To check packages to update:

    @@ -64,9 +64,9 @@ And then to perform the update:
    -
    -

    NPM

    -
    +
    +

    NPM

    +

    First update npm itself

    @@ -93,9 +93,9 @@ And finally perform the update:
    -
    -

    PIP

    -
    +
    +

    PIP

    +

    First upgrade pip itself:

    @@ -122,9 +122,9 @@ And update everything with:
    -
    -

    Emacs and Vim

    -
    +
    +

    Emacs and Vim

    +

    Update Doom emacs with:

    @@ -144,9 +144,9 @@ And Vim packages with:
    -
    -

    Check problems in the system

    -
    +
    +

    Check problems in the system

    +

    First check for failed services:

    @@ -173,9 +173,9 @@ Look for errors in the logs:
    -
    -

    Check orphan and dropped packages

    -
    + -
    -

    Startup

    -
    +
    +

    Startup

    +
    -
    -

    Setup LaTeX as a default interpreter

    -
    +
    +

    Setup LaTeX as a default interpreter

    +
    set(groot, 'DefaultTextInterpreter', 'LaTeX');
     set(groot, 'DefaultAxesTickLabelInterpreter', 'LaTeX');
     set(groot, 'DefaultAxesFontName', 'LaTeX');
     set(groot, 'DefaultLegendInterpreter', 'LaTeX');
    +set(groot, 'DefaultConstantLineInterpreter', 'LaTeX');
     
    -
    -

    Default Line Width

    -
    +
    +

    Default Line Width

    +
    set(groot, 'DefaultLineLineWidth', 1.5);
     set(groot, 'DefaultAxesLineWidth', 0.5);
    @@ -73,9 +74,9 @@
     
    -
    -

    Default grids on all axis

    -
    +
    +

    Default grids on all axis

    +
    set(groot, 'DefaultAxesXGrid','on');
     set(groot, 'DefaultAxesYGrid','on');
    @@ -85,34 +86,36 @@
     
    -
    -

    Default Font Size

    -
    +
    +

    Default Font Size

    +
    set(groot, 'DefaultTextFontUnits', 'points');
     set(groot, 'DefaultTextFontSize', 10);
     set(groot, 'DefaultAxesFontUnits', 'points');
     set(groot, 'DefaultAxesFontSize', 10);
     set(groot, 'DefaultUicontrolFontSize', 10);
    +set(groot, 'DefaultConstantLineFontSize', 10);
     
    -
    -

    Default Fonts

    -
    +
    +

    Default Fonts

    +
    set(groot, 'DefaultAxesFontName', 'Helvetica');
     set(groot, 'DefaultTextFontName', 'Helvetica');
    +set(groot, 'DefaultConstantLineFontName', 'Helvetica');
     
    -
    -

    Make figures into a Box

    -
    +
    +

    Make figures into a Box

    +
    set(groot, 'DefaultAxesBox', 'on');
     
    @@ -120,9 +123,9 @@
    -
    -

    Default Colors

    -
    +
    +

    Default Colors

    +
    set(groot, 'DefaultAxesColor', 'w');
     set(groot, 'DefaultAxesXColor', 'k');
    @@ -134,9 +137,9 @@
     
    -
    -

    Default Plot Colors

    -
    +
    +

    Default Plot Colors

    +
    c1 = [     0    0.4470    0.7410]; % Blue
     c2 = [0.8500    0.3250    0.0980]; % Orange
    @@ -152,9 +155,9 @@ c7 = [0.6350    0.0780    0.1840]; % 
     
    -
    -

    Figure paper and window style

    -
    +
    +

    Figure paper and window style

    +
    set(groot, 'DefaultFigurePaperType', 'A4');
     set(groot, 'DefaultFigureWindowStyle', 'normal');
    @@ -163,9 +166,9 @@ c7 = [0.6350    0.0780    0.1840]; % 
     
    -
    -

    Set the display format

    -
    +
    +

    Set the display format

    +
    format compact;
     format long g;
    @@ -174,19 +177,19 @@ format long g;
     
    -
    -

    Home Path

    -
    +
    +

    Home Path

    +
    -
    toolboxes_path = '~/Cloud/thesis/matlab/toolboxes/';
    +
    toolboxes_path = '~/Cloud/programming/matlab/';
     
    -
    -

    Add to path

    -
    +
    +

    Add to path

    +

    Provides vecfig3 for FRF fitting (link).

    @@ -285,9 +288,9 @@ Toolbox to work with fractional order models ( -

    Clear

    -
    +
    +

    Clear

    +
    clear;
     
    @@ -296,9 +299,9 @@ Toolbox to work with fractional order models (
    -

    Setup

    -
    +

    Music/Sound Configuration

    -
    +

    Table of Contents

    -
    + -
    -

    Config

    -
    +
    +

    Config

    +

    Configuration directory.

    @@ -131,7 +131,7 @@ MPD Configuration. Notification of song change.

    -
    execute_on_song_change = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)"
    +
    execute_on_song_change = notify-send --hint=string:x-dunst-stack-tag:Z7uCd3ZP "Now Playing ♫" "$(mpc current)"
     
    @@ -163,9 +163,9 @@ Sorting by tracking number and then title
    -
    -

    Bindings

    -
    +
    +

    Bindings

    +
    +

    Newsboat Configuration

    -
    +

    Table of Contents

    -
    +