So, in order to avoid typing “flatpak run”, every time I need to run a flatpak program from the terminal, to have gui programs installed using nix appear in my applications menu(rofi, in this case), and to avoid typing the entire path to my .local/bin, I had added the following lines to my .profile:

set PATH so it includes user’s private bin if it exists

if [ -d “$HOME/bin” ] ; then export PATH=“$HOME/bin:$PATH” fi

set PATH so it includes user’s private bin if it exists

if [ -d “$HOME/.local/bin” ] ; then export PATH=“$HOME/.local/bin:$PATH” fi

for desktop entries for packages installed using Nix

export XDG_DATA_DIRS=“/home/guest/.nix-profile/share:$XDG_DATA_DIRS”

set PATH so it includes user’s private bin if it exists

if [ -d “/var/lib/flatpak/exports/bin” ] ; then export PATH=“/var/lib/flatpak/exports/bin:$PATH” fi

if [ -d “~/.local/share/flatpak/exports/bin” ] ; then export PATH=“~/.local/share/flatpak/exports/bin:$PATH” fi

However, for some weird reason, I cannot take advantage of the above lines unless I am in a tmux session or I explicitly type the following command:

source .profile

Any ideas on how to fix this?

EDIT: Adding the following line to .xsessionrc fixed the issue (haven’t checked for wayland sessions though).

. $HOME/.profile

#Debian #Debian11 #foss #floss #libre_software #applications #desktop #gui #nix #flatpak #flatpaks #gnu #linux #opensource #open_source #tmux #bash #profile #shell #terminal

3 points

I had a similar issue some time ago, not sure which distro it was. The solution was to rename the .profile to .bash_profile :)

permalink
report
reply
2 points

Thanks for the response. But in my case, even that does not work as well.

permalink
report
parent
reply
2 points

You’ve probably already checked it out but make sure you’ve got only one of .profile, .bash_profile, .bashprofile. bash will only execute one of them in case there’s more than one (not sure which one off the top of my head.)

permalink
report
parent
reply
2 points

I only have .profile. Actually adding those lines as to .bashrc as suggested by @palordrolap@kbin.social helped for the flatpak commands. But the issue with .desktop files for programs installed using nix still persists.

permalink
report
parent
reply
2 points

Does your .bashrc actually source .bash_profile? Add [ ! -f "~/.bash_profile" ] || . "~/.bash_profile" (.bash_profile doesn’t exist or source it) to the end if not.

permalink
report
parent
reply
1 point

Adding those lines to .bashrc helped with flatpaks but not with nix.

permalink
report
parent
reply
1 point

Since .bashrc is executed for all non-login shells, it shouldn’t really source .profile, which is only meant for login shells, and might trigger expensive activity. (.profile might source .bashrc, but that`s fine.)

permalink
report
parent
reply
2 points

Are other lines in .profile being executed, or is the whole file ignored? Have you logged out and in again since adding these lines?

permalink
report
reply
1 point

Thanks for the response. Adding those lines to .bashrc helped with flatpaks but not with nix.

permalink
report
parent
reply
2 points

But those kinds of initialisations belong in .profile (or, if you’re using a weird desktop environment, its own configuration file), particularly if you want .desktop files to work. (In .bashrc, PATH will grow longer in each subshell, which shouldn’t cause problems but is wasteful.)

So, what desktop environment (GNOME, KDE, Cinnamon, etc.) are you using?

.profile is executed by login shells for the benefit of it and its subshells, and by DEs like Cinnamon for the benefit of .desktop launchers at login.

So, have you logged out and back in again since adding these lines to .profile?

And of course, the .profile has to be executed properly for its configuration to take effect, so it`s useful to know if the problem is with those specific lines, or the file as a whole.

Add:—

date >> ~/profile-execution-log-top.txt
echo $PATH >> ~/profile-execution-log-top.txt

to the top of .profile, and:—

date >> ~/profile-execution-log-end.txt
echo $PATH >> ~/profile-execution-log-end.txt

to the bottom of .profile (use alternative paths as you see fit) to monitor that activity. You can test this by sourcing .profile but the real test is logging out and in again. Look at the time when you do this so you can correlate each action with each timestamp in the log files. If .profile is executed to completion, you should have two files with matching timestamps but different PATHs. If you don’t have a matching timestamp in the “end” log file, there’s a problem mid-execution. If neither file is being updated, .profile isn’t being executed at all.

permalink
report
parent
reply
2 points

Hi, Thanks for the response. Sorry for disturbing you. I have tried what you have suggested here. There are two files with matching timestamps but different PATHs. I am using i3wm in Debian 11. Please tell me how to deal with this issue.

permalink
report
parent
reply
3 points

Did you check ownership and permissions for .profile?

permalink
report
reply
1 point

Changed it allow execution for the owner. Still no results. Tried with both .profile and .bash_profile.

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 43

    Monthly active users

  • 3.3K

    Posts

  • 19K

    Comments