learn there are two folders, one is in the system the other in home
This is not an immediately obvious thing, but consider this a learning experience. This is the way many things work on Linux. As much as possible, you want to let the distribution manage the files outside of your home folder (occasionally you might tweak some system-wide configuration files). It is possible to install all sorts of software and make a lot of configuration changes right in your home folder, without admin privileges (in other words, without having any impact on other accounts which share the machine). The distro package manager should be the first stop, but if you find yourself DIYing something because a package is not available for your distro, there is almost certainly a way to do it without raising privileges (or if you need to raise privileges, doing so to grant access to specific hardware, or to enable a service on start-up, not to just shit files all over the place and forget about them).
In the case of .desktop shortcuts, you can drop these in ~/.local/share/applications. (more info)
In fact, I realised waaaay too late that the home folder was “~”.
Yeah, this is a shell expansion. You can test it by typing echo ~ in a terminal. It is a shorthand for typing /home/myusername or $HOME. This dates back to at least the 80s, so the syntax is also copied by a lot of non-shell applications or even used in some documentation outside the context of using a shell at all. In a shell like Bash you can also use it as a shortcut for other user’s home directories by typing e.g. ~root instead of ~. Good thing to know, as it will be taken for granted in a lot of places.
everytime I saw a folder path starting with ~ I assumed it was some convention
I get the frustration when trying to do something that isn’t well documented, so let me ask, what exactly were you trying to do?
I ask because learning there is a system and a home folder is basic Linux stuff that is just different from other OSes, and is not something particular to Bazzite, the only particular part being the system folder being read only, which is only true for some system folders, not everything.
I was trying to create desktop entries, you know, the .desktop files that are read by DEs. The usr folder is write protected so I looked how to do this specifically in immutable distros.
In fact, I realised waaaay too late that the home folder was “~”. Afterwards I realised that yes, the desktop entry documentation did refer to this other folder where desktop entries can be placed, but everytime I saw a folder path starting with ~ I assumed it was some convention, like starting a command with $.
I was asking more what program you were trying to make .desktop files of, I should have been clearer, sorry for that.
I thought you were trying to make shortcuts for already installed programs on your desktop. If that were the case, on KDE at least you could just right click a program on the start menu and click to add it to the desktop.
But I totally get your frustration, the two locations for storing configurations should be communicated better for new users of Linux.
As a rule of thumb, most of the time you can always put configurations on your home folder, an example of this is if you need or want to mess with Pipewire configurations (system audio application), where instructions on the internet will tell you to put it somewhere with root access, but in reality you can just put it in a specific place on your home folder too, which is way easier.
And yeah, ~ always points to your user directory, it’s another one of those Linux things that are common knowledge, but that new users aren’t told about until they stumble upon it and have to search for.
Another way of specifying user directory without using your user name for that occasional application that for some reason doesn’t accept ~, is to use /home/$USER/ in case you ever need that.
There are two cases where I needed to manually create a desktop entry, one was Intelliji Idea that starts up by running a bash script, and Godot Engine that has a single executable downloaded directly from the internet.
Thanks you for all the tips that’s so cool comrade Mazov!
Oh I see. You could install both as flatpaks and it would have the desktop entries automatically. In Bazzite the easiest way is by using the software center/app store that comes with the OS.
Okay I didn’t know Godot had a flatpak! I still really like desktop entries even when I don’t have to use them. With a little experience I could write a bash script that sets up all my work and I find it cool so in the end. Overall, Linux has a ton of good stuff I really enjoy
My experience with Bazzite
gonna chalk that one up to reddit
This is not an immediately obvious thing, but consider this a learning experience. This is the way many things work on Linux. As much as possible, you want to let the distribution manage the files outside of your home folder (occasionally you might tweak some system-wide configuration files). It is possible to install all sorts of software and make a lot of configuration changes right in your home folder, without admin privileges (in other words, without having any impact on other accounts which share the machine). The distro package manager should be the first stop, but if you find yourself DIYing something because a package is not available for your distro, there is almost certainly a way to do it without raising privileges (or if you need to raise privileges, doing so to grant access to specific hardware, or to enable a service on start-up, not to just shit files all over the place and forget about them).
In the case of .desktop shortcuts, you can drop these in
~/.local/share/applications
. (more info)Yeah, this is a shell expansion. You can test it by typing
echo ~
in a terminal. It is a shorthand for typing/home/myusername
or$HOME
. This dates back to at least the 80s, so the syntax is also copied by a lot of non-shell applications or even used in some documentation outside the context of using a shell at all. In a shell like Bash you can also use it as a shortcut for other user’s home directories by typing e.g.~root
instead of~
. Good thing to know, as it will be taken for granted in a lot of places.You’re weren’t wrong
Thanks for all the help that’s really cool
I get the frustration when trying to do something that isn’t well documented, so let me ask, what exactly were you trying to do?
I ask because learning there is a system and a home folder is basic Linux stuff that is just different from other OSes, and is not something particular to Bazzite, the only particular part being the system folder being read only, which is only true for some system folders, not everything.
I was trying to create desktop entries, you know, the .desktop files that are read by DEs. The usr folder is write protected so I looked how to do this specifically in immutable distros.
In fact, I realised waaaay too late that the home folder was “~”. Afterwards I realised that yes, the desktop entry documentation did refer to this other folder where desktop entries can be placed, but everytime I saw a folder path starting with ~ I assumed it was some convention, like starting a command with $.
I was asking more what program you were trying to make .desktop files of, I should have been clearer, sorry for that.
I thought you were trying to make shortcuts for already installed programs on your desktop. If that were the case, on KDE at least you could just right click a program on the start menu and click to add it to the desktop.
But I totally get your frustration, the two locations for storing configurations should be communicated better for new users of Linux.
As a rule of thumb, most of the time you can always put configurations on your home folder, an example of this is if you need or want to mess with Pipewire configurations (system audio application), where instructions on the internet will tell you to put it somewhere with root access, but in reality you can just put it in a specific place on your home folder too, which is way easier.
And yeah, ~ always points to your user directory, it’s another one of those Linux things that are common knowledge, but that new users aren’t told about until they stumble upon it and have to search for.
Another way of specifying user directory without using your user name for that occasional application that for some reason doesn’t accept ~, is to use /home/$USER/ in case you ever need that.
There are two cases where I needed to manually create a desktop entry, one was Intelliji Idea that starts up by running a bash script, and Godot Engine that has a single executable downloaded directly from the internet.
Thanks you for all the tips that’s so cool comrade Mazov!
Oh I see. You could install both as flatpaks and it would have the desktop entries automatically. In Bazzite the easiest way is by using the software center/app store that comes with the OS.
I’m glad to help, comrade.
Okay I didn’t know Godot had a flatpak! I still really like desktop entries even when I don’t have to use them. With a little experience I could write a bash script that sets up all my work and I find it cool so in the end. Overall, Linux has a ton of good stuff I really enjoy