package JSON::Karabiner ;
$JSON::Karabiner::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use File::HomeDir;
use JSON::Karabiner::Rule;
sub new {
my $class = shift;
my $title =
'JSON::Karabiner constructor requires a title for the modification.' if !$title;
croak 'JSON::Karabiner constructor requires a file name.' if !$file;
croak 'File names are required to have a .json
extenstion' if $file !~ /\.json$/;
my $home = File::HomeDir->my_home;
my $self = {
_file => $file,
_mod_file_dir => $opts->{mod_file_dir} || "$home/.config/karabiner/assets/complex_modifi
package JSON::Karabiner::Manipulator::Conditions::Keyboard_type_unless ;
$JSON::Karabiner::Manipulator::Conditions::Keyboard_type_unless::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Car
p;
use parent 'JSON::Karabiner::Manipulator::Conditions::Keyboard_type_if';
#ABSTRACT: definition for keyboard_type_unless condition
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Con
ons::Keyboard_type_unless - definition for keyboard_type_unless condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
=head3 method1()
=head3 method2()
=head1 VERSION
version 0.01
package JSON::Karabiner::Manipulator::Actions::To ;
$JSON::Karabiner::Manipulator::Actions::To::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Karabiner::Manipulato
key_code;
$hash{lazy} = JSON::true if $letter_code && $letter_code eq 'L';
$hash{halt} = JSON::true if $letter_code && $letter_code eq 'H';
$hash{repeat} = JSON::true if $letter_code && $l
$lkc->{modifiers} = $existing;
}
# ABSTRACT: To action object
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To - To action object
=head1 SYNOPSIS
add_action 'to';
#
ackage JSON::Karabiner::Manipulator::Actions::To_if_alone ;
$JSON::Karabiner::Manipulator::Actions::To_if_alone::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Kara
action class
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To_if_alone - to_if_alone action class
=head1 SYNOPSIS
use JSON::Karabiner;
my $to_if_alone_action = $manip
PTION
See L<JSON::Karabiner::Manipulator::Actions::To> for documentation of this
class' methods.
See L<the official Karabiner documentation|https://karabiner-elements.pqrs.org/docs/json/complex-modi
ge JSON::Karabiner::Manipulator::Actions::To_after_key_up ;
$JSON::Karabiner::Manipulator::Actions::To_after_key_up::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::
alue || [],
return $obj;
}
# ABSTRACT: to_after_key_up action
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To_after_key_up - to_after_key_up action
=head1 DESCRIPTION
I
package JSON::Karabiner::Manipulator::Actions::From ;
$JSON::Karabiner::Manipulator::Actions::From::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Karabiner::Manipu
ption is currently unspported by JSON::Karabiner';
}
$s->{"so_${option}_is_set"} = 1;
}
# ABSTRACT: From object definition
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions
m> action. Consult the
official L<Karbiner documentation|https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/from/> about the C<from> data structure.
=head1 MET
package JSON::Karabiner::Manipulator::Actions::To_delayed_if_canceled ;
$JSON::Karabiner::Manipulator::Actions::To_delayed_if_canceled::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Karabiner::Manipulator::Actions::To';
sub new {
my $class = shift;
my ($type, $value) = @_;
my $has_delayed_action;
{ no warnings 'once';
$has_delayed_action = $main::h
obj;
return $obj;
}
# ABSTRACT: to_delayed_if_canceled action
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To_delayed_if_canceled - to_delayed_if_canceled action
=head1
package JSON::Karabiner::Manipulator::Actions::To_delayed_if_invoked ;
$JSON::Karabiner::Manipulator::Actions::To_delayed_if_invoked::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
u
se parent 'JSON::Karabiner::Manipulator::Actions::To';
sub new {
my $class = shift;
my ($type, $value) = @_;
my $obj;
if ($main::has_delayed_action) {
$obj = $main::has_delayed_action;
$obj;
return $obj;
}
# ABSTRACT: to_delayed_if_invoked action
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To_delayed_if_invoked - to_delayed_if_invoked action
=head1 VE
package JSON::Karabiner::Manipulator ;
$JSON::Karabiner::Manipulator::VERSION = '0.018';
use strict;
use warnings;
use Carp;
use Exporter;
our @EXPORT = qw'new_manipulator add_action add_description a
_identifiers add_file_path add_input_source add_keyboard_types add_variable add_description _dump_json _fake_write_file write_file set_filename set_title set_rule_name set_save_dir';
sub import {
s
le_written);
}
my $class = 'JSON::Karabiner::Manipulator';
# trash the first arg if this is using the old school OO interface
shift if $_[0] && $_[0] =~ /^JSON::Karabiner::Manipulator$/;
m
package JSON::Karabiner::Manipulator::Conditions ;
$JSON::Karabiner::Manipulator::Conditions::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
sub new {
my $class = shift;
my $ty
;
{
no warnings 'once';
$main::current_condition = $self;
}
return $self;
}
sub TO_JSON {
my $obj = shift;
my $name = $obj->{def_name};
my $value = $obj->{data};
my @data_hash =
super_hash };
}
# ABSTRACT: parent class for condition classes
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions - parent class for condition classes
=head1 SYNOPSIS
# ad
package JSON::Karabiner::Manipulator::Actions ;
$JSON::Karabiner::Manipulator::Actions::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
sub new {
my $class = shift;
my $type = sh
1 NAME
JSON::Karabiner::Manipulator::Actions - parent class for action classes
=head1 DESCRIPTION
Please see the documentation for the
L<JSON::Karabiner::Manipulator::Actions::To> and
L<JSON::Karab
new($type)
=head3 add_consumer_key_code(@values)
=head3 add_pointing_button(@values)
=head3 TO_JSON()
=head1 VERSION
version 0.018
=head1 AUTHOR
Steve Dondley <s@dondley.com>
=head1 COPYRIGHT
ge JSON::Karabiner::Manipulator::Actions::To_if_held_down ;
$JSON::Karabiner::Manipulator::Actions::To_if_held_down::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::
alue || [],
return $obj;
}
# ABSTRACT: to_if_held_down action
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Actions::To_if_held_down - to_if_held_down action
=head1 VERSION
versi
package JSON::Karabiner::Manipulator::Conditions::Variable_unless ;
$JSON::Karabiner::Manipulator::Conditions::Variable_unless::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use par
dition
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Variable_unless - action variable_unless condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
=head
ckage JSON::Karabiner::Manipulator::Conditions::Device_if ;
$JSON::Karabiner::Manipulator::Conditions::Device_if::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Kar
t;
croak ('No description passed.') unless $desc;
$s->{data}{description} = $desc;
}
sub TO_JSON {
my $obj = shift;
my $name = $obj->{def_name};
my $value = $obj->{data};
my %super_hash
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Device_if - definition for Frontmost_application_if condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
package JSON::Karabiner::Manipulator::Conditions::Event_changed_if ;
$JSON::Karabiner::Manipulator::Conditions::Event_changed_if::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use p
obj;
}
sub add_value {
my $s = shift;
my $value = shift;
$value = $value eq 'true' ? JSON::true : JSON::false;
croak 'A value for the varaible name is required' unless $value;
#TODO: Valida
n
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Event_changed_if - definition for event_changed_if condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
package JSON::Karabiner::Manipulator::Conditions::Input_source_unless ;
$JSON::Karabiner::Manipulator::Conditions::Input_source_unless::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::Karabiner::Manipulator::Conditions::Input_source_if';
# ABSTRACT: definition for input_source_if condition
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Condition
s::Input_source_unless - definition for input_source_if condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
=head3 method1()
=head3 method2()
=head1 VERSION
version 0.018
=head
JSON::Karabiner::Manipulator::Conditions::Frontmost_application_unless ;
$JSON::Karabiner::Manipulator::Conditions::Frontmost_application_unless::VERSION = '0.018';
use strict;
use warnings;
use JSON
use parent 'JSON::Karabiner::Manipulator::Conditions::Frontmost_application_if';
# ABSTRACT: definition for Frontmost_application_unless condition
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::
pplication_unless - definition for Frontmost_application_unless condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
=head3 method1()
=head3 method2()
=head1 VERSION
version 0.01
age JSON::Karabiner::Manipulator::Conditions::Variable_if ;
$JSON::Karabiner::Manipulator::Conditions::Variable_if::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON::K
t;
croak ('No description passed.') unless $desc;
$s->{data}{description} = $desc;
}
sub TO_JSON {
my $obj = shift;
my $name = $obj->{def_name};
my $value = $obj->{data};
my %super_hash
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Variable_if - definition for Frontmost_application_if condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
e JSON::Karabiner::Manipulator::Conditions::Device_unless ;
$JSON::Karabiner::Manipulator::Conditions::Device_unless::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use parent 'JSON:
tion
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Device_unless - definition for device_unless condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION
=he
package JSON::Karabiner::Manipulator::Conditions::Keyboard_type_if ;
$JSON::Karabiner::Manipulator::Conditions::Keyboard_type_if::VERSION = '0.018';
use strict;
use warnings;
use JSON;
use Carp;
use p
t;
croak ('No description passed.') unless $desc;
$s->{data}{description} = $desc;
}
sub TO_JSON {
my $obj = shift;
my $name = $obj->{def_name};
my $value = $obj->{data};
my %super_hash
n
1;
__END__
=pod
=head1 NAME
JSON::Karabiner::Manipulator::Conditions::Keyboard_type_if - definition for keyboard_type_if condition
=head1 SYNOPSIS
use JSON::Karabiner;
=head1 DESCRIPTION