I often want to get a graphics window that is the same size as one that I resized by hand (because it was quicker than setting the width and height directly in dev.new) and have sometimes resorted to using a ruler on my screen or just resize matching. I came up with the following function that does what I want dev.clone <- function(){ if(is.null(dev.list())) stop("No active graphics window!") dev.size() |> as.list() |> setNames(c("width", 'height')) |> do.call(dev.new, args = _ ) invisible(dev.size()) } I thought that I might be able to leverage the new %||% operator but wasn't able to get the logic to work out as I wanted. I haven't found another function to do this. dev.copy doesn't keep the dimensions of the previous plot, but maybe there is a more concise and direct way to achieve this that has escaped me. If anyone knows? Thanks. best, Ken R version 4.4.1 Patched (2024-06-15 r86749) Platform: x86_64-apple-darwin20 Running under: macOS Monterey 12.7.6 Matrix products: default BLAS: /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRblas.0.dylib LAPACK: /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.0 locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 time zone: Europe/Paris tzcode source: internal attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_4.4.1 tools_4.4.1 ___ Kenneth Knoblauch Inserm U1208 Stem-cell and Brain Research Institute 18 avenue du Doyen L?pine 69500 Bron France tel: +33 (0)4 72 91 34 77 fax: +33 (0)4 72 91 34 61 portable: +33 (0)6 84 10 64 10 https://sbri.fr/public-profile/63/single-member/