├── .gitignore
├── Air Mouse 2
├── icon.png
├── layout.xml
├── meta.prop
└── remote.lua
├── Air Mouse
├── icon.png
├── layout.xml
├── meta.prop
└── remote.lua
├── Custom Mouse
├── layout.xml
├── meta.prop
└── remote.lua
├── Games
├── ETS2
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Emu Controller
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FSX
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ ├── remote.lua
│ └── settings.prop
├── Google Earth
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Joystick
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Minecraft
│ ├── README.md
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ ├── remote.lua
│ └── screen1.png
├── Orientation
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Touch Joystick
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── TrackMania
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
└── Walk Look
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── LaunchApps
├── LaunchApps.png
├── layout.xml
├── meta.prop
└── remote.lua
├── Layout
├── Button
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Color Chanage
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Color Change 2
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Colors Bad
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Colors
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Dialogs
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Grid Cols
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Grid Empty Row
│ ├── layout.xml
│ └── meta.prop
├── Grid Nested
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Grid Rows
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Grid Wrap
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Hold
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Image
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Label
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── List
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── No Layout
│ ├── meta.prop
│ └── remote.lua
├── Scroll Few
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Scroll Tab
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Scroll Tabs
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Scroll
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Slider
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Tabs Nested
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Tabs
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Text
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Toggle
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Touch
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Visibility
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Wrap
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
└── test.png
├── Libs
├── Buffer
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── COM
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Data
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Device
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Execute
│ ├── layout.xml
│ ├── meta.prop
│ ├── remote.lua
│ └── test.bat
├── Extension
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FFI
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FFI2
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FS 2
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FS 3
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FS Attributes
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── FS
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── GPIO 2
│ ├── meta.prop
│ └── remote.lua
├── GPIO
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── IO
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Joystick
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Keyboard
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Log
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Mouse
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Network
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── OAuth1
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── OAuth2
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── OS
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── PS
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Script
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Socket
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Timer
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── UTF8 Perf
│ ├── TestUTF8Perf.txt
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── UTF8
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
└── Win
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Loading
├── Icon Custom
│ ├── custom.png
│ ├── icon.png
│ └── meta.prop
├── Icon Error
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── test
├── Icon Missing
│ ├── meta.prop
│ └── test
├── Icon None
│ └── meta.prop
├── Icon Platform
│ ├── icon.png
│ ├── icon_linux.png
│ ├── icon_osx.png
│ ├── icon_win.png
│ └── meta.prop
├── Layout Empty
│ ├── layout.xml
│ ├── meta.prop
│ └── test
├── Layout Error
│ ├── layout.xml
│ ├── meta.prop
│ └── test
├── Layout Missing
│ ├── meta.prop
│ └── test
├── Layout None
│ └── meta.prop
├── Layout Platform
│ ├── layout.xml
│ ├── layout_linux.xml
│ ├── layout_osx.xml
│ ├── layout_win.xml
│ └── meta.prop
├── Lua Empty
│ ├── meta.prop
│ └── remote.lua
├── Lua Error
│ ├── meta.prop
│ ├── remote.lua
│ └── test
├── Lua Missing
│ ├── meta.prop
│ └── test
├── Lua None
│ └── meta.prop
├── Lua Platform
│ ├── meta.prop
│ ├── remote.lua
│ ├── remote_linux.lua
│ ├── remote_osx.lua
│ └── remote_win.lua
├── Lua Require Error
│ ├── meta.prop
│ ├── remote.lua
│ └── test
├── Meta All
│ └── meta.prop
├── Meta Empty
│ ├── meta.prop
│ └── test
├── Meta Good
│ └── meta.prop
├── Meta ID Bad
│ ├── meta.prop
│ └── test
├── Meta ID Duplicate 2
│ ├── meta.prop
│ └── test
├── Meta ID Duplicate
│ └── meta.prop
├── Meta ID Override
│ └── meta.prop
├── Meta ID
│ └── meta.prop
├── Meta Invalid
│ ├── meta.prop
│ └── test
├── Meta Missing Author
│ ├── meta.prop
│ └── test
├── Meta Missing Name
│ ├── meta.prop
│ └── test
├── Meta Platform Linux
│ └── meta.prop
├── Meta Platform OSX
│ └── meta.prop
├── Meta Platform Win
│ └── meta.prop
├── Meta Unknown
│ ├── meta.prop
│ └── test
├── Preload Empty
│ ├── meta.prop
│ └── remote.lua
├── Preload Error
│ ├── meta.prop
│ ├── remote.lua
│ └── test
├── README.md
├── Settings Empty
│ ├── meta.prop
│ └── settings.prop
├── Settings Error
│ ├── meta.prop
│ ├── settings.prop
│ └── test
├── Settings Missing
│ ├── meta.prop
│ └── test
├── Settings None
│ └── meta.prop
└── Settings Platform
│ ├── meta.prop
│ ├── settings.prop
│ ├── settings_linux.prop
│ ├── settings_osx.prop
│ └── settings_win.prop
├── Pending
├── Facebook Web
│ ├── icon.png
│ ├── layout.xml
│ ├── like_logo.png
│ ├── meta.prop
│ └── remote.lua
├── README.md
└── Start
│ ├── icon.png
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── README.md
├── Readme Test
├── README.md
├── icon.png
├── icon_hires.png
├── layout.xml
├── meta.prop
├── remote.lua
└── screen.png
├── Remote
├── Callback Throw
│ ├── meta.prop
│ └── remote.lua
├── Date Time
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Delay
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Documentation
│ ├── meta.prop
│ └── remote.lua
├── Empty Events
│ ├── meta.prop
│ └── remote.lua
├── Events
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Exception
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Helpers
│ ├── layout.xml
│ ├── meta.prop
│ ├── remote.lua
│ └── settings.prop
├── Icon
│ ├── icon.png
│ ├── meta.prop
│ └── remote.lua
├── Long Running
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── No Events
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Nothing
│ ├── meta.prop
│ └── remote.lua
├── Order
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Settings
│ ├── layout.xml
│ ├── meta.prop
│ ├── remote.lua
│ └── settings.prop
├── Test.Queues
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
├── Threading
│ ├── layout.xml
│ ├── meta.prop
│ └── remote.lua
└── Throw
│ ├── meta.prop
│ └── remote.lua
├── Template
├── README.txt
├── layout.xml
├── meta.prop
└── remote.lua
├── Test
├── layout.xml
├── meta.prop
└── remote.lua
├── Volume rocker example
├── layout.xml
├── meta.prop
└── remote.lua
└── Windows Media Center (with recording)
├── icon.png
├── layout.xml
├── meta.prop
└── remote.lua
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | Spotify Advanced 2/latest_coverart.png
3 | Spotify Advanced 2/*.json
4 | Spotify Advanced 2/*.prop
--------------------------------------------------------------------------------
/Air Mouse 2/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Air Mouse 2/icon.png
--------------------------------------------------------------------------------
/Air Mouse 2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Air Mouse 2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Air Mouse 2
2 | meta.author: Unified
3 | meta.description: Control mouse using accelerometer.
4 |
--------------------------------------------------------------------------------
/Air Mouse 2/remote.lua:
--------------------------------------------------------------------------------
1 | local ms = libs.mouse;
2 | local screen = libs.screen;
3 | local j = libs.joystick;
4 | local kb = libs.keyboard;
5 |
6 |
7 | local zero = { x = 0, y = 0 };
8 | local size = { w = 0, h = 0 };
9 | local last = { x = 0, y = 0 };
10 |
11 | events.focus = function ()
12 | has = false;
13 | size.w, size.h = screen.size();
14 | end
15 |
16 |
17 | local buf_x = { };
18 | local buf_y = { };
19 | local buf_len = 10;
20 |
21 |
22 | function buf_fill(buf, value)
23 | for i = 0, buf_len - 1 do
24 | buf[i] = value;
25 | end
26 | end
27 |
28 | function buf_avg(buf, value)
29 | -- shift all values to the right
30 | for i = 0, buf_len - 2 do
31 | buf[5-i] = buf[5-i-1];
32 | end
33 | -- add new value
34 | buf[0] = value;
35 | -- calc avg
36 | local sum = 0;
37 | for i = 0, buf_len - 1 do
38 | sum = sum + buf[i];
39 | end
40 | return sum / buf_len;
41 | end
42 |
43 |
44 | actions.orientation = function (x, y, z)
45 |
46 | layout.info.text = x .. " " .. y;
47 |
48 | if (not has) then
49 | -- Set zero position
50 | zero.x = x;
51 | zero.y = y;
52 |
53 | buf_fill(buf_x, 0);
54 | buf_fill(buf_y, 0);
55 |
56 | has = true;
57 |
58 | last.x = x;
59 | last.y = y;
60 | end
61 |
62 | local delta = {
63 | x = x - last.x,
64 | y = y - last.y
65 | };
66 |
67 | --local Aperture = 10;
68 | --local A = Aperture;
69 | --local Divisions = 100;
70 | --local Step = Aperture / Divisions;
71 |
72 | --local div_x = math.round(Aperture / Divisions * delta.x);
73 | --local div_y = math.round(Aperture / Divisions * delta.y);
74 |
75 | --if (div_x > Divisions) then div_x = Divisions; end
76 | --if (div_y > Divisions) then div_y = Divisions; end
77 | --if (div_x < -Divisions) then div_x = -Divisions; end
78 | --if (div_y < -Divisions) then div_y = -Divisions; end
79 |
80 | --x = buf_avg(buf_x, delta.x);
81 | --y = buf_avg(buf_y, delta.y);
82 |
83 | x = math.round(x / 20) * 1;
84 | y = math.round(y / 20) * 1;
85 |
86 | ms.moveraw(x, y);
87 | kb.press("ctrl");
88 |
89 | last.x = x;
90 | last.y = y;
91 | end
92 |
--------------------------------------------------------------------------------
/Air Mouse/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Air Mouse/icon.png
--------------------------------------------------------------------------------
/Air Mouse/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Air Mouse/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Air Mouse
2 | meta.author: Unified
3 | meta.description: Control mouse using accelerometer.
4 |
--------------------------------------------------------------------------------
/Air Mouse/remote.lua:
--------------------------------------------------------------------------------
1 | local ms = libs.mouse;
2 | local screen = libs.screen;
3 | local j = libs.joystick;
4 | local kb = libs.keyboard;
5 |
6 |
7 | local zero = { x = 0, y = 0 };
8 | local size = { w = 0, h = 0 };
9 |
10 | events.focus = function ()
11 | has = false;
12 | size.w, size.h = screen.size();
13 | end
14 |
15 |
16 | local buf_x = { };
17 | local buf_y = { };
18 | local buf_len = 10;
19 |
20 |
21 | function buf_fill(buf, value)
22 | for i = 0, buf_len - 1 do
23 | buf[i] = value;
24 | end
25 | end
26 |
27 | function buf_avg(buf, value)
28 | -- shift all values to the right
29 | for i = 0, buf_len - 2 do
30 | buf[5-i] = buf[5-i-1];
31 | end
32 | -- add new value
33 | buf[0] = value;
34 | -- calc avg
35 | local sum = 0;
36 | for i = 0, buf_len - 1 do
37 | sum = sum + buf[i];
38 | end
39 | return sum / buf_len;
40 | end
41 |
42 |
43 | actions.orientation = function (x, y, z)
44 |
45 | layout.info.text = x .. " " .. y;
46 |
47 | if (not has) then
48 | -- Set zero position
49 | zero.x = x;
50 | zero.y = y;
51 |
52 | buf_fill(buf_x, 50);
53 | buf_fill(buf_y, 50);
54 |
55 | has = true;
56 | end
57 |
58 | local delta = {
59 | x = x - zero.x,
60 | y = y - zero.y
61 | };
62 |
63 | --local Aperture = 10;
64 | --local A = Aperture;
65 | --local Divisions = 100;
66 | --local Step = Aperture / Divisions;
67 |
68 | --local div_x = math.round(Aperture / Divisions * delta.x);
69 | --local div_y = math.round(Aperture / Divisions * delta.y);
70 |
71 | --if (div_x > Divisions) then div_x = Divisions; end
72 | --if (div_y > Divisions) then div_y = Divisions; end
73 | --if (div_x < -Divisions) then div_x = -Divisions; end
74 | --if (div_y < -Divisions) then div_y = -Divisions; end
75 |
76 | local A = 20;
77 | local D = 100;
78 | local div_x = j.normalize(delta.x, -A, A, 0, D);
79 | local div_y = j.normalize(delta.y, -A, A, 0, D);
80 |
81 |
82 | --div_x = buf_avg(buf_x, div_x);
83 | --div_y = buf_avg(buf_y, div_y);
84 |
85 | x = math.round(size.w / D * div_x);
86 | y = math.round(size.h / D * div_y);
87 |
88 | --layout.info.text = x .. " " .. y;
89 |
90 |
91 | ms.moveto(x, y);
92 | kb.press("ctrl");
93 | end
94 |
--------------------------------------------------------------------------------
/Custom Mouse/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/Custom Mouse/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Custom Mouse
2 | meta.author: Unified
3 |
--------------------------------------------------------------------------------
/Custom Mouse/remote.lua:
--------------------------------------------------------------------------------
1 | local mouse = libs.mouse;
2 |
3 | actions.down = function ()
4 |
5 | end
6 |
7 | actions.up = function ()
8 | mouse.up();
9 | end
10 |
11 | actions.delta = function (id, x, y)
12 | mouse.moveby(x, y);
13 | end
14 |
15 | actions.hold = function ()
16 | mouse.down();
17 | end
18 |
--------------------------------------------------------------------------------
/Games/ETS2/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/ETS2/icon.png
--------------------------------------------------------------------------------
/Games/ETS2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Games/ETS2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: ETS2
2 | meta.author: Unified
3 | meta.description: ETS2 controller.
4 |
--------------------------------------------------------------------------------
/Games/ETS2/remote.lua:
--------------------------------------------------------------------------------
1 | local kb = libs.keyboard;
2 | local ms = libs.mouse;
3 | local j = libs.joystick;
4 | local MIN_AXIS = -32768;
5 | local MAX_AXIS = 32767;
6 | local width = 0;
7 | local height = 0;
8 | local nx = 0;
9 | local ny = 0;
10 |
11 | events.blur = function ()
12 | kb.up("s");
13 | kb.up("w");
14 | kb.up("a");
15 | kb.up("d");
16 | j.look(0, 0);
17 | end
18 |
19 | actions.orientation = function (x, y, z)
20 | local SPAN = 45;
21 | nx = j.normalize(-y, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
22 |
23 | if (math.abs(x) > 90) then
24 | --libs.device.vibrate();
25 | end
26 |
27 | j.look(nx, ny);
28 | end
29 |
30 | actions.look = function (id, x, y)
31 | ms.moveraw(x, y);
32 | end
33 |
34 | actions.look_tap = function ()
35 | kb.press("1");
36 | end
37 |
38 | actions.control = function (i, x, y)
39 | ny = j.normalize(y, 0, height, MIN_AXIS, MAX_AXIS);
40 | j.look(nx, ny);
41 | end
42 |
43 | actions.control_up = function ()
44 | ny = 0;
45 | end
46 |
47 | actions.control_size = function (w, h)
48 | width = w;
49 | height = h;
50 | end
51 |
52 | actions.indicate_left = function ()
53 | print("left");
54 | kb.down("oem_2");
55 | os.sleep(100);
56 | kb.up("oem_2");
57 | end
58 |
59 | actions.indicate_right = function ()
60 | print("right");
61 | kb.down("oem_6");
62 | os.sleep(100);
63 | kb.up("oem_6");
64 | end
65 |
66 | actions.brake_down = function ()
67 | kb.down("s");
68 | end
69 |
70 | actions.brake_up = function ()
71 | kb.up("s");
72 | end
73 |
74 | actions.gas_down = function ()
75 | kb.down("w");
76 | end
77 |
78 | actions.gas_up = function ()
79 | kb.up("w");
80 | end
--------------------------------------------------------------------------------
/Games/Emu Controller/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Emu Controller/icon.png
--------------------------------------------------------------------------------
/Games/Emu Controller/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Games/Emu Controller/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Emu Controller
2 | meta.author: Unified
3 | meta.description: A generic emu game controller.
4 |
--------------------------------------------------------------------------------
/Games/Emu Controller/remote.lua:
--------------------------------------------------------------------------------
1 | local kb = libs.keyboard;
2 | local size = { w = 0, h = 0 };
3 | local device = libs.device;
4 | local state = { up = false, down = false, left = false, right = false };
5 |
6 | actions.up = function (button)
7 | print("up: " .. button);
8 | kb.up(button);
9 | end
10 |
11 | actions.down = function (button)
12 | print("down: " .. button);
13 | kb.down(button);
14 | end
15 |
16 | actions.touch = function (id, x, y)
17 | if (y < size.h / 3) then
18 | if (not state.up) then
19 | kb.down("up");
20 | device.vibrate();
21 | state.up = true;
22 | end
23 | else
24 | kb.up("up");
25 | state.up = false;
26 | end
27 |
28 | if (y > (size.h / 3 * 2)) then
29 | if (not state.down) then
30 | kb.down("down");
31 | device.vibrate();
32 | state.down = true;
33 | end
34 | else
35 | kb.up("down");
36 | state.down = false;
37 | end
38 |
39 | if (x < size.w / 3) then
40 | if (not state.left) then
41 | kb.down("left");
42 | device.vibrate();
43 | state.left = true;
44 | end
45 | else
46 | kb.up("left");
47 | state.left = false;
48 | end
49 |
50 | if (x > (size.w / 3 * 2)) then
51 | if (not state.right) then
52 | kb.down("right");
53 | device.vibrate();
54 | state.right = true;
55 | end
56 | else
57 | kb.up("right");
58 | state.right = false;
59 | end
60 | end
61 |
62 | actions.size = function (w, h)
63 | size.w = w;
64 | size.h = h;
65 | end
66 |
67 | actions.touchup = function ()
68 | kb.up("up");
69 | kb.up("down");
70 | kb.up("left");
71 | kb.up("right");
72 | state.up = false;
73 | state.down = false;
74 | state.right = false;
75 | state.left = false;
76 | end
--------------------------------------------------------------------------------
/Games/FSX/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/FSX/icon.png
--------------------------------------------------------------------------------
/Games/FSX/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Games/FSX/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: FSX
2 | meta.author: Unified
3 | meta.description: Flight Simulator X
4 | meta.platform: windows
5 |
--------------------------------------------------------------------------------
/Games/FSX/remote.lua:
--------------------------------------------------------------------------------
1 | local j = libs.joystick;
2 | local kb = libs.keyboard;
3 | local throttle = 0;
4 | local MIN_AXIS = -32768;
5 | local MAX_AXIS = 32767;
6 | local MIN_THROTTLE = 0;
7 | local MAX_THROTTLE = 255;
8 |
9 |
10 | ----------------------------------------------------------------------------------------
11 | -- Events
12 | ----------------------------------------------------------------------------------------
13 |
14 |
15 | events.focus = function ()
16 | -- Load throttle
17 | throttle = settings.throttle;
18 | layout.throttle.progress = throttle;
19 | end
20 |
21 |
22 | events.blur = function ()
23 | -- Save throttle
24 | settings.throttle = throttle;
25 | end
26 |
27 |
28 | ----------------------------------------------------------------------------------------
29 | -- Orientation Stuff
30 | ----------------------------------------------------------------------------------------
31 |
32 |
33 | actions.orientation = function (x, y, z)
34 | -- Map orientation values to joystick range
35 | local SPAN = 90;
36 | local nx = j.normalize(-y, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
37 | local ny = j.normalize(-z, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
38 | local nz = j.normalize(-x, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
39 |
40 | if (math.abs(z) > 90) then
41 | libs.device.vibrate();
42 | end
43 |
44 | j.look(nx, ny);
45 | --j.rotate(z, 0);
46 | end
47 |
48 |
49 | ----------------------------------------------------------------------------------------
50 | -- Controls
51 | ----------------------------------------------------------------------------------------
52 |
53 |
54 | actions.throttle = function (value)
55 | throttle = value
56 | local norm = j.normalize(value, 0, 10, MIN_THROTTLE, MAX_THROTTLE);
57 | j.throttle(norm);
58 | end
59 |
60 | --@help Show GPS
61 | actions.show_gps = function ()
62 | kb.stroke("shift", "3");
63 | end
64 |
65 | --@help Show ATS
66 | actions.show_ats = function ()
67 | kb.stroke("oem_3");
68 | end
69 |
70 | --@help Increase trim
71 | actions.trim_up = function ()
72 | kb.press("numlock");
73 | kb.stroke("num1");
74 | kb.press("numlock");
75 | end
76 |
77 | --@help Decrease trim
78 | actions.trim_down = function ()
79 | kb.press("numlock");
80 | kb.stroke("num7");
81 | kb.press("numlock");
82 | end
83 |
84 | --@help Look up
85 | actions.look_up = function ()
86 | kb.stroke("num8");
87 | end
88 |
89 | --@help Look down
90 | actions.look_down = function ()
91 | kb.stroke("num2");
92 | end
93 |
94 | --@help Look left
95 | actions.look_left = function ()
96 | kb.stroke("num4");
97 | end
98 |
99 | --@help Look right
100 | actions.look_right = function ()
101 | kb.stroke("num6");
102 | end
103 |
104 | --@help Apply brakes
105 | actions.brakes_apply = function ()
106 | print("applying brakes");
107 | kb.down("oem_period");
108 | end
109 |
110 | --@help Release brakes
111 | actions.brakes_release = function ()
112 | print("released brakes");
113 | kb.up("oem_period");
114 | end
115 |
116 | --@help Extend flaps
117 | actions.flaps_down = function ()
118 | kb.stroke("f7");
119 | end
120 |
121 | --@help Retract flaps
122 | actions.flaps_up = function ()
123 | kb.stroke("f6");
124 | end
125 |
126 | --@help Gear
127 | actions.gear = function ()
128 | kb.stroke("g");
129 | end
130 |
131 | --@help Pause
132 | actions.pause = function ()
133 | kb.stroke("p");
134 | end
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/Games/FSX/settings.prop:
--------------------------------------------------------------------------------
1 | throttle: 10
2 | x: -3
3 | y: -5
4 | z: -72
5 |
--------------------------------------------------------------------------------
/Games/Google Earth/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Google Earth/icon.png
--------------------------------------------------------------------------------
/Games/Google Earth/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Games/Google Earth/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Google Earth
2 | meta.author: Unified
3 | meta.description: Google Earth flight simulator.
4 | meta.platform: windows
5 |
--------------------------------------------------------------------------------
/Games/Google Earth/remote.lua:
--------------------------------------------------------------------------------
1 | local j = libs.joystick;
2 | local kb = libs.keyboard;
3 | local MIN_AXIS = -32768;
4 | local MAX_AXIS = 32767;
5 |
6 |
7 | events.blur = function ()
8 | -- Release all keys!
9 | kb.up("oem_period");
10 | kb.up("oem_comma");
11 | kb.up("pgup");
12 | kb.up("pgdown");
13 | end
14 |
15 | ----------------------------------------------------------------------------------------
16 | -- Orientation Stuff
17 | ----------------------------------------------------------------------------------------
18 |
19 | actions.orientation = function (x, y, z)
20 | -- Map orientation values to joystick range
21 | local SPAN = 90;
22 | local nx = j.normalize(-y, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
23 | local ny = j.normalize(-z, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
24 | local nz = j.normalize(-x, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
25 |
26 | if (math.abs(z) > 90) then
27 | libs.device.vibrate();
28 | end
29 |
30 | j.look(nx, ny);
31 | end
32 |
33 | ----------------------------------------------------------------------------------------
34 | -- Controls
35 | ----------------------------------------------------------------------------------------
36 |
37 | --@help Apply brakes
38 | actions.brakes_apply = function ()
39 | kb.down("oem_period");
40 | kb.down("oem_comma");
41 | end
42 |
43 | --@help Release brakes
44 | actions.brakes_release = function ()
45 | kb.up("oem_period");
46 | kb.up("oem_comma");
47 | end
48 |
49 | --@help Extend flaps
50 | actions.flaps_down = function ()
51 | kb.stroke("shift", "f");
52 | end
53 |
54 | --@help Retract flaps
55 | actions.flaps_up = function ()
56 | kb.stroke("f");
57 | end
58 |
59 | --@help Extend/retract gear
60 | actions.gear = function ()
61 | kb.stroke("g");
62 | end
63 |
64 | --@help Pause
65 | actions.pause = function ()
66 | kb.stroke("space");
67 | end
68 |
69 | --@help Increase thrust
70 | actions.throttle_up_apply = function ()
71 | kb.down("pgup");
72 | end
73 |
74 | --@help Reduce thrust
75 | actions.throttle_down_apply = function ()
76 | kb.down("pgdown");
77 | end
78 |
79 | --@help Increase thrust
80 | actions.throttle_up_release = function ()
81 | kb.up("pgup");
82 | end
83 |
84 | --@help Reduce thrust
85 | actions.throttle_down_release = function ()
86 | kb.up("pgdown");
87 | end
88 |
89 | --@help Start/stop simulation
90 | actions.start_stop = function ()
91 | kb.stroke("ctrl", "alt", "a");
92 | end
93 |
94 | --@help Toggle HUD
95 | actions.hud = function ()
96 | kb.stroke("h");
97 | end
98 |
99 |
100 |
--------------------------------------------------------------------------------
/Games/Joystick/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Joystick/icon.png
--------------------------------------------------------------------------------
/Games/Joystick/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Games/Joystick/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Joystick
2 | meta.author: Unified
3 | meta.description: Test joystick control.
4 |
--------------------------------------------------------------------------------
/Games/Joystick/remote.lua:
--------------------------------------------------------------------------------
1 | local j = libs.joystick;
2 | local x, y, rx, t = 0, 0, 0, 0;
3 | local MIN_AXIS = -32768;
4 | local MAX_AXIS = 32767;
5 | local MIN_THROTTLE = 0;
6 | local MAX_THROTTLE = 255;
7 |
8 |
9 | -- Normalize converts the 'value' from one range to another
10 | -- For example from 0-100 to 0-255
11 | local norm = j.normalize;
12 |
13 |
14 | --@help Change X axis
15 | --@param value:number Value between 0 and 100
16 | actions.x = function (value)
17 | x = norm(value, 0, 100, MIN_AXIS, MAX_AXIS);
18 | j.look(x, y);
19 | end
20 |
21 |
22 | --@help Change Y axis
23 | --@param value:number Value between 0 and 100
24 | actions.y = function (value)
25 | y = norm(value, 0, 100, MIN_AXIS, MAX_AXIS);
26 | j.look(x, y);
27 | end
28 |
29 |
30 | --@help Change RX axis
31 | --@param value:number Value between 0 and 100
32 | actions.rx = function (value)
33 | rx = norm(value, 0, 100, MIN_AXIS, MAX_AXIS);
34 | j.rotate(rx, 0);
35 | end
36 |
37 |
38 | --@help Change Throttle
39 | --@param value:number Value between 0 and 100
40 | actions.throttle = function (value)
41 | t = norm(value, 0, 100, MIN_THROTTLE, MAX_THROTTLE);
42 | j.throttle(t);
43 | end
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Games/Minecraft/README.md:
--------------------------------------------------------------------------------
1 | # Minecraft Helper Remote
2 | A simple helper remote for automating Minecraft tasks.
3 |
4 | ## Features
5 | * Auto Mine (left-click)
6 | * Auto Use (right-click)
7 | * Auto Walk
8 | * Auto Sprint
9 | * Auto Crouch
10 | * Auto Jump
11 | * Auto Twerk (Sky Factory 2 / Trees)
12 |
13 | ## Requirements
14 | Note that some auto clickers/pressers will stop running if your device screen turns off. You can use the built-in wake lock to prevent this will using the remote.
15 |
16 | ## Todo
17 | * Add more auto clickers/pressers?
18 |
19 | ## Screenshots
20 | 
21 |
--------------------------------------------------------------------------------
/Games/Minecraft/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Minecraft/icon.png
--------------------------------------------------------------------------------
/Games/Minecraft/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Games/Minecraft/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Minecraft
2 | meta.author: Unified
3 | meta.description: Simple minecraft helpers.
4 | meta.tags: game
5 |
--------------------------------------------------------------------------------
/Games/Minecraft/remote.lua:
--------------------------------------------------------------------------------
1 | local kb = require("keyboard");
2 | local ms = require("mouse");
3 | local mine = false;
4 | local walk = false;
5 | local sprint = false;
6 | local crouch = false;
7 | local use = false;
8 |
9 |
10 | local MineButton = "left";
11 | local WalkKey = "w";
12 | local SprintKey = "ctrl";
13 | local CrouchKey = "shift";
14 | local JumpKey = "space";
15 | local UseButton = "right";
16 |
17 |
18 | events.blur = function ()
19 | kb.up(WalkKey);
20 | ms.up(MineButton);
21 | kb.up(SprintKey);
22 | kb.up(CrouchKey);
23 | --ms.up(UseButton);
24 | end
25 |
26 |
27 | actions.toggle_mine = function ()
28 | mine = not mine;
29 | if (mine) then
30 | ms.down(MineButton);
31 | else
32 | ms.up(MineButton);
33 | end
34 | end
35 |
36 |
37 | actions.toggle_use = function ()
38 | use = not use;
39 | if (use) then
40 | ms.down(UseButton);
41 | else
42 | ms.up(UseButton);
43 | end
44 | end
45 |
46 |
47 | actions.toggle_walk = function ()
48 | walk = not walk;
49 | if (walk) then
50 | kb.down(WalkKey);
51 | else
52 | kb.up(WalkKey);
53 | end
54 | end
55 |
56 |
57 | actions.toggle_sprint = function ()
58 | sprint = not sprint;
59 | if (sprint) then
60 | kb.down(SprintKey);
61 | else
62 | kb.up(SprintKey);
63 | end
64 | end
65 |
66 |
67 | actions.toggle_crouch = function ()
68 | crouch = not crouch;
69 | if (crouch) then
70 | kb.down(CrouchKey);
71 | else
72 | kb.up(CrouchKey);
73 | end
74 | end
75 |
76 |
77 | actions.toggle_jump = function ()
78 | jump = not jump;
79 | if (jump) then
80 | kb.down(JumpKey);
81 | else
82 | kb.up(JumpKey);
83 | end
84 | end
85 |
86 | tid = -1;
87 | actions.twerk_start = function ()
88 | tid = libs.timer.interval(function ()
89 | kb.down("lshift");
90 | os.sleep(80);
91 | kb.up("lshift");
92 | end, 150);
93 | end
94 |
95 | actions.twerk_stop = function ()
96 | libs.timer.cancel(tid);
97 | end
98 |
--------------------------------------------------------------------------------
/Games/Minecraft/screen1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Minecraft/screen1.png
--------------------------------------------------------------------------------
/Games/Orientation/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Orientation/icon.png
--------------------------------------------------------------------------------
/Games/Orientation/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Games/Orientation/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Orientation
2 | meta.author: Unified
3 | meta.description: Test orientation data.
4 |
--------------------------------------------------------------------------------
/Games/Orientation/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | actions.orientation = function (x, y, z)
3 | layout.x = x;
4 | layout.y = y;
5 | layout.z = z;
6 | end
7 |
--------------------------------------------------------------------------------
/Games/Touch Joystick/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Touch Joystick/icon.png
--------------------------------------------------------------------------------
/Games/Touch Joystick/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Games/Touch Joystick/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Touch Joystick
2 | meta.author: Unified
3 | meta.description: Control joystick using touch.
4 |
--------------------------------------------------------------------------------
/Games/Touch Joystick/remote.lua:
--------------------------------------------------------------------------------
1 | local j = libs.joystick;
2 | local x, y, rx, t = 0, 0, 0, 0;
3 | local MIN_AXIS = -32768;
4 | local MAX_AXIS = 32767;
5 | local MIN_THROTTLE = 0;
6 | local MAX_THROTTLE = 255;
7 | local width = 0;
8 | local height = 0;
9 |
10 |
11 | -- Normalize converts the 'value' from one range to another
12 | -- For example from 0-100 to 0-255
13 | local norm = j.normalize;
14 |
15 |
16 | actions.touch_abs = function (i, x, y)
17 | local jx = norm(x, 0, width, MIN_AXIS, MAX_AXIS);
18 | local jy = norm(y, 0, height, MIN_AXIS, MAX_AXIS);
19 |
20 | layout.touch.text = jx .. "," .. jy;
21 |
22 | j.look(jx, jy);
23 | end
24 |
25 |
26 | actions.touch_size = function (w, h)
27 | width = w;
28 | height = h;
29 | layout.info.text = w .. " " .. h;
30 | end
31 |
32 |
33 | --@help Change Throttle
34 | --@param value:number Value between 0 and 100
35 | actions.throttle = function (value)
36 | t = norm(value, 0, 100, MIN_THROTTLE, MAX_THROTTLE);
37 | j.throttle(t);
38 | end
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Games/TrackMania/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/TrackMania/icon.png
--------------------------------------------------------------------------------
/Games/TrackMania/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Games/TrackMania/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: TrackMania
2 | meta.author: Unified
3 | meta.description: TrackMania game controller.
4 |
--------------------------------------------------------------------------------
/Games/TrackMania/remote.lua:
--------------------------------------------------------------------------------
1 | local kb = libs.keyboard;
2 | local ms = libs.mouse;
3 | local j = libs.joystick;
4 | local MIN_AXIS = -32768;
5 | local MAX_AXIS = 32767;
6 |
7 | events.blur = function ()
8 | kb.up("up", "down");
9 | end
10 |
11 | actions.brake = function ()
12 | kb.down("down");
13 | end
14 |
15 | actions.brake_up = function ()
16 | kb.up("down");
17 | end
18 |
19 | actions.accel = function ()
20 | kb.down("up");
21 | end
22 |
23 | actions.accel_up = function ()
24 | kb.up("up");
25 | end
26 |
27 | actions.orientation = function (x, y, z)
28 | local SPAN = 90;
29 |
30 | local nx = j.normalize(-y, -SPAN, SPAN, MIN_AXIS, MAX_AXIS);
31 |
32 | if (math.abs(x) > 30) then
33 | --libs.device.vibrate();
34 | end
35 |
36 |
37 | j.look(nx, 0);
38 | end
39 |
40 | actions.restart = function ()
41 | kb.press("del");
42 | end
--------------------------------------------------------------------------------
/Games/Walk Look/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Games/Walk Look/icon.png
--------------------------------------------------------------------------------
/Games/Walk Look/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Games/Walk Look/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Walk and Look
2 | meta.author: Unified
3 | meta.description: A generic game controller.
4 |
--------------------------------------------------------------------------------
/Games/Walk Look/remote.lua:
--------------------------------------------------------------------------------
1 | local kb = libs.keyboard;
2 | local ms = libs.mouse;
3 | local size = { w = 0, h = 0 };
4 | local device = libs.device;
5 | local state = { up = false, down = false, left = false, right = false };
6 | local look = { x = 0, y = 0 };
7 | local dir;
8 | local timez = 0;
9 |
10 | events.focus = function ()
11 | --libs.timer.interval(look, 500);
12 | end
13 |
14 | function getdir(x, y)
15 | if (y < size.h / 3) then
16 | return "up";
17 | end
18 | if (y > (size.h / 3 * 2)) then
19 | return "down";
20 | end
21 | if (x < size.w / 3) then
22 | return "left";
23 | end
24 | if (x > (size.w / 3 * 2)) then
25 | return "right"
26 | end
27 | end
28 |
29 | actions.walk = function (id, x, y)
30 | dir = getdir(x, y);
31 |
32 | if (dir == "up") then
33 | kb.down("w");
34 | else
35 | kb.up("w");
36 | end
37 |
38 | if (dir == "down") then
39 | kb.down("s");
40 | else
41 | kb.up("s");
42 | end
43 |
44 | if (dir == "left") then
45 | kb.down("a");
46 | else
47 | kb.up("a");
48 | end
49 |
50 | if (dir == "right") then
51 | kb.down("d");
52 | else
53 | kb.up("d");
54 | end
55 | end
56 |
57 | last = 0;
58 |
59 | actions.foo = function (id, x, y)
60 |
61 | end
62 |
63 | actions.look = function (id, x, y)
64 | ms.moveraw(x, y);
65 | end
66 |
67 | actions.walk_size = function (w, h)
68 | size.w = w;
69 | size.h = h;
70 | end
71 |
72 | actions.look_size = function (w, h)
73 | size.w = w;
74 | size.h = h;
75 | end
76 |
77 | actions.walk_up = function ()
78 | kb.up("w");
79 | kb.up("a");
80 | kb.up("s");
81 | kb.up("d");
82 | end
83 |
84 | actions.look_up = function ()
85 | look = nil;
86 | ms.up();
87 | end
88 |
89 | actions.look_down = function ()
90 |
91 | end
92 |
93 | actions.walk_tap = function ()
94 | kb.down("space");
95 | os.sleep(100);
96 | kb.up("space");
97 | end
98 |
99 | actions.look_tap = function ()
100 | ms.click();
101 | end
102 |
103 | actions.attack = function ()
104 | ms.click();
105 | end
106 |
107 | actions.jump = function ()
108 | kb.down("space");
109 | os.sleep(100);
110 | kb.up("space");
111 | end
--------------------------------------------------------------------------------
/LaunchApps/LaunchApps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/LaunchApps/LaunchApps.png
--------------------------------------------------------------------------------
/LaunchApps/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/LaunchApps/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: LaunchApps
2 | meta.author: dab
3 | meta.icon: LaunchApps.png
4 | meta.description: launching different programs.
5 | meta.platform: windows
6 |
--------------------------------------------------------------------------------
/LaunchApps/remote.lua:
--------------------------------------------------------------------------------
1 | --@help left
2 | actions.left = function()
3 | libs.keyboard.press("LEFT");
4 | end
5 |
6 | --@help right
7 | actions.right = function()
8 | libs.keyboard.press("RIGHT");
9 | end
10 |
11 | --@help up
12 | actions.up = function()
13 | libs.keyboard.press("UP");
14 | end
15 |
16 | --@help down
17 | actions.down = function()
18 | libs.keyboard.press("DOWN");
19 | end
20 |
21 | --@help return
22 | actions["return"] = function()
23 | libs.keyboard.press("RETURN");
24 | end
25 |
26 | --@help back
27 | actions.back = function()
28 | libs.keyboard.stroke("BACK");
29 | end
30 |
31 | --@help close_app
32 | actions.close_app = function()
33 | libs.keyboard.stroke("MENU","F4");
34 | end
35 |
36 | --@help start_chrome
37 | actions.start_chrome = function()
38 | os.start("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
39 | end
40 |
41 | --@help start_plex
42 | actions.start_plex = function()
43 | os.start("C:\\a_programs\\Plex Home Theater\\Plex Home Theater.exe");
44 | end
45 |
46 | --@help start_xbmc
47 | actions.start_xbmc = function()
48 | os.start("C:\\a_programs\\XBMC\\XBMC.exe");
49 | end
50 |
51 | --@help start_internet_explorer
52 | actions.start_internet_explorer = function()
53 | os.start("iexplore.exe");
54 | end
55 |
56 | --@help start_windows_media_player
57 | actions.start_windows_media_player = function()
58 | os.start("wmplayer.exe");
59 | end
60 |
61 | --@help minimize_all
62 | actions.minimize_all = function()
63 | libs.keyboard.stroke("LWIN","M");
64 | end
65 |
66 |
--------------------------------------------------------------------------------
/Layout/Button/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Layout/Button/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Button
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Button/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
--------------------------------------------------------------------------------
/Layout/Color Chanage/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/Layout/Color Chanage/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Change Color
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Color Change 2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/Layout/Color Change 2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Change Color Part2
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Colors Bad/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Layout/Colors Bad/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Colors Bad
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Colors Bad/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Colors/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Layout/Colors/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Colors
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Colors/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Dialogs/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Layout/Dialogs/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Dialogs
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Dialogs/remote.lua:
--------------------------------------------------------------------------------
1 | actions.message = function ()
2 | libs.server.update({ type = "message", text = "message", title = "title" });
3 | end
4 |
5 | actions.dialog1 = function ()
6 | libs.server.update({
7 | type = "dialog",
8 | text = "message",
9 | title = "title",
10 | children = {
11 | { type = "button", text = "OK", ontap = "got_1" }
12 | }
13 | })
14 | end
15 |
16 | actions.dialog2 = function ()
17 | libs.server.update({
18 | type = "dialog",
19 | text = "message",
20 | title = "title",
21 | children = {
22 | { type = "button", text = "Yes", ontap = "got_1" },
23 | { type = "button", text = "No", ontap = "got_2" }
24 | }
25 | })
26 | end
27 |
28 | actions.got_1 = function ()
29 | print("1!");
30 | end
31 |
32 | actions.got_2 = function ()
33 | print("2!");
34 | end
35 |
36 | actions.list = function ()
37 | libs.server.update({
38 | type = "dialog",
39 | title = "title",
40 | children = {
41 | { type = "item", text = "item 1" },
42 | { type = "item", text = "item 2" },
43 | { type = "item", text = "item 3" },
44 | { type = "item", text = "item 4" },
45 | { type = "item", text = "item 5" }
46 | },
47 | ontap = "got_item"
48 | })
49 | end
50 |
51 | actions.got_item = function (index)
52 | print("item: " .. index);
53 | end
54 |
55 | actions.input = function ()
56 | libs.server.update({
57 | type = "input",
58 | title = "title",
59 | text = "default text",
60 | ontap = "got_input"
61 | });
62 | end
63 |
64 | actions.got_input = function (text)
65 | print("input: " .. text);
66 | end
--------------------------------------------------------------------------------
/Layout/Grid Cols/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Layout/Grid Cols/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Grid Cols
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Grid Cols/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Grid Empty Row/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Layout/Grid Empty Row/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Grid Empty Row
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Grid Nested/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Layout/Grid Nested/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Nested Grids
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Grid Nested/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Grid Rows/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Layout/Grid Rows/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Grid Rows
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Grid Rows/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Grid Wrap/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Layout/Grid Wrap/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Grid Wrap
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Grid Wrap/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Hold/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Layout/Hold/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Hold
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Hold/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | local start;
9 |
10 | actions.down = function ()
11 | start = libs.timer.time();
12 | end
13 |
14 | actions.tap = function ()
15 | print("tap!");
16 | end
17 |
18 | actions.hold = function ()
19 | local time = libs.timer.time();
20 | print("hold time: " .. time - start);
21 | end
22 |
--------------------------------------------------------------------------------
/Layout/Image/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Layout/Image/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Image
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Image/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
--------------------------------------------------------------------------------
/Layout/Label/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Layout/Label/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Label
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Label/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
--------------------------------------------------------------------------------
/Layout/List/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | - hello world! 1
9 | - hello world! 2
10 | - hello world! 3
11 | - hello\nworld! 4
12 | - hello world! 5
13 | - hello world! 6
14 | - hello world! 7
15 | - hello world! 8
16 | - hello world! 9
17 | - hello world! a
18 | - hello world! b
19 | - hello world! c
20 | - hello world! d
21 | - hello world! e
22 | - hello world! f
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Layout/List/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control List
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/List/remote.lua:
--------------------------------------------------------------------------------
1 | local server = libs.server;
2 |
3 | actions.tap = function (i)
4 | print("tap: " .. i);
5 | end
6 |
7 | actions.hold = function (i)
8 | print("hold: " .. i);
9 | end
10 |
11 | actions.empty = function ()
12 | server.update({ id = "list", children = {} });
13 | end
14 |
15 | actions.test = function ()
16 | server.update({ id = "list", children = {
17 | { type = "item", text = "foo" },
18 | { type = "item", text = "bar" }
19 | }});
20 | end
--------------------------------------------------------------------------------
/Layout/No Layout/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test No Layout
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/No Layout/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Few/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Layout/Scroll Few/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control ScrollFew
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Few/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Tab/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/Layout/Scroll Tab/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control ScrollTab
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Tab/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Tabs/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
--------------------------------------------------------------------------------
/Layout/Scroll Tabs/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control ScrollTabs
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Scroll Tabs/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Scroll/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Layout/Scroll/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Scroll
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Scroll/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/Slider/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Layout/Slider/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Slider
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Slider/remote.lua:
--------------------------------------------------------------------------------
1 | local tid = 0;
2 | local pos = 0;
3 |
4 | events.focus = function ()
5 | tid = libs.timer.interval(function ()
6 | pos = pos + 1;
7 | if (pos >= 10) then
8 | pos = 0;
9 | end
10 | layout.slider.progress = pos;
11 | end, 500);
12 | end
13 |
14 | events.blur = function ()
15 | libs.timer.cancel(tid);
16 | end
17 |
18 | events.action = function (name, extras)
19 | print("action: " .. name);
20 | end
21 |
--------------------------------------------------------------------------------
/Layout/Tabs Nested/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Layout/Tabs Nested/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Tabs Nested
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Tabs Nested/remote.lua:
--------------------------------------------------------------------------------
1 | events.action = function (name, extras)
2 | print("action: " .. name);
3 | end
4 |
5 | actions.change = function (index)
6 | print("action: change: " .. index);
7 | end
8 |
--------------------------------------------------------------------------------
/Layout/Tabs/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Layout/Tabs/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Tabs
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Tabs/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | actions.change = function (index)
9 | print("action: change: " .. index);
10 | end
11 |
--------------------------------------------------------------------------------
/Layout/Text/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Layout/Text/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Text
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Text/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | actions.change = function (text)
9 | print("action: change: " .. text);
10 | end
11 |
12 | actions.done = function (text)
13 | print("action: done: " .. text);
14 | end
15 |
--------------------------------------------------------------------------------
/Layout/Toggle/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Layout/Toggle/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Toggle
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Toggle/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | actions.change = function (checked)
9 | local b = "";
10 | if (checked) then
11 | b = "true";
12 | else
13 | b = "false";
14 | end
15 | print("action: change: " .. b);
16 | end
17 |
--------------------------------------------------------------------------------
/Layout/Touch/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/Layout/Touch/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Touch
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Touch/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | actions.change = function (checked)
9 | local b = "";
10 | if (checked) then
11 | b = "true";
12 | else
13 | b = "false";
14 | end
15 | print("action: change: " .. b);
16 | end
17 |
18 | actions.abs = function (id, x, y)
19 | print("x: " .. x .. " y: " .. y);
20 | end
21 |
--------------------------------------------------------------------------------
/Layout/Visibility/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Layout/Visibility/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Control Visibility
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Visibility/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.action = function (name, extras)
5 | print("action: " .. name);
6 | end
7 |
8 | actions.set_gone = function()
9 | libs.server.update("goner", "visibility","gone");
10 | libs.server.update("goner", "text","gone");
11 | end
12 |
13 | actions.set_vis = function()
14 | libs.server.update("goner", "visibility","visible");
15 | libs.server.update("goner", "text","visible");
16 | end
17 |
18 | actions.set_invis = function()
19 | libs.server.update("goner", "visibility","invisible");
20 | libs.server.update("goner", "text","invisible");
21 | end
--------------------------------------------------------------------------------
/Layout/Wrap/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/Layout/Wrap/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Wrap
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Layout/Wrap/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Layout/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Layout/test.png
--------------------------------------------------------------------------------
/Libs/Buffer/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Libs/Buffer/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Buffer Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Buffer/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | events.focus = function ()
3 |
4 | print("b");
5 | local b = libs.buffer.new();
6 | b:writeint32(123456);
7 | print(b:tostring());
8 |
9 | print("b0");
10 | local b0 = libs.buffer.new();
11 | print(b0:length());
12 | print(b0:available());
13 | b0:writebyte(123);
14 | print(b0:length());
15 | print(b0:available());
16 | b0:readbyte();
17 | print(b0:length());
18 | print(b0:available());
19 |
20 | print("b1");
21 | local b1 = libs.buffer.new("asdf");
22 | b1:writestring("abcåäö");
23 | print(b1:tostring());
24 |
25 | print("b2");
26 | local b2 = libs.buffer.new("utf16");
27 | b2:writestring("abcåäö");
28 | print(b2:tostring());
29 |
30 | print("b3");
31 | local b3 = libs.buffer.new("utf8", "le");
32 | b3:writeint32(123456);
33 | print(b3:tostring());
34 |
35 | print("b4");
36 | local b4 = libs.buffer.new("utf8", "be");
37 | b4:writeint32(123456);
38 | print(b4:tostring());
39 |
40 | print("b5,b6");
41 | local b5 = libs.buffer.new();
42 | b5:writestring("foo");
43 | b5:writestring("bar");
44 | print(b5:tostring());
45 | print(b5:readstring());
46 | print(b5:tostring());
47 | local b6 = b5:readbuffer();
48 | print(b6);
49 | print(b6:tohex());
50 |
51 | local b6 = libs.buffer.new("utf16");
52 | b6:writeint8(255);
53 | b6:writedouble(250);
54 | print(b6:tostring());
55 | print(b6:readint16());
56 |
57 | local b7 = libs.buffer.new();
58 | b7:write("abc");
59 | print(b7:read(1)); -- a
60 | print(b7:read()); -- bc
61 |
62 | local b8 = libs.buffer.new();
63 | b8:write("xxx");
64 |
65 | local b9 = libs.buffer.new();
66 | b9:write("aaa");
67 | b9:writebuffer(b8);
68 | print(b9:tostring());
69 |
70 | local b10 = libs.buffer.new();
71 | b10:writeline("foo");
72 | b10:writeline("bar");
73 | print(b10:readline());
74 | print(b10:readline());
75 | print(b10:readline());
76 | end
77 |
--------------------------------------------------------------------------------
/Libs/COM/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Libs/COM/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test COM Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/COM/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local obj = nil;
5 |
6 | events.destroy = function ()
7 | obj = nil;
8 | collectgarbage();
9 | end
10 |
11 | actions.valid_word = function ()
12 | local word = luacom.CreateObject("Word.Application")
13 | assert(word)
14 | word.Visible = true;
15 | word:Activate();
16 | word = nil;
17 | collectgarbage();
18 | end
19 |
20 |
21 | actions.invalid = function ()
22 | local junk = luacom.CreateObject("kajsdlfkjsdöf");
23 | print(junk);
24 | end
25 |
26 | actions.invalid_2 = function ()
27 | obj = luacom.CreateObject("Word.Application");
28 | print(obj);
29 | end
30 |
--------------------------------------------------------------------------------
/Libs/Data/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Libs/Data/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Data Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Data/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local s = "å1ä2ö3";
5 |
6 | local data = libs.data;
7 | local server = libs.server;
8 | ------------------------------------------------------------
9 |
10 | actions.tojson = function ()
11 | local lua = {};
12 | lua.int = 123;
13 | lua.num = 1.23;
14 | lua.bool = true;
15 | lua.arr = { 1, 2, 3 };
16 | lua.str = "one-two-three";
17 | lua.obj = {};
18 | lua.obj.one = 1;
19 | lua.obj.two = 2;
20 | lua.obj.three = 3;
21 | local json = data.tojson(lua);
22 | server.update({id = "info", text = json });
23 | end
24 |
25 | actions.tojson_bad = function ()
26 | local r = data.tojson("asdf");
27 | server.update({id = "info", text = r });
28 | end
29 |
30 | ------------------------------------------------------------
31 |
32 | actions.fromjson = function ()
33 | local json = "{ \"int\": 123, \"num\": 1.23, \"bool\": true, \"str\": \"one-two-three\", \"arr\": [1,2,3], \"obj\": { \"one\": 1, \"two\": 2, \"three\": 3 } }";
34 | local lua = data.fromjson(json);
35 | server.update({id = "info", text = lua.obj.three });
36 | end
37 |
38 | actions.fromjson_bad = function ()
39 | local r = data.fromjson("a sdf asdf sdf asfsdf");
40 | server.update({id = "info", text = r });
41 | end
42 |
43 | actions.test = function ()
44 | local str = "";
45 | for i=1,4112 do
46 | str = str .. "a";
47 | end
48 |
49 | print(#str);
50 |
51 | local json = "[\"" .. str .. "\"]";
52 | libs.fs.write("C:/4111.json", json);
53 | local lua = data.fromjson(json);
54 | print(lua);
55 | --server.update("info", "text", lua);
56 | end
57 |
58 | actions.indent = function ()
59 | libs.log.trace(data.tojsonpretty(
60 | { foo = "bar", hello = "world" }
61 | ));
62 | end
63 |
--------------------------------------------------------------------------------
/Libs/Device/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Libs/Device/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Device Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Device/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local device = libs.device;
5 |
6 | actions.wol = function ()
7 | device.wol();
8 | end
9 |
10 | actions.keyboard = function ()
11 | device.keyboard();
12 | end
13 |
14 | actions.mouse = function ()
15 | device.mouse();
16 | end
17 |
18 | actions.switch = function ()
19 | device.switch("Test.Task");
20 | end
21 |
22 | actions.vibrate = function ()
23 | device.vibrate();
24 | end
25 |
26 | actions.listen = function ()
27 | device.listen();
28 | end
29 |
30 | actions.toast = function ()
31 | device.toast("abc");
32 | end
33 |
34 | actions.irsend = function ()
35 | device.irsend("pronto code goes here...");
36 | end
37 |
38 | actions.server = function ()
39 | device.server("Test");
40 | end
41 |
--------------------------------------------------------------------------------
/Libs/Execute/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Libs/Execute/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Execute
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Execute/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local command = "";
5 |
6 | actions.change = function (text)
7 | command = text;
8 | print(text);
9 | end
10 |
11 | actions.run = function ()
12 | local file = io.popen(command);
13 | local output = file:read('*all');
14 | file:close();
15 | server.update("output", "text", output);
16 | end
17 |
18 | actions.execute = function ()
19 | os.execute("test.bat");
20 | end
21 |
22 | actions.start = function ()
23 | os.start("asdf");
24 | --os.start("chrome");
25 | --os.start("IconGen.exe");
26 | end
27 |
28 | actions.open = function ()
29 | os.open("asdf");
30 | --os.open("test.bat", "\"hello world!\"");
31 | end
--------------------------------------------------------------------------------
/Libs/Execute/test.bat:
--------------------------------------------------------------------------------
1 | echo %1
2 | echo foobar
3 | pause
4 |
--------------------------------------------------------------------------------
/Libs/Extension/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Libs/Extension/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Extension
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Extension/remote.lua:
--------------------------------------------------------------------------------
1 | local ext = libs.extension;
2 |
3 | actions.foo = function ()
4 | ext.queue("browser", "execute",
5 | --"document.getElementById('app-player').contentWindow.document.getElementById('play-pause').click()"
6 | "alert(document.getElementById('app-player').contentWindow.document.getElementById('vol-position').style.left = '100px')"
7 | );
8 | end
--------------------------------------------------------------------------------
/Libs/FFI/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Libs/FFI/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FFI Library
2 | meta.author: Test
3 |
4 |
--------------------------------------------------------------------------------
/Libs/FFI/remote.lua:
--------------------------------------------------------------------------------
1 | local win = require("win");
2 | local ffi = require("ffi");
3 |
4 | ffi.cdef[[
5 | void ShowWindow(int hwnd, int cmd);
6 | ]]
7 |
8 | actions.min = function ()
9 | hwnd = win.window("notepad.exe");
10 | ffi.C.ShowWindow(hwnd, 6);
11 | end
12 |
13 | actions.max = function ()
14 | hwnd = win.window("notepad.exe");
15 | ffi.C.ShowWindow(hwnd, 3);
16 | end
--------------------------------------------------------------------------------
/Libs/FFI2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Libs/FFI2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FFI Library 2
2 | meta.author: Test
3 |
4 |
--------------------------------------------------------------------------------
/Libs/FFI2/remote.lua:
--------------------------------------------------------------------------------
1 | local win = require("win");
2 | local ffi = require("ffi");
3 |
4 | ffi.cdef[[
5 | typedef int BOOL;
6 | typedef long LONG;
7 | typedef struct {
8 | LONG left;
9 | LONG top;
10 | LONG right;
11 | LONG bottom;
12 | } RECT;
13 | BOOL GetWindowRect(LONG hwnd, RECT* rect);
14 | BOOL MoveWindow(LONG hwnd, int x, int y, int w, int h, BOOL repaint);
15 | ]]
16 |
17 | function move (amount)
18 | local hwnd = win.find(nil, "Calculator");
19 | local rect = ffi.new("RECT", 0, 0, 0, 0);
20 | ffi.C.GetWindowRect(hwnd, rect);
21 | ffi.C.MoveWindow(hwnd,
22 | rect.left - amount,
23 | rect.top,
24 | rect.right - rect.left,
25 | rect.bottom - rect.top,
26 | 1);
27 | end
28 |
29 | actions.move_in = function ()
30 | move(100);
31 | end
32 |
33 | actions.move_out = function ()
34 | move(-100);
35 | end
36 |
--------------------------------------------------------------------------------
/Libs/FS 2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/Libs/FS 2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FS2 Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/FS 2/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local fs = libs.fs;
5 |
6 | function update(s)
7 | libs.server.update("info", "text", s);
8 | end
9 |
10 | actions.exists = function ()
11 | local r = fs.exists("C:\\Windows");
12 | update(r);
13 | end
14 |
15 | actions.exists_bad = function ()
16 | local r = fs.exists("C:\\Windosdlkfjsdlf");
17 | update(r);
18 | end
19 |
20 | actions.copy = function ()
21 | fs.copy("C:\\foo.txt", "C:\\bar.txt");
22 | end
23 |
24 | actions.copydir = function ()
25 | fs.copy("C:\\foo\\", "C:\\bar\\");
26 | end
27 |
28 | actions.move = function ()
29 | fs.move("C:\\foo.txt", "C:\\foo2.txt");
30 | end
31 |
32 | actions.movedir = function ()
33 | fs.move("C:\\foo\\", "C:\\foo2\\");
34 | end
35 |
36 | actions.rename = function ()
37 | fs.rename("C:\\foo.txt", "C:\\fooX.txt");
38 | end
39 |
40 | actions.renamedir = function ()
41 | fs.rename("C:\\foo\\", "C:\\fooX\\");
42 | end
43 |
44 | actions.delete = function ()
45 | fs.delete("C:\\foobar.txt");
46 | end
47 |
48 | actions.deletedir = function ()
49 | fs.delete("C:\\foobar\\");
50 | end
51 |
52 | actions.deleterec = function ()
53 | fs.delete("C:\\foorec\\", true);
54 | end
55 |
56 | actions.path = function ()
57 | local r = fs.path("C:\\Windows\\");
58 | update(r);
59 | end
60 |
61 | actions.expand = function ()
62 | local r = fs.expand("%SystemRoot%");
63 | update(r);
64 | end
65 |
66 | actions.createdir = function ()
67 | fs.createdir("C:\\asdfasdf\\");
68 | end
69 |
70 | actions.createdirs = function ()
71 | fs.createdirs("C:\\asdf\\a\\b\\c\\d\\e");
72 | end
73 |
74 | actions.createfile = function ()
75 | fs.createfile("C:\\asdf.txt");
76 | end
77 |
--------------------------------------------------------------------------------
/Libs/FS 3/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Libs/FS 3/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FS4 Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/FS 3/remote.lua:
--------------------------------------------------------------------------------
1 | local fs = libs.fs;
2 |
3 | actions.read = function ()
4 | layout.info.text = fs.read("C:\\foo.txt");
5 | end
6 |
7 | actions.readlines = function ()
8 | layout.info.text = #fs.readlines("C:\\foo.txt");
9 | end
10 |
11 | actions.write = function ()
12 | fs.write("C:\\foo.txt", "abc");
13 | end
14 |
15 | actions.writelines = function ()
16 | fs.writelines("C:\\foo.txt", { "abc", "foo", "bar" });
17 | end
18 |
19 | actions.append = function ()
20 | fs.append("C:\\foo.txt", "fooooo");
21 | end
22 |
23 | actions.appendlines = function ()
24 | fs.appendlines("C:\\foo.txt", { "abc", "foo", "bar" });
25 | end
26 |
--------------------------------------------------------------------------------
/Libs/FS Attributes/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Libs/FS Attributes/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FS3 Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/FS Attributes/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local fs = libs.fs;
5 |
6 | function update(s)
7 | libs.server.update("info", "text", s);
8 | end
9 |
10 | actions.isfile = function ()
11 | local r = fs.isfile("C:\\Windows\\notepad.exe");
12 | update(r);
13 | end
14 |
15 | actions.isfile_no = function ()
16 | local r = fs.isfile("C:\\Windows");
17 | update(r);
18 | end
19 |
20 | actions.isfile_bad = function ()
21 | local r = fs.isfile("C:\\asdfasdfasd");
22 | update(r);
23 | end
24 |
25 | ------------------------------------------------------------------
26 |
27 | actions.isdir_no = function ()
28 | local r = fs.isdir("C:\\Windows\\notepad.exe");
29 | update(r);
30 | end
31 |
32 | actions.isdir = function ()
33 | local r = fs.isdir("C:\\Windows");
34 | update(r);
35 | end
36 |
37 | actions.isdir_bad = function ()
38 | local r = fs.isdir("C:\\asdfasdfasd");
39 | update(r);
40 | end
41 |
42 | ------------------------------------------------------------------
43 |
44 | actions.ishidden = function ()
45 | local r = fs.ishidden("C:\\ProgramData");
46 | update(r);
47 | end
48 |
49 | actions.ishidden_no = function ()
50 | local r = fs.ishidden("C:\\Windows");
51 | update(r);
52 | end
53 |
54 | actions.ishidden_bad = function ()
55 | local r = fs.ishidden("C:\\asdfasdfasd");
56 | update(r);
57 | end
58 |
59 | ------------------------------------------------------------------
60 |
61 | actions.size_file = function ()
62 | local r = fs.size("C:\\Windows\\notepad.exe");
63 | update(r);
64 | end
65 |
66 | actions.size_dir = function ()
67 | local r = fs.size("C:\\Windows");
68 | update(r);
69 | end
70 |
71 | actions.size_bad = function ()
72 | local r = fs.size("C:\\asdfasdfasdfasdf");
73 | update(r);
74 | end
75 |
76 | ------------------------------------------------------------------
77 |
78 | actions.created = function ()
79 | local r = fs.created("C:\\windows\\notepad.exe");
80 | update(r);
81 | end
82 |
83 | actions.modified = function ()
84 | local r = fs.modified("C:\\windows\\notepad.exe");
85 | update(r);
86 | end
87 |
--------------------------------------------------------------------------------
/Libs/FS/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | - No\tItems
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Libs/FS/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test FS Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/FS/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | function update(items)
5 | local listItems = {};
6 | for i=1,#items do
7 | table.insert(listItems, { type = "item", text = items[i] });
8 | end
9 | libs.server.update({ id = "list", children = listItems });
10 | end
11 |
12 | actions.remfile = function ()
13 | update({ libs.fs.remotefile() });
14 | end
15 |
16 | actions.remdir = function ()
17 | update({ libs.fs.remotedir() });
18 | end
19 |
20 | actions.working = function ()
21 | update({ libs.fs.workingdir() });
22 | end
23 |
24 | actions.app = function ()
25 | update({ libs.fs.appdir() });
26 | end
27 |
28 | actions.home = function ()
29 | update({ libs.fs.homedir() });
30 | end
31 |
32 | actions.files1 = function ()
33 | update( libs.fs.files("C:\\Windows") );
34 | end
35 |
36 | actions.files2 = function ()
37 | update( libs.fs.files("C:\\Windows\\") );
38 | end
39 |
40 | actions.dirs = function ()
41 | update( libs.fs.dirs("C:\\") );
42 | end
43 |
44 | actions.list = function ()
45 | update( libs.fs.list("C:\\") );
46 | end
47 |
48 | actions.roots = function ()
49 | update( libs.fs.roots() );
50 | end
51 |
52 | actions.parent = function ()
53 | update({
54 | libs.fs.parent("C:\\Windows\\notepad.exe"),
55 | libs.fs.parent("C:\\Windows\\"),
56 | libs.fs.parent("C:\\Windows"),
57 | libs.fs.parent("C:\\")
58 | });
59 | end
60 |
61 | actions.name = function ()
62 | update({
63 | libs.fs.name("C:\\Windows\\notepad.exe"),
64 | libs.fs.name("C:\\Windows\\"),
65 | libs.fs.name("C:\\Windows"),
66 | libs.fs.name("C:\\")
67 | });
68 | end
69 |
70 | actions.fullname = function ()
71 | update({
72 | libs.fs.fullname("C:\\Windows\\notepad.exe"),
73 | libs.fs.fullname("C:\\Windows\\"),
74 | libs.fs.fullname("C:\\Windows"),
75 | libs.fs.fullname("C:\\")
76 | });
77 | end
78 |
79 | actions.extension = function ()
80 | update({
81 | libs.fs.extension("C:\\Windows\\notepad.exe"),
82 | libs.fs.extension("C:\\Windows\\"),
83 | libs.fs.extension("C:\\Windows")
84 | });
85 | end
86 |
87 | actions.combine = function ()
88 | update({
89 | libs.fs.combine("C:\\", "Windows"),
90 | libs.fs.combine("Windows", "test.txt"),
91 | libs.fs.combine("C:\\", "test.txt"),
92 | libs.fs.combine("C:\\Windows", "test.txt"),
93 | libs.fs.combine("C:\\Windows\\", "test.txt"),
94 | libs.fs.combine("C:\\", "Windows", "test.txt")
95 | });
96 | end
97 |
98 | actions.make_path = function ()
99 | print(libs.fs.path("%windir%/notepad.exe"));
100 | update({
101 | libs.fs.path("%windir%/notepad.exe")
102 | });
103 | end
104 |
--------------------------------------------------------------------------------
/Libs/GPIO 2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test GPIO2 Library
2 | meta.author: Test
3 | meta.platform: linux
4 |
--------------------------------------------------------------------------------
/Libs/GPIO 2/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local g = libs.gpio;
5 | local tid = -1;
6 |
7 | events.create = function ()
8 | g.map("pi");
9 | for i=0,16 do
10 | g.capture(g.index(i));
11 | g.out(g.index(i));
12 | g.low(g.index(i));
13 | end
14 |
15 | tid = libs.timer.interval(update, 100);
16 | end
17 |
18 | function update ()
19 | for i=0,16 do
20 | local s = math.random(0,1);
21 | if (s == 1) then
22 | g.high(g.index(i));
23 | else
24 | g.low(g.index(i));
25 | end
26 | end
27 | end
28 |
29 | events.destroy = function ()
30 | libs.timer.cancel(tid);
31 | g.releaseall();
32 | end
33 |
--------------------------------------------------------------------------------
/Libs/GPIO/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Libs/GPIO/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test GPIO Library
2 | meta.author: Test
3 | meta.platform: linux
4 |
--------------------------------------------------------------------------------
/Libs/GPIO/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local g = libs.gpio;
5 | local ind = g.index;
6 | local n = g.name;
7 |
8 | events.focus = function ()
9 | g.map("pi");
10 | for i=0,16 do
11 | libs.gpio.capture(ind(i));
12 | libs.gpio.out(ind(i));
13 | end
14 | end
15 |
16 | events.blur = function ()
17 | g.releaseall();
18 | end
19 |
20 | actions.off = function()
21 | for i = 0, 16 do
22 | g.set(ind(i), false);
23 | layout["l" .. i+1].checked=false;
24 | end
25 | end
26 |
27 | actions.on = function()
28 | for i = 0, 16 do
29 | g.set(ind(i), true);
30 | layout["l"..i+1].checked = true;
31 | end
32 | end
33 |
34 | actions.l1 = function(checked)
35 | g.set(n("GPIO17"),checked);
36 | end
37 | actions.l2 = function(checked)
38 | g.set(n("GPIO18"),checked);
39 | end
40 | actions.l3 = function(checked)
41 | g.set(n("GPIO21/27"),checked);
42 | end
43 | actions.l4 = function(checked)
44 | g.set(n("GPIO22"),checked);
45 | end
46 | actions.l5 = function(checked)
47 | g.set(n("GPIO23"),checked);
48 | end
49 | actions.l6 = function(checked)
50 | g.set(n("GPIO24"),checked);
51 | end
52 | actions.l7 = function(checked)
53 | g.set(n("GPIO25"),checked);
54 | end
55 | actions.l8 = function(checked)
56 | g.set(n("GPIO4"),checked);
57 | end
58 | actions.l9 = function(checked)
59 | g.set(n("SDA"),checked);
60 | end
61 | actions.l10 = function(checked)
62 | g.set(n("SCL"),checked);
63 | end
64 | actions.l11 = function(checked)
65 | g.set(n("CE2"),checked);
66 | end
67 | actions.l12 = function(checked)
68 | g.set(n("CE1"),checked);
69 | end
70 | actions.l13 = function(checked)
71 | g.set(n("MOSI"),checked);
72 | end
73 | actions.l14 = function(checked)
74 | g.set(n("MISO"),checked);
75 | end
76 | actions.l15 = function(checked)
77 | g.set(n("SCLK"),checked);
78 | end
79 | actions.l16 = function(checked)
80 | g.set(n("TxD"),checked);
81 | end
82 | actions.l17 = function(checked)
83 | g.set(n("RxD"),checked);
84 | end
85 |
86 |
--------------------------------------------------------------------------------
/Libs/IO/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Libs/IO/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test IO Library Extensions
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/IO/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | actions.pread = function ()
5 | out, res, err = io.pread("ipconfig /all");
6 | print(out);
7 | layout.info.text = out;
8 | end
9 |
10 | actions.plines = function ()
11 | lines, res, err = io.plines("ipconfig /all");
12 | print(lines);
13 | layout.info.text = lines;
14 | end
15 |
16 | actions.fwrite = function ()
17 | io.fwrite("C:\\hello.txt", "Hello World!");
18 | end
19 |
20 | actions.fread = function ()
21 | local r = io.fread("C:\\hello.txt");
22 | update(r);
23 | end
24 |
25 | actions.flines = function ()
26 | local r = io.flines("C:\\hello.txt");
27 | end
28 |
--------------------------------------------------------------------------------
/Libs/Joystick/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Libs/Joystick/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Joystick Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Joystick/remote.lua:
--------------------------------------------------------------------------------
1 | local j = libs.joystick;
2 |
3 | local offset = { x = 0, y = 0, z = 0 };
4 | local curr = { x = 0, y = 0, z = 0 };
5 | local comp = { x = 0, y = 0, z = 0 };
6 |
7 | function norm (v,min1,max1,min2,max2)
8 | if (v < min1) then v = v + (max1-min1); end
9 | if (v > max1) then v = v - (max1-min1); end
10 |
11 | local factor1 = (v-min1)/(max1-min1);
12 | local factor2 = factor1*(max2-min2);
13 | local v2 = factor2 + min2;
14 |
15 | return v2
16 | end
17 |
18 | actions.throttle = function (value)
19 | value = norm(100 - value, 0, 100, -127, 127);
20 | j.throttle(value);
21 | end
22 |
23 | actions.offset = function ()
24 | offset.x = curr.x;
25 | offset.y = curr.y;
26 | offset.z = curr.z;
27 | layout.offset.text = offset.x .. " " .. offset.y .. " " .. offset.z;
28 | end
29 |
30 | actions.orientation = function (x, y, z)
31 | curr.x = x;
32 | curr.y = y;
33 | curr.z = z;
34 |
35 | comp.x = x - offset.x;
36 | comp.y = y - offset.y;
37 | comp.z = z - offset.z;
38 |
39 | layout.info.text = comp.x .. " " .. comp.y .. " " .. comp.z;
40 |
41 | x = -norm(comp.y, -90, 90, -127, 127);
42 | y = -norm(comp.z, -90, 90, -127, 127);
43 | z = -norm(comp.x, -90, 90, -127, 127);
44 |
45 | --x = norm(comp.x, -180, 180, -127, 127);
46 | --y = -norm(comp.y, -180, 180, -127, 127);
47 |
48 | --xAxis = 0; --norm(-comp.y, -180, 180);
49 | --yAxis = norm(comp.y, -180, 180) * 254 - 127;
50 | --zAxis = 0; --norm(comp.z, 0, 100);
51 |
52 | j.look(x, y, z);
53 |
54 | --j.rotate(zAxis, 0);
55 | end
56 |
--------------------------------------------------------------------------------
/Libs/Keyboard/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Libs/Keyboard/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Keyboard Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Keyboard/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local keyboard = libs.keyboard;
5 | local server = libs.server;
6 | --------------------------------------------------------
7 |
8 | actions.down = function ()
9 | keyboard.down("a");
10 | end
11 |
12 | actions.up = function ()
13 | keyboard.up("a");
14 | end
15 |
16 | actions.press = function ()
17 | keyboard.press("capslock");
18 | end
19 |
20 | stroke = function (...)
21 | keyboard.stroke(unpack({...}));
22 | end
23 |
24 | actions.stroke1 = function ()
25 | stroke("a");
26 | end
27 |
28 | actions.stroke2 = function ()
29 | stroke("cmd", "a");
30 | end
31 |
32 |
33 |
34 | actions.stroke3 = function ()
35 | stroke("shift", "alt", "8");
36 | end
37 |
38 | actions.char = function ()
39 | keyboard.char(65);
40 | end
41 |
42 | actions.text = function ()
43 | keyboard.text("åäö Hello World!");
44 | end
45 |
46 | actions.modifier = function ()
47 | local r = keyboard.modifier("a");
48 | server.update({ id = "info", text = r });
49 | end
50 |
--------------------------------------------------------------------------------
/Libs/Log/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Libs/Log/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Log Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Log/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | actions.trace = function ()
3 | libs.log.trace("trace");
4 | end
5 |
6 | actions.info = function ()
7 | libs.log.info("info");
8 | end
9 |
10 | actions.warn = function ()
11 | libs.log.warn("warn");
12 | end
13 |
14 | actions.error = function ()
15 | libs.log.error("error");
16 | end
17 |
18 | actions.print = function ()
19 | print("print");
20 | end
21 |
--------------------------------------------------------------------------------
/Libs/Mouse/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Libs/Mouse/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Mouse Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Mouse/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local mouse = libs.mouse;
5 | local server = libs.server;
6 | local timer = libs.timer;
7 | --------------------------------------------------------
8 |
9 | local tid = -1;
10 |
11 | events.focus = function ()
12 | tid1 = timer.interval(function ()
13 | x1,y1 = mouse.position();
14 | server.update({id = "info", text = x1 .. " " .. y1 });
15 | end, 50);
16 | end
17 |
18 | events.blur = function ()
19 | timer.cancel(tid);
20 | end
21 |
22 | --------------------------------------------------------
23 |
24 | actions.moveby = function ()
25 | x1,y1 = mouse.position();
26 | mouse.moveby(100,200);
27 | x2,y2 = mouse.position();
28 | assert(x2 == x1 + 100 and y2 == y1 + 200);
29 | end
30 |
31 | actions.moveto = function ()
32 | mouse.moveto(100,200);
33 | x,y = mouse.position();
34 | assert(x == 100 and y == 200);
35 | end
36 |
37 | --------------------------------------------------------
38 |
39 | actions.down_left = function ()
40 | mouse.down("left");
41 | end
42 |
43 | actions.down_middle = function ()
44 | mouse.down("middle");
45 | end
46 |
47 | actions.down_right = function ()
48 | mouse.down("right");
49 | end
50 |
51 | --------------------------------------------------------
52 |
53 | actions.up_left = function ()
54 | mouse.up("left");
55 | end
56 |
57 | actions.up_middle = function ()
58 | mouse.up("middle");
59 | end
60 |
61 | actions.up_right = function ()
62 | mouse.up("right");
63 | end
64 |
65 | --------------------------------------------------------
66 |
67 | actions.click_left = function ()
68 | mouse.click("left");
69 | end
70 |
71 | actions.click_middle = function ()
72 | mouse.click("middle");
73 | end
74 |
75 | actions.click_center = function ()
76 | mouse.click("center");
77 | end
78 |
79 | actions.click_right = function ()
80 | mouse.click("right");
81 | end
82 |
83 | --------------------------------------------------------
84 |
85 | actions.double_left = function ()
86 | mouse.double("left");
87 | end
88 |
89 | actions.double_middle = function ()
90 | mouse.double("middle");
91 | end
92 |
93 | actions.double_right = function ()
94 | mouse.double("right");
95 | end
96 |
97 | --------------------------------------------------------
98 |
99 | actions.vscroll = function ()
100 | mouse.vscroll(10);
101 | end
102 |
103 | actions.hscroll = function ()
104 | mouse.vscroll(10);
105 | end
106 |
107 | --------------------------------------------------------
108 |
109 | actions.dragbegin = function ()
110 | mouse.dragbegin();
111 | end
112 |
113 | actions.dragend = function ()
114 | mouse.dragend();
115 | end
116 |
--------------------------------------------------------------------------------
/Libs/Network/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Libs/Network/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Network Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Network/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local http = libs.http;
5 |
6 | actions.google = function ()
7 | local r = http.get("http://www.google.com");
8 | libs.server.update({ id="info", text=r });
9 | end
10 |
11 | actions.request = function ()
12 | local r = http.request({
13 | url = "http://www.unifiedremote.com"
14 | });
15 | libs.server.update({ id="info", text=r.status });
16 | end
17 |
18 | actions.post = function ()
19 | local r = http.post("http://www.unifiedremote.com", "asdfasdf");
20 | libs.server.update({ id="info", text=r });
21 | end
22 |
23 | actions.http = function ()
24 | local r = http.get("http://www.unifiedremote.com");
25 | libs.server.update({ id="info", text=r });
26 | end
27 |
28 | actions.https = function ()
29 | local r = http.get("https://embed.spotify.com/?uri=spotify:user:phb5000:playlist:60WGD1OLz5tU9KLvnhjHNQ");
30 | libs.server.update({ id="info", text=r });
31 | end
32 |
33 | actions.image = function ()
34 | local r = http.get("http://nuclearpixel.com/content/icons/2010-02-09_stellar_icons_from_space_from_2005/earth_128.png");
35 |
36 | local file = io.open("C:\\test.png", "wb");
37 | file:write(r);
38 | file:close();
39 |
40 | libs.server.update("file", "image", "C:\\test.png");
41 | libs.server.update("binary", "image", r);
42 | end
43 |
--------------------------------------------------------------------------------
/Libs/OAuth1/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Libs/OAuth1/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: OAuth1
2 | meta.author: Test
3 | meta.description: Test OAuth1
4 |
--------------------------------------------------------------------------------
/Libs/OAuth1/remote.lua:
--------------------------------------------------------------------------------
1 | local server = libs.server;
2 |
3 |
4 | actions.test = function ()
5 | libs.http.request({ method = "get", url = "http://api.telldus.com/xml/sensors/list", connect = "telldus" },
6 | function (err, resp)
7 | if (err) then
8 | layout.resp.text = err;
9 | else
10 | layout.resp.text = resp.content;
11 | end
12 | end
13 | );
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/Libs/OAuth2/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Libs/OAuth2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: OAuth2
2 | meta.author: Test
3 | meta.description: Test OAuth2
4 |
--------------------------------------------------------------------------------
/Libs/OAuth2/remote.lua:
--------------------------------------------------------------------------------
1 | local server = libs.server;
2 |
3 |
4 | actions.test = function ()
5 | libs.http.request({ method = "get", url = "https://api.spotify.com/v1/me", connect = "spotify" },
6 | function (err, resp)
7 | if (err) then
8 | layout.resp.text = err;
9 | else
10 | layout.resp.text = resp.content;
11 | end
12 | end
13 | );
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/Libs/OS/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Libs/OS/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test OS Library Extensions
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/OS/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | actions.sleep = function ()
3 | print("sleeping...");
4 | os.sleep(3000);
5 | print("slept!");
6 | end
7 |
8 | actions.open = function ()
9 | os.open("http://www.google.com/");
10 | end
11 |
12 | actions.open_all = function ()
13 | if (OS_WINDOWS) then
14 | os.open_all("F:\\AAA");
15 | else
16 | os.open_all("~/AAA");
17 | end
18 | end
19 |
20 | actions.start = function ()
21 | os.start("ping");
22 | end
23 |
24 | actions.start_args = function ()
25 | if (OS_WINDOWS) then
26 | os.start("ping", "-n 3");
27 | else
28 | os.start("ping", "-c 3");
29 | end
30 | end
31 |
32 | actions.script = function ()
33 | local out = "";
34 | if (OS_OSX) then
35 | out = os.script(
36 | "tell application \"Spotify\"",
37 | "set r to sound volume",
38 | "end tell"
39 | );
40 | elseif (OS_WINDOWS) then
41 | out = os.script(
42 | "echo foobar1",
43 | "echo foobar2",
44 | "echo foobar3",
45 | "echo foobar4",
46 | "echo foobar5"
47 | );
48 | elseif (OS_LINUX) then
49 | out = os.script(
50 | "echo foobar"
51 | );
52 | end
53 | print(out);
54 | end
55 |
56 | actions.throw = function ()
57 | os.throw("foo!");
58 | end
--------------------------------------------------------------------------------
/Libs/PS/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Libs/PS/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test PS Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/PS/remote.lua:
--------------------------------------------------------------------------------
1 | ps = libs.ps;
2 |
3 | actions.foo = function ()
4 | os.execute("echo foo");
5 | end
6 |
7 | actions.run_with_input = function ()
8 | local res = ps.run({
9 | command = "C:\\foo.exe",
10 | input = "abc\r\nhello\r\nquit\r\n"
11 | });
12 |
13 | print(libs.data.tojson(res));
14 | end
--------------------------------------------------------------------------------
/Libs/Script/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Libs/Script/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Script Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Script/remote.lua:
--------------------------------------------------------------------------------
1 | local script = libs.script;
2 |
3 | actions.default = function ()
4 | out,err,res = script.default("foo");
5 | layout.info.text = out .. err;
6 | end
7 |
8 | actions.script = function ()
9 | out,err,res = libs.os.script("set out to \"foooooo\"");
10 | layout.info.text = out .. err;
11 | end
12 |
13 | actions.batch = function ()
14 | layout.info.text = script.batch(
15 | "echo %cd%"
16 | );
17 | end
18 |
19 | actions.powershell = function ()
20 | layout.info.text = script.powershell([[
21 | $pwd
22 | ps | Where-Object { $_.Name -eq \"svchost\" }
23 | ]]);
24 | end
25 |
26 | actions.apple = function ()
27 | layout.info.text = script.apple(
28 | "set r to (path to me)"
29 | );
30 | end
31 |
32 | actions.shell = function ()
33 | layout.info.text = script.shell(
34 | "echo $PWD"
35 | );
36 | end
37 |
38 | actions.shell_special = function ()
39 | layout.info.text = script.shell(
40 | "#!/bin/sh",
41 | "echo $PWD"
42 | );
43 | end
--------------------------------------------------------------------------------
/Libs/Socket/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Libs/Socket/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Socket Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Socket/remote.lua:
--------------------------------------------------------------------------------
1 | local s;
2 |
3 | events.create = function ()
4 | s = libs.socket.new();
5 | s:ondata(data);
6 | s:onclose(closed);
7 | s:onerror(err);
8 | s:onconnect(connected);
9 | end
10 |
11 | events.destroy = function ()
12 | s:close();
13 | end
14 |
15 | actions.connect = function ()
16 | print("SOCKET connecting...");
17 | s:connect("philip-pc2", 9999);
18 | end
19 |
20 | actions.disconnect = function ()
21 | s:close();
22 | end
23 |
24 | actions.send = function ()
25 | print("SOCKET sending");
26 | s:write("foobar");
27 | end
28 |
29 | function connected ()
30 | print("SOCKET connected");
31 | end
32 |
33 | function closed ()
34 | print("SOCKET closed");
35 | end
36 |
37 | function data (buffer)
38 | print("SOCKET received: " .. buffer);
39 | layout.receive.text = buffer;
40 | end
41 |
42 | function err (e)
43 | print("SOCKET error: " .. e);
44 | end
--------------------------------------------------------------------------------
/Libs/Timer/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Libs/Timer/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Timer
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Timer/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local timer = libs.timer;
5 | local server = libs.server;
6 | local task = libs.task;
7 | local utf8 = libs.utf8;
8 | local tid1 = -1;
9 | local tid2 = -1;
10 | local tid3 = -1;
11 |
12 | events.create = function ()
13 | print("create");
14 | end
15 |
16 | events.focus = function ()
17 | print("focus");
18 | end
19 |
20 | events.blur = function ()
21 | print("blur");
22 | end
23 |
24 | events.destroy = function ()
25 | print("destroy");
26 | end
27 |
28 | actions.timeout = function ()
29 | print("start");
30 | timer.timeout(function ()
31 | print("timeout!");
32 | end, 3000);
33 | end
34 |
35 | actions.start1 = function ()
36 | print("start1");
37 | tid1 = timer.interval(function ()
38 | print("interval1");
39 | end, 100);
40 | end
41 |
42 | actions.start2 = function ()
43 | print("start2");
44 | tid2 = timer.interval(function ()
45 | print("interval2");
46 | end, 101);
47 | end
48 |
49 | function update()
50 | server.update("info", "text", timer.time());
51 | print(timer.time());
52 | end
53 |
54 | actions.start3 = function ()
55 | tid3 = timer.interval(update, 1000);
56 | end
57 |
58 | actions.stop1 = function ()
59 | timer.cancel(tid1);
60 | end
61 |
62 | actions.stop2 = function ()
63 | timer.cancel(tid2);
64 | end
65 |
66 | actions.stop3 = function ()
67 | timer.cancel(tid3);
68 | end
69 |
70 | actions.run = function ()
71 | print("run");
72 | server.run("Test.Timer", "test");
73 | end
74 |
75 | actions.test = function ()
76 | print("test");
77 | end
78 |
--------------------------------------------------------------------------------
/Libs/UTF8 Perf/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Libs/UTF8 Perf/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test UTF8 Performance
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/UTF8 Perf/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local utf8 = libs.utf8;
5 | local oldutf8 = libs.oldutf8;
6 | local fs = libs.fs;
7 |
8 | local tstart;
9 | local tmsg;
10 |
11 | function start(msg)
12 | tmsg = msg;
13 | tstart = libs.timer.time();
14 | end
15 |
16 | function stop()
17 | local tend = libs.timer.time();
18 | print(tmsg .. " took " .. (tend - tstart) .. " ms");
19 | end
20 |
21 | actions.many = function ()
22 | start("read file");
23 | local str = fs.read("TestUTF8Perf.txt");
24 | stop();
25 |
26 | start("create u8");
27 | local u8 = utf8.new(str);
28 | stop();
29 |
30 | start("length");
31 | u8:len();
32 | stop();
33 |
34 | local s = 0;
35 |
36 | start("indexof");
37 | s = 0;
38 | s = u8:indexof(" ", s);
39 | local idx = {};
40 | while s > -1 do
41 | s = u8:indexof(" ", s);
42 | table.insert(idx, s);
43 | if (s > -1) then s = s + 1 end
44 | end
45 | stop();
46 |
47 | start("split");
48 | u8:split(" ");
49 | stop();
50 | end
51 |
52 | actions.new = function ()
53 | local str = utf8.new("hello world åäö");
54 | str:test();
55 | end
56 |
--------------------------------------------------------------------------------
/Libs/UTF8/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/Libs/UTF8/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test UTF8 Library
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Libs/Win/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/Libs/Win/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Win Library
2 | meta.author: Test
3 |
4 |
--------------------------------------------------------------------------------
/Libs/Win/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local server = libs.server;
5 | local win = libs.win;
6 | local process = "uTorrent.exe";
7 |
8 | actions.start_app_without_exe = function ()
9 | os.start("chrome");
10 | end
11 |
12 | actions.start_app_with_exe = function ()
13 | os.start("chrome.exe");
14 | end
15 |
16 | actions.start_without_exe = function ()
17 | os.start("calc");
18 | end
19 |
20 | actions.start_with_exe = function ()
21 | os.start("calc.exe");
22 | end
23 |
24 | actions.start_relative = function ()
25 | os.start("");
26 | end
27 |
28 | actions.start_absolute = function ()
29 | os.start("C:/Windows/notepad.exe");
30 | end
31 |
32 | actions.start_vars = function ()
33 | os.start("%windir%/notepad.exe");
34 | end
35 |
36 | actions.start_bad = function ()
37 | os.start("laskjdlaksjdflkasjf");
38 | end
39 |
40 | actions.start_args = function ()
41 | os.start("cmd", "/k", "ipconfig");
42 | end
43 |
44 | actions.start_args_table = function ()
45 | os.start("cmd", { "/k", "ipconfig" });
46 | end
47 |
48 | actions.open_http = function ()
49 | os.open("http://www.google.com");
50 | end
51 |
52 | actions.open_www = function ()
53 | os.open("www.youtube.com");
54 | end
55 |
56 | actions.open_file = function ()
57 | os.open("C:/Test.txt");
58 | end
59 |
60 | actions.open_dir = function ()
61 | os.open("C:/Windows");
62 | end
63 |
64 | actions.open_cp = function ()
65 | os.open("control mouse");
66 | end
67 |
68 | -------------------------------------------------------------------------------------
69 | -- Windows
70 | -------------------------------------------------------------------------------------
71 |
72 | actions.desktop = function ()
73 | server.update({ id = "info", text = win.desktop() });
74 | end
75 |
76 | actions.desktop_title = function ()
77 | server.update({ id = "info", text = win.title(win.desktop()) });
78 | end
79 |
80 | actions.active = function ()
81 | server.update({ id = "info", text = win.active() });
82 | end
83 |
84 | actions.find_class = function ()
85 | server.update({ id = "info", text = win.find("Chrome_WidgetWin_1", nil) });
86 | end
87 |
88 | actions.find_title = function ()
89 | server.update({ id = "info", text = win.find(nil, "Calculator") });
90 | end
91 |
92 | actions.find_both = function ()
93 | server.update({ id = "info", text = win.find("CalcFrame", "Calculator") });
94 | end
95 |
96 | actions.find_none = function ()
97 | server.update({ id = "info", text = win.find(nil, nil) });
98 | end
99 |
100 | actions.post = function ()
101 | server.update({ id = "info", text = win.post(win.window("spotify.exe"), 0x0319, 0, 917504) });
102 | end
103 |
104 | actions.post_bad = function ()
105 | server.update({ id = "info", text = win.post(0, 0, 0, 0) });
106 | end
107 |
108 | actions.send = function ()
109 | server.update({ id = "info", text = win.send(win.window("spotify.exe"), 0x0319, 0, 917504) });
110 | end
111 |
112 | actions.send_bad = function ()
113 | server.update({ id = "info", text = win.send(0, 0, 0, 0) });
114 | end
115 |
116 | -------------------------------------------------------------------------------------
117 | -- Misc
118 | -------------------------------------------------------------------------------------
119 |
120 | actions.active = function ()
121 | server.update({ id = "info", text = win.active() });
122 | end
123 |
124 | actions.active_title = function ()
125 | server.update({ id = "info", text = win.title(win.active()) });
126 | end
127 |
128 | actions.active_title = function ()
129 | server.update({ id = "info", text = win.title(win.active()) });
130 | end
131 |
132 | actions.process = function ()
133 | server.update({ id = "info", text = win.process(process) });
134 | end
135 |
136 | actions.process_bad = function ()
137 | server.update({ id = "info", text = win.process("asdf") });
138 | end
139 |
140 | actions.window = function ()
141 | server.update({ id = "info", text = win.window(process) });
142 | end
143 |
144 | actions.window_bad = function ()
145 | server.update({ id = "info", text = win.window("asdf") });
146 | end
147 |
148 | actions.title = function ()
149 | server.update({ id = "info", text = win.title(process) });
150 | end
151 |
152 | actions.title_bad = function ()
153 | server.update({ id = "info", text = win.title("asdf") });
154 | end
155 |
156 | actions.switchto = function ()
157 | server.update({ id = "info", text = win.switchto(process) });
158 | end
159 |
160 | actions.switchto_bad = function ()
161 | server.update({ id = "info", text = win.switchto("asdf") });
162 | end
163 |
164 | actions.switchtowait = function ()
165 | server.update({ id = "info", text = win.switchtowait(process) });
166 | end
167 |
168 | actions.switchtowait_bad = function ()
169 | server.update({ id = "info", text = win.switchtowait("asdf") });
170 | end
171 |
172 | actions.switchtowait3sec = function ()
173 | local text = win.switchtowait(process, 3000);
174 | print("done!");
175 | server.update({ id = "info", text = text });
176 | end
177 |
178 | actions.switchtowait3sec_bad = function ()
179 | local text = win.switchtowait("asdf", 3000);
180 | print("done!");
181 | server.update({ id = "info", text = text });
182 | end
183 |
184 | actions.kill = function ()
185 | win.kill(process);
186 | end
187 |
188 | actions.kill_bad = function ()
189 | win.kill("asdf");
190 | end
191 |
192 | actions.close = function ()
193 | win.close(process);
194 | end
195 |
196 | actions.close_bad = function ()
197 | win.close("asdf");
198 | end
199 |
200 | actions.quit = function ()
201 | win.quit(process);
202 | end
203 |
204 | actions.quit_bad = function ()
205 | win.quit("asdf");
206 | end
207 |
208 | actions.list = function ()
209 | local tasks = win.list();
210 | for i,task in ipairs(tasks) do
211 | print(win.title);
212 | end
213 | print(win.list());
214 | end
215 |
--------------------------------------------------------------------------------
/Loading/Icon Custom/custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Custom/custom.png
--------------------------------------------------------------------------------
/Loading/Icon Custom/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Custom/icon.png
--------------------------------------------------------------------------------
/Loading/Icon Custom/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Custom Icon
2 | meta.author: Test
3 | meta.icon: custom.png
4 |
--------------------------------------------------------------------------------
/Loading/Icon Error/icon.png:
--------------------------------------------------------------------------------
1 | asdf asdf asdf asdfasdfa sdf
--------------------------------------------------------------------------------
/Loading/Icon Error/layout.xml:
--------------------------------------------------------------------------------
1 | asdfl kajsdöf lkjasödlf jasöldfkjaösdlkfj
--------------------------------------------------------------------------------
/Loading/Icon Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Icon Error
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Icon Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Icon Missing/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Icon Missing
2 | meta.author: Test
3 | meta.icon: lajsdlfjlsdf
4 |
--------------------------------------------------------------------------------
/Loading/Icon Missing/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Icon None/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Icon None
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Icon Platform/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Platform/icon.png
--------------------------------------------------------------------------------
/Loading/Icon Platform/icon_linux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Platform/icon_linux.png
--------------------------------------------------------------------------------
/Loading/Icon Platform/icon_osx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Platform/icon_osx.png
--------------------------------------------------------------------------------
/Loading/Icon Platform/icon_win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Icon Platform/icon_win.png
--------------------------------------------------------------------------------
/Loading/Icon Platform/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Icon Platform
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Layout Empty/layout.xml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Layout Empty/layout.xml
--------------------------------------------------------------------------------
/Loading/Layout Empty/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Layout Empty
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Layout Empty/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Layout Error/layout.xml:
--------------------------------------------------------------------------------
1 | asdfl kajsdöf lkjasödlf jasöldfkjaösdlkfj
--------------------------------------------------------------------------------
/Loading/Layout Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Layout Error
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Layout Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Layout Missing/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Layout Missing
2 | meta.author: Test
3 | meta.layout: lajsdlfjlsdf
4 |
--------------------------------------------------------------------------------
/Loading/Layout Missing/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Layout None/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Layout None
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Layout Platform/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Loading/Layout Platform/layout_linux.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Loading/Layout Platform/layout_osx.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Loading/Layout Platform/layout_win.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Loading/Layout Platform/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Layout Platform
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Lua Empty/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Lua Empty
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Lua Empty/remote.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Lua Empty/remote.lua
--------------------------------------------------------------------------------
/Loading/Lua Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Lua Error
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Lua Error/remote.lua:
--------------------------------------------------------------------------------
1 | asdf aölsdfkj alskdjf öaslkdfjöals kdjf öalskdjf öasldfkjasöldf
2 |
--------------------------------------------------------------------------------
/Loading/Lua Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Lua Missing/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Lua Missing
2 | meta.author: Test
3 | meta.remote: lajsdlfjlsdf
4 |
--------------------------------------------------------------------------------
/Loading/Lua Missing/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Lua None/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Lua None
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Lua Platform/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Lua Platform
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Lua Platform/remote.lua:
--------------------------------------------------------------------------------
1 | events.create = function ()
2 | print("create");
3 | end
--------------------------------------------------------------------------------
/Loading/Lua Platform/remote_linux.lua:
--------------------------------------------------------------------------------
1 | events.create = function ()
2 | print("create linux");
3 | end
--------------------------------------------------------------------------------
/Loading/Lua Platform/remote_osx.lua:
--------------------------------------------------------------------------------
1 | events.create = function ()
2 | print("create osx");
3 | end
--------------------------------------------------------------------------------
/Loading/Lua Platform/remote_win.lua:
--------------------------------------------------------------------------------
1 | events.create = function ()
2 | print("create windows");
3 | end
--------------------------------------------------------------------------------
/Loading/Lua Require Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Require Error
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Lua Require Error/remote.lua:
--------------------------------------------------------------------------------
1 | require ("classlib")
--------------------------------------------------------------------------------
/Loading/Lua Require Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta All/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta All
2 | meta.author: Test
3 | meta.url: http://www.google.com
4 | meta.description: This is a test meta all
5 | meta.friendly: Test Meta All Friendly
--------------------------------------------------------------------------------
/Loading/Meta Empty/meta.prop:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Meta Empty/meta.prop
--------------------------------------------------------------------------------
/Loading/Meta Empty/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta Good/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Good
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Meta ID Bad/meta.prop:
--------------------------------------------------------------------------------
1 | meta.id: a #"#"#
--------------------------------------------------------------------------------
/Loading/Meta ID Bad/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta ID Duplicate 2/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta ID Duplicate
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Meta ID Duplicate 2/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta ID Duplicate/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta ID Duplicate
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Meta ID Override/meta.prop:
--------------------------------------------------------------------------------
1 | meta.id: Test.TestMetaIDOverridden
2 | meta.name: Test Meta ID Override
3 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Meta ID/meta.prop:
--------------------------------------------------------------------------------
1 | meta.id: Test.TestMetaID
--------------------------------------------------------------------------------
/Loading/Meta Invalid/meta.prop:
--------------------------------------------------------------------------------
1 | as dff lfPO"(=(#=) #(=!)#(=! )"(=!")( !=)"( =!(!=#)(!"#
--------------------------------------------------------------------------------
/Loading/Meta Invalid/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta Missing Author/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Missing Author
--------------------------------------------------------------------------------
/Loading/Meta Missing Author/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta Missing Name/meta.prop:
--------------------------------------------------------------------------------
1 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Meta Missing Name/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Meta Platform Linux/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Platform Linux
2 | meta.author: Test
3 | meta.platform: linux
4 |
--------------------------------------------------------------------------------
/Loading/Meta Platform OSX/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Platform OSX
2 | meta.author: Test
3 | meta.platform: osx
4 |
--------------------------------------------------------------------------------
/Loading/Meta Platform Win/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Platform Windows
2 | meta.author: Test
3 | meta.platform: windows
4 |
--------------------------------------------------------------------------------
/Loading/Meta Unknown/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Meta Unknown
2 | meta.author: Test
3 | meta.foo: bar
--------------------------------------------------------------------------------
/Loading/Meta Unknown/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Preload Empty/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Preload Empty
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Preload Empty/remote.lua:
--------------------------------------------------------------------------------
1 | events.preload = function ()
2 |
3 | end
4 |
--------------------------------------------------------------------------------
/Loading/Preload Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Preload Error
2 | meta.author: Test
--------------------------------------------------------------------------------
/Loading/Preload Error/remote.lua:
--------------------------------------------------------------------------------
1 | events.preload = function ()
2 | local s = nil + nil;
3 | end
4 |
--------------------------------------------------------------------------------
/Loading/Preload Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/README.md:
--------------------------------------------------------------------------------
1 | Internal error test remotes
--------------------------------------------------------------------------------
/Loading/Settings Empty/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings Empty
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Settings Empty/settings.prop:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Loading/Settings Empty/settings.prop
--------------------------------------------------------------------------------
/Loading/Settings Error/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings Error
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Settings Error/settings.prop:
--------------------------------------------------------------------------------
1 | asdfl kajsdöf lkjasödlf jasöldfkjaösdlkfj
--------------------------------------------------------------------------------
/Loading/Settings Error/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Settings Missing/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings Missing
2 | meta.author: Test
3 | meta.settings: lajsdlfjlsdf
4 |
--------------------------------------------------------------------------------
/Loading/Settings Missing/test:
--------------------------------------------------------------------------------
1 | failure
--------------------------------------------------------------------------------
/Loading/Settings None/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings None
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Settings Platform/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings Platform
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Loading/Settings Platform/settings.prop:
--------------------------------------------------------------------------------
1 | platform: unknown
--------------------------------------------------------------------------------
/Loading/Settings Platform/settings_linux.prop:
--------------------------------------------------------------------------------
1 | platform: linux
--------------------------------------------------------------------------------
/Loading/Settings Platform/settings_osx.prop:
--------------------------------------------------------------------------------
1 | platform: osx
--------------------------------------------------------------------------------
/Loading/Settings Platform/settings_win.prop:
--------------------------------------------------------------------------------
1 | platform: windows
--------------------------------------------------------------------------------
/Pending/Facebook Web/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Pending/Facebook Web/icon.png
--------------------------------------------------------------------------------
/Pending/Facebook Web/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/Pending/Facebook Web/like_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Pending/Facebook Web/like_logo.png
--------------------------------------------------------------------------------
/Pending/Facebook Web/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Facebook (Web)
2 | meta.author: Matheus Lopes
3 | meta.description: Facebook Remote.
4 | meta.url: www.faceboo.com/matheuslps
5 |
--------------------------------------------------------------------------------
/Pending/Facebook Web/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | local win = libs.win;
3 | local keyboard = libs.keyboard;
4 | local tab_index = 0;
5 |
6 | --@help Focus Facebook application
7 | actions.switch = function()
8 | --if (OS_WINDOWS) then
9 | if (tab_index == 0) then
10 | local hwnd = win.window("firefox.exe");
11 | if (hwnd == 0) then
12 | actions.launch();
13 | end
14 | win.switchtowait("firefox.exe");
15 | elseif (tab_index == 1) then
16 | local hwnd = win.window("chrome.exe");
17 | if (hwnd == 0) then
18 | actions.launch();
19 | end
20 | win.switchtowait("chrome.exe");
21 | elseif (tab_index == 2) then
22 | local hwnd = win.window("opera.exe");
23 | if (hwnd == 0) then
24 | actions.launch();
25 | end
26 | win.switchtowait(hwnd);
27 | elseif (tab_index == 3) then
28 | local hwnd = win.window("safari.exe");
29 | if (hwnd == 0) then
30 | actions.launch();
31 | end
32 | win.switchtowait("safari.exe");
33 | end
34 | --end
35 | end
36 |
37 | actions.tab_index = function(i)
38 | tab_index = i;
39 | end
40 |
41 | --@help Launch Browser application
42 | actions.launch = function()
43 | os.open("http://www.facebook.com/");
44 | end
45 |
46 | --@help Next post
47 | actions.Next_Post = function()
48 | actions.switch();
49 | keyboard.stroke("j");
50 | end
51 |
52 | --@help Previous post
53 | actions.Prev_Post = function()
54 | actions.switch();
55 | keyboard.stroke("k");
56 | end
57 |
58 | --@help Like post
59 | actions.Like_Post = function()
60 | actions.switch();
61 | keyboard.stroke("l");
62 | end
63 |
64 | --@help New_Message
65 | actions.New_Message = function()
66 | actions.switch();
67 | if (tab_index == 0) then
68 | keyboard.stroke("menu","shift","m");
69 | else
70 | keyboard.stroke("menu","m");
71 | end
72 | end
73 |
74 | actions.Home_Page = function()
75 | actions.switch();
76 | if (tab_index == 0) then
77 | keyboard.stroke("menu","shift","1");
78 | else
79 | keyboard.stroke("menu","1");
80 | end
81 | end
82 |
83 | actions.Profile_Page = function()
84 | actions.switch();
85 | if (tab_index == 0) then
86 | keyboard.stroke("menu","shift","2");
87 | else
88 | keyboard.stroke("menu","shift","2");
89 | end
90 | end
91 |
92 | actions.Friend_Request = function()
93 | actions.switch();
94 | if (tab_index == 0) then
95 | keyboard.stroke("menu","shift","3");
96 | else
97 | keyboard.stroke("menu","3");
98 | end
99 | end
100 |
101 | actions.Messages = function()
102 | actions.switch();
103 | if (tab_index == 0) then
104 | keyboard.stroke("menu","shift","4");
105 | else
106 | keyboard.stroke("menu","4");
107 | end
108 | end
109 |
110 | actions.Note_Center = function()
111 | actions.switch();
112 | if (tab_index == 0) then
113 | keyboard.stroke("menu","shift","5");
114 | else
115 | keyboard.stroke("menu","5");
116 | end
117 | end
118 |
119 | actions.nav_escape = function ()
120 | keyboard.press("escape");
121 | end
122 |
123 | actions.nav_up = function ()
124 | keyboard.press("up");
125 | end
126 |
127 | actions.nav_back = function ()
128 | keyboard.press("back");
129 | end
130 |
131 | actions.nav_left = function ()
132 | keyboard.press("left");
133 | end
134 |
135 | actions.nav_enter = function ()
136 | keyboard.press("enter");
137 | end
138 |
139 | actions.nav_right = function ()
140 | keyboard.press("right");
141 | end
142 |
143 | actions.nav_tab = function ()
144 | keyboard.press("tab");
145 | end
146 |
147 | actions.nav_down = function ()
148 | keyboard.press("down");
149 | end
150 |
151 | actions.nav_menu = function ()
152 | keyboard.press("menu");
153 | end
154 |
--------------------------------------------------------------------------------
/Pending/README.md:
--------------------------------------------------------------------------------
1 | Pending / on-going development
--------------------------------------------------------------------------------
/Pending/Start/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Pending/Start/icon.png
--------------------------------------------------------------------------------
/Pending/Start/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Pending/Start/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Start (Pending)
2 | meta.author: Unified
3 | meta.description: Start Remote.
4 | meta.platform: windows
--------------------------------------------------------------------------------
/Pending/Start/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | --@help Focus Start application
3 | actions.switch = function()
4 |
5 | end
6 |
7 | --@help Launch Start application
8 | actions.launch = function()
9 |
10 | end
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Internal test remotes
--------------------------------------------------------------------------------
/Readme Test/README.md:
--------------------------------------------------------------------------------
1 | # Readme Test
2 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
3 |
4 | ## Features
5 | * Foo
6 | * Bar
7 | * Rofl
8 | * Stix
9 | * Hello
10 | * World
11 |
12 |
13 | ## HTML Image (Relative)
14 |
15 |
16 | ## Markdown Image (Relative)
17 | 
18 |
19 |
20 | ## HTML Image (Absolute)
21 |
22 |
23 | ## Markdown Image (Absolute)
24 | 
25 |
26 |
27 | ## HTML Image (Explicit Width)
28 |
29 |
30 |
31 | ## HTML Link (Relative)
32 | layout.xml
33 |
34 | ## Markdown Link (Relative)
35 | [layout.xml](layout.xml)
36 |
37 |
38 | ## HTML Link (Absolute)
39 | http://www.google.com
40 |
41 | ## Markdown Link (Absolute)
42 | [http://www.google.com](http://www.google.com)
43 |
44 |
45 | ## Support
46 | Developed and maintained by **Unified Remote**
47 | https://www.unifiedremote.com/help
48 |
--------------------------------------------------------------------------------
/Readme Test/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Readme Test/icon.png
--------------------------------------------------------------------------------
/Readme Test/icon_hires.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Readme Test/icon_hires.png
--------------------------------------------------------------------------------
/Readme Test/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Readme Test/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Readme Test
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Readme Test/remote.lua:
--------------------------------------------------------------------------------
1 | local script = require "script";
2 |
3 | events.focus = function ()
4 | libs.win.capture();
5 | end
6 |
--------------------------------------------------------------------------------
/Readme Test/screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Readme Test/screen.png
--------------------------------------------------------------------------------
/Remote/Callback Throw/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Callback Throw
2 | meta.author: Test
--------------------------------------------------------------------------------
/Remote/Callback Throw/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | events.create = function ()
3 | print("throwing soon...");
4 | libs.timer.timeout(function ()
5 | print("throwing...");
6 | os.throw("asdf asdf asdf");
7 | end, 1000);
8 | end
--------------------------------------------------------------------------------
/Remote/Date Time/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Remote/Date Time/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Date and Time
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Date Time/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | function update(s)
5 | libs.server.update("info", "text", s);
6 | end
7 |
8 | actions.epoch = function ()
9 | update(os.time());
10 | end
11 |
12 | actions.short = function ()
13 | update(os.date("%c"));
14 | end
15 |
16 | actions.long = function ()
17 | update(os.date("%A, %B %d, %I:%M:%S"));
18 | end
19 |
20 | actions.table = function ()
21 | update(libs.data.tojson(os.date("*t")));
22 | end
23 |
--------------------------------------------------------------------------------
/Remote/Delay/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Remote/Delay/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Delay
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Delay/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | -- Actions
5 | actions.sleep = function ()
6 | libs.task.sleep(1000);
7 | end
8 |
--------------------------------------------------------------------------------
/Remote/Documentation/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Documentation
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Documentation/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | --@help Do something with default
3 | --@param value
4 | actions.default = function (value)
5 |
6 | end
7 |
8 | --@help Do something with string
9 | --@param value:string
10 | actions.string = function (value)
11 |
12 | end
13 |
14 | --@help Do something with number
15 | --@param value:number
16 | actions.number = function (value)
17 |
18 | end
19 |
20 | --@help Do something with key
21 | --@param value:key
22 | actions.key = function (value)
23 |
24 | end
25 |
26 | --@help Do something with keys
27 | --@param value:keys
28 | actions.keys = function (...)
29 |
30 | end
31 |
32 | --@help Do something with button
33 | --@param value:button
34 | actions.button = function (value)
35 |
36 | end
37 |
38 | --@help Do something with keys
39 | --@param value:buttons
40 | actions.buttons = function (...)
41 |
42 | end
--------------------------------------------------------------------------------
/Remote/Empty Events/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Empty Functions
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Empty Events/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.create = function ()
5 |
6 | end
7 |
8 | events.focus = function ()
9 |
10 | end
11 |
12 | events.blur = function ()
13 |
14 | end
15 |
16 | events.destroy = function ()
17 |
18 | end
19 |
20 | events.preaction = function (name, extras)
21 |
22 | end
23 |
24 | events.action = function (name, extras)
25 |
26 | end
27 |
28 | events.postaction = function (name, extras)
29 |
30 | end
31 |
--------------------------------------------------------------------------------
/Remote/Events/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Remote/Events/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Events
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Events/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.create = function ()
5 | print("create");
6 | end
7 |
8 | events.focus = function ()
9 | print(" focus");
10 | end
11 |
12 | events.blur = function ()
13 | print(" blur");
14 | end
15 |
16 | events.destroy = function ()
17 | print("destroy");
18 | end
19 |
20 | events.preaction = function (name, extras)
21 | print(" pre-action: " .. name);
22 | if (name == "failpreaction") then
23 | return false;
24 | else
25 | return true;
26 | end
27 | end
28 |
29 | events.action = function (name, extras)
30 | print(" " .. name);
31 | end
32 |
33 | events.postaction = function (name, extras)
34 | print(" post-action: " .. name);
35 | end
36 |
37 | actions.defined = function ()
38 | print (" defined!");
39 | end
40 |
41 | actions.failpreaction = function ()
42 |
43 | end
44 |
--------------------------------------------------------------------------------
/Remote/Exception/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Remote/Exception/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Exception
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Exception/remote.lua:
--------------------------------------------------------------------------------
1 | actions.test = function ()
2 | libs.fs.copy("asdf asdfasdf", "lökasjdföl kajsödlfk");
3 | end
--------------------------------------------------------------------------------
/Remote/Helpers/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Remote/Helpers/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Helpers
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Helpers/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.focus = function ()
5 | layout.info = "aaaaaavvv";
6 | layout.info.text = "aaaaa";
7 |
8 | properties.foo = "bar"
9 | print(properties.foo);
10 | end
11 |
--------------------------------------------------------------------------------
/Remote/Helpers/settings.prop:
--------------------------------------------------------------------------------
1 | foo: bar
2 |
--------------------------------------------------------------------------------
/Remote/Icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Remote/Icon/icon.png
--------------------------------------------------------------------------------
/Remote/Icon/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Icon
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Icon/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
--------------------------------------------------------------------------------
/Remote/Long Running/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Remote/Long Running/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Long Running
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Long Running/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | actions.run = function ()
3 | print("begin");
4 | while (true) do
5 | os.sleep(500);
6 | end
7 |
8 | print("end");
9 | end
10 |
--------------------------------------------------------------------------------
/Remote/No Events/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Remote/No Events/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test No Events
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/No Events/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | actions.defined = function ()
5 | print (" defined!");
6 | end
7 |
--------------------------------------------------------------------------------
/Remote/Nothing/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Nil Functions
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Nothing/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 |
--------------------------------------------------------------------------------
/Remote/Order/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Remote/Order/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Order
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Order/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | events.create = function ()
5 | print("CREATE");
6 | end
7 |
8 | events.focus = function ()
9 | print("FOCUS");
10 | end
11 |
12 | actions.tabs = function (i)
13 | print("TABS");
14 | end
15 |
16 | actions.toggle = function (c)
17 | print("TOGGLE");
18 | end
19 |
--------------------------------------------------------------------------------
/Remote/Settings/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Remote/Settings/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Settings
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Settings/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | actions.get = function ()
3 | print(settings.time);
4 | layout.info.text = settings.time;
5 | end
6 |
7 | actions.set = function ()
8 | settings.time = libs.timer.time();
9 | end
10 |
--------------------------------------------------------------------------------
/Remote/Settings/settings.prop:
--------------------------------------------------------------------------------
1 | test: 08/14/13 15:01:13
2 | time: asdf
3 |
--------------------------------------------------------------------------------
/Remote/Test.Queues/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Remote/Test.Queues/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Queues
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Test.Queues/remote.lua:
--------------------------------------------------------------------------------
1 | events.preload = function ()
2 | print("preload")
3 | end
4 |
5 | events.create = function ()
6 | print("begin create")
7 | --libs.task.sleep(3000);
8 | print("end create")
9 | end
10 |
11 | events.focus = function ()
12 | print("begin focus")
13 | --libs.task.sleep(3000);
14 | print("end focus")
15 | end
16 |
17 | events.blur = function ()
18 | print("begin blur")
19 | libs.task.sleep(3000);
20 | print("end blur")
21 | end
22 |
23 | events.destroy = function ()
24 | print("begin destroy")
25 | libs.task.sleep(3000);
26 | print("end destroy")
27 | end
28 |
29 | actions.test = function ()
30 | print("begin test")
31 | libs.task.sleep(3000);
32 | print("end test")
33 | end
34 |
--------------------------------------------------------------------------------
/Remote/Threading/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Remote/Threading/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Threading
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Remote/Threading/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | -- Metadata
3 |
4 | local timer = libs.timer;
5 | local server = libs.server;
6 | local task = libs.task;
7 | local utf8 = libs.utf8;
8 | local l = libs.log;
9 | local tid = -1;
10 |
11 | events.create = function ()
12 | l.trace("create");
13 | end
14 |
15 | events.focus = function ()
16 | l.trace("focus");
17 | actions.start();
18 | end
19 |
20 | events.blur = function ()
21 | l.trace("blur");
22 | timer.cancel(tid);
23 | end
24 |
25 | events.destroy = function ()
26 | l.trace("destroy");
27 | end
28 |
29 | actions.start = function ()
30 | l.trace("start");
31 | tid = timer.interval(function ()
32 | server.update("info", "text", nil);
33 | end, 1000);
34 | end
35 |
36 |
37 |
38 | actions.stop = function ()
39 | l.trace("stop");
40 | timer.cancel(tid);
41 | end
42 |
43 | actions.run = function ()
44 | l.trace("run");
45 | libs.timer.timeout(function ()
46 | l.trace("timeout");
47 | libs.server.run("", "test");
48 | end, 100);
49 | l.trace("sleep begin")
50 | libs.task.sleep(3000);
51 | l.trace("sleep end")
52 | end
53 |
54 | actions.test = function ()
55 | l.trace("test!");
56 | end
57 |
--------------------------------------------------------------------------------
/Remote/Throw/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test Throw
2 | meta.author: Test
--------------------------------------------------------------------------------
/Remote/Throw/remote.lua:
--------------------------------------------------------------------------------
1 |
2 | events.create = function ()
3 | os.throw("asdf asdf asdf");
4 | end
--------------------------------------------------------------------------------
/Template/README.txt:
--------------------------------------------------------------------------------
1 | This a template for creating a new remote.
2 |
3 | meta.prop: contains basic information about the remote
4 | remote.lua: contains the Lua script implementation
5 | layout.xml: contains the XML based visual remote
6 |
7 | For more information:
8 |
9 | http://www.unifiedremote.com/3
--------------------------------------------------------------------------------
/Template/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Template/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Remote Name
2 | meta.author: Your Name
3 | meta.description: This is a template remote.
4 |
--------------------------------------------------------------------------------
/Template/remote.lua:
--------------------------------------------------------------------------------
1 | -----------------------------------------------------
2 | -- Define your variables here
3 | -----------------------------------------------------
4 |
5 | local tid = -1;
6 | local counter = 0;
7 |
8 | -----------------------------------------------------
9 | -- Implement your actions here, if needed:
10 | -----------------------------------------------------
11 |
12 | actions.foo = function ()
13 | layout.message.text = "foo";
14 | end
15 |
16 | actions.bar = function ()
17 | layout.message.text = "bar";
18 | end
19 |
20 | -----------------------------------------------------
21 | -- Implement event handlers here, if needed:
22 | -----------------------------------------------------
23 |
24 | function update ()
25 | layout.message.text = "tick " .. counter;
26 | counter = counter + 1;
27 | end
28 |
29 | events.focus = function ()
30 | counter = 0;
31 | tid = libs.timer.interval(update, 1000);
32 | end
33 |
34 | events.blur = function ()
35 | libs.timer.cancel(tid);
36 | end
--------------------------------------------------------------------------------
/Test/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Test/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Test
2 | meta.author: Test
3 |
--------------------------------------------------------------------------------
/Test/remote.lua:
--------------------------------------------------------------------------------
1 | local script = require "script";
2 |
3 | events.focus = function ()
4 | libs.win.capture();
5 | end
6 |
--------------------------------------------------------------------------------
/Volume rocker example/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Volume rocker example/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Volume Rocker Example
2 | meta.author: Unified
3 | meta.description: Example of how to use the volume rocker
4 | meta.platform: windows,osx,linux
5 |
--------------------------------------------------------------------------------
/Volume rocker example/remote.lua:
--------------------------------------------------------------------------------
1 | local keyboard = libs.keyboard;
2 | local tmr = libs.timer;
3 | local down = false;
4 | local up = false;
5 | --@help Up item
6 | actions.up = function()
7 | if(up == false) then
8 | up = true;
9 | tmr.timeout(sendup, 300);
10 | else
11 | up = false;
12 | keyboard.press("right");
13 | end
14 | end
15 |
16 | --@help Down button
17 | actions.down = function()
18 | if(down == false) then
19 | down = true;
20 | tmr.timeout(senddown, 300);
21 | else
22 | down = false;
23 | keyboard.press("left");
24 | end
25 | end
26 |
27 | function senddown()
28 | if(down) then
29 | down = false;
30 | keyboard.press("down");
31 | end
32 | end
33 |
34 | function sendup()
35 | if(up) then
36 | up = false;
37 | keyboard.press("up");
38 | end
39 | end
--------------------------------------------------------------------------------
/Windows Media Center (with recording)/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/unifiedremote/Test-Remotes/3bfca287852bd71626aea45c108ad6035faf13be/Windows Media Center (with recording)/icon.png
--------------------------------------------------------------------------------
/Windows Media Center (with recording)/layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Windows Media Center (with recording)/meta.prop:
--------------------------------------------------------------------------------
1 | meta.name: Windows Media Center
2 | meta.author: Unified
3 | meta.description: Windows Media Center remote control.
4 | meta.platform: windows
5 |
--------------------------------------------------------------------------------
/Windows Media Center (with recording)/remote.lua:
--------------------------------------------------------------------------------
1 | local keyboard = libs.keyboard;
2 |
3 | events.detect = function ()
4 | return libs.fs.exists("C:\\Windows\\ehome");
5 | end
6 |
7 | --@help Launch WMC application
8 | actions.launch = function()
9 | os.start("%windir%\\ehome\\ehshell.exe");
10 | end
11 |
12 | --@help Lower volume
13 | actions.volume_down = function()
14 | keyboard.stroke("F9");
15 | end
16 |
17 | --@help Mute volume
18 | actions.volume_mute = function()
19 | keyboard.stroke("F8");
20 | end
21 |
22 | --@help Raise volume
23 | actions.volume_up = function()
24 | keyboard.stroke("F10");
25 | end
26 |
27 | --@help Pause playback
28 | actions.pause = function()
29 | keyboard.stroke("control", "P");
30 | end
31 |
32 | --@help Navigate up
33 | actions.up = function()
34 | keyboard.stroke("up");
35 | end
36 |
37 | --@help Start playback
38 | actions.play = function()
39 | keyboard.stroke("control", "shift", "P");
40 | end
41 |
42 | --@help Navigate left
43 | actions.left = function()
44 | keyboard.stroke("left");
45 | end
46 |
47 | --@help Select current item
48 | actions.select = function()
49 | keyboard.stroke("return");
50 | end
51 |
52 | --@help Navigate right
53 | actions.right = function()
54 | keyboard.stroke("right");
55 | end
56 |
57 | --@help Stop playback
58 | actions.stop = function()
59 | keyboard.stroke("control", "shift", "S");
60 | end
61 |
62 | --@help Navigate down
63 | actions.down = function()
64 | keyboard.stroke("down");
65 | end
66 |
67 | --@help Navigate back
68 | actions.back = function()
69 | keyboard.stroke("back");
70 | end
71 |
72 | --@help Previous item
73 | actions.previous = function()
74 | keyboard.stroke("control", "B");
75 | end
76 |
77 | --@help Go home
78 | actions.windows = function()
79 | keyboard.stroke("Lwin", "Lmenu", "return");
80 | end
81 |
82 | --@help Next item
83 | actions.next = function()
84 | keyboard.stroke("control", "F");
85 | end
86 |
87 | --@help Record button
88 | actions.record = function()
89 | keyboard.stroke("control", "R");
90 | end
--------------------------------------------------------------------------------