Skip to content

A multi-monitor aware Hyprland active window title outputer

License

Notifications You must be signed in to change notification settings

kiike/hyprland-activewindow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hyprland-activewindow

A multi-monitor aware Hyprland active window title outputer. Follows the specified monitor and outputs the current active window title. Designed to be used with Eww, but may function with other bars.

Installation Instructions

Dependencies

Hyprland

Arch Linux

Arch users can install from AUR using your favourite package manager.

  pikaur -S hyprland-activewindow

NixOS

NixOS users can use the unstable channel to try or install the package.

nix-shell -p hyprland-activewindow

Crates.io

It can be installed directly from crates.io with cargo.

  cargo install hyprland-activewindow

Building from source

git clone https://github.com/FieldofClay/hyprland-activewindow.git
cd hyprland-activewindow
cargo build --release

Usage

Basic Mode

Pass the name of the monitor to follow as the only argument. It will then follow that monitor and output the active window title to stdout.

./hyprland-activewindow eDP-1

You can get the names of your monitors by running:

hyprctl monitors -j

It can be used as a title widget in Eww with config similar to below.

(deflisten window0 "hyprland-activewindow eDP-1")
(defwidget title0 []
    (label :text "${window0}"))

(deflisten window1 "hyprland-activewindow DP-1")
(defwidget title1 []
    (label :text "${window1}"))

(defwidget bar0 []
  (box
    (window0)
  )
)

(defwidget bar1 []
  (box
    (window1)
  )
)

Advanced Mode

Pass the wildcard "_" as the only argument and it will follow all monitors and output active window title information in json to stdout.

./hyprland-activewindow _

The output will be a json array of each monitors name and the active window's title & initial title.

[{"initial_title":"Alacritty","name":"eDP-1","title":"~/hyprland-activewindow"},{"initial_title":"VSCodium","name":"DP-1","title":"main.rs - hyprland-activewindow (Workspace) - VSCodium"}]

This allows simplified Eww config similar to this:

(deflisten windows "hyprland-activewindow _")

(defwidget window [monitor]
  (box
    (label :text "${windows['${monitor}'].title}")
  )
)

(defwidget bar0 []
  (box
    (window :monitor 0)
  )
)

(defwidget bar1 []
  (box
    (window :monitor 1)
  )
)

About

A multi-monitor aware Hyprland active window title outputer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%