bookmark_borderFedora KDE Enabling Third Party Repositories

As you may know, Fedora KDE 41 was released a couple of weeks ago.

I wanted to talk about a special feature that our colleague @farchord (with support from upstream developer @Nate Graham) has brought to our Fedora KDE distribution:

Enabling Third Party Repositories With A Single Click!

Thanks to the flexibility of plasma-welcome we can offer this feature 🙂

Right after installing Fedora and on first login you will be presented with the Plasma Welcome window:

Before you click on Skip , you can go through the different slides to read about KDE and Fedora and also to decide whether you want to contribute with anonymous metrics or not (note: I personally do not):

Here is where the interesting part comes in, on the next slide:

With a simple click of a button you will enable the most commonly requested by our users Third Party Repositories like rpmfusion! (note: you will be asked for your administrator password)

Once the request is processed, the message will change to:

That’s it! You have successfully enabled Third Party Repositories without needing to modify any file or running any command whatsoever 🙂

Before you do anything with your system and your new configuration, I will strongly recommend to update your system via Plasma Discover :

Proceed with all the update and reboot to get the latest and shiniest from our repositories.

Finally, to verify that the Third Party software is available, you can check:

And that is it!

Enjoy!

This is all thanks to farchord, siosm , aleasto and ngraham‘s work!

bookmark_borderKDE’s 6th Megarelease – RC1 on Fedora Rawhide!

After a few days of work the Fedora KDE SIG is proud to announce the availability of KDE 6th Megarelease Release Candidate 1 on Fedora Rawhide!

For those who like bleeding edge, feel free to try it!

We are very excited and looking forward to Fedora 40 + KDE 6 + Wayland only

Note: right now the update is sitting on testing. If you don’t want to wait a few hours until it reaches stable

You can access it via a dnf repository like:

[main]
cachedir=/var/cache/yum
debuglevel=1
logfile=/var/log/yum.log
reposdir=/dev/null
retries=20
obsoletes=1
gpgcheck=0
assumeyes=1
keepcache=1
install_weak_deps=0
strict=1

# repos

[build]
name=build
baseurl=https://kojipkgs.fedoraproject.org/repos/f40-build-side-81132/5738561/x86_64

bookmark_borderTesters needed: upgrade Fedora KDE with Discover!

This is a call for people out there to help us test the major version upgrades on Fedora KDE via Discover.

In short: no more Dnf System Upgrade for us!

A bit of context/history: for those of you who follow Nate’s blog you might already know what I am talking about. Thanks to the awesome work done by aleasto on this MR, we closed this bug.

There are, of course, a few quirks to solve but essentially it works.

The @kdesig team has enabled a COPR repository for those who want to help us test the upgrades from F37 to F38.

BIG FAT WARNING: Fedora 38 is still in BETA

I will now explain shorty what are the steps you need to follow to perform the upgrade via Discover:

First enable our COPR:

Now open Discover, go to the Update tab, click on Refresh and eventually on Update All:

Click on Restart Now to trigger the installation of our patched discover

Once you reboot, open Discover again and after a few seconds click on Upgrade to Fedora Linux 38:

Switch to the Update tab and wait until the progress bar finishes. Finally click on Update All:

Now be patient as many packages will need to be downloaded. When it finishes, you will be asked for your password:

Important note: there is a known bug which might trigger an error message at this point. If you see it, don’t panic, just close the message and click on Update All again. This time everything should work.

Time to Reboot, grab a coffee and after a few minutes… you shall boot into Fedora 38!!!

Please try it out and give us feedback on our Matrix room 🙂

Looking forward to your feedback!

bookmark_borderFZF: a general-purpose command-line fuzzy finder.

I wanted to share with everybody how I use this amazing tool on my day to day on the terminal.

First of all, what exactly is fzf?

As you can see on the title of this post and on the fzf website:

fzf is a general-purpose command-line fuzzy finder.

And what does that exactly mean? Well, in short, it searches through a list without needing to be 100% accurate. You type a couple of letters and it will give you results based on likelihood:

Fedora Setup

To have a basic setup just install the software:

sudo dnf install fzf

And add these lines to your .bashrc:

if [ -f /usr/share/fzf/shell/key-bindings.bash ];then
source /usr/share/fzf/shell/key-bindings.bash
fi

if [ -f /etc/bash_completion.d/fzf ];then
source /etc/bash_completion.d/fzf
fi

The bash_completion will help you with:

  • whenever you want to use parameters whenever you call fzf by pressing tab:
  • Trigger fzf on another command with **

And the key-bindings:

  • CTRL-T – Paste the selected files and directories onto the command-line:
  • CTRL-R – Paste the selected command from history onto the command-line:
  • ALT-C – cd into the selected directory:

Customization

By default, fzf uses find but I’ve found ripgrep to be faster, let’s use it:

export FZF_DEFAULT_COMMAND='rg --files \
                           --no-ignore \
                           --hidden --follow \
                           --glob "!.git/*"'

Explanation:

  • --files to search for files instead of searching inside the files.
  • --no-ignore to not respect ignore files (.gitignore, .ignore, etc.).
  • --hidden to also search for hidden files and directories as they are ignored by default.
  • --glob '!.git/*'to no look inside the .git folders.

Now to customize fzf‘s behavior:

export FZF_DEFAULT_OPTS="--border-label-pos=1 \
                         --border=rounded \
                         --height 50% \
                         --select-1 \
                         --multi \
                         --bind ctrl-j:down,ctrl-k:up \
                         --bind '?:toggle-preview' \
                         --preview='[[ \$(file --mime {}) =~ binary ]] \
                         && echo {} is a binary file \
                           || (bat --style=numbers --color=always {} \
                           || cat {}) 2> /dev/null | head -300'"

Explanation:

  • --border-label-pos=1 to set where our label will show (the default is in the center).
  • --border=rounded to use nice rounded borders for our window.
  • --height 50% use 50% of the available space for our window.
  • --select-1 don’t bother showing a window when there’s only one result and select it.
  • --multi allow selection of multiple elements (useful to run a command on multiple files).
  • --bind ctrl-j:down,ctrl-k:up to move up and down (note: conflicts with my tmux conf).
  • --bind '?:toggle-preview'to use ? to toggle the preview window.
  • --preview=... to get a nice preview of non-binary files. Note: warning here.

Specific configuration for history:

export FZF_CTRL_R_OPTS="--no-sort \
                        --layout=reverse \
                        --border-label='History '"

Explanation:

  • --no-sort to not the result.
  • --layout=reverse to display from the top of the screen.
  • --border-lablel='History 'to add a nice label to our window.

Specific configuration for files:

export FZF_CTRL_T_OPTS="--select-1 --exit-0 --border-label='Files '"

Explanation:

  • --select-1 don’t bother showing a window when there’s only one result and select it.
  • --exit-0 exit without error even when there are no results.
  • --border-label='Files ' to add a nice label to our window.

Specific configuration for directory:

export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -200' \
                       --border-label='Directories '"

I think this one doesn’t need any explaining 😉

Extras

I will explain more in a future post but for now I will give you a taste of what’s to come.

Fancy git log:

Vim integration:

References