summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2024-01-14 13:01:19 +0000
committerSean Whitton <spwhitton@spwhitton.name>2024-01-14 13:01:19 +0000
commitfdf056d799b974d878ba77cb96056125a0510e92 (patch)
tree94017e1cd85d1af563d4b8f7193e98ba69fa6c2a
parent2d8f89e3473355c13fb28e04861218cf7fde2555 (diff)
downloaddotfiles-fdf056d799b974d878ba77cb96056125a0510e92.tar.gz
i3status-wrapper: command processing loop: don't copy cols
-rwxr-xr-xscripts/desktop/i3status-wrapper24
1 files changed, 12 insertions, 12 deletions
diff --git a/scripts/desktop/i3status-wrapper b/scripts/desktop/i3status-wrapper
index 3c5502cd..268a5bcd 100755
--- a/scripts/desktop/i3status-wrapper
+++ b/scripts/desktop/i3status-wrapper
@@ -227,27 +227,27 @@ unless (fork // warn "couldn't fork command pipe reader") {
while (my $cmd = <$cmdpipe_r>) {
my $ws = $info{paper_ws}{$info{focused_ws}};
+ my $cols = $ws->{cols};
if ($cmd =~ /^(focus|move) (left|right)$/) {
- my @cols = $ws->{cols}->@*;
- my ($i) = grep $cols[$_] == $ws->{focused_col}, 0..$#cols;
+ my $i = first { $cols->[$_] == $ws->{focused_col} } 0..$#$cols;
my $move = $1 eq "move";
$2 eq "right" ? $i++ : $i--;
- if ($ws->{cols}->@* > $i >= 0) {
+ if ($cols->@* > $i >= 0) {
wmipc $cmd;
- } elsif ($i == @cols && $ws->{off_right}->@*) {
+ } elsif ($i == @$cols && $ws->{off_right}->@*) {
with_ignored_events {
- my $pushed = shift $ws->{cols}->@*;
+ my $pushed = shift $cols->@*;
my $pulled = pop $ws->{off_right}->@*;
my @cmds = show_con($pulled);
push $ws->{off_left}->@*, $pushed;
if ($move) {
push @cmds, "focus left", "move right";
- my $tem = pop $ws->{cols}->@*;
- push $ws->{cols}->@*, $pulled, $tem;
+ my $tem = pop $cols->@*;
+ push $cols->@*, $pulled, $tem;
} else {
$ws->{focused_col} = $pulled;
- push $ws->{cols}->@*, $pulled;
+ push $cols->@*, $pulled;
}
wmipc @cmds, hide_con($pushed);
@@ -255,19 +255,19 @@ unless (fork // warn "couldn't fork command pipe reader") {
kill USR1 => $i3status;
} elsif ($i == -1 && $ws->{off_left}->@*) {
with_ignored_events {
- my $pushed = pop $ws->{cols}->@*;
+ my $pushed = pop $cols->@*;
my $pulled = pop $ws->{off_left}->@*;
my @cmds = show_con($pulled);
push $ws->{off_right}->@*, $pushed;
if ($move) {
push @cmds, "focus left";
- my $tem = shift $ws->{cols}->@*;
- unshift $ws->{cols}->@*, $tem, $pulled;
+ my $tem = shift $cols->@*;
+ unshift $cols->@*, $tem, $pulled;
} else {
push @cmds, "move left";
$ws->{focused_col} = $pulled;
- unshift $ws->{cols}->@*, $pulled;
+ unshift $cols->@*, $pulled;
}
wmipc @cmds, hide_con($pushed);