Here is the macros I use. I have adapted it, because it is used under Linux, but I think it must work. I have clean the source of functions just needed for Linux.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage)
# ---------- JavaScript helper button -----------------------------------------
#
# Dependencies : none
# Resources : -
# Preferences : none
#
# ---------------------------------------------------------------------------------------------------
# Public variable
$_JavaScriptHelper_Tooltip=_("Reload the page with JavaScript or disable JavaScript");
# --------------------------------------------------------------------------------------------------
_ReloadPageWithJavaScript{
menuchecked=(getpref(BOOL,"javascript.enabled")==false);
macroinfo=$_JsHelper_Tooltip;
togglepref(BOOL,"javascript.enabled");
&_pref_SyncButtons; &_JavaScriptHelper_SyncButtons;
$URLBAR=$URL;
getpref(BOOL,"javascript.enabled")?id(ID_NAV_GO):0;
}
_Auto_disable_Javascript{
macroinfo=_("Disable Javascript automatically or not during OnInit() and OnQuit()");
menuchecked=(getpref(BOOL,"extensions.jshelper.auto.disableJS"));
togglepref(BOOL,"extensions.jshelper.auto.disableJS");
getpref(BOOL,"extensions.jshelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
&_pref_SyncButtons;&_JavaScriptHelper_SyncButtons;
}
_JavaScriptHelper_SyncButtons{
$__c="CheckButton"; $__m=",macros(_ReloadPageWithJavaScript";$_jspref="javascript.enabled";
$__toolbar="JavaScriptHelper";
pluginmsg(toolbars,$__c,$__toolbar.$__m."),".(getpref(BOOL,$_jspref)?1:0));
}
# ---------------------------------------------------------------------------------------------------
_JavaScriptHelper_BuildMenu{
setmenu("_Config_General",separator,"blabla");
setmenu("_Config_General",popup,"&JavaScript Helper",0);
setmenu("JavaScript Helper",macro,"Reload page with &JavaScript",_ReloadPageWithJavaScript);
setmenu("JavaScript Helper",separator,"baba");
setmenu("JavaScript Helper",macro,"&Automatically disabling JavaScript",_Auto_disable_Javascript);
}
_JavaScriptHelper_OnInit{
getpref(BOOL,"extensions.jshelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
}
_TuxHelper_OnQuit{
getpref(BOOL,"extensions.jshelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
}
_JavaScriptHelper_BuildToolbar{
$Large=(index(readfile(getfolder("SkinFolder")."\\..\\skins.ini"),getpref(STRING,"kmeleon.general.skinsCurrent")."=1")>-1);
$Large ? pluginmsg(toolbars,"AddToolbar","JavaScriptHelper,24,24",""):pluginmsg(toolbars,"AddToolbar","JavaScriptHelper,16,16","");
$Large ? pluginmsg(toolbars,"AddButton","JavaScriptHelper,JavaScript_Helper,macros(_ReloadPageWithJavaScript),Reload page with &JavaScript,".$_JavaScriptHelper_Tooltip.",24,24,"."jsHelper_large.bmp[2],"."jsHelper_large.bmp[1]",""):0;
$Large ? 0:pluginmsg(toolbars,"AddButton","JavaScriptHelper,JavaScript_Helper,macros(_ReloadPageWithJavaScript),Reload page with &JavaScript,".$_JavaScriptHelper_Tooltip.",16,16,"."jsHelper.bmp[2],"."jsHelper.bmp[1]","");
}
# ---------------------------------------------------------------------------------------------------
$OnInit=$OnInit."_JavaScriptHelper_BuildMenu;_JavaScriptHelper_OnInit;";
$OnSetup=$OnSetup."_JavaScriptHelper_BuildToolbar;";
$OnQuit=$OnQuit."_JavaScriptHelper_OnQuit;";
# ---------------------------------------------------------------------------------------------------
$macroModules=$macroModules."JavaScriptHelper;";
It's in fact a macrofile named TuxHelper, which includes other functions fon Linux. I give the source too for fred or other Linux users.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage)
# ---------- Tux needed functions for some special reason -----------------------------------------
#
# Dependencies : none
# Resources : -
# Preferences : none
#
# ---------------------------------------------------------------------------------------------------
# Public variable
$tux=substr(readfile("Z:\\etc\\group"),0,1);
$_TuxHelper_Tooltip=_("Reload the page with JavaScript or disable JavaScript");
# Keep various Linux OS info to make K-Meleon Linux userString
# As i haven't been succefull when trying to launch uname from here and keeping infos, you'll must to update
# the values here
$_uname_s="Linux";
$_uname_m="686";
# same remark for gecko version and date
$_gecko_v="1.8.1.21";
$_gecko_d="20090331";
# Continue here without problem, except
$_tuxvers=readfile("Z:\\boot\\grub\\menu.lst");$_tuxvers=substr($_tuxvers,length($_tuxvers)-400);
$_tuxvers=substr($_tuxvers,index($_tuxvers,"title")+7);
$_tuxvers=sub(" ","/",substr($_tuxvers,0,index($_tuxvers,",")));
# Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.21) Gecko/20090331 Ubuntu/8.10 (Intrepid) K-Meleon/1.5.3
$_tuxString="Mozilla/5.0 (X11; ".getpref(STRING,"general.useragent.security")."; ".$_uname_s." ".$_uname_m."; ".getpref(STRING,"general.useragent.locale")."; rv:".$_gecko_v.") Gecko/".$_gecko_d." ".$_tuxvers." ".getpref(STRING,"general.useragent.vendor")."/".getpref(STRING,"general.useragent.vendorSub");
$_rg=1;$_string="";
# ---------------------------------------------------------------------------------------------------
Win2TuxConvert{
$_err=0;$_drive="";
substr($_URL,0,8)=="resource"?$_URL="file:///".getfolder(RootFolder).substr($_URL,11):0;
$_local=$tux.(substr($_URL,0,8)=="file:///"?"1":"");
length($_local)==2?$_URL=substr($_URL,8):0;
length($_local)==2?$_drive=substr($_URL,0,2):0;
length($_local)==2?(substr($_drive,0,1)=="Z"?$_drive="":0):0;
substr($_drive,1,1)==":"?$_drive=substr(getpref(STRING,"extensions.tuxhelper.drive.".substr($_drive,0,1),0,2)):0;
length($_local)==2?(length($_drive)>2?$_URL=$_drive.substr($_URL,2):0):0;
$_URL=gsub("\\","/","file://".$_URL);
$_URL=gsub(" ","%20",$_URL);
}
# ---------------------------------------------------------------------------------------------------
OpenMailto{
menugrayed=substr($LinkURL,0,7)!="mailto:";
macroinfo=_("Open the current mailto link with mail client");
$tux==""?0:exec(getpref(STRING,"kmeleon.plugins.macros.mail.mailClient")." ".$LinkURL);
}
# ---------------------------------------------------------------------------------------------------
_Km_wineReg{
menuchecked=(readreg(HKCR,".kmm\\Content Type")!="");
macroinfo=_("Register file types to open css, kmm, and kml files");
$tux!=""?exec(getfolder(RootFolder)."\\tools\\Km_wineReg.exe"):0;
}
_Km_Linux{
menuchecked=(getpref(STRING,"general.useragent.override")==$_tuxString);
$_rg=1;$_string="";
while (getpref(STRING,"kmeleon.privacy.useragent".$_rg.".name")!="K-Meleon Linux") &_UserStringWhile;
$_string==""?0:&_TuxUserStrings;
setpref(STRING,"general.useragent.override",$_tuxString);
#&_UserAgent_SyncMenu;&_UserAgent;
}
_UserStringWhile{
getpref(STRING,"kmeleon.privacy.useragent".$_rg.".name")==""?$_string="K-Meleon Linux":0;
getpref(STRING,"kmeleon.privacy.useragent".$_rg.".name")==""?setpref(STRING,"kmeleon.privacy.useragent".$_rg.".name","K-Meleon Linux"):0;
$_string==""?$_rg=$_rg+1:0;
}
_TuxUserStrings{
setpref(STRING,"kmeleon.privacy.useragent".$_rg.".string",$_tuxString);
$_rg=$_rg+1;
setpref(STRING,"kmeleon.privacy.useragent".$_rg.".name","Opera 9.23");
setpref(STRING,"kmeleon.privacy.useragent".$_rg.".string","Opera/9.23 (Windows NT 5.1; U; en)");
alert(_("Due to macro limitations, it's not possible to upgrade UserString menu")."\n\n"._("UserStrings have been set, but you need to restart K-Meleon")."\n"._("to see the modifications"),_("Warning"));
}
_MailtoError{
menuchecked=(getpref(BOOL,"network.protocol-handler.external.mailto")==true);
macroinfo=(getpref(BOOL,"network.protocol-handler.external.mailto")==true?_("Show the mailto error message"):_("Hide the mailto error message"));
getpref(BOOL,"network.protocol-handler.external.mailto")==true?delpref("network.protocol-handler.expose.mailto"):setpref(BOOL,"network.protocol-handler.expose.mailto",false);
getpref(BOOL,"network.protocol-handler.external.mailto")==true?delpref("network.protocol-handler.warn-external.mailto"):setpref(BOOL,"network.protocol-handler.warn-external.mailto",false);
getpref(BOOL,"network.protocol-handler.external.mailto")==true?delpref("network.protocol-handler.external.mailto"):setpref(BOOL,"network.protocol-handler.external.mailto",true);
}
_ReloadPageWithJavaScript{
menuchecked=(getpref(BOOL,"javascript.enabled")==false);
macroinfo=$_TuxHelper_Tooltip;
togglepref(BOOL,"javascript.enabled");
&_pref_SyncButtons; &_TuxHelper_SyncButtons;
$URLBAR=$URL;
getpref(BOOL,"javascript.enabled")?id(ID_NAV_GO):0;
}
_Auto_disable_Javascript{
macroinfo=_("Disable Javascript automatically or not during OnInit() and OnQuit()");
menuchecked=(getpref(BOOL,"extensions.tuxhelper.auto.disableJS"));
togglepref(BOOL,"extensions.tuxhelper.auto.disableJS");
getpref(BOOL,"extensions.tuxhelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
&_pref_SyncButtons;&_TuxHelper_SyncButtons;
}
_apt_OpenLink{
macroinfo=_("Install a Debian/Ubuntu software package");
menugrayed=(substr($LinkURL,0,6)!="apt://");
exec("z:\\usr\\bin\\gnome-terminal -x sudo apturl ".$LinkURL);
}
_TuxHelper_SyncButtons{
$__c="CheckButton"; $__m=",macros(_ReloadPageWithJavaScript";$_jspref="javascript.enabled";
$__toolbar="TuxHelper";
pluginmsg(toolbars,$__c,$__toolbar.$__m."),".(getpref(BOOL,$_jspref)?1:0));
}
# ---------------------------------------------------------------------------------------------------
_TuxHelper_BuildMenu{
setmenu("_Config_General",separator,"blabla");
setmenu("_Config_General",popup,"Tu&x Helper",0);
setmenu("Tu&x Helper",macro,"Reload page with &JavaScript",_ReloadPageWithJavaScript);
setmenu("Tu&x Helper",separator,"baba");
setmenu("Tu&x Helper",macro,"&Automatically disabling JavaScript",_Auto_disable_Javascript);
setmenu("Tu&x Helper",macro,"&Registring Km extensions",_Km_wineReg);
setmenu("Tu&x Helper",separator,"bibi");
setmenu("Tu&x Helper",macro,"Hide the mailto error message",_MailtoError);
setmenu("Tu&x Helper",separator,"bobo");
setmenu("Tu&x Helper",macro,"&Set userString to 'K-Meleon under Linux'",_Km_Linux);
# Mailto for Linux & Debian/Ubuntu package
setmenu(LinkSave,separator,"begin");
setmenu(LinkSave,macro,"Open Mailto Lin&k...",OpenMailto);
setmenu(LinkSave,macro,"&Install a Debian/Ubuntu software package",_apt_OpenLink);
setmenu(LinkSave,separator,"end");
}
_TuxHelper_OnInit{
setpref(BOOL,"kmeleon.plugins.macros.modules.ie.load",false);
getpref(BOOL,"extensions.tuxhelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
getpref(STRING,"extensions.tuxhelper.drive.C")==""?$_message1=_("The path of the pseudo discs must to be declared in prefs.")."\n"._("For example, for drive C :")."\n\n"._("preftype = [string]")."\n"._("prefname = [extensions.tuxhelper.drive.C] (warning, C is upcased)")."\n"._("prefvalue = [/home/<user>/.wine/disc_c] (where <user> is obviously the linux username)")."\n\n":0;
getpref(STRING,"extensions.tuxhelper.drive.C")==""?$_message2=_("A sample pref has been created to help you to set this pref.")."\n\n"._("You must add as prefs as you use pseudo drives (except Z.")."\n\n":0;
getpref(STRING,"extensions.tuxhelper.drive.C")==""?$_message3=_("To set these prefs : menu Edit > Config > Browser Configuration")."\n"._("Enter then tuxhelper in the search bar to restrict the display and to see the sample, right-click then to create prefs.")."\n\n"._("Once, the prefs are set, the message won't be displayed again.")."\n\n"._("You can open Wine Setup (Drives Tab) to see the drives and path.")."\n"._("Warning, the C disk path must be like the sample pref, not the one in Drives tab!!!"):0;
getpref(STRING,"extensions.tuxhelper.drive.C")==""?alert($_message1.$_message2.$_message3,_("Warning"),EXCLAIM):0;
getpref(STRING,"extensions.tuxhelper.drive.C")==""?setpref(STRING,"extensions.tuxhelper.drive.<letter>","/home/<user>/.wine/disc_c"):0;
}
_TuxHelper_OnQuit{
setpref(BOOL,"kmeleon.plugins.macros.modules.ie.load",false);
getpref(BOOL,"extensions.tuxhelper.auto.disableJS")?setpref(BOOL,"javascript.enabled",false):0;
getpref(STRING,"extensions.tuxhelper.drive.C")!=""?(getpref(STRING,"extensions.tuxhelper.drive.<letter>")!=""?delpref("extensions.tuxhelper.drive.<letter>"):0):0;
}
_TuxHelper_BuildToolbar{
$Large=(index(readfile(getfolder("SkinFolder")."\\..\\skins.ini"),getpref(STRING,"kmeleon.general.skinsCurrent")."=1")>-1);
$Large ? pluginmsg(toolbars,"AddToolbar","TuxHelper,24,24",""):pluginmsg(toolbars,"AddToolbar","TuxHelper,16,16","");
$Large ? pluginmsg(toolbars,"AddButton","TuxHelper,Tux_Helper,macros(_ReloadPageWithJavaScript),Reload page with &JavaScript,".$_TuxHelper_Tooltip.",24,24,"."tuxhelper_large.bmp[2],"."tuxhelper_large.bmp[1]",""):0;
$Large ? 0:pluginmsg(toolbars,"AddButton","TuxHelper,Tux_Helper,macros(_ReloadPageWithJavaScript),Reload page with &JavaScript,".$_TuxHelper_Tooltip.",16,16,"."tuxhelper.bmp[2],"."tuxhelper.bmp[1]","");
}
# ---------------------------------------------------------------------------------------------------
$OnInit=$OnInit."_TuxHelper_BuildMenu;_TuxHelper_OnInit;";
$OnSetup=$OnSetup."_TuxHelper_BuildToolbar;";
$OnQuit=$OnQuit."_TuxHelper_OnQuit;";
# ---------------------------------------------------------------------------------------------------
$macroModules=$macroModules."TuxHelper;";
I hope having correctly simplificate the macro files, but I haven't test it.
A+
Mozilla/5.0 (x11; U; Linux x86_64; fr-FR; rv:38.0) Gecko/20100101 Ubuntu/12.04 K-Meleon/76.0
Web:
http://jujuland.pagesperso-orange.fr/
Mail : alain [dot] aupeix [at] wanadoo [dot] fr
Ubuntu 12.04 - Gramps 3.4.9 - Harbour 3.2.0 - Hwgui 2.20-3 - K-Meleon 76.0 rc