nsheff
nsheff

Reputation: 3263

Disable/suppress tcltk popup for CRAN mirror selection in R

My question is similar to a question previously posted but never really answered here:

Disable GUI, graphics devices in R

I do not like the R tcltk popups for CRAN mirror selection. They also pop up to choose a package when searching for help on a function in two packages.

Is there any way to disable these windows without disabling X11 completely? I still want plot() commands to work as normal, but disable the little select menus that take forever to load over a remote connection.

For example, if you use ssh, but don't use -X, then the mirror select is just text within R, you type a number. It's fast. This is what I want, but maintaining X11 for plots b.

Anyone know how to maintain graphics windows but disable the "choice" tcltk windows?

Upvotes: 30

Views: 4614

Answers (5)

stevec
stevec

Reputation: 52478

Place this on a new line in ~/.Rprofile:

options(repos=c(CRAN="https://cran.r-project.org"))

Restart your R session and the CRAN mirror popup again won't hassle you again!

NOTE: if ~/.Rprofile doesn't exist, you can simply create it. Don't forget the . (that makes it a hidden file).

Alternate approach (macOS, linux)

You can just run this once in your terminal (it will append the line mentioned above to the bottom of your ~/.Rprofile file! (saving you having to track it down and manually edit it). Restart your R session so it takes effect, and the CRAN mirror popup won't appear again.

echo 'options(repos=c(CRAN="https://cran.r-project.org"))' >> ~/.Rprofile

Note

You can set any CRAN mirror you want, "https://cran.r-project.org" is used above because it's a common one.

Source

This useful info comes from here.

Upvotes: 0

irritable_phd_syndrome
irritable_phd_syndrome

Reputation: 5077

You can also specify the repo within the install.packages() call. This was tested on R/4.3.0, e.g.

install.packages("withr", repos = "http://cran.us.r-project.org")

Upvotes: 0

Jeroen Ooms
Jeroen Ooms

Reputation: 32978

Also have a look at the interactivity package in CRAN if you wish to completley disable interactive funky stuff.

Upvotes: 2

Aaron - mostly inactive
Aaron - mostly inactive

Reputation: 37784

Dirk provides ways to avoid the menus altogether, but to answer your question as posed, I think you want

options(menu.graphics=FALSE)

I tracked this option down by finding the class of objects returned from help (it's help_files_with_topic), scanning utils:::print.help_files_with_topic and finding the line

menu(txt, title = gettext("Choose one"), graphics = getOption("menu.graphics"))

Upvotes: 36

Dirk is no longer here
Dirk is no longer here

Reputation: 368399

Just set a mirror in the startup files. I have this in my ~/.Rprofile and I never see that prompt:

## Default repo
local({r <- getOption("repos");
       r["CRAN"] <- "http://cran.us.r-project.org"; 
       options(repos=r)})

See help(Startup) for more things you can customize here, and also see this excellent SO question on customizing ~/.Rprofile.

Edit: As for your additional question just added in the comments, that is different. In this case you could specify the mapply explicitly by using the namespace and :: operator. For example, base::mapply(foo, bar) would unambiguously pick one from the standard library, and similarly help(mapply, package="base") asks for the help for a given function from a given package.

Upvotes: 12

Related Questions