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 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 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}