Commit Graph

19 Commits

Author SHA1 Message Date
Lassulus
1468e8f52d
Merge pull request #165111 from toonn/darwin-bundle-outputBin
make-darwin-bundle: Use output bin
2022-04-22 12:04:09 +01:00
toonn
261b736521
desktopToDarwinBundle: Implement %F and %U Exec field codes
Similar to the implementation of the `%f` and `%u` field codes. In this
case the amount of arguments passed poses no problem but the position
could, at least in theory.

This finishes the implementation of all the non-deprecated field codes.
As a part of that, repetitions of field codes are left alone. Originally
all field codes were removed. Now we replace only the first occurence.
This is correct for at least `%f`, `%u`, `%F` and `%U` because at most
one of them is permitted.

Shortcomings:

  1. We replace `%[cfFikuU]` patterns one at a time. This means if the
     right field code appears as part of the rest of the `Exec` field or
     in a field code that was substituted earlier.

  2. If any field code is repeated, only the first occurence is
     substituted.
2022-03-31 15:27:39 +02:00
toonn
f31d945755
desktopToDarwinBundle: Implement %f and %u Exec field codes
`%f` and `%u` are used to signal the program only accepts a single file
or URI argument. I do not believe there's a way to signal this
information to macOS but it is possible the program really won't work if
multiple files are passed and it's possible the relative position of
`%i`, `%c` or `%k` matters. So we replace `%f` or `%u` with `$1`. That
way we only pass one file in the (possibly significant) position of the
field code.
2022-03-31 14:04:52 +02:00
toonn
196f989ae8
desktopToDarwinBundle: Implement %i Exec field code 2022-03-31 13:44:15 +02:00
toonn
4dc94e1489
desktopToDarwinBundle: Implement %c Exec field code 2022-03-31 13:00:11 +02:00
toonn
4a749a89c4
desktopToDarwinBundle: Implement %k Exec field code 2022-03-31 12:47:54 +02:00
toonn
30e8e0a9a3
desktopToDarwinBundle: Change empty directory test
`ls -1 "$iconsdir/"*` listed the source directory for me when the glob
had no matches. Switching to `-A` circumvents this problem and has the
added advantage that it cannot run into argument list length limits.
2022-03-31 12:47:54 +02:00
toonn
7ef15c96dc
desktopToDarwinBundle: Add X-macOS-Exec and log editing Exec
Co-authored-by: milahu <milahu@gmail.com>
2022-03-30 16:42:13 +02:00
toonn
b52a962141
desktopToDarwinBundle: Complete field code removal
Checked the desktop entry spec, there's other field codes than `%[fFuU]`
and those can in fact occur more than once, hence dropping '$' and
adding `/g`.
2022-03-30 16:42:13 +02:00
toonn
99f387e462
desktopToDarwinBundle: Fixup Exec
The "Exec" key in desktop items sometimes has one of the `%f`, `%F`,
`%u` and `%U` suffixes, which specify whether the command takes a file,
multiple files or a generalized URL or URLs. Darwin application bundles
do no understand this syntax so we do the next best thing, which is
simply dropping it.
2022-03-30 16:42:02 +02:00
toonn
6aa5c53748
desktopToDarwinBundle: Fall back to scaling available
Sometimes scalable icons or icons within the thresholds from the desired
resolutions aren't available. In this case it's still nicer to end up
with a blocky scaled icon rather than the generic default.
2022-03-21 14:20:03 +01:00
toonn
08a2b83c96
desktopToDarwinBundle: Include TOC in generated ICNS file
In order to compose a `.icns` file containing multiple icon sizes I had
to pass `--toc` to `icnsutil`. This did not seem to have a negative
effect on `.icns` containing only a single icon size.
2022-03-21 14:20:03 +01:00
toonn
c3d974e441
desktopToDarwinBundle: Simplify double negation 2022-03-21 14:20:03 +01:00
toonn
21fe5d3b8b
desktopToDarwinBundle: Drop 48x48 size
On macOS 10.13 the 48x48 icon size is not supported. It results in a
corrupted image being displayed. I suspect the image data is being
truncated to what it expects for 32x32 or maybe data is read for
128x128, which would be a buffer overflow.
2022-03-21 14:20:03 +01:00
toonn
a8d7ac1b11
make-darwin-bundle: Use actual bin output
The script and the hook assume `/bin` is in `$out` but that's not always
true for a multi-output derivation.
2022-03-21 13:48:20 +01:00
Randy Eckenrode
8a2fdda938
desktopToDarwinBundle: use Bash arithmetic
Co-authored-by: Uri Baghin <uri@canva.com>
2022-03-01 22:00:13 -05:00
Randy Eckenrode
d2748e84f8
desktopToDarwinBundle: support 48x48 icons 2022-03-01 21:59:22 -05:00
Randy Eckenrode
30a09ae9ac
desktopToDarwinBundle: fix squircle icons
- Convert icons to a single .icns file; and
- Provide an opt-out via X-macOS-Squircle in the desktop item to
  override the squircle behavior when the source icons look bad when
  converted automatically.
2022-02-23 20:29:52 -05:00
Matthew Leach
850fc57f56 build-support: make-darwin-bundle: new
Add a new module that allows darwin-style application bundles to be
created
2022-02-10 18:53:53 +00:00