28

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?

Community
  • 1
  • 1
nsheff
  • 3,063
  • 2
  • 24
  • 29
  • A pet peeve of mine too! `Rstudio` plots graphics with X window but blocks the ugly Tcl/tk popup. Thanks for asking this question. – isomorphismes Nov 10 '11 at 03:28

4 Answers4

34

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"))
Aaron left Stack Overflow
  • 36,704
  • 7
  • 77
  • 142
  • 1
    Yes! That is what I was looking for. I had looked in that options menu...Not sure how I missed that. – nsheff Sep 15 '11 at 13:44
12

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.

Community
  • 1
  • 1
Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725
  • 1
    Alright, this solves for the mirror, but what about the "Choose one" dialog that comes up when you type "?mapply" and have 2 packages with "mapply" functions (like IRanges and base)? Loading Tcl/Tk interface... – nsheff Sep 15 '11 at 13:21
  • Ah well, with such an endorsement I just had to nitpick again :) – Dirk Eddelbuettel Sep 15 '11 at 13:23
  • Now see what your nitpicking has done - the answer disappeared ! ;-) – Andrie Sep 15 '11 at 13:38
  • 1
    -1 for not answering the original question. Adding a "have you tried this instead?" comment is fine, but suggested alternatives may not apply in the OP's context, let alone the context of each person who has the same question, possibly even years later. Therefore they don't constitute an answer to the specific question asked. – stewbasic Jan 26 '15 at 23:54
  • 1
    Years later, but just wanted to defend Dirk (not that he needs it...); for most people searching for this question, this is almost certainly an [X-Y problem](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) where Dirk's answer is going to answer their underlying question better than my accepted answer will. – Aaron left Stack Overflow Jul 22 '19 at 22:56
2

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

Jeroen Ooms
  • 31,998
  • 35
  • 134
  • 207
  • 1
    `interactivity` package has been removed from CRAN and doesn't seem to be available anywhere. Has it been mothballed? Which package to use instead? – smci Oct 04 '15 at 22:52
0

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")

irritable_phd_syndrome
  • 4,631
  • 3
  • 32
  • 60