aboutsummaryrefslogtreecommitdiff
path: root/rivertile/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'rivertile/main.zig')
-rw-r--r--rivertile/main.zig50
1 files changed, 25 insertions, 25 deletions
diff --git a/rivertile/main.zig b/rivertile/main.zig
index 6600563..61eba08 100644
--- a/rivertile/main.zig
+++ b/rivertile/main.zig
@@ -65,11 +65,9 @@ const usage =
;
const Command = enum {
- @"set-main-location",
- @"set-main-count",
- @"mod-main-count",
- @"set-main-ratio",
- @"mod-main-ratio",
+ @"main-location",
+ @"main-count",
+ @"main-ratio",
};
const Location = enum {
@@ -159,39 +157,41 @@ const Output = struct {
return;
};
switch (cmd) {
- .@"set-main-location" => {
+ .@"main-location" => {
output.main_location = std.meta.stringToEnum(Location, raw_arg) orelse {
std.log.err("unknown location: {s}", .{raw_arg});
return;
};
},
- .@"set-main-count" => {
- output.main_count = std.fmt.parseInt(u32, raw_arg, 10) catch |err| {
- std.log.err("failed to parse argument: {}", .{err});
- return;
- };
- },
- .@"mod-main-count" => {
+ .@"main-count" => {
const arg = std.fmt.parseInt(i32, raw_arg, 10) catch |err| {
std.log.err("failed to parse argument: {}", .{err});
return;
};
- const result = math.add(i33, output.main_count, arg) catch math.maxInt(u32);
- if (result > 0) output.main_count = @intCast(u32, result);
- },
- .@"set-main-ratio" => {
- const arg = std.fmt.parseFloat(f64, raw_arg) catch |err| {
- std.log.err("failed to parse argument: {}", .{err});
- return;
- };
- output.main_ratio = math.clamp(arg, 0.1, 0.9);
+ switch (raw_arg[0]) {
+ '+' => output.main_count = math.add(
+ u32,
+ output.main_count,
+ @intCast(u32, arg),
+ ) catch math.maxInt(u32),
+ '-' => {
+ const result = @as(i33, output.main_count) + arg;
+ if (result >= 0) output.main_count = @intCast(u32, result);
+ },
+ else => output.main_count = @intCast(u32, arg),
+ }
},
- .@"mod-main-ratio" => {
+ .@"main-ratio" => {
const arg = std.fmt.parseFloat(f64, raw_arg) catch |err| {
std.log.err("failed to parse argument: {}", .{err});
return;
};
- output.main_ratio = math.clamp(output.main_ratio + arg, 0.1, 0.9);
+ switch (raw_arg[0]) {
+ '+', '-' => {
+ output.main_ratio = math.clamp(output.main_ratio + arg, 0.1, 0.9);
+ },
+ else => output.main_ratio = math.clamp(arg, 0.1, 0.9),
+ }
},
}
},
@@ -360,7 +360,7 @@ pub fn main() !void {
_ = try display.roundtrip();
if (context.layout_manager == null) {
- fatal("wayland compositor does not support river-layout-v2.\n", .{});
+ fatal("wayland compositor does not support river-layout-v3.\n", .{});
}
context.initialized = true;