Artikel top billede

(Foto: Computerworld)

Brug flere maskiner samtidig

Sådan kobler man alle maskinerne på skrivebordet sammen i én ubesværet strøm af computerarbejde.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Det er ikke længere nok med én pc. Alle her på redaktionen har mindst to maskiner, hvis ikke tre, på deres skrivebord – nogle er pc’er, nogle er Linux-bokse, nogle er Mac’er. Det fører uundgåeligt til, at bordet bliver fyldt op med to mus, to tastaturer og to skærme. Alternativt kan vi satse på en kostbar kvm-switch til at dele en enkelt række eksterne enheder mellem flere maskiner.

Ingen af disse løsninger er optimal. I det første tilfælde er der spild af enheder. Der er ingen grund til at have to sæt enheder, hvis et kan gøre det, og et par tastaturer fører uvægerligt til en frustrerende situation, hvor man skriver noget, der var tiltænkt en maskine, men teksten ender på den anden. Det er ineffektivt, rodet og fører til fejl, men begge pc’er er i det mindste til rådighed samtidig.

Hvis man har en kvm-switch, bliver skiftet mellem maskinerne bøvlet og langsomt. Man skal trykke på en knap, vente flere sekunder, vente igen, mens skærmen finder ud af at justere sig selv, og vente igen, når man skal skifte tilbage igen. Kvm’er er besværlige, og de hæmmer en effektiv arbejdsgang.

Den eneste fornuftige måde, hvis man vil bruge flere pc’er på et skrivebord, er med et enkelt sæt eksterne enheder, og det er her, Synergy kommer ind i billedet. Synergy er et klient-server-system, der sender muse- og tastaturbevægelser fra en servermaskine til et hvilket som helst antal værtsmaskiner over et netværk – og disse maskiner kan køre et hvilket som helst operativsystem, fra Linux over Windows til OS X. Strålende, ikke? Man kan line en broget samling af systemer op – bærbare, stationære maskiner, hvad som helt – og trække en musemarkør fra den ene skærm til den anden. Tastaturet vil fungere på det skærmbillede, hvor markøren befinder sig.

Installation af Synergy

Synergy fungerer på tværs af platforme, og man kan installere serveren på den maskine, som er knyttet til mus og tastatur. Hvis du har at gøre med en Windows-maskine, skal du blot downloade klienten her og installere det. På en Mac skal du downloade pakken og pakke den ud. Nu får du en mappe, som du kan anbringe overalt. På Linux bør du kunne installere Synergy via din pakkemanager, men på den måde får du næppe den bedste version. Du bør installere den betapakke, der er relevant for din distribution, så den er på samme side som resten af platformene. Installer nu Synergy på resten af maskinerne i dit computermenageri; serveren og klienten er med i hver pakke.

Din første server

Det er nemt at arrangere det første Synergy-layout. Vi bruger den grafiske brugerflade til denne indledende opsætning, og du skal begynde med at åbne Synergys gui. Hvis du bruger Windows, finder du den i Start-menuen. Allerførst skal vi sikre os, at netværks-indstillingerne fungerer sammen med dit netværk. Begynd med at bringe applikationen i fokus, og gå til ’Edit | Settings’.

I det vindue, der kommer frem, skriver du din servers lokale ip-adresse i grænsefladefeltet og vælger den port, du vil bruge til Synergy-kommunikation. Her må vi lige nævne, at Synergy ikke er verdens mest sikre software. Du skal bruge den port, du vælger at holde åben til det lokale netværk, men hold den blokeret ud mod verden, medmindre du vil have, at hackere overtager kontrollen med din mus. Der er ingen skærmdeling, og det reducerer risikoen, men dine tastaturtryk kan læses. Husk derfor at være påpasselig med din routerkonfiguration. Hvis du er bekymret, kan du køre Synergy gennem ssh eller en anden tilsvarende sikker protokol.

Indstil maskinens navn til noget, der giver mening, når du ser det igen. Vi har valgt ’PCP-server’ – du kunne vælge ’Hovedlaptop’ eller ’Mellem’, afhængigt af hvor permanent din opsætning skal være. Vær opmærksom på, at den grafiske konfigurationsmetode gør det muligt hurtigt at tilføje eller fjerne mas-kiner, når behovet opstår, men den er ikke så fleksibel eller indstillelig som en tekstbaseret konfigurationsfil. Sådan en skal vi lave nu. Klik ’OK’, og gå tilbage til hovedvinduet.

Klik i boksen ved siden af ’Server’ øverst i vinduet, klik på knappen ’Configure interactively’ og dernæst ’Configure server’. I dette vindue kan du arrangere computerne på dit skrivebord i den rækkefølge og placering, de fysisk skal være i.

Du kan se din servermaskine i midten. Træk skærmen i vinduets øverste højre hjørne til en af cellerne i midten for at føje endnu en maskine til udvalget. Anbring den i forhold til servermaskinen, dobbeltklik, og angiv dens navn. Det nøjagtige navn finder du ved at starte Synergy og bruge menuen ’Edit | Settings’ på den anden maskine. Du skal skrive det navn, der står her. Gentag denne proces for alle de maskiner, du agter at bruge.

På den anden maskine klikker du nu i boksen ud for ’Client’ og bruger ip-adressen på den første maskine som navn på serveren. Start så klienten på den første maskine, start serveren – du bør konstatere, at du kan bevæge musemarkøren mellem skærmbillederne, og du kan bruge tastaturet på dem begge. Nemt!

Bemærk, at du også kan bruge den mus og det tastatur, der er knyttet til klientmaskinen til kun at styre den enhed. Det kan være nyttigt i forbindelse med bærbare maskiner.

Videre i teksten

Det virker altså. Hvis muligheden for at bevæge musen mellem dine forskellige skærmbilleder er alt, hvad du vil have, kan du roligt stoppe her. Men Synergy kan forfærdelig meget mere, hvis man ved, hvordan man styrer programmet.

Det største problem med det grafiske konfigurationsværktøj er i øjeblikket manglen på avancerede styringsmuligheder. Du får langt mere personalisering ud af en skræddersyet, tekstbaseret konfigurationsfil – du kan endda sende den mellem maskinerne, således at ethvert medlem af dit harem kan fungere som server – men du er nødt til at bruge noget tid på selv at skrive den fra grunden.

Start dit foretrukne tekstbehandlingsprogram, og begynd at konstruere filen. Det er ligegyldigt, hvad den hedder, eller hvor du gemmer den, blot det er en txt-fil. Tag dine første skridt ved at definere de beslægtede maskiner på dit netværk (og strukturen for resten af konfigurationsfilen) i det følgende format:

section: screens
linuxbox:
windowsmachine:
imac:
end
section: aliases
end
section: links

Hver del af konfigurationsfilen begynder med headeren ”section:” og slutter med ordet ”end”. Du må bruge de navne, du har lyst til – sørg blot for, at du kan identificere maskinen med det pågældende navn. Vi indsætter de aktuelle værtsnavne senere.

Når vi definerer skærmbillederne på denne måde, efterfulgt af koloner, har vi mulighed for at indsætte yderligere argumenter efter dem. Man kan for eksempel bytte om på tasterne [Ctrl] og [Alt] på en Mac (for at gøre tastaturgenvejene konsekvente på tværs af platforme) ved at tilføje ctrl = alt og alt = ctrl som separate linjer under betegnelsen ”mac:”.

Man kan også markere disse maskiner med halv duplex-låsetaster – det vil sige tas-ter, der ikke sender både en press-event og en release-event, når de bliver slået til. Brug termerne half DuplexCapsLock, halfDuplexScrollLock og halfDuplexNumLock sat til sand eller falsk. Husk, at konfigurationsfilen skelner mellem store og små bogstaver, og du skal derfor skrive alt, som det er skrevet her.

Den næsten sektion af konfigurationsfilen er ret ligetil – nu er tiden inde til at definere de rigtige navne på de maskiner, som vi før gav nemme navne. I sektionen ’Aliases’ skriver du det relevante værtsnavn under hvert maskinnavn. Det kan du finde ved at køre ”cmd” og derefter skrive hostname (eller skrive uname i et terminalvindue, hvis du er på en Mac eller på Linux).

Hægt det hele sammen

Her kommer det interessante og den egent-lige grund til at bruge en tekstbaseret konfigurationsfil: links. På nogle få linjer kan du definere den nøjagtige plan for dit netværk af maskiner, idet du tager højde for alt lige fra skærmbilledernes højde til placeringer, der strider mod fysikkens love.

I links-sektionen tilføjer du linjer med oplysninger om skærmbilledernes indbyrdes forhold. Hvis din Windows-maskine er til højre for din Linux-boks, skal du inddrage right = windowsmachine som en enkelt linje under headeren ’Linuxbox’. Det definerer et ensrettet forhold mellem de to maskiner. Hvis du bevæger musen væk fra den højre side af Linux-skærmbilledet, flytter markøren til Windows-billedet, men det omvendte sker ikke, medmindre du har inddraget den modsatte kode under headeren ’Windowsmachine:’.

Du skal også overveje denne mulighed:

section: links
linuxbox:
right(0,50) = windowsmachine
windowsmachine:
right(50,100) = imac(0,50)
imac:
right = linuxbox
end

Det opretter en løkke – bliv ved med at bevæge markøren til højre (fra Linux-boksen til Windows-maskinen til Mac’en). Til sidst ender du igen i Linux-boksen – men det samme gælder ikke, når man bevæger sig til venstre. Hvis du vil, kan du også lade en af maskinerne være helt uden links. Så vil markøren strande på det skærmbillede. Men som vi senere skal konstatere, kan man komme uden om det problem.

Medmindre du er meget velbeslået, eller du kender nogen, der arbejder på en skærmfabrik, er dine skærme sandsynligvis forskellige i højde og dimensioner. I kodeeksemplet ovenfor skal du lægge mærke til tallene i parentes. De refererer til procentsatser vedrørende skærmhøjde. De begynder øverst eller til venstre, afhængig af skærmens kant.

I dette eksempel befinder Windows-skærmen sig ved den øverste højre halvdel af Linux-skærmen, og den øverste venstre halvdel af Mac-skærmen er ved siden af den nederste højre halvdel af Windows-skærmen.

Du behøver ikke at bruge det til at definere egent-lige fysiske forhold (prøv noget i retning af (95,100) for at definere et hot corner for eksempel). Du kan endda definere flere stier, der fører fra en enkelt side af skærmen ved at opdele deres stier. Der er desværre en ting, vi ikke kan fortælle dig, nemlig hvordan du indstiller dine egne procentsatser. Det må du selv sjusse dig frem til på hver side, musebevægelserne glider ubesværet mellem skærmbillederne. Men det er umagen værd.

Få det til at køre

Nu burde du have en konfigurationsfil med fire afgrænsede sektioner, udfyldt med alle de kommandoer, du kan drømme om. Du kommer til at rode med den i evigheder, men lige nu er tiden inde til at gemme den. Gem den et sted, og kald den ”synergy.conf”. Start nu serveren via gui’en (sørg for at vælge den korrekte sti til konfigurationsfilen i den relevante boks, når du gør det).

Hvis du foretrækker det, kan du også køre den via kommandolinjen. Hvis du vælger det, skal du køre synergys -config, efterfulgt af den komplette sti til konfigurationsfilen.

På dine andre maskiner kører du synergypc med serverens værtsnavn som et argument, eller også skriver du værtsnavnet (eller et domænenavn, eller en lokal ip-adresse, afhængigt af dit netværks konfiguration) i den relevante boks. Hvis alt går godt, burde din Synergy-server køre. Nu er der kun en begrænsning: din fantasi.

Hvis man kører Synergy manuelt, ødelægger man ideen med programmet – hele kernen i dette program er jo enkelhed – men det er ikke helt ligetil, hvis du bruger en Linux-server. Hvis du vil køre en Synergy-server, så snart du starter maskinen, skal du knytte den til X Windows – navnlig filen .xsession. Find .xsession – den er som regel i /etc/X11/. Hvis du bruger KDE, kan den være i /etc/kde3/ eller /usr/kde/version/share/config – og redigere den med rettigheder som superbruger. Tilføj den følgende linje: /usr/bin/synergys <synergy-server-hostname>.

Det skal du gøre i baggrunden (ellers exit’er scriptet aldrig, og X starter aldrig ordentligt). Derfor skal du undgå argumentet -f. Det starter serveren, så snart du logger ind, og du kan skifte fra ”synergys” til ”synergyc”, hvis du foretrækker at køre klienten automatisk. Hvis du har brug for at starte serveren før log-in, eller du vil have Synergy til at køre automatisk på andre platforme, skal du læse de komplette instruktioner, der ligger på www.bit.ly/qJSakz. Det er ikke helt ligetil, men det burde ikke tage mere end nogle få minutter på hver maskine.

Spring mellem din samling af skærme er udmærket, men Synergy rummer meget mere. Du kan skræddersy din oplevelse i mikroskopisk grad ved hjælp af programmets enorme række af konfigurationsmuligheder. Du kan få en pc-opsætning, der fuldstændig opfylder dine behov. Begynd med at oprette en blank sektion og kalde den ”funktioner”. Du behøver ikke at bruge maskinens navn denne gang. Disse funktioner er globale. Inddrag en eller flere af de følgende funktioner efterfulgt af et lighedstegn og den værdi, du vil knytte til den. Hver funktion skal have sin egen linje.

Brug heartbeat efterfulgt af et tal, der i millisekunder definerer det tidsrum, som en klient har til at sende en statusopdatering til serveren. Hvis der smutter tre statusopdateringer, bliver klienten koblet fra.

Hvis du ved en fejltagelse skifter mellem skærmene, mens du arbejder, skal du indsætte switchCorners efterfulgt af en række hjørnenavne (top-left, bottom-right og så videre), der definerer cold corners, som ikke får skærmene til at skifte, hvis musen rammer dem. Plus- og minustegn tæller også her. Du kan prøve switchCorners = all -right for at aktivere alle andre hjørner end dem øverst og nederst til højre. Følg det op med switchCornerSize = x for at definere størrelsen af switch-hjørner i pixels. Bemærk, at det også kan gælde for individuelle maskiner. Du skal blot flytte kommandoen op i skærmsektionen under den pc, du vil konfigurere.

Hvis du stadig kommer til at skifte mellem skærme uden at ville det, kan du bruge switchDelay efterfulgt af et antal millisekunder til at bestemme, hvor langt markøren skal skubbes mod skærmens kant for at springe til den næste. Du kan også bruge kommandoen switchDoubleTap (igen efterfulgt af et antal millisekunder), der fordrer et dobbeltprik på skærmkanten inden for et vist tidsrum, før der bliver skiftet skærm. En anden mulighed er at bruge begge funktioner på samme tid. Disse muligheder burde gøre det meget nemmere og behageligere at arbejde med flere skærme.

Til sidst er her en avanceret mulighed. Selvom Synergy ikke omfatter skærmdeling, kan det alligevel få dine forbundne maskiner til at føles som en stor desktop. Hvis du vil have, at alle dine skærmbeskyttere er synkrone med den på serveren, skal du blot inddrage linjen screenSaverSync = true for at line dem alle op. Husk, at ethvert input – selv input på individuelle klientmaskiner – blokerer aktivering.

Skal du bruge en hurtig og nem måde at køre en sikker forbindelse på? Du kan bruge timer på at konfigurere ssh til at understøtte Synergy – og finde ud af at springe mellem operativsystemer – eller også kan du køre Stunnel, der kører på tværs af platforme og klarer opgaven glimrende.

Installer først Stunnel, og lav en konfiguration på serveren med den følgende information:

output = stunnel.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
cert = stunnel.pem
[synergy]
accept = 25800
connect = 24800

Brug så det samme på serveren, men skift accept til 24800, tilføj linjen client = yes til filens begyndelse, og indstil connect-værdien til <server hostname>:25800.
Nu skal du blot køre Stunnel på serveren, køre ”synergys” på serveren, køre Stunnel på klienten og pege ”synergyc” mod localhost (der spærrer Synergy-porten) i stedet for mod serverens værtsnavn.

Nu burde du være koblet på via en krypteret forbindelse.

Synergy bruger som standard den lidet anvendte tast [Scroll Lock] til at binde musen og tastaturet til en enkelt skærm. Uanset hvordan strukturen ser ud, kan du klikke [Scroll Lock] for at beholde dine eksterne enheder på den maskine, du bruger lige nu.

Options-sektionen i konfigurationsfilen gør det muligt at definere specielle anslag, og her kan man endda ændre dem, der allerede eksisterer. Hvis du for eksempel vil ændre den test, der bliver brugt til at låse eksterne enheder til en enkelt skærm, skal du begynde med at frakoble standardfunktionen ved hjælp af (keystroke(ScrollLock) = lockCursorToScreen(off)).

Knyt den så til en anden tast eller tastkombination med en kommandolinje som keystroke(Ctrl+Shift+F1) = lockCursorToScreen(toggle). Du kan også skifte den til ”on” i stedet for ”toggle”. Hvis du gør det, skal du også vælge en anden tastkombination, der slår den fra igen.

Du kan bruge tastfunktionen til at sende anslag eller kombinationer til alle maskiner på samme tid. Tag for eksempel det følgende: keystroke(L) = keystroke(ctrl+alt+delete,windows),keystroke(super+F1,mac).

Denne upraktiske kommando, der ligger på en enkelt linje, konverterer et tryk på tasten [L] til [Ctrl]+[Alt]+[Delete] på en Windows-maskine og [Super]+[F1] på en Mac. Man kan også bryde kommandoerne op med et semikolon i stedet for et komma. Det repræsenterer det, der sker, når man trykker på en tast og slipper den: keystroke(shift+A) = mousebutton(1);mousebutton(2).

Den forrige kommando sender et venstre museknapsignal, når man første gang trykker [Shift]+[A], og et for den anden museknap, når de bliver sluppet. Man kan også inddrage semikolon, men udelad hver side af argumentet for at specificere, hvad der sker, når man trykker eller slipper en tast.

Endelig kan du selv indstille skræddersyede kommandoer til at skifte skærme og enten springe til en specifik maskine eller gå til den næste. Brug blot modifikatoren switchToScreen(screen name) for at springe til en specifik maskine eller switchInDirection(direction) for at gå videre ad den anviste sti. Hvis du har tænkt dig at bruge denne metode, er det sikkert klogt at undgå flere links i samme retning, for det kan gøre Synergy forvirret.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge:

[/themepacific_accordion_section]
[/themepacific_accordion]