close
  • chevron_right

    Tabby – Le terminal du monde moderne

    news.movim.eu / Korben · Sunday, 20 February - 08:00 · 1 minute

Si vous en avez assez de votre terminal, je vous présente Tabby . Ce terminal open source et libre pour macOS, Windows et Linux est entièrement configurable et vous permettra de vous connecter soit en local, soit via le port série soit en Telnet et SSH et vous fera gagner du temps grâce à ses raccourcis clavier et rendra également votre quotidien plus agréable.

Tabby propose des onglets et un système de panneaux, mais également des thèmes, des plugins et des palettes de couleurs pour vous permettre de pousser au bout l’expérience. Il peut supporter différents shells dans la même fenêtre, offre de la complétion, intègre un conteneur chiffré pour vos mots de passe, clés SSH et autres secrets, et peut gérer différents profils de connexions.

Chaque onglet est persistent (vous pouvez les restaurer si vous en fermez un par erreur) et dispose d’un système de notifications, ce qui permettra de vous avertir si par exemple un traitement est terminé pendant que vous êtes en train de tapoter dans un autre onglet.

C’est vraiment un super terminal qui viendra facilement remplacer cmd.exe pour les Windowsiens ou votre terminal de d’habitude. Et il peut même fonctionner en version portable pour ceux qui aiment embarquer leurs outils sur clé USB.

Pour le tester, vous pouvez le télécharger, mais il existe également une version web . Pratique pour se faire une idée.

KorbensBlog-UpgradeYourMind?d=yIl2AUoC8zAKorbensBlog-UpgradeYourMind?i=XdptWgydzuw:7xKtskDAoyk:D7DqB2pKExkKorbensBlog-UpgradeYourMind?i=XdptWgydzuw:7xKtskDAoyk:GG6oivYVkFsKorbensBlog-UpgradeYourMind?d=qj6IDK7rITsKorbensBlog-UpgradeYourMind?i=XdptWgydzuw:7xKtskDAoyk:gIN9vFwOqvQKorbensBlog-UpgradeYourMind?d=7Q72WNTAKBA
  • chevron_right

    Donnez de la couleur à votre système d’exploitation et à votre terminal

    news.movim.eu / Korben · Sunday, 29 August, 2021 - 07:00 · 2 minutes

Si vous aimez passer du temps dans votre terminal (sous Linux, macOS ou même Windows maintenant), peut-être avez-vous personnalisé le style graphique de celui-ci pour que vos journées soient plus agréables.

Seulement voilà, tout le monde n’a pas la sensibilité artistique d’un décorateur ou d’une décoratrice d’intérieur, et sorti du vert sur fond noir à la matrix, on se retrouve vite limité pour choisir des couleurs qui vont bien ensemble pour nos terminaux.

Heureusement, c’est là qu’entre en scène Pywal , un outil qui génère une palette de couleurs à partir des couleurs dominantes d’une image.

Cela peut-être votre fond d’écran, histoire d’assortir le tout. Il applique ensuite ces couleurs à l’ensemble du système et dans tous vos programmes préférés ( la liste est ici ). Sachez avant d’aller plus loin que Pywal ne modifie aucun de vos fichiers de configuration pour appliquer ses couleurs. Il les contourne tout simplement.

L’outil propose 5 modèles de génération de couleurs, chacun fournissant une palette de couleurs différente à partir de chaque image. Ça fait assez de possibilités pour que vous trouviez la palette qui vous correspond.

Mais Pywal va plus loin puisqu’il prend également en charge des thèmes prédéfinis. D’ailleurs par défaut, il est livré avec 250 thèmes de couleurs.

Et vous pouvez également créer vos propres fichiers de thèmes pour les partager avec l’ensemble de la communauté des gens qui veulent un peu de couleur dans leurs terminaux !

Si l’outil vous intéresse, vous pouvez l’installer comme ceci :

pip3 install pywal

Ensuite, la commande c’est « wal » qui fait tout. Par exemple, vous téléchargez ce fond d’écran unsplash sur votre disque dur.

Il vous suffit ensuite d’appeler la commande wal comme ceci :

wal -i ~/Downloads/dang-tran-WpcfLtCqa7A-unsplash.jpg

Et voilà, une palette de couleurs sera générée et l’image sera mise en fond d’écran comme ceci :

Wal est un outil assez complet, mais qui nécessite un peu de configuration si vous souhaitez l’intégrer dans des scripts ou si vous voulez rendre vos modifications persistantes après un reboot.

Pour ce faire, ouvrez votre fichier .xinitrc et ajoutez la commande suivante dedans :

wal -R

Cela aura pour effet de restaurer le dernier jeu de couleurs que vous avez utilisé.

Je vous invite fortement à lire la doc pour aller un peu plus loin .

Et pour vous donner un peu d’inspiration, sachez qu’ un sub reddit lui est entièrement dédié .

KorbensBlog-UpgradeYourMind?d=yIl2AUoC8zAKorbensBlog-UpgradeYourMind?i=SnozLWbkNyw:NZ54Xey6xMc:D7DqB2pKExkKorbensBlog-UpgradeYourMind?i=SnozLWbkNyw:NZ54Xey6xMc:GG6oivYVkFsKorbensBlog-UpgradeYourMind?d=qj6IDK7rITsKorbensBlog-UpgradeYourMind?i=SnozLWbkNyw:NZ54Xey6xMc:gIN9vFwOqvQKorbensBlog-UpgradeYourMind?d=7Q72WNTAKBA
  • chevron_right

    Un éditeur de texte / code moderne pour votre terminal

    news.movim.eu / Korben · Friday, 27 August, 2021 - 07:00 · 1 minute

man standing beside train

Vous cherchez un éditeur de texte qui tourne dans un terminal, qui soit facile à utiliser et intuitif, mais qui sait également tirer partie des capacités des terminaux modernes.

Et bien pas de soucis, j’ai ce qu’il vous faut. Cela s’appelle Micro et c’est typiquement le genre de petit outil qui sait se rendre indispensable.

Vous l’installez avec votre gestionnaire de paquet préféré, ou vous pouvez également télécharger les binaires ici pour Linux, macOS, Windows et même BSD.

On peut également l’installer simplement en appelant le script d’install comme ceci :

curl https://getmic.ro | bash

Notez que quand vous voyez une commande avec curl suivie d’une exécution directe dans le bash, il est quand même plus raisonnable d’aller jeter un œil au script appelé pour être certain que ça ne contient aucune mauvaise surprise.

Micro se veut en quelque sorte le successeur de l’éditeur nano en étant facile à installer, facile à utiliser et surtout agréable, ce qui n’est pas anodin quand on passe beaucoup de temps dans un terminal chaque jour à éditer des fichiers de conf ou à écrire du code.

Micro dispose de nombreux raccourcis clavier que vous pouvez personnaliser ainsi que de nombreuses commandes pour faire des recherches / remplacements, ajouter des plugins , lancer des commandes en tâche de fond…etc.

À découvrir ici.

KorbensBlog-UpgradeYourMind?d=yIl2AUoC8zAKorbensBlog-UpgradeYourMind?i=XYngQNrUVo4:BoMPy_wb2YE:D7DqB2pKExkKorbensBlog-UpgradeYourMind?i=XYngQNrUVo4:BoMPy_wb2YE:GG6oivYVkFsKorbensBlog-UpgradeYourMind?d=qj6IDK7rITsKorbensBlog-UpgradeYourMind?i=XYngQNrUVo4:BoMPy_wb2YE:gIN9vFwOqvQKorbensBlog-UpgradeYourMind?d=7Q72WNTAKBA
  • It chevron_right

    Top 10 Terminal Emulators for Linux (With Extra Features or Amazing Looks)

    pubsub.do.nohost.me / ItsFoss · Thursday, 18 March, 2021 - 09:13 · 8 minutes

By default, all Linux distributions already come pre-installed with a terminal application or terminal emulator (correct technical term). Of course, depending on the desktop environment, it will look and feel different.

Here’s the thing about Linux. You are not restricted to what your distribution provides. You can opt for an alternative application of your choice. Terminal is no different. There are several impressive terminal emulators that offer unique features for a better user experience or for better looks.

Here, I will be compiling a list of such interesting terminal applications that you can try on your Linux distribution.

Awesome Terminal Emulators for Linux

The list is in no particular order of ranking. I’ve tried to list the interesting ones first followed by some of the most popular terminal emulators. Also, I have highlighted the key features for every terminal emulator mentioned, choose what you prefer.

1. Terminator

terminator terminal

Key Highlights:

  • Multiple GNOME terminals in one window

Terminator is decently popular terminal emulator which is still being maintained (moved from Launchpad to GitHub).

It basically provides you multiple GNOME terminals in one window. You can easily group and re-group terminal windows with the help of it. You may feel like using a tiling window manager but with some restrictions.

How to install Terminator?

For Ubuntu-based distros, all you have to do is type in the following command in the terminal:

sudo apt install terminator

You should find it in most of Linux distributions through the default repositories. But, if you need help installing, go through the GitHub page .

2. Guake Terminal

guake terminal 2

Key Highlights:

  • Tailored for quick access to terminal on GNOME
  • Works fast and does not need a lot of system resource
  • Shortcut key to access

Guake terminal was originally inspired by an FPS game Quake. Unlike some other terminal emulators, it works as an overlay on every other active window.

All you have to do is summon the emulator using a shortcut key (F12) and it will appear from the top. You get customize the width or position of the emulator, but most of the users should be fine with the default setting.

Not just as a handy terminal emulator, it offers a ton of features like ability to restore tabs, having multiple tabs, color-coding each tab, and more. You can check out my separate article on Guake to learn more.

How to install Guake Terminal?

Guake is available in the default repositories for most of the Linux distributions. You can refer to its official installation instructions .

Or if you’re using Debian-based distro, just type in the following command:

sudo apt install guake

3. Tilix Terminal

tilix screenshot

Key Highlights:

  • Tiling feature
  • Drag and drop support
  • Drop down Quake mode

Tilix Terminal offers a similar drop-down experience that you find with Guake – but it also lets you have multiple terminal windows in tiling mode.

This is particularly useful if you do not have tiling windows by default in your Linux distribution and have a big screen to work on multiple terminal windows without needing to switching between workspaces.

We’ve already covered it before separately if you’re curious to learn more about it.

How to install Tilix?

Tilix is available in the default repositories for most of the distributions. If you’re using Ubuntu-based distro, simply type in:

sudo apt install tilix

Recommended Read:

5 Tweaks to Customize the Look of Your Linux Terminal

5 Tweaks to Customize the Look of Your Linux Terminal

Want to beautify your Linux terminal and give it a different look? Here are a few ways you can customize your terminal.

4. Hyper

hyper screenshot

Key Highlights:

  • Terminal built on HTML/CSS/JS
  • Electron-based
  • Cross-platform
  • Extensive configuration options

Hyper is yet another interesting terminal emulator that is built on web technologies. It doesn’t provide a unique user experience, but looks quite different and offers a ton of customization options.

It also supports installing themes and plugins to easily customize the appearance of the terminal. You can explore more about it in their GitHub page .

How to install Hyper?

Hyper is not available in the default repositories. However, you can find both .deb and .rpm packages available to install through their official website .

If you’re new, read through the articles to get help using deb files and using RPM files .

5. Tilda

tilda terminal

Key Highlights:

  • Drop down terminal
  • Search bar integrated

Tilda is another drop-down GTK-based terminal emulator. Unlike some others, it focuses on providing an integrated search bar which you can toggle and also lets you customize many things.

You can also set hotkeys for quick access or a certain action. Functionally, it is quite impressive. However, visually, I don’t like how the overlay behaves and does not support drag and drop as well. You might give it a try though.

How to install Tilda?

For Ubuntu-based distros, you can simply type in:

sudo apt install tilda

You can refer to its GitHub page for installation instructions on other distributions.

6. eDEX-UI

Edex Ui Matrix Terminal

Key Highlights:

  • Sci-Fi Look
  • Cross-platform
  • Theme options to customize
  • Supports Multiple terminal tabs

If you’re not looking particularly for a terminal emulator to help you get your work done faster, eDEX-UI is something that you must try.

It is absolutely a beautiful terminal emulator for sci-fi fans and for users who just want their terminal to look unique. In case you didn’t know, it is heavily inspired from the TRON legacy movie.

Not just the design or the interface, overall, it offers you a unique user experience that you will enjoy. It also lets you customize the terminal . It does require a significant amount of system resource if you’re planning to try it.

You might want to check our dedicated article on eDEX-UI to know more about it and the steps to install it.

How to install eDEX-UI?

You can find it in some of the repositories that include AUR . In either case, you can grab a package available for your Linux distribution (or an AppImage file) from its GitHub releases section .

Recommended Read:

5 Tweaks to Customize the Look of Your Linux Terminal

5 Tweaks to Customize the Look of Your Linux Terminal

Want to beautify your Linux terminal and give it a different look? Here are a few ways you can customize your terminal.

7. Cool Retro Terminal

Cool Retro Term is a Vintage terminal emulator for Linux

Key Highlights:

  • Retro Theme
  • Animation/Effects to tweak

Cool Retro Terminal is a unique terminal emulator that provides you with a look of a vintage cathode ray tube monitor.

If you’re looking for some extra-functionality terminal emulator, this may disappoint you. However, it is impressive to note that it is decently light on resources and allows you to customize the color, effects, and fonts.

How to install Cool Retro Terminal?

You can find all the installation instructions for major Linux distributions in its GitHub page . For Ubuntu-based distros, you can type in the following in the terminal:

sudo apt install cool-retro-term

8. Alacritty

alacritty screenshot

Key Highlights:

  • Cross-platform
  • Extension options and focuses on integration

Alacritty is an interesting open-source cross-platform terminal emulator. Even though it is considered as something in “beta” phase, it still works.

It aims to provide you extensive configuration options while keeping the performance in mind. For instance, the ability to click through a URL using a keyboard, copying text to a clipboard, and performing a search using “Vi” mode may intrigue you to try it.

You can explore its GitHub page for more information.

How to install Alacritty?

Alacritty can be installed using package managers says the official GitHub page, but I couldn’t find it in the default repository or synaptic package manager on Linux Mint 20.1.

You can follow the installation instructions to set it up manually if you want to try it.

9. Konsole

konsole screenshot

Key Highlights:

  • KDE’s terminal
  • Lightweight and customizable

If you’re not a newbie, this probably needs no introduction. Konsole is the default terminal emulator for KDE desktop environments.

Not just limited to that, it also comes integrated with a lot of KDE apps as well. Even if you’re using some other desktop environment, you can still try Konsole. It is a lightweight terminal emulator with a host of features.

You can have multiple tabs and multiple grouped windows as well. Lot of customization options to change the look and feel of the terminal emulator as well.

How to install Konsole?

For Ubuntu-based distros and most other distributions, you can install it using the default repository. With Debian-based distros, you just need to type this in the terminal:

sudo apt install konsole

10. GNOME Terminal

Default Terminal

Key Highlights:

  • GNOME’s terminal
  • Simple yet customizable

If you’re utilizing any Ubuntu-based GNOME distribution, it already comes baked in. It may not be as customizable as Konsole (depends on what you’re doing) but it lets you configure most of the important aspects of the terminal easily.

Overall, it offers a good user experience and an easy-to-use interface with essential functions.

I’ve also covered a tutorial to customize your GNOME terminal if you’re curious.

How to install GNOME Terminal?

If you’re not using GNOME desktop but want to try it out, you can easily install it through the default repositories.

For Debian-based distros, here’s what you need to type in the terminal:

sudo apt install gnome-terminal

Wrapping Up

There are several terminal emulators available out there. You can try anything you like if you’re looking for a different user experience. However, if you’re aiming for a stable and productive experience, you need to test the terminal emulators before you can rely on them.

For most of the users, the default terminal emulators should be good enough. But, if you’re looking for quick access (Quake Mode) or Tiling feature or multiple windows in a terminal, feel free to try out the options mentioned above.

What’s your favorite terminal emulator on Linux? Did I miss listing your favorite? Feel free to let me know your thoughts in the comments down below.

  • chevron_right

    Mac utility Homebrew finally gets native Apple Silicon and M1 support

    news.movim.eu / ArsTechnica · Friday, 5 February, 2021 - 21:47

Users can install Homebrew via the Terminal in macOS.

Enlarge / Users can install Homebrew via the Terminal in macOS. (credit: Samuel Axon)

Popular Mac tool Homebrew has long been used by developers and others for package management on macOS, but as we lamented in our first M1 Mac review, it didn't support Apple Silicon when Apple's new Macs first launched late last year. Now, with the release of Homebrew 3.0.0, that's no longer the case: Homebrew now supports Apple Silicon natively, albeit not with every package.

The volunteer Homebrew team made the announcement on the Homebrew blog alongside today's release. While the native support is not yet comprehensive, it bridges the gap significantly, and users can still run Terminal via Rosetta 2 to do what they can't yet while running natively on Apple Silicon. The Homebrew blog post says "we welcome your help" in providing bottles for all packages moving forward.

Here's the full bullet point on Apple Silicon in the Homebrew 3.0.0 release notes:

Read 3 remaining paragraphs | Comments

index?i=Y0YKxkh9L7M:dCAmlYYs688:V_sGLiPBpWUindex?i=Y0YKxkh9L7M:dCAmlYYs688:F7zBnMyn0Loindex?d=qj6IDK7rITsindex?d=yIl2AUoC8zA
  • Li chevron_right

    Port complet de TapTempo en C# 9

    pubsub.eckmul.net / linuxfr · Sunday, 10 January, 2021 - 23:02 · 8 minutes

<h2 class="sommaire">Sommaire</h2> <ul class="toc"> <li><a href="#toc-les-sources">Les sources</a></li> <li><a href="#toc-pourquoi">Pourquoi ?</a></li> <li><a href="#toc-ce-qui-a-%C3%A9t%C3%A9-port%C3%A9">Ce qui a été porté</a></li> <li><a href="#toc-ce-qui-est-propre-%C3%A0-ce-port">Ce qui est propre à ce port</a></li> <li><a href="#toc-ce-que-jai-loup%C3%A9">Ce que j'ai loupé</a></li> <li><a href="#toc-note-%C3%A0-moi-m%C3%AAme">Note à moi-même</a></li> </ul> <p>Bonjour 'nal,</p> <p>Y'a plein de poussière ici dit moi. Faut dire que ça fait longtemps que je ne t'ai plus écrit.</p> <p>Ce WE, j'ai voulu faire honneur à Pierre Tramo avec un langage qui (à ses débuts) était une copie de Java avec quelques améliorations pour pas que le prof voit qu'on a copié sur le voisin.</p> <p>Je veux bien sûr parler de C#.</p> <h2 id="toc-les-sources">Les sources</h2> <p><a href="https://github.com/maximilien-noal/SharpTempo">C'est par là</a></p> <h2 id="toc-pourquoi">Pourquoi ?</h2> <p>Parce que j'en avais envie. Pour le fun. Parce que ça manquait (ou pas), surtout face au port Java.</p> <h2 id="toc-ce-qui-a-été-porté">Ce qui a été porté</h2> <p>Tout. Les traductions, les tests unitaires, le mode jeu, l'aspect orienté-objet, …</p> <h2 id="toc-ce-qui-est-propre-à-ce-port">Ce qui est propre à ce port</h2> <p>J'ai voulu utiliser au plus les possibilités modernes de C# 9 et précédents.</p> <p>Bon y'a pas de <a href="https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/may/csharp-8-0-pattern-matching-in-csharp-8-0">pattern matching</a> ni d'async/await ni de <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/stackalloc">stackalloc</a>, ni plein d'autres choses, mais c'est pour très une bonne raison : on en a pas besoin.</p> <p>Le point d'entré utilise des <em>top level statements</em> (C# 9) (et une lambda) :</p> <pre><code>using CmdTempo; using CommandLine; using CommandLine.Text; using LibTempo; // Set sentence builder to localizable SentenceBuilder.Factory = () =&gt; new LocalizableSentenceBuilder(); Parser.Default.ParseArguments&lt;Options&gt;(args).WithParsed((options) =&gt; Runner.RunOptions(options)); </code></pre> <p>Comme pour <a href="https://blog.stephencleary.com/2012/02/async-console-programs.html">async dans un point d'entrée de programme console</a>, ce n'est que du sucre syntaxique.<br> Le compilateur s'occupe de rajouter tout la sauce (namespace, classe statique, static void Main (string[] args)).</p> <p>Mais ça fait du bien à mes petits doigts potelés de ne pas avoir à l'écrire, et à mes yeux de ne pas avoir à les lire. Et ça, c'est bon !</p> <p>On utilise parfois des <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges">ranges</a> sur des chaînes de caractère (C# 8) :</p> <pre><code>return String.Format(Resource.SentenceMutuallyExclusiveSetErrors, names[0..^2], incompat[0..^2]); </code></pre> <p>C'est beaucoup plus rapide à écrire qu'avec <a href="https://docs.microsoft.com/en-us/dotnet/api/system.string.substring?view=net-5.0">SubString</a>, et ça me rappelle <a href="https://ruby-doc.org/core-2.5.1/Range.html">mes années Ruby</a>.</p> <p>Les options sont une classe essayant de forcer l'immutabilité (<a href="https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/">un record</a>) (C# 9) :</p> <pre><code>namespace LibTempo { using CommandLine; public record Options { public const uint DefaultSampleSize = 5; public const uint DefaultResetTime = 5; public const uint DefaultPrecision = 0; public const uint MaxPrecision = 5; [Option('g', "game", Required = false, Default = false, HelpText = nameof(IsGamingMode), ResourceType = typeof(Resource))] public bool IsGamingMode { get; } [Option('s', "sample-size", Required = true, Default = DefaultSampleSize, HelpText = nameof(SampleSize), ResourceType = typeof(Resource))] public uint SampleSize { get; } [Option('r', "reset-time", Required = true, Default = DefaultResetTime, HelpText = nameof(ResetTime), ResourceType = typeof(Resource))] public uint ResetTime { get; } [Option('p', "precision", Required = true, Default = DefaultPrecision, HelpText = nameof(Precision), ResourceType = typeof(Resource))] public uint Precision { get; } public Options(bool isGamingMode, uint sampleSize, uint resetTime, uint precision) { IsGamingMode = isGamingMode; SampleSize = sampleSize == 0 ? DefaultSampleSize : sampleSize; ResetTime = resetTime == 0 ? DefaultResetTime : resetTime; Precision = precision &gt; MaxPrecision ? MaxPrecision : precision == 0 ? DefaultPrecision : precision; } } } </code></pre> <p>On utilise des extensions pour faire croire que nous aussi on a Back, Front, et IsEmpty dans la classe générique <a href="https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.queue-1?view=net-5.0">Queue</a> (C# 2 pour les <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/">Generics</a> et 3 pour <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries">LINQ</a>, ça nous rajeunit pas) :</p> <pre><code>using System.Collections.Generic; using System.Linq; namespace LibTempo { internal static class QueueExtensions { public static bool IsEmpty&lt;T&gt;(this Queue&lt;T&gt; queue) =&gt; queue.Count == 0; public static T Back&lt;T&gt;(this Queue&lt;T&gt; queue) =&gt; queue.Last(); public static T Front&lt;T&gt;(this Queue&lt;T&gt; queue) =&gt; queue.First(); } } </code></pre> <p>On utilise partout des <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members"><em>expression body</em></a> pour des méthodes car les {} et return c'est <em>has-been</em> (C# 7) :</p> <pre><code>private double ComputeNewSecretBPM() =&gt; _betterRng.Next(50, 200); </code></pre> <p>On écrit le BPM avec la précision demandée <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">en utilisant beaucoup moins le clavier</a> et avec de l'<a href="https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/string-interpolation">interpolation</a> (C# 7) :</p> <pre><code>protected string BPMToStringWithPrecision(double bpm) =&gt; bpm.ToString($"G{_precision}", CultureInfo.CurrentCulture); </code></pre> <p>Et le pattern Fluent pour des tests plus rapidement écrits (mais ça c'est un package Nuget) :</p> <pre><code> [Fact] public void InvalidArsShouldReturnDefaultOptions() { var result = Parser.Default.ParseArguments&lt;Options&gt;(args: new string[] { "0", "0" }); result.Tag.Should().Be(ParserResultType.NotParsed); } </code></pre> <p>On a activé les <a href="https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references">Nullable Reference Types</a> partout, parce que c'est la gueere contre les NullReferenceExceptions depuis C# 8 (comme beaucoup de choses, C# a piqué ça à F# où NULL n'existe pas) :</p> <pre><code> &lt;Nullable&gt;enable&lt;/Nullable&gt; &lt;TreatWarningsAsErrors&gt;True&lt;/TreatWarningsAsErrors&gt; </code></pre> <p>Ainsi, un accès à null (qui provoque un crash) est détecté à la compilation et traité comme une erreur.<br> Mais je n'ai pas eu l’occasion d'utiliser les annotations, donc pas de code à montrer. Le compilateur n'a rien dit.</p> <h2 id="toc-ce-que-jai-loupé">Ce que j'ai loupé</h2> <p>J'aurais pu convertir le projet en <a href="https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.CodeConverter">VB.NET en un tour de main grâce au compilateur Roslyn</a>, afficher la console dans le navigateur avec <a href="https://github.com/ardacetinkaya/Blazor.Console">Blazor.Console</a>… Peut-être plus tard ?</p> <p>J'aurais pu aussi utiliser <a href="https://github.com/VitaliiTsilnyk/NGettext">NGetText</a> pour éviter les fichiers RESX et leur intrusion avec leurs clés en <a href="https://wiki.c2.com/?PascalCase">Pascal Case</a> dans le code, ce qui le rend moins lisible. Et ainsi garder le fichier .PO d'origine.</p> <pre><code>Console.WriteLine(Resource.HitEnterForEachTempoOrQToQuit); </code></pre> <p>Enfin, j'ai loupé mon week-end, et j'aurais pu me coucher plus tôt.</p> <p>Sacré Pierre Tramo !</p> <h2 id="toc-note-à-moi-même">Note à moi-même</h2> <p>Ce n'est pas parce que c'est plus facile de compiler et déboguer <a href="https://taptempo.tuxfamily.org/">TapTempo</a> quand on est sous Windows avec <a href="https://doc.ubuntu-fr.org/wsl">WSL</a> qu'il fallait forcément t'y intéresser !</p> <div><a href="https://linuxfr.org/users/xcomcmdr/journaux/port-complet-de-taptempo-en-c-9.epub">Télécharger ce contenu au format EPUB</a></div> <p> <strong>Commentaires :</strong> <a href="//linuxfr.org/nodes/122890/comments.atom">voir le flux Atom</a> <a href="https://linuxfr.org/users/xcomcmdr/journaux/port-complet-de-taptempo-en-c-9#comments">ouvrir dans le navigateur</a> </p>