diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2024-01-14 13:01:19 +0000 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2024-01-14 13:01:19 +0000 |
commit | fdf056d799b974d878ba77cb96056125a0510e92 (patch) | |
tree | 94017e1cd85d1af563d4b8f7193e98ba69fa6c2a | |
parent | 2d8f89e3473355c13fb28e04861218cf7fde2555 (diff) | |
download | dotfiles-fdf056d799b974d878ba77cb96056125a0510e92.tar.gz |
i3status-wrapper: command processing loop: don't copy cols
-rwxr-xr-x | scripts/desktop/i3status-wrapper | 24 |
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); |