URL protocol handlers in basic Ubuntu Desktop
There was a way to register URL protocol handlers with Gconf, which is now obsolete and there seems to be no way to do the same with DConf (or Gsettings, its recommended wrapper).
How do one properly register an URL protocol handlers since DConf?
Additionally, something looks strange to me (as I don't understand it), on my Ubuntu 12.04
The protocol apt://
should be handled by the apturl
command. It is so with my Opera browser, but only because I added this specific association using the browser's configuration facility. Otherwise, in the rest of the environment:
- Running
xdg-open apt://foo.bar
openselinks
(mywww-browser
alternative). - Running
gnome-open apt://foo.bar
opens the Software Center. - Opening
gconf-editor
, I see a key/desktop/gnome/url-handlers/apt
whose value isapturl "%s"
and it's enabled. This configuration seems to be ignored, which is reasonably expected, as GConf is considered obsolete. - Opening
dconf-editor
, I can't see anything related to URL handlers or protocols in/desktop/gnome
It looks a bit messy to my eyes (just teasing with this wording, nothing bad)
What's underneath?
Side note: I'm looking for something which preferably works even when the full desktop environment is not loaded, like when running an i3wm session with only gsettings-daemon
(and other stuff unrelated to this case) loaded.
Update
Another way to “register” a protocol handler is with *.desktop
files and their MIME-Type; e.g. MimeType=application/<the-protocol>;
.
I found a /usr/share/applications/ubuntu-software-center.desktop
with this content:
[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
This one explains why gnome-open apt://foo.bar
opens the Software Center instead of apturl
.
So I installed this apturl.desktop
in ~/.local/share/applications
:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;
After update-desktop-database
and even after rebooting, both xdg-open
and gnome-open
still do the same and ignore this user desktop file, which as usual with user desktop‑files, should override the one in /usr/share/applications/
.
Maybe there is something special with desktop files specifying x-scheme-handler
MIME type and they are not handled the usual way.
The desktop‑file way does not answer the question.
gnome dconf url
add a comment |
There was a way to register URL protocol handlers with Gconf, which is now obsolete and there seems to be no way to do the same with DConf (or Gsettings, its recommended wrapper).
How do one properly register an URL protocol handlers since DConf?
Additionally, something looks strange to me (as I don't understand it), on my Ubuntu 12.04
The protocol apt://
should be handled by the apturl
command. It is so with my Opera browser, but only because I added this specific association using the browser's configuration facility. Otherwise, in the rest of the environment:
- Running
xdg-open apt://foo.bar
openselinks
(mywww-browser
alternative). - Running
gnome-open apt://foo.bar
opens the Software Center. - Opening
gconf-editor
, I see a key/desktop/gnome/url-handlers/apt
whose value isapturl "%s"
and it's enabled. This configuration seems to be ignored, which is reasonably expected, as GConf is considered obsolete. - Opening
dconf-editor
, I can't see anything related to URL handlers or protocols in/desktop/gnome
It looks a bit messy to my eyes (just teasing with this wording, nothing bad)
What's underneath?
Side note: I'm looking for something which preferably works even when the full desktop environment is not loaded, like when running an i3wm session with only gsettings-daemon
(and other stuff unrelated to this case) loaded.
Update
Another way to “register” a protocol handler is with *.desktop
files and their MIME-Type; e.g. MimeType=application/<the-protocol>;
.
I found a /usr/share/applications/ubuntu-software-center.desktop
with this content:
[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
This one explains why gnome-open apt://foo.bar
opens the Software Center instead of apturl
.
So I installed this apturl.desktop
in ~/.local/share/applications
:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;
After update-desktop-database
and even after rebooting, both xdg-open
and gnome-open
still do the same and ignore this user desktop file, which as usual with user desktop‑files, should override the one in /usr/share/applications/
.
Maybe there is something special with desktop files specifying x-scheme-handler
MIME type and they are not handled the usual way.
The desktop‑file way does not answer the question.
gnome dconf url
1
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34
add a comment |
There was a way to register URL protocol handlers with Gconf, which is now obsolete and there seems to be no way to do the same with DConf (or Gsettings, its recommended wrapper).
How do one properly register an URL protocol handlers since DConf?
Additionally, something looks strange to me (as I don't understand it), on my Ubuntu 12.04
The protocol apt://
should be handled by the apturl
command. It is so with my Opera browser, but only because I added this specific association using the browser's configuration facility. Otherwise, in the rest of the environment:
- Running
xdg-open apt://foo.bar
openselinks
(mywww-browser
alternative). - Running
gnome-open apt://foo.bar
opens the Software Center. - Opening
gconf-editor
, I see a key/desktop/gnome/url-handlers/apt
whose value isapturl "%s"
and it's enabled. This configuration seems to be ignored, which is reasonably expected, as GConf is considered obsolete. - Opening
dconf-editor
, I can't see anything related to URL handlers or protocols in/desktop/gnome
It looks a bit messy to my eyes (just teasing with this wording, nothing bad)
What's underneath?
Side note: I'm looking for something which preferably works even when the full desktop environment is not loaded, like when running an i3wm session with only gsettings-daemon
(and other stuff unrelated to this case) loaded.
Update
Another way to “register” a protocol handler is with *.desktop
files and their MIME-Type; e.g. MimeType=application/<the-protocol>;
.
I found a /usr/share/applications/ubuntu-software-center.desktop
with this content:
[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
This one explains why gnome-open apt://foo.bar
opens the Software Center instead of apturl
.
So I installed this apturl.desktop
in ~/.local/share/applications
:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;
After update-desktop-database
and even after rebooting, both xdg-open
and gnome-open
still do the same and ignore this user desktop file, which as usual with user desktop‑files, should override the one in /usr/share/applications/
.
Maybe there is something special with desktop files specifying x-scheme-handler
MIME type and they are not handled the usual way.
The desktop‑file way does not answer the question.
gnome dconf url
There was a way to register URL protocol handlers with Gconf, which is now obsolete and there seems to be no way to do the same with DConf (or Gsettings, its recommended wrapper).
How do one properly register an URL protocol handlers since DConf?
Additionally, something looks strange to me (as I don't understand it), on my Ubuntu 12.04
The protocol apt://
should be handled by the apturl
command. It is so with my Opera browser, but only because I added this specific association using the browser's configuration facility. Otherwise, in the rest of the environment:
- Running
xdg-open apt://foo.bar
openselinks
(mywww-browser
alternative). - Running
gnome-open apt://foo.bar
opens the Software Center. - Opening
gconf-editor
, I see a key/desktop/gnome/url-handlers/apt
whose value isapturl "%s"
and it's enabled. This configuration seems to be ignored, which is reasonably expected, as GConf is considered obsolete. - Opening
dconf-editor
, I can't see anything related to URL handlers or protocols in/desktop/gnome
It looks a bit messy to my eyes (just teasing with this wording, nothing bad)
What's underneath?
Side note: I'm looking for something which preferably works even when the full desktop environment is not loaded, like when running an i3wm session with only gsettings-daemon
(and other stuff unrelated to this case) loaded.
Update
Another way to “register” a protocol handler is with *.desktop
files and their MIME-Type; e.g. MimeType=application/<the-protocol>;
.
I found a /usr/share/applications/ubuntu-software-center.desktop
with this content:
[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
This one explains why gnome-open apt://foo.bar
opens the Software Center instead of apturl
.
So I installed this apturl.desktop
in ~/.local/share/applications
:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;
After update-desktop-database
and even after rebooting, both xdg-open
and gnome-open
still do the same and ignore this user desktop file, which as usual with user desktop‑files, should override the one in /usr/share/applications/
.
Maybe there is something special with desktop files specifying x-scheme-handler
MIME type and they are not handled the usual way.
The desktop‑file way does not answer the question.
gnome dconf url
gnome dconf url
edited Feb 21 '16 at 17:46
declension
28428
28428
asked Aug 21 '14 at 7:04
Hibou57Hibou57
6601622
6601622
1
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34
add a comment |
1
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34
1
1
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34
add a comment |
2 Answers
2
active
oldest
votes
Open ~/.local/share/applications/mimeapps.list
and add a line like:
x-scheme-handler/apt=apturl.desktop
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location ofmimeapps.list
may vary. I would suggest to run a search for the file name.
– Hibou57
Aug 16 '16 at 14:24
add a comment |
xdg-mime
Maybe more elegant (in this example I use "apt", change it for any other scheme):
- Check registered mime-types in
/usr/share/applications/defaults.list
. - Add the
apt.desktop
file to~/.local/share/applications/
or/usr/share/applications/
(here examples). - Build cache database of MIME types handled by desktop files:
update-desktop-database
Register a protocol with
xdg-mime default apt.desktop x-scheme-handler/apt`
This will append the new MIME Type for the scheme to
~/.local/share/applications/mimeapps.list
. You can register the new mime-type for all users on the systemsudo xdg-mime install --mode system <xml file>
.
Test with xdg-open "apt://foo.bar"
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f514125%2furl-protocol-handlers-in-basic-ubuntu-desktop%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Open ~/.local/share/applications/mimeapps.list
and add a line like:
x-scheme-handler/apt=apturl.desktop
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location ofmimeapps.list
may vary. I would suggest to run a search for the file name.
– Hibou57
Aug 16 '16 at 14:24
add a comment |
Open ~/.local/share/applications/mimeapps.list
and add a line like:
x-scheme-handler/apt=apturl.desktop
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location ofmimeapps.list
may vary. I would suggest to run a search for the file name.
– Hibou57
Aug 16 '16 at 14:24
add a comment |
Open ~/.local/share/applications/mimeapps.list
and add a line like:
x-scheme-handler/apt=apturl.desktop
Open ~/.local/share/applications/mimeapps.list
and add a line like:
x-scheme-handler/apt=apturl.desktop
answered Feb 26 '16 at 1:16
angelangel
10612
10612
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location ofmimeapps.list
may vary. I would suggest to run a search for the file name.
– Hibou57
Aug 16 '16 at 14:24
add a comment |
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location ofmimeapps.list
may vary. I would suggest to run a search for the file name.
– Hibou57
Aug 16 '16 at 14:24
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
Ya, I could figure it for HTTP, MAILTO and some others.
– Hibou57
Feb 26 '16 at 20:29
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
There is no such folder. I did a search from root, and didn't find it.
– Vlas Bashynskyi
Aug 12 '16 at 13:58
@VlasBashynskyi, the location of
mimeapps.list
may vary. I would suggest to run a search for the file name.– Hibou57
Aug 16 '16 at 14:24
@VlasBashynskyi, the location of
mimeapps.list
may vary. I would suggest to run a search for the file name.– Hibou57
Aug 16 '16 at 14:24
add a comment |
xdg-mime
Maybe more elegant (in this example I use "apt", change it for any other scheme):
- Check registered mime-types in
/usr/share/applications/defaults.list
. - Add the
apt.desktop
file to~/.local/share/applications/
or/usr/share/applications/
(here examples). - Build cache database of MIME types handled by desktop files:
update-desktop-database
Register a protocol with
xdg-mime default apt.desktop x-scheme-handler/apt`
This will append the new MIME Type for the scheme to
~/.local/share/applications/mimeapps.list
. You can register the new mime-type for all users on the systemsudo xdg-mime install --mode system <xml file>
.
Test with xdg-open "apt://foo.bar"
add a comment |
xdg-mime
Maybe more elegant (in this example I use "apt", change it for any other scheme):
- Check registered mime-types in
/usr/share/applications/defaults.list
. - Add the
apt.desktop
file to~/.local/share/applications/
or/usr/share/applications/
(here examples). - Build cache database of MIME types handled by desktop files:
update-desktop-database
Register a protocol with
xdg-mime default apt.desktop x-scheme-handler/apt`
This will append the new MIME Type for the scheme to
~/.local/share/applications/mimeapps.list
. You can register the new mime-type for all users on the systemsudo xdg-mime install --mode system <xml file>
.
Test with xdg-open "apt://foo.bar"
add a comment |
xdg-mime
Maybe more elegant (in this example I use "apt", change it for any other scheme):
- Check registered mime-types in
/usr/share/applications/defaults.list
. - Add the
apt.desktop
file to~/.local/share/applications/
or/usr/share/applications/
(here examples). - Build cache database of MIME types handled by desktop files:
update-desktop-database
Register a protocol with
xdg-mime default apt.desktop x-scheme-handler/apt`
This will append the new MIME Type for the scheme to
~/.local/share/applications/mimeapps.list
. You can register the new mime-type for all users on the systemsudo xdg-mime install --mode system <xml file>
.
Test with xdg-open "apt://foo.bar"
xdg-mime
Maybe more elegant (in this example I use "apt", change it for any other scheme):
- Check registered mime-types in
/usr/share/applications/defaults.list
. - Add the
apt.desktop
file to~/.local/share/applications/
or/usr/share/applications/
(here examples). - Build cache database of MIME types handled by desktop files:
update-desktop-database
Register a protocol with
xdg-mime default apt.desktop x-scheme-handler/apt`
This will append the new MIME Type for the scheme to
~/.local/share/applications/mimeapps.list
. You can register the new mime-type for all users on the systemsudo xdg-mime install --mode system <xml file>
.
Test with xdg-open "apt://foo.bar"
edited Jan 22 at 19:29
answered Apr 8 '18 at 19:04
Pablo BianchiPablo Bianchi
2,4751532
2,4751532
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f514125%2furl-protocol-handlers-in-basic-ubuntu-desktop%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
This may help: unix.stackexchange.com/a/100736
– Todd Owen
Oct 11 '14 at 1:34