I have not read through all the comments but wanted to mention that
killall-q created a Lua script to work with in-the-skin notes. I have used it in several notes and to-do skins, and it works. Several other authors have used the exact script or a slightly modified version to create desktop notes with 'tabs'.
Here is a link to an example skin:
Notes++ by RaziEil
That package uses the original Lua code 'Notes.ini' by
killall-q contained here:
Notes.lua
Code: Select all
function Initialize()
if SKIN:GetVariable('Item16') ~= "" then
SKIN:Bang('!SetOption', 'Input', 'MouseOverAction', '[!SetOption Input Text "You List is Full!"][!SetOption Input SolidColor "160,0,0"][!UpdateMeter Input][!Redraw]')
SKIN:Bang('!SetOption', 'Input', 'MouseLeaveAction', '[!SetOption Input Text "#*Prompt*#"][!SetOption Input SolidColor "0,0,0,1"][!UpdateMeter Input][!Redraw]')
SKIN:Bang('!SetOption Input LeftMouseUpAction ""')
end
end
function AddItem()
local input, crlf = SKIN:GetVariable('Input'):gsub("\r\n", "#*CRLF*#")
if input ~= "" then
for i = 1, 15 do
SKIN:Bang('!WriteKeyValue Variables Item'..(i+1)..' """'..SKIN:GetVariable('Item'..i):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables State'..(i+1)..' [#State'..i..'] "#CURRENTPATH#Notes.ini"]')
end
SKIN:Bang('!WriteKeyValue Variables Item1 """'..input..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables State1 None "#CURRENTPATH#Notes.ini"][!Refresh]')
SKIN:Bang('[!WriteKeyValue Variables ItemLines (Clamp(#ItemLines#+1,1,17)) "#CURRENTPATH#Notes.ini"][!Refresh]')
end
end
function EditItemA(n)
SKIN:Bang('!SetVariable ItemOrig """'..SKIN:GetVariable('Item'..n):gsub("\n", "\r\n")..'"""')
SKIN:Bang('!CommandMeasure mInput "ExecuteBatch 2"')
end
function EditItemB(n)
local input = SKIN:GetVariable('Input'):gsub("\r\n", "#*CRLF*#")
if input ~= "" then
SKIN:Bang('[!WriteKeyValue Variables Item'..n..' """'..input..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
else
DeleteItem(n)
end
end
function ClipItem(n)
SKIN:Bang('!SetClip "'..SKIN:GetVariable('Item'..n):gsub("\n", "\r\n")..'"')
end
function StrikeItem(n)
SKIN:Bang('[!WriteKeyValue Variables State'..n..' Strikethrough "#CURRENTPATH#Notes.ini"][!Refresh]')
end
function UnStrikeItem(n)
SKIN:Bang('[!WriteKeyValue Variables State'..n..' None "#CURRENTPATH#Notes.ini"][!Refresh]')
end
function DeleteItem(n)
for i = n, 15 do
SKIN:Bang('!WriteKeyValue Variables Item'..i..' """'..SKIN:GetVariable('Item'..(i+1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables State'..i..' [#State'..(i+1)..'] "#CURRENTPATH#Notes.ini"]')
end
SKIN:Bang('[!WriteKeyValue Variables Item16 "" "#CURRENTPATH#Notes.txt"][!Refresh]')
SKIN:Bang('[!WriteKeyValue Variables ItemLines (Clamp(#ItemLines#-1,1,17)) "#CURRENTPATH#Notes.ini"][!Refresh]')
end
function SwapItemUp(n)
if n ~= "1" then
SKIN:Bang('!WriteKeyValue Variables Item'..n..' """'..SKIN:GetVariable('Item'..(n-1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables State'..n..' [#State'..(n-1)..'] "#CURRENTPATH#Notes.ini"]')
SKIN:Bang('[!WriteKeyValue Variables State'..(n-1)..' [#State'..n..'] "#CURRENTPATH#Notes.ini"]')
SKIN:Bang('[!WriteKeyValue Variables Item'..(n-1)..' """'..SKIN:GetVariable('Item'..n):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
end
end
function SwapItemDown(n)
if n ~= "16" and SKIN:GetVariable('Item'..(n+1)) ~= "" then
SKIN:Bang('!WriteKeyValue Variables Item'..n..' """'..SKIN:GetVariable('Item'..(n+1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables State'..n..' [#State'..(n+1)..'] "#CURRENTPATH#Notes.ini"]')
SKIN:Bang('[!WriteKeyValue Variables State'..(n+1)..' [#State'..n..'] "#CURRENTPATH#Notes.ini"]')
SKIN:Bang('[!WriteKeyValue Variables Item'..(n+1)..' """'..SKIN:GetVariable('Item'..n):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
end
end
Here is a 'Tab' version called
NoteBoardX created by AxxRael (can't find the link anymore) but here is the LUa code and skin code.
Notes.lua
Code: Select all
function Initialize()
if SKIN:GetVariable('Tab5') ~= "" then
SKIN:Bang('!SetOption', 'Input', 'MouseOverAction', '[!SetOption Input Text "Too many notes."][!SetOption Input SolidColor "160,0,0"][!UpdateMeter Input][!Redraw]')
SKIN:Bang('!SetOption', 'Input', 'MouseLeaveAction', '[!SetOption Input Text "Add note."][!SetOption Input SolidColor "#BGColor#"][!UpdateMeter Input][!Redraw]')
SKIN:Bang('!SetOption Input LeftMouseUpAction ""')
end
end
function AddTab()
local input, crlf = SKIN:GetVariable('Input'):gsub("\r\n", "#*CRLF*#")
if input ~= "" then
for i = 1, 4 do
SKIN:Bang('!WriteKeyValue Variables Tab'..(i+1)..' """'..SKIN:GetVariable('Tab'..i):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
end
SKIN:Bang('!WriteKeyValue Variables Tab1 """'..input..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!Move #CURRENTCONFIGX# (#CURRENTCONFIGY#-4-'..(SKIN:GetMeter('Input'):GetH()*(crlf+1))..')][!Refresh]')
end
end
function EditTabA(n)
SKIN:Bang('!SetVariable TabOrig """'..SKIN:GetVariable('Tab'..n):gsub("\n", "\r\n")..'"""')
SKIN:Bang('!CommandMeasure NoteboardInput "ExecuteBatch 2"')
end
function EditTabB(n)
local input = SKIN:GetVariable('Input'):gsub("\r\n", "#*CRLF*#")
if input ~= "" then
SKIN:Bang('[!WriteKeyValue Variables Tab'..n..' """'..input..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
else
DeleteTab(n)
end
end
function ClipTab(n)
SKIN:Bang('!SetClip "'..SKIN:GetVariable('Tab'..n):gsub("\n", "\r\n")..'"')
end
function DeleteTab(n)
for i = n, 4 do
SKIN:Bang('!WriteKeyValue Variables Tab'..i..' """'..SKIN:GetVariable('Tab'..(i+1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
end
SKIN:Bang('!WriteKeyValue Variables Tab5 "" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!Move #CURRENTCONFIGX# (#CURRENTCONFIGY#+4+'..SKIN:GetMeter('Tab'..n):GetH()..')][!Refresh]')
end
function SwapTabUp(n)
if n ~= "1" then
SKIN:Bang('!WriteKeyValue Variables Tab'..n..' """'..SKIN:GetVariable('Tab'..(n-1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables Tab'..(n-1)..' """'..SKIN:GetVariable('Tab'..n):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
end
end
function SwapTabDown(n)
if n ~= "5" and SKIN:GetVariable('Tab'..(n+1)) ~= "" then
SKIN:Bang('!WriteKeyValue Variables Tab'..n..' """'..SKIN:GetVariable('Tab'..(n+1)):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"')
SKIN:Bang('[!WriteKeyValue Variables Tab'..(n+1)..' """'..SKIN:GetVariable('Tab'..n):gsub("\n", "#*CRLF*#")..'""" "#CURRENTPATH#Notes.txt"][!Refresh]')
end
end
And the skin code
Noteboard.ini
Code: Select all
[Rainmeter]
MouseLeaveAction=[!HideMeterGroup Edit][!Redraw]
[Metadata]
Name=Noteboard
Author=Axxrael
Version=1.0
Information=A customizable noteboard with 5 tabs storing basic multiline text. Text can be edited directly from meter with an .lua file doing the backend work. | Ctrl+Enter inserts a line break.
[Variables]
@Include=Notes.txt
FontSize=9
FontFace=Orbitron
TextColor=255,255,255
TitleBarHeight=35
NotepadColor=0,0,0,50
NoteBoardWidth=490
NoteBoardHeight=400
NotePadMargin=10
NotePadWidth=(#NoteBoardWidth#-(#NotePadMargin#*2))
NotePadHeight=(#NoteBoardHeight#-60)
Hide=0
Show=1
[NoteboardScript]
Measure=Script
ScriptFile=Notes.lua
[NoteBoard]
Meter=IMAGE
SolidColor=0,0,0,50
W=#NoteBoardWidth#
H=400
[Title]
Meter=STRING
Antialias=1
Text=Notes
X=5
Y=5
FontColor=#TextColor#
FontSize=14
FontFace=#FontFace#
[Maximize]
meter=STRING
text=[+]
StringAlign=right
FontColor=#TextColor#
FontSize=18
FontFace=#FontFace#
x=(#NoteBoardWidth#-10)
y=0
LeftMouseUpAction=[!WriteKeyValue Title Text "Notes" "#CURRENTPATH#Noteboard.ini"][!WriteKeyValue NoteBoard H "#NoteBoardHeight#" "#CURRENTPATH#Noteboard.ini"][!WriteKeyValue Variables Hide "0" "#CURRENTPATH#Noteboard.ini"][!WriteKeyValue Variables Show "1" "#CURRENTPATH#Noteboard.ini"][!redraw][!Refresh #CURRENTCONFIG#]
Hidden=#Show#
[Minimize]
meter=STRING
text=[-]
StringAlign=right
FontColor=#TextColor#
FontSize=18
FontFace=#FontFace#
x=(#NoteBoardWidth#-10)
y=0
LeftMouseUpAction=[!WriteKeyValue Title Text "Notes..." #CURRENTPATH#Noteboard.ini"][!WriteKeyValue NoteBoard H "#TitleBarHeight#" #CURRENTPATH#Noteboard.ini"][!WriteKeyValue Variables Hide "1" "#CURRENTPATH#Noteboard.ini"][!WriteKeyValue Variables Show "0" "#CURRENTPATH#Noteboard.ini"][!redraw][!Refresh #CURRENTCONFIG#]
Hidden=#Hide#
[MenuTab1]
Meter=IMAGE
MeterStyle=MenuTabs
SolidColor=#NotepadColor#
X=#NotePadMargin#
LeftMouseUpAction=[!SetOption MenuTab1 SolidColor "#NotepadColor#"][!SetOption MenuTab2 SolidColor "255,255,255,50"][!SetOption MenuTab3 SolidColor "255,255,255,50"][!SetOption MenuTab4 SolidColor "255,255,255,50"][!SetOption MenuTab5 SolidColor "255,255,255,50"][!HideMeter Tab2][!HideMeter Tab2Background][!HideMeter Tab3][!HideMeter Tab3Background][!HideMeter Tab4][!HideMeter Tab4Background][!HideMeter Tab5][!HideMeter Tab5Background][!ShowMeter Tab1Background][!ShowMeter Tab1]
[MenuTab2]
Meter=IMAGE
MeterStyle=MenuTabs
X=2R
LeftMouseUpAction=[!SetOption MenuTab2 SolidColor "#NotepadColor#"][!SetOption MenuTab1 SolidColor "255,255,255,50"][!SetOption MenuTab3 SolidColor "255,255,255,50"][!SetOption MenuTab4 SolidColor "255,255,255,50"][!SetOption MenuTab5 SolidColor "255,255,255,50"][!HideMeter Tab1][!HideMeter Tab1Background][!HideMeter Tab3][!HideMeter Tab3Background][!HideMeter Tab4][!HideMeter Tab4Background][!HideMeter Tab5][!HideMeter Tab5Background][!ShowMeter Tab2Background][!ShowMeter Tab2]
[MenuTab3]
Meter=IMAGE
MeterStyle=MenuTabs
X=2R
LeftMouseUpAction=[!SetOption MenuTab3 SolidColor "#NotepadColor#"][!SetOption MenuTab1 SolidColor "255,255,255,50"][!SetOption MenuTab2 SolidColor "255,255,255,50"][!SetOption MenuTab4 SolidColor "255,255,255,50"][!SetOption MenuTab5 SolidColor "255,255,255,50"][!HideMeter Tab1][!HideMeter Tab1Background][!HideMeter Tab2][!HideMeter Tab2Background][!HideMeter Tab4][!HideMeter Tab4Background][!HideMeter Tab5][!HideMeter Tab5Background][!ShowMeter Tab3Background][!ShowMeter Tab3]
[MenuTab4]
Meter=IMAGE
MeterStyle=MenuTabs
X=2R
LeftMouseUpAction=[!SetOption MenuTab4 SolidColor "#NotepadColor#"][!SetOption MenuTab1 SolidColor "255,255,255,50"][!SetOption MenuTab2 SolidColor "255,255,255,50"][!SetOption MenuTab3 SolidColor "255,255,255,50"][!SetOption MenuTab5 SolidColor "255,255,255,50"][!HideMeter Tab1][!HideMeter Tab1Background][!HideMeter Tab2][!HideMeter Tab2Background][!HideMeter Tab3][!HideMeter Tab3Background][!HideMeter Tab5][!HideMeter Tab5Background][!ShowMeter Tab4Background][!ShowMeter Tab4]
[MenuTab5]
Meter=IMAGE
MeterStyle=MenuTabs
X=2R
LeftMouseUpAction=[!SetOption MenuTab5 SolidColor "#NotepadColor#"][!SetOption MenuTab1 SolidColor "255,255,255,50"][!SetOption MenuTab2 SolidColor "255,255,255,50"][!SetOption MenuTab3 SolidColor "255,255,255,50"][!SetOption MenuTab4 SolidColor "255,255,255,50"][!HideMeter Tab1][!HideMeter Tab1Background][!HideMeter Tab2][!HideMeter Tab2Background][!HideMeter Tab3][!HideMeter Tab3Background][!HideMeter Tab4][!HideMeter Tab4Background][!ShowMeter Tab5Background][!ShowMeter Tab5]
; ----------------MEASURES--------------
[NoteboardInput]
Measure=Plugin
Plugin=InputText
SolidColor=0,0,0
X=#NotePadMargin#
Y=(#TitleBarHeight#+25)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
StringAlign=LEFT
FontFace=#FontFace#
StringStyle=NORMAL
FontColor=#TextColor#
FontSize=#FontSize#
AntiAlias=1
FocusDismiss=1
Hidden=#Hide#
Command1=[!SetVariable Input """$UserInput$""" H="[Input:H]"][!CommandMeasure NoteboardScript AddTab() #CURRENTCONFIG#]
Command2=[!SetVariable Input """$UserInput$""" DefaultValue="#TabOrig#" Y="[Tab#Tab#:Y]" H="[Tab#Tab#:H]"][!CommandMeasure NoteboardScript EditTabB('#Tab#') #CURRENTCONFIG#]
; ----------------STYLES----------------
[MenuTabs]
SolidColor=255,255,255,50
Y=40
W=((#NotePadWidth#/5)-2)
H=20
Hidden=#Hide#
[Tabs]
X=#NotePadMargin#
Y=(#TitleBarHeight#+25)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-25)
StringAlign=LEFT
FontFace=#FontFace#
StringStyle=NORMAL
FontColor=#TextColor#
FontSize=#FontSize#
ClipString=2
ClipStringW=#NotePadWidth#
AntiAlias=1
SolidColor=#NotepadColor#
Hidden=#Hide#
MouseActionCursorName=Text
MouseOverAction=[!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# SolidColor "#NotepadColor#"][!UpdateMeter #CURRENTSECTION#][!Redraw]
LeftMouseUpAction=[!CommandMeasure NoteboardScript EditTabA('#Tab#')]
MiddleMouseDownAction=!CommandMeasure NoteboardScript ClipTab('#Tab#')
; ----------------METERS----------------
[Tab1]
Meter=String
MeterStyle=Tabs
Group=Tabs
Text=#Tab1#
[Tab1Background]
Meter=Image
MeterStyle=TabsBackground
X=#NotePadMargin#
Y=(#TitleBarHeight#+5)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
Group=Tabs
MouseOverAction=[!ShowMeterGroup Edit][!SetVariable Tab 1][!Update]
[Tab2]
Meter=String
MeterStyle=Tabs
Text=#Tab2#
Hidden=1
[Tab2Background]
Meter=Image
MeterStyle=TabsBackground
X=#NotePadMargin#
Y=(#TitleBarHeight#+5)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
MouseOverAction=[!ShowMeterGroup Edit][!SetVariable Tab 2][!Update]
Hidden=1
[Tab3]
Meter=String
MeterStyle=Tabs
Text=#Tab3#
Hidden=1
[Tab3Background]
Meter=Image
MeterStyle=TabsBackground
X=#NotePadMargin#
Y=(#TitleBarHeight#+5)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
MouseOverAction=[!ShowMeterGroup Edit][!SetVariable Tab 3][!Update]
Hidden=1
[Tab4]
Meter=String
MeterStyle=Tabs
Text=#Tab4#
Hidden=1
[Tab4Background]
Meter=Image
MeterStyle=TabsBackground
X=#NotePadMargin#
Y=(#TitleBarHeight#+5)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
MouseOverAction=[!ShowMeterGroup Edit][!SetVariable Tab 4][!Update]
Hidden=1
[Tab5]
Meter=String
MeterStyle=Tabs
Text=#Tab5#
Hidden=1
[Tab5Background]
Meter=Image
MeterStyle=TabsBackground
X=#NotePadMargin#
Y=(#TitleBarHeight#+5)
W=(#NoteBoardWidth#-(#NotePadMargin#*2))
H=((#NoteBoardHeight#-(#TitleBarHeight#+#NotePadMargin#))-5)
MouseOverAction=[!ShowMeterGroup Edit][!SetVariable Tab 5][!Update]
Hidden=1
Perhaps some of this can be used.