fix: follow symlinks when grepping for desktop entries#35
Open
cluther wants to merge 1 commit into
Open
Conversation
When running browsers installed via the Nix home-manager, the browser .desktop files will be found within `~/.nix-profile/share/applications/` and `~/.nix-profile/share` will be in `$XDG_DATA_DIRS`. The `~/.nix-profile/share` directory is a symlink, and `grep -r` will follow that successfully, but then the `applications/firefox.desktop` within will also be a symlink. A `grep -r` won't follow that, so we have to use `grep -R` to follow all symlinks to actually find the desktop entries. For example, without this fix, I see the following when running `linkquisition https://google.com`. failed to call grep for determining a .desktop entry for firefox -P Personal --class=firefox-personal %U: exit status 1 failed to call grep for determining a .desktop entry for google-chrome-stable --user-data-dir="/home/cluther/.config/google-chrome-personal" %U: exit status 1 With this change, linkquisition is able to auto-detect all of the browser entries I have, and launch into them without error.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thank you for writing linkquisition. It's such a great default browser
replacement for those of us that like to use different browsers and profiles
for different purposes. It does just what I need, and no more. I hope you find
this pull request acceptable. It's a small thing, but needed for those who have
symlinks within their $XDG_DATA_DIRS paths. I don't know how common that is,
but it at least affects people installing browsers with Nix home-manager.
When running browsers installed via the Nix home-manager, the browser
.desktop files will be found within
~/.nix-profile/share/applications/and
~/.nix-profile/sharewill be in$XDG_DATA_DIRS. The~/.nix-profile/sharedirectory is a symlink, andgrep -rwill followthat successfully, but then the
applications/firefox.desktopwithinwill also be a symlink. A
grep -rwon't follow that, so we have to usegrep -Rto follow all symlinks to actually find the desktop entries.For example, without this fix, I see the following when running
linkquisition https://google.com.With this change, linkquisition is able to auto-detect all of the
browser entries I have, and launch into them without error.