Skip to content

Comment on Jeena's Hyprland Demoparent

Comments

I've been experimenting with this (it's in Babashka, which is for scripting Clojure, but you can do it with just bash, if your bash-fu is stronger than mine :D ):

    #!/bin/env bb
    
    (ns switch
      (:require [clojure.java.shell :as sh]
                [babashka.process :refer [pipeline pb shell process]]
                [clojure.string :as str]))
    
    (def workspace-ids
      (-> (pipeline (pb "hyprctl workspaces")
                    (pb "grep 'workspace ID'")
                    (pb "awk '{print $3}'"))
          last
          :out
          slurp
          (str/split #"\n")
          (->> (reduce (fn[acc e]
                         (try (let [ee (Integer/parseInt e)]
                                (conj acc ee))
                              (catch Exception e acc))) [])
               (filter #(and (pos? %)
                             (not= 10 %))))))
    
    
    
    (doseq [w workspace-ids]
      (-> (process (str "hyprctl dispatch moveworkspacetomonitor " w " 1"))
          deref
          :exit
          println))
    
    (process "hyprctl dispatch workspace 8")

It basically just moves all workspaces with positive IDs (so not the special workspace) to the external monitor, which seems to have a consistent ID of 1.
AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.