knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The goal of rsTeachMode is to provide an easy mechanism to switch between theme preferences for personal use and theme preferences for a teaching environment in RStudio.
Requires version >1.3.387 of RStudio
Insert the following into your .Rprofile
which can be opened (if you have {usethis}
installed) by using usethis::edit_r_profile()
# Toggle between user rstudio preferences and teaching preferences # Changes theme and font sizes # Requires {rstudioapi} to be installed .toggle <- function(){ # Assumes you are in user mode if first time running in session rsTeachMode_options <- getOption("rsTeachMode") if(is.null(rsTeachMode_options)){ # CHANGE SETTINGS HERE #### rsTeachMode_options <- list( mode = "user", # start in user mode. Options are "user" or "teach" user_theme_name = "Solarized Dark", # change to theme name of choice for user user_font_size = 12, # change to desired font size teach_theme_name = "Chrome", # change to theme name of choice for teaching teach_font_size = 24 # change to desired font size ) ########################### } # use the data type currently being used by the system if (class(rstudioapi::readPreference("font_size_points", FALSE)) == "integer") { rsTeachMode_options$user_font_size <- as.integer(rsTeachMode_options$user_font_size) rsTeachMode_options$teach_font_size <- as.integer(rsTeachMode_options$teach_font_size) } # teach -> user if (rsTeachMode_options$mode == "teach") { rstudioapi::writeRStudioPreference("font_size_points", rsTeachMode_options$user_font_size) rstudioapi::applyTheme(rsTeachMode_options$user_theme_name) } else {# user -> teach rstudioapi::writeRStudioPreference("font_size_points", rsTeachMode_options$teach_font_size) rstudioapi::applyTheme(rsTeachMode_options$teach_theme_name) } # flip the mode in the stored options rsTeachMode_options$mode <- ifelse(rsTeachMode_options$mode == "teach", "user", "teach") options(rsTeachMode = rsTeachMode_options) }
Then you can run .toggle()
when you want to switch between user and teaching mode.
This package is under development and very experimental but can be installed from github using:
remotes::install_github("murraycadzow/rsTeachMode@main")
This will use your current theme and editor font settings as the 'user' options and set your teaching settings to the "Chrome" theme with a font size of 24. The use of quite = FALSE
prints out the code to add to your .Rprofile that is needed to maintain these settings between sessions.
library(rsTeachMode) # keeps your current settings as your 'user' settings and sets preferences for 'teaching' use set_teach_mode_settings(teach_theme_name = "Chrome", teach_font_size = 24, quiet = FALSE) # Specify all settings set_teach_mode_settings(current_mode = "user", user_theme_name = "Solarized Light", user_font_size = 12, teach_theme_name = "Chrome", teach_font_size = 24, quiet = FALSE)
Once you have created your set your settings toggle between the two modes with:
toggle_teach_mode()
Or set it to a keyboard shortcut using the addin.
There are addins as part of this package that make it easy to create keyboard shortcuts for the common features.
To set a keyboard shortcut, in the Rstudio menu go Tools -> Modify Keyboard Shortcuts
and then filter for "Toggle Teach Mode" or one of the names of the other addins.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.