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
82fd16e5cb
commit
57fc3be9e1
|
@ -86,6 +86,7 @@ my %configs = (
|
|||
'y' => 0,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'bottom',
|
||||
'fallback' => '#000000'
|
||||
}
|
||||
},
|
||||
'stacked-laptop' => {
|
||||
|
@ -96,7 +97,8 @@ my %configs = (
|
|||
'x' => 960,
|
||||
'y' => 0,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'bottom'
|
||||
'waybar' => 'bottom',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'HP-1' => {
|
||||
'on' => 1,
|
||||
|
@ -105,7 +107,8 @@ my %configs = (
|
|||
'x' => 1920,
|
||||
'y' => 1200,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'HP-2' => {
|
||||
'on' => 0
|
||||
|
@ -117,7 +120,8 @@ my %configs = (
|
|||
'x' => 0,
|
||||
'y' => 1200,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'bottom'
|
||||
'waybar' => 'bottom',
|
||||
'fallback' => '#000000'
|
||||
}
|
||||
},
|
||||
'stacked' => {
|
||||
|
@ -128,7 +132,8 @@ my %configs = (
|
|||
'x' => 960,
|
||||
'y' => 0,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'bottom'
|
||||
'waybar' => 'bottom',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'HP-1' => {
|
||||
'on' => 1,
|
||||
|
@ -137,7 +142,8 @@ my %configs = (
|
|||
'x' => 1920,
|
||||
'y' => 1200,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'HP-2' => {
|
||||
'on' => 1,
|
||||
|
@ -146,7 +152,8 @@ my %configs = (
|
|||
'x' => 0,
|
||||
'y' => 1200,
|
||||
'rotate' => 0,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'eDP-1' => {
|
||||
'on' => 0
|
||||
|
@ -160,7 +167,8 @@ my %configs = (
|
|||
'x' => 0,
|
||||
'y' => 225,
|
||||
'rotate' => 270,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'Sam' => {
|
||||
'on' => 1,
|
||||
|
@ -169,7 +177,8 @@ my %configs = (
|
|||
'x' => 1080,
|
||||
'y' => 0,
|
||||
'rotate' => 90,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'HP-2' => {
|
||||
'on' => 1,
|
||||
|
@ -178,7 +187,8 @@ my %configs = (
|
|||
'x' => 2280,
|
||||
'y' => 225,
|
||||
'rotate' => 90,
|
||||
'waybar' => 'top'
|
||||
'waybar' => 'top',
|
||||
'fallback' => '#000000'
|
||||
},
|
||||
'LVDS' => {
|
||||
'on' => 0,
|
||||
|
@ -199,7 +209,7 @@ if ($hostname eq "yoga.lan.john.me.tz") {
|
|||
# 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) {
|
||||
delete($configs{$layout}{'LVDS'});
|
||||
}
|
||||
|
@ -383,10 +393,14 @@ foreach my $out (keys %$on) {
|
|||
# If additional options are provided, add them to command
|
||||
if (defined $on->{$out}->{scale}) {
|
||||
$cmd .= " scale $on->{$out}->{scale}";
|
||||
}
|
||||
} else {
|
||||
$cmd .= " scale 1";
|
||||
}
|
||||
if (defined $on->{$out}->{rotate}) {
|
||||
$cmd .= " transform $on->{$out}->{rotate}";
|
||||
}
|
||||
} else {
|
||||
$cmd .= " transform 0";
|
||||
}
|
||||
if (defined $on->{$out}->{x} && defined $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" .
|
||||
"$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
|
||||
my $res_raw = `$cmd`;
|
||||
print $res_raw . "\n";
|
||||
my $res = $json->decode($res_raw)->[0];
|
||||
|
||||
# If failed, print to STDERR
|
||||
|
@ -428,7 +453,6 @@ foreach my $out (keys %$on) {
|
|||
my $x = $on->{$out}->{width};
|
||||
if (defined $on->{$out}->{scale}) {
|
||||
$x = sprintf("%.0d", $x / $on->{$out}->{scale});
|
||||
print "width: $x\n";
|
||||
}
|
||||
$waybar =~ s/__WIDTH__/$x/;
|
||||
# If width is not set, comment that line out to use default
|
||||
|
@ -457,5 +481,5 @@ unless ($pid) {
|
|||
print $fh $waybar;
|
||||
close $fh;
|
||||
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