Rien de plus simple :
yaourt -S aur/teamspeak3
On crée ensuite un script nommé “osd.lua” dans le répertoire dédié de teamspeak :
vi /opt/teamspeak3/plugins/lua_plugin/osd.lua
Et on met ceci dedans :
--The vertical position of the text. POS can be top, middle, or bottom. The default is top. local osd_pos="bottom" --The number of pixels the text is offset from the top or bottom of the display. The default is 0. local osd_offset=100 --The horizontal alignment of the text. ALIGN can be left, centre or right. The default is centre. local osd_align="left" --The number of pixels the text is indented from the left or right of the display. The default is 0. local osd_indent=0 --The font used to display the text. The default is fixed, which may be too small to see clearly. local osd_font="-adobe-helvetica-bold-*-*-*-14-*-*-*-*-*-*-*" --The text colour. The default is red. local osd_colour="green" --The number of seconds the text is displayed before being removed from the display. The default is 5. local osd_delay=100 --The maximum number of lines that can be displayed. The default is 5. local osd_lines=5 --The number of pixels the shadow is offset behind the text. The default is 0, so no shadow is displayed. local osd_shadow=1 --The colour of the shadow. The default is black. local osd_shadowcolour="black" --The width of the outline, in pixels. The default is 0, so no outline is displayed. local osd_outline=1 --The colour of the outline. The default is black. local osd_outlinecolour="black" --This option affects screen redrawing. If SCROLL_AGE seconds pass before a new line is ready (for example, you're reading from a pipe), the display is cleared instead of being scrolled. The default is 0, which means all lines are added to the scroll. osd_age=100 local clients = {} local oldOnTalkStatusChangeEvent = onTalkStatusChangeEvent; function onTalkStatusChangeEvent(serverConnectionHandlerID, status, isReceivedWhisper, clientID) oldOnTalkStatusChangeEvent(serverConnectionHandlerID, status, isReceivedWhisper, clientID) local msg=""; clients[clientID]=status; for k,v in pairs(clients) do if (v==1) then local clientName, error = ts3.getClientVariableAsString(serverConnectionHandlerID, k, ts3defs.ClientProperties.CLIENT_NICKNAME); msg = msg .. "\n" .. clientName; end end if (msg=="") then os.execute("killall osd_cat") return end os.execute("killall osd_cat") os.execute("echo \"" .. msg .. "\" | osd_cat --pos=" .. osd_pos .. " --offset=" .. osd_offset .. " --align=" .. osd_align .. " --indent=" .. osd_indent .. " --font=" .. osd_font .. " --colour=" .. osd_colour .. " --delay=" .. osd_delay .. " --lines=" .. osd_lines .. " --shadow=" .. osd_shadow .. " --shadowcolour=" .. osd_shadowcolour .. " --outline=" .. osd_outline .. " --outlinecolour=" .. osd_outlinecolour .. " --age=" .. osd_age .. " &") end
On peut jouer sur les paramètres suivants pour placer l'apparition des noms :
local osd_pos="bottom" local osd_offset=100 local osd_align="left" local osd_colour="green"
Dans cet exemple, les noms apparaîtront en bas à gauche et de couleur verte.
Ensuite on édite ce fichier :
vi /opt/teamspeak3/plugins/lua_plugin/ts3events.lua
Et on ajoute à la fin :
require("osd")
Il ne reste plus qu'a lancer Teamspeak, puis se rendre dans le menu “settings” puis “plugins” et vérifier que “lua plugin” est bien coché.
Lors d'une mise à jour de teamspeak, le script osd.lua ne sera pas touché, par contre, le fichier “ts3events.lua” sera lui remplacé par une nouvelle version, il faut donc après chaque mise à jour penser a ajouter la ligne require(“osd”) à la fin de ce fichier.