From f76f6d53160dddb11a9ee3e3a615f8fda7946a75 Mon Sep 17 00:00:00 2001 From: ms264556 <29752086+ms264556@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:00:51 +0000 Subject: [PATCH] Remove stale content: updates live at ms264556.net --- README.md | 34 +++---- images/VSMeiryoUI.png | Bin 59210 -> 0 bytes images/VSVerdana.png | Bin 27925 -> 0 bytes pages/BluetoothKeyboardViaKVM.md | 22 +---- pages/DellPbPSwitch.md | 51 +--------- pages/InputSwitchHotkey.md | 86 +---------------- pages/PfSenseLetsEncryptToRuckus.md | 2 +- pages/RuckusCountryCodeChange.md | 2 +- pages/StandaloneApRootShell.md | 2 +- pages/VerdanaRetinaVisualStudio.md | 145 +--------------------------- pages/VerdanaVisualStudio.md | 115 +--------------------- pages/ZD1000UpgradeFromV3.md | 2 +- pages/ZD1200LicensesAndSupport.md | 2 +- pages/ZD1200OpenPfsensePorts.md | 2 +- 14 files changed, 27 insertions(+), 438 deletions(-) delete mode 100644 images/VSMeiryoUI.png delete mode 100644 images/VSVerdana.png diff --git a/README.md b/README.md index f1b4095..e50ee41 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,29 @@ -# Hackery +# [Hackery](https://ms264556.net) -Just hacks and code snippets which might be useful to someone else. +The hacks and guides have moved to [ms264556.net](https://ms264556.net). -## Ruckus Wireless Guides +The github repo is only being used for website comments, issues and notes. -[Push Let's Encrypt certificates to Ruckus Unleashed/ZoneDirector](https://ms264556.net/pages/PfSenseLetsEncryptToRuckus) +## [Ruckus Wireless Guides](https://ms264556.net/ruckus/#guides) -[Connect APs to ZoneDirector over the Internet](https://ms264556.net/pages/ZD1200OpenPfsensePorts) +Configuring certificates and firewalls for Ruckus Unleashed and ZoneDirector -## Ruckus Wireless Hackery +## [Ruckus Wireless Hackery](https://ms264556.net/ruckus/#hackery) -[Change the Country Code on country-locked Ruckus Access Points](https://ms264556.net/pages/RuckusCountryCodeChange) +Extend the functionality or lifespan of your Ruckus AP or ZoneDirectors -[Recovering after a ZoneDirector failure](https://ms264556.net/pages/MigrateDeadZoneDirector) +## [Font Hackery](https://ms264556.net/font/) -[Other Ruckus Wireless Hackery](https://ms264556.net) +Improve the usability of Verdana as a programming font -## Font Hackery +## [Dell Monitor Guides](https://ms264556.net/dell/) -[A tweaked Verdana font for Programming (100% or 125% text scaling version)](pages/VerdanaVisualStudio.md) +Configuring Dell Monitor KVM and PbP/PiP functionality -[A HiDPI-friendly Verdana font alternative for Programming (150%+ text scaling version)](pages/VerdanaRetinaVisualStudio.md) +# Notes -## Dell Monitor KVM Guides +The following tools, plugins and libraries are used (thanks!):- -[Sharing a Bluetooth Keyboard between Linux and Windows](pages/BluetoothKeyboardViaKVM.md) - -[Setting up a hotkey to switch between Linux and Windows](pages/InputSwitchHotkey.md) - -[Setting up a hotkey to switch Picture-by-Picture On/Off](pages/DellPbPSwitch.md) +* [VitePress](https://vitepress.dev/) +* [vitepress-plugin-comment-with-giscus](https://github.com/T-miracle/vitepress-plugin-comment-with-giscus) +* [@gera2ld/tarjs](https://github.com/gera2ld/tarjs) diff --git a/images/VSMeiryoUI.png b/images/VSMeiryoUI.png deleted file mode 100644 index 213f4d43615375ebf90b991e8b2c8fc100c49bfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59210 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 diff --git a/pages/BluetoothKeyboardViaKVM.md b/pages/BluetoothKeyboardViaKVM.md index 7424565..409ee85 100644 --- a/pages/BluetoothKeyboardViaKVM.md +++ b/pages/BluetoothKeyboardViaKVM.md @@ -1,23 +1,3 @@ # Sharing a Bluetooth Keyboard between Linux and Windows -I plug a USB Bluetooth dongle into my Dell monitor, so it follows me from PC to PC. - -There's lots of instructions to pair a bluetooth keyboard in Windows then copy the link key to Linux. I need it the other way around: I want to pair the keyboard with my latest Linux install, then copy the link key to my Windows install. - -Download `winexe`: this lets me run commands on a remote Windows PC. I've used the version below on several different Ubuntu-based distros:- -```bash -cd ~ -wget https://github.com/ms264556/WinEXE-CentOS7/raw/master/winexe -chmod +x winexe -``` - -Now retrieve the link key and poke it into the Windows PC. -```bash -sudo bash # we can't see the necessary info as an ordinary user - -windows_address=192.168.1.248 # change me to the Windows PCs address or hostname -windows_credentials=DOMAIN/USER%PASS # change me to the windows logon (remove DOMAIN/ if the account is local) - -cd /var/lib/bluetooth -grep -r -H -A 1 --include=info "\[LinkKey\]" | sed "s/://g ; s~[/=]~ ~g ; s/.*/\L&/g ; s/-key.*/\U&/g" | awk '{getline;print $1 " /v " $2 " /t REG_BINARY /d " $4}' | xargs -I{} ~/winexe --user=$windows_credentials --system //$windows_address 'reg add HKLM\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\{} /f' -``` \ No newline at end of file +This content has [moved](https://ms264556.net/dell/BluetoothKeyboardViaKVM). \ No newline at end of file diff --git a/pages/DellPbPSwitch.md b/pages/DellPbPSwitch.md index 7ca0c66..e23eac4 100644 --- a/pages/DellPbPSwitch.md +++ b/pages/DellPbPSwitch.md @@ -1,52 +1,3 @@ # Setup Hotkeys to turn PbP On/Off on Dell monitors -This is useful if you want to run a full-screen Teams/Zoom meeting or watch a full-screen video, but leave a panel free for making notes or surfing the internet. - -### 1) Download and Install Dell Display Manager (DDM) -Currently here: -* [https://dl.dell.com/FOLDER08877637M/1/ddmsetup2107.exe?fn=ddmsetup2107.exe](https://dl.dell.com/FOLDER08877637M/1/ddmsetup2107.exe?fn=ddmsetup2107.exe) - -### 2) Download DDM Hotkey Manager (DDMHKM) -Currently here: -* [http://www.entechtaiwan.com/files/ddmhkm.exe](http://www.entechtaiwan.com/files/ddmhkm.exe) - -### 3) Configure the Hotkey - -> My example assumes a Dell monitor supporting 80/20 is installed (e.g. U4021QW), and that the PC has 2 cables connected to ports DP1 & HDMI2. - -* Run the downloaded `ddmhkm.exe` to start the DDM Hotkey Manager. -* In the _DDM command-line parameters_ box, type `/1:SetPxPMode Off`. -* Click in the _Select system-wide-hotkey_, and press the hotkey combination you want for No-PbP. -* Increment the Hotkey from 0 to 1 -* In the _DDM command-line parameters_ box, type `/1:SetPxPMode PBP-2H-82 DP1 HDMI2`. -* Click in the _Select system-wide-hotkey_, and press the hotkey combination you want for 80/20 PbP. -* Close the DDM Hotkey Manager. -* Exit & Restart the Dell Display Manager. - -### 4) Fixup the Windows Display Settings - -#### 80/20 PbP - -* Use your hotkey to turn 80/20 PbP on. -* Go into `Settings` > `System` > `Display` -* Make sure that the Main display and Secondary display are in the correct positions. -* Select the main display -* Make sure `Make this my main display` is ticked. -* Make sure `Extend these displays` is selected (from the button beside `Identify`). -* Make sure `Scale` is set to what you like (e.g. 125%). -* Make sure `Display Resolution` is set correctly (i.e. 4096 x 2160 on a U4021QW). -* Select the 2nd screen -* Make sure `Scale` is set to what you like (e.g. 125%). -* Make sure `Display Resolution` is set correctly (i.e. 1024 x 2160 on a U4021QW). - -#### No PbP - -* Use your hotkey to turn PbP off. -* Go into `Settings` > `System` > `Display` -* Select the main display -* Make sure `Make this my main display` is ticked. -* Make sure `Show only on 1` is selected (from the button beside `Identify`). -* Make sure `Scale` is set to what you like (e.g. 125%). -* Make sure `Display Resolution` is set correctly (i.e. 5120 x 2160 on a U4021QW). - -> Note that after switching to a new layout it will take 10 seconds or so before DDM starts listening to hotkeys again. +This content has [moved](https://ms264556.net/dell/DellPbPSwitch). diff --git a/pages/InputSwitchHotkey.md b/pages/InputSwitchHotkey.md index ae021b1..485a935 100644 --- a/pages/InputSwitchHotkey.md +++ b/pages/InputSwitchHotkey.md @@ -1,87 +1,3 @@ # Setup Hotkey to Switch Dell monitor between PCs -## Windows PC -### 1) Install Dell Display Manager (DDM) -Currently here: -* [https://dl.dell.com/FOLDER09052092M/1/ddmsetup.exe](https://dl.dell.com/FOLDER09052092M/1/ddmsetup.exe) - -### 2) Install DDM Hotkey Manager (DDMHKM) -Currently here: -* [http://www.entechtaiwan.com/files/ddmhkm.exe](http://www.entechtaiwan.com/files/ddmhkm.exe) - -### 3) Configure the Hotkey - -* Run the downloaded `ddmhkm.exe` to start the DDM Hotkey Manager. -* In the _DDM command-line parameters_ box, type `/1:SetActiveInput HDMI`. -* Click in the _Select system-wide-hotkey_, and press the hotkey combination. -* Close the DDM Hotkey Manager. -* Exit & Restart the Dell Display Manager. - -## Linux PC -### 1) Install ddcutil -```bash -sudo bash -``` - -```bash -apt install ddcutil -``` -### 2) Allow runnning of ddcutil without Administrator prompt -```bash -cat </usr/share/polkit-1/actions/sh.fabi.pkexec.ddcutil.policy - - - - - - Authentication is required to run the ddcutil - CHOOSEAGOODLOGO - - yes - yes - yes - - /usr/bin/ddcutil - false - - - -EOF -``` -```bash -cat </usr/share/polkit-1/rules.d/49-ddcutil_nopass_tony.rules -polkit.addRule(function(action, subject) { - if (action.id == "sh.fabi.pkexec.ddcutil" && subject.user == "tony") { - return polkit.Result.YES; - } -}); -EOF -``` - - -### 3) Create script to Switch Inputs -```bash -cat </usr/local/bin/switch-monitor-to-displayport.sh -#!/bin/bash -pkexec ddcutil setvcp 60 0x0f -EOF -chmod +x /usr/local/bin/switch-monitor-to-displayport.sh -``` - -> ```60``` is the ddc inputsource, and ```0x0f``` is my monitor's inputsource code for DisplayPort1. -> If you don't know your monitor's inputsource codes the you can [look them up here](https://github.com/ddccontrol/ddccontrol-db/tree/master/db/monitor). - -### 4) Setup the Global Hotkey -Varies depending on Linux distro. - -For Linux Mint: -* Open Keyboard Settings > Shortcuts > Custom Shortcuts -* Press _Add custom shortcut_ button -* In the _Name:_ box, enter something like `Switch Monitor To DisplayPort` -* In the _Command:_ box, enter `/usr/local/bin/switch-monitor-to-displayport.sh` -* Press the _Add_ button -* In the _Keyboard bindings_ list, click on first `unassigned` slot -* Press the hotkey combination - +This content has [moved](https://ms264556.net/dell/InputSwitchHotkey). \ No newline at end of file diff --git a/pages/PfSenseLetsEncryptToRuckus.md b/pages/PfSenseLetsEncryptToRuckus.md index 784ff86..59cf088 100644 --- a/pages/PfSenseLetsEncryptToRuckus.md +++ b/pages/PfSenseLetsEncryptToRuckus.md @@ -1,3 +1,3 @@ # Push TLS Certificates to Ruckus ZoneDirector / Unleashed -This content has [moved](https://ms264556.net/pages/PfSenseLetsEncryptToRuckus). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/PfSenseLetsEncryptToRuckus). \ No newline at end of file diff --git a/pages/RuckusCountryCodeChange.md b/pages/RuckusCountryCodeChange.md index eb55453..c022ca8 100644 --- a/pages/RuckusCountryCodeChange.md +++ b/pages/RuckusCountryCodeChange.md @@ -1,3 +1,3 @@ # Bypassing the Country Lock for a US model Ruckus AP -This content has [moved](https://ms264556.net/pages/RuckusCountryCodeChange). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/RuckusCountryCodeChange). \ No newline at end of file diff --git a/pages/StandaloneApRootShell.md b/pages/StandaloneApRootShell.md index 99baa7f..1e33ced 100644 --- a/pages/StandaloneApRootShell.md +++ b/pages/StandaloneApRootShell.md @@ -1,3 +1,3 @@ # Obtaining a root shell on Standalone/Solo Ruckus APs -This content has [moved](https://ms264556.net/pages/StandaloneApRootShell). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/StandaloneApRootShell). \ No newline at end of file diff --git a/pages/VerdanaRetinaVisualStudio.md b/pages/VerdanaRetinaVisualStudio.md index e3bcb56..d6ea69d 100644 --- a/pages/VerdanaRetinaVisualStudio.md +++ b/pages/VerdanaRetinaVisualStudio.md @@ -1,146 +1,3 @@ # HiDPI Verdana Font for Programming -Verdana is the perfect programming font... but it looks kinda chunky at 150% magnification or above (which is the default for a 27" 4K screen). - -Meiryo's latin characters are pretty much identical to Verdana, but with updated hinting which is much improved on HiDPI screens. Unfortunately (for programmers) Meiryo's `\` is replaced with `¥`, and Visual Studio ignores the substitution table entry which would fix this. - -So I've created a tweaked font (in FontForge) which puts the correct backslash glyph back. -I also added a => ligature, widened the hyphen, lowered the asterisk, and tweaked the kerning on angle brackets. - - - -You probably don't have Meiryo, so from the Optional features Settings (try typing "Manage Optional Features" in the Start menu), add the Japanese Supplemental Fonts. -I accidentally saved the results to https://github.com/ms264556/Hackery/tree/master/images, if you want to save yourself some effort and just grab the fonts. - -FontForge needs to run the script which generates the new font: -```Batchfile -fontforge.exe -script vsMeiryo.py -``` - -Where `vsMeiryo.py` is: -```python -import fontforge -import sys - -def unmapGlyph(font, glyphname): - glyph = font[glyphname] - glyph.unicode = -1 - glyph.glyphname = ".unmapped" + glyph.glyphname - -def modifyFont(font): - # bigger, lowered asterisk - plus = font["plus"] - unmapGlyph(font, "asterisk") - asterisk = font.createChar(0x2A, "asterisk") - asterisk.width = 1446 - asterisk.vwidth = plus.vwidth - asterisk.addReference("uniFF0A", psMat.translate(-300, -50)) - - # remap hyphen-minus from figuredash (which is short and fat) to minus (which is long and skinny) - font["figuredash"].altuni = tuple( - [a[0] for a in font["figuredash"].altuni if a[0] != 0x2D]) - minus = font["minus"] - minus.altuni = tuple([a[0] for a in minus.altuni]) + (0x2D,) - - # make minus a little shorter - minus.width = 1410 - minusContour = fontforge.contour() - minusContour.is_quadratic = True - minusContour.moveTo(1205, 585) - minusContour.lineTo(205, 585) - minusContour.lineTo(205, 733) - minusContour.lineTo(1205, 733) - minusContour.closed = True - minusLayer = fontforge.layer() - minusLayer.is_quadratic = True - minusLayer += minusContour - minus.foreground = minusLayer - - # this is a japanese font: use the proper backslash instead of the yen sign - # (there's a substitution table entry to do this, but VS doesn't use it) - unmapGlyph(font, "backslash") - backslash = font["glyph99"] - backslash.unicode = 0x5C - backslash.glyphname = fontforge.nameFromUnicode(backslash.unicode) - - # nice looking => glyph - goesTo = font.createChar(-1, ".unmappedgoesto") - goesTo.width = 2412 - goesToContour = fontforge.contour() - goesToContour.is_quadratic = True - goesToContour.moveTo(2182, 674) - goesToContour.lineTo(1660, 21) - goesToContour.lineTo(1578, 86) - goesToContour.lineTo(1826, 375) - goesToContour.lineTo(230, 375) - goesToContour.lineTo(230, 523) - goesToContour.lineTo(1938, 523) - goesToContour.lineTo(2056, 672) - goesToContour.lineTo(1959, 795) - goesToContour.lineTo(230, 795) - goesToContour.lineTo(230, 943) - goesToContour.lineTo(1825, 943) - goesToContour.lineTo(1586, 1195) - goesToContour.lineTo(1664, 1265) - goesToContour.closed = True - goesToLayer = fontforge.layer() - goesToLayer.is_quadratic = True - goesToLayer += goesToContour - goesTo.foreground = goesToLayer - goesTo.autoHint() - goesTo.autoInstr() - - # ligature so our nice looking => glyph gets used - font.addLookup("ligavs", "gsub_ligature", (), - (("liga", (("latn", ("dflt")),)),)) - font.addLookupSubtable("ligavs", "ligavs") - goesTo.addPosSub("ligavs", ("equal", "greater")) - - # kern pairs for << >> || - font.addLookup("kernvs", "gpos_pair", (), - (("kern", (("latn", ("dflt")),)),)) - font.addLookupSubtable("kernvs", "kernvs") - font["less"].addPosSub("kernvs", "less", -250) - font["greater"].addPosSub("kernvs", "greater", -250) - font["bar"].addPosSub("kernvs", "bar", -294) - - # reencode so our new chars get used - font.reencode("unicode") - -def nameFont(font, fontFamily, fontWeight): - font.familyname = fontFamily - fontIsBold = "Bold" in fontWeight - fontIsItalic = "Ital" in fontWeight - font.weight = "Bold" if fontIsBold else "Book" - fontNeedsSuffix = (fontIsBold or fontIsItalic) - font.fontname = font.familyname.replace( - " ", "") + (("-" + fontWeight.replace(" ", "")) if fontNeedsSuffix else "") - font.fullname = font.familyname + \ - ((" " + fontWeight) if fontNeedsSuffix else "") - font.uniqueid = 0 - font.sfnt_names = ((0x409, 1, font.familyname), - (0x409, 2, fontWeight), (0x409, 4, font.fullname)) - font.os2_weight = 700 if fontIsBold else 400 - font.macstyle = (0x01 if fontIsBold else 0x00) | ( - 0x02 if fontIsItalic else 0x00) - panose = list(font.os2_panose) - if (panose[2] <= 0x06 and fontIsBold): - panose[2] = 0x08 - if (panose[2] > 0x06 and not fontIsBold): - panose[2] = 0x06 - if (panose[7] >= 0x02 and panose[7] <= 0x08 and fontIsItalic): - panose[7] += 0x07 - if (panose[7] >= 0x09 and panose[7] <= 0x0F and not fontIsItalic): - panose[7] -= 0x07 - font.os2_panose = tuple(panose) - -def main(argv): - font = fontforge.open("C:\\Windows\\Fonts\\meiryo.ttc(Meiryo UI)") - modifyFont(font) - nameFont(font, "Vs Meiryo UI", "Regular") - font.generate(font.fontname + ".ttf") - font.close() - -if __name__ == '__main__': - main(sys.argv[1:]) -``` +This content has [moved](https://ms264556.net/font/VerdanaRetinaVisualStudio). \ No newline at end of file diff --git a/pages/VerdanaVisualStudio.md b/pages/VerdanaVisualStudio.md index c0b261c..a8fff88 100644 --- a/pages/VerdanaVisualStudio.md +++ b/pages/VerdanaVisualStudio.md @@ -1,116 +1,3 @@ # Verdana tweaked for Programming -Verdana is the perfect programming font... but the latest Visual Studio releases do some per-symbol layout malarkey which ruins the angle bracket kerning. I guess nobody at Microsoft uses proportional fonts anymore. - -So I've created a tweaked font (in FontForge) which abuses the glyph hinting so that everything looks nice again in Visual Studio. -I also added a => ligature, and widened the hyphen. - - - -FontForge needs to run the script which generates the new font: -```Batchfile -fontforge.exe -script vsVerdana.py -``` - -Where `vsVerdana.py` is: -```python -import fontforge -import sys - -def unmapGlyph(font, glyphname): - glyph = font[glyphname] - glyph.unicode = -1 - glyph.glyphname = ".unmapped" + glyph.glyphname - -def modifyFont(font): - # remap hyphen (short & fat) to figuredash (long and skinny) - unmapGlyph(font, "hyphen") - figuredash = font["figuredash"] - figuredash.altuni = (0x2D,) - - # nice looking => glyph - goesTo = font.createChar(-1, ".unmappedgoesto") - goesTo.width = 2412 - goesToContour = fontforge.contour() - goesToContour.is_quadratic = True - goesToContour.moveTo(2182, 672) - goesToContour.lineTo(1660, 21) - goesToContour.lineTo(1578, 86) - goesToContour.lineTo(1826, 362) - goesToContour.lineTo(230, 362) - goesToContour.lineTo(230, 522) - goesToContour.lineTo(1938, 522) - goesToContour.lineTo(2056, 672) - goesToContour.lineTo(1959, 782) - goesToContour.lineTo(230, 782) - goesToContour.lineTo(230, 942) - goesToContour.lineTo(1825, 942) - goesToContour.lineTo(1586, 1195) - goesToContour.lineTo(1664, 1265) - goesToContour.closed = True - goesToLayer = fontforge.layer() - goesToLayer.is_quadratic = True - goesToLayer += goesToContour - goesTo.foreground = goesToLayer - goesTo.ttinstrs = fontforge.parseTTInstrs("""NPUSHB\n32\n4\n84\n5\n9\n84\n5\n15\n10\n1\n10\n64\n15\n1\n48\n15\n64\n15\n2\n3\n4\n9\n47\n8\n64\n8\n2\n8\n8\n64\n9\n1\n9\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nMDAP[rnd]\nDELTAP1\nSRP2\nIP\nIP\nDELTAP1\nDELTAP1\nSVTCA[y-axis]\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nMIRP[min,rnd,black]\nMDAP[rnd]\nMIRP[min,rnd,black]\nIUP[x]\nIUP[y]""") - - font["less"].ttinstrs = fontforge.parseTTInstrs("""PUSHB_5\n 115\n 5\n 1\n 44\n 0\nPUSHW_1\n -30\nNPUSHB\n 31\n 10\n 24\n 55\n 3\n 30\n 10\n 24\n 55\n 3\n 31\n 0\n 47\n 0\n 2\n 3\n 15\n 0\n 1\n 0\n 8\n 4\n 5\n 1\n 0\n 0\n 64\n 1\n 80\n 1\n 2\n 1\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nMDAP[rnd]\nSRP2\nIP\nIP\nSHP[rp1]\nSVTCA[y-axis]\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nDELTAP1\nMDAP[rnd]\nCALL\nCALL\nIUP[x]\nIUP[y]\nMPPEM\nGTEQ\nIF\nNPUSHB\n 11\n 5\n 4\n 84\n 3\n 2\n 3\n 6\n 84\n 0\n 1\n 0\nSDPVTL[orthog]\nSRP0\nMIRP[rp0,min,rnd,black]\nSDPVTL[orthog]\nSRP0\nMIRP[rp0,min,rnd,black]\nSFVTCA[x-axis]\nMDRP[grey]\nEIF\nSVTCA[x-axis]\nDELTAP1""") - - font["greater"].ttinstrs = fontforge.parseTTInstrs("""PUSHB_5\n 124\n 3\n 1\n 44\n 1\nPUSHW_1\n -30\nNPUSHB\n 33\n 10\n 24\n 55\n 5\n 30\n 10\n 24\n 55\n 5\n 31\n 1\n 47\n 1\n 2\n 5\n 15\n 1\n 1\n 1\n 8\n 3\n 5\n 1\n 0\n 0\n 47\n 1\n 48\n 1\n 64\n 1\n 3\n 1\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nMDAP[rnd]\nSRP2\nIP\nIP\nSHP[rp1]\nSVTCA[y-axis]\nMDAP[rnd]\nDELTAP1\nSHP[rp1]\nDELTAP1\nMDAP[rnd]\nCALL\nCALL\nIUP[x]\nIUP[y]\nMPPEM\nGTEQ\nIF\nNPUSHB\n 11\n 3\n 4\n 84\n 5\n 5\n 6\n 2\n 84\n 1\n 1\n 0\nSDPVTL[orthog]\nSRP0\nMIRP[rp0,min,rnd,black]\nSDPVTL[orthog]\nSRP0\nMIRP[rp0,min,rnd,black]\nSFVTCA[x-axis]\nMDRP[grey]\nEIF\nSVTCA[x-axis]\nDELTAP1""") - - # ligature so our nice looking => glyph gets used - font.addLookup("ligavs", "gsub_ligature", (), - (("liga", (("latn", ("dflt")),)),)) - font.addLookupSubtable("ligavs", "ligavs") - goesTo.addPosSub("ligavs", ("equal", "greater")) - - # kern pairs for << >> || - font.addLookup("kernvs", "gpos_pair", (), - (("kern", (("latn", ("dflt")),)),)) - font.addLookupSubtable("kernvs", "kernvs") - font["less"].addPosSub("kernvs", "less", -268) - font["greater"].addPosSub("kernvs", "greater", -268) - font["bar"].addPosSub("kernvs", "bar", -302) - - # reencode so our new chars get used - font.reencode("unicode") - -def nameFont(font, fontFamily, fontWeight): - font.familyname = fontFamily - fontIsBold = "Bold" in fontWeight - fontIsItalic = "Ital" in fontWeight - font.weight = "Bold" if fontIsBold else "Book" - fontNeedsSuffix = (fontIsBold or fontIsItalic) - font.fontname = font.familyname.replace( - " ", "") + (("-" + fontWeight.replace(" ", "")) if fontNeedsSuffix else "") - font.fullname = font.familyname + \ - ((" " + fontWeight) if fontNeedsSuffix else "") - font.uniqueid = 0 - font.sfnt_names = ((0x409, 1, font.familyname), - (0x409, 2, fontWeight), (0x409, 4, font.fullname)) - font.os2_weight = 700 if fontIsBold else 400 - font.macstyle = (0x01 if fontIsBold else 0x00) | ( - 0x02 if fontIsItalic else 0x00) - panose = list(font.os2_panose) - if (panose[2] <= 0x06 and fontIsBold): - panose[2] = 0x08 - if (panose[2] > 0x06 and not fontIsBold): - panose[2] = 0x06 - if (panose[7] >= 0x02 and panose[7] <= 0x08 and fontIsItalic): - panose[7] += 0x07 - if (panose[7] >= 0x09 and panose[7] <= 0x0F and not fontIsItalic): - panose[7] -= 0x07 - font.os2_panose = tuple(panose) - -def main(argv): - font = fontforge.open("C:\\Windows\\Fonts\\verdana.ttf") - modifyFont(font) - nameFont(font, "Vs Verdana", "Regular") - font.generate(font.fontname + ".ttf") - font.close() - -if __name__ == '__main__': - main(sys.argv[1:]) -``` - -I accidentally saved the results to https://github.com/ms264556/Hackery/tree/master/images, if you want to save yourself some effort and just grab the fonts. +This content has [moved](https://ms264556.net/font/VerdanaVisualStudio). \ No newline at end of file diff --git a/pages/ZD1000UpgradeFromV3.md b/pages/ZD1000UpgradeFromV3.md index addee1b..6e4f28d 100644 --- a/pages/ZD1000UpgradeFromV3.md +++ b/pages/ZD1000UpgradeFromV3.md @@ -1,3 +1,3 @@ # Upgrade a ZoneDirector running software version 3.0 -This content has [moved](https://ms264556.net/pages/ZD1000UpgradeFromV3). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/ZD1000UpgradeFromV3). \ No newline at end of file diff --git a/pages/ZD1200LicensesAndSupport.md b/pages/ZD1200LicensesAndSupport.md index 9ae12b2..a0110fd 100644 --- a/pages/ZD1200LicensesAndSupport.md +++ b/pages/ZD1200LicensesAndSupport.md @@ -1,3 +1,3 @@ # Add Licenses and Upgrade Entitlement to ZoneDirector -This content has [moved](https://ms264556.net/pages/ZDDiscontinuedLicensesAndSupport). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/ZDDiscontinuedLicensesAndSupport). \ No newline at end of file diff --git a/pages/ZD1200OpenPfsensePorts.md b/pages/ZD1200OpenPfsensePorts.md index fdbd997..6fa83b0 100644 --- a/pages/ZD1200OpenPfsensePorts.md +++ b/pages/ZD1200OpenPfsensePorts.md @@ -1,3 +1,3 @@ # Connect APs to ZoneDirector over the public Internet -This content has [moved](https://ms264556.net/pages/ZD1200OpenPfsensePorts). \ No newline at end of file +This content has [moved](https://ms264556.net/ruckus/ZD1200OpenPfsensePorts). \ No newline at end of file