{"id":79737,"date":"2020-04-30T07:41:58","date_gmt":"2020-04-30T05:41:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher"},"modified":"2020-04-30T07:41:58","modified_gmt":"2020-04-30T05:41:58","slug":"novyj-analog-punto-switcher-dlya-linux-xswitcher","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","title":{"rendered":"Ny motsvarighet till Punto Switcher f\u00f6r Linux: xswitcher","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nedst\u00e4ngningen av st\u00f6det f\u00f6r xneur har orsakat mig viss pl\u00e5ga de senaste sex m\u00e5naderna <i>(med OpenSUSE 15.1 p\u00e5 mina datorer: n\u00e4r xneur \u00e4r aktiverat f\u00f6rlorar f\u00f6nstren fokus och blinkar roligt i takt med tangentbordsinmatningen)<\/i>.<\/p>\n<p>\u00ab\u00c5h, fan, b\u00f6rjade skriva p\u00e5 fel layout igen\u00bb \u2014 det h\u00e4nder alldeles f\u00f6r ofta i mitt arbete. Och det ger ingen positiv k\u00e4nsla.<\/p>\n<p><img decoding=\"async\" alt=\"Ny motsvarighet till Punto Switcher f\u00f6r Linux: xswitcher\" src=\"\/wp-content\/uploads\/2020\/04\/d296936e3aedb8e94ba4c26522ffe72b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSamtidigt kan jag (som konstrukt\u00f6r) ganska tydligt formulera vad jag vill ha. Och jag ville (f\u00f6rst fr\u00e5n Punto Switcher, och sedan, tack vare Windows Vista, som jag definitivt bytte till Linux fr\u00e5n xneur) i princip bara en sak. N\u00e4r jag inser att det p\u00e5 sk\u00e4rmen \u00e4r en soppa av bokst\u00e4ver p\u00e5 fel layout (detta brukar h\u00e4nda i slutet av inmatningen av ett nytt ord), vill jag bara trycka p\u00e5 \u00abPause\/Break\u00bb. Och f\u00e5 det jag skrev.<\/p>\n<p>F\u00f6r n\u00e4rvarande har produkten en optimal (enligt mig) balans mellan funktionalitet och komplexitet. Dags att dela med sig.<\/p>\n<h2>TL.DR<\/h2>\n<p>\nH\u00e4r kommer alla tekniska detaljer, s\u00e5 f\u00f6rst \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\/blob\/master\/x%20switcher\/bin\/xswitcher\">l\u00e4nken f\u00f6r att \"prova p\u00e5\"<\/a><\/noindex> f\u00f6r de ot\u00e5liga.<\/p>\n<p>F\u00f6r n\u00e4rvarande har f\u00f6ljande beteende h\u00e5rdkodats:<\/p>\n<ul>\n<li>\u00abPause\/Break\u00bb: tar bort (Backspace) det senaste ordet, v\u00e4xlar layout i det aktiva f\u00f6nstret (mellan 0 och 1) och skriver om det.<\/li>\n<li>\u00abV\u00e4nster Ctrl utan n\u00e5got\u00bb: v\u00e4xlar layout i det aktiva f\u00f6nstret (mellan 0 och 1).<\/li>\n<li>\u00abV\u00e4nster Shift utan n\u00e5got\u00bb: aktiverar layout nr 0 i det aktiva f\u00f6nstret.<\/li>\n<li>\u00abH\u00f6ger Shift utan n\u00e5got\u00bb: aktiverar layout nr 1 i det aktiva f\u00f6nstret.<\/li>\n<\/ul>\n<p>\nFr\u00e5n och med nu planerar jag att anpassa beteendet. Utan feedback \u00e4r det inte intressant (jag \u00e4r redan n\u00f6jd). Jag tror att det finns en tillr\u00e4cklig procent av publiken p\u00e5 Habr med liknande problem.<\/p>\n<p><b>N.B.<\/b> Eftersom den nuvarande versionen av keyloggern kopplas till \"\/dev\/input\/\", m\u00e5ste xswitcher k\u00f6ras med root-r\u00e4ttigheter:<\/p>\n<pre><code class=\"bash\">chown root:root xswitcher\nchmod +xs xswitcher<\/code><\/pre>\n<p>\n<b>Observera:<\/b> \u00e4garen av filen med suid m\u00e5ste vara root, eftersom den \u00e4rver suid av \u00e4garen vid k\u00f6rning.<\/p>\n<p>Paranoiker (jag \u00e4r inget undantag) kan klona fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\">GIT<\/a><\/noindex> och bygga p\u00e5 plats. Ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<pre><code class=\"bash\">go get \"github.com\/micmonay\/keybd_event\"\ngo get \"github.com\/gvalkov\/golang-evdev\"\n\n### X11-headers f\u00f6r OpenSUSE\/deb-baserade\nzypper install libX11-devel libXmu-devel\napt-get install libx11-dev libxmu-dev\n\ncd \"x switcher\/src\/\"\ngo build -o xswitcher -ldflags \"-s -w\" --tags static_all src\/*.go\n<\/code><\/pre>\n<p>\nAutostart kan l\u00e4ggas till efter smak (beroende p\u00e5 DE).<\/p>\n<p>Fungerar, \"kr\u00e4ver ingen extra resurser\" (\u224830 sekunder CPU per dag, \u224812 MB i RSS).<\/p>\n<h2>Detaljer<\/h2>\n<p>\nNu \u2014 detaljer.<\/p>\n<p><i>Hela arkivet var ursprungligen dedikerat till mitt pet-projekt, och att starta ett annat \u2014 det k\u00e4nns f\u00f6r jobbigt just nu. S\u00e5 allt \u00e4r samlat i en enda h\u00f6g (bara i mappar) och t\u00e4ckt av AGPL (\"motsatt patent\").<\/i><\/p>\n<p>Koden f\u00f6r xswitcher \u00e4r skriven i golang, med minimala inslag av C. Tanken \u00e4r att denna metod ska ge l\u00e4gsta arbetsinsatsen (och hittills st\u00e4mmer det). Med bibeh\u00e5llen m\u00f6jlighet att koppla in det som saknas via cgo.<\/p>\n<p>I texten finns kommentarer om varifr\u00e5n jag har l\u00e5nat saker och varf\u00f6r. Eftersom koden f\u00f6r xneur inte \"inspirerade mig\", tog jag som utg\u00e5ngspunkt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/xintrea\/LoLoSwitcher\">loloswitcher<\/a><\/noindex>.<\/p>\n<p>Anv\u00e4ndningen av \"\/dev\/input\/\" har b\u00e5de sina f\u00f6rdelar (allt visas inklusive nedtryckt tangent med automatisk upprepning) och nackdelar. Nackdelarna \u00e4r f\u00f6ljande:<\/p>\n<ul>\n<li>Upprepning (h\u00e4ndelser med kod \"2\") korrelerar inte med upprepningar fr\u00e5n x:arna.<\/li>\n<li>Ingen inmatning syns via X11-gr\u00e4nssnitt (till exempel fungerar VNC s\u00e5).<\/li>\n<li>Root-\u00e5tkomst kr\u00e4vs.<\/li>\n<\/ul>\n<p>\n\u00c5 andra sidan kan man prenumerera p\u00e5 X-h\u00e4ndelser via \"XSelectExtensionEvent()\". Man kan kika i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/freedesktop\/xorg-xinput\/blob\/master\/src\/test.c\">koden f\u00f6r xinput<\/a><\/noindex>. F\u00f6r go har jag inte hittat n\u00e5got liknande, och en grov implementering gav direkt hundra rader C-kod. Jag har lagt det \u00e5t sidan f\u00f6r nu.<\/p>\n<p>Utdata \"bak\u00e5t\" \u00e4r f\u00f6r tillf\u00e4llet skapad genom att koppla en virtuell tangentbord. Tack till f\u00f6rfattaren av keybd_event, men d\u00e4r \u00e4r abstraheringen f\u00f6r h\u00f6g och jag kommer att beh\u00f6va g\u00f6ra om det. Till exempel v\u00e4ljer min h\u00f6gra Win-tangent rad 3. Och tillbaka \u00f6vers\u00e4tts bara den v\u00e4nstra Win-tangenten.<\/p>\n<h2>K\u00e4nda buggar<\/h2>\n<p><\/p>\n<ul>\n<li>Vi vet inget om \"komposit\" inmatning (exempel: \u00bd). <i>Just nu \u00e4r det inte n\u00f6dv\u00e4ndigt.<\/i><\/li>\n<li>Vi \u00e5terger den h\u00f6gra Win-tangenten felaktigt. I mitt fall f\u00f6rvr\u00e4nger den betoningen.<\/li>\n<li>Det finns ingen tydlig analys av inmatningen. Ist\u00e4llet finns det flera funktioner: Compare(), CtrlSequence(), RepeatSequence(), SpaceSequence(). <i>Tack <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/nsmcan\/\" class=\"user_link\">nsmcan<\/a><\/noindex> f\u00f6r uppm\u00e4rksamheten: jag har korrigerat i koden och h\u00e4r.<\/i> Med viss sannolikhet kan jag f\u00e5 buggar vid byte.<br \/>\n<b>P\u00e5 denna plats vet jag inte \"hur det ska g\u00f6ras\" och jag skulle vara glad f\u00f6r alla f\u00f6rslag.<\/b><\/li>\n<li><i>(Oh skr\u00e4ck)<\/i> konkurrerande anv\u00e4ndning av kanaler (keyboardEvents, miceEvents).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Slutsats<\/h2>\n<p>\nKoden \u00e4r den enklaste procedurala. <i>Och lika dum som jag.<\/i> S\u00e5 jag tr\u00f6star mig med att f\u00f6rhoppningsvis kan n\u00e4stan vilken tekniker som helst skriva det \u00f6nskade. Och detta verk borde inte f\u00f6rsvinna utan st\u00f6d som de flesta just-for-fun.<\/p>\n<p>Lycka till!<br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495748\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b). \u00ab\u0410, \u0431\u043b\u0438\u043d, \u043e\u043f\u044f\u0442\u044c \u043d\u0435 \u0432 \u0442\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435 \u043d\u0430\u0447\u0430\u043b \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c\u00bb \u2014 \u0432 \u043c\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u0447\u0430\u0441\u0442\u043e. \u0418 \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u0430 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442. \u0412 \u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":79738,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-79737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Punto Switcher \u0434\u043b\u044f linux: xswitcher | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-30T05:41:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-30T05:41:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ny motsvarighet till Punto Switcher f\u00f6r linux: xswitcher | ProHoster","description":"Avslutningen av st\u00f6det f\u00f6r xneur har orsakat mig vissa besv\u00e4r under de senaste sex m\u00e5naderna (med introduktionen av OpenSUSE 15.1 p\u00e5 mina skrivbord: n\u00e4r xneur \u00e4r aktiverat tappar f\u00f6nster fokus och blinkar roligt i takt med inmatningen.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Punto Switcher \u0434\u043b\u044f linux: xswitcher | ProHoster","og:description":"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-30T05:41:58+00:00","article:modified_time":"2020-04-30T05:41:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"79737","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:32:22","updated":"2022-09-30 15:31:31","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/79737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=79737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/79737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/79738"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=79737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=79737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=79737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}