From 5834b7e8242c5279712452b632d6ec2e9741760b Mon Sep 17 00:00:00 2001 From: Wesley Schwengle Date: Fri, 19 Apr 2024 13:12:11 -0400 Subject: Use I3SOCK environment variable for path in AnyEvent::I3 (#5987) Commit 3ae5f31d0 introduced the I3SOCK environment variable. This prevents us from having to call `i3 --get-socketpath'. In case the variable doesn't exist, fall back to the old ways. Signed-off-by: Wesley Schwengle --- AnyEvent-I3/lib/AnyEvent/I3.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/AnyEvent-I3/lib/AnyEvent/I3.pm b/AnyEvent-I3/lib/AnyEvent/I3.pm index c7735c51..2d749d9e 100644 --- a/AnyEvent-I3/lib/AnyEvent/I3.pm +++ b/AnyEvent-I3/lib/AnyEvent/I3.pm @@ -156,7 +156,9 @@ instance on the current DISPLAY which is almost always what you want. sub new { my ($class, $path) = @_; - $path = _call_i3('--get-socketpath') unless $path; + # We have I3SOCK now + $path ||= $ENV{I3SOCK}; + $path ||= _call_i3('--get-socketpath'); # Check if we need to resolve ~ if ($path =~ /~/) { @@ -165,6 +167,10 @@ sub new { $path =~ s/~/$home/g; } + if(!-S $path) { + die "$path is not a socket", $/; + } + bless { path => $path } => $class; } -- cgit v1.2.3-54-g00ecf