in reply to Re^2: scripting i3 with Perl
in thread scripting i3 with Perl

Maybe there is an error? The AnyEvent::i3 documentation mentions that ->command returns a result:

use Data::Dumper; sub handle { my($data)=@_; if($data->{change} eq "empty") { print "empty workspace!!\n"; my $switched; $switched = $i3->command("workspace 1")->cb(sub { my( $reply ) = @_; print "Switched back to workspace 1\n"; undef $switched; use Data::Dumper; print Dumper $reply; }); } }

Replies are listed 'Best First'.
Re^4: scripting i3 with Perl
by morgon (Priest) on Feb 02, 2019 at 10:32 UTC
    This is what I get:
    empty workspace!! Switched back to workspace 1 $VAR1 = bless( { '_ae_sent' => [ [ { 'success' => bless( do{\(my $o = +1)}, 'JSON::PP::Boolean' ) } ] ] }, 'AnyEvent::CondVar' );
    However no switching occurs. No clue what is going on there...

      So, the i3 API tells you that all is well. This sounds more like a problem with i3 to me. Maybe consider delaying the switching a bit. Set a timer (AnyEvent->timer(after => 3, sub {...}) and trigger the desktop switch from that timed callback instead of triggering it directly.

        Thanks for your input but if I have to resort to experimentation even for the most trivial cases, this is not for me.

        I'll do my i3 scripting in python then.