diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5a6a760d94570c5fa4573a63a0e93687b4d3e9b1 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ + + +<div align="center"> +<p align="center"> + <a href="#installation">Installation</a> • + <a href="#configuration">Configuration</a> • + <a href="#run-modes">Run modes</a> • + <a href="#completions">Completion</a> +</p> +</div> + +# Installation +### Arch based +If you have ArchLinux based system, such as Manjaro or Arch itself, then simply clone the repo and run: +```bash +git clone https://gitlab.le-memese.com/s3rius/music_bg +cd music_bg +makepkg -fsi +``` + +### Oter linux systems +- Install `rust` and `feh`. +- Add `~/.cargo/bin` in your path. +- Run `cargo install --path .;` + +If you want to add music_bg as systemd unit run: +```bash +cp systemd/music_bg.service /usr/lib/systemd/user/ +``` + +# Configuraion + +After installation run `music_bg config`. This command will generate default config in your $HOME folder. diff --git a/bin/cli_modes.rs b/bin/cli_modes.rs index 9769f034e65f3135c42725f11ed5fea0eaadb77c..0ff4a5bd82c9259d82e5295260ea027cfc8934ac 100644 --- a/bin/cli_modes.rs +++ b/bin/cli_modes.rs @@ -1,13 +1,12 @@ -use crate::{RunMode, Opt, TestingPic, generate_completions}; -use music_bg_lib::result::MBGResult; -use music_bg_lib::dbus_interface::player_dbus::setup_connection; +use crate::{generate_completions, Opt, RunMode, TestingPic}; +use music_bg_lib::background::set_wallpaper; use music_bg_lib::config::Config; -use std::io::Read; +use music_bg_lib::dbus_interface::player_dbus::setup_connection; use music_bg_lib::img_processors::process_image; -use music_bg_lib::background::set_wallpaper; +use music_bg_lib::result::MBGResult; +use std::io::Read; use std::time::Duration; - pub fn start_listen() -> MBGResult<()> { let config = Config::get_props(); debug!("Found config: \n{:#?}", config); @@ -30,13 +29,12 @@ pub fn test_processors(test_data: TestingPic) -> MBGResult<()> { Ok(()) } - pub fn run(opts: Opt) -> MBGResult<()> { let mode = opts.cmd.unwrap_or_else(|| RunMode::Run); match mode { RunMode::Run => start_listen(), RunMode::GenConf => Config::generate_config(), RunMode::TestPic(data) => test_processors(data), - RunMode::GenComp(shell) => generate_completions(shell) + RunMode::GenComp(shell) => generate_completions(shell), } -} \ No newline at end of file +} diff --git a/bin/main.rs b/bin/main.rs index 3f4887c48fe3c0632f4740b4d3ee556068ebdfb3..def9446b2295d2a74aeaad5524a14cfd6a1e9f15 100644 --- a/bin/main.rs +++ b/bin/main.rs @@ -10,8 +10,8 @@ use music_bg_lib::result::MBGResult; use crate::cli_modes::run; -pub mod logging; pub mod cli_modes; +pub mod logging; include!("cli.rs"); diff --git a/lib/background.rs b/lib/background.rs index fa7cbe3456522c834087149959cb538c2d6258b8..11749e9a3e9c7dc855a1938bc9991eaeb26df94f 100644 --- a/lib/background.rs +++ b/lib/background.rs @@ -3,11 +3,9 @@ use std::process::Command; use dbus::blocking::Connection; use dbus::Message; +use crate::config::Config; use crate::img_processors::process_image; use crate::result::MBGResult; -use crate::display::update_bg; -use crate::config::Config; - pub fn reset_background_handler(_: (), _: &Connection, message: &Message) -> bool { let member_name = message.read1::<String>(); @@ -22,7 +20,10 @@ pub fn reset_background_handler(_: (), _: &Connection, message: &Message) -> boo pub fn nitrogen_restore() { info!("Reset BG"); let config = Config::get_props(); - let out = Command::new("sh").arg("-c").arg(config.reset_command.as_str()).output(); + let out = Command::new("sh") + .arg("-c") + .arg(config.reset_command.as_str()) + .output(); if let Err(restore_error) = out { error!("Can't restore background: {}", restore_error.to_string()); } diff --git a/lib/dbus_interface/main_dbus.rs b/lib/dbus_interface/main_dbus.rs index 119ee721bdba61126b725aa625165c6898d2cd0c..0e64b133f053108e6fe315f91432cdff3c0ffc7e 100644 --- a/lib/dbus_interface/main_dbus.rs +++ b/lib/dbus_interface/main_dbus.rs @@ -1,7 +1,6 @@ // This code was autogenerated with `dbus-codegen-rust -s -d org.freedesktop.DBus -m None`, see https://github.com/diwic/dbus-rs use dbus::arg; - #[derive(Debug)] pub struct DBusNameOwnerChanged { pub arg0: String, diff --git a/lib/dbus_interface/media_player.rs b/lib/dbus_interface/media_player.rs index 25debf548de22ab240d1a3695beedb17ab3e2572..1a1a9a287e1349a881ad86ada0a889d0ee0d7091 100644 --- a/lib/dbus_interface/media_player.rs +++ b/lib/dbus_interface/media_player.rs @@ -2,7 +2,6 @@ use dbus::arg; use dbus::blocking; - pub trait OrgMprisMediaPlayer2Player { fn playback_status(&self) -> Result<String, dbus::Error>; fn metadata( diff --git a/lib/dbus_interface/mod.rs b/lib/dbus_interface/mod.rs index 546792b89b5af98bbbcb0d9f5b90c4400d835c92..9552ab8114e00581f9bcc2775b79ed3e0496db2f 100644 --- a/lib/dbus_interface/mod.rs +++ b/lib/dbus_interface/mod.rs @@ -1,4 +1,4 @@ pub mod main_dbus; pub mod media_player; +pub mod player_dbus; pub mod statuses; -pub mod player_dbus; \ No newline at end of file diff --git a/lib/dbus_interface/player_dbus.rs b/lib/dbus_interface/player_dbus.rs index 1c4ef8f8f9927491c2024009e480f0dc0b8bc400..911d6e72b4f85755586f11c2a802422768faff20 100644 --- a/lib/dbus_interface/player_dbus.rs +++ b/lib/dbus_interface/player_dbus.rs @@ -6,12 +6,11 @@ use dbus::blocking::Connection; use dbus::message::{MatchRule, SignalArgs}; use dbus::{arg, Message}; - +use crate::background::{nitrogen_restore, process_image_url, reset_background_handler}; use crate::dbus_interface::main_dbus::DBusNameOwnerChanged; use crate::dbus_interface::media_player::OrgMprisMediaPlayer2Player; use crate::dbus_interface::statuses::PlayerStatus; use crate::result::{MBGError, MBGResult}; -use crate::background::{reset_background_handler, process_image_url, nitrogen_restore}; pub fn player_exit_handler(connection: &Connection) -> MBGResult<()> { connection.add_match( @@ -89,4 +88,4 @@ pub fn setup_connection() -> MBGResult<Connection> { player_exit_handler(&conn)?; player_state_watcher(&conn)?; Ok(conn) -} \ No newline at end of file +} diff --git a/lib/lib.rs b/lib/lib.rs index fe6f47005f54ad7a7651e7ca12216e9c4bd6224a..fd29799dde873b44f6968115850872610b5ba723 100644 --- a/lib/lib.rs +++ b/lib/lib.rs @@ -7,10 +7,9 @@ extern crate failure; #[macro_use] extern crate failure_derive; - -pub mod img_processors; -pub mod dbus_interface; pub mod background; -pub mod display; pub mod config; +pub mod dbus_interface; +pub mod display; +pub mod img_processors; pub mod result; diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0e6c5aaf3ac506547a0b37de842e26d5c87682 Binary files /dev/null and b/logo.png differ