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













4















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?










share|improve this question

























  • 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 fish shell?

    – muru
    May 15 '18 at 8:17











  • @estibordo I did.

    – Calin
    May 15 '18 at 9:31
















4















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?










share|improve this question

























  • 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 fish shell?

    – muru
    May 15 '18 at 8:17











  • @estibordo I did.

    – Calin
    May 15 '18 at 9:31














4












4








4


1






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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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 the fish shell?

    – 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











  • @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











  • @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










4 Answers
4






active

oldest

votes


















3





+100









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.



enter image description here
it would change the shell to bash (the default). To change the shell to fish use



enter image description here
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


  • fish on Wikipedia

  • subshells on Unix & Linux


  • Related post on SuperUser.com







share|improve this answer


























  • +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



















0














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


enter image description here



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.






share|improve this answer

































    0














    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






    share|improve this answer

































      -1














      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. ;-)






      share|improve this answer





















      • 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 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











      • 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











      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
      });


      }
      });














      draft saved

      draft discarded


















      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









      3





      +100









      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.



      enter image description here
      it would change the shell to bash (the default). To change the shell to fish use



      enter image description here
      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


      • fish on Wikipedia

      • subshells on Unix & Linux


      • Related post on SuperUser.com







      share|improve this answer


























      • +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
















      3





      +100









      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.



      enter image description here
      it would change the shell to bash (the default). To change the shell to fish use



      enter image description here
      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


      • fish on Wikipedia

      • subshells on Unix & Linux


      • Related post on SuperUser.com







      share|improve this answer


























      • +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














      3





      +100







      3





      +100



      3




      +100





      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.



      enter image description here
      it would change the shell to bash (the default). To change the shell to fish use



      enter image description here
      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


      • fish on Wikipedia

      • subshells on Unix & Linux


      • Related post on SuperUser.com







      share|improve this answer















      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.



      enter image description here
      it would change the shell to bash (the default). To change the shell to fish use



      enter image description here
      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


      • fish on Wikipedia

      • subshells on Unix & Linux


      • Related post on SuperUser.com








      share|improve this answer














      share|improve this answer



      share|improve this answer








      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



















      • +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













      0














      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


      enter image description here



      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.






      share|improve this answer






























        0














        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


        enter image description here



        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.






        share|improve this answer




























          0












          0








          0







          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


          enter image description here



          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.






          share|improve this answer















          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


          enter image description here



          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.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          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























              0














              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






              share|improve this answer






























                0














                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






                share|improve this answer




























                  0












                  0








                  0







                  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






                  share|improve this answer















                  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







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 3 mins ago

























                  answered Jan 18 at 10:34









                  AnonimoakAnonimoak

                  11




                  11























                      -1














                      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. ;-)






                      share|improve this answer





















                      • 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 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











                      • 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
















                      -1














                      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. ;-)






                      share|improve this answer





















                      • 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 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











                      • 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














                      -1












                      -1








                      -1







                      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. ;-)






                      share|improve this answer















                      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. ;-)







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      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 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











                      • 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














                      • 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 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











                      • 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








                      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


















                      draft saved

                      draft discarded




















































                      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.




                      draft saved


                      draft discarded














                      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





















































                      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







                      Popular posts from this blog

                      Word for something that's always reliable, but never the best?A word looks similar to “frail” but means...

                      How to go automatically from Suspend into Hibernate?How do I show grub when resuming from suspend?Hibernate...