Snap applications don't show up after re-login using fish shellPrograms installed via snap not showing up in...
Adding empty element to declared container without declaring type of element
Why this xss doesn't work?
Is possible to search in vim history?
Can a significant change in incentives void an employment contract?
How do you respond to a colleague from another team when they're wrongly expecting that you'll help them?
A social experiment. What is the worst that can happen?
Why is this a proof by contradiction for this algorithm? Isn't this a direct proof instead?
If a character with the Alert feat rolls a crit fail on their Perception check, are they surprised?
Is there a problem with hiding "forgot password" until it's needed?
Can the Supreme Court overturn an impeachment?
What does the Rambam mean when he says that the planets have souls?
Why did the EU agree to delay the Brexit deadline?
Is camera lens focus an exact point or a range?
Divine apple island
How do I implement a file system driver driver in Linux?
What (else) happened July 1st 1858 in London?
Should my PhD thesis be submitted under my legal name?
Why does the integral domain "being trapped between a finite field extension" implies that it is a field?
Can I rely on these GitHub repository files?
When quoting, must I also copy hyphens used to divide words that continue on the next line?
Engineer refusing to file/disclose patents
Can somebody explain Brexit in a few child-proof sentences?
Which Versions of Magento 2 are latest till date?
Can I sign legal documents with a smiley face?
Snap applications don't show up after re-login using fish shell
Programs installed via snap not showing up in LauncherWhy does custom launcher behavior differ in the Dash and other means of launching?fish shell can not tab completeUpdate to saucy broke dashFish shell as defaultHow to type a function using alias in fish shell?command not found when using nvm in fish shellWhy do snap packages disappear when using the Fish shell?Visual studio code can't runSnap-installed app doesn't put icon into launcherWhy are snaps and regular apt packages both provided in ubuntu 18.04
On Ubuntu 18.04 I've changed my shell to fish via
chsh -s `which fish`
I've installed Maillspring and Visual Studio Code snap apps, they installed fine and could be launched from the dash initially, but after logging in and logging back out none of them showed up in the dash anymore.
Searching for them in software store shows that are installed and I can launch them from there.
Why will the default shell matter for this?
unity-dash snap fish
add a comment |
On Ubuntu 18.04 I've changed my shell to fish via
chsh -s `which fish`
I've installed Maillspring and Visual Studio Code snap apps, they installed fine and could be launched from the dash initially, but after logging in and logging back out none of them showed up in the dash anymore.
Searching for them in software store shows that are installed and I can launch them from there.
Why will the default shell matter for this?
unity-dash snap fish
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
Which version of Ubuntu? Do the snaps run fine when run from thefishshell?
– muru
May 15 '18 at 8:17
@estibordo I did.
– Calin
May 15 '18 at 9:31
add a comment |
On Ubuntu 18.04 I've changed my shell to fish via
chsh -s `which fish`
I've installed Maillspring and Visual Studio Code snap apps, they installed fine and could be launched from the dash initially, but after logging in and logging back out none of them showed up in the dash anymore.
Searching for them in software store shows that are installed and I can launch them from there.
Why will the default shell matter for this?
unity-dash snap fish
On Ubuntu 18.04 I've changed my shell to fish via
chsh -s `which fish`
I've installed Maillspring and Visual Studio Code snap apps, they installed fine and could be launched from the dash initially, but after logging in and logging back out none of them showed up in the dash anymore.
Searching for them in software store shows that are installed and I can launch them from there.
Why will the default shell matter for this?
unity-dash snap fish
unity-dash snap fish
edited May 15 '18 at 14:03
Calin
asked May 6 '18 at 0:29
CalinCalin
3002415
3002415
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
Which version of Ubuntu? Do the snaps run fine when run from thefishshell?
– muru
May 15 '18 at 8:17
@estibordo I did.
– Calin
May 15 '18 at 9:31
add a comment |
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
Which version of Ubuntu? Do the snaps run fine when run from thefishshell?
– muru
May 15 '18 at 8:17
@estibordo I did.
– Calin
May 15 '18 at 9:31
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
Which version of Ubuntu? Do the snaps run fine when run from the
fish shell?– muru
May 15 '18 at 8:17
Which version of Ubuntu? Do the snaps run fine when run from the
fish shell?– muru
May 15 '18 at 8:17
@estibordo I did.
– Calin
May 15 '18 at 9:31
@estibordo I did.
– Calin
May 15 '18 at 9:31
add a comment |
4 Answers
4
active
oldest
votes
The command you had originally in your question chsh -s which bash was as you say a typo which caused a great deal of confusion around your question. Even if it had been properly formed with the ` symbols around which bash as shown below.

it would change the shell to bash (the default). To change the shell to fish use

or simply use the command chsh and enter the path to the shell you want to use. See below:
me@zippy-64bit:~$ chsh
Password:
Changing the login shell for me
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
For more information on the fish shell see this.
EDIT: Regarding snap packages: Will the default shell matter? the answer is possibly, as it depends on the assumptions made by and the approach taken by the programmer. Refer to the differences in how bash and how fish handle things in the previous link. For example fish has no implicit subshell which can cause surprising side effects in variable assignment for the programmer that is expecting behavior similar to bash. There's a good example of an expectation of an implicit subshell in the question here.
Why? In an attempt to clarify it appears that the concept of inheritance is handled differently between fish and other more common shells like bash. My understanding is that this can result in unexpected behavior from pipes, loops, and functions (All of which are commonly used programming strategies).
The programmer may also be relying on shell builtins which either may not exist in fish or may be implemented in an unexpected fashion.
Sources:
man chsh
fishon Wikipediasubshells on Unix & Linux
Related post on SuperUser.com
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
|
show 5 more comments
Same problem here (Ubuntu 18.10): after chsh -s `which fish`, Gnome Shell does not find snapp apps anymore, even after adding /snap/bin to the $PATH.
My workaround:
- open terminal
- go to Preferences, click on your profile then command tab, tick "run a custom command instead of my shell" then in custom command put
fish. - do this for every profile

After that, starting Gnome-Terminal (either from Gnome Shell or with Ctrl+Alt+T) will launch the Fish shell, but the system shell will still be Bash so nothing breaks.
However this means that other applications spawning a user-facing shell (Visual Studio Code for instance) may require customization as well to use Fish instead of Bash.
add a comment |
There is a TL;DR at the bottom.
For gnome-shell to be able to start Snaps it needs two things (values in brackets are on my Fedora 29 desktop which has the same problem):
- PATH to include Snap (
/var/lib/snapd/snap/bin) - XDG_DATA_DIRS to the Snap Desktop files (
/var/lib/snapd/desktop)
These variables are configured in /etc/profile.d/snapd.sh via /etc/profile conventional bash start-up.
When you switch to fish to whole /etc/profile start-up is skipped.
Since most distros assume the usage of bash and install configuration scripts into /etc/profile.d, simply chsh -s /bin/fish will not use them. Snaps not being found by gnome-shell is one such symptom.
The best solution I have so far is to use fish only an interactive shell and leave bash in place to do the other housekeeping.
TL;DR
Leave the user default shell as bash:
chsh -s /bin/bash
Within ~/.bashrc have the following:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -z "$BASH_EXECUTION_STRING" ]; then
exec /bin/fish
fi
For the bash --login case (as invoked via X11/Wayland) remove ~/.profile and add .bash_profile (make it bash specific):
# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
add a comment |
The snaps that you have installed, can be found in /snap/bin/
You need to have that directory in your $PATH.
Ubuntu automatically adds /snap/bin to your $PATH.
It happens in /etc/profile.d/apps-bin-path.sh which runs when you get a login shell.
I checked, and fish also adds /snap/bin into $PATH so normally it should be fine.
Can you show us the output of the command
echo $PATH
If the output has /snap/bin, then congratulations you have found a bug in Ubuntu and you can file a report on Launchpad for it.
addition: Ubuntu internally probably uses $SHELL for some of the scripting. The fish shell is not 100% compatible with bash and it looks like this is the cause of the problem. It is a common issue when you change your login shell to something other than bash. See, for example, this report https://youtrack.jetbrains.com/issue/CPP-2919 with users changing their shell to /bin/tcsh.
You need to file a bug report to Ubuntu so that someone investigates and fixes the internal scripting to work with fish. If you really love fish, that's what you need to do. ;-)
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command waschsh -s fish. That means that the user changed the login shell forroot, not for the non-root user account. Still a bug, but a more delicate one.
– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. Seeman chshfor more information. Cheers! ;-)
– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, andfishis not 100% compatible withbash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL tobash. No more fish for them.
– Simos
May 19 '18 at 7:34
|
show 1 more 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%2f1032581%2fsnap-applications-dont-show-up-after-re-login-using-fish-shell%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
The command you had originally in your question chsh -s which bash was as you say a typo which caused a great deal of confusion around your question. Even if it had been properly formed with the ` symbols around which bash as shown below.

it would change the shell to bash (the default). To change the shell to fish use

or simply use the command chsh and enter the path to the shell you want to use. See below:
me@zippy-64bit:~$ chsh
Password:
Changing the login shell for me
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
For more information on the fish shell see this.
EDIT: Regarding snap packages: Will the default shell matter? the answer is possibly, as it depends on the assumptions made by and the approach taken by the programmer. Refer to the differences in how bash and how fish handle things in the previous link. For example fish has no implicit subshell which can cause surprising side effects in variable assignment for the programmer that is expecting behavior similar to bash. There's a good example of an expectation of an implicit subshell in the question here.
Why? In an attempt to clarify it appears that the concept of inheritance is handled differently between fish and other more common shells like bash. My understanding is that this can result in unexpected behavior from pipes, loops, and functions (All of which are commonly used programming strategies).
The programmer may also be relying on shell builtins which either may not exist in fish or may be implemented in an unexpected fashion.
Sources:
man chsh
fishon Wikipediasubshells on Unix & Linux
Related post on SuperUser.com
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
|
show 5 more comments
The command you had originally in your question chsh -s which bash was as you say a typo which caused a great deal of confusion around your question. Even if it had been properly formed with the ` symbols around which bash as shown below.

it would change the shell to bash (the default). To change the shell to fish use

or simply use the command chsh and enter the path to the shell you want to use. See below:
me@zippy-64bit:~$ chsh
Password:
Changing the login shell for me
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
For more information on the fish shell see this.
EDIT: Regarding snap packages: Will the default shell matter? the answer is possibly, as it depends on the assumptions made by and the approach taken by the programmer. Refer to the differences in how bash and how fish handle things in the previous link. For example fish has no implicit subshell which can cause surprising side effects in variable assignment for the programmer that is expecting behavior similar to bash. There's a good example of an expectation of an implicit subshell in the question here.
Why? In an attempt to clarify it appears that the concept of inheritance is handled differently between fish and other more common shells like bash. My understanding is that this can result in unexpected behavior from pipes, loops, and functions (All of which are commonly used programming strategies).
The programmer may also be relying on shell builtins which either may not exist in fish or may be implemented in an unexpected fashion.
Sources:
man chsh
fishon Wikipediasubshells on Unix & Linux
Related post on SuperUser.com
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
|
show 5 more comments
The command you had originally in your question chsh -s which bash was as you say a typo which caused a great deal of confusion around your question. Even if it had been properly formed with the ` symbols around which bash as shown below.

it would change the shell to bash (the default). To change the shell to fish use

or simply use the command chsh and enter the path to the shell you want to use. See below:
me@zippy-64bit:~$ chsh
Password:
Changing the login shell for me
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
For more information on the fish shell see this.
EDIT: Regarding snap packages: Will the default shell matter? the answer is possibly, as it depends on the assumptions made by and the approach taken by the programmer. Refer to the differences in how bash and how fish handle things in the previous link. For example fish has no implicit subshell which can cause surprising side effects in variable assignment for the programmer that is expecting behavior similar to bash. There's a good example of an expectation of an implicit subshell in the question here.
Why? In an attempt to clarify it appears that the concept of inheritance is handled differently between fish and other more common shells like bash. My understanding is that this can result in unexpected behavior from pipes, loops, and functions (All of which are commonly used programming strategies).
The programmer may also be relying on shell builtins which either may not exist in fish or may be implemented in an unexpected fashion.
Sources:
man chsh
fishon Wikipediasubshells on Unix & Linux
Related post on SuperUser.com
The command you had originally in your question chsh -s which bash was as you say a typo which caused a great deal of confusion around your question. Even if it had been properly formed with the ` symbols around which bash as shown below.

it would change the shell to bash (the default). To change the shell to fish use

or simply use the command chsh and enter the path to the shell you want to use. See below:
me@zippy-64bit:~$ chsh
Password:
Changing the login shell for me
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
For more information on the fish shell see this.
EDIT: Regarding snap packages: Will the default shell matter? the answer is possibly, as it depends on the assumptions made by and the approach taken by the programmer. Refer to the differences in how bash and how fish handle things in the previous link. For example fish has no implicit subshell which can cause surprising side effects in variable assignment for the programmer that is expecting behavior similar to bash. There's a good example of an expectation of an implicit subshell in the question here.
Why? In an attempt to clarify it appears that the concept of inheritance is handled differently between fish and other more common shells like bash. My understanding is that this can result in unexpected behavior from pipes, loops, and functions (All of which are commonly used programming strategies).
The programmer may also be relying on shell builtins which either may not exist in fish or may be implemented in an unexpected fashion.
Sources:
man chsh
fishon Wikipediasubshells on Unix & Linux
Related post on SuperUser.com
edited May 16 '18 at 15:34
answered May 9 '18 at 16:08
Elder GeekElder Geek
27.4k955130
27.4k955130
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
|
show 5 more comments
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
+10 rep already and another +100 coming! :O :O :O
– Fabby
May 9 '18 at 22:21
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
@Fabby Wow. That's unexpected. I just stumbled across it in the review queue and thought perhaps I could help.
– Elder Geek
May 9 '18 at 23:33
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
Good point, made a typo but still this is not the answer to my question
– Calin
May 10 '18 at 8:21
1
1
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
@Calin When I reviewed your question, it had 2 close votes assigned to it "Unclear what you're asking". Mentioning the exact applications would help as they might be console apps.
– Fabby
May 10 '18 at 9:44
Updated answer.
– Elder Geek
May 10 '18 at 15:53
Updated answer.
– Elder Geek
May 10 '18 at 15:53
|
show 5 more comments
Same problem here (Ubuntu 18.10): after chsh -s `which fish`, Gnome Shell does not find snapp apps anymore, even after adding /snap/bin to the $PATH.
My workaround:
- open terminal
- go to Preferences, click on your profile then command tab, tick "run a custom command instead of my shell" then in custom command put
fish. - do this for every profile

After that, starting Gnome-Terminal (either from Gnome Shell or with Ctrl+Alt+T) will launch the Fish shell, but the system shell will still be Bash so nothing breaks.
However this means that other applications spawning a user-facing shell (Visual Studio Code for instance) may require customization as well to use Fish instead of Bash.
add a comment |
Same problem here (Ubuntu 18.10): after chsh -s `which fish`, Gnome Shell does not find snapp apps anymore, even after adding /snap/bin to the $PATH.
My workaround:
- open terminal
- go to Preferences, click on your profile then command tab, tick "run a custom command instead of my shell" then in custom command put
fish. - do this for every profile

After that, starting Gnome-Terminal (either from Gnome Shell or with Ctrl+Alt+T) will launch the Fish shell, but the system shell will still be Bash so nothing breaks.
However this means that other applications spawning a user-facing shell (Visual Studio Code for instance) may require customization as well to use Fish instead of Bash.
add a comment |
Same problem here (Ubuntu 18.10): after chsh -s `which fish`, Gnome Shell does not find snapp apps anymore, even after adding /snap/bin to the $PATH.
My workaround:
- open terminal
- go to Preferences, click on your profile then command tab, tick "run a custom command instead of my shell" then in custom command put
fish. - do this for every profile

After that, starting Gnome-Terminal (either from Gnome Shell or with Ctrl+Alt+T) will launch the Fish shell, but the system shell will still be Bash so nothing breaks.
However this means that other applications spawning a user-facing shell (Visual Studio Code for instance) may require customization as well to use Fish instead of Bash.
Same problem here (Ubuntu 18.10): after chsh -s `which fish`, Gnome Shell does not find snapp apps anymore, even after adding /snap/bin to the $PATH.
My workaround:
- open terminal
- go to Preferences, click on your profile then command tab, tick "run a custom command instead of my shell" then in custom command put
fish. - do this for every profile

After that, starting Gnome-Terminal (either from Gnome Shell or with Ctrl+Alt+T) will launch the Fish shell, but the system shell will still be Bash so nothing breaks.
However this means that other applications spawning a user-facing shell (Visual Studio Code for instance) may require customization as well to use Fish instead of Bash.
edited Dec 26 '18 at 19:17
mature
2,1724931
2,1724931
answered Dec 23 '18 at 15:31
Cédric Van RompayCédric Van Rompay
1236
1236
add a comment |
add a comment |
There is a TL;DR at the bottom.
For gnome-shell to be able to start Snaps it needs two things (values in brackets are on my Fedora 29 desktop which has the same problem):
- PATH to include Snap (
/var/lib/snapd/snap/bin) - XDG_DATA_DIRS to the Snap Desktop files (
/var/lib/snapd/desktop)
These variables are configured in /etc/profile.d/snapd.sh via /etc/profile conventional bash start-up.
When you switch to fish to whole /etc/profile start-up is skipped.
Since most distros assume the usage of bash and install configuration scripts into /etc/profile.d, simply chsh -s /bin/fish will not use them. Snaps not being found by gnome-shell is one such symptom.
The best solution I have so far is to use fish only an interactive shell and leave bash in place to do the other housekeeping.
TL;DR
Leave the user default shell as bash:
chsh -s /bin/bash
Within ~/.bashrc have the following:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -z "$BASH_EXECUTION_STRING" ]; then
exec /bin/fish
fi
For the bash --login case (as invoked via X11/Wayland) remove ~/.profile and add .bash_profile (make it bash specific):
# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
add a comment |
There is a TL;DR at the bottom.
For gnome-shell to be able to start Snaps it needs two things (values in brackets are on my Fedora 29 desktop which has the same problem):
- PATH to include Snap (
/var/lib/snapd/snap/bin) - XDG_DATA_DIRS to the Snap Desktop files (
/var/lib/snapd/desktop)
These variables are configured in /etc/profile.d/snapd.sh via /etc/profile conventional bash start-up.
When you switch to fish to whole /etc/profile start-up is skipped.
Since most distros assume the usage of bash and install configuration scripts into /etc/profile.d, simply chsh -s /bin/fish will not use them. Snaps not being found by gnome-shell is one such symptom.
The best solution I have so far is to use fish only an interactive shell and leave bash in place to do the other housekeeping.
TL;DR
Leave the user default shell as bash:
chsh -s /bin/bash
Within ~/.bashrc have the following:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -z "$BASH_EXECUTION_STRING" ]; then
exec /bin/fish
fi
For the bash --login case (as invoked via X11/Wayland) remove ~/.profile and add .bash_profile (make it bash specific):
# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
add a comment |
There is a TL;DR at the bottom.
For gnome-shell to be able to start Snaps it needs two things (values in brackets are on my Fedora 29 desktop which has the same problem):
- PATH to include Snap (
/var/lib/snapd/snap/bin) - XDG_DATA_DIRS to the Snap Desktop files (
/var/lib/snapd/desktop)
These variables are configured in /etc/profile.d/snapd.sh via /etc/profile conventional bash start-up.
When you switch to fish to whole /etc/profile start-up is skipped.
Since most distros assume the usage of bash and install configuration scripts into /etc/profile.d, simply chsh -s /bin/fish will not use them. Snaps not being found by gnome-shell is one such symptom.
The best solution I have so far is to use fish only an interactive shell and leave bash in place to do the other housekeeping.
TL;DR
Leave the user default shell as bash:
chsh -s /bin/bash
Within ~/.bashrc have the following:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -z "$BASH_EXECUTION_STRING" ]; then
exec /bin/fish
fi
For the bash --login case (as invoked via X11/Wayland) remove ~/.profile and add .bash_profile (make it bash specific):
# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
There is a TL;DR at the bottom.
For gnome-shell to be able to start Snaps it needs two things (values in brackets are on my Fedora 29 desktop which has the same problem):
- PATH to include Snap (
/var/lib/snapd/snap/bin) - XDG_DATA_DIRS to the Snap Desktop files (
/var/lib/snapd/desktop)
These variables are configured in /etc/profile.d/snapd.sh via /etc/profile conventional bash start-up.
When you switch to fish to whole /etc/profile start-up is skipped.
Since most distros assume the usage of bash and install configuration scripts into /etc/profile.d, simply chsh -s /bin/fish will not use them. Snaps not being found by gnome-shell is one such symptom.
The best solution I have so far is to use fish only an interactive shell and leave bash in place to do the other housekeeping.
TL;DR
Leave the user default shell as bash:
chsh -s /bin/bash
Within ~/.bashrc have the following:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -z "$BASH_EXECUTION_STRING" ]; then
exec /bin/fish
fi
For the bash --login case (as invoked via X11/Wayland) remove ~/.profile and add .bash_profile (make it bash specific):
# we want to run fish most of the time, but this is invoked by bash --login
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
edited 3 mins ago
answered Jan 18 at 10:34
AnonimoakAnonimoak
11
11
add a comment |
add a comment |
The snaps that you have installed, can be found in /snap/bin/
You need to have that directory in your $PATH.
Ubuntu automatically adds /snap/bin to your $PATH.
It happens in /etc/profile.d/apps-bin-path.sh which runs when you get a login shell.
I checked, and fish also adds /snap/bin into $PATH so normally it should be fine.
Can you show us the output of the command
echo $PATH
If the output has /snap/bin, then congratulations you have found a bug in Ubuntu and you can file a report on Launchpad for it.
addition: Ubuntu internally probably uses $SHELL for some of the scripting. The fish shell is not 100% compatible with bash and it looks like this is the cause of the problem. It is a common issue when you change your login shell to something other than bash. See, for example, this report https://youtrack.jetbrains.com/issue/CPP-2919 with users changing their shell to /bin/tcsh.
You need to file a bug report to Ubuntu so that someone investigates and fixes the internal scripting to work with fish. If you really love fish, that's what you need to do. ;-)
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command waschsh -s fish. That means that the user changed the login shell forroot, not for the non-root user account. Still a bug, but a more delicate one.
– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. Seeman chshfor more information. Cheers! ;-)
– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, andfishis not 100% compatible withbash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL tobash. No more fish for them.
– Simos
May 19 '18 at 7:34
|
show 1 more comment
The snaps that you have installed, can be found in /snap/bin/
You need to have that directory in your $PATH.
Ubuntu automatically adds /snap/bin to your $PATH.
It happens in /etc/profile.d/apps-bin-path.sh which runs when you get a login shell.
I checked, and fish also adds /snap/bin into $PATH so normally it should be fine.
Can you show us the output of the command
echo $PATH
If the output has /snap/bin, then congratulations you have found a bug in Ubuntu and you can file a report on Launchpad for it.
addition: Ubuntu internally probably uses $SHELL for some of the scripting. The fish shell is not 100% compatible with bash and it looks like this is the cause of the problem. It is a common issue when you change your login shell to something other than bash. See, for example, this report https://youtrack.jetbrains.com/issue/CPP-2919 with users changing their shell to /bin/tcsh.
You need to file a bug report to Ubuntu so that someone investigates and fixes the internal scripting to work with fish. If you really love fish, that's what you need to do. ;-)
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command waschsh -s fish. That means that the user changed the login shell forroot, not for the non-root user account. Still a bug, but a more delicate one.
– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. Seeman chshfor more information. Cheers! ;-)
– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, andfishis not 100% compatible withbash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL tobash. No more fish for them.
– Simos
May 19 '18 at 7:34
|
show 1 more comment
The snaps that you have installed, can be found in /snap/bin/
You need to have that directory in your $PATH.
Ubuntu automatically adds /snap/bin to your $PATH.
It happens in /etc/profile.d/apps-bin-path.sh which runs when you get a login shell.
I checked, and fish also adds /snap/bin into $PATH so normally it should be fine.
Can you show us the output of the command
echo $PATH
If the output has /snap/bin, then congratulations you have found a bug in Ubuntu and you can file a report on Launchpad for it.
addition: Ubuntu internally probably uses $SHELL for some of the scripting. The fish shell is not 100% compatible with bash and it looks like this is the cause of the problem. It is a common issue when you change your login shell to something other than bash. See, for example, this report https://youtrack.jetbrains.com/issue/CPP-2919 with users changing their shell to /bin/tcsh.
You need to file a bug report to Ubuntu so that someone investigates and fixes the internal scripting to work with fish. If you really love fish, that's what you need to do. ;-)
The snaps that you have installed, can be found in /snap/bin/
You need to have that directory in your $PATH.
Ubuntu automatically adds /snap/bin to your $PATH.
It happens in /etc/profile.d/apps-bin-path.sh which runs when you get a login shell.
I checked, and fish also adds /snap/bin into $PATH so normally it should be fine.
Can you show us the output of the command
echo $PATH
If the output has /snap/bin, then congratulations you have found a bug in Ubuntu and you can file a report on Launchpad for it.
addition: Ubuntu internally probably uses $SHELL for some of the scripting. The fish shell is not 100% compatible with bash and it looks like this is the cause of the problem. It is a common issue when you change your login shell to something other than bash. See, for example, this report https://youtrack.jetbrains.com/issue/CPP-2919 with users changing their shell to /bin/tcsh.
You need to file a bug report to Ubuntu so that someone investigates and fixes the internal scripting to work with fish. If you really love fish, that's what you need to do. ;-)
edited May 19 '18 at 7:38
answered May 13 '18 at 23:01
SimosSimos
2876
2876
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command waschsh -s fish. That means that the user changed the login shell forroot, not for the non-root user account. Still a bug, but a more delicate one.
– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. Seeman chshfor more information. Cheers! ;-)
– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, andfishis not 100% compatible withbash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL tobash. No more fish for them.
– Simos
May 19 '18 at 7:34
|
show 1 more comment
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command waschsh -s fish. That means that the user changed the login shell forroot, not for the non-root user account. Still a bug, but a more delicate one.
– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. Seeman chshfor more information. Cheers! ;-)
– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, andfishis not 100% compatible withbash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL tobash. No more fish for them.
– Simos
May 19 '18 at 7:34
1
1
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
How do you explain that they "could be launched from the dash initially" then?
– Elder Geek
May 14 '18 at 1:20
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command was
chsh -s fish. That means that the user changed the login shell for root, not for the non-root user account. Still a bug, but a more delicate one.– Simos
May 15 '18 at 10:24
@Calin said that when they logged out and logged in again, then it stopped working. That makes sense, because the shell information is updated systemwide only when you re-login. The other thing that mystifies me, is that the command was
chsh -s fish. That means that the user changed the login shell for root, not for the non-root user account. Still a bug, but a more delicate one.– Simos
May 15 '18 at 10:24
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. See
man chsh for more information. Cheers! ;-)– Elder Geek
May 15 '18 at 20:13
The only way that command would change the login shell for root would be if the user was logged in as root when it was issued. it changes the current login shell and not another. See
man chsh for more information. Cheers! ;-)– Elder Geek
May 15 '18 at 20:13
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
FYI. Changing your shell doesn't change your path. ;-)
– Elder Geek
May 17 '18 at 22:06
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, and
fish is not 100% compatible with bash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL to bash. No more fish for them.– Simos
May 19 '18 at 7:34
;-) What I said was that if the $PATH remains the same, then it is a bug in Ubuntu, and that would require a bug report. The reason is that the scripts in Ubuntu use $SHELL to perform tasks, and
fish is not 100% compatible with bash. Such an issue is common in Unix/Linux, here is another example, youtrack.jetbrains.com/issue/CPP-2919 The OP gave up and changed back the login $SHELL to bash. No more fish for them.– Simos
May 19 '18 at 7:34
|
show 1 more 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%2f1032581%2fsnap-applications-dont-show-up-after-re-login-using-fish-shell%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
Updated answer based on your comment.
– Elder Geek
May 10 '18 at 16:04
@calin Can you provide examples of snap packages you have installed and do not show up after re-login?
– estibordo
May 14 '18 at 22:11
Which version of Ubuntu? Do the snaps run fine when run from the
fishshell?– muru
May 15 '18 at 8:17
@estibordo I did.
– Calin
May 15 '18 at 9:31