Unexpected behaviour when merging deep levels

I've tried to use confabulous to merge different configurations for rabbitmq. In my test.json I'm including some queues binding, queues etc for test, and I don't want them to be mixed up with the defaults one.
What happens now is that confabulous is returning both the values for defaults.json + test.json, which makes testing impossible since queues configuration get mixed up (unless I move the config from defaults onto the rest of the environments to exclude test.json).
The culprit is this line. Because we are using the recursive method, it is merging to the deepest level, which doesn't allow other config files to override files at a higher level.
Proof:
const merge = require('merge');
const defaultConfig = {
    subscriptions: {
        'this_one': 'should be overriden'
    }
};
const testConfig = {
    subscriptions: {
        'this_other_one': 'should be the only one'
    }
};
console.log(merge.apply(null, [true, defaultConfig, testConfig]));
// { subscriptions: { this_other_one: 'should be the only one' } }

VS
const merge = require('merge');
const defaultConfig = {
    subscriptions: {
        'this_one': 'should be overriden'
    }
};
const testConfig = {
    subscriptions: {
        'this_other_one': 'should be the only one'
    }
};
console.log(merge.recursive.apply(null, [true, defaultConfig, testConfig]));
/ * { subscriptions:
   { this_one: 'should be overriden',
     this_other_one: 'should be the only one' } }
*/

Also, setting the variable I want to remove to 'undefined' in the test file didn't do the trick.
It's interesting, I'm assuming we don't want to override high level objects completely as that will force us to replicate the same config in other files (test etc). Is there any option in confabulous that help resolve this issue?

Hi Felipe,
Recursively merging configuration in the specified order is the desired behaviour. If you want to exclude a configuration source in specific circumstances you can something like...
const c = new Confabulous()
if (APP_ENV !== 'test') c.add(config => loaders.require({ path: './conf/defaults.js' }))
c.add(config => loaders.require({ path: `./conf/${APP_ENV}.js` }))
c.end((err, config) => {
  // Your code goes here
})

However I'm curious as to why you need to do this.

What problems are caused by having both subscriptions?
Why not override the default subscription with the test one by using the same name?

Thanks for the feedback @cressie176 . I just wanted to know what was the expected behaviour because I got a bit confused. Your solution excluding some loaders based on env is good. However I think it's simpler just to override the subscription, I just wanted to know what was expected/acceptable under the use of confabulous, what you said makes sense.

Also I think if you override the default subscription with null rather than undefined, the end result will be null, however I'm not sure rascal will like that.


Feature/2517 use string for chain

Using other PR to solve the issue

Closing since i'm using other PR to close this issue


Problem with converting from grim to wayshot

Hi,
I use fish as shell and Sway as WM, and I believe one of it, causing problems with some commands that I try convert from grim to wayshot:
What works:
bindsym 1 exec 'wayshot -f ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
bindsym 2 exec 'wayshot --stdout | wl-copy', mode "default"

What I couldn't make convert:
bindsym 3 exec 'grim -g "$(slurp)" ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
bindsym 4 exec 'grim -g "$(slurp)" - | wl-copy', mode "default"

I tried to convert them to like this, but from Sway they don't wont to work (nothing happens):

For bindsym 3 tried to make it:

wayshot -s "$(slurp -f '%x %y %w %h')" -f ~/ps_$(date +"%Y%m%d%H%M%S").png

If I try from console:
wayshot -s "(slurp -f '%x %y %w %h')" -f ~/ps_(date +"%Y%m%d%H%M%S").png                                                                                5m26s/23:53
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

If I try in bash
wayshot -s "$(slurp -f '%x %y %w %h')" -f ~/ps_$(date +"%Y%m%d%H%M%S").png

It' just working.

For bindsym 4 tried to make it:

wayshot -s "$(slurp -f '%x %y %w %h')" --stdout | wl-copy

If I try from console:
wayshot -s "(slurp -f '%x %y %w %h')" --stdout | wl-copy
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

If I try in bash
wayshot -s "$(slurp -f '%x %y %w %h')" --stdout | wl-copy

It' just working.

Hi, first of all thank you for the very thorough bug report.
slurp is the external program we call as a helper to grab screen coordinates so if you can run that separately, put it in a variable and then call the variable after the -s argument, I believe it'll work.
The examples provided in the repo are with a posix shell in mind, there is no shell specific code inside of wayshot itself at the end of the day so I can't really support fish per se. The commands just need to be adapted to it.

Hi, first of all thank you for the very thorough bug report. slurp is the external program we call as a helper to grab screen coordinates so if you can run that separately, put it in a variable and then call the variable after the -s argument, I believe it'll work.

You mean?
wayshot -f ~/ps_(date +"%Y%m%d%H%M%S").png -s "(slurp -f '%x %y %w %h')"

It gives the same error as previously.

The examples provided in the repo are with a posix shell in mind, there is no shell specific code inside of wayshot itself at the end of the day so I can't really support fish per se. The commands just need to be adapted to it.

The fact that the examples are given as POSIX is fine, because Sway creates its environment anyway: therefore the bindsym I provided for grim and the hex color picker work, although they are written for bash and not fish.
If fish syntax were important here, they wouldn't work in Sway (the grim shouldn't be able to handle it either). In addition, by typing these commands in the console, the errors that show up to me should not show up, so Wayshot has a problem with something that can be seen in the Sway + fish combination, but not with Sway + bash. Or maybe I understating this wrong (I'm not programmer).

I'm not sure if I completely understand the issue but the error that wayshot threw means that a proper integer wasn't passed by slurp to wayshot
Maybe try notify sending the variable for confirmation? The error code looks fine with respect to the syntax to me but then again I'm not a fish user so you probably know better:D

It will be a tough topic. :P First of all, I can't write commands in Sway config with fish syntax, they will just don't work (Sway will ignore them), that's why I wrote earlier that the examples from README are well written as POSIX. So converting them in Sway config make no much sense. Yeah It looks like problem is in Wayshot with interpretation data from Slurp. My theory is that the data Slurp throws into Wayshot is related to the build of the Fish, even though the Sway commands themselves must be written in Bash. Grim can either process Slurp results from Fish or Grim gets Slurp results differently from Wayshot, so Grim has no problem.
If I write in fish this:
grim -g (slurp) ~/ps_(date +"%Y%m%d%H%M%S").png

It's just do screenshot of selected area without problem.

strace grim -g (slurp) ~/ps_(date +"%Y%m%d%H%M%S").png
execve("/usr/bin/grim", ["grim", "-g", "228,0 1692x370", "/home/roland/ps_20220314135835.p"...], 0x7ffeb3c55ce8 /* 55 vars */) = 0
brk(NULL)                               = 0x55f14a2ed000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffca250a320) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=127551, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 127551, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc5e6abd000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1061880, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc5e6abb000
mmap(NULL, 946752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e69d3000
mmap(0x7fc5e69e3000, 499712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7fc5e69e3000
mmap(0x7fc5e6a5d000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8a000) = 0x7fc5e6a5d000
mmap(0x7fc5e6ab9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe5000) = 0x7fc5e6ab9000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libpixman-1.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \260\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=681768, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 684376, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e692b000
mmap(0x7fc5e6936000, 532480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x7fc5e6936000
mmap(0x7fc5e69b8000, 73728, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8d000) = 0x7fc5e69b8000
mmap(0x7fc5e69ca000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9e000) = 0x7fc5e69ca000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libpng16.so.16", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 `\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=218808, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 221200, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e68f4000
mmap(0x7fc5e68fa000, 147456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fc5e68fa000
mmap(0x7fc5e691e000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2a000) = 0x7fc5e691e000
mmap(0x7fc5e6929000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x34000) = 0x7fc5e6929000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=16200, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e68ef000
mmap(0x7fc5e68f0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7fc5e68f0000
mmap(0x7fc5e68f1000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc5e68f1000
mmap(0x7fc5e68f2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc5e68f2000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libwayland-client.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 `\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=68128, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 70440, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e68dd000
mmap(0x7fc5e68e3000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fc5e68e3000
mmap(0x7fc5e68e9000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x7fc5e68e9000
mmap(0x7fc5e68ec000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7fc5e68ec000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libjpeg.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=522104, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 524312, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e685c000
mprotect(0x7fc5e6860000, 503808, PROT_NONE) = 0
mmap(0x7fc5e6860000, 299008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7fc5e6860000
mmap(0x7fc5e68a9000, 200704, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4d000) = 0x7fc5e68a9000
mmap(0x7fc5e68db000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7e000) = 0x7fc5e68db000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\324\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
pread64(3<EMAIL_ADDRESS>80, 848) = 80
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\205vn\235\204X\261n\234|\346\340|q,\2"..., 68, 928) = 68
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2463384, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc5e685a000
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
mmap(NULL, 2136752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e6650000
mprotect(0x7fc5e667c000, 1880064, PROT_NONE) = 0
mmap(0x7fc5e667c000, 1531904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0x7fc5e667c000
mmap(0x7fc5e67f2000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a2000) = 0x7fc5e67f2000
mmap(0x7fc5e6847000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f6000) = 0x7fc5e6847000
mmap(0x7fc5e684d000, 51888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc5e684d000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=100184, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 102416, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e6636000
mprotect(0x7fc5e6639000, 86016, PROT_NONE) = 0
mmap(0x7fc5e6639000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fc5e6639000
mmap(0x7fc5e6647000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7fc5e6647000
mmap(0x7fc5e664e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fc5e664e000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libffi.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@ \0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=43040, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 46376, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e662a000
mmap(0x7fc5e662c000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc5e662c000
mmap(0x7fc5e6632000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7fc5e6632000
mmap(0x7fc5e6634000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7fc5e6634000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=16488, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc5e6625000
mmap(0x7fc5e6626000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7fc5e6626000
mmap(0x7fc5e6627000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc5e6627000
mmap(0x7fc5e6628000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc5e6628000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc5e6623000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc5e6621000
arch_prctl(ARCH_SET_FS, 0x7fc5e6624600) = 0
set_tid_address(0x7fc5e66248d0)         = 573353
set_robust_list(0x7fc5e66248e0, 24)     = 0
rseq(0x7fc5e6624fa0, 0x20, 0, 0x53053053) = 0
mprotect(0x7fc5e6847000, 12288, PROT_READ) = 0
mprotect(0x7fc5e6628000, 4096, PROT_READ) = 0
mprotect(0x7fc5e6634000, 4096, PROT_READ) = 0
mprotect(0x7fc5e664e000, 4096, PROT_READ) = 0
mprotect(0x7fc5e68db000, 4096, PROT_READ) = 0
mprotect(0x7fc5e68ec000, 8192, PROT_READ) = 0
mprotect(0x7fc5e68f2000, 4096, PROT_READ) = 0
mprotect(0x7fc5e6ab9000, 4096, PROT_READ) = 0
mprotect(0x7fc5e6929000, 4096, PROT_READ) = 0
mprotect(0x7fc5e69ca000, 32768, PROT_READ) = 0
mprotect(0x55f149f1f000, 4096, PROT_READ) = 0
mprotect(0x7fc5e6b12000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7fc5e6abd000, 127551)          = 0
getrandom("\x8a\x60\x15\x6b\x0a\xb0\x96\xb3", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55f14a2ed000
brk(0x55f14a30e000)                     = 0x55f14a30e000
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/user/1000/wayland-1"}, 27) = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\2\0\0\0\1\0\0\0\0\0\f\0\3\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0\34\0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\2\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1892
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0 \0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\4\0\0\0"..., iov_len=196}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 196
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\4\0\0\0\0\0\f\0\0\0\0\0\4\0\0\0\0\0\f\0\1\0\0\0\4\0\0\0\0\0\f\0"..., iov_len=2204}, {iov_base="", iov_len=1892}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 408
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\6\0\0\0\0\0\24\0\10\0\0\0\0\0\0\0\7\0\0\0", iov_len=20}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 20
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\0\0\0\0\0\30\0XB24\200\7\0\08\4\0\0\0\36\0\0", iov_len=1796}, {iov_base="", iov_len=2300}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
clock_gettime(CLOCK_REALTIME, {tv_sec=1647262715, tv_nsec=607709297}) = 0
openat(AT_FDCWD, "/dev/shm/grim-bDkbDc", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0600) = 4
unlink("/dev/shm/grim-bDkbDc")          = 0
ftruncate(4, 8294400)                   = 0
mmap(NULL, 8294400, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x7fc5e5e38000
fcntl(4, F_DUPFD_CLOEXEC, 0)            = 5
close(4)                                = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\4\0\0\0\0\0\20\0\t\0\0\0\0\220~\0\t\0\0\0\0\0 \0\n\0\0\0\0\0\0\0"..., iov_len=68}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[5]}], msg_controllen=20, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 68
close(5)                                = 0
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\t\0\0\0\10\0\0\0\1\0\f\0\0\0\0\0\10\0\0\0\2\0\24\0"..., iov_len=1772}, {iov_base="", iov_len=2324}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 44
mmap(NULL, 2506752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc5e5bd4000
openat(AT_FDCWD, "/home/roland/ps_20220314135835.png", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
brk(0x55f14a333000)                     = 0x55f14a333000
brk(0x55f14a363000)                     = 0x55f14a363000
write(4, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\6\234\0\0\1r\10\2\0\0\0gV\356"..., 4096) = 4096
write(4, "\230\330?\322\322\243\325\25Q\241\372\252\324\361\357D\363\263\243\355=\361\335m\261hJ\324\3306\252n"..., 4096) = 4096
write(4, "\324\362'}\357\352}\363\252\6\377\340\325^\17\336qY\224t~\r\373\354\361\202\2738\357\364\243\276"..., 4096) = 4096
brk(0x55f14a353000)                     = 0x55f14a353000
brk(0x55f14a343000)                     = 0x55f14a343000
brk(0x55f14a333000)                     = 0x55f14a333000
brk(0x55f14a323000)                     = 0x55f14a323000
brk(0x55f14a322000)                     = 0x55f14a322000
brk(0x55f14a320000)                     = 0x55f14a320000
brk(0x55f14a31e000)                     = 0x55f14a31e000
brk(0x55f14a31d000)                     = 0x55f14a31d000
brk(0x55f14a31b000)                     = 0x55f14a31b000
write(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1424) = 1424
close(4)                                = 0
brk(0x55f14a318000)                     = 0x55f14a318000
munmap(0x7fc5e5bd4000, 2506752)         = 0
munmap(0x7fc5e5e38000, 8294400)         = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

But for Wayshot, doesn't work:
wayshot -s (slurp) -f ~/ps_(date +"%Y%m%d%H%M%S").png

strace wayshot -s (slurp) -f ~/ps_(date +"%Y%m%d%H%M%S").png
execve("/usr/bin/wayshot", ["wayshot", "-s", "439,363 1134x717", "-f", "/home/roland/ps_20220314140157.p"...], 0x7fff52cf9cd0 /* 55 vars */) = 0
brk(NULL)                               = 0x55d1cdb76000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc09795cd0) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=127551, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 127551, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f875d1a9000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=478272, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f875d1a7000
mmap(NULL, 107240, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f875d18c000
mprotect(0x7f875d18f000, 90112, PROT_NONE) = 0
mmap(0x7f875d18f000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f875d18f000
mmap(0x7f875d1a1000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f875d1a1000
mmap(0x7f875d1a5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f875d1a5000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1061880, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 946752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f875d0a4000
mmap(0x7f875d0b4000, 499712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7f875d0b4000
mmap(0x7f875d12e000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8a000) = 0x7f875d12e000
mmap(0x7f875d18a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe5000) = 0x7f875d18a000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libmvec.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1088760, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 1028112, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f875cfa8000
mmap(0x7f875cfae000, 143360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f875cfae000
mmap(0x7f875cfd1000, 856064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x29000) = 0x7f875cfd1000
mmap(0x7f875d0a2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf9000) = 0x7f875d0a2000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\324\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
pread64(3<EMAIL_ADDRESS>80, 848) = 80
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\205vn\235\204X\261n\234|\346\340|q,\2"..., 68, 928) = 68
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2463384, ...}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
mmap(NULL, 2136752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f875cd9e000
mprotect(0x7f875cdca000, 1880064, PROT_NONE) = 0
mmap(0x7f875cdca000, 1531904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0x7f875cdca000
mmap(0x7f875cf40000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a2000) = 0x7f875cf40000
mmap(0x7f875cf95000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f6000) = 0x7f875cf95000
mmap(0x7f875cf9b000, 51888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f875cf9b000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f875cd9c000
arch_prctl(ARCH_SET_FS, 0x7f875cd9d0c0) = 0
set_tid_address(0x7f875cd9d390)         = 573605
set_robust_list(0x7f875cd9d3a0, 24)     = 0
rseq(0x7f875cd9da60, 0x20, 0, 0x53053053) = 0
mprotect(0x7f875cf95000, 12288, PROT_READ) = 0
mprotect(0x7f875d18a000, 4096, PROT_READ) = 0
mprotect(0x7f875d0a2000, 4096, PROT_READ) = 0
mprotect(0x7f875d1a5000, 4096, PROT_READ) = 0
mprotect(0x55d1cc4aa000, 61440, PROT_READ) = 0
mprotect(0x7f875d1fe000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f875d1a9000, 127551)          = 0
poll([{fd=0, events=0}, {fd=1, events=0}, {fd=2, events=0}], 3, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f875cde0560}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x55d1cc36f870, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f875cde0560}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x55d1cc36f870, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f875cde0560}, NULL, 8) = 0
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f875d1c6000
mprotect(0x7f875d1c6000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x7f875d1c7000, ss_flags=0, ss_size=8192}, NULL) = 0
getrandom("\xba\xfc\xf4\xe6\xf7\xed\x47\x65", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55d1cdb76000
brk(0x55d1cdb97000)                     = 0x55d1cdb97000
openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
read(3, "55d1cc2e0000-55d1cc352000 r--p 0"..., 1024) = 1024
read(3, "sr/lib/libc.so.6\n7f875cf9b000-7f"..., 1024) = 1024
read(3, "00 r--p 00000000 00:19 3733359  "..., 1024) = 1024
read(3, "875d200000 r--p 00034000 00:19 2"..., 1024) = 516
close(3)                                = 0
sched_getaffinity(573605, 32, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) = 32
getrandom("\xba\xa8\xc6\xc0\x6f\x0b\xb9\x43\xa4\x30\x0d\x71\x9f\x57\x8b\x3e", 16, GRND_NONBLOCK) = 16
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/user/1000/wayland-1"}, 27) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=127551, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 127551, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f875cd7c000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libwayland-client.so", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 `\0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=68128, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 70440, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f875d1b4000
mmap(0x7f875d1ba000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x6000) = 0x7f875d1ba000
mmap(0x7f875d1c0000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xc000) = 0x7f875d1c0000
mmap(0x7f875d1c3000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xe000) = 0x7f875d1c3000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libffi.so.8", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@ \0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=43040, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 46376, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f875cd70000
mmap(0x7f875cd72000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f875cd72000
mmap(0x7f875cd78000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x8000) = 0x7f875cd78000
mmap(0x7f875cd7a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x9000) = 0x7f875cd7a000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=16488, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f875d1af000
mmap(0x7f875d1b0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7f875d1b0000
mmap(0x7f875d1b1000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f875d1b1000
mmap(0x7f875d1b2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f875d1b2000
close(4)                                = 0
mprotect(0x7f875d1b2000, 4096, PROT_READ) = 0
mprotect(0x7f875cd7a000, 4096, PROT_READ) = 0
mprotect(0x7f875d1c3000, 8192, PROT_READ) = 0
munmap(0x7f875cd7c000, 127551)          = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\2\0\0\0\1\0\0\0\0\0\f\0\3\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0\34\0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\2\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1892
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0000\0\10\0\0\0\27\0\0\0zxdg_output_mana"..., iov_len=112}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 112
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\5\0\0\0\0\08\0\0\0\0\0\0\0\0\0T\1\0\0\276\0\0\0\0\0\0\0\10\0\0\0"..., iov_len=2204}, {iov_base="", iov_len=1892}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 232
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\0\0\f\0\3\0\0\0", iov_len=12}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 12
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\3\0\0\0\0\0\f\0l\237\1\0\1\0\0\0\1\0\f\0\3\0\0\0", iov_len=1972}, {iov_base="", iov_len=2124}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
write(2, "thread '", 8thread ')                 = 8
write(2, "main", 4main)                     = 4
write(2, "' panicked at '", 15' panicked at ')         = 15
write(2, "called `Result::unwrap()` on an "..., 81called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }) = 81
write(2, "', ", 3', )                      = 3
write(2, "src/wayshot.rs", 14src/wayshot.rs)          = 14
write(2, ":", 1:)                        = 1
write(2, "73", 273)                       = 2
write(2, ":", 1:)                        = 1
write(2, "69", 269)                       = 2
write(2, "\n", 1
)                       = 1
write(2, "note: run with `RUST_BACKTRACE=1"..., 78note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
) = 78
futex(0x7f875d1a6090, FUTEX_WAKE_PRIVATE,<PHONE_NUMBER>) = 0
close(3)                                = 0
sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=8192}, NULL) = 0
munmap(0x7f875d1c6000, 12288)           = 0
exit_group(101)                         = ?
+++ exited with 101 +++

But this work in console great:
wayshot -s (slurp -f '%x %y %w %h') -f ~/ps_(date +"%Y%m%d%H%M%S").png

strace wayshot -s (slurp -f '%x %y %w %h') -f ~/ps_(date +"%Y%m%d%H%M%S").png
execve("/usr/bin/wayshot", ["wayshot", "-s", "383 250 435 830", "-f", "/home/roland/ps_20220314140032.p"...], 0x7ffe27c3c910 /* 55 vars */) = 0
brk(NULL)                               = 0x557e54fa9000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc4212c470) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=127551, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 127551, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd60afa3000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=478272, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd60afa1000
mmap(NULL, 107240, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd60af86000
mprotect(0x7fd60af89000, 90112, PROT_NONE) = 0
mmap(0x7fd60af89000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fd60af89000
mmap(0x7fd60af9b000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7fd60af9b000
mmap(0x7fd60af9f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7fd60af9f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1061880, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 946752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd60ae9e000
mmap(0x7fd60aeae000, 499712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7fd60aeae000
mmap(0x7fd60af28000, 376832, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8a000) = 0x7fd60af28000
mmap(0x7fd60af84000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe5000) = 0x7fd60af84000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libmvec.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1088760, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 1028112, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd60ada2000
mmap(0x7fd60ada8000, 143360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fd60ada8000
mmap(0x7fd60adcb000, 856064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x29000) = 0x7fd60adcb000
mmap(0x7fd60ae9c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf9000) = 0x7fd60ae9c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\324\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
pread64(3<EMAIL_ADDRESS>80, 848) = 80
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\205vn\235\204X\261n\234|\346\340|q,\2"..., 68, 928) = 68
newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2463384, ...}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0<EMAIL_ADDRESS>784, 64) = 784
mmap(NULL, 2136752, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd60ab98000
mprotect(0x7fd60abc4000, 1880064, PROT_NONE) = 0
mmap(0x7fd60abc4000, 1531904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0x7fd60abc4000
mmap(0x7fd60ad3a000, 344064, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a2000) = 0x7fd60ad3a000
mmap(0x7fd60ad8f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f6000) = 0x7fd60ad8f000
mmap(0x7fd60ad95000, 51888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd60ad95000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd60ab96000
arch_prctl(ARCH_SET_FS, 0x7fd60ab970c0) = 0
set_tid_address(0x7fd60ab97390)         = 573525
set_robust_list(0x7fd60ab973a0, 24)     = 0
rseq(0x7fd60ab97a60, 0x20, 0, 0x53053053) = 0
mprotect(0x7fd60ad8f000, 12288, PROT_READ) = 0
mprotect(0x7fd60af84000, 4096, PROT_READ) = 0
mprotect(0x7fd60ae9c000, 4096, PROT_READ) = 0
mprotect(0x7fd60af9f000, 4096, PROT_READ) = 0
mprotect(0x557e5375c000, 61440, PROT_READ) = 0
mprotect(0x7fd60aff8000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7fd60afa3000, 127551)          = 0
poll([{fd=0, events=0}, {fd=1, events=0}, {fd=2, events=0}], 3, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd60abda560}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x557e53621870, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7fd60abda560}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x557e53621870, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7fd60abda560}, NULL, 8) = 0
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7fd60afc0000
mprotect(0x7fd60afc0000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x7fd60afc1000, ss_flags=0, ss_size=8192}, NULL) = 0
getrandom("\x93\x77\xd2\x23\x50\x73\x47\x43", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x557e54fa9000
brk(0x557e54fca000)                     = 0x557e54fca000
openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
read(3, "557e53592000-557e53604000 r--p 0"..., 1024) = 1024
read(3, "sr/lib/libc.so.6\n7fd60ad95000-7f"..., 1024) = 1024
read(3, "00 r--p 00000000 00:19 3733359  "..., 1024) = 1024
read(3, "d60affa000 r--p 00034000 00:19 2"..., 1024) = 516
close(3)                                = 0
sched_getaffinity(573525, 32, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) = 32
getrandom("\xc8\x8c\xef\x90\x7f\x43\x33\xe2\x83\x12\x8d\xaa\xeb\x5c\xfc\x1e", 16, GRND_NONBLOCK) = 16
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/user/1000/wayland-1"}, 27) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=127551, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 127551, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7fd60ab76000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libwayland-client.so", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 `\0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=68128, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 70440, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fd60afae000
mmap(0x7fd60afb4000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x6000) = 0x7fd60afb4000
mmap(0x7fd60afba000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xc000) = 0x7fd60afba000
mmap(0x7fd60afbd000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xe000) = 0x7fd60afbd000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libffi.so.8", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@ \0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=43040, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 46376, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fd60ab6a000
mmap(0x7fd60ab6c000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7fd60ab6c000
mmap(0x7fd60ab72000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x8000) = 0x7fd60ab72000
mmap(0x7fd60ab74000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x9000) = 0x7fd60ab74000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(4, "", {st_mode=S_IFREG|0755, st_size=16488, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 16400, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fd60afa9000
mmap(0x7fd60afaa000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7fd60afaa000
mmap(0x7fd60afab000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7fd60afab000
mmap(0x7fd60afac000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7fd60afac000
close(4)                                = 0
mprotect(0x7fd60afac000, 4096, PROT_READ) = 0
mprotect(0x7fd60ab74000, 4096, PROT_READ) = 0
mprotect(0x7fd60afbd000, 8192, PROT_READ) = 0
munmap(0x7fd60ab76000, 127551)          = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\2\0\0\0\1\0\0\0\0\0\f\0\3\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0\34\0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\2\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1892
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\2\0\0\0\0\0000\0\10\0\0\0\27\0\0\0zxdg_output_mana"..., iov_len=112}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 112
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\5\0\0\0\0\08\0\0\0\0\0\0\0\0\0T\1\0\0\276\0\0\0\0\0\0\0\10\0\0\0"..., iov_len=2204}, {iov_base="", iov_len=1892}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 232
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\0\0\f\0\3\0\0\0", iov_len=12}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 12
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\3\0\0\0\0\0\f\0k\236\1\0\1\0\0\0\1\0\f\0\3\0\0\0", iov_len=1972}, {iov_base="", iov_len=2124}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\3\0\0\0\1\0\0\0\0\0\f\0\7\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\3\0\0\0\0\0\34\0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\3\0\0\0"..., iov_len=1948}, {iov_base="", iov_len=2148}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1892
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\3\0\0\0\0\0004\0\33\0\0\0\33\0\0\0zwlr_screencopy_"..., iov_len=88}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 88
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\0\0\0\0\0\30\0XB24\263\1\0\0>\3\0\0\314\6\0\0\10\0\0\0\5\0\24\0"..., iov_len=56}, {iov_base="", iov_len=4040}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 52
memfd_create("wayshot", MFD_CLOEXEC|MFD_ALLOW_SEALING) = 4
fcntl(4, F_ADD_SEALS, F_SEAL_SEAL|F_SEAL_SHRINK) = 0
ftruncate(4, 1444200)                   = 0
fcntl(4, F_DUPFD_CLOEXEC, 0)            = 5
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\3\0\0\0\0\0 \0\1\0\0\0\7\0\0\0wl_shm\0\0\1\0\0\0\t\0\0\0"..., iov_len=92}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[5]}], msg_controllen=20, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 92
close(5)                                = 0
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\t\0\0\0", iov_len=4}, {iov_base="\0\0\f\0\0\0\0\0\t\0\0\0\0\0\f\0\1\0\0\0\t\0\0\0\0\0\f\0XB24"..., iov_len=4092}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 168
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\10\0\0\0\1\0\f\0\0\0\0\0\10\0\0\0\2\0\24\0\0\0\0\0\355J\2\0Z\220\233\25", iov_len=3932}, {iov_base="", iov_len=164}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 32
newfstatat(4, "", {st_mode=S_IFREG|0777, st_size=1444200, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 1444200, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x7fd60aa09000
close(4)                                = 0
openat(AT_FDCWD, "/home/roland/ps_20220314140032.png", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 4
write(4, "\211PNG\r\n\32\n", 8)         = 8
write(4, "\0\0\0\r", 4)                 = 4
write(4, "IHDR", 4)                     = 4
write(4, "\0\0\1\263\0\0\3>\10\6\0\0\0", 13) = 13
write(4, "\220\\\357\250", 4)           = 4
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd60a9e8000
brk(0x557e54ff0000)                     = 0x557e54ff0000
brk(0x557e55020000)                     = 0x557e55020000
munmap(0x7fd60a9e8000, 135168)          = 0
write(4, "\0\1=E", 4)                   = 4
write(4, "IDAT", 4)                     = 4
write(4, "x\234\354\235\5\230\24G\23\206\213\3438,\270$\4\202$x\360\v\356\356\356\232\220\340vpXp"..., 81221) = 81221
write(4, "\342\344\306k", 4)            = 4
write(4, "\0\0\0\0", 4)                 = 4
write(4, "IEND", 4)                     = 4
write(4, "\256B`\202", 4)               = 4
munmap(0x7fd60aa09000, 1444200)         = 0
close(4)                                = 0
close(3)                                = 0
sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=8192}, NULL) = 0
munmap(0x7fd60afc0000, 12288)           = 0
exit_group(0)                           = ?
+++ exited with 0 +++

So my lazy ass was thinking grim -g (slurp) work different than wayshot -s (slurp -f '%x %y %w %h'). So somewere in this is problem (for people using Sway+fish). Why I can just do slurp for grim, but for wayshot I need to add -f '%x %y %w %h'?

I'm not sure if I completely understand the issue but the error that wayshot threw means that a proper integer wasn't passed by slurp to wayshot
Maybe try notify sending the variable for confirmation? The error code looks fine with respect to the syntax to me but then again I'm not a fish user so you probably know better:D

I was a fish user. lemme try

Where is this bindsym command come from? Sway config does not use fish. So you misunderstood the first two commands as fish running it.
If you want to make it run fish do:
bindsym 2 exec "fish -c 'wayshot --stdout | wl-copy'"
bindsym 3 exec "fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy"

https://user-images.githubusercontent.com/66054069/158310582-2904068d-1382-4ba3-bb67-5be08da05e28.mp4

Hi,
I use fish as shell and Sway as WM, and I believe one of it, causing problems with some commands that I try convert from grim to wayshot:
What works:
bindsym 1 exec 'wayshot -f ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
bindsym 2 exec 'wayshot --stdout | wl-copy', mode "default"

What I couldn't make convert:
bindsym 3 exec 'grim -g "$(slurp)" ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
bindsym 4 exec 'grim -g "$(slurp)" - | wl-copy', mode "default"

I tried to convert them to like this, but from Sway they don't wont to work (nothing happens):
* For bindsym 3 tried to make it:

wayshot -s "$(slurp -f '%x %y %w %h')" -f ~/ps_$(date +"%Y%m%d%H%M%S").png

If I try from console:
wayshot -s "(slurp -f '%x %y %w %h')" -f ~/ps_(date +"%Y%m%d%H%M%S").png                                                                                5m26s/23:53
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

If I try in bash
wayshot -s "$(slurp -f '%x %y %w %h')" -f ~/ps_$(date +"%Y%m%d%H%M%S").png

It' just working.
* For bindsym 4 tried to make it:

wayshot -s "$(slurp -f '%x %y %w %h')" --stdout | wl-copy

If I try from console:
wayshot -s "(slurp -f '%x %y %w %h')" --stdout | wl-copy
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

If I try in bash
wayshot -s "$(slurp -f '%x %y %w %h')" --stdout | wl-copy

It' just working.

In summary to all the misunderstandings. Fish is not POSIX or has its own syntax not common to POSIX-compliant shells. Sway uses sh in the backend to call  commands through bindsym so using the fish -c "uwu this is my command" is the only thing u can do here. also to call slurp using fish, just use the parentheses and remove $ since fish does not support $() -> which is an invocation of a new shell and not to be confused as environmental variables.

I think that pretty much answers it, I'll wait for the author to reply.

Where is this bindsym command come from? Sway config does not use fish. So you misunderstood the first two commands as fish running it.
If you want to make it run fish do:
bindsym 2 exec "fish -c 'wayshot --stdout | wl-copy'"
bindsym 3 exec "fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy'"

Thank you @uncomfyhalomacro for answers and explonations, but... It didn't help.
https://user-images.githubusercontent.com/44477799/158694835-e0f22751-38e9-4ea8-a8e7-859ff93c0d7b.mp4

Sending a video soon.

this is not a bug in wayshot.

https://user-images.githubusercontent.com/60808802/158695688-37ac348b-40c4-4235-924c-3d6cdb448c99.mp4

Initially the command you ran gave me an error too, but applying some basic debugging knowledge, i removed the \from the slurp command and it worked.

I copied the @uncomfyhalomacro uncomfyhalomacro proposal but in the video he did not actually give any slashes, and then, indeed it work in console. But not from Sway.
    bindsym 3 exec "fish -c 'wayshot -s (slurp -f "%x %y %w %h") --stdout | wl-copy'", mode "default"

I have no idea how to debbug it and maybe it's time for me to give up. I will try in future.

I get that it's frustrating, but I'm not giving up ;)
bindsym 3 exec 'fish -c wayshot -s (slurp -f "%x %y %w %h") --stdout | wl-copy', mode "default"
what about this?

Worst case scenario, we can just put all of this in a bash script and then call the script with bindkeys.

i will try in sway. zzzz i will report later

I copied the @uncomfyhalomacro uncomfyhalomacro proposal but in the video he did not actually give any slashes, and then, indeed it work in console, as you write. But it is not working from Sway.
    bindsym 3 exec "fish -c 'wayshot -s (slurp -f "%x %y %w %h") --stdout | wl-copy'", mode "default"

I have no idea how to debbug it and maybe it's time for me to give up. I will try in future.

i didnt put any slashes because i dont have to escape them. but in bindsym, u have to. i think u have to escape | as well but imma try sway. later

@roland-rollo here it works.
https://user-images.githubusercontent.com/66054069/158710522-fb63bc56-4f67-4dad-8c28-0c256e84d733.mp4
https://user-images.githubusercontent.com/66054069/158710583-4dec0dcb-42f6-47b8-850a-e0c998233d0a.mp4

Tysm cutie @uncomfyhalomacro

@Shinyzenith close this. zzzzzzzzz

lets wait for author to confirm if it's fixed

Sorry for taking so long to answer, but work has sucked my life out of me lately. Something is definitely wrong from my side. If I try
bindsym Print exec fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | swappy -f -', mode "default"

Appear black window that do nothing and I can select any region to copy.
https://user-images.githubusercontent.com/44477799/159805763-c2aebff5-3469-4d98-8cc2-1f98a729c6e1.mp4
Either I have something strangely set in the fish or something related to the Rust environment is missing, because I typed in the console
fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy'
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', src/wayshot.rs:73:69
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I can select region with slurp but after this it give me this error.
It works for you, so the problem is mine. I do not know if someone from Fish will be able to answer me, but I will send this problem and maybe they will let me know if my configuration file is doing something wrong.
I really appreciate your commitment and help. <3

@roland-rollo you should remove the backslashes on the shell. but on the sway config, you should add it. fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy'  should work well in sway config because the ` escapes the ". but if you are on fish shell fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy' wont work because fish does not recognize \ trying to escape " so running fish -c 'wayshot -s (slurp -f "%x %y %w %h") --stdout | wl-copy' without the backslashes \ will work

Sorry for taking so long to answer, but work has sucked my life out of me lately. Something is definitely wrong from my side. If I try

Take it easy 🫂.

It works for you, so the problem is mine. I do not know if someone from Fish will be able to answer me, but I will send this problem and maybe they will let me know if my configuration file is doing something wrong.

I will install fish and sway tomorrow and get to the bottom of this and let you know.

@roland-rollo you should remove the backslashes on the shell. but on the sway config, you should add it. fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy' and it should work well in sway config because the \ escapes the ". but if you are on fish shell fish -c 'wayshot -s (slurp -f \"%x %y %w %h\") --stdout | wl-copy' wont work because fish does not recognize \ trying to escape " so running fish -c 'wayshot -s (slurp -f "%x %y %w %h") --stdout | wl-copy' without the backslashes \ will work.
EDIT: if you want to know why i noticed that, it is because of the Error message ParseIntError. This means that the geometry format is returning something that is not a number. It might be \ or " or both because like i said before, fish does not know \ is to escape something

I tried with backslashes and without in Sway config and terminal. :P It was always the same results. Adding fish -c didn't help (bash -c or sh -c too), but I updated to Fish 3.4.1 and... It finally works:
# Screen capture
#
set $screenshot 1 selected, 2 whole, 3 selected clipboard, 4 whole clipboard
mode "$screenshot" {
    bindsym 1 exec 'wayshot -s "$(slurp -f \"%x %y %w %h\")" -f ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
    bindsym 2 exec 'wayshot -f ~/ps_$(date +"%Y%m%d%H%M%S").png', mode "default"
    bindsym 3 exec 'wayshot -s "$(slurp -f \"%x %y %w %h\")" --stdout | wl-copy', mode "default"
    bindsym 4 exec 'wayshot --stdout | wl-copy', mode "default"

# back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
    bindsym $mod+Print mode "default"
}

bindsym $mod+Print mode "$screenshot"

Thank you all! <3


Support JSR

We would like to support JSR and use it as a default registry. We need to upgrade supported Deno version to 1.42 so this change will be major update (Denops v7.0)

via #344


Make the flag parser smarter

It will now allow multiple presence flag aliases to be joined into a single flag, such that -a -b -c <=> -abc.
This fixes #75

This needs more testing (preferably in-game!)


French Belgium URL Down

Hi in french and belgium we can't anymore access to nhentai.net but we can still go in nhentai.xxx can u let us choose in the future where we going ?

I can't add nhentai.xxx since even if it has the same galleries the source for the HTML is different.
You can try to see the #248 to avoid the block

Ok thanks i'm gonna try this one


maint(core): Bring rest of config validation into the parse config interface

Purpose

Brings the rest of the config related validation into the parse config interface
Replaces readUserChugSpalshConfig and readParsedChugSplashConfig with readValidationChugSplashConfig and readUnvalidatedChugSplashConfig
Introduces a new global object pattern

Global Object Pattern
In this PR, I introduce a new pattern where we initialize a set of global variables at the beginning of our tasks to avoid passing the variables through a long chain of functions. This pattern allows me to avoid doing a large refactor to make sure the readParsedChugSplashConfig has the necessary variables to perform the full validation. In the future, we can simplify our existing logic by adding additional variables to the global object and removing them as parameters from our functions.
This pattern does have an important tradeoff though. It is significantly less observable than our current pattern of passing everything around as function parameters. Our code often fails to compile if we make a change that breaks this web of dependencies.
If we perpetuate the global object pattern, we will be introducing a hidden dependency and it will be on us to remember that the global object always needs to be properly defined. So this may make debugging somewhat more difficult because we will have to remember that bugs could be related to the global object. However, using the global object will allow us to significantly reduce the complexity of our functions and make our code more maintainable.

Global Object Pattern

If we perpetuate the global object pattern, we will be introducing a hidden dependency and it will be on us to remember that the global object always needs to be properly defined. So this may make debugging somewhat more difficult because we will have to remember that bugs could be related to the global object.

This concerns me. It sounds like this'll make it more difficult to audit and debug our code. It also sounds like our code may break in unexpected ways, which seems like it'd make it less maintainable over time. Why not use some sort of object that contains these variables instead? Hardhat uses the HRE for this purpose.


.txt files get incorrectly associated with "random" languages on open

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: Version: 1.60.0-insider (user setup)
Commit: 0214d59846f265d9e50f53b61e2267407d81cbfb
Date: 2021-08-18T05:14:14.284Z
Electron: 13.1.8
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19043

Steps to Reproduce:

Open some text document with a bunch of English/etc. language text that is obviously not C/C++ but has some C/C++ in it. I can send the repro text file via email if you want.

Bug: It's auto-detecting it as C++, but when I manually click the C++ and choose auto-detect it correctly updates it to "Plain text" which matches the associations for .txt (for the C++ scenario our team just wants the auto-language detection for extensionless files).

I also repro .txt files getting associated incorrectly with Batch.

Another case got it associated with Ruby -- seems like it might be random or something.
We have a whole bunch of txt test files that have test output.

Maybe caused by https://github.com/microsoft/vscode/commit/85936d39d31996beec5064856919be9e100bd963
/assign @TylerLeonhardt

I've removed the support of guessing what's in .txt files and left those as plaintext. If the file is extension-less, then we'll try and guess.

@sean-mcmanus can you verify this is working as expected for you now? And not changing the language on .txt files?

/verified


moving hw3 up a day and adding factors module which will need to be a…

…djusted
Starting to make a module like the others about factors and moving hw 3 up a day
For issue #67

I think this should at least restructure the course for the new factor module - I will make that like the other slides later


Define format of LICENSE file

Use this issue to propose format, SEPARATORs, how to list/categorize lists of "bundled" vs. "non-bundled" dependencies.
List which LICENSEs (like MIT or LUA) that we decided to copy in OR copy part and provide URL/link. Add these decisions and the template description to the Markdown file:
https://github.com/apache/incubator-openwhisk-release/blob/master/docs/license_compliance.md
We could even check in the sample file here in this repo. for people to copy.

There are some rules in my mind:

whose bits are bundled in source code distribution means there are third party FILES included in the final released compressed file (for example,  openwhisk-0.3-src.zip).
whose bits are bundled in binary distribution means there are third party FILES included in the final released binary file ( for example, openwhisk-cli-0.3-bin.zip). At this point, I think the packages downloaded during compiling and building should included.
I think only cli and wskdeploy have binary release. For other 10 repositories, we don't have binary release. Most of the dependencies in the other 10 repositories are dependencies during installing and shipped with the docker image. We may need to discuss how to handle this situation.

The format I proposed is:
========================================================================
Dependencies whose bits are bundled in source code distribution
========================================================================
No dependencies bundled in the source code distribution

========================================================================
Dependencies whose bits are bundled in binary distribution
========================================================================
This product bundles properties 1.1.1 (https://github.com/magiconair/properties),
which is available under a "2-clause BSD" license. (as below)

or if the license file is very long, we can use below format
========================================================================
Dependencies whose bits are bundled in binary distribution
========================================================================
This product bundles properties 1.1.1 (https://github.com/magiconair/properties),
which is available under a "2-clause BSD" license. For details, see deps/superwidget/.

I have a question here. How to get the version number of a dependency ?

@daisy-ycguo @mrutkows We can refer to what are under https://github.com/apache/incubator-openwhisk-release/tree/master/archive/convenience-binaries for the format of the LICENSE and NOTICE.


[SPARK-9207] [SQL] Enables Parquet filter push-down by default

PARQUET-136 and PARQUET-173 have been fixed in parquet-mr 1.7.0. It's time to enable filter push-down by default now.

Merged build triggered.

Merged build started.

Test build #38198 has started for   PR 7612 at commit 77e6b5e.

Test build #38198 has finished for   PR 7612 at commit 77e6b5e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Thanks - merging it in.


Renovate does not open pull requests

https://docs.renovatebot.com/getting-started/installing-onboarding/#reconfigure-via-pr


♻ REFACTOR: bash scripts to pass shellcheck

Problem this feature will solve
The bash scripts for this starter need code coverage. The first step before unit tests is to get them to pass a linter (shellcheck).
Background
Linting the codebase is an essential step in  writing clean, solid code.
Proposed Solution
Refactor all the starter scripts to pass the shellcheck linter
Constraints and Assumptions
Just the command line shellcheck will be used to to limitation of the shellcheck IDE extension (see issue 88)
Depends on https://github.com/apolopena/gitpod-laravel8-starter/issues/88
The following files will be refactored.
.gp/bash/spinner.sh
.gp/bash/init-optional-scaffolding.sh
.gp/bash/change-passwords.sh
.gp/bash/before-tasks.sh
.gp/bash/scaffold-project.sh
.gp/bash/update-composer.sh
.gp/bash/helpers.sh
.gp/bash/init-project.sh
.gp/bash/third-party/bash-spinner/spinner.sh
.gp/bash/init-react-example.sh
.gp/bash/init-rake-tasks.sh
.gp/bash/init-gitpod.sh
.gp/bash/workspace-init-logger.sh
.gp/bash/init-phpmyadmin.sh
.gp/bash/init-complete.sh
.gp/bash/utils.sh
.gp/snippets/browser-functions.sh
.gp/snippets/server-functions.sh

~Snippets (files with no extension) should be refactored too allthough they not be included in this refactor because they may be refactored in a way that gives them an extension so they dont have to be treated specially
.gp/snippets/browser-functions
.gp/snippet/server-functions~
Alternatives or Workarounds
Additional context
~File with no extension will need their own command~
Relates to https://github.com/apolopena/gitpod-laravel8-starter/issues/98

Fixed and pretty with a --verbose option.


Compatibility with Arduino Due .

I wonder if it was already done some testing with Arduino Due to this library.

Although I have not tested it (I have no Due board) I think it will probably "just work" with a single important exception: the "autobootstrap feature" (the ability for the library to upload it's own listener to the board without requiring any user interaction; this is processor dependent and currently only ATMega328P is supported).
This means you should be able to use the ArduinoDriver C# library as long as you compile and upload the listener yourself in the Arduino IDE ([here is the source for the listener] (https://raw.githubusercontent.com/christophediericx/ArduinoDriver/master/Source/ArduinoDriver/ArduinoListener/ArduinoListener.ino)). Afterwards, just link the ArduinoDriver nuget package from a C# project, and instantiate a driver without passing true to the constructor, as that is the flag that enables autobootstrap behaviour. For example:
const byte digitalPinToRead = 12;
var driver = new ArduinoDriver.ArduinoDriver();
var readPinResponse = driver.Send(new DigitalReadRequest(digitalPinToRead));

If you try it out, feel free to comment if everything works as intended for you. Perhaps I'll acquire an Arduino Due board in the coming weeks. If I do, I will definitely implement support for it.


ISPN-1860 Crashed member detector to update id only when they leave

https://issues.jboss.org/browse/ISPN-1860
5.1.x branch: t_1860_5

this looks good to me, I'll leave it opened as others might have comments as well.


Consider removing threading locks

One thing discussed in #73 was to be more lax with applying locks. There wasn't a clear motivating case of "oh here is why we need these" rather it seemed the appropriate thing to do when working with threads. So there are potential performance gains to be unlocked if we are less strict with locking.

thanks for opening an issue.  Good to have around to remind us to reconsider.  Also happy to stick with them for a while!


Add worker actions and fix margins

Added worker actions alerts and fixed margins for alert in Organization Signup flow

@scye09 i would just delete the code instead of commenting it out. Otherwise, just fix the merge conflicts and i'll approve :)

Fixed!


[feature]: embed into the Ui as local visualization solution

We have two kind of solutions.

wandb as the remote services if we have token
tensorboard as local services support

visualization model
visluzation training metrics

need to bound to same docker volume https://docs.docker.com/compose/compose-file/07-volumes/

close by #2


Tests fail with AnalyticalException not raised when settings are not set

======================================================================
FAIL: test_no_site_id (analytical.tests.test_tag_clicky.ClickyTagTestCase)
Traceback (most recent call last):
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/utils.py", line 80, in inner
return test_func(*args, **kwargs)
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/test_tag_clicky.py", line 36, in test_no_site_id
self.assertRaises(AnalyticalException, ClickyNode)
AssertionError: AnalyticalException not raised
======================================================================
FAIL: test_no_account_number (analytical.tests.test_tag_crazy_egg.CrazyEggTagTestCase)
Traceback (most recent call last):
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/utils.py", line 80, in inner
return test_func(*args, **kwargs)
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/test_tag_crazy_egg.py", line 29, in test_no_account_number
self.assertRaises(AnalyticalException, CrazyEggNode)
AssertionError: AnalyticalException not raised
======================================================================
FAIL: test_no_property_id (analytical.tests.test_tag_google_analytics.GoogleAnalyticsTagTestCase)
Traceback (most recent call last):
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/utils.py", line 80, in inner
return test_func(*args, **kwargs)
File "build/bdist.macosx-10.8-intel/egg/analytical/tests/test_tag_google_analytics.py", line 35, in test_no_property_id
self.assertRaises(AnalyticalException, GoogleAnalyticsNode)
AssertionError: AnalyticalException not raised

Ran 191 tests in 0.435s
FAILED (failures=3)

Hi Jimi, is this still an issue? Could you tell me a bit more about your use-case? Those tests run fine on the Python/Django versions specified in tox.ini.

Closing this issue due to inactivity. If this is reproducible somehow, @jmwilliams, please reopen and update the description with more details.


Developer experience and helm/kustomize consistency

Thanks @NissesSenap this integrates gofumpt nicely. When running make code/golangci-lint it looks like the linter has problems with inherited fields:
api/v1beta1/grafanadashboard_types.go:228:16: dashboard.Namespace undefined (type GrafanaDashboard has no field or method Namespace) (typecheck)
                if dashboard.Namespace == namespace && dashboard.Name == name {

This complains about the field Namespace which is not directly a member of the GrafanaDashboard struct, but rather a member of ObjectMeta from which GrafanaDashboard inherits.
How can we convince the linter that this is ok? There are many other errors of this kind? Or is it an issue with the version of golangci-lint that i'm running (1.41.1)?

Spoken to @pb82 and the issue was an older golangci-lint already installed on he's computer. It now works as expected for him.


svdtools: init at 0.1.16

Motivation for this change
Add svdtools, a python package to handle vendor-supplied, often buggy SVD files.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 139449 at 9a0a7963 run on aarch64-linux 1

2 packages built successfully:

python38Packages.svdtools
svdtools (python39Packages.svdtools)

Builds happily, macos 10.15 & nixos x86_64


Fullscreen launches always in Landscape on Android

Is there a way to force playing the video on Portrait from the beginning on Android? I've tried using react-native-orientation but it ignores it.

fullscreen = {true}
change it to
fullscreen = {flase}

@Rana-Muhammad-Amir  Didn't work for me. Had to move to stand alone player in android.

@Rana-Muhammad-Amir I need it to play it only on fullscreen. I've finally decided to fork the repo and handle the orientation natively customizing the events listeners.

@senthilsivanath What's the stand alone player? link?

@GastonSchWun GastonSchWun
Can you provide the code on how to do it natively

@bhaveshdaswani93 I lost access to that GitHub account but you can see the commits made on the forked repo at that user repo.
Link:

https://github.com/GastonSchWun/react-native-youtube/commits/master

Notes:

Be aware I have never updated the repo after those commits.
I'm not a JAVA programmer so i can't guarantee it's nice nor following the best practices.
I can not share code from the app it self.

I hope it's useful to you :)


Provide license file

I'm working on submitting this package to conda-forge – see my PR. As part of this, I would like to include a license file for this project.
Could you please add one to the project and to the MANIFEST.in file?

I was pretty sloppy here, because I the upstream work by @slacy doesn't have a clear license. I'm happy to add a license for my work (the cython code), but we also need him to provide a license for his work, the c++ code.  https://github.com/slacy/double-metaphone/

Thanks for filing the issue.

The underlying C++ library's license seems to be Perl license which means either GPL 1+ or Artistic license (liberal, allows commercial re-distribution).
Since the referenced request to the author of the C++ library is unsolved for many years, could this wrapper select the Artistic license in good faith based on the available knowledge and notify the author of the C++ library so he can disagree?
If this sounds like a safe move, could you please add https://choosealicense.com/licenses/artistic-2.0/ as LICENSE.txt to this repo's root?
Could you also please add the license metadata to the PIP package?

Sounds good. Can you make a PR?


Dependencies

Matiss was missing:
ipywidgets
opentrons
pyisemail
xlsxwriter
Quick solution done:
!pip install ipywidgets
!pip install opentrons
!pip install pyisemail
!pip install xlsxwriter

Done


About use ZYYT with Carthage

yeah,  xcode 7.3 updated version.
1.deploy ZYTT.framework in [project -> target -> Embedded Binaries
2.import ZYTT
3.create ZYThumbnailTableViewController object
4.but can not access the property about it

Give me 15 mins to figure out @liuzhiyi1992 .  Update it using Carthage update ZYYT and let me know if any problem still persists. :) @liuzhiyi1992

what about difference between in linked frameworks or embedded binaries

Many experts suggest for iOS to add frameworks in linked frameworks section. I really don't know how they differ as both do the job but anyhow. it's working?

before:

after:

but the Blocks:

Problem only with blocks right? @liuzhiyi1992

yeah

Fixed. Try now @liuzhiyi1992 ? Update and try.

Fixed, and what did you do for it

Had to make the type aliases public in order for it to be used in another class. You don't need to change anything. All problems fixed? Works like a charm?

Wait a moment

Heading out for a while. Please please change whatever u need to in the classes. I'll come back and merge and thanks a lot for letting me make your code a library. See you soon.

while run the project:

I can not think what is the reason.

maybe, you should go to rest. see you tomorrow

Hey @liuzhiyi1992 . Add it to embedded libraries and frameworks then. It should work. This is one error i don't know why it'll come but when u add the framework in embedded libraries and framework it will be resolved.

work! I'm very glad to chat with you

Likewise @liuzhiyi1992 . Whenever you update anything in your repo, update it in this repo too and I'll merge the request. okay? Closing this issue now. Thanks.


Retry IMDSV2 Before Falling Back To IMDSV1

Description:
Feature retry imdsv2 before imdsv1 fallback
Link to tracking Issue:
Internal ticket
Testing:
Going to do the integ on the cwa private gha
Documentation:
N/A

Did not do the singleton instance for imds calls since we have multiple internal packages that could not speak to each other.

Please ignore the failing venerability tests. This is because I changed go mod of packages. This should be resolved when we rebase on main. I think this should be unrelated to my pr and not require resolution here.

Merging since @ymtaye approved. He has not set up on boarding to aws contrib yet but he should be apart of this group.


Update dom at start if hidden

Hi! Thanks for this module, I've been using it for quite some time. :)
I have my mirror setup with many different profiles and when the mirror starts, almost all modules are "hidden" by default. So is this module. However, it shows itself when it updates for the first time, even if it set to hidden.
If I then "hide" the module, it stays hidden until it is shown again as it should. It's just at start, it is misbehaving. :)

Hi, effectivelely, it's start in hidden mode
why ?
The first time, it take all value to make autosizing. (Forced by the module and locked)
maybe you can try this :
You can override autosizing with set in your config:
containerSize and itemSize
see description in structure of the config
if you define this 2 features, the module wiil do this:
Force the value in px defined and so no hidden is needed for calculating sizing of the module (forced by config)
i think sould be correct your issue

Thank you! It worked! :)


[Feature] Support bitmap to access non-init namespaces threads via filterchecks

Motivation
Support bitmap to access non-init namespaces threads via filterchecks.
The concept of pid namespaces etc extends beyond the concept of containers in libsinsp. Adding these new capabilities would enable more granular monitoring of processes that aren't running in containers, but technically also not exactly in the host pid namespace.
Feature
Quote @gnosek:
prefer a bitmap of non-init namespaces the thread is in and a separate filtercheck to access them, otherwise we're one PR away from host_pidns_netns_ipc_user etc
-> I think this would be the right engineering approach, thanks a bunch for your input @gnosek.
Additional context
See https://github.com/falcosecurity/libs/pull/860#issuecomment-1418694527 @gnosek
CC @terylt

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Marking it as non planned for the moment. We can choose to re-open this at a later point.


Shared examples for Responses

Implements some shared examples for Responses, makes some minor adjustments to clean up the Response behavior to comply.

Rebased following #21


Think about removing different provenace for jdk, supply-chain, and runtime

I am not sure how this helps exactly and if it can be removed, it will be better because then our index generation can be deterministic.
{"javax/imageio/plugins/tiff/ExifGPSTagSet$GPSMapDatum":[{"classFileAttributes":{"classfileVersion":"65.0","hash":"a68b8e44ef96226318d161acb02afcc839289fd00b20a123ed66e6415a787b05","algorithm":"SHA-256"}},{"classFileAttributes":{"classfileVersion":"65.0","hash":"a68b8e44ef96226318d161acb02afcc839289fd00b20a123ed66e6415a787b05","algorithm":"SHA-256"},"runtime":true}]}

{"javax/imageio/plugins/tiff/ExifGPSTagSet$GPSMapDatum":[{"classFileAttributes":{"classfileVersion":"65.0","hash":"a68b8e44ef96226318d161acb02afcc839289fd00b20a123ed66e6415a787b05","algorithm":"SHA-256"}}]}

The idea here would be to get the common attributes for each classfile. For example, maven coordinates need to be deleted.


Feature: Background

Add an option to set -

Images
Gifs
Videos
in the background.

Gif and Video should loop.

Option to dim or blur the background.

@rahaaatul Thanks for the suggestion but the design language of the startpage is aimed at being minimal. Adding a wallpaper as background might take that away from it and make it similar to many other startpages available.
I will skip this feature for now but if there's enough requests for this, I can reconsider this. Thanks for the suggestion though.


Non interactive first start

Is there a way to start the bigchaindb for the first time in non interactive mode? "-y" does not work in this case it seems

No. Currently when you start bigchaindb for the first time it checks for the existence of ~/.bigchaindb config file. It it does not exist it will enter the interactive mode.
One way around it would be to manually create the config file. Then when calling bigchaindb start for the first time it will be non interactive.
Another way to create a config file would be using bigchaindb -c myconfig.json configure and then call bigchaindb -c myconfig.json start
I will propose this an enhancement so that when calling bigchaindb -y start for the first time it will create a config file with the default values

I'm using a default config to be able to create a docker image https://github.com/Kunstmaan/docker-bigchaindb/blob/master/bigchaindb but i don't like the priv and pub key values in a default config. A simple change could be that it will generate and add it to a config file if the values are not found?

@roderik: I made some changes to support the -y option when using start, check #64. I'll push it in PyPI soon, will ping you when it's done.

@roderik the new release is PyPI:

https://pypi.python.org/pypi/BigchainDB

Can you give it a try and tell me if it solves your problem?


Set and track a performance budget

Is your feature request related to a problem? Please describe.
So far we have not really paid attention to the file size of our CSS, JS and SVG output (and possible font files in future). As Gravity grows, we really ought to though.
Describe the solution you'd like
We should set ourselves a performance budget (I think for now just some reasonable file-size thresholds would suffice) and then add some tests to our build that check the output file sizes and error if they exceed the limits we've set ourselves (maybe they can also print warnings if we are getting close to our thresholds).
That way we'll get an early warning that our filesize(s) are getting to big and can then make a decision:

Optimise the code to shrink it down
Deprecate and remove rarely used things
Increase our limits (if we agree that everything in the library is needed and cannot be compressed further)

We should also log this over time (so, maybe having an option to output file sizes somewhere like a JSON file would be good). That way we can one-day make nice graphs showing how our file size has changed over time, add notes to releases about how much bigger (or smaller) the library is versus the last release, etc. etc.
Further reading:

https://addyosmani.com/blog/performance-budgets/
https://adactio.com/journal/14355
http://www.performancebudget.io/

looks like we can get some of this done with bundlesize.  it will test file gzip size and fail the build if limits are exceeded.  i am still looking for anything that will do this and/or report/track but so far have only found something that will report +/- vs the last build as build info in Travis CI.  this may be something we have to build ourselves, but i'll keep researching

Do we have any initial sizes we want to set as limits?

:tada: This issue has been resolved in version 2.2.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


PHOENIX-1601 Fix performance script for binary distribution of phoenix

Change the PHOENIX_TEST_JAR_PATTERN since it was also matching flume tests jars.
The performance.py script wasn't working anymore in the bin distribution of phoenix
because the flume test jar was matching the test jar pattern for phoenix core test jar.
This new pattern fixes this issue.

PHOENIX-1601 has already been committed.


Logout route does not work

The logout-route DELETE /api/login does not properly log out the user.
How to recreate this:

Have two tabs open - when you login in one, you're still logged in the other.

Fix, strange behavior with express-session but now it should work


CAD Block Layers

Hello
While using CAD Block some block layers are "null"

In my case "null" are only block "LAPUKO" other blocks in the same Layer shows up correctly
i checked in .dwg there everything looks fine

I am using Revit 2024

Hi,
It is not possible to find the reason of this issue and help you without the DWG.
Maybe "LAPUKO" blocks contain nested blocks?
Best regards,


MAINT-166 Include extension pts in search result

This pull request adds further support to the existing concept search result TSV export, so if a preferred term expand is specified it also exports all the preferred terms that exists in any of the language refsets on that branch.
https://jira.ihtsdotools.org/browse/MAINT-166

@zoliMolnar Please go ahead and merge this pull request when you are ready.


add I.Check which returns a boolean

Currently we have 'Assert' which throws an exception when a check if failing.
It would be good to have a way to do the same assertions which are simply returning a boolean.
This way it's possible to use the assertions in the unit test framework. This way we can use WbTstr.Net in combination with SpecFlow in the following way:

PageObject : private selectors, public methods to perform actions or checks. (so no actual validations here)
StepDefinition: calling methods on page object, assertions based on unit test framework
Features: actual test logic

Initial version added to develop branch. Current methods that return a boolean:

I.Check.Visible(...)
I.Check.Exists(...)
I.Check.Text(...)

Underlying is the Assert functionality.


docs: initial oss docs porting improvements & additions

This pull request contains initial OSS documentation porting improvements and additions to the enterprise documentation.
Fixes https://github.com/daytonaio/enterprise-docs/issues/80
Fixes https://github.com/daytonaio/enterprise-docs/issues/78
Updates https://github.com/daytonaio/enterprise-docs/issues/29

I am aware there is a lot of content in this pull request for the sole reason of not wanting to break connected configurations and links within the documentation when porting sections from OSS docs to enterprise. This is mostly because if I were to integrate the OSS documentation parts in the enterprise, it would be half-broken until a few other pull requests are merged, which I wanted to avoid.
After this pull request, the next ones will be section/configuration-based, and we can focus on each standalone section separately.

@stefanicjuraj put @fabjanvucina as a second reviewer on EE docs. thanks


#556 support transactional sms

closes #556
closes #573

important

blocks pr #562
blocks pr #561

todo:

[x] during postRetrieve and preDeploy, check if dependent metadata is available
[x] check for HTML in SMS body and warn user about it

should be ready for review now.

all changes applied as requested. proceeding with merge as agreed


completed all the JavaScript challenges.

Please review my assignment.

Hi Elizabeth,
Thank you for the feedback!
As shown below, I used toFixed(), instead of Math.round().
Is this the way I should approach? or are there other ways to do it?
const price = 9.99;
const quantity = 10;
const total = price * quantity;
console.log(total.toFixed(2));
Also, could you tell me how to see the comment you left on my pull request on GitHub?
I’d assume I could directly leave a comment on Github rather than sending you an email?
Thank you,
Peter

On Jun 18, 2020, at 22:06, Elizabeth Thompson<EMAIL_ADDRESS>wrote:
@elizabethompson commented on this pull request.
@jwpeterkim https://github.com/jwpeterkim great work! 🎉 I just have one comment, but everything else is perfect (see below)
In index.js https://github.com/Code-the-Dream-School/web-basics-2-week-1-jwpeterkim/pull/2#discussion_r442606074:

@@ -47,6 +51,10 @@ console.log('hello world')
*/

// TODO: ADD CODE HERE
+const price = 9.99;
+const quantity = 10;
+const total = price * quantity;
+console.log(Math.round(total));
Small note here, the total is being rounded to the nearest whole number instead of two decimal places (should be $99.90 instead of 100).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Code-the-Dream-School/web-basics-2-week-1-jwpeterkim/pull/2#pullrequestreview-433772894, or unsubscribe https://github.com/notifications/unsubscribe-auth/APG73UE5ZGKERTBNVELNJULRXLI2ZANCNFSM4OCKW5LA.

Yes, that is the function I used for this challenge 👍
You can view PR feedback directly in GitHub by navigating to the PR url (if it's already closed, you have to update the filter in the "Pull Requests" tab to be able to see it).
Alternatively, when you receive these email notifications you can click the "View it on GitHub" link at the bottom of the message.
Hope this helps!

Thanks for the help!
I really appreciate it! :)
Have a good night.


[Event Request]Application “Tests-ERM”, Codeunit 138088 "O365 Ship-to Addr. P.C.M"

[Event Request]Application “Tests-ERM”, Codeunit 138088 "O365 Ship-to Addr. P.C.M"

Could you please insert the OnTestInitialize Event at the beginning of the Initialize procedure:

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Server fail to restart second hand properly.

Not sure why

Just an Z-index issue. Everything is good now.


Text sets internationalization

Consider internationalization of text sets into other languages. Need to think through many languages requirements to ensure the text sets would look and work well for the text density needed in various languages.
@o-fernandez @barklund Has internationalization been considered for text sets? I suppose they should be translatable..?
Originally posted by @swissspidy in https://github.com/google/web-stories-wp/issues/491#issuecomment-693656617

If we want to translate these, there's going to look a little weird because the whole point is that you're grabbing a set of styles based on the text. we'll def need some UX coordination.


Add callback for human-readable-file writing

Closes #7
Adds a callback to make human-readable files with metadata and provided fields. More info in the added docs.

Showed this to scientists, they have changed their mind and would now prefer the main table to be csv rather than tsv. Hopefully this is just a 1-character change...


Updater: Fix backup files

Fixes backup files not being deleted.
I decided to remove the backup code cause there is no risk of real data being in the app bundle itself. Not sure why I wanted to back this up in the first place.
cc @patrickxb

LGTM


Allow debug configs to be added to launch.json from the Invocation Panel. Fixes #45

testing this PR with https://github.com/ngdseattle/cneo-sample/, the contract appears twice in the Invoke COntract UI even though there is only one compiled AVM file in the workspace

How do you associate UTXO assets with a contract invocation?

Adding a launch configuration blows away any comments that have been added to the launch.json file. (like this one)

testing this PR with https://github.com/ngdseattle/cneo-sample/, the contract appears twice in the Invoke COntract UI even though there is only one compiled AVM file in the workspace

I think maybe you have a different version of the contract (same methods but different hash) deployed. This is being detected from the Neo Express JSON file and shown along side the one detected from the AVM.  Should I show the contract hash in the UI to make this more obvious?
We should resolve https://github.com/neo-project/neo-express/issues/31 and https://github.com/neo-project/neo-express/issues/20 to make the end-to-end experience better.

How do you associate UTXO assets with a contract invocation?

I haven't done that yet (and I left https://github.com/neo-project/neo-visual-tracker/issues/46 to reflect that there are still debug options we do not support).
We need some design thought around this one, for example:

Is it Ok for the user to just specify an amount (e.g. "20 NEO") or do we need to build some sort of UTXO picker where they pick specific UTXOs (and possible specify change)
How should we determine what UTXOs are available? If Neo Express is already running it is easy (we make RPC calls). If Neo Express is not running do we start it? What if the user also picked a checkpoint?

Adding a launch configuration blows away any comments that have been added to the launch.json file. (like this one)

I'm using the VS Code API to change the launch.json file (see addToLaunchJson in invocationPanel.ts).  I decided this was better than doing JSON.stringify(JSON.parse(...)) as this only blows away comments within the configurations array (other comments in the file are left alone).  If we want comments within the array to be safe then I need to find a JSON parsing/serialization library that is comment-aware.

I think maybe you have a different version of the contract (same methods but different hash) deployed. This is being detected from the Neo Express JSON file and shown along side the one detected from the AVM. Should I show the contract hash in the UI to make this more obvious?

That was it - the hash in my .abi.json file doesn't match the hash in the neo-express.json file.
No, let's figure out the end-to-end w/ express better before tackling this edge case

How do you associate UTXO assets with a contract invocation?

I haven't done that yet (and I left #46 to reflect that there are still debug options we do not support).

OK, I'm good with leaving this for #46

We need some design thought around this one, for example:

Is it Ok for the user to just specify an amount (e.g. "20 NEO") or do we need to build some sort of UTXO picker where they pick specific UTXOs (and possible specify change)

I would prefer specifying the amount and using getunspents to figure out the specific UTXOs

How should we determine what UTXOs are available? If Neo Express is already running it is easy (we make RPC calls). If Neo Express is not running do we start it? What if the user also picked a checkpoint?

There's no way for devtracker to get the UTXO info if neo-express isn't running. we could add a command line switch for neo-express to dump the valid UTXOs for an account like get coins but offline. Let's address as part of the larger end-to-end

I'm still worried about the comments getting blown away, but am approving for now. Can we open an issue to track fixing the comment issue?

I'm still worried about the comments getting blown away, but am approving for now. Can we open an issue to track fixing the comment issue?

https://github.com/neo-project/neo-visual-tracker/issues/118


Module 0: Environment Build: Confusion over enabling security services

When colleagues and I ran the workshop with ~20 people in the past several weeks, ~5 of the participants inadvertently manually enabled some of the security services when checking the status of the services.  When they attempted to create the CloudFormation stack with the parameters set to "Y" to enable the services, they encountered stack creation failures.
Suggested fix
Clarify that when using a new AWS account, you do not need to check the current status of the security services. Instead, you can proceed directly to the CloudFormation stack creation section.
Additionally, emphasize that the user should specify "Yes-..." for the security service parameters in the stack when they're using a new account.

This has been re-worked. Thank you for the feedback. Resolved.