Customizability of various distros

heyjudek

New Member
Joined
Oct 4, 2024
Messages
13
Reaction score
5
Credits
149
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?
 


Welcome to the forums!

heyjudek said:
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.
Advice: Find the distro that best fits you, then stumble through it. Otherwise, you'll have to re-learn everything. Trust me, I've seen it in action. I'm thankful every day that TinyCore was my "first" distro and that I spent ages before and after messing with others before settling on Debian. That said, you may be very happy with Mint, most people I refurbish laptops for love it.

heyjudek said:
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.
Well, this is a good thing. Having a Frankenstein mess is terrible. Mac is also less lenient. And surprisingly, Windows does have a spec: "Program Files\" was for applications until 64-bit came out, then "Program Files (x86)\" was created for the older 32-bit apps. The Registry require regedit so settings can't be "anywhere". However, because Windows is more lenient, you have a mess of ini and cfg files everywhere, which makes backups a nightmare. That said, your statement's not entirely accurate. Linux and other systems can be made to install apps and store configs anywhere... But you should not. Learn the basics, follow the file specs. As you continue to use Linux (or a Unix like Mac, FreeBSD, etc.) you will appreciate the uniformity of FHS... but, as you yourself mentioned, AppImages run from anywhere.

heyjudek said:
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?
Yes, there are such distros... all of them (99%... of Desktop Linux). See below on theoreticals.

heyjudek said:
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?
Well we covered which distros, let's get down to what you can do:

1. Custom executable paths. Want to put a program in /home/you/games/, just add that to PATH. PATH="$PATH:/home/you/games" and to make this permanent, add it the top of your .profile file (or the bottom of .bashrc if your system doesn't have a .profile file)*
3. Symlinks: Put anything anywhere and symlink to it: ln -s config-file /path/to/where/app/looks/for/it/config-file **
4. Bind-mounts: Mount a directory in another location. Generally, don't do it: mount --bind /path/to/actual-folder/ /path/to/target/where/I/want/folder ***

* Actually has legitimate use cases like a games directory that's not /usr/games (which nobody uses... do they?)
** This is kind of pointless. You'll end up with a spaghetti system. Symlinks (and hard links) are not for this purpose.
*** As you gain more understanding, you will find uses for bind-mounting folders (i.e. security -- or even utility and abstraction).


If there are reasons for you wanting this functionality, I'm sure we can come up with better solutions. So I have two questions:
1. Why do you want to place settings where they don't go?
2. Why do you want to install programs where they don't belong?
 
Last edited:
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:
Code:
ls -ald .*
Then there are more to be seen from here navigating on through the directories:
Code:
ls -al .config

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.
 
Last edited:
Technically speaking, yes; AppImages DO "run from anywhere". You can locate them anywhere in the system, click on them to launch and they will - generally speaking - just work. But even here, there's a "file-spec".....because without exception, they unpack themselves into, and run from /tmp for the duration. And /tmp is still a fixed, immutable location....

And they still create their .config files in fixed, 'expected' locations. You move an AppImage from one distro to another, and it will create a fresh set of .config files.....and even if you never use that AppImage in that distro ever again, those .config files remain behind.....just in case.

So you end up duplicating the same files, over & over again, ad nauseam. And THIS was the rationale behind my creation of Puppy's 'portable' apps; the app - AND its .config files - remain within a single, self-contained directory. You can move the portable app from one Puppy to another.......and the .config files move with it, since the launch script is written to set the self-contained directory AS the user's $HOME directory.

No more duplication.....and no need to have to set everything up again.


Mike. ;)
 
So you end up duplicating the same files, over & over again, ad nauseam. And THIS was the rationale behind my creation of Puppy's 'portable' apps; the app - AND its .config files - remain within a single, self-contained directory. You can move the portable app from one Puppy to another.......and the .config files move with it, since the launch script is written to set the self-contained directory AS the user's $HOME directory.

That's an interesting concept. I can see upside definitely... I'd like some further info, but to avoid thread-jacking, I started a new topic.

PS: Sorry about that Chris.
 
Last edited:
Advice: Find the distro that best fits you, then stumble through it. Otherwise, you'll have to re-learn everything. Trust me, I've seen it in action. I'm thankful every day that TinyCore was my "first" distro and that I spent ages before and after messing with others before settling on Debian. That said, you may be very happy with Mint, most people I refurbish laptops for love it.
I agree, the only problem is that my linux skills aren't advanced enough to find the distro that best fits me. Chances are I will keep using Linux Mint and choose a second diistro to learn in the future. I'm fine with that.


That said, your statement's not entirely accurate. Linux and other systems can be made to install apps and store configs anywhere... But you should not. Learn the basics, follow the file specs. As you continue to use Linux (or a Unix like Mac, FreeBSD, etc.) you will appreciate the uniformity of FHS... but, as you yourself mentioned, AppImages run from anywhere.
This is actually what I was asking. So, it is theoretically possible to configure apps to be installed anywhere you want and also store configuration files in a location of your choosing, right? I am not saying it is the best approach, I was simply wondering if this is something built into linux and cannot be changed.

If there are reasons for you wanting this functionality, I'm sure we can come up with better solutions. So I have two questions:
1. Why do you want to place settings where they don't go?
2. Why do you want to install programs where they don't belong?
To be honest, I am not actually planning on implementing this, at least not right now. I wanted to know if there are distros that provide more freedom in choosing installation and configuration directories. It just makes it look scattered, at least to me. Ideally, I would want a config folder to be stored in a location of my choosing which keeps all the configuration files.
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.
So, theoretically speaking (I am not saying it is necessarily a good idea), can you configure individual system package/flatpaks/appimages to be installed to custom directories of your choosing and also assign a directory for them to store configuration files?

And they still create their .config files in fixed, 'expected' locations. You move an AppImage from one distro to another, and it will create a fresh set of .config files.....and even if you never use that AppImage in that distro ever again, those .config files remain behind.....just in case.
Can't appimages be told where to store user configuration files? Ideally, I would want something like appimage but it asks me where to store configuration files.
 
Just to clarify, I am not asking anyone to mess up FHS. This is more of a theoretical question. After installing many apps and searching the name of an app returns so many folders named after the app and from their locations, one can see that some are configuration files, but it got a little confusing for me to know exactly what is stored where. Hence, I have made this thread. Since Linux is supposed to give one freedom over one's computer, one can theoretically make a distro that asks for installation directories and also configuration directories, right? I don't know why, but having .appname folders scattered around always seems off to me (although I am getting used to it). In windows, some apps have "portable" versions which carry their configuration files inside, so you can even run it off a USB. Does Linux have such a thing as well?
 
In windows, some apps have "portable" versions which carry their configuration files inside, so you can even run it off a USB. Does Linux have such a thing as well?
I think you can put AppImages on a usb and run those from there, I don't know about the config files for those but @MikeWalsh can answer that.

This is more of a theoretical question. After installing many apps and searching the name of an app returns so many folders named after the app and from their locations, one can see that some are configuration files, but it got a little confusing for me to know exactly what is stored where.
Generally speaking, system configurations are stored under /etc, user configurations are stored under $HOME/.confg and can also be store in $HOME as a hidden file, ie: $HOME/.bash_profile.


I think this is the closes to what you are looking for.
 
Just to clarify, I am not asking anyone to mess up FHS. This is more of a theoretical question. After installing many apps and searching the name of an app returns so many folders named after the app and from their locations, one can see that some are configuration files, but it got a little confusing for me to know exactly what is stored where. Hence, I have made this thread. Since Linux is supposed to give one freedom over one's computer, one can theoretically make a distro that asks for installation directories and also configuration directories, right? I don't know why, but having .appname folders scattered around always seems off to me (although I am getting used to it). In windows, some apps have "portable" versions which carry their configuration files inside, so you can even run it off a USB. Does Linux have such a thing as well?
The freedom in linux is multi-faceted. One is free to write an application and have it's configuration files anywhere the coder chooses to place them. It's just a matter of the code. There are however, conventions which use standard locations in the filesystem and the FHS is one of those, as outlined here: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Some applications do enable users to easily decide where the configuration files of that app can be placed. For example (continuing with the example of icewm from post #3) in the manpage one finds this capability:
-c, --config=FILE
Use FILE as the source of configuration options. By default icewm looks for a file named preferences. This is a readable text file that can be modified with the help of a text editor.
Not all applications have such options. It depends on the particular application as to the degree of freedom for the placement of some files.

From post #7:
So, theoretically speaking (I am not saying it is necessarily a good idea), can you configure individual system package/flatpaks/appimages to be installed to custom directories of your choosing and also assign a directory for them to store configuration files?
Custom storage locations for configuration files may be possible if the user uses symbolic linking provided by the ln command in linux. The user could place their configuration files wherever they like, linking from the locations that the application has as its defaults. Normally, a user wouldn't bother with this because there's no gain in conventional use of the application. Some applications however, will not allow such relocations. It may be a matter of trial and error if the information about locations is not provided in easily accessible documentation.

All in all, freedom is always limited and relative, but the degrees of it vary.

The greatest freedom is available to the creator of an application because he/she does the coding and so makes the fundamental decisions about what goes where. The code, whilst having great freedom, is itself limited by its inherent capabilities and the hardware.

As for "folders scattered about", it's worth noting that there will be reasons for each location having been used since these were decisions that had to be made by app creators or developers. There's little that's going to be random here. Doubtless if one is interested in this aspect, some investigation can uncover the reasons through research and investigation. Often developers actually provide their reasons in comments within the code, but the main reasons are to do with the conventions.

In relation to appimages and the other "distro independent" packaging systems like flatpak and snap, there's an on-going debate about many aspects of them. On the one hand, if a distro includes an app that is also issued as an appimage, then it's likely that the distro's version is a more optimally functioning app. It will start up faster, likely be more responsive on screen, use less space on the filesystem and likely be more configurable. On the other hand, if a distro's repo has no such application, or only an older less capable version, then the appimage may have significant advantages.

Windows users who turn to linux almost invariably apply their skills, knowledge, thinking frameworks, categories etc from Windows to linux. It's the natural thing to do. As one comes to see linux for what it is however, new skills and knowledge inevitably develop because the two operating systems are very different in so many respects and so make quite different demands of the user. What seems "scattered" at first, will later be seen to have a logical basis. What seemed "confusing" initially will become clarified. What was seen as perhaps less than the promised "freedom" of linux will come to be seen as the relative concept that it is, and not as absolute. That freedom however, will almost invariably come to be seen to provide many more options for the user and developer than proprietary operating systems provide.
 
I think you can put AppImages on a usb and run those from there, I don't know about the config files for those but @MikeWalsh can answer that.


Generally speaking, system configurations are stored under /etc, user configurations are stored under $HOME/.confg and can also be store in $HOME as a hidden file, ie: $HOME/.bash_profile.


I think this is the closes to what you are looking for.
That is what I was wondering. A few appimages I have used so far always created .appname files. So, I am guessing that even if I carried appimages inside a USB, the settings would still be saved locally.
As for "folders scattered about", it's worth noting that there will be reasons for each location having been used since these were decisions that had to be made by app creators or developers. There's little that's going to be random here. Doubtless if one is interested in this aspect, some investigation can uncover the reasons through research and investigation. Often developers actually provide their reasons in comments within the code, but the main reasons are to do with the conventions.
I don't doubt the efficiency of FHS. I am sure a lot of wisdom went into creating that standard. All in all, it COULD be possible to have a user-independent appimage (appimage-like) package that would use a pre-set destination for configuration. It is just that no one bothered to make it?
 
Just to clarify, I am not asking anyone to mess up FHS. This is more of a theoretical question. After installing many apps and searching the name of an app returns so many folders named after the app and from their locations, one can see that some are configuration files, but it got a little confusing for me to know exactly what is stored where. Hence, I have made this thread. Since Linux is supposed to give one freedom over one's computer, one can theoretically make a distro that asks for installation directories and also configuration directories, right? I don't know why, but having .appname folders scattered around always seems off to me (although I am getting used to it). In windows, some apps have "portable" versions which carry their configuration files inside, so you can even run it off a USB. Does Linux have such a thing as well?
Yes and No:
Yes, you can with AppImages just cut+paste them anywhere, but the config files will always be in a specific place. AppImages are just standalones of existing software. The majority of AppImages do not come directly from developers, they're repacked.

The choice of where to store configurations is not up to the OS but the developers. Yes. Most moved to the XDG Spec regarding stuff going in .config/, but a few will use $HOME -- this is legacy spec. So configs are far from scattered, but let me just keep on topic... Now before an app is placed in a distro's repository, it is vetted by, and sometimes patched by, the distro's dev team (for many reasons). So in theory -- because you could not do this to tens of thousands of apps on your own -- with a dedicated team it would be acheivable to have a distro where you chose where to "install" stuff (though in a year from now you will look back on this post and be like, "Man I was loco" -- it happens to every one of us thinkers.

As for "where an application is", there's a very simple way to find out. Run whereis and the app name from the terminal. Example:
Code:
$ whereis firefox
firefox: /usr/bin/firefox
But let me just give you a heads-up: It does not matter. You can start them any time from any directory. This is not like messing with .exe's. Your packages are installed and their binary files are usually in a bin/ directory, but often on lib/ with a symlink to bin/ (ex: firefox, well, firefoxe-esr to be precise -- it's a mozilla thing). I won't get onto the topic of /bun, /usr/bin/, merger politics, etc. but knowing that much should help get you started whatever experiments you want to do... and I encourage you to do it without fear of breaking things (maybe use a VM) because this is how we learn, create, and innovate.
 
The choice of where to store configurations is not up to the OS but the developers.
This is what I was curious about. I was confused since Linux gives users a lot of options to configure many things that most people wouldn't know or care about but something that was a normal occurrence for windows users would mostly not exist here.
Since developers do not bother to make software packages where users can freely choose the installation and configuration directory, I guess that there is not much of a demand for it then. In this case, what would you do if you wanted a portable app? For example? I do recall LibreOffice had a portable version that could be run from a USB without it being installed. I think this was on windows.
Can I with terminal commands somehow configure appimage or another package to keep configurations where the executable itself is located in?

$ whereis firefox
firefox: /usr/bin/firefox
Thanks for this command. I just realized another issue which got me to create this thread. I have the system package of Firefox that came with my linux mint installation. Suppose I wanna switch to the flatpak version but i wanna keep all my settings, bookmarks, extensions (down to all of their customizaizon) and my history. What settings should I copy and to ensure everything is copied? I have gave all flatpaks access to my user files so they do not create a duplicate of everything by default using flatseal.

Another issue I have is that how do I know the full name of the app? For example, there is a dictionary app called goldendict. I tried goldendict and goldendict-ng with whereis command and apparently this is not the right name. The flatpak is installed under io.github.xiaoyifang.goldendict_ng. Even this doesn't work. So, that's why I thought that if I could assign where to install my software and where it is going to keep its configuration, this whole issue would be fixed.
 
This is what I was curious about. I was confused since Linux gives users a lot of options to configure many things that most people wouldn't know or care about but something that was a normal occurrence for windows users would mostly not exist here.
Since developers do not bother to make software packages where users can freely choose the installation and configuration directory, I guess that there is not much of a demand for it then. In this case, what would you do if you wanted a portable app? For example? I do recall LibreOffice had a portable version that could be run from a USB without it being installed. I think this was on windows.
Can I with terminal commands somehow configure appimage or another package to keep configurations where the executable itself is located in?


Thanks for this command. I just realized another issue which got me to create this thread. I have the system package of Firefox that came with my linux mint installation. Suppose I wanna switch to the flatpak version but i wanna keep all my settings, bookmarks, extensions (down to all of their customizaizon) and my history. What settings should I copy and to ensure everything is copied? I have gave all flatpaks access to my user files so they do not create a duplicate of everything by default using flatseal.

Another issue I have is that how do I know the full name of the app? For example, there is a dictionary app called goldendict. I tried goldendict and goldendict-ng with whereis command and apparently this is not the right name. The flatpak is installed under io.github.xiaoyifang.goldendict_ng. Even this doesn't work. So, that's why I thought that if I could assign where to install my software and where it is going to keep its configuration, this whole issue would be fixed.
I do recall LibreOffice had a portable version that could be run from a USB without it being installed. I think this was on windows.
As long as the app on the usb is executable, and it's compatible with the operating system, it can be run by the system as soon as the system has access to it which is by mounting the usb device into the system.

I have the system package of Firefox that came with my linux mint installation. Suppose I wanna switch to the flatpak version but i wanna keep all my settings, bookmarks, extensions (down to all of their customizaizon) and my history
If one installs a second firefox, that new firefox will create a new profile and a new set of configurations under the /home/$USER/.mozilla/firefox directory. There will be a file in that directory named: profiles.ini, which carries the information about the different profiles on the system.

In relation to the settings, each firefox has their own settings menus which can be adjusted in the normal way described in post #3. Since the issue here is a firefox from a distro repo and an appimage, they may have small differences in particular settings that are available for the user, so it's wise to consider adjusting them individually.

In relation to bookmarks, there is a "Manage Bookmarks" facility in firefox under the "Bookmarks" menu item where the user can choose to back up the bookmarks, import them, and export them to another browser so that the bookmarks in both browsers are the same.

In relation to extensions and add-ons, it's worth considering downloading these for the second installation rather than transferring them from one browser to the next. Since the likelihood is that the browsers have been installed at different times, the newer installation will benefit from updated versions of the extensions and add-ons if they exist. By making newer downloads rather than simply transferring the relevant .xpi files from the extensions directory in the firefox config files, the user enables the browser to integrate all the information about the extensions that it needs to since there are quite a few files that are involved as one can observe by viewing the number of files with "extension" in their name in the config directories.

If there are two or more firefoxes, each will have its own directory for configurations in the user's home directory, and though more space is used in this arrangement, it's a "good thing" because it avoids software conflicts, especially ones inadvertently created by the user.

Another issue I have is that how do I know the full name of the app? For example, there is a dictionary app called goldendict. I tried goldendict and goldendict-ng with whereis command and apparently this is not the right name. The flatpak is installed under io.github.xiaoyifang.goldendict_ng. Even this doesn't work. And this is why I made this thread

In relation to goldendict, it is in the debian repositories and its executable is its name: goldendict, shown here:
Code:
$ apt-file list goldendict
goldendict: /usr/bin/goldendict
goldendict: /usr/share/applications/org.goldendict.GoldenDict.desktop
goldendict: /usr/share/doc/goldendict/changelog.Debian.gz
<snip>
It's in the /usr/bin directory where most user executables are located, so it can be run by calling its name.

The goldendict app is available as an appimage here:
There are instructions for its installation there. In linux the user can name an executable themselves as long as it doesn't include certain characters. The executable will run if it has the permissions to run, e.g. give the executable permission to be executed with the command: chmod 755 <executableName>, and then run it by calling "executableName". Since appimages are single files, renaming, if one chooses to do that, is a simple matter. The executable needs to be in the $PATH, or it can be executed from it's location with the shell notation: ./executableName.

For the flatpak version, I can't say because I don't use them. Sorry.

On the issue of using a usb for running executables like libreoffice mentioned in post #13, it may be of interest to consider creating a live usb with persistence. If one wants to have greater certainty that any apps would work, regardless of the computer which the usb was plugged into, then this is an option. The computers used would need to be set to usb boot, which is usually possible, but not always.
 
Last edited:
Windows users who turn to linux almost invariably apply their skills, knowledge, thinking frameworks, categories etc from Windows to linux. It's the natural thing to do. As one comes to see linux for what it is however, new skills and knowledge inevitably develop because the two operating systems are very different in so many respects and so make quite different demands of the user. What seems "scattered" at first, will later be seen to have a logical basis. What seemed "confusing" initially will become clarified. What was seen as perhaps less than the promised "freedom" of linux will come to be seen as the relative concept that it is, and not as absolute. That freedom however, will almost invariably come to be seen to provide many more options for the user and developer than proprietary operating systems provide.
Amen to that.
I like things when they are 'nut shelled' The above does just that.
 
PS: Sorry about that Chris.

No need for an apology, James - the question was understandable. I am the last person to want to provide obstacles to the acquisition of knowledge.

Cheers

Chris
 
As long as the app on the usb is executable, and it's compatible with the operating system, it can be run by the system as soon as the system has access to it which is by mounting the usb device into the system.
I understand that it can be run, but won't it still save settings in a .appname folder in the home directory. Could it be theoretically made to store configurations inside the usb as well? Is there a specific reason as to why app developers do not offer configuration directory as an explicit option?



In relation to goldendict, it is in the debian repositories and its executable is its name: goldendict, shown here:
"whereis goldendict" literally returns nothing. So, I am trying to understand how I can "locate" an app on Linux. I know I refer to it as "goldendict", but the system seems to be referring to it with a different name (at least for the flatpak version). How do I find that out?
 
I understand that it can be run, but won't it still save settings in a .appname folder in the home directory. Could it be theoretically made to store configurations inside the usb as well? Is there a specific reason as to why app developers do not offer configuration directory as an explicit option?




"whereis goldendict" literally returns nothing. So, I am trying to understand how I can "locate" an app on Linux. I know I refer to it as "goldendict", but the system seems to be referring to it with a different name (at least for the flatpak version). How do I find that out?
Yes, the appimage will save user configuration settings in the user's home directory under a dotfile as outlined in post #3. If the appimage is run from a usb, the executable will be loaded from the usb into RAM which is in the system, so it will use the system's conventional locations, hence a dotfile. The main way in which to keep the configs on the usb is to have the usb as a bootable live disk with persistence.

Searching for apps on linux mint and debian based distros can be done with the apt command in a terminal shown below. The following output shows that the goldendict app is in the debian repositories and provides a lot of information about it:
Code:
$ apt show goldendict
Package: goldendict
Version: 1.5.0+git20240629-2
Priority: optional
Section: utils
Maintainer: Dmitry E. Oboukhov <[email protected]>
Installed-Size: 10.0 MB
Depends: libao4 (>= 1.1.0), libavcodec61 (>= 7:7.0), libavformat61 (>= 7:7.0), libavutil59 (>= 7:7.0), libbz2-1.0, libc6 (>= 2.38), libeb16t64 (>= 4.4.3), libgcc-s1 (>= 3.0), libhunspell-1.7-0, liblzma5 (>= 5.1.1alpha+20120614), liblzo2-2 (>= 2.02), libopencc1.1 (>= 1.1.9~), libqt5core5t64 (>= 5.15.1), libqt5gui5t64 (>= 5.12.2) | libqt5gui5-gles (>= 5.12.2), libqt5help5 (>= 5.15.1), libqt5multimedia5 (>= 5.6.0~beta), libqt5network5t64 (>= 5.15.1), libqt5printsupport5t64 (>= 5.0.2), libqt5svg5 (>= 5.6.0~beta), libqt5webkit5 (>= 5.212.0~alpha3), libqt5widgets5t64 (>= 5.15.1), libqt5x11extras5 (>= 5.6.0), libqt5xml5t64 (>= 5.0.2), libstdc++6 (>= 14), libswresample5 (>= 7:7.0), libtiff6 (>= 4.0.3), libvorbisfile3 (>= 1.1.2), libx11-6, libxtst6, libzstd1 (>= 1.5.5), zlib1g (>= 1:1.2.2.3), libqt5multimedia5-plugins
Suggests: goldendict-wordnet
Homepage: http://goldendict.org
Tag: interface::graphical, interface::x11, role::program, uitoolkit::qt,
 works-with::dictionary, x11::application
Download-Size: 3,517 kB
APT-Sources: http://ftp.au.debian.org/debian trixie/main amd64 Packages
Description: feature-rich dictionary lookup program
 Features:
  * Use of WebKit for an accurate articles' representation,
    complete with all formatting, colors, images and links.
  * Support of multiple dictionary file formats, namely:
    - Babylon .BGL files, complete with images and resources
    - StarDict .ifo/.dict./.idx/.syn dictionaries
    - Dictd .index/.dict(.dz) dictionary files
    - ABBYY Lingvo .dsl source files, together with abbreviations.
      The files can be optionally compressed with dictzip. Dictionary
      resources can be packed together into a .zip file.
    - ABBYY Lingvo .lsa/.dat audio archives. Those can be indexed
       separately, or be referred to from .dsl files.
  * Support for Wikipedia, Wiktionary, or any other MediaWiki-based
    sites to perform lookups in.
  * Ability to use arbitrary websites as dictionaries via templated
     Url patterns.
  * Hunspell-based morphology system, used for word stemming and
    spelling suggestions.
  * Ability to index arbitrary directories with audio files for
     pronunciation lookups.
  * Full Unicode case, diacritics, punctuation and whitespace folding.
    This means the ability to type in words without any accents,
    correct case, punctuation or spaces (e.g. typing 'Grussen' would
    yield 'grüßen' in German dictionaries).
  * Scan popup functionality. A small window pops up with the
    translation of a word chosen from another application.
  * Support for global hotkeys. You can spawn the program window at
    any point, or directly translate a word from the clipboard.
  * Tabbed browsing in a modern Qt 5 interface.

If the user in unsure of the name of the app they are searching, they can use the tab completion feature. For example, if only "golden" was known for certain, the following tab completion will reveal all apps available starting with that text:
Code:
$ apt show golden <TAB>
goldencheetah         goldendict-ng         goldeneye      
goldendict            goldendict-webengine
The <TAB> means to press the tab key after the word "golden", and press it a few times to get everything it can.

Note that "whereis goldendict" will only output where the location is if the app is already installed on the system from the repos. The apt command above searches the repos.
 
Last edited:
So, I am trying to understand how I can "locate" an app on Linux. I know I refer to it as "goldendict", but the system seems to be referring to it with a different name (at least for the flatpak version). How do I find that out?
To give a little extra info:
If it's in flatpak, it's managed as a user (edit: more or less), and not system. So whereis won't work. In general, system-wide stuff is in:
/bin/, /sbin/, /usr/bin/, usr/sbin/, /usr/local/bin, /usr/lib/, /usr/lib32/... and the .local/ equivalents for user-installed stuff and that's why you use whereis for this stuff. Flatpaks and all the other junk ignores convention. I did a quick websearch and flatpaks are installed in:
/var/lib/flatpak/app/ for system-wide stuff (baaaaad idea! /usr/local/flatpak/blahblahblah would've mad more sense)
~/.local/share/flatpak/app/ for local stuff (not idiomatic at all)
I suggest you really look into AppImages for what you want. You can put them anywhere and symlink them to a bin/ directory and/or make pretty .desktop files so they'll be available in menus, etc.

And to add to what @osprey mentioned about not knowing the name, tab auto-complete is a literal godsend!
But if you have no idea and you know what it does (eg dictionary I assume) apropos is very useful.
apropos dictionary
apropos office
Apparently, according to a quick search, the Flatpak equivalent is: flatpak search, so:
flatpak search dictionary
flatpak search office
... and so on.
 
Thank you, now I understand why whereis won't work as it won't apply to flatpaks.
Overall, what I got from this is that, technically, users could change installation and configuration directories of software, but it is just not worth it, since what we have currently just works?
 
Last edited:

Members online


Top