diff --git a/Core/Input/remote.lua b/Core/Input/remote.lua
index 9bedb4cc..15536961 100644
--- a/Core/Input/remote.lua
+++ b/Core/Input/remote.lua
@@ -41,8 +41,8 @@ actions.MoveBy = function(x, y)
mouse.moveraw(x,y);
end
-actions.MoveTo = function (x, y)
- mouse.moveto(x, y);
+actions.MoveTo = function (x, y, display)
+ mouse.moveto(x, y, display);
end
actions.MoveToPx = function (x, y)
diff --git a/Main/BSPlayer/layout.xml b/Main/BSPlayer/layout.xml
index a4d53392..69fd0227 100644
--- a/Main/BSPlayer/layout.xml
+++ b/Main/BSPlayer/layout.xml
@@ -8,10 +8,8 @@
-
-
diff --git a/Main/BSPlayer/remote.lua b/Main/BSPlayer/remote.lua
index a99e9f82..50d1cf55 100644
--- a/Main/BSPlayer/remote.lua
+++ b/Main/BSPlayer/remote.lua
@@ -218,16 +218,6 @@ actions.stop = function()
actions.command(BSP_Stop);
end
---@help Fast rewind
-actions.fast_rewind = function()
- actions.command(BSP_FastRew);
-end
-
---@help Rewind
-actions.rewind = function()
- actions.command(BSP_Rew);
-end
-
--@help Forward
actions.forward = function()
actions.command(BSP_Forw);
diff --git a/Main/Blender Numpad Advanced/README.md b/Main/Blender Numpad Advanced/README.md
new file mode 100644
index 00000000..2d57a3d0
--- /dev/null
+++ b/Main/Blender Numpad Advanced/README.md
@@ -0,0 +1,2 @@
+# Blender Numpad Advanced
+Keyboard shortcuts for Blender (advanced version).
diff --git a/Main/Blender Numpad/README.md b/Main/Blender Numpad/README.md
new file mode 100644
index 00000000..fbf02f0a
--- /dev/null
+++ b/Main/Blender Numpad/README.md
@@ -0,0 +1,2 @@
+# Blender Numpad
+Keyboard shortcuts for Blender (basic version).
diff --git a/Main/Chrome/README.md b/Main/Chrome/README.md
index 085071d7..d0a12716 100644
--- a/Main/Chrome/README.md
+++ b/Main/Chrome/README.md
@@ -2,7 +2,7 @@
Easily control your Chrome browser window from a distance. If you're trying to browse the web from your sofa at a distance then this remotes makes it easier to do the right thing (rather than trying to move the mouse).
## Features
-* Navigation (back, fowrard, home)
+* Navigation (back, forward, home)
* Tabs (open, close, next, previous)
* Find on current page
* Refresh current page
diff --git a/Main/Chrome/layout.xml b/Main/Chrome/layout.xml
index e15591f1..5ff9cd0b 100644
--- a/Main/Chrome/layout.xml
+++ b/Main/Chrome/layout.xml
@@ -1,21 +1,15 @@
-
-
-
-
+
+
+
-
-
-
+
+
+
@@ -23,14 +17,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/Main/Chrome/remote.lua b/Main/Chrome/remote.lua
index a6bce350..c9d0a423 100644
--- a/Main/Chrome/remote.lua
+++ b/Main/Chrome/remote.lua
@@ -101,13 +101,13 @@ end
--@help Scroll page down
actions.scroll_down = function()
actions.switch();
- keyboard.stroke("space");
+ keyboard.stroke("pgdown");
end
--@help Scroll page up
actions.scroll_up = function()
actions.switch();
- keyboard.stroke("shift", "space");
+ keyboard.stroke("pgup");
end
--@help Refresh current page
diff --git a/Main/Chrome/remote_osx.lua b/Main/Chrome/remote_osx.lua
index ad3bddcd..ff8150af 100644
--- a/Main/Chrome/remote_osx.lua
+++ b/Main/Chrome/remote_osx.lua
@@ -96,13 +96,13 @@ end
--@help Scroll page down
actions.scroll_down = function()
actions.switch();
- keyboard.stroke("space");
+ keyboard.stroke("pgdown");
end
--@help Scroll page up
actions.scroll_up = function()
actions.switch();
- keyboard.stroke("shift", "space");
+ keyboard.stroke("pgup");
end
--@help Refresh current page
diff --git a/Main/Disney+/README.md b/Main/Disney+/README.md
new file mode 100644
index 00000000..ab60cb47
--- /dev/null
+++ b/Main/Disney+/README.md
@@ -0,0 +1,12 @@
+# Disney+
+A remote control for Disney+
+
+## Features
+* Volume (up, down)
+* Rewind & fast forward
+* Toggle fullscreen
+* Toggle playback (play, pause)
+
+## Support
+Developed and maintained by **Unified Remote**
+https://www.unifiedremote.com/help
diff --git a/Main/Disney+/icon.png b/Main/Disney+/icon.png
new file mode 100644
index 00000000..e46fe2bf
Binary files /dev/null and b/Main/Disney+/icon.png differ
diff --git a/Main/Disney+/icon_hires.png b/Main/Disney+/icon_hires.png
new file mode 100644
index 00000000..24ee990e
Binary files /dev/null and b/Main/Disney+/icon_hires.png differ
diff --git a/Main/Disney+/layout.xml b/Main/Disney+/layout.xml
new file mode 100644
index 00000000..bced53c6
--- /dev/null
+++ b/Main/Disney+/layout.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Main/Disney+/meta.prop b/Main/Disney+/meta.prop
new file mode 100644
index 00000000..7ce380df
--- /dev/null
+++ b/Main/Disney+/meta.prop
@@ -0,0 +1,4 @@
+meta.name: Disney+
+meta.author: Unified
+meta.description: Disney+ remote
+meta.tags.category: media
diff --git a/Main/Disney+/remote.lua b/Main/Disney+/remote.lua
new file mode 100644
index 00000000..ffb321f0
--- /dev/null
+++ b/Main/Disney+/remote.lua
@@ -0,0 +1,36 @@
+local keyboard = libs.keyboard;
+
+--@help Increase volume
+actions.volume_down = function()
+ keyboard.press("down");
+end
+
+--@help Decrease volume
+actions.volume_up = function()
+ keyboard.press("up");
+end
+
+--@help Rewind 10 seconds
+actions.rewind = function()
+ keyboard.press("left");
+end
+
+--@help Forward 10 seconds
+actions.forward = function()
+ keyboard.press("right");
+end
+
+--@help Enter fullscreen
+actions.fullscreen = function()
+ keyboard.press("f");
+end
+
+--@help Exit fullscreen
+actions.exit_fullscreen = function()
+ keyboard.press("esc");
+end
+
+--@help Toggle playback state
+actions.play_pause = function()
+ keyboard.press("space");
+end
diff --git a/Main/Edge/README.md b/Main/Edge/README.md
new file mode 100644
index 00000000..56bdcb5f
--- /dev/null
+++ b/Main/Edge/README.md
@@ -0,0 +1,15 @@
+# Edge
+Easily control your Edge browser window from a distance. If you're trying to browse the web from your sofa at a distance then this remotes makes it easier to do the right thing (rather than trying to move the mouse).
+
+## Features
+* Navigation (back, forward, home)
+* Tabs (open, close, next, previous)
+* Find on current page
+* Refresh current page
+* Scroll up/down
+* Zoom in/out
+* Focus URL field
+
+## Support
+Developed and maintained by **Unified Remote**
+https://www.unifiedremote.com/help
diff --git a/Main/Edge/icon.png b/Main/Edge/icon.png
new file mode 100644
index 00000000..9562179b
Binary files /dev/null and b/Main/Edge/icon.png differ
diff --git a/Main/Edge/icon_hires.png b/Main/Edge/icon_hires.png
new file mode 100644
index 00000000..2fa93ddb
Binary files /dev/null and b/Main/Edge/icon_hires.png differ
diff --git a/Main/Edge/layout.xml b/Main/Edge/layout.xml
new file mode 100644
index 00000000..76a29664
--- /dev/null
+++ b/Main/Edge/layout.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Main/Edge/meta.prop b/Main/Edge/meta.prop
new file mode 100644
index 00000000..89d8d417
--- /dev/null
+++ b/Main/Edge/meta.prop
@@ -0,0 +1,4 @@
+meta.name: Edge
+meta.author: Unified
+meta.description: Microsoft Edge browser remote.
+meta.tags.category: browser
diff --git a/Main/Edge/remote.lua b/Main/Edge/remote.lua
new file mode 100644
index 00000000..3ab7ada7
--- /dev/null
+++ b/Main/Edge/remote.lua
@@ -0,0 +1,115 @@
+local keyboard = libs.keyboard;
+local win = libs.win;
+local device = libs.device;
+
+events.detect = function ()
+ return libs.fs.exists("C:\\Program Files (x86)\\Microsoft\\Edge\\Application");
+end
+
+--@help Focus Edge application
+actions.switch = function()
+ if OS_WINDOWS then
+ local hwnd = win.window("msedge.exe");
+ if (hwnd == 0) then actions.launch(); end
+ win.switchtowait("msedge.exe");
+ end
+end
+
+--@help Launch Edge application
+actions.launch = function()
+ if OS_WINDOWS then
+ os.start("msedge");
+ end
+end
+
+--@help Naviagte back
+actions.back = function()
+ actions.switch();
+ keyboard.stroke("menu", "left");
+end
+
+--@help Close current tab
+actions.close_tab = function()
+ actions.switch();
+ keyboard.stroke("control", "W");
+end
+
+--@help Navigate forward
+actions.forward = function()
+ actions.switch();
+ keyboard.stroke("menu", "right");
+end
+
+--@help Go to next tab
+actions.next_tab = function()
+ actions.switch();
+ keyboard.stroke("control", "tab");
+end
+
+--@help Go to previous tab
+actions.previous_tab = function()
+ actions.switch();
+ keyboard.stroke("control", "shift", "tab");
+end
+
+--@help Open new tab
+actions.new_tab = function()
+ actions.switch();
+ keyboard.stroke("control", "T");
+end
+
+--@help Type address
+actions.address = function()
+ actions.switch();
+ keyboard.stroke("control", "L");
+ device.keyboard();
+end
+
+--@help Go to home page
+actions.home = function()
+ actions.switch();
+ keyboard.stroke("menu", "home");
+end
+
+--@help Find on current page
+actions.find = function()
+ actions.switch();
+ keyboard.stroke("control", "F");
+ device.keyboard();
+end
+
+--@help Zoom page in
+actions.zoom_in = function()
+ actions.switch();
+ keyboard.stroke("control", "oem_plus");
+end
+
+--@help Zoom page out
+actions.zoom_out = function()
+ actions.switch();
+ keyboard.stroke("control", "oem_minus");
+end
+
+--@help Use normal zoom
+actions.zoom_normal = function()
+ actions.switch();
+ keyboard.stroke("control", "0");
+end
+
+--@help Scroll page down
+actions.scroll_down = function()
+ actions.switch();
+ keyboard.stroke("pgdown");
+end
+
+--@help Scroll page up
+actions.scroll_up = function()
+ actions.switch();
+ keyboard.stroke("pgup");
+end
+
+--@help Refresh current page
+actions.refresh = function()
+ actions.switch();
+ keyboard.stroke("F5");
+end
diff --git a/Main/Edge/remote_osx.lua b/Main/Edge/remote_osx.lua
new file mode 100644
index 00000000..e55b85a8
--- /dev/null
+++ b/Main/Edge/remote_osx.lua
@@ -0,0 +1,112 @@
+local keyboard = libs.keyboard;
+local device = libs.device;
+
+events.detect = function ()
+ return libs.fs.exists("/Applications/Microsoft Edge.app");
+end
+
+--@help Focus Edge application
+actions.switch = function()
+ os.script("tell application \"Microsoft Edge\" to reopen activate");
+end
+
+--@help Launch Edge application
+actions.launch = function()
+ os.open("/Applications/Microsoft Edge.app");
+end
+
+--@help Naviagte back
+actions.back = function()
+ actions.switch();
+ keyboard.stroke("cmd", "left");
+end
+
+--@help Close current tab
+actions.close_tab = function()
+ actions.switch();
+ keyboard.stroke("cmd", "W");
+end
+
+--@help Navigate forward
+actions.forward = function()
+ actions.switch();
+ keyboard.stroke("cmd", "right");
+end
+
+--@help Go to next tab
+actions.next_tab = function()
+ actions.switch();
+ keyboard.stroke("cmd", "option", "right");
+end
+
+--@help Go to previous tab
+actions.previous_tab = function()
+ actions.switch();
+ keyboard.stroke("cmd", "option", "left");
+end
+
+--@help Open new tab
+actions.new_tab = function()
+ actions.switch();
+ keyboard.stroke("cmd", "T");
+end
+
+--@help Type address
+actions.address = function()
+ actions.switch();
+ keyboard.stroke("cmd", "L");
+ -- Without keyboard up chrome chrash.
+ keyboard.up("cmd", "L");
+ device.keyboard();
+end
+
+--@help Go to home page
+actions.home = function()
+ actions.switch();
+ keyboard.stroke("cmd", "shift", "H");
+end
+
+--@help Find on current page
+actions.find = function()
+ actions.switch();
+ keyboard.stroke("cmd", "F");
+ -- Without keyboard up chrome chrash.
+ keyboard.up("cmd", "F");
+ device.keyboard();
+end
+
+--@help Zoom page in
+actions.zoom_in = function()
+ actions.switch();
+ keyboard.stroke("cmd", "plus");
+end
+
+--@help Zoom page out
+actions.zoom_out = function()
+ actions.switch();
+ keyboard.stroke("cmd", "kpminus");
+end
+
+--@help Use normal zoom
+actions.zoom_normal = function()
+ actions.switch();
+ keyboard.stroke("cmd", "0");
+end
+
+--@help Scroll page down
+actions.scroll_down = function()
+ actions.switch();
+ keyboard.stroke("pgdown");
+end
+
+--@help Scroll page up
+actions.scroll_up = function()
+ actions.switch();
+ keyboard.stroke("pgup");
+end
+
+--@help Refresh current page
+actions.refresh = function()
+ actions.switch();
+ keyboard.stroke("cmd", "R");
+end
diff --git a/Main/Firefox/README.md b/Main/Firefox/README.md
index 840be8d5..16591331 100644
--- a/Main/Firefox/README.md
+++ b/Main/Firefox/README.md
@@ -2,7 +2,7 @@
Mozilla Firefox browser remote.
## Features
-* Navigation (back, fowrard, home)
+* Navigation (back, forward, home)
* Tabs (open, close, next, previous)
* Find on current page
* Refresh current page
diff --git a/Main/Firefox/remote.lua b/Main/Firefox/remote.lua
index 4eb85da8..c824855b 100644
--- a/Main/Firefox/remote.lua
+++ b/Main/Firefox/remote.lua
@@ -101,13 +101,13 @@ end
--@help Scroll page down
actions.scroll_down = function()
actions.switch();
- keyboard.stroke("space");
+ keyboard.stroke("pgdown");
end
--@help Scroll page up
actions.scroll_up = function()
actions.switch();
- keyboard.stroke("shift", "space");
+ keyboard.stroke("pgup");
end
--@help Refresh current page
diff --git a/Main/Firefox/remote_osx.lua b/Main/Firefox/remote_osx.lua
index abdfb344..0280537a 100644
--- a/Main/Firefox/remote_osx.lua
+++ b/Main/Firefox/remote_osx.lua
@@ -95,13 +95,13 @@ end
--@help Scroll page down
actions.scroll_down = function()
actions.switch();
- keyboard.stroke("space");
+ keyboard.stroke("pgdown");
end
--@help Scroll page up
actions.scroll_up = function()
actions.switch();
- keyboard.stroke("shift", "space");
+ keyboard.stroke("pgup");
end
--@help Refresh current page
diff --git a/Main/HBO GO/README.md b/Main/HBO GO/README.md
new file mode 100644
index 00000000..537cc6b3
--- /dev/null
+++ b/Main/HBO GO/README.md
@@ -0,0 +1,11 @@
+# HBO GO
+A remote control for HBO GO.
+
+## Features
+* Volume (up, down)
+* Rewind & fast forward
+* Toggle playback (play, pause)
+
+## Support
+Developed and maintained by **Unified Remote**
+https://www.unifiedremote.com/help
diff --git a/Main/HBO GO/icon.png b/Main/HBO GO/icon.png
new file mode 100644
index 00000000..eb3a87d1
Binary files /dev/null and b/Main/HBO GO/icon.png differ
diff --git a/Main/HBO GO/icon_hires.png b/Main/HBO GO/icon_hires.png
new file mode 100644
index 00000000..6d028bf4
Binary files /dev/null and b/Main/HBO GO/icon_hires.png differ
diff --git a/Main/HBO GO/layout.xml b/Main/HBO GO/layout.xml
new file mode 100644
index 00000000..3bb09a05
--- /dev/null
+++ b/Main/HBO GO/layout.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Main/HBO GO/meta.prop b/Main/HBO GO/meta.prop
new file mode 100644
index 00000000..fc11258d
--- /dev/null
+++ b/Main/HBO GO/meta.prop
@@ -0,0 +1,4 @@
+meta.name: HBO GO
+meta.author: Unified
+meta.description: HBO GO remote
+meta.tags.category: media
diff --git a/Main/HBO GO/remote.lua b/Main/HBO GO/remote.lua
new file mode 100644
index 00000000..d4cac464
--- /dev/null
+++ b/Main/HBO GO/remote.lua
@@ -0,0 +1,26 @@
+local keyboard = libs.keyboard;
+
+--@help Increase volume
+actions.volume_down = function()
+ keyboard.press("volume_down");
+end
+
+--@help Decrease volume
+actions.volume_up = function()
+ keyboard.press("volume_up");
+end
+
+--@help Rewind 10 seconds
+actions.rewind = function()
+ keyboard.press("left");
+end
+
+--@help Forward 10 seconds
+actions.forward = function()
+ keyboard.press("right");
+end
+
+--@help Toggle playback state
+actions.play_pause = function()
+ keyboard.press("space");
+end
diff --git a/Main/IE/README.md b/Main/IE/README.md
index fa163fb6..0867951e 100644
--- a/Main/IE/README.md
+++ b/Main/IE/README.md
@@ -2,7 +2,7 @@
Internet Explorer browser remote.
## Features
-* Navigation (back, fowrard, home)
+* Navigation (back, forward, home)
* Tabs (open, close, next, previous)
* Find on current page
* Refresh current page
diff --git a/Main/Pandora/remote.lua b/Main/Pandora/remote.lua
index cc9b7bce..9f1c5c8c 100644
--- a/Main/Pandora/remote.lua
+++ b/Main/Pandora/remote.lua
@@ -15,7 +15,7 @@ actions.volume_up = function()
keyboard.stroke("volume_up");
end
---@help Dislike current track
+--@help Like current track
actions.thumbs_up = function()
if (OS_WINDOWS) then
keyboard.stroke("shift", "oem_plus");
@@ -24,7 +24,7 @@ actions.thumbs_up = function()
end
end
---@help Like current track
+--@help Dislike current track
actions.thumbs_down = function()
if (OS_WINDOWS) then
keyboard.stroke("oem_minus");
diff --git a/Main/Power/remote_linux.lua b/Main/Power/remote_linux.lua
index 4e4a0d08..4a5b3fe1 100644
--- a/Main/Power/remote_linux.lua
+++ b/Main/Power/remote_linux.lua
@@ -17,7 +17,7 @@ events.create = function ()
end
end
---@help Force system restart
+--@help System restart
actions.restart = function ()
-- Alternatives for other DEs should be added here...
if (de == "KDE") then
@@ -27,7 +27,7 @@ actions.restart = function ()
end
end
---@help Force system shutdown
+--@help System shutdown
actions.shutdown = function ()
-- Alternatives for other DEs should be added here...
if (de == "KDE") then
diff --git a/Main/Power/remote_osx.lua b/Main/Power/remote_osx.lua
index 33189361..528552bf 100644
--- a/Main/Power/remote_osx.lua
+++ b/Main/Power/remote_osx.lua
@@ -1,10 +1,10 @@
---@help Force system restart
+--@help System restart
actions.restart = function ()
os.script("tell application \"System Events\" to restart");
end
---@help Force system shutdown
+--@help System shutdown
actions.shutdown = function ()
os.script("tell application \"System Events\" to shut down");
end
diff --git a/Main/Power/remote_win.lua b/Main/Power/remote_win.lua
index bd8de91b..70f535e6 100644
--- a/Main/Power/remote_win.lua
+++ b/Main/Power/remote_win.lua
@@ -8,18 +8,19 @@ bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);
]]
local PowrProf = ffi.load("PowrProf");
---@help Force system restart
+--@help System restart
--@param sec:number Timeout in seconds (default 5)
actions.restart = function (sec)
if not sec then sec = 5; end
- os.execute("shutdown /r /f /t " .. sec);
+ os.execute("shutdown /r /t " .. sec);
end
---@help Force system shutdown
+--@help System shutdown
--@param sec:number Timeout in seconds (default 5)
actions.shutdown = function (sec)
if not sec then sec = 5; end
- os.execute("shutdown /s /f /t " .. sec);
+ -- Default Windows shutdown behavior is /hybdrid - This should hopefully make WOL work!
+ os.execute("shutdown /s /hybrid /t " .. sec);
end
--@help Logoff current user
diff --git a/Main/Safari/README.md b/Main/Safari/README.md
index 430d5aba..978bee5b 100644
--- a/Main/Safari/README.md
+++ b/Main/Safari/README.md
@@ -2,7 +2,7 @@
Safari browser remote.
## Features
-* Navigation (back, fowrard, home)
+* Navigation (back, forward, home)
* Tabs (open, close, next, previous)
* Find on current page
* Refresh current page
diff --git a/Main/Safari/remote.lua b/Main/Safari/remote.lua
index 10ed8c19..cbe68f9c 100644
--- a/Main/Safari/remote.lua
+++ b/Main/Safari/remote.lua
@@ -2,14 +2,14 @@
local keyboard = libs.keyboard;
local device = libs.device;
---@help Focus Chrome application
+--@help Focus Safari application
actions.switch = function()
os.script("tell application \"Safari\" to reopen activate");
end
---@help Launch Chrome application
+--@help Launch Safari application
actions.launch = function()
- os.start("safari");
+ os.open("/Applications/Safari.app");
end
--@help Naviagte back
@@ -93,13 +93,13 @@ end
--@help Scroll page down
actions.scroll_down = function()
actions.switch();
- keyboard.stroke("space");
+ keyboard.stroke("pgdown");
end
--@help Scroll page up
actions.scroll_up = function()
actions.switch();
- keyboard.stroke("shift", "space");
+ keyboard.stroke("pgup");
end
--@help Refresh current page
diff --git a/Main/Screen/remote.lua b/Main/Screen/remote.lua
index da362448..ba19cbc7 100644
--- a/Main/Screen/remote.lua
+++ b/Main/Screen/remote.lua
@@ -10,7 +10,7 @@ end
actions.update = function (x, y, w, h, update, monitor)
local res = screen.capture(x, y, w, h, update, monitor);
- local x,y = mouse.position();
+ local x,y = mouse.position(monitor);
libs.server.update({
id = "back",
diff --git a/Main/VLC Web/remote.lua b/Main/VLC Web/remote.lua
index 9d3889fe..bb896883 100644
--- a/Main/VLC Web/remote.lua
+++ b/Main/VLC Web/remote.lua
@@ -178,6 +178,9 @@ function update_items(items)
if (v.name == "item") then
local id = v.attributes.id;
local name = v.attributes.name;
+ if (name == nil or name == "") then
+ name = "Library";
+ end
local duration = v.attributes.duration;
table.insert(list, { type = "item", text = name });
table.insert(library, { id = id, name = name, duration = duration });
diff --git a/Main/Zoom/README.md b/Main/Zoom/README.md
new file mode 100644
index 00000000..90af465d
--- /dev/null
+++ b/Main/Zoom/README.md
@@ -0,0 +1,15 @@
+# Zoom
+Zoom meeting remote.
+
+## Features
+* Toggle Mute
+* Toggle Video
+* Raise/Lower Hand
+* Share screen
+* Record
+* End meeting
+* Toggle chat
+
+## Support
+Developed and maintained by **Unified Remote**
+https://www.unifiedremote.com/help
diff --git a/Main/Zoom/icon.png b/Main/Zoom/icon.png
new file mode 100644
index 00000000..c544982b
Binary files /dev/null and b/Main/Zoom/icon.png differ
diff --git a/Main/Zoom/icon_hires.png b/Main/Zoom/icon_hires.png
new file mode 100644
index 00000000..aef92ca9
Binary files /dev/null and b/Main/Zoom/icon_hires.png differ
diff --git a/Main/Zoom/layout.xml b/Main/Zoom/layout.xml
new file mode 100644
index 00000000..cdeb78a7
--- /dev/null
+++ b/Main/Zoom/layout.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Main/Zoom/meta.prop b/Main/Zoom/meta.prop
new file mode 100644
index 00000000..ca6fb2ee
--- /dev/null
+++ b/Main/Zoom/meta.prop
@@ -0,0 +1,4 @@
+meta.name: Zoom
+meta.author: Unified
+meta.description: Zoom meeting remote.
+meta.tags.category: utility
diff --git a/Main/Zoom/remote.lua b/Main/Zoom/remote.lua
new file mode 100644
index 00000000..9738dcd1
--- /dev/null
+++ b/Main/Zoom/remote.lua
@@ -0,0 +1,71 @@
+local keyboard = libs.keyboard;
+local win = libs.win;
+local device = libs.device;
+
+events.detect = function ()
+ return libs.fs.exists("%appdata%/Zoom/bin/Zoom.exe");
+end
+
+--@help Focus Zoom application
+actions.switch = function()
+ if OS_WINDOWS then
+ local hwnd = win.find("ZPContentViewWndClass", nil);
+ if (hwnd == 0) then actions.launch(); end
+ win.switchtowait(hwnd);
+ end
+end
+
+--@help Launch Zoom application
+actions.launch = function()
+ if OS_WINDOWS then
+ os.start("%appdata%/Zoom/bin/Zoom.exe");
+ end
+end
+
+--@help Toggle mute
+actions.mute = function()
+ actions.switch();
+ keyboard.stroke("alt", "a");
+end
+
+--@help Toggle video
+actions.video = function()
+ actions.switch();
+ keyboard.stroke("alt", "v");
+end
+
+--@help Raise/Lower Hand
+actions.hand = function()
+ actions.switch();
+ keyboard.stroke("alt", "y");
+end
+
+--@help Share screen
+actions.screen = function()
+ actions.switch();
+ keyboard.stroke("alt", "s");
+end
+
+--@help Record
+actions.record = function()
+ actions.switch();
+ keyboard.stroke("alt", "r");
+end
+
+--@help End meeting
+actions.stop = function()
+ actions.switch();
+ keyboard.stroke("alt", "q")
+end
+
+--@help Toggle fullscreen
+actions.fullscreen = function()
+ actions.switch();
+ keyboard.stroke("alt", "f");
+end
+
+--@help Toggle chat
+actions.chat = function()
+ actions.switch();
+ keyboard.stroke("alt", "h");
+end
\ No newline at end of file
diff --git a/Main/Zoom/remote_osx.lua b/Main/Zoom/remote_osx.lua
new file mode 100644
index 00000000..aaffc3c0
--- /dev/null
+++ b/Main/Zoom/remote_osx.lua
@@ -0,0 +1,60 @@
+local keyboard = libs.keyboard;
+local device = libs.device;
+
+events.detect = function ()
+ return libs.fs.exists("/Applications/zoom.us.app");
+end
+
+--@help Focus Zoom application
+actions.switch = function()
+ print("switch")
+ os.script("tell application \"zoom.us\" to reopen activate");
+end
+
+--@help Launch Zoom application
+actions.launch = function()
+ print("launch")
+ os.open("/Applications/Zoom.us.app");
+end
+
+--@help Toggle mute
+actions.mute = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "a");
+end
+
+--@help Toggle video
+actions.video = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "v");
+end
+
+--@help Share screen
+actions.screen = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "s");
+end
+
+--@help Record
+actions.record = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "r");
+end
+
+--@help End meeting
+actions.stop = function()
+ actions.switch();
+ keyboard.stroke("cmd", "w")
+end
+
+--@help Toggle fullscreen
+actions.fullscreen = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "f");
+end
+
+--@help Toggle chat
+actions.chat = function()
+ actions.switch();
+ keyboard.stroke("shift", "cmd", "h");
+end
\ No newline at end of file