From cb17464d8f43197b2fe3b0751644af7d9fe607d6 Mon Sep 17 00:00:00 2001 From: MeexReay Date: Mon, 21 Apr 2025 16:47:42 +0300 Subject: [PATCH] desktop files and winapi usage --- Cargo.lock | 12 ++++++++++++ Cargo.toml | 7 ++++++- Makefile | 12 ++++++------ build.rs | 16 ++++++++++++++++ icon.ico | Bin 0 -> 67646 bytes install.sh | 20 ++++++++++++++++++++ bRAC.desktop => ru.themixray.bRAC.desktop | 2 +- bRAC.png => ru.themixray.bRAC.png | Bin src/chat/gui.rs | 6 +++--- src/main.rs | 6 ++++-- uninstall.sh | 14 ++++++++++++++ 11 files changed, 82 insertions(+), 13 deletions(-) create mode 100644 build.rs create mode 100644 icon.ico create mode 100755 install.sh rename bRAC.desktop => ru.themixray.bRAC.desktop (88%) rename bRAC.png => ru.themixray.bRAC.png (100%) create mode 100755 uninstall.sh diff --git a/Cargo.lock b/Cargo.lock index d3ce65a..7e36ad9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -106,6 +106,8 @@ dependencies = [ "serde_default", "serde_yml", "socks", + "winapi", + "winresource", ] [[package]] @@ -1647,6 +1649,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "winresource" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4a67c78ee5782c0c1cb41bebc7e12c6e79644daa1650ebbc1de5d5b08593f7" +dependencies = [ + "toml", + "version_check", +] + [[package]] name = "wit-bindgen-rt" version = "0.33.0" diff --git a/Cargo.toml b/Cargo.toml index ca0b740..5750717 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,12 @@ serde_default = "0.2.0" socks = "0.3.4" libnotify = { version = "1.0.3", optional = true } gdk-pixbuf = { version = "0.3.0", optional = true } +winapi = { version = "0.3.9", optional = true, features = ["wincon", "winuser"] } [features] -default = ["libnotify"] +default = [] libnotify = ["dep:libnotify", "dep:gdk-pixbuf"] +winapi = ["dep:winapi"] + +[build-dependencies] +winresource = "0.1.20" diff --git a/Makefile b/Makefile index a393033..0bdb9bb 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ build: build/windows-x86_64 build/linux-x86_64 build/windows-x86_64: mkdir -p build mkdir -p $@ - cargo build -r --target x86_64-pc-windows-gnu + cargo build -r -F winapi --target x86_64-pc-windows-gnu curl -s https://api.github.com/repos/wingtk/gvsbuild/releases/latest \ | grep -o ".*browser_download_url.*GTK4_Gvsbuild.*_x64.zip.*" \ | cut -d : -f 2,3 \ @@ -16,17 +16,17 @@ build/windows-x86_64: mv $@/bin/* $@/ cp target/x86_64-pc-windows-gnu/release/bRAC.exe $@ rm -r $@/bin - # TODO: disable console - # TODO: set icon build/linux-x86_64: mkdir -p build mkdir -p $@ - cargo build -r --target x86_64-unknown-linux-gnu + cargo build -r -F libnotify --target x86_64-unknown-linux-gnu # patchbin target/x86_64-unknown-linux-gnu/release/bRAC cp target/x86_64-unknown-linux-gnu/release/bRAC $@ - cp bRAC.png $@ - cp bRAC.desktop $@ + cp ru.themixray.bRAC.png $@ + cp ru.themixray.bRAC.desktop $@ + cp install.sh $@ + cp uninstall.sh $@ clean: rm -r build \ No newline at end of file diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..076705b --- /dev/null +++ b/build.rs @@ -0,0 +1,16 @@ +use { + std::{ + env, + io, + }, + winresource::WindowsResource, +}; + +fn main() -> io::Result<()> { + if env::var_os("CARGO_CFG_WINDOWS").is_some() { + WindowsResource::new() + .set_icon("icon.ico") + .compile()?; + } + Ok(()) +} \ No newline at end of file diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f45e063b5ddabf044756b8c1ab90f7436b6c3be9 GIT binary patch literal 67646 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 Bj>`Z5 literal 0 HcmV?d00001 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..0854c32 --- /dev/null +++ b/install.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + +if [ ! -f bRAC ]; then + if cargo build -r; then + cp target/release/bRAC . + else + echo "There is no bRAC binary" + exit 1 + fi +fi + +cp bRAC /bin/bRAC +chmod +x /bin/bRAC +cp ru.themixray.bRAC.png /usr/share/pixmaps +cp ru.themixray.bRAC.desktop /usr/share/applications \ No newline at end of file diff --git a/bRAC.desktop b/ru.themixray.bRAC.desktop similarity index 88% rename from bRAC.desktop rename to ru.themixray.bRAC.desktop index 80f4ad5..c1898a7 100644 --- a/bRAC.desktop +++ b/ru.themixray.bRAC.desktop @@ -3,7 +3,7 @@ Name=bRAC Version=0.1.4 Type=Application Comment=better RAC client -Icon=bRAC.png +Icon=ru.themixray.bRAC.png Exec=bRAC Categories=Network; StartupNotify=true diff --git a/bRAC.png b/ru.themixray.bRAC.png similarity index 100% rename from bRAC.png rename to ru.themixray.bRAC.png diff --git a/src/chat/gui.rs b/src/chat/gui.rs index d8ef55b..58bee08 100644 --- a/src/chat/gui.rs +++ b/src/chat/gui.rs @@ -32,7 +32,7 @@ ctx::Context, on_send_message, parse_message, print_message, recv_tick, sanitize struct UiModel { chat_box: GtkBox, chat_scrolled: ScrolledWindow, - // app: Application, + app: Application, window: ApplicationWindow, #[cfg(feature = "libnotify")] notifications: Arc>> @@ -589,7 +589,7 @@ fn build_ui(ctx: Arc, app: &Application) -> UiModel { UiModel { chat_scrolled, chat_box, - // app: app.clone(), + app: app.clone(), window: window.clone(), #[cfg(feature = "libnotify")] notifications: Arc::new(RwLock::new(Vec::::new())) @@ -689,7 +689,7 @@ fn send_notification(_: Arc, ui: &UiModel, title: &str, message: &str) } #[cfg(not(feature = "libnotify"))] -fn send_notification(ctx: Arc, ui: &UiModel, title: &str, message: &str) { +fn send_notification(_: Arc, ui: &UiModel, title: &str, message: &str) { use gtk4::gio::Notification; let notif = Notification::new(title); diff --git a/src/main.rs b/src/main.rs index 0bd0816..82f170d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,10 +2,12 @@ use std::sync::Arc; use bRAC::proto::{connect, read_messages, send_message}; use bRAC::chat::{config::{get_config_path, load_config, Args}, ctx::Context, run_main_loop}; -use clap::Parser; - +use clap::Parser; fn main() { + #[cfg(feature = "winapi")] + unsafe { winapi::um::wincon::FreeConsole() }; + let args = Args::parse(); let config_path = get_config_path(); diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 0000000..34a9fb8 --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + +getent passwd | while IFS=: read -r name password uid gid gecos home shell; do + rm -rf $home/.config/bRAC; +done + +rm -f /bin/bRAC +rm -f ru.themixray.bRAC.png /usr/share/pixmaps +rm -f ru.themixray.bRAC.desktop /usr/share/applications \ No newline at end of file