find /your/mp3/directory -type f -name "*.mp3" -exec test -f "/your/mp3/directory/$(basename -s .mp3 {}).txt" \; -exec mp3splt -A "/your/mp3/directory/$(basename -s .mp3 {}).txt" {} \;
This one liner should still work, even if your file names have spaces in them because find
now looks at each individual match, not the entire output. Using a for loop with the results of find
would create a lot of extra pieces of the file names because spaces separate the arguments. However, this single command is harder to read than using a for loop.
The idea behind this one is that search operators in find
evaluate to true or false. The first exec
tells find
to run the second exec
only if the file exists. If the file doesn’t exist, it just ignores it.
Yes, they are different because they are for different flatpak applications.
What’s in the files? Do they have a line called sockets
? Is that line set to x11
or x11-fallback
? Have you tried adding those options like sockets=wayland;x11;x11-fallback
? I usually get an error saying I can’t connect to the display or that X is missing when I revoke access to x11
or wayland
. Or did you remove x11
from your system?
It’s likely because it can’t access X11 or Wayland. To fix this, try editing the files in /home/your_username/.local/share/flatpak/overrides/
like I mentioned earlier. Specifically, look for the sockets
line and make sure it includes wayland
, x11
, and x11-fallback
like sockets=wayland;x11;x11-fallback;
. This should help you launch flatpaks that need X11 access.
man 1 flatpak-override
Overrides the application specified runtime requirements. This can be used to grant a sandboxed application more or less resources than it requested.
By default the application gets access to the resources it requested when it is started. But the user can override it on a particular instance by specifying extra arguments to flatpak run, or every time by using flatpak override.
The application overrides are saved in text files residing in $XDG_DATA_HOME/flatpak/overrides in user mode.
Scroll down, you will see the --reset
option to remove the overrides.
I noticed you used sudo
to run the command, so I think the override files are stored in /var/lib/flatpak/overrides/
. To get everything back to normal, try deleting everything inside that directory.
If you want to override the system-wide settings, you can create files in the same format as the ones in /var/lib/flatpak/overrides/
, but put them in /home/your_username/.local/share/flatpak/overrides/
.
To generate the pre-config settings for a flatpak, you can use the flatpak -m info app_id
command. This will show you some info about the flatpak, and the -m
option will print out the metadata. You can also save this info to a file by running flatpak -m info app_id > ~/.local/share/flatpak/overrides/app_id
.
When you edit the file, pay attention to the Context
, System Bus Policy
, and Session Bus Policy
sections and delete everything else. By default, flatpak is set to share some resources, but you can deny access by adding an exclamation mark before the resource, for example, you could change shared=network
to shared=!network
.
If you’re looking for a user-friendly way to manage flatpak permissions, I recommend checking out flatseal
. It’s a great GUI tool that can make it easier for you in this case.
That being said, it’s always a good idea to be cautious when using commands posted online. Make sure you understand what you’re doing before copying and pasting anything into your terminal. And if you’re ever unsure about something, there are some great resources available to help you out.
One of the best places to start is the Arch wiki, and I think, man
is a friend everybody needs!
This helps distinguish commands that
find
runs from its own arguments. Imagine howfind
would figure out which commands it’s executing, and what their arguments are. The easiest way to do this is to use the standard end-of-command character. That way, you don’t need to create a special way to separate things. You can even put onefind
command inside another.