andresgongora / synth-shell

Boost your terminal, script by script
GNU General Public License v3.0
945 stars 236 forks source link

Failed install on ostree distros with /var/home #219

Closed Pantar2205 closed 2 years ago

Pantar2205 commented 2 years ago

Describe the bug Silverblue, Kinote and other ostree distro that have home stored in /var/home/USER Setup script doesn't work with this type of a home.

To Reproduce Steps to reproduce the behavior:

  1. Follow install instructions on any distro with home set as /var/home
andresgongora commented 2 years ago

This is odd, but I wouldn't be surprised if I used /home/${USER}/... somewhere and that is the problem. Let me have a quick look at the setup script and such.

What message/behavior do you get exactly? So I can narrow down the culprit :)

andresgongora commented 2 years ago

Also, I've never played with any of those distros. I guess that if the envvar $HOME is always set to /var/home/USER, correct?

Pantar2205 commented 2 years ago

This is how it is on Silverblue, but I understand its the same principle on ay ostree based operating system.

image

I think simply having the user home directory not being presumed to be /home/$USER solves the problem but I am ignorant as to how to fix something like that.

andresgongora commented 2 years ago

I've gone through all files in the script and there is not a single /home/$USER; in fact, there seems to be no reference to /home at all, only several instances of $HOME.

pwd prints your current working directory. Could you check that $HOME is defined? (e.g., echo $HOME).

I fear I have no access to the distros you've listed at the moment to test it myself. Could you elaborate on what is not working? Do you see an error message while running the setup-script? Or is any of the sub components failing, such as synth-shell-greeter or synth-shell-prompt?

Once we know what is failing it should be fairly easy to fix ;)

Pantar2205 commented 2 years ago

Sorry Andre. I am only a casual user, so you will need to bare with me. echo €HOME provides /var/home/ger (My username on this machine is ger) I ran everything again and it all seemed to work fine but then the first thing I tested was running ls which provides =

ger  ger-desktop  ~  ls bash: alias: better_ls: not found bash: alias: (): not found bash: alias: {: not found bash: alias: shopt: not found bash: alias: -s: not found bash: alias: extglob;: not found bash: alias: local: not found bash: alias: ls)";: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 0: not found bash: alias: ];: not found bash: alias: then: not found bash: alias: -U: not found bash: alias: Applications: not found bash: alias: Desktop: not found bash: alias: Documents: not found bash: alias: Downloads: not found bash: alias: Games: not found bash: alias: Music: not found bash: alias: OnionShare: not found bash: alias: Pictures: not found bash: alias: Public: not found bash: alias: Templates: not found bash: alias: truenas-backups: not found bash: alias: truenas-data: not found bash: alias: Videos: not found bash: alias: 2>: not found bash: alias: /dev/null: not found bash: alias: |: not found bash: alias: wc: not found bash: alias: -l);: not found bash: alias: if: not found bash: alias: [: not found bash: alias: "$files": not found bash: alias: "0": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: {.,..,*}: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: -U: not found bash: alias: -d: not found bash: alias: .bash_history: not found bash: alias: .bash_logout: not found bash: alias: .bash_profile: not found bash: alias: .bashrc: not found bash: alias: .cache: not found bash: alias: .config: not found bash: alias: .lesshst: not found bash: alias: .lmmsrc.xml: not found bash: alias: .local: not found bash: alias: .mozilla: not found bash: alias: .pki: not found bash: alias: .ssh: not found bash: alias: .var: not found bash: alias: .vscode: not found bash: alias: 2>: not found bash: alias: /dev/null: not found bash: alias: |: not found bash: alias: wc: not found bash: alias: -l);: not found bash: alias: if: not found bash: alias: [: not found bash: alias: "$hidden_files": not found bash: alias: "0": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: echo: not found bash: alias: "";: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: .bash_history: not found bash: alias: .bash_logout: not found bash: alias: .bash_profile: not found bash: alias: .bashrc: not found bash: alias: .cache: not found bash: alias: .config: not found bash: alias: .lesshst: not found bash: alias: .lmmsrc.xml: not found bash: alias: .local: not found bash: alias: .mozilla: not found bash: alias: .pki: not found bash: alias: .ssh: not found bash: alias: .var: not found bash: alias: .vscode: not found bash: alias: -l: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: fi;: not found bash: alias: else: not found bash: alias: $LS: not found bash: alias: -d: not found bash: alias: {.,..,}: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first;: not found bash: alias: fi;: not found bash: alias: else: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 1: not found bash: alias: -a: not found bash: alias: -d: not found bash: alias: "$1": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: local: not found bash: alias: 'cd': not found bash: alias: "$1/";: not found bash: alias: better_ls;: not found bash: alias: 'cd': not found bash: alias: "$current_pwd";: not found bash: alias: else: not found bash: alias: if: not found bash: alias: [: not found bash: alias: $#: not found bash: alias: -eq: not found bash: alias: 1: not found bash: alias: -a: not found bash: alias: -f: not found bash: alias: "$1": not found bash: alias: ];: not found bash: alias: then: not found bash: alias: $LS: not found bash: alias: -l: not found bash: alias: --human-readable: not found bash: alias: "$1";: not found bash: alias: else: not found bash: alias: $LS: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first: not found bash: alias: "$@";: not found bash: alias: fi;: not found bash: alias: fi;: not found bash: alias: fi: not found bash: alias: }: not found bash: alias: -d: not found bash: alias: .: not found bash: alias: ..: not found bash: alias: -lA: not found bash: alias: --human-readable: not found bash: alias: --group-directories-first: not found

For the greeter, I am not sure as I have always selected no to just that.

Pantar2205 commented 2 years ago

a cat of my .bashrc provides ` ger  ger-desktop  ~  cat .bashrc

.bashrc

Source global definitions

if [ -f /etc/bashrc ]; then . /etc/bashrc fi

User specific environment

if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] then PATH="$HOME/.local/bin:$HOME/bin:$PATH" fi export PATH

Uncomment the following line if you don't like systemctl's auto-paging feature:

export SYSTEMD_PAGER=

User specific aliases and functions

if [ -d ~/.bashrc.d ]; then for rc in ~/.bashrc.d/*; do if [ -f "$rc" ]; then . "$rc" fi done fi

unset rc

-----------------------------------------------------

synth-shell-prompt.sh

if [ -f /var/home/ger/.config/synth-shell/synth-shell-prompt.sh ] && [ -n "$( echo $- | grep i )" ]; then source /var/home/ger/.config/synth-shell/synth-shell-prompt.sh fi

-----------------------------------------------------

better-ls

if [ -f /var/home/ger/.config/synth-shell/better-ls.sh ] && [ -n "$( echo $- | grep i )" ]; then source /var/home/ger/.config/synth-shell/better-ls.sh fi

-----------------------------------------------------

alias

if [ -f /var/home/ger/.config/synth-shell/alias.sh ] && [ -n "$( echo $- | grep i )" ]; then source /var/home/ger/.config/synth-shell/alias.sh fi

-----------------------------------------------------

better-history

if [ -f /var/home/ger/.config/synth-shell/better-history.sh ] && [ -n "$( echo $- | grep i )" ]; then source /var/home/ger/.config/synth-shell/better-history.sh `

andresgongora commented 2 years ago

Hmm this is an odd error message you are getting. Now I can only speculate, but its seems that the setup tried to "alias" everything related to better-ls or bash is going crazy.

The output of your $HOME seems sane. I'm not seeing anything in the error message pointing to the possibility that the problem is caused by your user's file not being under the traditional /home dir. What made you think it could be related? Did you get a different error message in the past?

Also great that you've shared your bashrc file. Nothing odd there... Could you try deleting all the bash entries related to better-ls, alias and better-history? Just leave in place those related to the prompt. That way we can determine whether the problem is caused by the prompt (in terms of code, the most complex one of the 4) or if it is only caused by better-ls (since the error messages mention it). Or for that matter, if alias is messing stuff up. In either case, you can peek into the code under /var/home/ger/.config/synth-shell/ and you will find all 4 scripts and some config files

Pantar2205 commented 2 years ago

before i read your post, i just moved bashrc to bashrcOLD and touch bashrc empty file. i ran your script including the greeter and its working flawlessly now. this is worse than finding a problem and fixing it because now its totally fine but we don't know why wht happened happened. Apologies for wasting your time and thanks for helping me out.

I suppose for anyone else reading this. just rename your bashrc and start fresh.

andresgongora commented 2 years ago

Well, this is surprising. Maybe the problem was not related to synth-shell? Please re-open the issue if you experience problems again, maybe there is a small no-easy-to-reproduce bug hiding in there.

Have fun fooling around with bash!!