Add fallback bg, fix missing args, hide waybar
If no background arguement exists, use a fallback colour. If no scale or transform argument exists use 1 and 0. Toggle off waybar on start (I don't think this works properly)
This commit is contained in:
parent
b8cbbb330b
commit
d06ed5266f
|
@ -86,6 +86,7 @@ my %configs = (
|
||||||
'y' => 0,
|
'y' => 0,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'bottom',
|
'waybar' => 'bottom',
|
||||||
|
'fallback' => '#000000'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'stacked-laptop' => {
|
'stacked-laptop' => {
|
||||||
|
@ -96,7 +97,8 @@ my %configs = (
|
||||||
'x' => 960,
|
'x' => 960,
|
||||||
'y' => 0,
|
'y' => 0,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'bottom'
|
'waybar' => 'bottom',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'HP-1' => {
|
'HP-1' => {
|
||||||
'on' => 1,
|
'on' => 1,
|
||||||
|
@ -105,7 +107,8 @@ my %configs = (
|
||||||
'x' => 1920,
|
'x' => 1920,
|
||||||
'y' => 1200,
|
'y' => 1200,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'HP-2' => {
|
'HP-2' => {
|
||||||
'on' => 0
|
'on' => 0
|
||||||
|
@ -117,7 +120,8 @@ my %configs = (
|
||||||
'x' => 0,
|
'x' => 0,
|
||||||
'y' => 1200,
|
'y' => 1200,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'bottom'
|
'waybar' => 'bottom',
|
||||||
|
'fallback' => '#000000'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'stacked' => {
|
'stacked' => {
|
||||||
|
@ -128,7 +132,8 @@ my %configs = (
|
||||||
'x' => 960,
|
'x' => 960,
|
||||||
'y' => 0,
|
'y' => 0,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'bottom'
|
'waybar' => 'bottom',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'HP-1' => {
|
'HP-1' => {
|
||||||
'on' => 1,
|
'on' => 1,
|
||||||
|
@ -137,7 +142,8 @@ my %configs = (
|
||||||
'x' => 1920,
|
'x' => 1920,
|
||||||
'y' => 1200,
|
'y' => 1200,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'HP-2' => {
|
'HP-2' => {
|
||||||
'on' => 1,
|
'on' => 1,
|
||||||
|
@ -146,7 +152,8 @@ my %configs = (
|
||||||
'x' => 0,
|
'x' => 0,
|
||||||
'y' => 1200,
|
'y' => 1200,
|
||||||
'rotate' => 0,
|
'rotate' => 0,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'eDP-1' => {
|
'eDP-1' => {
|
||||||
'on' => 0
|
'on' => 0
|
||||||
|
@ -160,7 +167,8 @@ my %configs = (
|
||||||
'x' => 0,
|
'x' => 0,
|
||||||
'y' => 225,
|
'y' => 225,
|
||||||
'rotate' => 270,
|
'rotate' => 270,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'Sam' => {
|
'Sam' => {
|
||||||
'on' => 1,
|
'on' => 1,
|
||||||
|
@ -169,7 +177,8 @@ my %configs = (
|
||||||
'x' => 1080,
|
'x' => 1080,
|
||||||
'y' => 0,
|
'y' => 0,
|
||||||
'rotate' => 90,
|
'rotate' => 90,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'HP-2' => {
|
'HP-2' => {
|
||||||
'on' => 1,
|
'on' => 1,
|
||||||
|
@ -178,7 +187,8 @@ my %configs = (
|
||||||
'x' => 2280,
|
'x' => 2280,
|
||||||
'y' => 225,
|
'y' => 225,
|
||||||
'rotate' => 90,
|
'rotate' => 90,
|
||||||
'waybar' => 'top'
|
'waybar' => 'top',
|
||||||
|
'fallback' => '#000000'
|
||||||
},
|
},
|
||||||
'LVDS' => {
|
'LVDS' => {
|
||||||
'on' => 0,
|
'on' => 0,
|
||||||
|
@ -199,7 +209,7 @@ if ($hostname eq "yoga.lan.john.me.tz") {
|
||||||
# Disable display from other laptop
|
# Disable display from other laptop
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
if ($ENV{'SSH_AUTH_SOCK'} eq '/home/jpm/.ssh/ssh-agent.yoga.lan.john.me.tz.sock') {
|
if ($ENV{'SSH_AUTH_SOCK'} eq '/home/jpm/.ssh/ssh-agent.sock') {
|
||||||
foreach my $layout (keys %configs) {
|
foreach my $layout (keys %configs) {
|
||||||
delete($configs{$layout}{'LVDS'});
|
delete($configs{$layout}{'LVDS'});
|
||||||
}
|
}
|
||||||
|
@ -383,10 +393,14 @@ foreach my $out (keys %$on) {
|
||||||
# If additional options are provided, add them to command
|
# If additional options are provided, add them to command
|
||||||
if (defined $on->{$out}->{scale}) {
|
if (defined $on->{$out}->{scale}) {
|
||||||
$cmd .= " scale $on->{$out}->{scale}";
|
$cmd .= " scale $on->{$out}->{scale}";
|
||||||
}
|
} else {
|
||||||
|
$cmd .= " scale 1";
|
||||||
|
}
|
||||||
if (defined $on->{$out}->{rotate}) {
|
if (defined $on->{$out}->{rotate}) {
|
||||||
$cmd .= " transform $on->{$out}->{rotate}";
|
$cmd .= " transform $on->{$out}->{rotate}";
|
||||||
}
|
} else {
|
||||||
|
$cmd .= " transform 0";
|
||||||
|
}
|
||||||
if (defined $on->{$out}->{x} && defined $on->{$out}->{y}) {
|
if (defined $on->{$out}->{x} && defined $on->{$out}->{y}) {
|
||||||
$cmd .= " position $on->{$out}->{x} $on->{$out}->{y}";
|
$cmd .= " position $on->{$out}->{x} $on->{$out}->{y}";
|
||||||
}
|
}
|
||||||
|
@ -396,9 +410,20 @@ foreach my $out (keys %$on) {
|
||||||
$cmd .= " mode $on->{$out}->{width}x" .
|
$cmd .= " mode $on->{$out}->{width}x" .
|
||||||
"$on->{$out}->{height}";
|
"$on->{$out}->{height}";
|
||||||
}
|
}
|
||||||
|
if (defined $on->{$out}->{bg} &&
|
||||||
|
-f $on->{$out}->{bg})
|
||||||
|
{
|
||||||
|
$cmd .= " bg $on->{$out}->{bg} fit";
|
||||||
|
if (defined $on->{$out}->{fallback}) {
|
||||||
|
$cmd .= " $on->{$out}->{fallback}";
|
||||||
|
}
|
||||||
|
} elsif (defined $on->{$out}->{fallback}) {
|
||||||
|
$cmd .= " bg $on->{$out}->{fallback} solid_color";
|
||||||
|
}
|
||||||
|
|
||||||
# Sway returns status as JSON
|
# Sway returns status as JSON
|
||||||
my $res_raw = `$cmd`;
|
my $res_raw = `$cmd`;
|
||||||
|
print $res_raw . "\n";
|
||||||
my $res = $json->decode($res_raw)->[0];
|
my $res = $json->decode($res_raw)->[0];
|
||||||
|
|
||||||
# If failed, print to STDERR
|
# If failed, print to STDERR
|
||||||
|
@ -428,7 +453,6 @@ foreach my $out (keys %$on) {
|
||||||
my $x = $on->{$out}->{width};
|
my $x = $on->{$out}->{width};
|
||||||
if (defined $on->{$out}->{scale}) {
|
if (defined $on->{$out}->{scale}) {
|
||||||
$x = sprintf("%.0d", $x / $on->{$out}->{scale});
|
$x = sprintf("%.0d", $x / $on->{$out}->{scale});
|
||||||
print "width: $x\n";
|
|
||||||
}
|
}
|
||||||
$waybar =~ s/__WIDTH__/$x/;
|
$waybar =~ s/__WIDTH__/$x/;
|
||||||
# If width is not set, comment that line out to use default
|
# If width is not set, comment that line out to use default
|
||||||
|
@ -457,5 +481,5 @@ unless ($pid) {
|
||||||
print $fh $waybar;
|
print $fh $waybar;
|
||||||
close $fh;
|
close $fh;
|
||||||
my $waydisplay = $ENV{'WAYLAND_DISPLAY'} || 'wayland-0';
|
my $waydisplay = $ENV{'WAYLAND_DISPLAY'} || 'wayland-0';
|
||||||
`WAYLAND_DISPLAY=$waydisplay nohup waybar --config=$waybar_config >> waybar.log`;
|
`WAYLAND_DISPLAY=$waydisplay nohup waybar -b waybar0 --config=$waybar_config >> waybar.log; /home/jpm/scripts/waybar/toggle.sh invert`;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue