From da5af9b0ea581b0ad16ddb12ad00aaa2419d8946 Mon Sep 17 00:00:00 2001
From: Cedric Lewe <0skillallluck@pm.me>
Date: Sat, 9 May 2026 16:48:53 +0200
Subject: [PATCH 1/2] Add macOS-specific UI icons
---
README.md | 1 +
app/dialogs/preferences/player.go | 2 +-
assets/icons-darwin/LICENSE | 21 ++++++++
.../actions/audio-speakers-symbolic.svg | 1 +
.../actions/audio-volume-high-symbolic.svg | 1 +
.../actions/audio-x-generic-symbolic.svg | 1 +
.../actions/avatar-default-symbolic.svg | 1 +
.../icons-darwin/actions/brush-symbolic.svg | 1 +
.../actions/camera-video-symbolic.svg | 1 +
.../actions/check-plain-symbolic.svg | 1 +
.../icons-darwin/actions/display-symbolic.svg | 1 +
.../actions/emblem-system-symbolic.svg | 1 +
.../actions/filmstrip-symbolic.svg | 1 +
.../icons-darwin/actions/folder-symbolic.svg | 1 +
.../icons-darwin/actions/go-home-symbolic.svg | 1 +
.../actions/image-missing-symbolic.svg | 1 +
.../actions/image-x-generic-symbolic.svg | 1 +
assets/icons-darwin/actions/left-symbolic.svg | 1 +
.../actions/list-add-symbolic.svg | 1 +
.../icons-darwin/actions/loupe-symbolic.svg | 1 +
.../actions/media-playback-pause-symbolic.svg | 1 +
.../actions/media-playback-start-symbolic.svg | 1 +
.../actions/media-seek-backward-symbolic.svg | 1 +
.../actions/media-seek-forward-symbolic.svg | 1 +
.../actions/media-skip-forward-symbolic.svg | 1 +
.../actions/package-x-generic-symbolic.svg | 1 +
.../icons-darwin/actions/people-symbolic.svg | 1 +
.../icons-darwin/actions/right-symbolic.svg | 1 +
.../icons-darwin/actions/science-symbolic.svg | 1 +
.../sentiment-dissatisfied-symbolic.svg | 1 +
.../actions/settings-symbolic.svg | 1 +
.../actions/speedometer5-symbolic.svg | 1 +
.../actions/star-filled-symbolic.svg | 1 +
.../icons-darwin/actions/starred-symbolic.svg | 1 +
.../actions/system-log-out-symbolic.svg | 1 +
assets/icons-darwin/actions/tv-symbolic.svg | 1 +
.../actions/view-fullscreen-symbolic.svg | 1 +
.../actions/view-refresh-symbolic.svg | 1 +
.../actions/view-restore-symbolic.svg | 1 +
.../actions/window-close-symbolic.svg | 1 +
assets/meta/icons-darwin.gresource | Bin 0 -> 25568 bytes
assets/meta/icons-darwin.gresource.xml | 51 ++++++++++++++++++
main.go | 21 ++++----
resources_darwin.go | 17 ++++++
resources_other.go | 10 ++++
45 files changed, 147 insertions(+), 13 deletions(-)
create mode 100644 assets/icons-darwin/LICENSE
create mode 100644 assets/icons-darwin/actions/audio-speakers-symbolic.svg
create mode 100644 assets/icons-darwin/actions/audio-volume-high-symbolic.svg
create mode 100644 assets/icons-darwin/actions/audio-x-generic-symbolic.svg
create mode 100644 assets/icons-darwin/actions/avatar-default-symbolic.svg
create mode 100644 assets/icons-darwin/actions/brush-symbolic.svg
create mode 100644 assets/icons-darwin/actions/camera-video-symbolic.svg
create mode 100644 assets/icons-darwin/actions/check-plain-symbolic.svg
create mode 100644 assets/icons-darwin/actions/display-symbolic.svg
create mode 100644 assets/icons-darwin/actions/emblem-system-symbolic.svg
create mode 100644 assets/icons-darwin/actions/filmstrip-symbolic.svg
create mode 100644 assets/icons-darwin/actions/folder-symbolic.svg
create mode 100644 assets/icons-darwin/actions/go-home-symbolic.svg
create mode 100644 assets/icons-darwin/actions/image-missing-symbolic.svg
create mode 100644 assets/icons-darwin/actions/image-x-generic-symbolic.svg
create mode 100644 assets/icons-darwin/actions/left-symbolic.svg
create mode 100644 assets/icons-darwin/actions/list-add-symbolic.svg
create mode 100644 assets/icons-darwin/actions/loupe-symbolic.svg
create mode 100644 assets/icons-darwin/actions/media-playback-pause-symbolic.svg
create mode 100644 assets/icons-darwin/actions/media-playback-start-symbolic.svg
create mode 100644 assets/icons-darwin/actions/media-seek-backward-symbolic.svg
create mode 100644 assets/icons-darwin/actions/media-seek-forward-symbolic.svg
create mode 100644 assets/icons-darwin/actions/media-skip-forward-symbolic.svg
create mode 100644 assets/icons-darwin/actions/package-x-generic-symbolic.svg
create mode 100644 assets/icons-darwin/actions/people-symbolic.svg
create mode 100644 assets/icons-darwin/actions/right-symbolic.svg
create mode 100644 assets/icons-darwin/actions/science-symbolic.svg
create mode 100644 assets/icons-darwin/actions/sentiment-dissatisfied-symbolic.svg
create mode 100644 assets/icons-darwin/actions/settings-symbolic.svg
create mode 100644 assets/icons-darwin/actions/speedometer5-symbolic.svg
create mode 100644 assets/icons-darwin/actions/star-filled-symbolic.svg
create mode 100644 assets/icons-darwin/actions/starred-symbolic.svg
create mode 100644 assets/icons-darwin/actions/system-log-out-symbolic.svg
create mode 100644 assets/icons-darwin/actions/tv-symbolic.svg
create mode 100644 assets/icons-darwin/actions/view-fullscreen-symbolic.svg
create mode 100644 assets/icons-darwin/actions/view-refresh-symbolic.svg
create mode 100644 assets/icons-darwin/actions/view-restore-symbolic.svg
create mode 100644 assets/icons-darwin/actions/window-close-symbolic.svg
create mode 100644 assets/meta/icons-darwin.gresource
create mode 100644 assets/meta/icons-darwin.gresource.xml
create mode 100644 resources_darwin.go
create mode 100644 resources_other.go
diff --git a/README.md b/README.md
index 4283fb1..2f41099 100644
--- a/README.md
+++ b/README.md
@@ -97,6 +97,7 @@ The following projects and resources served as inspiration or were helpful durin
- [puregotk](https://codeberg.org/puregotk/puregotk) for making this project possible with only minimal CGO bindings
- [Plex](https://www.plex.tv/) for the media server platform
- [Dråfølin](https://drafolin.ch/) for the beautiful icon
+- [Phosphor Icons](https://phosphoricons.com) (MIT) for the macOS icon set
[license-shield]: https://img.shields.io/github/license/0SkillAllLuck/Scanline?style=for-the-badge
diff --git a/app/dialogs/preferences/player.go b/app/dialogs/preferences/player.go
index cc06323..19ce3fd 100644
--- a/app/dialogs/preferences/player.go
+++ b/app/dialogs/preferences/player.go
@@ -28,4 +28,4 @@ var playerPreferences = PreferencesPage(
preference.Experimental().BindAutoSkipCredits(&sr.Object, "active")
}),
).Title(gettext.Get("Player")),
-).Title(gettext.Get("Player")).IconName("play")
+).Title(gettext.Get("Player")).IconName("media-playback-start-symbolic")
diff --git a/assets/icons-darwin/LICENSE b/assets/icons-darwin/LICENSE
new file mode 100644
index 0000000..78c9810
--- /dev/null
+++ b/assets/icons-darwin/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Phosphor Icons
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/assets/icons-darwin/actions/audio-speakers-symbolic.svg b/assets/icons-darwin/actions/audio-speakers-symbolic.svg
new file mode 100644
index 0000000..0696472
--- /dev/null
+++ b/assets/icons-darwin/actions/audio-speakers-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/audio-volume-high-symbolic.svg b/assets/icons-darwin/actions/audio-volume-high-symbolic.svg
new file mode 100644
index 0000000..3ec529e
--- /dev/null
+++ b/assets/icons-darwin/actions/audio-volume-high-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/audio-x-generic-symbolic.svg b/assets/icons-darwin/actions/audio-x-generic-symbolic.svg
new file mode 100644
index 0000000..fbf942b
--- /dev/null
+++ b/assets/icons-darwin/actions/audio-x-generic-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/avatar-default-symbolic.svg b/assets/icons-darwin/actions/avatar-default-symbolic.svg
new file mode 100644
index 0000000..cd7c86f
--- /dev/null
+++ b/assets/icons-darwin/actions/avatar-default-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/brush-symbolic.svg b/assets/icons-darwin/actions/brush-symbolic.svg
new file mode 100644
index 0000000..425af26
--- /dev/null
+++ b/assets/icons-darwin/actions/brush-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/camera-video-symbolic.svg b/assets/icons-darwin/actions/camera-video-symbolic.svg
new file mode 100644
index 0000000..3a0b408
--- /dev/null
+++ b/assets/icons-darwin/actions/camera-video-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/check-plain-symbolic.svg b/assets/icons-darwin/actions/check-plain-symbolic.svg
new file mode 100644
index 0000000..b25e997
--- /dev/null
+++ b/assets/icons-darwin/actions/check-plain-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/display-symbolic.svg b/assets/icons-darwin/actions/display-symbolic.svg
new file mode 100644
index 0000000..94a3b1c
--- /dev/null
+++ b/assets/icons-darwin/actions/display-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/emblem-system-symbolic.svg b/assets/icons-darwin/actions/emblem-system-symbolic.svg
new file mode 100644
index 0000000..d314f88
--- /dev/null
+++ b/assets/icons-darwin/actions/emblem-system-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/filmstrip-symbolic.svg b/assets/icons-darwin/actions/filmstrip-symbolic.svg
new file mode 100644
index 0000000..3a0b408
--- /dev/null
+++ b/assets/icons-darwin/actions/filmstrip-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/folder-symbolic.svg b/assets/icons-darwin/actions/folder-symbolic.svg
new file mode 100644
index 0000000..5e4fb24
--- /dev/null
+++ b/assets/icons-darwin/actions/folder-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/go-home-symbolic.svg b/assets/icons-darwin/actions/go-home-symbolic.svg
new file mode 100644
index 0000000..6346350
--- /dev/null
+++ b/assets/icons-darwin/actions/go-home-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/image-missing-symbolic.svg b/assets/icons-darwin/actions/image-missing-symbolic.svg
new file mode 100644
index 0000000..fbc41ad
--- /dev/null
+++ b/assets/icons-darwin/actions/image-missing-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/image-x-generic-symbolic.svg b/assets/icons-darwin/actions/image-x-generic-symbolic.svg
new file mode 100644
index 0000000..211e18c
--- /dev/null
+++ b/assets/icons-darwin/actions/image-x-generic-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/left-symbolic.svg b/assets/icons-darwin/actions/left-symbolic.svg
new file mode 100644
index 0000000..1540c60
--- /dev/null
+++ b/assets/icons-darwin/actions/left-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/list-add-symbolic.svg b/assets/icons-darwin/actions/list-add-symbolic.svg
new file mode 100644
index 0000000..bd65073
--- /dev/null
+++ b/assets/icons-darwin/actions/list-add-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/loupe-symbolic.svg b/assets/icons-darwin/actions/loupe-symbolic.svg
new file mode 100644
index 0000000..67b7d35
--- /dev/null
+++ b/assets/icons-darwin/actions/loupe-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/media-playback-pause-symbolic.svg b/assets/icons-darwin/actions/media-playback-pause-symbolic.svg
new file mode 100644
index 0000000..48de39b
--- /dev/null
+++ b/assets/icons-darwin/actions/media-playback-pause-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/media-playback-start-symbolic.svg b/assets/icons-darwin/actions/media-playback-start-symbolic.svg
new file mode 100644
index 0000000..9a395d4
--- /dev/null
+++ b/assets/icons-darwin/actions/media-playback-start-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/media-seek-backward-symbolic.svg b/assets/icons-darwin/actions/media-seek-backward-symbolic.svg
new file mode 100644
index 0000000..b14545f
--- /dev/null
+++ b/assets/icons-darwin/actions/media-seek-backward-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/media-seek-forward-symbolic.svg b/assets/icons-darwin/actions/media-seek-forward-symbolic.svg
new file mode 100644
index 0000000..18685da
--- /dev/null
+++ b/assets/icons-darwin/actions/media-seek-forward-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/media-skip-forward-symbolic.svg b/assets/icons-darwin/actions/media-skip-forward-symbolic.svg
new file mode 100644
index 0000000..ca4d7ff
--- /dev/null
+++ b/assets/icons-darwin/actions/media-skip-forward-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/package-x-generic-symbolic.svg b/assets/icons-darwin/actions/package-x-generic-symbolic.svg
new file mode 100644
index 0000000..da03b34
--- /dev/null
+++ b/assets/icons-darwin/actions/package-x-generic-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/people-symbolic.svg b/assets/icons-darwin/actions/people-symbolic.svg
new file mode 100644
index 0000000..7f7b6ca
--- /dev/null
+++ b/assets/icons-darwin/actions/people-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/right-symbolic.svg b/assets/icons-darwin/actions/right-symbolic.svg
new file mode 100644
index 0000000..bab5b02
--- /dev/null
+++ b/assets/icons-darwin/actions/right-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/science-symbolic.svg b/assets/icons-darwin/actions/science-symbolic.svg
new file mode 100644
index 0000000..d7d75d9
--- /dev/null
+++ b/assets/icons-darwin/actions/science-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/sentiment-dissatisfied-symbolic.svg b/assets/icons-darwin/actions/sentiment-dissatisfied-symbolic.svg
new file mode 100644
index 0000000..a3466bd
--- /dev/null
+++ b/assets/icons-darwin/actions/sentiment-dissatisfied-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/settings-symbolic.svg b/assets/icons-darwin/actions/settings-symbolic.svg
new file mode 100644
index 0000000..9a20171
--- /dev/null
+++ b/assets/icons-darwin/actions/settings-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/speedometer5-symbolic.svg b/assets/icons-darwin/actions/speedometer5-symbolic.svg
new file mode 100644
index 0000000..c9cf470
--- /dev/null
+++ b/assets/icons-darwin/actions/speedometer5-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/star-filled-symbolic.svg b/assets/icons-darwin/actions/star-filled-symbolic.svg
new file mode 100644
index 0000000..d6723c9
--- /dev/null
+++ b/assets/icons-darwin/actions/star-filled-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/starred-symbolic.svg b/assets/icons-darwin/actions/starred-symbolic.svg
new file mode 100644
index 0000000..1634157
--- /dev/null
+++ b/assets/icons-darwin/actions/starred-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/system-log-out-symbolic.svg b/assets/icons-darwin/actions/system-log-out-symbolic.svg
new file mode 100644
index 0000000..7bf5110
--- /dev/null
+++ b/assets/icons-darwin/actions/system-log-out-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/tv-symbolic.svg b/assets/icons-darwin/actions/tv-symbolic.svg
new file mode 100644
index 0000000..4f24a99
--- /dev/null
+++ b/assets/icons-darwin/actions/tv-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/view-fullscreen-symbolic.svg b/assets/icons-darwin/actions/view-fullscreen-symbolic.svg
new file mode 100644
index 0000000..120ee2f
--- /dev/null
+++ b/assets/icons-darwin/actions/view-fullscreen-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/view-refresh-symbolic.svg b/assets/icons-darwin/actions/view-refresh-symbolic.svg
new file mode 100644
index 0000000..978fd55
--- /dev/null
+++ b/assets/icons-darwin/actions/view-refresh-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/view-restore-symbolic.svg b/assets/icons-darwin/actions/view-restore-symbolic.svg
new file mode 100644
index 0000000..7ef865a
--- /dev/null
+++ b/assets/icons-darwin/actions/view-restore-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/icons-darwin/actions/window-close-symbolic.svg b/assets/icons-darwin/actions/window-close-symbolic.svg
new file mode 100644
index 0000000..62544a8
--- /dev/null
+++ b/assets/icons-darwin/actions/window-close-symbolic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/meta/icons-darwin.gresource b/assets/meta/icons-darwin.gresource
new file mode 100644
index 0000000000000000000000000000000000000000..113271d9bb6b54d151f2726f4885cdc746a10273
GIT binary patch
literal 25568
zcmeHPYm6jUb-pGxu>nK;SU(oWZnq)33sp6B>s^V*FgS)mnKcNc0U0Dy+f%dCOilNs
zyXUb|A~}H{fhb}nB4_eKiQ+{5=_EwjB+d_z5EkMGh{q2w2#gSU2w?GK@7}8F
zuI^rGk=ffT;hwp5Z=b$Zb?V%6&poeOZ(Gj>-K;kf<>xlk&t9#*oU}^VRj6NvLU2{C
zLHp$>zgm`SQNN-ruS8vySE2ptviurqmK!I^Eok3b7T%lXcv)VH`qxqJM7gUhccX5j
z+=KG^vYbGD3grzbpFj58BgBKxaD&(v*8Y_d;klyIPZG{HuYZL4W5fiT;c+(UA^RI-n&2c=B`mX{Zezf_#ML65M?*-JWi4c!`^X7nXwr>Oc1E`Bsi2V=U
z{Se`7b6g%l{r=wq;1kP_5zhAAgrolYy+S(
z+gG9gD(W?q?|<&w+w9La>F@#6|M*TJHsA5gGla8EIzNRvdzTQOzVV~4H}*vsUT>oT{vd8K4KLA@5s~3jfpt&r?Pcdqof+&6x0+Ns!@~cR%>IqeOgAAC!^KW%RziUa$wL=g8_Xn3^MK%W#R=AroyErOofawy3A$I1ndR&l-`W)lI?AD`}U!IHt*$wZf9zG
ziKB(C8kT*igPrBJY8KfjKdH>5z&+I(^hf-T*>K7bZEMzpmZDh?`ncvj&I0nD
z0+=7@&3>_w4`#;sd*;Wv)-7RdIY|oTGFkOg$4^#bC$Ly5yMTJ96M5^2yNbRU6wvY~
zwAT4slHwdGaS{&ttno#Sn`f}T5_dgpAZjPDC!rxuARjtWXnBqwtYNXk8HQN1G3|%>
zXw>bU9nSE>(Uqkanpfxp=>$I1_r!72l{9r^VCiGYl+y8GM2EhU6ky*tu|1h3G^s6p
z)ZJV=g|S=M>=LsJu7S(yqwXSI#|>={=5XPmm$ZFc2Nx;%7*j*qJQTjo-{;^WUC;3>
zcme#V@L+NfojJG=6U#*pjm;cXh=ir^DPZdnnHf|pg$jSOd|qLSEIc{3a2+qz51qi3
zG6xseQgl&dVUHQI*bmq;N497UZpY5QFTL5j}lv}$YiHDTK)aPe>Y+z?`
zenI-RHZYpu8^$<1UoVd`aFP%#8CrhgB>tM`f-OMHILxp(2V4?MJ)8?_2!+T=Jf*P8
z6tXL|VkqiZ@x9auo&e7=>_S+{{)tQ{ACN;TBOT5TV4lm{U;^rgnfc
zaA9>`2rv<%&ZUl}76z|$Oq~Y3LMvo1xL_@wsnBm;oZ{Dl#7!{arbAG>S!bIP=VFeW
z)8_Tzu?@*pl&(t&D!X8Akx=|8>_`3tN!2P^_1&_i*T0@rLnA;
zyJlqA#x`(5--|?+SC!EM2cRWk1lbb)O%JvZZBAnm!o~>hZ82H)b0mW&d1yyWm1LC3aQlxomhl*Qb~WMS5>J-q`i>`YA|6b
zOt!nb7ZE1Vi@#!iU8o5L=b|=h=$Kc!p90XhF<@a$iIWg+S@^gZSB7%{i$m!*fS=ZL
zWQwR$6s{q2gOM`$(4sIyZy$~T9O#t7pABc1zXoR|x+9F}`L+G;TGiz*zv(|m8V#5m
z-V{jBE33$;T{JWAkp=_XniC$Onijq-NNpPK=J`f{Cr4Ic*rXEnb(r`6)hiq_xj~$D
z2AidSKfcka6k0L7R3W`v&{8}&qI|Sh7@J_x{!yjDgxyxd7Xy&O2n9sFK-qV9>8(Eb*`=Of3&3mt-XneHSr(jgJBv
zSwzMNg~-(}{Z181RM?fV1hN&>P7FwQzoi<1;LDmL?Q;8iR#DIk~
zaS%Cz*kZ6q9rS7o@-haLB8w_=86Scjg<1`xi65~e3jfo$R9m{Z>5GBG>f!|IJ2uW&7o80u9&~#f{R6vG^k>N~{>VJt
z$Kt!vuPL*+oK&(~Ei{)|c55|s78iBzNn{Lofaa*gI(;9SU$&hOX44?WSIv*xl)X;6
z%(d66{AcI|7fpX2CqJjga-SznWomRZrs+waYfD!hl+lbH31NW5)Mu4s)~?Q!I~;SvH;tPlfPl-DFD_X^SD%0
zfxWAj!ip>l;9P}+O6#eR(GU>E95xLxSagRYJKLC!HPA)$QS<9yJ;mu3RCMBEq0C{r
z1)X0pz7NxUN12|~J%KX|jrS;S3oAU8-{2nwve#-9C^q8afGx61fCa>%?eN;Xx
zPz{X{G0@%zs>w5kJNRVekbhFAoz^ANA!ujr6SQpYNP0kiaz5c}$Z!#4q1Inkj$!
zOZ#YE+DD@!BT{X0x)S!$%&`N9+sNE5@*y`w;1yEk{)3BU0}IhxcpR6CU8VXp_Qjgc
zC!4hQXsoK>DP0aQ=X7Xv>;Xh*&8M_w#DM`cNcf4+gi7Ma#;;*t}7xDo9>YiEnB^)yp$r-*CaX
z%;rt0J5DDI>Xd+rD9jb$8fOHTF=6TmF)2jCkRCKbO{@VIAq-iCT*G>zZJahW(^Rxk
zG+8ilz$ZGhq-q!^OU*KDOtOrzsnl4?%Cz9&s6Uul(Vo5%lK1}cfyNNiLbPSTJ@Mv$2yjp7z^4!MR!
zw+*3F)23z{)!<}TG*Mp41ri6-iM+#ERX0tOreYh`iZC_TuwjI28gfv_eE0js9*n0g
z7HBXc69Hi$t#!`DK`5
ze7zXozZ4+?5bNU_JyOQ-Y7F79)6ILGDUI#WynL#cI?i~S{S3V;d0wT;8cW`|>*N
z=KH#O5mkXi!31xpaFMjv*m94TLclGxioCH}eDZ}&NbN#Kzqf`H^sBwr&Ep?KR=^L6
z%x*X7AS~tK4O7fc^bw@uE51YQGl=m>c)tQ*j)%ts#J89~iMHpY(jxEjMFinxmvnP7
QXWre(dSndxSjdw94?m=7f&c&j
literal 0
HcmV?d00001
diff --git a/assets/meta/icons-darwin.gresource.xml b/assets/meta/icons-darwin.gresource.xml
new file mode 100644
index 0000000..ffb7439
--- /dev/null
+++ b/assets/meta/icons-darwin.gresource.xml
@@ -0,0 +1,51 @@
+
+
+
+
+ actions/media-playback-start-symbolic.svg
+ actions/media-playback-pause-symbolic.svg
+ actions/media-seek-backward-symbolic.svg
+ actions/media-seek-forward-symbolic.svg
+ actions/media-skip-forward-symbolic.svg
+ actions/view-fullscreen-symbolic.svg
+ actions/view-restore-symbolic.svg
+ actions/window-close-symbolic.svg
+ actions/audio-volume-high-symbolic.svg
+ actions/emblem-system-symbolic.svg
+
+ actions/loupe-symbolic.svg
+ actions/left-symbolic.svg
+ actions/right-symbolic.svg
+ actions/go-home-symbolic.svg
+ actions/starred-symbolic.svg
+
+ actions/check-plain-symbolic.svg
+
+ actions/camera-video-symbolic.svg
+ actions/tv-symbolic.svg
+ actions/audio-x-generic-symbolic.svg
+ actions/image-x-generic-symbolic.svg
+ actions/folder-symbolic.svg
+
+ actions/settings-symbolic.svg
+ actions/science-symbolic.svg
+ actions/brush-symbolic.svg
+ actions/speedometer5-symbolic.svg
+
+ actions/list-add-symbolic.svg
+ actions/view-refresh-symbolic.svg
+ actions/system-log-out-symbolic.svg
+
+ actions/sentiment-dissatisfied-symbolic.svg
+ actions/image-missing-symbolic.svg
+ actions/avatar-default-symbolic.svg
+
+ actions/people-symbolic.svg
+ actions/star-filled-symbolic.svg
+
+ actions/display-symbolic.svg
+ actions/filmstrip-symbolic.svg
+ actions/audio-speakers-symbolic.svg
+ actions/package-x-generic-symbolic.svg
+
+
diff --git a/main.go b/main.go
index 0ff933f..f695200 100644
--- a/main.go
+++ b/main.go
@@ -17,17 +17,13 @@ import (
//go:generate glib-compile-schemas ./assets/meta
//go:generate glib-compile-resources --sourcedir=./assets/icons --target=./assets/meta/icons.gresource ./assets/meta/icons.gresource.xml
+//go:generate glib-compile-resources --sourcedir=./assets/icons-darwin --target=./assets/meta/icons-darwin.gresource ./assets/meta/icons-darwin.gresource.xml
//go:generate scss ./assets/styles/style.scss ./assets/styles/style.css
//go:generate glib-compile-resources --sourcedir=./assets/styles --target=./assets/meta/styles.gresource ./assets/meta/styles.gresource.xml
-//go:embed assets/meta/icons.gresource
-var IconResources []byte
-
//go:embed assets/meta/styles.gresource
var StyleResources []byte
-func init() {
-}
func init() {
slog.SetLogLoggerLevel(slog.LevelInfo)
if os.Getenv("SCANLINE_DEBUG") == "1" {
@@ -35,17 +31,18 @@ func init() {
go tracking.LogAliveObjects()
}
- // Register resources
- iconResources, err := gio.NewResourceFromData(glib.NewBytes(IconResources, uint(len(IconResources))))
- if err != nil {
- log.Panicln("Failed to create resources: ", err)
+ for _, bundle := range IconResources {
+ registerResource(bundle)
}
- gio.ResourcesRegister(iconResources)
- styleResources, err := gio.NewResourceFromData(glib.NewBytes(StyleResources, uint(len(StyleResources))))
+ registerResource(StyleResources)
+}
+
+func registerResource(data []byte) {
+ res, err := gio.NewResourceFromData(glib.NewBytes(data, uint(len(data))))
if err != nil {
log.Panicln("Failed to create resources: ", err)
}
- gio.ResourcesRegister(styleResources)
+ gio.ResourcesRegister(res)
}
func main() {
diff --git a/resources_darwin.go b/resources_darwin.go
new file mode 100644
index 0000000..0c1f961
--- /dev/null
+++ b/resources_darwin.go
@@ -0,0 +1,17 @@
+//go:build darwin
+
+package main
+
+import _ "embed"
+
+//go:embed assets/meta/icons.gresource
+var iconBundleLinux []byte
+
+//go:embed assets/meta/icons-darwin.gresource
+var iconBundleDarwin []byte
+
+// IconResources lists icon GResource bundles to register, in order. gio
+// prepends to its registry, so later entries win icon-name lookups. The
+// Linux bundle stays registered on Darwin so direct resource-path lookups
+// (missing-album.svg, rating-source logos) still resolve.
+var IconResources = [][]byte{iconBundleLinux, iconBundleDarwin}
diff --git a/resources_other.go b/resources_other.go
new file mode 100644
index 0000000..2577d19
--- /dev/null
+++ b/resources_other.go
@@ -0,0 +1,10 @@
+//go:build !darwin
+
+package main
+
+import _ "embed"
+
+//go:embed assets/meta/icons.gresource
+var iconBundleLinux []byte
+
+var IconResources = [][]byte{iconBundleLinux}
From 712c4c8e53ddc0abc58af2dadf24920a3581c157 Mon Sep 17 00:00:00 2001
From: Cedric Lewe <0skillallluck@pm.me>
Date: Sat, 9 May 2026 16:57:01 +0200
Subject: [PATCH 2/2] Keep icon resource selection in main.go for go run
main.go
---
main.go | 17 +++++++++++++++--
resources_darwin.go | 17 -----------------
resources_other.go | 10 ----------
3 files changed, 15 insertions(+), 29 deletions(-)
delete mode 100644 resources_darwin.go
delete mode 100644 resources_other.go
diff --git a/main.go b/main.go
index f695200..3c06ce5 100644
--- a/main.go
+++ b/main.go
@@ -5,6 +5,7 @@ import (
"log"
"log/slog"
"os"
+ "runtime"
_ "github.com/0skillallluck/scanline/internal/features/macosfixes"
@@ -21,6 +22,12 @@ import (
//go:generate scss ./assets/styles/style.scss ./assets/styles/style.css
//go:generate glib-compile-resources --sourcedir=./assets/styles --target=./assets/meta/styles.gresource ./assets/meta/styles.gresource.xml
+//go:embed assets/meta/icons.gresource
+var iconBundleLinux []byte
+
+//go:embed assets/meta/icons-darwin.gresource
+var iconBundleDarwin []byte
+
//go:embed assets/meta/styles.gresource
var StyleResources []byte
@@ -31,8 +38,14 @@ func init() {
go tracking.LogAliveObjects()
}
- for _, bundle := range IconResources {
- registerResource(bundle)
+ // Both bundles are embedded unconditionally so `go run main.go` works
+ // without picking up sibling files via build tags. The Linux bundle stays
+ // registered on Darwin so direct resource-path lookups (missing-album.svg,
+ // rating-source logos) still resolve. gio prepends to its registry, so
+ // the Darwin override registered last wins icon-name lookups.
+ registerResource(iconBundleLinux)
+ if runtime.GOOS == "darwin" {
+ registerResource(iconBundleDarwin)
}
registerResource(StyleResources)
}
diff --git a/resources_darwin.go b/resources_darwin.go
deleted file mode 100644
index 0c1f961..0000000
--- a/resources_darwin.go
+++ /dev/null
@@ -1,17 +0,0 @@
-//go:build darwin
-
-package main
-
-import _ "embed"
-
-//go:embed assets/meta/icons.gresource
-var iconBundleLinux []byte
-
-//go:embed assets/meta/icons-darwin.gresource
-var iconBundleDarwin []byte
-
-// IconResources lists icon GResource bundles to register, in order. gio
-// prepends to its registry, so later entries win icon-name lookups. The
-// Linux bundle stays registered on Darwin so direct resource-path lookups
-// (missing-album.svg, rating-source logos) still resolve.
-var IconResources = [][]byte{iconBundleLinux, iconBundleDarwin}
diff --git a/resources_other.go b/resources_other.go
deleted file mode 100644
index 2577d19..0000000
--- a/resources_other.go
+++ /dev/null
@@ -1,10 +0,0 @@
-//go:build !darwin
-
-package main
-
-import _ "embed"
-
-//go:embed assets/meta/icons.gresource
-var iconBundleLinux []byte
-
-var IconResources = [][]byte{iconBundleLinux}