#window #active #current #position #title

active-win-pos-rs

Get position, size, title and a few other properties of the active window on Windows, MacOS and Linux

11 releases (7 breaking)

0.8.1 May 18, 2023
0.7.1 Sep 20, 2022
0.5.0 Jul 9, 2022
0.4.1 Feb 22, 2022

#2 in #position

Download history 59/week @ 2023-02-02 69/week @ 2023-02-09 56/week @ 2023-02-16 26/week @ 2023-02-23 20/week @ 2023-03-02 22/week @ 2023-03-09 17/week @ 2023-03-16 15/week @ 2023-03-23 24/week @ 2023-03-30 93/week @ 2023-04-06 22/week @ 2023-04-13 20/week @ 2023-04-20 23/week @ 2023-04-27 23/week @ 2023-05-04 33/week @ 2023-05-11 98/week @ 2023-05-18

180 downloads per month
Used in screentime

MIT/Apache

29KB
655 lines

active-win-pos-rs

Build status

A small Rust library that lets you get position, size, title and a few other properties of the active window on Windows, MacOS and Linux

Usage

Add to Cargo.toml:

[dependencies]
active-win-pos-rs = "0.8"

Use:

use active_win_pos_rs::get_active_window;

fn main() {
    match get_active_window() {
        Ok(active_window) => {
            println!("active window: {:#?}", active_window);
        },
        Err(()) => {
            println!("error occurred while getting the active window");
        }
    }
}

Would give you an instance of ActiveWindow struct with unique window id, process id, window position and window title.

Or use active_win_pos_rs::get_position to get the WindowPosition only.

Window title on MacOS

On MacOS title property will always return an empty string unless you Enable Screen Recording permission for your app.

Build

% git clone https://github.com/dimusic/active-win-pos-rs.git
% cd active-win-pos-rs
% cargo build

Example

% cargo run --example active-window

Output:

active window: ActiveWindow {
    title: "cmd - cargo  run --example active-window",
    process_path: "C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_1.16.10262.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe",
    app_name: "WindowsTerminal",
    window_id: "HWND(9700584)",
    process_id: 8460,
    position: WindowPosition {
        x: 6.0,
        y: 296.0,
        width: 1129.0,
        height: 635.0,
    },
}

Dependencies

~0–42MB
~688K SLoC