You may find some predefined configuration files in cfg-data/Server-mode and cfg-data/Bemused-emulation directories. After investigation of these configuration files You became more familiar with its format.
Comments
Line starting with a % considered as a comment line.
%This is comment
Long command can be splitted into the several lines. You have to put backslash (\) as the last character to continue a command to the next line.
1=Exec(echo "this is first line");\ Exec(echo "this is second line");
AutoRepeat=false
Auto repeat feature (as on PC keyboard - about 10 events per second). Usefull for mouse emulation, for example. Default value is false.
Baudrate=19200
Baudrate to use; default value is 19200. Used mainly in AT mode.
Device=bluetooth:19
Connect string. Default value is bluetooth:19.
If anyRemote works as server correct value for Device could be:
Log=true|false|debug
Print or not to print logging info to the file $HOME/.anyRemote/anyremote.log, default value is false. Use Log=debug for verbose logging.
By default all logging informationin will be stored in $HOME/.anyRemote/anyremote.log file. This could be altered by setting AR_TMPDIR environment variable. If AR_TMPDIR environment variable is set then logging information will be printed to ${AR_TMPDIR}/anyremote.log.${USER}
Screen=true
Send or don't send any commands (Set(status,...), Set(title,...), etc.) to the phone. Default value is false, so You must set it to true if plans to use anyRemote in Server mode.
GuiAppName="application name"
GuiAppBinary="name of executable"
GuiAppRun="command do determine is application running or not; must returns OK or NOK"
GuiAppIcon="icon name"
GuiAppType=Application|Custom|Example
These parameters are used by GUI frontends only.
GuiAppName=Amarok GuiAppBinary=amarok GuiAppRun=echo 'A=`dcop | grep amarok`; if [ "x$A" == "x" ]; then echo NOK; else echo OK; fi' | bash -f -s GuiAppIcon=amarok.png GuiAppType=Application
Format:
Key_Code=New_alias
1=One 49=Oneand then use "One" in [Keys] section instead of "1" or "49":
[Keys] One=Exec(echo "Hello world!"); ...
A short example:
[Keys] (Init)=Exec(kdialog --msgbox "Initialized"); (Connect)=Exec(kdialog --msgbox "Connected") (Disconnect)=Exec(kdialog --msgbox "Disconnected") 1=Exec(kdialog --msgbox 1) 2=Exec(kdialog --msgbox 2) 3=Exec(kdialog --msgbox 3) 4=Exec(kdialog --msgbox 4) 5=Exec(kdialog --msgbox 5) [End]
Format:
Key_Codes=Command1;Command2;Command3;....
Where CommandX could be:
Exec() command
1=Exec(kdialog --msgbox 1) 2=Exec(kdialog --msgbox 2)
It is possible to define multi-key commands
3 1=Exec(kdialog --msgbox 3_1) 3 2=Exec(kdialog --msgbox 3_2) 3 3 1=Exec(kdialog --msgbox 3_3_1)
It is not good idea to define:
3 3=Exec(kdialog --msgbox 3_3) 3 3 1=Exec(kdialog --msgbox 3_3_1)
simultaneously, since only one command will works (which one - depends on search order).
It is possible to group keymappings in so-called "mode" to set more than one command to the key:
1=Exec(kdialog --msgbox 1) 2=Exec(kdialog --msgbox 2) [Mode]=1 1=Exec(kdialog --msgbox 1_in_Mode_1) 2=Exec(kdialog --msgbox 2_in_Mode_1) [ModeEnd] [Mode]=2 1=Exec(kdialog --msgbox 1_in_Mode_2) 2=Exec(kdialog --msgbox 2_in_Mode_2) [ModeEnd]
If current mode is not default mode (see SetMode() command), then firstly key will be searched in current mode and if not found then it will be searched in default mode. As a result it needs to use (EnterMode) and (ExitMode) "events" very carefully in default mode.
It is possible to write quite complex commands inside Exec(), for example:
1=Exec(echo 'D=`dcop | grep digikam`; if [ "x$D" == "x" ]; then digikam& else dcop $D MainApplication-Interface quit;' | bash -f -s)
Macro() command
This command used to create new keymapping:
1=Macro(Macro1) Macro1=Exec(kdialog --msgbox 1);Exec(kdialog --msgbox 2)
Macro() command can contain condition:
1=Macro(Macro2, if [ -f /tmp/file_name ]; then true; else false; fi; echo $?) Macro2=Exec(kdialog --msgbox "Condition is OK")
Conditional Macro() will be execute only if a result of execution of command is equal to string "0".
Note: In shells result code of command execution stored in $? environment variable.
Set()
These commands used to control and customize GUI of Java client. See detailed description here.
It is possible to change: |
![]() |
![]() |
Format: ExecAndSet(tag,command)
This command similar to the Set(), but uses the output of command specified as a string to set GUI elements of Java client specified in tag field. See detailed description here.
5=ExecAndSet(title,dcop amarok player nowPlaying); 6=ExecAndSet(status,date)Timer()
Format: Timer(key, timeout, maxTimes) or
Timer(key, cancel|pause|continue)
This command sets/removes a timer for the key specified. A command sequence, associated with this key will be executed periodically.
For example, the following commands run 'dcop amarok player nowPlaying' command 2 times with timeout equal to 5 sec and set result to the title field of Java client:
7=Timer(TimerCmd, 5, 2) TimerCmd=ExecAndSet(title, dcop amarok player nowPlaying)
The following command run 'date' command every 10 sec and set result to the status field of Java client:
8=Timer(Timer2, 10, 0) Timer2=ExecAndSet(status, date)
It is impossible to have two active timer commands with the same key.
To delete existing timer use the following command:
9=Timer(TimerName,cancel)
Also, see note about data caching.
Load() command
This command used to load commands from file and execute them:
1=Load(file_name.cmds)
Include() command
This command used to include definitions from external configuration file:
1=Include(xmms.cfg))
Only [Keys], [Aliases] and [Alarms] sections will be loaded (Parameters section will not be loaded).
Definitions from included file will not rewrite existing definitions if any.
Send()
Format: Send(string, string_value)
or Send(byte, byte_value1, byte_value2,...)
Send to the Java client specified string or sequence of bytes. This command is used in Bemused server emulation.
1=Send(string, simple_string)
byte_valueX is string representation of 1 - 255 values. Send(byte, ...) command sends to the Java client specified bytes of data, one by one. Mainly this command is used to Bemused server emulation.
2=Send(bytes,35,42,0)
ExecAndSend()
Format: ExecAndSend(tag,command)
This command similar to the Send(tag, ...), but uses the output of command specified as a string to send. So, it is possible to execute dynamically created command. This command is used in Bemused server emulation.
3=ExecAndSend(string,date) 4=Exec(echo "Set(title,dynamic title)">/tmp/command.txt);ExecAndSend(string,cat /tmp/command.txt)Get()
Format: Get(screeen_size|cover_size|model) or
Get(is_exists,16|32,_icon_name_)
This command used to retrieve from phone some information.
3=Get(screeen_size) 4=Get(model) 5=Get(is_exists,16,next) 6=Get(cover_size)Get(screeen_size) used to get screen size of cell phone. As a response to this command two replies will be send: SizeX(width,) and SizeY(height,). SizeX(width,) reply will be the first one.
Get(model) used to get "microedition.platform" property of Java client. For many phones this property contains manufacturer and model number (like "SonyEricssonK750i/R1CA021" for SE-K750). As a response to this command Model(,_string_) reply will be send.
Get(is_exists,...) used to determine was icon with given name and size uploaded to phone or not. As a response to this command IconExists(_icon_name_,) or IconNotExists(_icon_name_,) reply will be send.
Get(cover_size) used to determine maximalsize of cover image which can be shown by Set(cover, ...) command. As a response to this command one reply will be send: CoverSize(_size_,)
Make()Format: Make(flush|disconnect|mode|remote|var[,....])
This command used control local state of anyRemote.
0=Make(flush) 1=Make(mode,mode_2) 2=Make(remote,on) 3=Make(var,my_var,date)See detailed description here. Exit
Exit command used to exit from application.
#=Exit;
SetMode()
Change current keymapping group (do not mix this with AT/Server mode !).
*=SetMode(xmms) 1=Exec(kdialog --msgbox "1 is pressed") [Mode]=xmms 1=Exec(xmmsctrl play) [ModeEnd]Alse see description of (EnterMode) and (ExitMode) event handlers below.
(Init) event will be fired when anyRemote is initialized:
(Init)=Exec(kdialog --msgbox "Initialized")
(Exit) event will be fired when anyRemote is exiting:
(Exit)=Exec(rm -f /tmp/tmp.log)
(Connect) event will be fired when connection established:
(Connect)=Exec(kdialog --msgbox "Connected now")
(Disconnect) event will be fired when connection is lost:
(Disconnect)=Exec(kdialog --msgbox Disconnected)
Auto-lock example:
(Connect)=Exec(killall kdesktop_lock) (Disconnect)=Exec(kdesktop_lock --forcelock)
Incoming call handling. Possibly works for some of JSR-82 capabled phones. But it works at least for SE-K750 and Motorola RIZR Z3.
(InCall)=Exec(kdialog --msgbox "Incoming call")
End of call handling. Not sure it will works for all JSR-82 capabled phones. But it works at least for SE-K750 and Motorola RIZR Z3.
(EndCall)=Exec(kdialog --msgbox "Call ends")
Auto-mute example (amixer utility should be installed):
(InCall)=Exec(amixer sset Master,0 mute);Make(remote,off) (EndCall)=Make(remote,on);Exec(amixer sset Master,0 unmute)
If mode is changed by SetMode() then (ExitMode) event for current keymapping group and (EnterMode) event for the new keymapping group will be fired:
*=SetMode(XMMS) (ExitMode)=Exec(kdialog --msgbox "Exiting from current mode") [Mode]=XMMS % Do some initialization steps (EnterMode)=Exec(kdialog --msgbox "Enter to XMMS mode");Exec(xmms) % Do some cleanup steps (ExitMode)=Exec(kdialog --msgbox "Exiting from XMMS mode");Exec(killall xmms) [ModeEnd]
In Exec(), ExecAndSet(), Make(var,...), Load(), Include() commands is it possible to use several predefined internal "variables".
Current mode be substituted instead of $(Mode):
3=SetMode(xmms);Exec(kdialog --msgbox "New mode is $(Mode)")
Directory in which resides used configuration file will be substituted instead of $(CfgDir):
3=ExecAndSet(list,replace,Cfg Files,ls -1 $(CfgDir))
There are $(Param) and $(Index) variables defined in handling command issued from Java Client menus. Use $$ inside braces to specify parametrized commands.
Choose($$)=Exec(xmmsctrl track $(Index));Exec(kdialog --msgbox "Selected track is $(Param)")
In addition to the predifined internal variables it is possible to define custom internal variables with
Make(var,....) syntax.
Format:
Alarm_file=command1;command2;...
When file Alarm_file will be created, then command1, command2 ... will be executed.
/tmp/alarm1=Set(status,"xmms was stopped")