texlive[68843] Master/texmf-dist: sim-os-menus (14nov23)

commits+karl at tug.org commits+karl at tug.org
Tue Nov 14 22:04:52 CET 2023


Revision: 68843
          https://tug.org/svn/texlive?view=revision&revision=68843
Author:   karl
Date:     2023-11-14 22:04:52 +0100 (Tue, 14 Nov 2023)
Log Message:
-----------
sim-os-menus (14nov23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.pdf
    trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.tex
    trunk/Master/texmf-dist/tex/latex/sim-os-menus/sim-os-menus.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf
    trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.tex

Added: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf	2023-11-14 21:04:24 UTC (rev 68842)
+++ trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf	2023-11-14 21:04:52 UTC (rev 68843)

Property changes on: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.tex	2023-11-14 21:04:52 UTC (rev 68843)
@@ -0,0 +1,365 @@
+% !TeX TXS-program:compile = txs:///pdflatex
+
+\documentclass[11pt,a4paper]{ltxdoc}
+\usepackage{sim-os-menus}
+\usepackage{graphicx}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{hyperref}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+%\rhead{\sffamily\small\affloetalab[Legende]}
+\lfoot{\sffamily\small [sim-os-menus]}
+\rfoot{\sffamily\small - \thepage{} -}
+%\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\providecommand\PSTricks{\textsf{PSTricks}\xspace}
+\let\pstricks\PSTricks
+\let\TikZ\tikzlogo
+
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{14/11/2023}
+\usepackage{soul}
+\sethlcolor{lightgray!25}
+\NewDocumentCommand\MontreCode{ m }{%
+	\hl{\vphantom{\texttt{pf}}\texttt{#1}}%
+}
+\usepackage[french]{babel}
+
+\begin{document}
+
+\pagestyle{fancy}
+
+\thispagestyle{empty}
+
+\begin{center}
+	\begin{minipage}{0.88\linewidth}
+	\begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+		\begin{center}
+			\begin{tabular}{c}
+				{\Huge \texttt{sim-os-menus [fr]}}\\
+				\\
+				{\LARGE Présenter un 'terminal', une 'visionneuse'} \\
+				{\LARGE ou un 'menu contextuel' comme sur un ordi.} \\
+				\\
+				{\small \texttt{Version \TPversion{} -- \TPdate}}
+		\end{tabular}
+		\end{center}
+	\end{tcolorbox}
+\end{minipage}
+\end{center}
+
+\begin{center}
+	\begin{tabular}{c}
+	\texttt{Cédric Pierquet}\\
+	{\ttfamily c pierquet -- at -- outlook . fr}\\
+	\texttt{\url{https://github.com/cpierquet/sim-os-menus}} \\
+\end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\MenuContextuel[Police=\sffamily,ListeSeps={1,3/1/4/1/},ListeDecals={1,2,1,0}]{%
+	Menu1(>),Menu2,Menu3(>)(*),Menu4 §
+	SousMenuA(>),SousMenuB(>)(*) §
+	SousSousMenu1,SousSousMenu2,SousSousMenu3(>)(*),SousSousMenu4,SousSousMenu5(>) §
+	SSSSMa,SSSSMa(>)(*),SSSSMc §
+	OK(*),KO
+}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{TerminalUnix}[largeur=12cm,Align=center]{}
+test at DESKTOP:~$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalUnix}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{VisionnIMG}[Largeur=12cm]{}
+\includegraphics[width=5cm]{example-image-b}
+\end{VisionnIMG}
+\end{tcolorbox}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5]
+\begin{TerminalMac}[Largeur=14cm,Align=flush left]{}
+[test at server]$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalMac}
+\end{tcolorbox}
+
+\vfill~
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+\hrule
+
+\vspace*{5mm}
+
+\section{Introduction}
+
+\subsection{Description}
+
+Avec ce packages, il est possible de créer un \og faux \fg{} terminal, ou un \og faux \fg{} menu contextuel, ou encore une \og fausse \fg{} visionneuse, comme sur un écran d'ordinateur !
+
+Les styles sont \textit{globalement} fixés, mais quelques personnalisations sont possibles.
+
+\subsection{Chargement}
+
+Pour charger le package, il suffit d'ajouter dans le préambule :
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{sim-os-menus}
+\end{verbatim}
+\end{quote}
+
+Les packages utiles, et chargés sont :
+
+\begin{itemize}
+	\item \MontreCode{tikz} (avec \MontreCode{calc,positioning}), \MontreCode{pgf}, \MontreCode{pgffor} ;
+	\item \MontreCode{calc}, \MontreCode{fontawesome5} ;
+	\item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{listofitems}, \MontreCode{xstring} ;
+	\item \MontreCode{settobox}, \MontreCode{tabularray} ;
+	\item \MontreCode{tcolorbox} (avec \MontreCode{breakable,fitting,skins,listings,listingsutf8,hooks}).
+\end{itemize}
+
+\vfill
+
+\subsection{Historique}
+
+\begin{quote}
+\begin{verbatim}
+0.1.1 : Ajout des commandes en [fr]
+0.1.0 : Version initiale
+\end{verbatim}
+\end{quote}
+
+\pagebreak
+
+\section{Les commandes disponibles}
+
+\subsection{Menu contextuel}
+
+Dans le but de créer un menu contextuel, la commande est :
+
+\begin{quote}
+\begin{verbatim}
+%----menu contextuel
+\MenuContextuel[clés]{liste des items}<options tikz>
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+	\item \MontreCode{CoulFond} := couleur du fond ;
+	\item \MontreCode{CoulSurlig} : = couleur du surlignage ;
+	\item \MontreCode{Arrondi} := booléen pour arrondir les coins (\MontreCode{true} par défaut) ;
+	\item \MontreCode{Police} := police pour les items (\MontreCode{\textbackslash normalsize\textbackslash normalfont} par défaut) ;
+	\item \MontreCode{CoulItems} := couleur(s) des items (\MontreCode{black} par défaut) ;
+	\item \MontreCode{MargeV} := marge verticale des lignes (\MontreCode{6pt} par défaut) ;
+	\item \MontreCode{MargeH} := marge horizontale des lignes (\MontreCode{12pt} par défaut) ;
+	\item \MontreCode{Fleche} := caractère pour la flèche (\MontreCode{\textbackslash faCaretRight} par défaut) ;
+	\item \MontreCode{ListeSeps} := liste des éventuels séparateurs (vide ou pour tous les niveaux !) ;
+	\item \MontreCode{ListeIcones} := liste des éventuelles icones  (vide ou pour tous les niveaux/items !) ;
+	\item \MontreCode{ListeDecals} := liste des éventuels décalages verticaux pour les sous-menus (à partir du n°2, \ldots !) (vide ou pour tous les sous-niveaux !) ;
+	\item \MontreCode{Icones} := booléen pour afficher les icones (\MontreCode{false} par défaut) ;
+	\item \MontreCode{Barre} := booléen pour une petite barre verticale après les éventuelles icones small vertical bar with icons (\MontreCode{true} par défaut) ;
+	\item \MontreCode{Space} := espacement horizontal entre les sous-menus (\MontreCode{-0.125} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à la liste des items, sous la forme :
+
+\smallskip
+
+\hfill\MontreCode{item1A,item1B,... § item2A,itemp2B,... § ...}\hfill~
+
+\begin{itemize}
+	\item si un item se termine par \MontreCode{(*)}, cela correspond au \textit{début} du sous-menu suivant (\underline{un seul} par niveau !) ;
+	\item si un item se termine par \MontreCode{(>)} (\underline{avant} un éventuel \MontreCode{(*)}), une \textit{flèche} est écrite à la fin de la ligne de l'item.
+\end{itemize}
+
+Une syntaxe correcte est fondamentale pour que le code présente correctement le menu contextuel !
+
+\vspace{5mm}
+
+Quelques conseils, du fait des \textsf{clés sensibles} \MontreCode{ListeIcones}, \MontreCode{ListeDecals} et \MontreCode{ListeSeps} :
+
+\begin{itemize}
+	\item \MontreCode{ListeIcones} doit avoir le même nombre d'éléments que le nombre de menus/items (avec des items vides possibles) ;
+	\item \MontreCode{ListeSeps} doit avoir le même nombre d'éléments que le nombre de niveaux (avec des niveaux vides possibles) ;
+	\item \MontreCode{ListeDecals} doit avoir le même nombre d'éléments que le nombre de sous-menus (Avec 0 si pas de décalage !).
+\end{itemize}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%style par défaut
+\MenuContextuel{Item1A(>),Item1B,Item1C(>)(*),Item1D § Item2A(*),Item2B(>),Item2C}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+%style personnalisé
+\MenuContextuel[Arrondi=false,CoulFond=yellow,CoulSurlign=teal,%
+  ListeSeps={1,3/2},CoulItems={black/white},Icones,Espacement=0,%
+  ListeIcones={\faCut,\faIcon[regular]{copy},\faCopy,\faPaste / \faNotEqual}]
+  {Item1A(>)(*),Item1B,Item1C(>),Item1D § Item2A(*),Item2B(>),Item2C}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\MenuContextuel[Police=\sffamily,ListeSeps={1,3/1/4/1/},ListeDecals={1,2,1,0}]{%
+  Menu1(>),Menu2,Menu3(>)(*),Menu4 §
+  SousMenuA(>),SousMenuB(>)(*) §
+  SousSousMenu1,SousSousMenu2,SousSousMenu3(>)(*),SousSousMenu4,SousSousMenu5(>) §
+  SSSSMa,SSSSMa(>)(*),SSSSMc §
+  OK(*),KO
+}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Terminal}
+
+Pour créer un \og faux \fg{} terminal (Win/UNiX/Mac), les environnements sont :
+
+\begin{quote}
+\begin{verbatim}
+%----Terminal Windows
+\begin{TerminalWin}[clés]{options tcbox}
+    ...
+\end{TerminalWin}
+
+%----Terminal UNiX
+\begin{TerminalUnix}[clés]{options tcbox}
+    ...
+\end{TerminalUnix}
+
+%----Terminal OSX
+\begin{TerminalMac}[clés]{options tcbox}
+    ...
+\end{TerminalMac}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+	\item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+	\item \MontreCode{Align} := alignement horizontal (paragraphe) du terminal (\MontreCode{center} par défaut) ;
+	\item \MontreCode{Largeur} := largeur du terminal (\MontreCode{\textbackslash linewidth} par défaut) ;
+	\item \MontreCode{Icones} := booléen pour afficher des icones (\MontreCode{true} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer à la \textsf{tcolorbox}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalWin}{}
+Microsoft Windows [version 10.0.22000.493]
+(c) Microsoft Corporation. Tous droits réservés.
+C:\Users\test>ping ctan.org
+Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
+Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
+Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
+Statistiques Ping pour 5.35.249.60:
+Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
+Durée approximative des boucles en millisecondes :
+Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
+\end{TerminalWin}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalUnix}[Align=flush right]{hbox}
+test at DESKTOP:~$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalUnix}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{TerminalMac}[Largeur=14cm,Align=flush left]{}
+[test at server]$ ping -c 2 ctan.org
+PING ctan.org (5.35.249.60) 56(84) bytes of data.
+\end{TerminalMac}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Visionneuses}
+
+Pour créer une \og fausse\fg{} visionneuse, les environnements sont :
+
+\begin{quote}
+\begin{verbatim}
+%----Visionneuse PDF
+\begin{VisionnPDF}[clés]{options tcbox}
+    ....
+\end{VisionnPDF}
+
+%----Visionneuse d'images
+\begin{VisionnIMG}[clés]{options tcbox}
+    ....
+\end{VisionnIMG}
+\end{verbatim}
+\end{quote}
+
+Les \textsf{clés}, optionnelles et entre \MontreCode{[...]}, sont :
+
+\begin{itemize}
+	\item \MontreCode{Titre} := titre du terminal (\MontreCode{Terminal Win/UNiX/Mac} par défaut) ;
+	\item \MontreCode{Align} := alignement horizontal (paragraphe) de la visionneuse (\MontreCode{center} par défaut) ;
+	\item \MontreCode{AlignH} := alignement horizontal (du contenu) de la visionneuse (\MontreCode{center} par défaut) ;
+	\item \MontreCode{Largeur} := largeur de la visionneuse (\MontreCode{\textbackslash linewidth} par défaut) ;
+	\item \MontreCode{Icones} := booléen pour afficher des icones (\MontreCode{true} par défaut).
+\end{itemize}
+
+\medskip
+
+L'argument obligatoire, entre \MontreCode{\{...\}}, correspond à des options spécifiques, à passer à la \textsf{tcolorbox}.
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnPDF}{hbox}
+\fbox{\includegraphics[page=35,width=6cm]{ProfLycee-doc.pdf}}%
+\fbox{\includegraphics[page=36,width=6cm]{ProfLycee-doc.pdf}}
+\end{VisionnPDF}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnPDF}[Largeur=14cm,Icones=false]{}
+\fbox{\includegraphics[page=65,width=4.75cm]{ProfLycee-doc.pdf}}
+\end{VisionnPDF}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnIMG}[Icones=false]{hbox}
+\includegraphics[width=5cm]{example-image-b}
+\end{VisionnIMG}
+\end{tcblisting}
+
+\begin{tcblisting}{colframe=lightgray,colback=lightgray!5}
+\begin{VisionnIMG}[Largeur=12cm]{}
+\includegraphics[width=3cm]{example-image}
+\end{VisionnIMG}
+\end{tcblisting}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc-fr.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.tex	2023-11-14 21:04:24 UTC (rev 68842)
+++ trunk/Master/texmf-dist/doc/latex/sim-os-menus/sim-os-menus-doc.tex	2023-11-14 21:04:52 UTC (rev 68843)
@@ -23,8 +23,8 @@
 \hypersetup{pdfborder=0 0 0}
 \usepackage[margin=2cm]{geometry}
 \setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{13/11/2023}
+\def\TPversion{0.1.1}
+\def\TPdate{14/11/2023}
 \usepackage{soul}
 \sethlcolor{lightgray!25}
 \NewDocumentCommand\MontreCode{ m }{%
@@ -146,6 +146,7 @@
 
 \begin{quote}
 \begin{verbatim}
+0.1.1 : French version of the commands
 0.1.0 : Initial version
 \end{verbatim}
 \end{quote}

Modified: trunk/Master/texmf-dist/tex/latex/sim-os-menus/sim-os-menus.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/sim-os-menus/sim-os-menus.sty	2023-11-14 21:04:24 UTC (rev 68842)
+++ trunk/Master/texmf-dist/tex/latex/sim-os-menus/sim-os-menus.sty	2023-11-14 21:04:52 UTC (rev 68843)
@@ -2,8 +2,9 @@
 % licence    : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sim-os-menus}[2023/11/13 0.1.0 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox]
-%0.1.0	Initial version
+\ProvidesPackage{sim-os-menus}[2023/11/14 0.1.1 Present 'context menu'/'terminal'/'windows', with TikZ or tcolorbox (en of fr commands)]
+% 0.1.1	French version of the commands
+% 0.1.0	Initial version
 
 %====PACKAGES
 \RequirePackage{tikz,pgf,pgffor}
@@ -19,10 +20,12 @@
 \RequirePackage{tcolorbox}
 \tcbuselibrary{breakable,fitting,skins,listings,listingsutf8,hooks}
 
-%****CONTEXTMENU****
-%====USEFULL
+%====USEFULL DATA
+%****CONTEXTMENU
 \definecolor{ColBackContextMenu}{HTML}{f0f0f0}%
 \definecolor{ColHLContextMenu}{HTML}{90c8f6}%
+\definecolor{CoulFondMenuContext}{HTML}{f0f0f0}%
+\definecolor{CoulSurligMenuContext}{HTML}{90c8f6}%
 \newlength{\ContMenOffsetIcon}\setlength{\ContMenOffsetIcon}{0pt}
 \newlength{\ContMenOffsetArrow}\setlength{\ContMenOffsetArrow}{1em}
 \newlength{\ContMenOffsetV}\setlength{\ContMenOffsetV}{6pt}
@@ -31,7 +34,100 @@
 \newlength{\ContMenHgth}\newlength{\ContMenHgthTmp}
 \newsavebox{\maboitemenucontext}
 \newsavebox{\maboitelogomenucontext}
+%****TERMINAL
+\definecolor{Termmpurple}{RGB}{48,10,36}
+\definecolor{Termmgray}{RGB}{70,72,67}
+\definecolor{Termogray}{RGB}{148,147,141}
+\definecolor{Termoorange}{RGB}{233,101,56}
+\definecolor{Termterminal}{RGB}{80,78,70}
+\definecolor{Termlinux}{RGB}{0,39,51}
+\definecolor{Termwinblue}{HTML}{1883D7}
+\definecolor{Termosxgray}{HTML}{D8D6D9}
+\definecolor{Termosxgreen}{HTML}{1F8B36}
+\tcbset{StyleTermWindows/.style={%
+		enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
+		colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
+		titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+		fonttitle=\bfseries\small\sffamily
+	}
+}
+\newcommand\TermWinComm{%
+	\begin{tikzpicture}[thick,scale=0.66]
+		\draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
+	\end{tikzpicture}%
+}
+\newcommand{\TermUbuntuWhite}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
+	\end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMin}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+		\draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
+	\end{tikzpicture}%
+}
+\newcommand{\TermUbuntuClose}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
+		\draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
+		\draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
+	\end{tikzpicture}%
+}
+\newcommand{\TermUbuntuMax}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
+		\draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
+	\end{tikzpicture}%
+}
+\tcbset{StyleTermUniX/.style={%
+		enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
+		colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
+		titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+		fonttitle=\bfseries\small\sffamily
+	}
+}
+\tcbset{StyleTermOSX/.style={%
+	enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+	colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
+	titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+	fonttitle=\bfseries\small\sffamily
+	}
+}
+\newcommand{\TermOSXRed}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[red] (0,0.25em) circle[radius=0.45em] ;
+	\end{tikzpicture}%
+}
+\newcommand{\TermOSXOrange}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
+	\end{tikzpicture}%
+}
+\newcommand{\TermOSXgreen}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
+	\end{tikzpicture}%
+}
+\newcommand{\TermOSXLG}{%
+	\begin{tikzpicture}[thick,anchor=base,baseline]
+		\filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
+	\end{tikzpicture}%
+}
+%****VIEWERS
+\tcbset{StylePDFViewer/.style={%
+		enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+		colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+	}
+}
+\tcbset{StyleIMGViewer/.style={%
+		enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
+		colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
+	}
+}
 
+%----[ENGLISH COMMANDS]
+%****CONTEXTMENU****
 %====KEYS
 \defKV[ContextMenu]{%
 	ColBack=\def\ContMenColBack{#1},%
@@ -252,34 +348,9 @@
 }
 
 %****TERMINAL****
-%====COLORS
-\definecolor{Termmpurple}{RGB}{48,10,36}
-\definecolor{Termmgray}{RGB}{70,72,67}
-\definecolor{Termogray}{RGB}{148,147,141}
-\definecolor{Termoorange}{RGB}{233,101,56}
-\definecolor{Termterminal}{RGB}{80,78,70}
-\definecolor{Termlinux}{RGB}{0,39,51}
-\definecolor{Termwinblue}{HTML}{1883D7}
-\definecolor{Termosxgray}{HTML}{D8D6D9}
-\definecolor{Termosxgreen}{HTML}{1F8B36}
-
 %====WINDOWS (OK)
-\tcbset{StyleTermWindows/.style={%
-		enhanced,boxrule=1pt,arc=1pt,before skip=\baselineskip,after skip=\baselineskip,%
-		colframe=Termwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
-		titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
-		fonttitle=\bfseries\small\sffamily
-	}
-}
-
 \setKVdefault[TERMwin]{Title={Terminal Win},Align={center},Width={\linewidth}}
 
-\newcommand\TermWinComm{%
-	\begin{tikzpicture}[thick,scale=0.66]
-		\draw (0,0.5em)--++(1em,0) ; \draw[rounded corners=0.05em] (2em,0) rectangle++ (0.8em,0.8em) ; \draw[rounded corners=0.05em] (2.2em,0.2em) rectangle++ (0.8em,0.8em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
-	\end{tikzpicture}%
-}
-
 \newcommand\TermWinTitle{%
 	\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
 		{\footnotesize\faTerminal}~~\useKV[TERMwin]{Title} & \TermWinComm \\ %
@@ -297,39 +368,6 @@
 }
 
 %====LINUX (OK)
-\newcommand{\TermUbuntuWhite}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[Termmgray] (0,0.25em) circle[radius=0.5em] ;
-	\end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMin}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
-		\draw[Termterminal](-0.35em,0.25em)--(0.35em,0.25em);
-	\end{tikzpicture}%
-}
-\newcommand{\TermUbuntuClose}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[color=Termoorange!70!white] (0,0.25em) circle[radius=0.5em];
-		\draw[Termterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
-		\draw[Termterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
-	\end{tikzpicture}%
-}
-\newcommand{\TermUbuntuMax}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[color=Termogray!50!white] (0,0.25em) circle[radius=0.5em];
-		\draw[Termterminal] (-0.32em,0.5em) rectangle (0.32em,0);
-	\end{tikzpicture}%
-}
-
-\tcbset{StyleTermUniX/.style={%
-		enhanced,boxrule=1pt,arc=4pt,before skip=\baselineskip,after skip=\baselineskip,%
-		colframe=Termmgray,colback=Termmpurple,colbacktitle=Termmgray,colupper=white,coltitle=white,%
-		titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
-		fonttitle=\bfseries\small\sffamily
-	}
-}
-
 \setKVdefault[TERMnux]{Title={Terminal UNiX},Align={center},Width={\linewidth}}
 
 \newcommand\TermNuxTitle{%
@@ -348,39 +386,7 @@
 	\endtcblisting%
 }
 
-%OSX (OK)
-\tcbset{StyleTermOSX/.style={%
-	enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
-	colframe=Termosxgray,colback=lightgray!15,colbacktitle=Termosxgray,colupper=black,coltitle=black,%
-	titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
-	fonttitle=\bfseries\small\sffamily
-	}
-}
-
-\newcommand{\TermOSXRed}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[red] (0,0.25em) circle[radius=0.45em] ;
-	\end{tikzpicture}%
-}
-
-\newcommand{\TermOSXOrange}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
-	\end{tikzpicture}%
-}
-
-\newcommand{\TermOSXgreen}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[Termosxgreen] (0,0.25em) circle[radius=0.45em] ;
-	\end{tikzpicture}%
-}
-
-\newcommand{\TermOSXLG}{%
-	\begin{tikzpicture}[thick,anchor=base,baseline]
-		\filldraw[Termosxgray] (0,0.25em) circle[radius=0.45em] ;
-	\end{tikzpicture}%
-}
-
+%====OSX (OK)
 \setKVdefault[TERMosx]{Title={Terminal Mac},Align={center},Width={\linewidth}}
 
 \newcommand\TermOSXTitle{%
@@ -400,13 +406,7 @@
 }
 
 %****VIEWERS****
-%PDFVIEWER (OK)
-\tcbset{StylePDFViewer/.style={%
-		enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
-		colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
-	}
-}
-
+%====PDFVIEWER (OK)
 \setKVdefault[PDFViewer]{Title={PDF Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
 
 \NewDocumentCommand\PDFVIewerTitle{ s }{%
@@ -433,13 +433,7 @@
 	\endtcolorbox%
 }
 
-%IMGVIEWER (OK)
-\tcbset{StyleIMGViewer/.style={%
-		enhanced,boxrule=1pt,arc=6pt,before skip=\baselineskip,after skip=\baselineskip,%
-		colframe=gray,colback=lightgray!5,colbacktitle=lightgray!15,colupper=black,coltitle=black,titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=0pt,fonttitle=\bfseries\small\sffamily
-	}
-}
-
+%====IMGVIEWER (OK)
 \setKVdefault[IMGViewer]{Title={Image Viewer},Align={center},Width={\linewidth},Halign={center},Icons=true}
 
 \NewDocumentCommand\IMGVIewerTitle{ s }{%
@@ -466,4 +460,338 @@
 	\endtcolorbox%
 }
 
+%----[FRENCH COMMANDS]
+%****MENUCONTEXTUEL****
+%====KEYS
+\defKV[MenuContext]{%
+	CoulFond=\def\ContMenColBack{#1},%
+	CoulSurlig=\def\ContMenColHL{#1},%
+	Police=\def\ContMenuFonte{#1},%
+	MargeV=\setlength{\ContMenOffsetV}{#1},%
+	MargeH=\setlength{\ContMenOffset}{#1},
+	Fleche=\def\ContMenArrow{#1},%
+	ListeSeps=\xdef\ContMenSep{#1},%
+	ListeIcones=\xdef\ContMenIcons{#1},%
+	Espacement=\def\ContMenSpace{#1},%
+	CoulItems=\def\ContMenuColItems{#1},%
+	ListeDecals=\xdef\ContMenOffsets{#1}
+}
+
+\setKVdefault[MenuContext]{%
+	CoulFond=CoulFondMenuContext,%
+	CoulSurlig=CoulSurligMenuContext,%
+	Arrondi=true,%
+	Police=\normalsize\normalfont,%
+	MargeV=6pt,%
+	MargeH=12pt,%
+	Fleche=\faCaretRight,%
+	ListeSeps={},%
+	ListeIcones={},%
+	Icones=false,%
+	Barre=true,%
+	Espacement=-0.125,%
+	CoulItems=black,%
+	ListeDecals={}
+}
+
+%====MACRO
+\NewDocumentCommand\MenuContextuel{ O{} m D<>{} }{%
+	%clés
+	\useKVdefault[MenuContext]%
+	\setKV[MenuContext]{#1}%
+	\setsepchar{§/,}%
+	\readlist*\DonnesContMenu{#2}%
+	\IfEq{\ContMenSep}{}%
+		{}%
+		{
+			\setsepchar[.]{/.,}%
+			\readlist*\LstSepContMenu{\ContMenSep}%
+		}%
+	\IfEq{\ContMenIcons}{}%
+		{}%
+		{
+			\setsepchar[.]{/.,}%
+			\readlist*\LstIconsContMenu{\ContMenIcons}%
+		}%
+	\IfEq{\ContMenOffsets}{}%
+		{}%
+		{
+			\setsepchar{,}%
+			\readlist*\LstOffsetsContMenu{\ContMenOffsets}%
+		}%
+	%colors of items
+	\IfSubStr{\ContMenuColItems}{/}%
+		{%
+			\StrCut{\ContMenuColItems}{/}{\ContMenuColItemsE}{\ContMenuColItemsH}%
+		}%
+		{%
+			\xdef\ContMenuColItemsE{\ContMenuColItems}\xdef\ContMenuColItemsH{\ContMenuColItems}
+		}%
+	%height of lines
+	\sbox{\maboitemenucontext}{\ContMenuFonte qSÉ}%
+	\settoboxtotalheight{\ContMenHgthTmp}{\maboitemenucontext}%
+	\ifboolKV[MenuContext]{Icones}%
+		{%
+			\sbox{\maboitelogomenucontext}{\ContMenuFonte\faCreditCard}%
+			\settoboxwidth{\ContMenOffsetIcon}{\maboitelogomenucontext}%
+		}%
+		{%
+			\setlength{\ContMenOffsetIcon}{0pt}%
+		}%
+	\setlength{\ContMenHgth}{\ContMenHgthTmp+2\ContMenOffsetV}%
+	%environment
+	\begin{tikzpicture}[#3]
+		\ifboolKV[MenuContext]{Arrondi}%
+			{\tikzset{contextborder/.style={rounded corners=4pt}}}%
+			{\tikzset{contextborder/.style={}}}%
+		%--first node
+		\coordinate (I-1-1) at (0,0) ;%
+		%--levels one by one--
+		\foreach \niv in {1,...,\DonnesContMenulen}{%
+			\def\nivmun{\inteval{\niv-1}}%
+			\def\nivpun{\inteval{\niv+1}}%
+			\itemtomacro\DonnesContMenu[\niv]{\ContMenNivTmp}%
+			\setsepchar{,}\readlist*\ContMenLstItem{\ContMenNivTmp}%
+			%left nodes
+			\coordinate (I-\niv-2) at ($(I-\niv-1)+(0,{-\ContMenHgth})$) ;%
+			\xintifboolexpr{\ContMenLstItemlen >= 2}%
+				{%
+					\foreach \i in {2,...,\ContMenLstItemlen}{%
+						\xdef\j{\inteval{\i+1}}%
+						\coordinate (I-\niv-\j) at ($(I-\niv-\i)+(0,{-\ContMenHgth})$) ;%
+					}
+				}%
+				{}%
+			%width calculus
+			\itemtomacro\ContMenLstItem[1]{\itemtmp}%
+			\IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+			\IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+			\sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+			\settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+			\xdef\tmplistwidth{\the\ContMenWdthTmp}%
+			\xintifboolexpr{\ContMenLstItemlen >= 2}%calul des autres si besoin
+				{%
+					\foreach \i in {2,...,\ContMenLstItemlen}{%
+						\itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+						\IfEndWith{\itemtmp}{(*)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+						\IfEndWith{\itemtmp}{(>)}{\StrGobbleRight{\itemtmp}{3}[\itemtmp]}{}%
+						\sbox{\maboitemenucontext}{\pgfinterruptpicture\ContMenuFonte\itemtmp\endpgfinterruptpicture}%
+						\settoboxwidth{\ContMenWdthTmp}{\maboitemenucontext}%
+						\xdef\tmplistwidth{\tmplistwidth,\the\ContMenWdthTmp}%
+					}%
+				}%
+				{}%
+			\pgfmathsetlength{\ContMenWdth}{max(\tmplistwidth)}%
+			\setlength{\ContMenWdth}{\ContMenWdth+\ContMenOffsetIcon+2\ContMenOffset+\ContMenOffsetArrow}%calcul de la 1ère largeur
+			%boxes
+			\draw[contextborder,draw=none,fill=\ContMenColBack] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+			\ifboolKV[MenuContext]{Icones}%
+				{%
+					\ifboolKV[MenuContext]{Barre}{\draw[thick,white] ($(I-\niv-1)+({\ContMenOffset+\ContMenOffsetIcon-3pt},{-0.5\ContMenOffsetV})$) --++ (0,{-\ContMenLstItemlen*\ContMenHgth+\ContMenOffsetV}) ;}{}%
+				}%
+				{}%
+			%labels
+			\foreach \i in {1,...,\ContMenLstItemlen}{%
+				\itemtomacro\ContMenLstItem[\i]{\itemtmp}%
+				\IfEndWith{\itemtmp}{(*)}%
+					{%
+						\StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+						%offset si delared ?
+						
+						\IfEq{\ContMenOffsets}{}%
+							{%
+								\coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{0})$) ;
+							}%
+							{%
+								\xintifboolexpr{\niv < \DonnesContMenulen}%
+									{%
+										\itemtomacro\LstOffsetsContMenu[\niv]{\offsettmp}%
+										\coordinate (I-\nivpun-1) at ($(I-\niv-\i)+({\ContMenWdth+\ContMenSpace\ContMenOffset},{\offsettmp*\ContMenHgth})$) ;
+									}%
+									{}%
+							}%
+						
+						\draw[contextborder,draw=none,fill=\ContMenColHL,fill opacity=0.65] ($(I-\niv-\i)+({0.25\ContMenOffset},{-0.5\ContMenOffsetV})$) rectangle++ ({\ContMenWdth-0.5\ContMenOffset},{-\ContMenHgth+\ContMenOffsetV}) ;
+						%test if char at the end
+						\IfEndWith{\itemtmp}{(>)}%
+							{%
+								\StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+								\draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+								\draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+							}%
+							{%
+								\draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsH] {\itemtmp} ;
+							}%
+					}%
+					{%
+						\IfEndWith{\itemtmp}{(>)}%
+							{%
+								\StrGobbleRight{\itemtmp}{3}[\itemtmp]%
+								\draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte] {\itemtmp} ;
+								\draw ($(I-\niv-\i)+({\ContMenWdth-0.5\ContMenOffset},{-0.5*\ContMenHgth})$) node[inner sep=0pt,left=0.25\ContMenOffset,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\ContMenArrow}}$} ;
+							}%
+							{%
+								\draw ($(I-\niv-\i)+(0,{-0.5*\ContMenHgth})$) node[inner sep=0pt,right={\ContMenOffset+\ContMenOffsetIcon},font=\ContMenuFonte,text=\ContMenuColItemsE] {\itemtmp} ;
+							}%
+					}%
+			}%
+			%border
+			\draw[contextborder,thick,\ContMenColBack!75!black] (I-\niv-1) rectangle++ ({\ContMenWdth},{-\ContMenLstItemlen*\ContMenHgth}) ;
+			%separators
+			\IfEq{\ContMenSep}{}%
+				{}%
+				{%
+					\itemtomacro\LstSepContMenu[\niv]{\lstsepniv}%
+					\IfEq{\lstsepniv}{}%
+						{}%
+						{%
+							\setsepchar{,}%
+							\readlist*\lstsepnivpos{\lstsepniv}
+							\foreachitem\sep\in\lstsepnivpos{\def\seppun{\inteval{\sep+1}}\draw[thick,\ContMenColBack!75!black] ($(I-\niv-\seppun)+({0.25\ContMenOffset},0)$) --++ ({\ContMenWdth-0.5\ContMenOffset},0) ;}%
+						}%
+				}%
+			%icons
+			\ifboolKV[MenuContext]{Icones}%
+				{%
+					\IfEq{\ContMenIcons}{}%
+						{}%
+						{%
+							\itemtomacro\LstIconsContMenu[\niv]{\lsticonsniv}%
+							\IfEq{\lsticonsniv}{}%
+								{}%
+								{%
+									\setsepchar{,}%
+									\readlist*\lsticonsnivpos{\lsticonsniv}%
+									\foreach \i in {1,...,\lsticonsnivposlen}{%
+										\itemtomacro\lsticonsnivpos[\i]{\icontmp}%
+										\itemtomacro\DonnesContMenu[\niv,\i]{\itemtmp}%
+										\IfEndWith{\itemtmp}{(*)}%
+											{%
+												\draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsH] {$\vcenter{\hbox{\icontmp}}$} ;
+											}%
+											{%
+												\draw ($(I-\niv-\i)+({0.25\ContMenOffset+0.75\ContMenOffsetIcon},{-0.5*\ContMenHgth})$) node[scale=0.9,inner sep=0pt,font=\ContMenuFonte,text=\ContMenuColItemsE] {$\vcenter{\hbox{\icontmp}}$} ;
+											}%
+									}%
+								}%
+						}%
+				}%
+				{}%
+		}%
+	\end{tikzpicture}
+}
+
+%****TERMINAL****
+%====WINDOWS (OK)
+\setKVdefault[TERMINALwin]{Titre={Terminal Win},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalWinTitle{%
+	\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
+		{\footnotesize\faTerminal}~~\useKV[TERMINALwin]{Titre} & \TermWinComm \\ %
+	\end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalWin}{ O{} m }
+{%
+	\restoreKV[TERMINALwin]%
+	\setKV[TERMINALwin]{#1}%
+	\tcblisting{StyleTermWindows,{\useKV[TERMINALwin]{Align}},title={\TerminalWinTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALwin]{Largeur}},#2}
+}%
+{%
+	\endtcblisting%
+}
+
+%====LINUX (OK)
+\setKVdefault[TERMINALnux]{Titre={Terminal UNiX},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalNuxTitle{%
+	\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+		\TermUbuntuWhite~~\TermUbuntuWhite~~\TermUbuntuWhite & \vphantom{p}\useKV[TERMINALnux]{Titre} & \TermUbuntuMin~~\TermUbuntuMax~~\TermUbuntuClose \\
+	\end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalUnix}{ O{} m }
+{%
+	\restoreKV[TERMINALnux]%
+	\setKV[TERMINALnux]{#1}%
+	\tcblisting{StyleTermUniX,{\useKV[TERMINALnux]{Align}},title={\TerminalNuxTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALnux]{Largeur}},#2}
+}%
+{%
+	\endtcblisting%
+}
+
+%====OSX (OK)
+\setKVdefault[TERMINALosx]{Titre={Terminal Mac},Align={center},Largeur={\linewidth}}
+
+\newcommand\TerminalOSXTitle{%
+	\begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+		\TermOSXRed~\TermOSXOrange~\TermOSXgreen & \vphantom{p}\useKV[TERMINALosx]{Titre} & \TermOSXLG~\TermOSXLG~\TermOSXLG \\
+	\end{tblr}
+}
+
+\NewDocumentEnvironment{TerminalMac}{ O{} m }
+{%
+	\restoreKV[TERMINALosx]%
+	\setKV[TERMINALosx]{#1}%
+	\tcblisting{StyleTermOSX,{\useKV[TERMINALosx]{Align}},title={\TerminalOSXTitle},listing only,listing engine=listings,listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},width={\useKV[TERMINALosx]{Largeur}},#2}
+}%
+{%
+	\endtcblisting%
+}
+
+%****VISIONNEUSES****
+%====PDFVIEWER (OK)
+\setKVdefault[PDFVisionn]{Titre={Visionneuse PDF},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\PDFVIewerTitre{ s }{%
+	\IfBooleanTF{#1}%
+		{%
+			\begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+				\vphantom{p}\useKV[PDFVisionn]{Titre} && \faIcon[regular]{file-pdf} \\
+			\end{tblr}
+		}%
+		{%
+			\begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+				\vphantom{p}\useKV[PDFVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faIcon{pencil-alt} & \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-pdf} \\
+			\end{tblr}
+		}%
+}
+
+\NewDocumentEnvironment{VisionnPDF}{ O{} m }
+{%
+	\restoreKV[PDFVisionn]%
+	\setKV[PDFVisionn]{#1}%
+	\tcolorbox[StylePDFViewer,{\useKV[PDFVisionn]{Align}},title={\ifboolKV[PDFVisionn]{Icones}{\PDFVIewerTitre}{\PDFVIewerTitre*}},width={\useKV[PDFVisionn]{Largeur}},halign={\useKV[PDFVisionn]{AlignH}},#2]
+}%
+{%
+	\endtcolorbox%
+}
+
+%====IMGVIEWER (OK)
+\setKVdefault[IMGVisionn]{Titre={Visionneuse d'images},Align={center},Largeur={\linewidth},AlignH={center},Icones=true}
+
+\NewDocumentCommand\IMGVIewerTitre{ s }{%
+	\IfBooleanTF{#1}%
+		{%
+			\begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+				\vphantom{p}\useKV[IMGVisionn]{Titre} && \faIcon[regular]{file-image} \\
+			\end{tblr}
+		}%
+		{%
+			\begin{tblr}{colsep=4pt,rowsep=0pt,width=\linewidth,colspec={l|[1pt]l|[1pt]l|[1pt]l|[1pt]X[c]|[1pt]c},cells={font=\footnotesize}}
+				\vphantom{p}\useKV[IMGVisionn]{Titre} & \faIcon[regular]{folder}~~\faPrint~~\faPen~~\faFillDrip~~\faBorderNone& \faArrowLeft~~\faArrowRight & \faExpand~~\faIcon{expand-alt}~~\faIcon{expand-arrows-alt}&&\faIcon[regular]{file-image} \\
+			\end{tblr}
+		}%
+}
+
+\NewDocumentEnvironment{VisionnIMG}{ O{} m }
+{%
+	\restoreKV[IMGVisionn]%
+	\setKV[IMGVisionn]{#1}%
+	\tcolorbox[StyleIMGViewer,{\useKV[IMGVisionn]{Align}},title={\ifboolKV[IMGVisionn]{Icones}{\IMGVIewerTitre}{\IMGVIewerTitre*}},width={\useKV[IMGVisionn]{Largeur}},halign={\useKV[IMGVisionn]{AlignH}},#2]
+}%
+{%
+	\endtcolorbox%
+}
+
 \endinput
\ No newline at end of file



More information about the tex-live-commits mailing list.