fulmicotton

some random thoughts

We are looking at mainstream social media feeds such as Facebook's, Twitter's, Reddit's to get good contents and news. Let's reject using them, and adopt RSS with a curated list of blogs we truly like.


The impact of social media on time and mood is something I had experienced many times in the past. When I was using mainstream social media, I was unawarely spending my time on poor quality content. I identified two reasons for that.

The first issue were algorithms. They showed me things I already knew and agreed with, while they were completely hiding controversial stuff and new things I would have loved.

The second reason was quantity. Too many posts and too much misinformation, hatred, and unjustified criticism on everything. People look either fake or really frustrated on social media. I rarely witnessed sane and interesting discussions rising from a post on a social media, let alone from a comment.

The solutions

Quit mainstream social media now. Delete your accounts. Get rid of them. This is the first, immediate, thing you must do. Since when I did it a year ago, quality of my time improved dramatically. If for some reasons you must keep your account active, just make sure you only log-in, do the stuff you need, and log-out.

Don't ask an algorithm what to see. Just use your brain and your heart especially. Find and choose your own collection of websites, sources, blogs to periodically read. The trick is measuring out the quantity of sources. Choose them because you really like them, not only because you find them useful. Too many sources will be impossible to follow. Focus on quality instead and what matters to you.

Start adding blogs to your RSS reader as a hobby, and then see where this new habit leads you.


Mastodon and federated social media are an exception. They're different because they're slow, they won't hide you content, and they let you fully customize stuff on the feed. They're the best version of what social media can be.

If you want to learn something, you need to be able to explain it, to everyone, in simple words so that they can understand, regardless of their cultural and technical background.

Teaching something, with simple terms, requires knowing it at its deepest meaning. Taking such step is important to go from just knowing something to being confident about it.

To fully do it, you need to explain it to someone who has absolutely no clue about the subject. If you cannot transmit your knowledge to a young student or your grandma it means you cannot synthesize what you know into simple, understandable statements.

Take it as a mental game first

Picture yourself while explaining something you want to learn to a virtual group of students, or a friend. They don't have a clue on what you're going to tell them. You explain them everything from ground up, with words that are as simple as possible.

This is much more than a mental exercise: it forces you to organize your knowledge into small bits of information, externalize it using words, and then rephrasing and refreshing concepts that would otherwise be static and inevitably settled in your mind.

There are also benefits doing that. Picturing yourself in front of a virtual audience will train you to explain your stuff and points of view to a real audience – be it your boss, a friend of yours or an entire classroom. And of course, if you're not comfortable with the virtual classroom – or have no real person who wants to listen to you – you can write an essay instead as an exercise. Maybe you can even start a blog, if you love sharing your stuff like I do.

The more you learn to transmit informations efficiently, the better you will assimilate that knowledge.


As I told you, I will not follow the #100DaystoOffload challenge anymore. I will only post stuff as long as it is ready and well-baked. This is my new challenge: to share content I really like.

You can find me on Mastodon here.

This is maybe because I've always had a slow internet connection, or probably it's just something related to my cronic lazyness, but I've never been a fan of self-hosted cloud. I have nothing on any kind of cloud, and I don't use remote calendars, agendas, file storage – not even mentioning cloud services from big corporations such as Google Drive, One Drive, or MEGA (which was seized by the New Zealand's government in the past) – but I don't feel like I'm missing anything in my work and study day.

I, instead, use a simple tool to effectively synchronize some crucial folders between my machines, only when I need it, through LAN or internet: the tool in question is syncthing.

Syncthing is a program which allows you to create and manage nodes (each machine is a node) that can connect, interact and synchronize files organized in folders. When I said this is simple, I meant that only the following steps are required to have a completely working node of your network:

  1. install if from your repository or download the Windows executable;

  2. launch it (on Linux it is as simple as running the command syncthing)

And that's it! You now have a perfectly working node of your network.

Just create a different node in another machine of yours and run it – which can be accomplished in the same way – and then connect them with the help of the graphical interface. A local browser webpage should automatically open allowing customization (address should be 127.0.0.1 on port 8384) This is simple, too: copy your machine's syncthing ID (a long alphanumeric code) and paste it to the other machine. A request to create a connection between nodes should arrive.

Connection done, we can now add folders to the mix. After adding some folders, syncthing will quickly analyze them. You now can sync them with any other node in the network, by ticking a single box in the menus. Suddenly, a sync request appears. Accepting it, synchronization happens and every file in the folder will be securely transferred into the other node's folder and kept synchronized as long as syncthing is running on both machines. This works both on LAN and across the internet for remote devices.

You can shut it down when you're done. When you need it, just launch it on the nodes you wish to sync, and it will automatically start sending/receiving new files.

This is everything you need to get syncthing work. I really like it for its simplicity, it just runs and syncs files correctly, and allows me to safely share my working folders between my computers. I have no particular setup or configuration to show you – because it's so simple it just works with no further customization and I keep it almost default on my Linux and Android machines.


Post 12 of a 100 series, namely #100DaystoOffload challenge.

This one is my Mastodon's profile.

Three days ago I was watching some YouTube videos, when suddenly a vivid realization manifested in my mind: every single human being on Earth is living a life as intense as mine, as complex as mine, and as strange as mine. We live a life so fast and intricated we barely have enough time to realize we aren't alone in our travel – but surrounded by hundreds, thousands, millions, billions of people who can act, see, smell, touch, do things just like us. Other people will reach their goals like us, will fail like us, act silly like us, love like us, and experience all the range of emotions we feel, getting bored included. This was a bit mindblowing to me: such a simple though was so fundamental and 'obvious', I had never explored it in its totality.

This powerful sensation is called sonder!

A quick research on the internet revealed I'm not the only one who had such an epiphany: according to Urban Dictionary, the word sonder means

Briefly, “the realization that each random passerby is living a life as vivid and complex as your own.” Originally from the Dictionary of Obscure Sorrows, which has a lot more beautiful neologism definitions like this you might enjoy.

and many people experienced it around the world.

Sonder is the uttermost and complete realization we are not alone, a thing we often forget believing we are the main, unique characters of our own life. Remembering this feeling can help us approaching other people and treating them well – because they're just like us.

I know sometimes things aren't easy, neither we live in an ideal world where everyone doesn't hurt others. Yet sometimes, before approaching someone, just remember he's a human like you are, who has his own complex passions, his own goals and desires, and he's vividly experiencing many failures and flops. Just try to be kind to him/her.

And when arguing with another person, maybe something is wrong with him, and he lacks something important in his life. Just remember you could have been in his or her place.


This post was the eleventh of a hundred, for the #100DaystoOffload (it's a challenge where you write about cool stuff for 100 days).

I've a Mastodon account here. Write me there if you want to reach me.

My family problems aren't solved, and those deep troubles caused me to inevitably fail the exam I was planning to pass. The situation itself has been happening for months and is causing me anxiety disorders, mild depression and mental fatigue, while suffering by periodic nervous breakdowns, which summed up they costed me the remaining energy. I can barely stand this, with the help of my sweet girlfriend (I wholeheartedly say I could have never met a better person).

I won't reveal much details here in public, I can only say I have some family issues that prevented me studying and doing my stuff full-time and with my mind focussed on work.


Now, I'm here again. I am deeply sorry I complained here, probably not many of you wanted to read this kind of thoughts and confessions on a blog, but I felt the need to just speak about this.

Starting from tomorrow, I will keep on posting stuff here and write about things I love – at least I'm doing something I like really much.

Since I couldn't pass the exam, I will also post some of its topics and things I found curious about what I am currently studying.


This was #10 of #100DaystoOffload challenge, a challenge where you write at least a hundred posts in a year.

My Mastodon's profile if you want to contact me.

Approaching Day 10 of #100DaystoOffload, I am forced to pause a bit my writing activity. I am currently focusing on an important exam, which involves analysis and design of complex Digital and Analog Circuits. Along with the exam, many family issues and complications arose today. For at least the subsequent 10 to 15 days I will not post anything.

I will resume my activity after I will have taken the exam and solved my familiar problems.


Writing is both a relaxing and funny activity – it lets you to freely express yourself, your ideas, and forces you to put yourself at a stake. It encourages you to share your ideas with the world, to improve your expressive skills, to push yourself to new boundaries and discover new ideas by getting in touch with other people. But don't blog for other people – do it for yourself first; only then, and after you're really happy and fulfilled with what you're doing, plan to write for people.

Writing is a fantastic activity, and I wouldn't want to stop it. But after all, my blog is merely a hobby, and it comes after the real challenges life presents you with.


“And once the storm is over, you won’t remember how you made it through, how you managed to survive. You won’t even be sure, whether the storm is really over. But one thing is certain. When you come out of the storm, you won’t be the same person who walked in. That’s what this storm’s all about.”Haruki Murakami, Kafka on the Shore

In my previous post I've spoken about my note-taking system, which strives to be minimalistic, simple, funny and (hopefully) functional.

To write on it, I use Neovim. Neovim is a reborn Vim editor which is fully compatible with its parent. This means all the guides for Neovim and Vim will be almost certainly compatible, as well as the hotkeys.

This post will not cover Neovim basic hotkeys, nor will talk about how to build your own .vimrc. Instead, I will focus on the plugins I use for my notes system.

Vimwiki

I use vimwiki/vimwiki (github page) to transform my plain-text/markdown note into a powerful Wiki system. It will automatically do the syntaxing for those lines where the cursor is not present, and enable many useful things such as “diaries” for your notes, perform search, follow links, and many many other stuff. If you write in markdown, links are made this way, [Note description](/CUSTOM/PATH/another-note-to-link.md). To open it, put your cursor on the link and press Enter. Another tab with the note you clicked on will be opened. You can put there web URLs as well, they will be opened with your default browser by pressing Enter. This is the same as pressing gg to follow a path with Vim, and gx to open that path with an eXternal resource (such as a browser to open an URL).

I use kind of 2% of Vimwiki features, because that's all I need, and I don't want my system to be too complex or too feature-rich. That said, I often look for new, unexpected features. Vimwiki is a powerful Vim plugin, and I'm discovering new things each time I read the manual page at :help vimwiki.

Ctrlp

I really like what ctrlpvim/ctrlp.vim does. By pressing CTRL+P you open a fuzzy-finder that lets you open another file by searching its name on the list, then pressing Enter. That's it, it's all it does, with the exception of a few commands to improve your search experience. I use it to quickly find notes inside a neovim buffer.

Vim-figlet

Never heard of figlet? It's a command-line tool to create ASCII-text from text.

For example, with figlet "I Love Notes" you will get the following output

 ___   _                     _   _       _            
|_ _| | |    _____   _____  | \ | | ___ | |_ ___  ___ 
 | |  | |   / _ \ \ / / _ \ |  \| |/ _ \| __/ _ \/ __|
 | |  | |__| (_) \ V /  __/ | |\  | (_) | ||  __/\__ \
|___| |_____\___/ \_/ \___| |_| \_|\___/ \__\___||___/
                                                      

How is this related to notes?

Well, I use it to beautify a little my notes with cool titles on top of them.

After installing figlet as a requirement, I installed the fadein/vim-figlet plugin. To get an awesome title, this is what I do.

On the top of a note, I write

    ```
Awesome Title
    ```

and hover my cursor above the title. Then I simply run :FIGlet and the text over my cursor will be transformed in a big ASCII title!

The three accents ` which toggle code-snippets mode are necessary, otherwise your big ASCII title will see syntax highlighting applied on itself, which is not what we truly want.

If you don't like the ASCII font in use, you can try different flavours with :FIGlet -f <font_name>, I extensively use :FIGlet -f small because I find it elegant and not too space consuming.

The result will be like

    ```
   _                                 _____ _ _   _     
  /_\__ __ _____ ___ ___ _ __  ___  |_   _(_) |_| |___ 
 / _ \ V  V / -_|_-</ _ \ '  \/ -_)   | | | |  _| / -_)
/_/ \_\_/\_/\___/__/\___/_|_|_\___|   |_| |_|\__|_\___|
    ```

# Insert small title
Let's write the note now!
[...]

Vim-Airline

If the previous plugin wasn't really necessary, neither is this one. vim-airline/vim-airline and vim-airline/vim-airline-themes will just make your Vim/Neovim cooler, showing a cooler status-bar and a cooler tab-bar. What I really like of this plugin (apart from the appearance) is that it clearly shows open tabs and open buffers. I also add set noshowmode (Airline will handle it by itself) and a bunch of configurations:

        let g:airline_powerline_fonts = 1
        let g:airline#extensions#tabline#enabled = 1
        let g:airline#extensions#tabline#show_tabs = 1
        let g:airline#extensions#tabline#show_tab_count = 1

The first one, of course, will be supported only if you have powerline fonts installed.

A last (but optional) configuration is to select your default Airline theme, if it can't match the theme you're using.

Future improvements

I'm testing fzf for Vim, which is junegunn/fzf.vim. This plugin will quite surely improve my workflow and let me waste less time jumping from file to file.

I'm also testing Goyo+Limelight, from the same author as well. Those plugins aim to make your experience even more minimalistic and distractionless by hiding everything but text!

I'll make further articles about these plugins and other stuff I use to take notes.


This is post #8 of #100DaystoOffload challenge. My mastodon profile: @marcosg@fosstodon.org

This is post #7 of #100DaystoOffload challenge.

I'm an always-curious person, who can hardly focus on one thing at a time. When something does not inspire me or seems too tedious, I will struggle to work on it. This is why my personal note-taking system I ended up with has those simple requirements:

  • has to be easy to implement;
  • must require a little amount of time for organization of things, folders, and whatsoever – it has to be minimalistic and simple;
  • has to be method-agnostic, should be ultimately flexible;
  • and definitely has to be funny and stimulating.

My basic “ingredients” for this are just:

  • a computer, because on a today's computer you can create how many notes you want without consuming physical space. I use Linux;
  • a text-editor to edit notes in a language that allows you to create links between notes and follow them. I use neovim with vimwiki/vimwiki plugin and markdown for the quick syntax. Together they allow to create and follow a link just by pressing Enter;
  • a tool to quickly find filenames and note titles on your system. I use fzf;
  • a tool to search for file contents of your notes. I use ripgrep.

When you've chosen your tools that allow to perform these simple tasks when needed, you're ready to go.

My notes system works like this: each time you need a new note for a new subject or topic you create a different file (I use markdown, so for Operational Amplifiers topic I would go for something like operational-amplifiers.md) and write about that subject inside it with the text editor you've chosen. Plain simple. When you write about a topic, you probably will need to talk about other related topics. Those are handled just like a Wiki, you link them when required directly in the text, pointing to the other note files you wish.

For example, in your operational-amplifier.md file you need to know about BJTs; so you create another file bipolar-junction-transistors.md and write about them. You will then create a link somewhere in operational-amplifiers.md which requires knowledge of BJTs (in markdown this is [BJT](/CUSTOM/PATH/bipolar-junction-transistors.md). Of course, not only BJTs exist in electronics, therefore many other links pointing to other pages of knowledge will exists. Recursively, each of them may require further knowledge, to accomplish through linking other notes. This will end when you're satisfied with the result. The method can scale pretty well, and I used it to efficiently pass my previous exam about UML and C++.

I also found very useful to create my own “homepage”. I called it index.md because it's a kind of an index for my notes. There I throw all the links to my major topics, for example music.md, linux.md, university.md, programming.md, sysadmin.md, books.md, movies.md and the list goes on. These ones are very vast topics so they became pages as well, pointing to actual notes.

When I want to find notes I use one of these 3 methods: 1. I know where they are inside my system, so I just open index.md and follow the links; 2. I know their title, so I just use fzf to find and open them in neovim; 3. I use ripgrep and run rg <search_string> <folder> to find content inside notes, and figure out which one I should open.

All these methods take seconds at most, and this is the reason why I prefer this system: I don't have to spend a significant amount of time organizing notes into folders and multiple sub-folders if I can almost immediately find them with those tools, no matter where they are.

Linking to media files such as PDFs or websites is optional, and markdown+vimwiki supports it with the same syntax you use to link between notes.

Notice that this system is entirely flexible: if you don't want to organize things in small notes linking each other, you can always go for long texts inside a single note and link less pieces of information, or just implement different styles for different subjects. It's your choice to stick with a single method or use different styles.

Inside the single note you can use whatever style you prefer. For example, you can implement a Cornell Notes style or simply build your notes in a linear way, outlining your content.

/CUSTOM/PATH/ of your notes is up to you. I ended up with the most simple of choices: all notes inside a single folder. I can still easily reach them with fzf or ripgrep. If you feel uncomfortable with throwing all of your notes into a single folder, you can put them in folders and sub-folders, this is your choice. The most important thing is to find your balance, not wasting too much time into planning and organizing, and spending most of your time doing actual stuff.

In my next articles I will talk about my setup for this and some small goodies for this system.

Post #6 of #100DaystoOffload challenge

Today I wanted to try out this platform, wordsmith.social, and move here from bearblog.dev

Wordsmith is a micro-blogging platform which supports the ActivityPub protocol. This means this is an instance of the fediverse that can directly interact with Mastodon and the other fediverse platforms.

Bearblog was cool, and honestly I only wanted to try out this other one. Compared to Bearblog, it offers an even more minimal approach, it directly invites you to create a post, and start writing. It doesn't offer pages, nor distractions. Home page by default is simply your content in order of publication date. You can focus on pure writing.

I also want to stop with the Italian translation of all articles. I'm sorry, Italian readers (if any of you ever existed in the first place), but I realized it's not worthy to spend twice as much time translating the same piece of information in Italian.

For this reason, I may probably start a different blog in Italian, with different content, and for a different audience. This platform allows me to open other blogs with the same account, and this is a very nice feature.

So, for now I will keep on posting here.

Original date: 9/2/2021

If there's a single article category I cannot stand, it's that of “the 10 things to do after installing [INSERT DISTRO HERE]“. They're blatantly naive articles, that give the unexperienced user a lot of terrible suggestions. The user in question follows religiously those points, and then the distro is broken, often irreparably.

For example, many Fedora guides suggest Fedy as a third-party installation manager. What could go possibly wrong with that, right? The problem with Fedy is that all the repositories it adds are terrible. They will bring a lot of issues, and broken dependencies due to their unproper maintainance. In place of Fedy, it's really better to just pick up your common sense left, and get all your software from official sources, or well-maintained repositories. The risk to break Fedora is real, despite it being a rock-solid OS with a wonderful QA and recent software.

So, I'll try to remedy to the lack of a good Fedora starting point. Let's try to offer something really valid for new users, the 10 things to do after installing Fedora Workstation. For real.

Little disclaimer: this guide talks about Fedora Workstation, the GNOME desktop edition, which at the date of the article is on version 33. If you use one of the spins, this guide will work as long as you modify something (jump the parts related to GNOME Software for example, or using KDE software store (Discover)).

1. Update Fedora

A new version of Fedora is released every 6 months. Tipically, new versions are released at the end of April and October. This guarantees an optimal stability: kernel and other critical packages are rolling-release, while other fundamental packages see only security patches or occasional upgrades. Fedora Workstation (the defaul edition) runs the GNOME desktop environment. It is updated every six months together with the new Fedora version. Therefore, you will expect changes in GNOME funcionalities only when you upgrade to a new major version.

After installed, you need to update Fedora. Since the system can be months old, we must use a different command:

sudo dnf upgrade --best --refresh --allowerasing 
sudo dnf distro-sync

These commands may be used only after installation, and it's not strictly necessary to run them often. They force the system to upgrade to the latest version, refreshing metadata, choosing the best package versions, and removing/downgrading eventually uneeded packages. This last part is reserved to the distro-sync command.

After doing that, it's important to restart the system to apply the just installed updates. Not restarting now is not advised.

There are two ways to regularly update a Fedora system.

The first method is to check and install updates with the GNOME Software store. It's a graphical-based method, very intuitive and comfortable.

If you want more feedback, or if you prefer the terminal, you just run

sudo dnf upgrade

In every case, update Fedora regularly. You're welcomed to update it at least once a week, and restart to apply the just installed updates. Fedora will keep the latest three kernel versions installed, in case you needed to fallback to a previous one. This can be done in GRUB, during boot. This is NOT intended as a permanent solution, since older kernels suffer from grave vulnerabilities.

2. Install RPMFusion

Fedora is a Linux distribution that ships free software only (except needed firmware; that said, it will never be run on the CPU). For licensing reasons, programs infringing licenses cannot be shipped, nor with non-free licenses. Despite thousands of packages being in Fedora, this limitation is probably restrictive to many users (me included), that would like to use open source programs with licensing problems or other reasons (for example VLC and MPV, which include non-exactly-free codecs). I sometimes hear that Fedora cannot read mp3, this was true years ago, but now it is bullshit. However, this kind of issues are completely solved by RPMFusion. RPMFusion is an external repository, I would say it is THE external repository you would ever need on Fedora. It is divided into two repositories, the free one that contains free software with licensing issues, and the nonfree one which contains, for example, proprietary Nvidia drivers for your video card. The official website is this one. This repository, differently from many PPAs or AUR packages, its strictly maintained by Fedora maintainers and tested to work properly with the main system. It's some kind of a “semi-official extension” of Fedora.

I kindly suggest to install the free RPMFusion repository with the command

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

The nonfree repo instead, it's destined to users that need to install Nvidia proprietary drivers. You can install it with:

https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

If you enabled nonfree repo and you want to install Nvidia drivers, install the following package

sudo dnf install akmod-nvidia

and then restart to see the driver working.

What you should NOT do, is going to Nvidia website and download their drivers. Those are broken and completely unsuited for the fast upgrading pace of Fedora. Doing so, you will almost certainly break your Fedora.

Once enabled, you can simply install all the software they contain with the same dnf commands as explained in the next section.

3. Install some software with dnf

Fedora distributes thousands of packages. In its repository you can find all the main software you will need. The main method is with the package manager dnf. It is a powerful tool, despite being a bit slow, especially for people that come from Debian-based distros or from Arch Linux. The second method is through the GNOME Software. Just search for your software and click on “install”. This is the GUI method. I personally find it rather good and comfortable, but I still prefer the terminal. You will not be disappointed.

We have already seen that the ugprade is made with dnf upgrade. To install software you must use dnf install <package_name> To find package names you can use dnf search <search_string>. That way, package name will be searched inside the repositories.

For example, searching mpv with dnf search mpv, you get the output:

================================== Corrispondenza esatta per Name: mpv ===================================

mpv.x86_64 : Movie player playing most video formats and DVDs
================================ Name & Summary delle corrispondenze: mpv ================================
gnome-mpv.x86_64 : A simple GTK+ frontend for mpv
mpv-libs.x86_64 : Dynamic library for Mpv frontends
mpv-libs-devel.x86_64 : Development package for libmpv
mpv-mpris.x86_64 : MPRIS plugin for mpv
perl-Devel-Dumpvar.noarch : Pure-OO reimplementation of dumpvar.pl
vdr-mpv.x86_64 : A mpv player plugin for VDR
xt7-player-mpv.noarch : Qt/Gambas gui to mpv media player
===================================== Name delle corrispondenze: mpv =====================================
bumpversion.noarch : Version-bump your software with a single command
perl-Dumpvalue.noarch : Screen dump of Perl data
=================================== Summary delle corrispondenze: mpv ====================================
celluloid.x86_64 : A simple GTK+ frontend for mpv
deepin-movie.x86_64 : Deepin movie based on mpv
smplayer.x86_64 : A graphical frontend for mplayer and mpv

You can then install the powerful media-player with sudo dnf install mpv. Alternatively, you can install celluloid, a media-player based on mpv with a nicer GUI.

A list of programs I kindly suggest is the following:

  • ffmpeg: adds codec support to various softwares;
  • gimp: photo editing sofware. If you search gimp with dnf search it's possible to find all the optional plugins;
  • kdenlive: video editing software;
  • audacity-freeworld: version of Audacity with all the codecs from RPMFusion;
  • chromium-freeworld: Chromium version with all the codecs from RPMFusion;
  • blender: 3D modeling and video editing software;
  • git: VCS done right;
  • keepassxc: wonderful local password manager;
  • transmission: a torrent client;
  • telegram-desktop: Fedora's telegram version;
  • evolution-spamassassin: a complete e-mail manager, with spamassassin filter;
  • darktable: nice RAW editor for photos;
  • calibre: e-book reader;
  • tilix and tilix-nautilux: a terminal that can split horizontally or vertically;

and so on.

Uninstalling packages happens with the command dnf remove <package_name>. To get a list of all installed packages, just run dnf list --installed. Replacing the flag --installed with --all will print the complete list of available packages.

4. Enable flatpaks for proprietary programs you eventually need

Flatpak is an innovative open-source packaging technology, or a platform to create and distribute Linux applications. To make it short, it allows to install programs in a separate manner from the underlying operating system, inside a sandbox, that is able to isolate those programs from the OS.

At the momeny it's still an experimental technology, it suffers from many issues, some security issues (application update policy entirely depend by the package owner, and not by the maintainers from the distribution, libraries out of date with unfixed vulnerabilities), some other usability issues (it uses more disk space, doesn't properly support command-line, programs inside the sandbox can have less funcionalities, and so on). dnf and the main repository are virtually always preferred as the install method. However, flatpaks are great for proprietary software such as Microsoft Teams, Skype, Spotify, Discord and so on. They will be installed separately from the OS. You can also configure the sandbox with this in a second moment.

Flatpak “store” is the official website flathub.org. Following the instructions on the website, you enable the repository with the command

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

which will install flathub's repository for all the system's users. If you wish to install it for your user exclusively, it's sufficient to postpone the --user flag, namely

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user

If you're not sure about what to do, I advice you to use the flag --user, because this will never require sudo privileges to run. If you installed the repository with the flag, you should remember to put it everytime you run the command flatpak, or to choose the corresponding method to install a flatpak in the GNOME Software store (choose “user”, not “system”), in the top-right button.

To install flatpak software you can also go on flathub.org, find your software, and click “install”. It will download a file. Double-click on it, and install it with the GNOME store.

The classic way is with the console. Run flatpak install <flatpak_name> and eventually add --user flag. For example, if you wish to install Spotify you can run

flatpak install org.spotify.Client

it will install Spotify as a flatpak with all necessary flatpak dependencies. There are two ways to get the package name: * using flatpak search <search_string>; * going to flathub.org, searching your favourite program, and looking for the last part of the link.

Both methods are valid.

A program I kindly advice to install via flatpak is Steam (com.valvesoftware.Steam). Steam needs ancient libraries which are not properly provided by the recent versions of Fedora. Steam will benefit from the flatpak older libraries.

To update flatpaks in your system (do it at least once a week), you can use GNOME Software or flatpak update, eventually adding --user flag. Removal of packages is done by flatpak remove <flatpak_name>.

5. Some other goodies

Some applications using Qt framework, for example telegram-desktop, will suffer from clipboard issues and other things when running GNOME. To solve this, add the following line in /etc/environment,

QT_QPA_PLATFORM=xcb

and restart the system.

If you wish, you can install pulseeffects to enable audio quality improvements on the startup. To do so, just follow this part of the wonderful install script from Tobias Wolfshappen, an expert Fedora user.

It's sufficient to add to ~/.config/autostart/pulseeffects-service.desktop the following content:

Name=PulseEffects
Comment=PulseEffects Service
Exec=pulseeffects --gapplication-service
Icon=pulseeffects
StartupNotify=false
Terminal=false
Type=Application

This will enable pulseeffects service at startup.

To get a superior audio quality, in the same way let's create the file ~/.config/pulse/daemon.conf and put inside it the following:

default-sample-format = float32ne
default-sample-rate = 48000
alternate-sample-rate = 44100
resample-method = speex-float-10
high-priority = yes
nice-level = -18
realtime-scheduling = no
realtime-priority = 9
rlimit-rtprio = 9
avoid-resampling = yes

This way, you will get a better audio quality at the next reboot.

Another improvement is the antialiasing quality of system fonts. Execute gsettings set org.gnome.settings-daemon.plugins.xsettings antialiasing 'rgba' to set it from greyscale to rgba. This will work on GNOME only.

6. Get in touch with Fedora community

Fedora offers the chance to get in touch with the community (or simply, ask questions and require assistance) through many channels. I will briefly remind some of them:

Community is warm and welcoming. There are many channels dedicated to off-topic, such as Blue Hat. There are many other initiatives, and I invite you to check them out.

7. There's no other point

The things to do after installing Fedora shouldn't necessary be 10.

Additional tips

  • Here you can find out how to upgrade Fedora version.
  • Podman is a valid docker alternative. Here some interesting articles, and here the Arch Wiki page. Fedora natively supports only Podman, and docker is not fully supported on it. Podman can be used to fully replace docker with the same commands.
  • Despite snap exising on repositories, it's not completely supported on Fedora and has many issues. It's always better to prefer flatpak instead of snap.
  • If we want to declare a hierarchy when choosing a source to install a program from, it's the following order: official repository –> RPMFusion –> Flatpak –> COPR (they are very similar to Ubuntu PPAs) –> anything else.
  • It's possible to add a dock on GNOME installing gnome-tweaks and gnome-shell-extension-dash-to-dock, rebooting the system, launching Tweaks and enabling the extension. It's possible to configure it too, on Tweaks.

This was the end of the “list”, hope you found it useful. The rest is up to you, your curiosity and your tastes. I wish you good work and have fun on Fedora!