diff --git a/komorebi/src/core/mod.rs b/komorebi/src/core/mod.rs index ca73e2d3..036250fa 100644 --- a/komorebi/src/core/mod.rs +++ b/komorebi/src/core/mod.rs @@ -150,6 +150,7 @@ pub enum SocketMessage { BorderOffset(i32), BorderImplementation(BorderImplementation), Transparency(bool), + ToggleTransparency, TransparencyAlpha(u8), InvisibleBorders(Rect), StackbarMode(StackbarMode), diff --git a/komorebi/src/process_command.rs b/komorebi/src/process_command.rs index 00e624f3..b180d6d4 100644 --- a/komorebi/src/process_command.rs +++ b/komorebi/src/process_command.rs @@ -1339,6 +1339,10 @@ impl WindowManager { SocketMessage::AnimationStyle(style) => { *ANIMATION_STYLE.lock() = style; } + SocketMessage::ToggleTransparency => { + let current = transparency_manager::TRANSPARENCY_ENABLED.load(Ordering::SeqCst); + transparency_manager::TRANSPARENCY_ENABLED.store(!current, Ordering::SeqCst); + } SocketMessage::Transparency(enable) => { transparency_manager::TRANSPARENCY_ENABLED.store(enable, Ordering::SeqCst); } diff --git a/komorebic/src/main.rs b/komorebic/src/main.rs index 6a924dbb..437385d6 100644 --- a/komorebic/src/main.rs +++ b/komorebic/src/main.rs @@ -1249,6 +1249,8 @@ enum SubCommand { /// Set the alpha value for unfocused window transparency #[clap(arg_required_else_help = true)] TransparencyAlpha(TransparencyAlpha), + /// Toggle transparency for unfocused windows + ToggleTransparency, /// Enable or disable the window move animation #[clap(arg_required_else_help = true)] Animation(Animation), @@ -2328,6 +2330,9 @@ Stop-Process -Name:komorebi -ErrorAction SilentlyContinue SubCommand::TransparencyAlpha(arg) => { send_message(&SocketMessage::TransparencyAlpha(arg.alpha))?; } + SubCommand::ToggleTransparency => { + send_message(&SocketMessage::ToggleTransparency)?; + } SubCommand::Animation(arg) => { send_message(&SocketMessage::Animation(arg.boolean_state.into()))?; }