Junction lets you choose the application to open files and links.
Set Junction as the default application for a resource and let it do the rest. Junction will pop up and offer multiple options to handle it.
Set Junction as default browser
xdg-settings set default-web-browser re.sonny.Junction.desktop
Set Junction as default for all files
xdg-mime default re.sonny.Junction.desktop x-scheme-handler/file
Please note that this may not be respected by all applications but the command xdg-open
will.
Set Junction as default for png
xdg-mime default re.sonny.Junction.desktop image/png
Set Junction as default email composer
xdg-settings set default-url-scheme-handler mailto re.sonny.Junction.desktop
Set Junction as default folder opener
xdg-settings default re.sonny.Junction.desktop inode/directory
Keyboard navigation
Use the menu or <Ctrl>?
to learn about Keyboard usage.
Open with multiple applications
Use middle-click to keep Junction open - allowing you to open the resource in multiple applications.
Make Junction appear in the center of the screen
On GNOME you can make all new windows open in the center using
gsettings set org.gnome.mutter center-new-windows true
Use Junction from the terminal
Create a permant alias, for example alias open="flatpak run re.sonny.Junction"
.
Then you can use open my-file
.
Add custom scripts to Junction
You can add your own script to Junction by creating a .desktop
file for it in ~/.local/share/applications
.
See https://wiki.archlinux.org/title/desktop_entries (distro agnostic).
Open links on a website with Junction
If you want links on your favorite websites to open Junction, set it as the default browser and use Tangram.
A browser extension might be coming.
Multiple Firefox profiles
See Profile Manager - Create, remove or switch Firefox profiles
If you want to be able to choose the Firefox profile to open the resource with, you can make desktop files for your Firefox profiles in ~/.local/share/applications
.
Here is an example ~/.local/share/applications/firefox-work.desktop
[Desktop Entry]
Version=1.0
Name=Firefox work
Exec=firefox -P work --class=firefox-work %u
Icon=firefox
Terminal=false
Type=Application
StartupWMClass=firefox-work
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Save, run update-desktop-database ~/.local/share/applications
, enjoy.
I can't distinguish between options with the same icon
Within Junction, you can toggle Show names
in the menu or hover the application with the mouse to display a tooltip.
Otherwise, you can edit the desktop files to use distinctive icons, here are a some tools
My app doesn't show up
If the application was installed via Flatpak, the package manager or an other conventional way, feel free to open an issue.
Make sure the application desktop file has a MimeType
key that matches the type of resource you want it to handle. For example if you want the application ~/.local/share/applications/my-custom-browser.desktop
to handle web content; add the following MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
.
The desktop filename should be unique. Junction can't display both /usr/share/applicatins/firefox.desktop
and ~/.local/share/applications/firefox.desktop
. The second overrides the first.
Finally - make sure to run update-desktop-database ~/.local/share/applications
after installing a desktop file.
Where are desktop files located ?
- System
/usr/share/applications
- User
~/.local/share/applications
- Flatpak system
/var/lib/flatpak/exports/share/applications/
- Flatpak user
~/.local/share/flatpak/exports/share/applications/
linuxunplugged.com - Episode 433 The Lessons of Jellyfin - 11/2021
cd Junction
./re.sonny.Junction https://www.gnome.org/
Make changes and press <Primary><Shift>Q
on the Junction window to restart it.
Use <Primary><Shift>I
to open the inspector.
To setup development version as default application first install the desktop file with
cd Junction
make dev
To pass the tests you have to install a few dependencies
# Install development dependencies
sudo dnf install --assumeyes npm flatpak make desktop-file-utils gjs gtk4-devel libadwaita-devel
cd Junction
npm install
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user --assumeyes --noninteractive flathub org.freedesktop.appstream-glib
# Run tests
make test
Bookmarks
i18n
# To update the pot file
# xgettext -f po/POTFILES -o po/re.sonny.Junction.pot --no-wrap -cTRANSLATORS --from-code=UTF-8
# sed -i "s/Project-Id-Version: PACKAGE VERSION/Project-Id-Version: re.sonny.Junction/" po/re.sonny.Junction.pot
meson compile re.sonny.Junction-pot -C build
# To create a translation
# msginit -i po/re.sonny.Junction.pot -o po/fr.po -l fr_FR.UTF-8
echo -n " fr" >> po/LINGUAS
meson compile re.sonny.Junction-update-po -C build
# To update translations
# msgmerge -U po/*.po po/re.sonny.Junction.pot
meson compile re.sonny.Junction-update-po -C build
Publish new version
meson compile re.sonny.Junction-update-po -C build
- Update version in
meson.build
- git tag
- flathub
host
cd Junction
meson --prefix $PWD/install build
ninja -C build install
Flatpak
Use GNOME Builder or
cd Junction
flatpak-builder --user --force-clean --repo=repo --install-deps-from=flathub flatpak re.sonny.Junction.json
flatpak --user remote-add --no-gpg-verify --if-not-exists Junction repo
flatpak --user install --reinstall --assumeyes Junction re.sonny.Junction
user
~/.local/bin
must be in $PATH
cd Junction
meson --prefix ~/.local build
ninja -C build install
system
cd Junction
meson build
ninja -C build install
uninstall
cd Junction
ninja -C build uninstall
© 2021 Sonny Piers
GPLv3 or later. Please see COPYING file.