So, I have been getting used to Linux Mint for a few months now. I am planning to stay on Linux Mint till I get a more advanced understanding of how Linux works.
One thing that is a little bit hard for me is having little to no control over where my settings are saved and where my programs are installed.
So, my question is, are there linux distros that would offer the user where to install software, and also where to store user settings. Would this be theoretically possibly?
I am aware of Appimages, which can be run from anywhere. However, it still uses predetermined locations for settings. Which distros would offer such functionality?
Most linux distros allow extensive controls over user settings. It would be useful if you supplied an example of your experience.
User settings are usually stored in the user's home directory under files whose names begin with a dot, hence sometimes called dotfiles.
Those user settings however, if you are using GUI applications, are usually set by using the menus and tick boxes in the particular applications.
Here's an example. For the firefox browser, the user can click on the Edit option in the menu bar, then click on Settings in the menu that appears. Then one can make selections in accordance with one's preferences navigating through the pages and then menus. It's also possible to access the Settings by clicking on the hamburger icon, top right on the browser page.
The selections that are made are stored under a dotfile directory that the firefox browser uses which is found in the filesystem such as the following:
Code:
/home/$USER/.mozilla/firefox/<someAlphaNumeric>/prefs.js
This location in the filesystem can be accessed from a terminal or a file manager. In this case, the prefs.js file holds the preferences the user has made in the GUI interface, and if one opens that file with a text editor to check, it has a note in its text that suggests using the UI rather than modifying the file directly, though that is possible.
To see where the saved settings of other apps are, one can run the following command in a terminal:
Then there are more to be seen from here navigating on through the directories:
As with the example of firefox above, most GUI apps set their preferences from that GUI, and store the selections under or in the dotfiles.
Another example of an app's preferences, one which is primarily used in a terminal, is htop. If the user runs the command: htop, in a terminal, the app runs providing a view of the processes that are running on the system. To adjust one's preferences, the user would select the F2 key which is for Setup, and found at the bottom of the screen. Then a listing of preferences appears for the user to make selections. After they are made, they are held under the dotfile directory in the following file:
Code:
/home/$USER/.config/htop/htoprc
Again, that file can be modified directly, but is usually adjusted through the menu system.
It's worth noting that in some configuration files, if they are modified directly, they only survive for that boot, but this isn't the case for all. It varies, but is easily determined.
On the matter of "where my programs are installed", it depends. If the program is one that is selected from a distro repository, then the following example command in a terminal will show where all the files of that program are located in the filesystem. In this case, the window manager: icewm, is the example:
Code:
$ apt-file list icewm
icewm: /usr/bin/icehelp
icewm: /usr/bin/icesh
icewm: /usr/bin/icesound
icewm: /usr/bin/icewm
icewm: /usr/bin/icewm-session
icewm: /usr/bin/icewmbg
icewm: /usr/bin/icewmhint
icewm: /usr/share/doc/icewm
icewm: /usr/share/lintian/overrides/icewm
icewm: /usr/share/menu/icewm
icewm: /usr/share/xsessions/icewm-session.desktop
Note that no dotfiles in the /home/$USER directory appear here, since it's only the system files that are shown, however the dotfiles may appear, or if not, can be created for the purposes of configuration and preference. The man pages often have instructions about this and sometimes there are instructions in documents held in the relevant directory for that app such as /usr/share/doc/icewm in this case. There is usually a documents file of some sort for installed apps under the /usr/share/doc directory.
If the program: apt-file, is not installed, then it can be installed to provide information such as the above.
If the program is a user created program, or a program that is not in the distro's repositories, then it can often be placed in the directories under the /usr/local directory if it is to be made available to all of the system users, but it can also be placed in the user's home directory somewhere if it is solely to be used by that user.
As to the query of which distros offer the functionality under consideration, all major linux distros offer it. The distros that may not offer it are often specialist linux systems created for embedded systems which are not in the mainstream of desktop linux users.