Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

KeyboardSimulator

CRAN

KeyboardSimulator is a package for R language that make users simulate keyboard event, cursor movement and mouse click with simple R function.

This package provide 6 functions which are developed in C++:

  • keybd.press() Simulate keyboard key presses. Multiple keys can be pressed simultaneously by using + as separator.
  • keybd.release() Simulate the release of keyboard keys held by keybd.press.
  • keybd.type_string() Type a string with simulated keyboard input.
  • mouse.click() Simulate left and right button of mouse clicks.
  • mouse.release() Simulate the release of mouse button held by mouse.click.
  • mouse.get_cursor() Get current cursor coordinate of screen.
  • mouse.move() Move cursor to specific coordinate of screen.

The supported keys are listed in keyboard_value.


FAQ

Does KeyboardSimulator support operating systems other than Windows?

No, KeyboardSimulator is built on top of the Windows API and is not compatible with other operating systems.

This package doesn't work on my computer! How can I make it work?

Open a GitHub issue and let us know what version of Windows you are using and what keyboard and mouse hardware you have connected.


Package Setup

install.packages("KeyboardSimulator")
library(KeyboardSimulator)

or

if (!require("devtools")) install.packages("devtools")
devtools::install_github("ChiHangChen/KeyboardSimulator")
library(KeyboardSimulator)

Examples

Simulate keyboard event

  • Press single key
keybd.press("Enter")
  • Press multiple keys with + as seperator
keybd.press("Alt+f4")
  • Hold keys with argument hold=TRUE and use keybd.release to release the held key
keybd.press("Alt", hold=TRUE)
keybd.press('Tab')
keybd.release('Alt')

Simulate mouse event

  • Get current location of cursor
mouse.get_cursor()
# Return the x,y coordinate of screen
[1] 960 540
  • Press mouse button
mouse.click()
mouse.click("right")
  • Move cursor to the center of screen on 1080FHD monitor
mouse.move(960, 540)
  • Move cursor to the center of screen on 1080FHD monitor within 3 seconds
mouse.move(960, 540, duration=3)
  • Drag an item to center of screen
mouse.click(button="left", hold=TRUE)
mouse.move(960, 540)
mouse.release()

Developers

Dependencies

It is highly recommended that you use the RStudio IDE to develop this package. In addition to an R installation, you'll also need to install Rtools and a TeX distribution. TeX Live is a comprehensive distribution that seems to work well.

Once you have cloned this repository, you'll need to download the build package dependencies. These dependencies are managed with packrat and can be restored by running

if (!require(packrat)) install.packages("packrat")
packrat::on()
packrat::restore()

Documentation

The roxygen2 R package is used to manage KeyboardSimulator's documentation. Do not edit any of the files that have a warning comment at the top about manually editing those files!

You can regenerate package documentation with the RStudio shortcut Ctrl+Shift+Enter, or by running

roxygen2::roxygenize()

The project is set up to do this whenever building and testing the package.


Other

About

R package for simulate keyboard input

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages