summaryrefslogtreecommitdiff
path: root/lib/sway/output.vala
diff options
context:
space:
mode:
authornoname <[email protected]>2025-03-06 17:49:33 +1100
committernoname <[email protected]>2025-03-06 18:49:02 +1100
commitf89b080e57d8284e197de9236101a7df266219a9 (patch)
treef01f085ebb301fb54acbb797303992e48be4441a /lib/sway/output.vala
parent90019b99b671664855c1c53a30da39ca572f4a0e (diff)
implement outputs
Diffstat (limited to 'lib/sway/output.vala')
-rw-r--r--lib/sway/output.vala46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/sway/output.vala b/lib/sway/output.vala
new file mode 100644
index 0000000..84eb549
--- /dev/null
+++ b/lib/sway/output.vala
@@ -0,0 +1,46 @@
+namespace AstalSway {
+ public class Output : Node {
+ public string make;
+ public string model;
+ public string serial;
+ public bool active;
+ public bool power;
+ public bool focused;
+ public float scale;
+ public string subpixel_hinting;
+ public string transform;
+ public Workspace current_workspace;
+ public List<weak Workspace> workspaces { owned get {
+ var arr = new List<weak Workspace> ();
+ foreach (var node in nodes) {
+ arr.append(node as Workspace);
+ }
+ return arr;
+ }}
+
+ public Output() {
+ node_type = NodeType.OUTPUT;
+ }
+
+ internal override void sync(Json.Object obj) {
+ base.sync(obj);
+ }
+
+ internal void sync_output(Json.Object obj) {
+ make = obj.get_string_member("make");
+ model = obj.get_string_member("model");
+ serial = obj.get_string_member("serial");
+ transform = obj.get_string_member("transform");
+ subpixel_hinting = obj.get_string_member("subpixel_hinting");
+ active = obj.get_boolean_member("active");
+ power = obj.get_boolean_member("power");
+ focused = obj.get_boolean_member("focused");
+ scale = (float)obj.get_double_member("scale");
+ current_workspace = Sway.get_default().get_workspace(obj.get_string_member("current_workspace"));
+ }
+
+ public override void focus() {
+ Sway.get_default().run_command(@"focus output $name");
+ }
+ }
+}