celeste
celeste copied to clipboard
Add Windows/macOS support
I have a vision for this to be able to be used on any type of system, with it being the de-facto way to connect to any cloud provider.
This is more of a long-term goal, but it's something I'd really like done still. GTK apps can be themed relatively well on Windows/macOS:
- Windows: We can use a custom GTK theme, and just make the app use native window decorations. It would give a vibe similar to electron apps, but I think this is suitable considering the available options.
- macOS: There are some GTK macOS themes out there that could probably work, such as the WhiteSur GTK theme.
Testing these for UI usability (and overall just looking good) will be easier on Windows for me, as I can emulate that inside of a VM. macOS will probably be a bit of a bigger issue as I can't emulate that (I think there's methods to generate macOS ISOs), but if I can find a community member who'd be willing to test those builds that'd work fine as well.
Just throwing this out there in case anyone else ends up wondering about it. Again it's definitely long-term, but I'm definitely interested in it.
I might be interested in creating the macOS app. You mention Go in BUILDING.md - is this program really a combination of Rust and Go?
That'd be great @dehesselle!
You mention Go in
BUILDING.md- is this program really a combination of Rust and Go?
Celeste itself doesn't use Go, but one if it's dependencies (librclone) uses Go.
I took a first stab at this today and discovered there is a dependency on dbus. That's unfortunate because it's an unresolved item on my "todo list of things I haven't figured out yet", and currently I have no plans to work on that. So I'm sorry, but that's it for me for now.
I'm pretty sure macOS doesn't support DBus @dehesselle (and Windows afaik). If I were to get that part fixed would you be open to looking into this still. No pressure if you don't want to, but the DBus still is probably something I should fix on my end.
I can compile DBus and it's actually present in package managers like Homebrew, but running/packaging has been troublesome for me. If you create a branch here where you disable usage of DBus and remove it from the dependencies, I'll try again. As a first step it wouldn't even be necessary for Celeste to function correctly (it would be nice if doesn't crash on start), if that makes it easier for you to hack DBus away.
FYI I cannot help with the actual coding, I don't speak Rust.
The macos-no-dbus branch should have the DBus code disabled @dehesselle. There won't be any tray icon, but there's some cross-platform tray icon libraries that I'm looking into that should fix that.
I'm getting a failure building the main binary.
error: could not compile `celeste` (bin "celeste") due to previous error; 4 warnings emitted
It's missing some linker flags, this is likely missing -framework CoreIO, but I don't know how the Rust build system works. Is that something easy enough for you to tell me how/where linker flags can be added to play around with this?
= note: Undefined symbols for architecture arm64:
"_IOIteratorNext", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_IOObjectGetClass", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_IORegistryEntryCreateCFProperty", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_IORegistryEntryGetName", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_IOServiceGetMatchingServices", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_IOServiceMatching", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
"_kIOMasterPortDefault", referenced from:
_initialize in liblibrclone_sys-230b9c177444767d.rlib(000026.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I think if you put a note on the Rclone forum about this project you'd get lots of Win/Mac users interested.
I've found out about the project from a linux magazine, and came here looking/hoping that there's a macOS version - hope you end up adding it to brew :)
Getting it into Homebrew is not in scope for me. Would you be interested to work on that?
@dehesselle well you first need to make it work on macos