AnyEvent-I3X-Workspace-OnDemand
view release on metacpan or search on metacpan
lib/AnyEvent/I3X/Workspace/OnDemand.pm view on Meta::CPAN
package AnyEvent::I3X::Workspace::OnDemand;
our $VERSION = '0.011';
use v5.26;
use Object::Pad;
# ABSTRACT: An I3 workspace loader
class AnyEvent::I3X::Workspace::OnDemand;
use Carp qw(croak);
use AnyEvent::I3 qw(:all);
use List::Util qw(first any);
use File::Spec::Functions qw(catfile);
use Data::Compare;
use Data::Dumper;
use X11::Protocol;
use Proc::ProcessTable;
use IO::Select;
field $i3;
field $layout_path : param = catfile($ENV{HOME}, qw(.config i3));
field @groups;
field $starting_group :param = undef;
field $starting_workspace :param = undef;
field $debug :param = 0;
field $log_all_events :param = undef;
field $socket :param = undef;
field $i3status :param = '/usr/bin/i3status';
field %workspace;
field %output;
field %mode;
field %window;
field %barconfig_update;
field %binding;
field %tick;
field %shutdown;
field @swallows;
field $c;
field $current_group;
field $current_workspace;
field $x11;
field $xroot;
ADJUSTPARAMS {
my $args = shift;
$debug = 1 if $log_all_events;
# i3
%workspace = %{ delete $args->{workspace} }
if ref $args->{workspace} eq 'HASH';
%barconfig_update = %{ delete $args->{barconfig_update} }
if ref $args->{barconfig_update} eq 'HASH';
%tick = %{ delete $args->{tick} } if ref $args->{tick} eq 'HASH';
%shutdown = %{ delete $args->{shutdown} } if ref $args->{shutdown} eq 'HASH';
%output = %{ delete $args->{output} } if ref $args->{output} eq 'HASH';
%mode = %{ delete $args->{mode} } if ref $args->{mode} eq 'HASH';
%window = %{ delete $args->{window} } if ref $args->{window} eq 'HASH';
%binding = %{ delete $args->{binding} } if ref $args->{binding} eq 'HASH';
@groups = @{ delete $args->{groups} } if ref $args->{groups} eq 'ARRAY';
@swallows = @{ delete $args->{swallows} }
if ref $args->{swallows} eq 'ARRAY';
}
method parse_path($path) {
$path =~ s/\$(\w+)/$ENV{$1} \/\/ "\$$1"/ge;
( run in 1.881 second using v1.01-cache-2.11-cpan-39bf76dae61 )