#window #active #position #title #current

active-win-pos-rs

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

13 releases (7 breaking)

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

#53 in macOS and iOS APIs

Download history 36/week @ 2024-01-02 14/week @ 2024-01-09 16/week @ 2024-01-16 17/week @ 2024-01-23 40/week @ 2024-01-30 34/week @ 2024-02-06 35/week @ 2024-02-13 231/week @ 2024-02-20 182/week @ 2024-02-27 197/week @ 2024-03-05 164/week @ 2024-03-12 148/week @ 2024-03-19 257/week @ 2024-03-26 255/week @ 2024-04-02 157/week @ 2024-04-09 328/week @ 2024-04-16

1,036 downloads per month
Used in screentime

MIT/Apache

31KB
677 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–40MB
~567K SLoC