dotfiles/hypr/hyprsome/src/hyprland_ipc/monitor.rs

44 lines
993 B
Rust

use hyprland::data::{Monitor, Monitors};
use hyprland::dispatch::*;
use hyprland::shared::HyprData;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct ActiveWorkspace {
pub id: u64,
pub name: String,
}
pub fn get_by_id(id: i16) -> Monitor {
let mut monitors = get();
monitors.find(|m| m.id == id).unwrap()
}
pub fn get() -> Monitors {
Monitors::get().unwrap()
}
pub fn focus_left() {
let _ = Dispatch::call(DispatchType::FocusMonitor(MonitorIdentifier::Direction(
Direction::Left,
)));
}
pub fn focus_right() {
let _ = Dispatch::call(DispatchType::FocusMonitor(MonitorIdentifier::Direction(
Direction::Right,
)));
}
pub fn focus_up() {
let _ = Dispatch::call(DispatchType::FocusMonitor(MonitorIdentifier::Direction(
Direction::Up,
)));
}
pub fn focus_down() {
let _ = Dispatch::call(DispatchType::FocusMonitor(MonitorIdentifier::Direction(
Direction::Down,
)));
}