From 537f9c1b5e69dfb2b1b5b891c0a63abf1bf9b30f Mon Sep 17 00:00:00 2001 From: Guillermo Pages Date: Fri, 18 Aug 2023 11:30:42 +0200 Subject: [PATCH] feat: first commit --- .gitignore | 1 + boot.py | 32 +++ boot_out.txt | 9 + code.py | 7 + lib/adafruit_hid/__init__.mpy | Bin 0 -> 423 bytes lib/adafruit_hid/consumer_control.mpy | Bin 0 -> 659 bytes lib/adafruit_hid/consumer_control_code.mpy | Bin 0 -> 354 bytes lib/adafruit_hid/keyboard.mpy | Bin 0 -> 1246 bytes lib/adafruit_hid/keyboard_layout_base.mpy | Bin 0 -> 1223 bytes lib/adafruit_hid/keyboard_layout_us.mpy | Bin 0 -> 330 bytes lib/adafruit_hid/keycode.mpy | Bin 0 -> 1729 bytes lib/adafruit_hid/mouse.mpy | Bin 0 -> 843 bytes main.back.py | 264 +++++++++++++++++++++ main.py | 24 ++ settings.toml | 0 textecon.txt | 7 + 16 files changed, 344 insertions(+) create mode 100644 .gitignore create mode 100755 boot.py create mode 100755 boot_out.txt create mode 100755 code.py create mode 100755 lib/adafruit_hid/__init__.mpy create mode 100755 lib/adafruit_hid/consumer_control.mpy create mode 100755 lib/adafruit_hid/consumer_control_code.mpy create mode 100755 lib/adafruit_hid/keyboard.mpy create mode 100755 lib/adafruit_hid/keyboard_layout_base.mpy create mode 100755 lib/adafruit_hid/keyboard_layout_us.mpy create mode 100755 lib/adafruit_hid/keycode.mpy create mode 100755 lib/adafruit_hid/mouse.mpy create mode 100755 main.back.py create mode 100755 main.py create mode 100755 settings.toml create mode 100755 textecon.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/boot.py b/boot.py new file mode 100755 index 0000000..4d93b8d --- /dev/null +++ b/boot.py @@ -0,0 +1,32 @@ +import time +import usb_hid +from adafruit_hid.mouse import Mouse +from machine import Pin, Timer + +time.sleep(15) # wait for 5 seconds +led = Pin(25, Pin.OUT) + +for _ in range(3): + led.toggle() + time.sleep(0.5) + +# Initialize mouse +mouse = Mouse(usb_hid.devices) + +# Loop to emulate mouse movement +while True: + # Move mouse right (x is positive) + mouse.move(x=10) + time.sleep(1) + + # Move mouse left (x is negative) + mouse.move(x=-10) + time.sleep(1) + + # Move mouse down (y is positive) + mouse.move(y=10) + time.sleep(1) + + # Move mouse up (y is negative) + mouse.move(y=-10) + time.sleep(1) diff --git a/boot_out.txt b/boot_out.txt new file mode 100755 index 0000000..1dcc664 --- /dev/null +++ b/boot_out.txt @@ -0,0 +1,9 @@ +Adafruit CircuitPython 8.2.1 on 2023-07-25; Raspberry Pi Pico with rp2040 +Board ID:raspberry_pi_pico +UID:E6614104036B8B39 +boot.py output: +Traceback (most recent call last): + File "boot.py", line 8, in + File "adafruit_hid/mouse.py", line 54, in __init__ + File "adafruit_hid/mouse.py", line 148, in _send_no_move +OSError: USB busy diff --git a/code.py b/code.py new file mode 100755 index 0000000..f4586dd --- /dev/null +++ b/code.py @@ -0,0 +1,7 @@ +import time +import digitalio +import random +import board + +led = digitalio.DigitalInOut(board.GP25) +led.direction = digitalio.Direction.OUTPUT \ No newline at end of file diff --git a/lib/adafruit_hid/__init__.mpy b/lib/adafruit_hid/__init__.mpy new file mode 100755 index 0000000000000000000000000000000000000000..5386517c705915be06fdc4296fc31111e70b51d7 GIT binary patch literal 423 zcmY+A%}T>S6oqH{gHpA`w#=r21JOcNlA=|?mD((--6$5M3%SN*+6>qvW+p;GaPWz$ zc>%#EaH$(##i`=L&2VS#xo5s}JH^~8eR|lUXs+e@?l4KYgn;`t01tHuRy?_;$~ZGy zeW$^YGKd?7k#r@GLa~ACHGp9%(}V%6h>sn)6u)CCn9@BzFIf;2V`e~~3dN~z0 zvkwS9T|$@3sPW|#)Zi4OE2Fe)?O1z+0Nk@gXnz0`5d$D$aRji92^sRx2cO+@kDYrM zi-SPQSRB~)h|3_ovAk$(|HZJ6{_=Eq;^|yx6B%gJ?ulb*`BVR0%~M=e=HcdAgEpJJ zbyPuvshMx*G}3evzfPfNqPMJCONBdP5bNXl!yziGmVRDdKAa_`XEL*(XL2g@jz1qO yXx}WhvF6L8@-M0=7R7>K8hw@|k^e7dCrWR9s+US<@#xraZU+?jjsx#yngB=*YW=JZ7klI@u_JNE;dPcCiirRh2>SWtf= z6Yjh7y0@GXk?b`p3sS9~R2oAI#Gv?yEg42C(n|Kio6`k#_>9}Gqh+tC&txJ#{QA>X zgbL3qpuDqAy*`+>Kdg;B06h<*@T_7kO@0Y3^Y(FcD(L zkH$}8Gvc_Mu)yPszsn-6!k}$wT|PDGS+&Pd8$FX^3>V6)iOGmtmBL#(fuyasHW} zVslEpP!=8l(hR8q;CFUM#`v-9RYgnWs*2iFcP)r)zC0M%0wp4sHoJ`bT>a zTXc{&ydU51d&{FMwF7tPY@yZeC>cHE^K_;k)8u%Zy}r#~Cb>3YmS@jqCzGS;`_L_H zq?*WS&>zF>N}#51)xf$LBkKbp&#HfJ6n4Y?XV50v0R&DR&>k+Eur3%4g@?-%*zFLh zbSD%8Qh`?04Sa6mDeOy1xaRCuX(b4~#^o6_zF8z#-w$KC;BBy_3L{*e!y4-{s&E;= zcGM$xIwG-TxV#5Dh?NOX;P%5_95C%MDp-BC(yS&v`r`NwR?yvP2Du9Z_}#nFW9kR&4h&RIp6ut`OXhHZMWUz zkD9?Sa>OcPr6wOps_=y*-u{xbb{Z8~ywz-#dFoh*Wj8lN55y#*`Dv#r?GemS7GZKT&8;wjTif3#V!><*qW?Lzwg zMlNT0PB6A2Hr6*c3M+AhkvGoZv8GHEC2qqWnbb)|A@LE6hfkqWug9-pbQ-tgcZG^5 z3c~>iYD17ovmvYT>v$QSdyPZ#2CT`Ay&>#nn{uN`WVID{BpA%qi6|&)MLkgBPCRZ} zjeTf+w6kz`0ePosv|LtB9WpQ1_)sB=e6t429VnGuA~fMoW5+DxIMHGB0B;tw1~}Y- z4<%0$0E`c$`M5pMCASVG^0n?CNibBqWh?4|nE@>9HAJZ<5!q+g{q_X&FmIvIyV;kS zTM60p02Zz^XUCAv-CTwh&Y*1{iv5NQ1KY%AycW5Gd>?Ru|Ar~-NUE{S zJUPpFpkj!AT0Hyxv#r!8V9Y+HsUY3HIPVpo_34Yub!wdVw(`}!@gifR`6_5TzD&Pt zmuPC-3e)~6LIAkCm+8OSCF8se(dIZl>@3`mO}gp#AY@}@E)ouhBB4lRJrqVhH|HMI ze+x>w&HB&(00DW^dP*;7YJqM)JMR~NdXyfasag66s>6e&{ob!22@t5+(_UQ+9GT}F?M r{L5c5c53K>dEL)gy@+$ZJEQbRI)QxXF07Cijn|0*#G039esBH-1G|o? literal 0 HcmV?d00001 diff --git a/lib/adafruit_hid/keyboard_layout_base.mpy b/lib/adafruit_hid/keyboard_layout_base.mpy new file mode 100755 index 0000000000000000000000000000000000000000..2b788bec8f6f4340063f1c7bd0575f1def66c313 GIT binary patch literal 1223 zcmbtS&2Ac36uuWizy@0bGZ|YrO-B$gU<({VX=PQafw2v-i*1Y*(H~s~7#n2bLBn7N zMOH4Bks7J1K0=jUHv{+uV)qHMN*7k8z5wbQ^b9{z)onG4Gw1KS-*?VQSxlb`SB=#t z$eNZa(y`jAX{1`KL{8;)Ns-hFsY`98rIC`7QW*!$h46`$7hYT}?8s%Qhp_fkN|5JQG3okJGk(vD>{5%}zc|y)*wOLcn z2=OAGAw-oM3L*I@W}Z&bc1K*2KqY44@j)5m=6Y4r8qM`c!oi6o|q zQZ=;<%J$n@6&^@u#4wa!J8Ws}{CTlh^b6z9SM+W8H+*!i>v+d>JzZaS9y!qh4}8o# za(g<6=MK}EtvuPB?c#BP2&H*uwDHnk^idOFAa<6LGtohML3j8F*iLgFx$$&maW z+1V@@u~oz`rlD#xM@A_IVV=uwZi+_Nb`H|+)ZVwrOco;0au`KCa_)!l;d9J8$c0+d zagkI<2qE+iUsZp@PwW=DQ!GBs1_R+0)EDQe&RV$HhAKCkI=c|Zg`UoSHWYaZ7JvNf zgU(txtIjS##;COPMn7hbSLM14yCYJ)9!G`o6Y~>Zvr=6-F5hUMhxTev@%k)x@paQMxQtRhUb2-3M!t4pQ2EF3GUU`$&o1C;P)40$O8-T>TX zWbL(K*Vm%2FN5Lh#qUBsmR?d;1^u;$6?3>nWSx02KozwkrbQ3^#2R#)IIKH zmi|hu;nmQTHQ=6*rc{fobn;--S+f Yb|r>Ci8k1~9R^Yc9sQ%b!KiKKA7jOCU;qFB literal 0 HcmV?d00001 diff --git a/lib/adafruit_hid/keyboard_layout_us.mpy b/lib/adafruit_hid/keyboard_layout_us.mpy new file mode 100755 index 0000000000000000000000000000000000000000..7b3398c97002fdb745dab2ddc33b92b19814a973 GIT binary patch literal 330 zcmZ=}Ws+BD43LmuV0TGONlYs$%`Az}$V}1CPOVJJPb^A_&q=JzFD;2LE!HcjOi*ZG zFX)@j&?und4VCu+OFJbNr)n`uYoO~&0*cEpi!nxq7%>Papy~+?7GySI7GoA<6q7-f z2~1{StYHvg=Ir5b5K>?eWDpl)5EEb)V~|p25L0jrcJ}m)5Al!pc8zrQcX16&W@Jce zWPkxJZ4DR`Mr(o?I`g(HSh#43$+G23*O}>>Td2#)D<~={tEj4NHr}SUeaHNk*0%PJ z&aUpB-oE|`6DLicGIiSY88c_io-b`DN1ZXRAfegQ!tVG&U=aS2H& NX&Kq|8#iqA0RU^>U9SKD literal 0 HcmV?d00001 diff --git a/lib/adafruit_hid/keycode.mpy b/lib/adafruit_hid/keycode.mpy new file mode 100755 index 0000000000000000000000000000000000000000..8a5c6318459ce9f7cb95c397ca4b4d3f7c6178e2 GIT binary patch literal 1729 zcmb7_S#ujj5XV-mCqU~Z$o zvAz4^;8OR@p#R9(t;@Zg{?^=u%j-qTXhBKKPqs$6vVhc5PfOj%XRc*Z6Ibq`sfUXH z`>E`|;&4)F>>Vop>!}>7{5^BHm^_up8`)8I?2mPn-QVsvXD_$s?YDYeo6_zD4e}G9 z&AtRee;Gve6%fX&AZo9HkgtQNzX780CWz)05awGTPQDGI^$rN@Dv0*GAnf-*IPZgS zKLD}xAqejp2>&Ax!N(xNPe3ex3ZnBFh?UPltX>DPb_3FmEpI|P=r~_MHfVZMehHbn z6MA2H<0z^vb4X2tTY?V;5*3JrY*mR%$oF^A2@3V(wj;_&XYmt**`)~ z`iAbxpP*3Hjh64~hWweg(W}2eK8mWknxBpQUm@Ez?a=>?mo0_5<^K*dmaGTes>h3E zfJb1~Q~M@~`M9p7`%NrC)^$R=h6_;eW!p3y%dxQx*`?44Brd{C!_${#S2qlPPdo}) z!)dp5JO(*edZtsu<1kxyypHbGx_(sh1Qhu7{jTL0EqoO2s?XzNY)kk!+XZ}rZ5f|r zyNFM*J&IIeIfkUO97n3MoIo-lU7tUKR8u;SB$bws>M-MarX6&BgF9{`H2~OkENiqQ zHTg(-=u0FMa;EJ|FF-m8nWod`Tni>$y&=1yi)2BrCN0V5q&B1_cY$muM8h?w!=)X7 zQSWrmb2>;aOh>(q!zGwj^SW{9K|XZHfe-h!2Ov(kR_G(GBoiWlkXB(jp1@opttBA?igYTO9+8UlbW%?ti}cK1 z%50d?Rfpu>u{b2eab?jL4xr6yr<;dPEOx0qCx4 znT8&ij3R9-LOYV*@N`mOL^{$L#l!;AKxrB2Ii-t8XO%Ko=ae#8=an*A&nsoNc34Zy z)&-@^)(c9RtzD&D@1oK&4*87H_ck0mV8Zy)O~x(`H)0n2rdbc7>!=(YZbE*Mw-Pq^1A> literal 0 HcmV?d00001 diff --git a/lib/adafruit_hid/mouse.mpy b/lib/adafruit_hid/mouse.mpy new file mode 100755 index 0000000000000000000000000000000000000000..9e09cc3223993797839d18171a1925197bf8f651 GIT binary patch literal 843 zcmY*WOHUe66uy^-JSs2)<5j^ZqEQ56&6E&V4N+{-Xj=ubq-h3(t4=#S$_!Rl+(B40 zZPHDXF1qTf+rihq&ve~&6PqsF_9wJ=fG*5U&htCxJLlXbvti7CY?>VfmQb#c+pX3_ zMc5Y$H;d((jOQvxS${U0crY=aDgd(KvnpZ{Bd9WHS1c8T0zMG)I0StFjz9!62_GN~ zlf=(zxYUXFD@PTvv^Qd;Nm}l#$vb*?1Xmqkn*~#saTCd`Lhv}n1IE6tb4CmZZsY+x zo@ExG;}wcc`ss_chFWaPhGQ-F%c+(HuwW1Y#269qstBzu-$@CJTdCCjdkr+SxpFu0 z-)$oA`bs>$w%kke00EYV$X=;pS>_GMS;Z30$(T1H)H8*gB=II>&r4$dDIp|eOx`jh zYq5NQ`99%?OS5S8=6WRT6ffajq!Htd4?hH<-VS50H#| zhO^5O#uYURGa6^s)AWdx9e@|k?ytxy2ytTrWPv!sK=U}r!>#tOM`?|-QFITvQ&W_3 zNmflEZrnyzvawl;wCTtnzpq1W(y*ICHvQ9p=#XoD4g=h{g=`aNP@lEknW>|?G_I!U zdkap{a*+&A1cSkFI6OBw2^Nz?=Uodn(ic7J zIIVen9O`^Q_duG*ObOd(S07K#uRfh#TzzhnpGzO=Cse+#pHlg*-krm6XgIPz-^W-| z6T`^IlGpy}>CQek)HL0S(&$pBaB;3~-)^Ne<792*EpYc0#ZrLOsm>h+{z5Hch#2V6 Jtp!n5{sC&e^*R6m literal 0 HcmV?d00001 diff --git a/main.back.py b/main.back.py new file mode 100755 index 0000000..a117f23 --- /dev/null +++ b/main.back.py @@ -0,0 +1,264 @@ +import time +import usb_hid +import board +import digitalio +import random +from adafruit_hid.mouse import Mouse +from adafruit_hid.keyboard import Keyboard +from adafruit_hid.keycode import Keycode +from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS + + +citations = ("Carpe diem","Veni, vidi, vici","Tempus fugit","Alea iacta est","Dum spiro, spero","Non ducor, duco","Amor vincit omnia","Per aspera ad astra","In vino veritas","Dum vita est, spes est","O tempora, o mores!","Cogito, ergo sum","Si vis pacem, para bellum","Alea jacta est","De gustibus non est disputandum","E pluribus unum","Audaces fortuna iuvat","Memento mori","Nunc est bibendum","Salus populi suprema lex esto") +mouse = Mouse(usb_hid.devices) +kbd = Keyboard(usb_hid.devices) +layout = KeyboardLayoutUS(kbd) +led = digitalio.DigitalInOut(board.GP25) +led.direction = digitalio.Direction.OUTPUT + +# Démarrer le chronomètre + + + +led.value = False +time.sleep(10) + +# +# # Liste pour enregistrer les temps intermédiaires (laps) +# laps = [] +# +# # Fonction pour démarrer le chronomètre +# def start_chronometre(): +# laps.clear() # Effacer les laps précédents +# laps.append(time.time()) # Enregistrer le temps de départ +# return laps[0] +# +# # Fonction pour enregistrer un temps intermédiaire (lap) +# def lap_chronometre(): +# laps.append(time.time()) +# temps_ecoule_s = laps[-1] - laps[-2] +# return temps_ecoule_s +# +# # Fonction pour arrêter le chronomètre et afficher le temps total +# def stop_chronometre(debut_chrono): +# laps.append(time.time()) # Enregistrer le temps de fin +# temps_ecoule_s = laps[-1] - debut_chrono +# return temps_ecoule_s +# +# # Fonction pour calculer le temps total +# def calculer_temps_total(): +# return laps[-1] - laps[0] +# +# # Fonction pour afficher le temps formaté (minutes:secondes) +# def format_temps(temps_s): +# minutes = int(temps_s / 60) +# secondes = int(temps_s % 60) +# return f"{minutes:02}:{secondes:02}" +# + + + + +def start_software(soft): + kbd.send(Keycode.GUI) + time.sleep(random.randint(1,3)*0.40) + if soft == "notepad": + layout.write('execute\n') + time.sleep(1) + layout.write('notepad\n') + elif soft == "word": + layout.write('Microsoft Word') + time.sleep(2) + layout.write('\n') + time.sleep(2) + layout.write('\n') + elif soft == "outlook": + layout.write('Microsoft Outlook\n') + time.sleep(1) + layout.write('\n') + elif soft == "excel": + layout.write('Microsoft Excel') + time.sleep(2) + layout.write('\n') + time.sleep(2) + layout.write('\n') + time.sleep(1) + return + +def activite_citations(): + start_software("notepad") + time.sleep(1) + phrase = citations[random.randint(0, 19)] + for caractere in phrase: + layout.write(caractere) + led.value = True + time.sleep(random.randint(0,5)*0.1) + led.value = False + time.sleep(3) + kbd.press(Keycode.ALT) + time.sleep(.09) + kbd.send(Keycode.F4) + kbd.release_all() + time.sleep(1) + kbd.send(Keycode.R) + #lap_chronometre() + return + +def print_float(param): + str1 = str(param) + for caractere in str1: + if caractere == ".": + layout.write(",") + else: + layout.write(caractere) + return + +def activite_word(): + start_software("word") + with open("./textecon.txt", 'r') as fichier: + lignes = fichier.readlines() + for ligne in lignes: + for caractere in ligne: + if caractere == " ": + time.sleep(random.randint(1,3)*0.05) + if caractere == "\r": + layout.write("\n") + time.sleep(random.randint(1,10)) + else: + layout.write(caractere) + time.sleep(random.randint(1,2)*0.02) + time.sleep(3) + kbd.press(Keycode.ALT) + time.sleep(.09) + kbd.send(Keycode.F4) + kbd.release_all() + time.sleep(1) + kbd.press(Keycode.ALT) + time.sleep(.09) + kbd.send(Keycode.N) + kbd.release_all() + #lap_chronometre() + + return + +def activite_outlook(): + start_software("outlook") + lap_chronometre() + return + +def activite_excel(): + sigma = 10.0 + rho = 28.0 + beta = 8.0 / 3.0 + dt = 0.01 + nb_iterations = 400 + + x, y = 0.1, 0.0 # Conditions initiales + x_points = [] + y_points = [] + for _ in range(nb_iterations): + x_points.append(x) + y_points.append(y) + + dx = sigma * (y - x) * dt + dy = (x * (rho - 1) - y) * dt + + x += dx + y += dy + + start_software("excel") + layout.write("Sigma") + kbd.send(Keycode.RIGHT_ARROW) + print_float(sigma) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + layout.write("Rho") + kbd.send(Keycode.RIGHT_ARROW) + print_float(rho) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + layout.write("beta") + kbd.send(Keycode.RIGHT_ARROW) + print_float(beta) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + layout.write("dt") + kbd.send(Keycode.RIGHT_ARROW) + print_float(dt) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + layout.write("Iterations") + kbd.send(Keycode.RIGHT_ARROW) + print_float(nb_iterations) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.DOWN_ARROW) + for x, y in zip(x_points, y_points): + print_float(nb_iterations) + time.sleep(random.randint(1,2)*0.01) + kbd.send(Keycode.RIGHT_ARROW) + print_float(x) + time.sleep(random.randint(1,2)*0.01) + kbd.send(Keycode.RIGHT_ARROW) + print_float(y) + time.sleep(random.randint(1,2)*0.01) + kbd.send(Keycode.DOWN_ARROW) + kbd.send(Keycode.LEFT_ARROW) + kbd.send(Keycode.LEFT_ARROW) + time.sleep(3) + kbd.press(Keycode.ALT) + time.sleep(.09) + kbd.send(Keycode.F4) + kbd.release_all() + time.sleep(1) + kbd.press(Keycode.ALT) + time.sleep(.09) + kbd.send(Keycode.N) + kbd.release_all() + lap_chronometre() + return + + + +def wanking_human(): + #temps_ecoule = stop_chronometre(debut_chrono) + while True: + #temps_ecoule = stop_chronometre(debut_chrono) + act = random.randint(1,3) + if act == 1: + activite_citations() + elif act == 2: + activite_word() + elif act == 3: + activite_excel() + #Pause 1 + #temps_ecoule = stop_chronometre(debut_chrono) +# if temps_ecoule > 7200 and temps_ecoule < 7600: +# time.sleep(random.randint(60*10,60*15)) +# #lap_chronometre() +# #Déjeuner +# if temps_ecoule > 14400 and temps_ecoule < 15000: +# time.sleep(random.randint(60*55,60*62)) +# #lap_chronometre() +# #Pause 1 +# temps_ecoule = stop_chronometre(debut_chrono) +# if temps_ecoule > 7200 and temps_ecoule < 7600: +# time.sleep(random.randint(60*10,60*15)) + #lap_chronometre() + #temps_formate = format_temps(temps_ecoule) + #print("Temps écoulé:", temps_formate) + return + +wanking_human() + + + +# +# # Calculer le temps total et l'afficher +# temps_total = calculer_temps_total() +# temps_total_formate = format_temps(temps_total) +# print("Temps total:", temps_total_formate) +# + + diff --git a/main.py b/main.py new file mode 100755 index 0000000..8711713 --- /dev/null +++ b/main.py @@ -0,0 +1,24 @@ +import time +import usb_hid +from adafruit_hid.mouse import Mouse + +# Initialize mouse +mouse = Mouse(usb_hid.devices) + +# Loop to emulate mouse movement +while True: + # Move mouse right (x is positive) + mouse.move(x=10) + time.sleep(1) + + # Move mouse left (x is negative) + mouse.move(x=-10) + time.sleep(1) + + # Move mouse down (y is positive) + mouse.move(y=10) + time.sleep(1) + + # Move mouse up (y is negative) + mouse.move(y=-10) + time.sleep(1) diff --git a/settings.toml b/settings.toml new file mode 100755 index 0000000..e69de29 diff --git a/textecon.txt b/textecon.txt new file mode 100755 index 0000000..0451e6c --- /dev/null +++ b/textecon.txt @@ -0,0 +1,7 @@ +At the tumultuous crossroads of the relationship between the emplozee the companz human resources HR and shareholders unfolds a tapestrz of dayyling conceptual richness where diverse paradigms and intrinsic tensions intertwine At the heart of this complex ecoszstem the intimate gears of each entitz interact in an unceasing ballet of decisions and influences which reflect on the collective destinz of the enterprise +The emplozee as a prominent protagonist of this narrative embodies irreplaceable human capital whose intrinsic value goes bezond technical skills and encompasses aspirations motivations and commitment Bezond being a mere factor of production the emplozee represents the vital breath that animates the companz for it is in the fusion of their talents and ambitions that seeds of innovation and creativitz germinate +Concurrentlz HR emerges as the essential harmoniyers tirelesslz working to juggle between individual aspirations and the strategic imperatives of the organiyation As guardians of the companz's culture thez clear a fertile ground for nurturing talent providing tailor-made training and creating an environment conducive to emplozee growth and well-being +However this delicate dznamic is not without challenges as divergent interests of shareholders can cast shadows on the delicate balance between emplozee satisfaction and maximiying financial returns Shareholders as sentinels of investment closelz scrutiniye financial indicators and the companz's efficiencz driven bz an ongoing quest for profitabilitz and shareholder value +These conflicting aspirations often create a chaotic ballet of priorities where the companz must skillfullz navigate between short-term and long-term considerations expansion and consolidation profit and well-being The crucial challenge therefore lies in establishing enlightened governance and a shared strategic vision to transcend these apparent dichotomies and foster a holistic and sustainable balance +Thus a new dimension emerges within this intricate fabric that of corporate social and environmental responsibilitz As companies become increasinglz aware of their impact on societz and the environment thez stand at a decisive crossroads where the integration of ethical and sustainable concerns becomes imperative Emplozees HR shareholders and societz as a whole zearn for a responsible committed and visionarz companz that embraces a long-term perspective and assumes the role of a responsible actor in shaping the world's evolution +In conclusion the relationship between the emplozee the companz HR and shareholders reveals a tapestrz woven with interconnectedness tensions and opportunities where each protagonist plazs a crucial role Emplozee fulfillment and organiyational well-being harmoniyed with shareholder aspirations and societal demands form the fabric of a narrative whose resolution lies in enlightened governance and collective consciousness readz to forge a flourishing future for all stakeholders involved \ No newline at end of file