Skip to content

Instantly share code, notes, and snippets.

@curioswati
Last active October 11, 2024 21:49
Show Gist options
  • Save curioswati/668e9e120ddd4b6f8d07dc28b5780d22 to your computer and use it in GitHub Desktop.
Save curioswati/668e9e120ddd4b6f8d07dc28b5780d22 to your computer and use it in GitHub Desktop.
To run flatpak installed apps from dmenu.

To run a flatpak app from dmenu, you can create a symlink for the app in /usr/bin. You can find the flatpak apps binary link in /var/lib/flatpak/exports/bin/ on ubuntu. E.g. to run Rocket Chat (installed from flatpak via software center), you can do something like this:

sudo ln -s /var/lib/flatpak/exports/bin/chat.rocket.RocketChat /usr/bin/rocket-chat

This way you will be able to find it in the dmenu.

Resources:

@viggo-wellme
Copy link

Thank you so much! ❤️

@orowith2os
Copy link

Please don't do this, and instead add a directory to your PATH. It's a lot less hacky.

https://theevilskeleton.gitlab.io/2022/09/28/what-not-to-recommend-to-flatpak-users.html

@AngelJumbo
Copy link

AngelJumbo commented Nov 25, 2022

I solve this by using a script that generates shell scripts of every flatpak app

#!/bin/sh

flatpak run <app>

https://github.com/AngelJumbo/flat-bin

@fislysandi
Copy link

fislysandi commented Dec 5, 2022

@AngelJumbo kind stranger can you do something like this? * .firefox. *=firefox i will shit myself if you can do so.

im a complete noob at bash scripting and this would allow me easily execute my apps with bmenu

plus im working on a debian rice that is not arch so ability to be able to easily launch pretty much up to date apps while being not on ahem ROLLING DIISTROO ARCHBINGUS .

it will feel so good not rolling a russian roulette each time i update.

@fislysandi
Copy link

wait i figured out how to cut .appname. ill upgrade your script shortly so you will not requre to type in weird naming

@AngelJumbo
Copy link

  • .firefox. *=firefox

@fislysandi I don't understand what is that, if it is a flatpak I already link my script in my other comment the only downside is that you have to run it every time that you install a new flatpak.

@fislysandi
Copy link

vmware_Btj2KZUKxX

@fislysandi
Copy link

fislysandi commented Dec 5, 2022

reason why i only need to cut out com. and org. is because sometimes some maintainers like to name their apps org."company"."appname", and org."appname"."company" if spotify and other apps just named like "company"."appname" my modification of the script wouldve been 100 % functional and basically cut out all the pain from flatpaks allowing to launch them without weird naming.

@fislysandi
Copy link

ok ill come back here tomorrow.

@AngelJumbo
Copy link

@fislysandi In general it's not a good idea to have a flatpak named like a regular binary, but if it works for you...... just avoid installing the same app from your regular package manager.

@AngelJumbo
Copy link

reason why i only need to cut out com. and org. is because sometimes some maintainers like to name their apps org."company"."appname", and org."appname"."company" if spotify and other apps just named like "company"."appname" my modification of the script wouldve been 100 % functional and basically cut out all the pain from flatpaks allowing to launch them without weird naming.

btw my script already cuts those parts....

@fislysandi
Copy link

fislysandi commented Dec 7, 2022

hey i did it the other way so the app is named like this FirefoxFlatpak
i just had to change some things and i didnt need cut command

@kliarist
Copy link

Nice one thanks

@fislysandi
Copy link

fislysandi commented Jan 18, 2023

hey does anybody does know how to convert a variable into lowercase? i just need only this and i can post an improved version of flat-bin

the apps will be named like this lowercase(*)flatpak

@alissonzuza
Copy link

alissonzuza commented Feb 13, 2023

In fedora I made this configuration below and when running dmenu it now correctly picks up the bins of the flatpaks
I use i3wm

1.To edit
vi /usr/bin/dmenu_run

  1. Add line export

#!/usr/bin/sh
export PATH=$PATH:/var/lib/flatpak/exports/bin
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &

Here it worked correctly

When in doubt, do a search where the dmenu_run file is
sudo find / -iname "dmenu_run"

@A350
Copy link

A350 commented Aug 17, 2023

Gracias !!!!

@OnePieceJoker
Copy link

Thanks

@revsuine
Copy link

Lifesaver!

@mlaiseca3
Copy link

I found the path to be as follows:
For system installations, the directory is located at /var/lib/flatpak/exports/bin. For user installations, it’s located at ~/.local/share/flatpak/exports/bin.

thus, my dmenu_run file looked like the following (simlar to alissonzuza's)

#!/usr/bin/sh
export PATH=$PATH:~/.local/share/flatpak/exports/bin
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &

for context im using dwm and not i3

@alissonzuza
Copy link

Achei o caminho o seguinte: Para instalações do sistema, o diretório está localizado em /var/lib/flatpak/exports/bin. Para instalações do usuário, ele está localizado em ~/.local/share/flatpak/exports/bin.

assim, o meu dmenu_run arquivo ficou com o seguinte (simlar para alissonzuza)

#!/usr/bin/sh
export PATH=$PATH:~/.local/share/flatpak/exports/bin
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &

para IM de contexto usando DWM e não i3

I believe that to be perfect it could be EXPORT like below
Considering system and user
export PATH=$PATH:/var/lib/flatpak/exports/bin:~/.local/share/flatpak/exports/bin

@flavioipiranga
Copy link

Thank you!

@mondskiez
Copy link

mondskiez commented Oct 9, 2024

The best approach I found was using i3-dmenu-desktop.

1. Search for then change the `dmenu_run` in the i3config or if you have the default config you'll see alternatives slightly below the default line for `dmenu_run`.

2. Adjust accordingly using `rofi` or `i3-dmenu-desktop` by commenting/uncommenting.

Both rofi and i3-dmenu-deskotp ran on my system to display flatpaks without any other changes to the system.

This is the best answer so far.. nothing to do but to add a binding in the config

bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop

then reload config.. then execute the binding and i3-dmenu-desktop give you list of apps that can run in the desktop, INCLUDING the flatpaks..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment