Re: to enable all profiles at login time

2023-04-20 Thread Sergiu Ivanov
Gottfried  [2023-04-20T13:28:05+0200]:
> [[PGP Signed Part:Undecided]]
> Hi,
>
> thanks for help.
>
> it works,

Great news!

> Near the volume icon there appear two icons, both are flameshot.
> I didn’t see those icons earlier, because they are in grey colour
> without anything on them, so they don’t stand out.
>
> I don’t know why two instead of one, but it doesn’t matter.
> It works, as you described, and that’s the most important.

Perhaps you can right-click on one of these icons to get a menu.
Normally, you should see an element like Quit on that menu.

-
Sergiu


> thanks very much
>
> Kind regards
>
> Gottfried
>
>
> Am 20.04.23 um 12:20 schrieb Sergiu Ivanov:
>> Hi Gottfried,
>> Gottfried  [2023-04-20T12:11:16+0200]:
>>> [[PGP Signed Part:Undecided]]
>>> Hi,
>>>
>>> I installed flameshot, but it doesn’t open.
>>> I tried it beforehand with guix shell flameshot and it worked not
>>> completely, but somehow.
>>> But now, after installation it doesn’t open at all.
>> When run without any command line arguments, Flameshot installs
>> a tray
>> icon, near the volume icon and the Network Manager icon in my case.
>> To make a screenshot, I click on the icon, which dims the screen and
>> allows me to draw a rectangle to show the region I want to capture.
>> I have just discovered that you can run the "flameshot gui" command,
>> which has the same effect as clicking on the tray icon.  Maybe you could
>> try this option if you don't see the tray icon appear.
>> 
>>> Do you have guix system or are you on an other distro?
>> Yes, I run Guix System (and EXWM as the window manager).
>> -
>> Sergiu
>> 
>>> Am 17.04.23 um 20:32 schrieb Sergiu Ivanov:
 Hi Gottfried,
 I have nothing to add about your main question but :
 Gottfried  [2023-04-17T14:45:28+0200]:
> How do you create this screenshot with the red arrow?
 I use Flameshot, which comes in the package aptly named flameshot.
 This program lets you choose the part of the screen to capture, and
 allows you to add some basic graphics, e.g. arrows, text, shapes, etc.
 GIMP is good, and I also use it for screenshots from time to time,
 but
 Flameshot is often much faster to use.
 -
 Sergiu
>> 




Re: to enable all profiles at login time

2023-04-20 Thread Gottfried

Hi,

thanks for help.

it works,


When run without any command line arguments, Flameshot installs a tray

icon, near the volume icon and the Network Manager icon in my case.
To make a screenshot, I click on the icon, which dims the screen and
allows me to draw a rectangle to show the region I want to capture.

I have just discovered that you can run the "flameshot gui" command,
which has the same effect as clicking on the tray icon.  Maybe you could
try this option if you don't see the tray icon appear.


Near the volume icon there appear two icons, both are flameshot.
I didn’t see those icons earlier, because they are in grey colour 
without anything on them, so they don’t stand out.


I don’t know why two instead of one, but it doesn’t matter.
It works, as you described, and that’s the most important.

thanks very much

Kind regards

Gottfried


Am 20.04.23 um 12:20 schrieb Sergiu Ivanov:

Hi Gottfried,

Gottfried  [2023-04-20T12:11:16+0200]:

[[PGP Signed Part:Undecided]]
Hi,

I installed flameshot, but it doesn’t open.
I tried it beforehand with guix shell flameshot and it worked not
completely, but somehow.
But now, after installation it doesn’t open at all.


When run without any command line arguments, Flameshot installs a tray
icon, near the volume icon and the Network Manager icon in my case.
To make a screenshot, I click on the icon, which dims the screen and
allows me to draw a rectangle to show the region I want to capture.

I have just discovered that you can run the "flameshot gui" command,
which has the same effect as clicking on the tray icon.  Maybe you could
try this option if you don't see the tray icon appear.


Do you have guix system or are you on an other distro?


Yes, I run Guix System (and EXWM as the window manager).

-
Sergiu



Am 17.04.23 um 20:32 schrieb Sergiu Ivanov:

Hi Gottfried,
I have nothing to add about your main question but :
Gottfried  [2023-04-17T14:45:28+0200]:

How do you create this screenshot with the red arrow?

I use Flameshot, which comes in the package aptly named flameshot.
This program lets you choose the part of the screen to capture, and
allows you to add some basic graphics, e.g. arrows, text, shapes, etc.
GIMP is good, and I also use it for screenshots from time to time,
but
Flameshot is often much faster to use.
-
Sergiu




--




OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-20 Thread Sergiu Ivanov
Hi Gottfried,

Gottfried  [2023-04-20T12:11:16+0200]:
> [[PGP Signed Part:Undecided]]
> Hi,
>
> I installed flameshot, but it doesn’t open.
> I tried it beforehand with guix shell flameshot and it worked not
> completely, but somehow.
> But now, after installation it doesn’t open at all.

When run without any command line arguments, Flameshot installs a tray
icon, near the volume icon and the Network Manager icon in my case.
To make a screenshot, I click on the icon, which dims the screen and
allows me to draw a rectangle to show the region I want to capture.

I have just discovered that you can run the "flameshot gui" command,
which has the same effect as clicking on the tray icon.  Maybe you could
try this option if you don't see the tray icon appear.

> Do you have guix system or are you on an other distro?

Yes, I run Guix System (and EXWM as the window manager).

-
Sergiu


> Am 17.04.23 um 20:32 schrieb Sergiu Ivanov:
>> Hi Gottfried,
>> I have nothing to add about your main question but :
>> Gottfried  [2023-04-17T14:45:28+0200]:
>>> How do you create this screenshot with the red arrow?
>> I use Flameshot, which comes in the package aptly named flameshot.
>> This program lets you choose the part of the screen to capture, and
>> allows you to add some basic graphics, e.g. arrows, text, shapes, etc.
>> GIMP is good, and I also use it for screenshots from time to time,
>> but
>> Flameshot is often much faster to use.
>> -
>> Sergiu




Re: to enable all profiles at login time

2023-04-20 Thread Gottfried

Hi,

I installed flameshot, but it doesn’t open.
I tried it beforehand with guix shell flameshot and it worked not 
completely, but somehow.

But now, after installation it doesn’t open at all.

Do you have guix system or are you on an other distro?

Am 17.04.23 um 20:32 schrieb Sergiu Ivanov:

Hi Gottfried,

I have nothing to add about your main question but :

Gottfried  [2023-04-17T14:45:28+0200]:

How do you create this screenshot with the red arrow?


I use Flameshot, which comes in the package aptly named flameshot.

This program lets you choose the part of the screen to capture, and
allows you to add some basic graphics, e.g. arrows, text, shapes, etc.

GIMP is good, and I also use it for screenshots from time to time, but
Flameshot is often much faster to use.

-
Sergiu


--
Kind regards

Gottfried
Guix System, MATE desktop




OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-19 Thread Martin Castillo

Hi,

Am 19.04.23 um 18:10 schrieb Gottfried:



but when starting MATE Desktop all my profiles are not enabled.


graphical sessions environment is not controlled by .bash_profile (or
.profile)


If sddm is used, this statement is false. Does source that file (if bash 
is the users shell) and therefore it influenced the environment 
variables of all applications started the graphical environment.


Gottfried, what display-manager do you use?

Maybe this command can tell you:
$ ps $(ps   -p $(pidof Xorg) -o ppid=)

Martin



Re: to enable all profiles at login time

2023-04-19 Thread Gottfried

Hi,

your email address is still blocked through my email-provider. So I 
don’t get it.


I am working on "Guix System" , not on a foreign distro.
So I don’t know if your suggestion I can use.
--
Kind regards

Gottfried


Message: 1
Date: Mon, 17 Apr 2023 19:25:57 +0200
From: Giovanni Biscuolo 
To: Gottfried , help-guix@gnu.org
Subject: Re: to enable all profiles at login time
Message-ID: <87mt36o1y2@xelera.eu>
Content-Type: text/plain; charset="utf-8"

Hi Gottfried

I guess you are on a foreign distro

Gottfried  writes:

[...]


but when starting MATE Desktop all my profiles are not enabled.


graphical sessions environment is not controlled by .bash_profile (or
.profile)

If your distro works like Debian [1], try to add this to your ~/.xsessionrc:

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi

Details here:
https://wiki.debian.org/Xsession#User_configuration

[...]

Happy hacking! Gio'

--
Giovanni Biscuolo

Xelera IT Infrastructures
-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 849 bytes
Desc: not available
URL: 
<https://lists.gnu.org/archive/html/help-guix/attachments/20230417/0a961fe9/attachment.sig>




OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-18 Thread Gottfried

Hi,

thanks a lot for help.

Now it works, I can open the packages through my terminal.


And then you can choose to

either stay at the setup I suggested or e.g. try using X session
startup files as others suggested (which btw seems like a neat solution)


What do you mean by trying X session, startup files as others suggested?
How can I do it?


Kind regards

Gottfried



Am 17.04.23 um 22:15 schrieb Wojtek Kosior:

No, I put libreoffice in a separate profile,
so in the terminal it is not found:

gfp@Tuxedo ~$ libreoffice
-bash: libreoffice: Kommando nicht gefunden.
gfp@Tuxedo ~$ frescobaldi
-bash: frescobaldi: Kommando nicht gefunden.
gfp@Tuxedo ~$ lilypond
-bash: lilypond: Kommando nicht gefunden.

Also other packages from different profiles are not found.


I see the problem now. The profile paths on your system are not like
"/home/gfp/Projekte/Libreoffice" but rather like
"/home/gfp/Projekte/Libreoffice/guix-profil". So we need to add
"/guix-profil" to each profile path.

You can try replacing

 profile=$i

line with

 profile=$i/guix-profil

In your `.bash_profile`.

Once you do this it'll (hopefully!) work :) And then you can choose to
either stay at the setup I suggested or e.g. try using X session
startup files as others suggested (which btw seems like a neat solution)

Wojtek

-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Mon, 17 Apr 2023 14:55:10 +
Gottfried  wrote:


Hi,
thanks for help



Then you're all set. It should be working now 😄

Try closing the terminal and opening it again. Are the commands from
your profiles (e.g. `libreoffice`) available immediately, without the
need to run any manual `guix` commands? They should be


No, I put libreoffice in a separate profile,
so in the terminal it is not found:

gfp@Tuxedo ~$ libreoffice
-bash: libreoffice: Kommando nicht gefunden.
gfp@Tuxedo ~$ frescobaldi
-bash: frescobaldi: Kommando nicht gefunden.
gfp@Tuxedo ~$ lilypond
-bash: lilypond: Kommando nicht gefunden.

Also other packages from different profiles are not found.

-
But I have a symbol of libreoffice on my desktop and if I klick on it,
it will open libreoffice (an older version).
The symbol didn’t disappear after uninstalling libreoffice from my
default profile.


So may be I didn’t understand everything yet, what I have to do.
-

I have to open each profile with
guix shell -p ~/Projekte/e.g.: Icecat/guix-profil

Kind regards

Gottfried





--



OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Wojtek Kosior via
> No, I put libreoffice in a separate profile,
> so in the terminal it is not found:
> 
> gfp@Tuxedo ~$ libreoffice
> -bash: libreoffice: Kommando nicht gefunden.
> gfp@Tuxedo ~$ frescobaldi
> -bash: frescobaldi: Kommando nicht gefunden.
> gfp@Tuxedo ~$ lilypond
> -bash: lilypond: Kommando nicht gefunden.
> 
> Also other packages from different profiles are not found.

I see the problem now. The profile paths on your system are not like
"/home/gfp/Projekte/Libreoffice" but rather like
"/home/gfp/Projekte/Libreoffice/guix-profil". So we need to add
"/guix-profil" to each profile path.

You can try replacing

profile=$i

line with

profile=$i/guix-profil

In your `.bash_profile`.

Once you do this it'll (hopefully!) work :) And then you can choose to
either stay at the setup I suggested or e.g. try using X session
startup files as others suggested (which btw seems like a neat solution)

Wojtek

-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Mon, 17 Apr 2023 14:55:10 +
Gottfried  wrote:

> Hi,
> thanks for help
> 
> 
> > Then you're all set. It should be working now 😄
> > 
> > Try closing the terminal and opening it again. Are the commands from
> > your profiles (e.g. `libreoffice`) available immediately, without the
> > need to run any manual `guix` commands? They should be  
> 
> No, I put libreoffice in a separate profile,
> so in the terminal it is not found:
> 
> gfp@Tuxedo ~$ libreoffice
> -bash: libreoffice: Kommando nicht gefunden.
> gfp@Tuxedo ~$ frescobaldi
> -bash: frescobaldi: Kommando nicht gefunden.
> gfp@Tuxedo ~$ lilypond
> -bash: lilypond: Kommando nicht gefunden.
> 
> Also other packages from different profiles are not found.
> 
> -
> But I have a symbol of libreoffice on my desktop and if I klick on it, 
> it will open libreoffice (an older version).
> The symbol didn’t disappear after uninstalling libreoffice from my 
> default profile.
> 
> 
> So may be I didn’t understand everything yet, what I have to do.
> -
> 
> I have to open each profile with
> guix shell -p ~/Projekte/e.g.: Icecat/guix-profil
> 
> Kind regards
> 
> Gottfried




pgpDV6bLJt47V.pgp
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Sergiu Ivanov
Hi Gottfried,

I have nothing to add about your main question but :

Gottfried  [2023-04-17T14:45:28+0200]:
> How do you create this screenshot with the red arrow?

I use Flameshot, which comes in the package aptly named flameshot.

This program lets you choose the part of the screen to capture, and
allows you to add some basic graphics, e.g. arrows, text, shapes, etc.

GIMP is good, and I also use it for screenshots from time to time, but
Flameshot is often much faster to use.

-
Sergiu



Re: to enable all profiles at login time

2023-04-17 Thread Giovanni Biscuolo
Hi Gottfried

I guess you are on a foreign distro

Gottfried  writes:

[...]

> but when starting MATE Desktop all my profiles are not enabled.

graphical sessions environment is not controlled by .bash_profile (or
.profile)

If your distro works like Debian [1], try to add this to your ~/.xsessionrc:

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi

Details here:
https://wiki.debian.org/Xsession#User_configuration

[...]

Happy hacking! Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures


signature.asc
Description: PGP signature


Re: to enable all profiles at login time

2023-04-17 Thread Gottfried

Hi,
thanks for help



Then you're all set. It should be working now 😄

Try closing the terminal and opening it again. Are the commands from
your profiles (e.g. `libreoffice`) available immediately, without the
need to run any manual `guix` commands? They should be


No, I put libreoffice in a separate profile,
so in the terminal it is not found:

gfp@Tuxedo ~$ libreoffice
-bash: libreoffice: Kommando nicht gefunden.
gfp@Tuxedo ~$ frescobaldi
-bash: frescobaldi: Kommando nicht gefunden.
gfp@Tuxedo ~$ lilypond
-bash: lilypond: Kommando nicht gefunden.

Also other packages from different profiles are not found.

-
But I have a symbol of libreoffice on my desktop and if I klick on it, 
it will open libreoffice (an older version).
The symbol didn’t disappear after uninstalling libreoffice from my 
default profile.



So may be I didn’t understand everything yet, what I have to do.
-

I have to open each profile with
guix shell -p ~/Projekte/e.g.: Icecat/guix-profil

Kind regards

Gottfried


OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Martin Castillo

Hi,


5.
is there also a possibility to enable all my profiles when I log in
to my MATE desktop?


So that all applications (including terminal emulators, regardless of
their configuration) open with them already enabled? There's no such
possibility I know of :/


There is a way and I think it may even be standardized.
On my non-guix distro I use sddm as display-manager. On login, it 
executes /usr/share/sddm/scripts/Xsession as my user.


It contains:
  9 case $SHELL in
 10   */bash)
 11 [ -z "$BASH" ] && exec $SHELL $0 "$@"
 12 set +o posix
 13 [ -f /etc/profile ] && . /etc/profile
 14 if [ -f $HOME/.bash_profile ]; then
 15   . $HOME/.bash_profile
 16 elif [ -f $HOME/.bash_login ]; then
 17   . $HOME/.bash_login
 18 elif [ -f $HOME/.profile ]; then
 19   . $HOME/.profile
 20 fi
...
 41   */fish)
 42 xsess_tmp=`mktemp /tmp/xsess-env-XX`
 43 $SHELL --login -c "/bin/sh -c 'export -p' > $xsess_tmp"
 44 . $xsess_tmp
 45 rm -f $xsess_tmp
 46 ;;
 47   *) # Plain sh, ksh, and anything we do not know.
 48 [ -f /etc/profile ] && . /etc/profile
 49 [ -f $HOME/.profile ] && . $HOME/.profile


So it does try to find shell specific config files (for those that it 
knows about).


You need to know what display-manager (the program where you log in to 
your user) you use and look at its documentation to see what files it 
may source before it logs you in.


In that case, you don't need to launch bash as login shell in your 
terminal, because all the profiles are activated when you login.


Martin



Re: to enable all profiles at login time

2023-04-17 Thread Wojtek Kosior via
> >>   [[ -n "$SSH_CLIENT" ]] && source /etc/profile
> >>
> >>   # Don't do anything else.
> >>   return
> >> fi
> >>
> >> # Source the system-wide file.
> >> source /etc/bashrc
> >>
> >> # Adjust the prompt depending on whether we're in 'guix environment'.
> >> if [ -n "$GUIX_ENVIRONMENT" ]
> >> then
> >>   PS1='\u@\h \w [env]\$ '
> >> else
> >>   PS1='\u@\h \w\$ '
> >> fi
> >> alias ls='ls -p --color=auto'
> >> alias ll='ls -l'
> >> alias grep='grep --color=auto'
> >>
> >> -  
> >>> change the configuration of one's terminal emulator to start bash  
> >>>> with `-l`  
> >>
> >> 5.
> >> Where do I have to add "-l" in /.bashrc?
> >>
> >>
> >> Kind regards
> >>
> >> Gottfried
> >>
> >>
> >>
> >>
> >>
> >> Am 16.04.23 um 22:18 schrieb Wojtek Kosior:  
> >>> Hi Gottfried,
> >>>
> >>> I see 3 potential problems.
> >>>
> >>> 1.
> >>> The snippet you addet to .bashrc refers to a variable named
> >>> "GUIX_EXTRA_PROFILES". Is this variable defined somewhere? Is seems it
> >>> isn't. It should be assigned the path to the directory holding your
> >>> profiles so you could for example add a
> >>>
> >>>   GUIX_EXTRA_PROFILES=/path/to/directory/with/my/guix/profiles
> >>>
> >>> line before the `for` loop. Of course, replacing the
> >>> "/path/to/directory/with/my/guix/profiles" with the appropriate path
> >>> for your system.
> >>>
> >>> 2.
> >>> Why is `basename` being used here? Consider the following example:
> >>>
> >>> - "GUIX_EXTRA_PROFILES" is set to /home/user/my-extra-guix-stuff
> >>> - you have 1 extra Guix profile under
> >>> "/home/user/my-extra-guix-stuff/music"
> >>> - the profile mentioned above has its `profile` script under
> >>> "/home/user/my-extra-guix-stuff/music/etc/profile"
> >>>
> >>> Now, let's look at what the
> >>>
> >>>   profile=$i/$(basename "$i")
> >>>
> >>> line does. This line is inside a `for` loop, in each iteration the
> >>> variable "i" holds the path to one of the profiles under
> >>> "/home/user/my-extra-guix-stuff". In one iteration "i" is going to hold
> >>> the string "/home/user/my-extra-guix-stuff/music". The `basename "$i"`
> >>> command therefore outputs just "music". So the line we're analyzing
> >>> assigns the string "/home/user/my-extra-guix-stuff/music/music" to
> >>> variable called "profile". Is this what we wanted? The next line is
> >>> going to check for the existence of file
> >>> "/home/user/my-extra-guix-stuff/music/music/etc/profile" but it should
> >>> instead check for the existence of
> >>> "/home/user/my-extra-guix-stuff/music/etc/profile". So you might want
> >>> to e.g. replace the line
> >>>
> >>>   profile=$i/$(basename "$i")
> >>>
> >>> with just
> >>>
> >>>   profile=$i
> >>>
> >>> 3.
> >>> You edited "~/.bash_profile" which is indeed known to be read by bash.
> >>>
> >>> However, this is not that simple. Bash has 3 possible modes of running:
> >>> non-interactive shell, interactive shell and (interactive) login shell.
> >>> The "login shell" mode is meant to be used when, well, bash is spawned
> >>> in a terminal upon user login. "~/.bash_profile" is *only* read by bash
> >>> in this mode and not in the other 2. In interactive shell mode, bash
> >>> reads "~/.bashrc" *instead*.
> >>>
> >>> When you, for example, execute a `bash` command inside an
> >>> already-running shell, the child bash shell that spawns is not going to
> >>> consider itself a login shell but rather a mere interactive shell. To
> >>> make bash think is is a login shell, you can e.g. start it with a `-l`
> >>> flag, like `bash -l`.
> >>>
> >>> The problem is, most terminal emulators by default don't start bash
> >>> this way. The 2 solutions I've been using are to either
> >>> - change the configuration of one's terminal emulator to start bash
> >>> with `-l`
> >>> - or make the ".bashrc" script check if current interactive shell was
> >>> spawned by a teminal emulator process and if yes, have it activate the
> >>> Guix profiles.
> >>>
> >>> The 1st solution is the proper one, the 2nd one is just a workaround
> >>> for terminal emulators that are not configurable enough :)
> >>>
> >>>
> >>> Wojtek
> >>>
> >>>
> >>> -- (sig_start)
> >>> website: https://koszko.org/koszko.html
> >>> PGP: https://koszko.org/key.gpg
> >>> fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A
> >>>
> >>> ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ 
> >>> c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
> >>> ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? 
> >>> U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
> >>> -- (sig_end)
> >>>
> >>>
> >>> On Sun, 16 Apr 2023 13:09:00 +
> >>> Gottfried  wrote:
> >>>  
> >>>> Hi,
> >>>>
> >>>> according to the cookbook
> >>>> I added
> >>>> 
> >>>> for i in $GUIX_EXTRA_PROFILES/*; do
> >>>>  profile=$i/$(basename "$i")
> >>>>  if [ -f "$profile"/etc/profile ]; then
> >>>>GUIX_PROFILE="$profile"
> >>>>. "$GUIX_PROFILE"/etc/profile
> >>>>  fi
> >>>>  unset profile
> >>>> done
> >>>> ---
> >>>> into my .bash_profile file
> >>>> in order to enable all profiles at login time:
> >>>> 
> >>>> My .bash_profile file looks now like that:
> >>>>
> >>>> # Honor per-interactive-shell startup file
> >>>> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
> >>>>
> >>>> for i in $GUIX_EXTRA_PROFILES/*; do
> >>>>  profile=$i/$(basename "$i")
> >>>>  if [ -f "$profile"/etc/profile ]; then
> >>>>GUIX_PROFILE="$profile"
> >>>>. "$GUIX_PROFILE"/etc/profile
> >>>>  fi
> >>>>  unset profile
> >>>> done
> >>>> ---
> >>>>
> >>>> but when starting MATE Desktop all my profiles are not enabled.
> >>>>
> >>>> Could somebody help because probably the two entries in my .bash_profile
> >>>> got a mistake.
> >>>> 
> >>>
> >>>  
> >>  
> > 
> >   
> 




pgpnfpq3sm3DM.pgp
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Gottfried
 script check if current interactive shell was
spawned by a teminal emulator process and if yes, have it activate the
Guix profiles.

The 1st solution is the proper one, the 2nd one is just a workaround
for terminal emulators that are not configurable enough :)


Wojtek


-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Sun, 16 Apr 2023 13:09:00 +
Gottfried  wrote:
   

Hi,

according to the cookbook
I added

for i in $GUIX_EXTRA_PROFILES/*; do
 profile=$i/$(basename "$i")
 if [ -f "$profile"/etc/profile ]; then
   GUIX_PROFILE="$profile"
   . "$GUIX_PROFILE"/etc/profile
 fi
 unset profile
done
---
into my .bash_profile file
in order to enable all profiles at login time:

My .bash_profile file looks now like that:

# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

for i in $GUIX_EXTRA_PROFILES/*; do
 profile=$i/$(basename "$i")
 if [ -f "$profile"/etc/profile ]; then
   GUIX_PROFILE="$profile"
   . "$GUIX_PROFILE"/etc/profile
 fi
 unset profile
done
---

but when starting MATE Desktop all my profiles are not enabled.

Could somebody help because probably the two entries in my .bash_profile
got a mistake.
  


   







--




OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Wojtek Kosior via
x27;s terminal emulator to start bash  
> >>with `-l`  
> 
> 5.
> Where do I have to add "-l" in /.bashrc?
> 
> 
> Kind regards
> 
> Gottfried
> 
> 
> 
> 
> 
> Am 16.04.23 um 22:18 schrieb Wojtek Kosior:
> > Hi Gottfried,
> > 
> > I see 3 potential problems.
> > 
> > 1.
> > The snippet you addet to .bashrc refers to a variable named
> > "GUIX_EXTRA_PROFILES". Is this variable defined somewhere? Is seems it
> > isn't. It should be assigned the path to the directory holding your
> > profiles so you could for example add a
> > 
> >  GUIX_EXTRA_PROFILES=/path/to/directory/with/my/guix/profiles
> > 
> > line before the `for` loop. Of course, replacing the
> > "/path/to/directory/with/my/guix/profiles" with the appropriate path
> > for your system.
> > 
> > 2.
> > Why is `basename` being used here? Consider the following example:
> > 
> > - "GUIX_EXTRA_PROFILES" is set to /home/user/my-extra-guix-stuff
> > - you have 1 extra Guix profile under
> >"/home/user/my-extra-guix-stuff/music"
> > - the profile mentioned above has its `profile` script under
> >"/home/user/my-extra-guix-stuff/music/etc/profile"
> > 
> > Now, let's look at what the
> > 
> >  profile=$i/$(basename "$i")
> > 
> > line does. This line is inside a `for` loop, in each iteration the
> > variable "i" holds the path to one of the profiles under
> > "/home/user/my-extra-guix-stuff". In one iteration "i" is going to hold
> > the string "/home/user/my-extra-guix-stuff/music". The `basename "$i"`
> > command therefore outputs just "music". So the line we're analyzing
> > assigns the string "/home/user/my-extra-guix-stuff/music/music" to
> > variable called "profile". Is this what we wanted? The next line is
> > going to check for the existence of file
> > "/home/user/my-extra-guix-stuff/music/music/etc/profile" but it should
> > instead check for the existence of
> > "/home/user/my-extra-guix-stuff/music/etc/profile". So you might want
> > to e.g. replace the line
> > 
> >  profile=$i/$(basename "$i")
> > 
> > with just
> > 
> >  profile=$i
> > 
> > 3.
> > You edited "~/.bash_profile" which is indeed known to be read by bash.
> > 
> > However, this is not that simple. Bash has 3 possible modes of running:
> > non-interactive shell, interactive shell and (interactive) login shell.
> > The "login shell" mode is meant to be used when, well, bash is spawned
> > in a terminal upon user login. "~/.bash_profile" is *only* read by bash
> > in this mode and not in the other 2. In interactive shell mode, bash
> > reads "~/.bashrc" *instead*.
> > 
> > When you, for example, execute a `bash` command inside an
> > already-running shell, the child bash shell that spawns is not going to
> > consider itself a login shell but rather a mere interactive shell. To
> > make bash think is is a login shell, you can e.g. start it with a `-l`
> > flag, like `bash -l`.
> > 
> > The problem is, most terminal emulators by default don't start bash
> > this way. The 2 solutions I've been using are to either
> > - change the configuration of one's terminal emulator to start bash
> >with `-l`
> > - or make the ".bashrc" script check if current interactive shell was
> >spawned by a teminal emulator process and if yes, have it activate the
> >Guix profiles.
> > 
> > The 1st solution is the proper one, the 2nd one is just a workaround
> > for terminal emulators that are not configurable enough :)
> > 
> > 
> > Wojtek
> > 
> > 
> > -- (sig_start)
> > website: https://koszko.org/koszko.html
> > PGP: https://koszko.org/key.gpg
> > fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A
> > 
> > ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ 
> > c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
> > ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? 
> > U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
> > -- (sig_end)
> > 
> > 
> > On Sun, 16 Apr 2023 13:09:00 +
> > Gottfried  wrote:
> >   
> >> Hi,
> >>
> >> according to the cookbook
> >> I added
> >> 
> >> for i in $GUIX_EXTRA_PROFILES/*; do
> >> profile=$i/$(basename "$i")
> >> if [ -f "$profile"/etc/profile ]; then
> >>   GUIX_PROFILE="$profile"
> >>   . "$GUIX_PROFILE"/etc/profile
> >> fi
> >> unset profile
> >> done
> >> ---
> >> into my .bash_profile file
> >> in order to enable all profiles at login time:
> >> 
> >> My .bash_profile file looks now like that:
> >>
> >> # Honor per-interactive-shell startup file
> >> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
> >>
> >> for i in $GUIX_EXTRA_PROFILES/*; do
> >> profile=$i/$(basename "$i")
> >> if [ -f "$profile"/etc/profile ]; then
> >>   GUIX_PROFILE="$profile"
> >>   . "$GUIX_PROFILE"/etc/profile
> >> fi
> >> unset profile
> >> done
> >> ---
> >>
> >> but when starting MATE Desktop all my profiles are not enabled.
> >>
> >> Could somebody help because probably the two entries in my .bash_profile
> >> got a mistake.
> >>  
> > 
> >   
> 




pgp8JO8TkFkZl.pgp
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-17 Thread Gottfried
ell was
   spawned by a teminal emulator process and if yes, have it activate the
   Guix profiles.

The 1st solution is the proper one, the 2nd one is just a workaround
for terminal emulators that are not configurable enough :)


Wojtek


-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Sun, 16 Apr 2023 13:09:00 +
Gottfried  wrote:


Hi,

according to the cookbook
I added

for i in $GUIX_EXTRA_PROFILES/*; do
profile=$i/$(basename "$i")
if [ -f "$profile"/etc/profile ]; then
  GUIX_PROFILE="$profile"
  . "$GUIX_PROFILE"/etc/profile
fi
unset profile
done
---
into my .bash_profile file
in order to enable all profiles at login time:

My .bash_profile file looks now like that:

# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

for i in $GUIX_EXTRA_PROFILES/*; do
profile=$i/$(basename "$i")
if [ -f "$profile"/etc/profile ]; then
  GUIX_PROFILE="$profile"
  . "$GUIX_PROFILE"/etc/profile
fi
unset profile
done
---

but when starting MATE Desktop all my profiles are not enabled.

Could somebody help because probably the two entries in my .bash_profile
got a mistake.






--





OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: to enable all profiles at login time

2023-04-16 Thread Wojtek Kosior via
Hi Gottfried,

I see 3 potential problems.

1.
The snippet you addet to .bashrc refers to a variable named
"GUIX_EXTRA_PROFILES". Is this variable defined somewhere? Is seems it
isn't. It should be assigned the path to the directory holding your
profiles so you could for example add a

GUIX_EXTRA_PROFILES=/path/to/directory/with/my/guix/profiles

line before the `for` loop. Of course, replacing the
"/path/to/directory/with/my/guix/profiles" with the appropriate path
for your system.

2.
Why is `basename` being used here? Consider the following example:

- "GUIX_EXTRA_PROFILES" is set to /home/user/my-extra-guix-stuff
- you have 1 extra Guix profile under
  "/home/user/my-extra-guix-stuff/music"
- the profile mentioned above has its `profile` script under
  "/home/user/my-extra-guix-stuff/music/etc/profile"

Now, let's look at what the

profile=$i/$(basename "$i")

line does. This line is inside a `for` loop, in each iteration the
variable "i" holds the path to one of the profiles under
"/home/user/my-extra-guix-stuff". In one iteration "i" is going to hold
the string "/home/user/my-extra-guix-stuff/music". The `basename "$i"`
command therefore outputs just "music". So the line we're analyzing
assigns the string "/home/user/my-extra-guix-stuff/music/music" to
variable called "profile". Is this what we wanted? The next line is
going to check for the existence of file
"/home/user/my-extra-guix-stuff/music/music/etc/profile" but it should
instead check for the existence of
"/home/user/my-extra-guix-stuff/music/etc/profile". So you might want
to e.g. replace the line

profile=$i/$(basename "$i")

with just

profile=$i

3.
You edited "~/.bash_profile" which is indeed known to be read by bash.

However, this is not that simple. Bash has 3 possible modes of running:
non-interactive shell, interactive shell and (interactive) login shell.
The "login shell" mode is meant to be used when, well, bash is spawned
in a terminal upon user login. "~/.bash_profile" is *only* read by bash
in this mode and not in the other 2. In interactive shell mode, bash
reads "~/.bashrc" *instead*.

When you, for example, execute a `bash` command inside an
already-running shell, the child bash shell that spawns is not going to
consider itself a login shell but rather a mere interactive shell. To
make bash think is is a login shell, you can e.g. start it with a `-l`
flag, like `bash -l`.

The problem is, most terminal emulators by default don't start bash
this way. The 2 solutions I've been using are to either
- change the configuration of one's terminal emulator to start bash
  with `-l`
- or make the ".bashrc" script check if current interactive shell was
  spawned by a teminal emulator process and if yes, have it activate the
  Guix profiles.

The 1st solution is the proper one, the 2nd one is just a workaround
for terminal emulators that are not configurable enough :)


Wojtek


-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Sun, 16 Apr 2023 13:09:00 +
Gottfried  wrote:

> Hi,
> 
> according to the cookbook
> I added
> 
> for i in $GUIX_EXTRA_PROFILES/*; do
>profile=$i/$(basename "$i")
>if [ -f "$profile"/etc/profile ]; then
>  GUIX_PROFILE="$profile"
>  . "$GUIX_PROFILE"/etc/profile
>fi
>unset profile
> done
> ---
> into my .bash_profile file
> in order to enable all profiles at login time:
> 
> My .bash_profile file looks now like that:
> 
> # Honor per-interactive-shell startup file
> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
> 
> for i in $GUIX_EXTRA_PROFILES/*; do
>profile=$i/$(basename "$i")
>if [ -f "$profile"/etc/profile ]; then
>  GUIX_PROFILE="$profile"
>  . "$GUIX_PROFILE"/etc/profile
>fi
>unset profile
> done
> ---
> 
> but when starting MATE Desktop all my profiles are not enabled.
> 
> Could somebody help because probably the two entries in my .bash_profile
> got a mistake.
> 




pgplfaXm4dBYK.pgp
Description: OpenPGP digital signature


to enable all profiles at login time

2023-04-16 Thread Gottfried

Hi,

according to the cookbook
I added

for i in $GUIX_EXTRA_PROFILES/*; do
  profile=$i/$(basename "$i")
  if [ -f "$profile"/etc/profile ]; then
GUIX_PROFILE="$profile"
. "$GUIX_PROFILE"/etc/profile
  fi
  unset profile
done
---
into my .bash_profile file
in order to enable all profiles at login time:

My .bash_profile file looks now like that:

# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

for i in $GUIX_EXTRA_PROFILES/*; do
  profile=$i/$(basename "$i")
  if [ -f "$profile"/etc/profile ]; then
GUIX_PROFILE="$profile"
. "$GUIX_PROFILE"/etc/profile
  fi
  unset profile
done
---

but when starting MATE Desktop all my profiles are not enabled.

Could somebody help because probably the two entries in my .bash_profile
got a mistake.

--
Kind regards

Gottfried



OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature