const__pageData=JSON.parse('{"title":"Auto Shift: Why Do We Need a Shift Key?","description":"","frontmatter":{},"headers":[],"relativePath":"features/auto_shift.md","filePath":"features/auto_shift.md","lastUpdated":null}');
const_hoisted_1=/* @__PURE__ */createStaticVNode('<h1id="auto-shift-why-do-we-need-a-shift-key"tabindex="-1">AutoShift:WhyDoWeNeedaShiftKey?<aclass="header-anchor"href="#auto-shift-why-do-we-need-a-shift-key"aria-label="Permalink to "Auto Shift: Why Do We Need a Shift Key?""></a></h1><p>Tapakeyandyougetitscharacter.Tapakey,butholdit<em>slightly</em>longerandyougetitsshiftedstate.Voilà!Noshiftkeyneeded!</p><h2id="why-auto-shift"tabindex="-1">WhyAutoShift?<aclass="header-anchor"href="#why-auto-shift"aria-label="Permalinkto"WhyAutoShift?""></a></h2><p>ManypeoplesufferfromvariousformsofRSI.Acommoncauseisstretchingyourfingersrepetitivelylongdistances.Forusonthekeyboard,thepinkydoesthatalltoooftenwhenreachingfortheshiftkey.AutoShiftlookstoalleviatethatproblem.</p><h2id="how-does-it-work"tabindex="-1">HowDoesItWork?<aclass="header-anchor"href="#how-does-it-work"aria-label="Permalinkto"HowDoesItWork?""></a></h2><p>Whenyoutapakey,itstaysdepressedforashortperiodoftimebeforeitisthenreleased.Thisdepressedtimeisadifferentlengthforeveryone.AutoShiftdefinesaconstant<code>AUTO_SHIFT_TIMEOUT</code>whichistypicallysettotwiceyournormalpressedstatetime.Whenyoupressakey,atimerstarts,andifyouhavenotreleasedthekeyafterthe<code>AUTO_SHIFT_TIMEOUT</code>period,thenashiftedversionofthekeyisemitted.Ifthetimeislessthanthe<code>AUTO_SHIFT_TIMEOUT</code>time,oryoupressanotherkey,thenthenormalstateisemitted.</p><p>If<code>AUTO_SHIFT_REPEAT</code>isdefined,thereiskeyrepeatsupport.Holdingthekeydownwillrepeattheshiftedkey,thoughthiscanbedisabledwith<code>AUTO_SHIFT_NO_AUTO_REPEAT</code>.Ifyouwanttorepeatthenormalkey,thentapitoncethenimmediately(within<code>TAPPING_TERM</code>)holditdownagain(thisworkswiththeshiftedvalueaswellifauto-repeatisdisabled).</p><p>Therearealsothe<code>get_auto_shift_repeat</code>and<code>get_auto_shift_no_auto_repeat</code>functionsformoregranularcontrol.Neitherwillhaveaneffectunless<code>AUTO_SHIFT_REPEAT_PER_KEY</code>or<code>AUTO_SHIFT_NO_AUTO_REPEAT_PER_KEY</code>respectivelyaredefined.</p><h2id="are-there-limitations-to-auto-shift"tabindex="-1">AreThereLimitationstoAutoShift?<aclass="header-anchor"href="#are-there-limitations-to-auto-shift"aria-label="Permalinkto"AreThereLimitationstoAutoShift?""></a></h2><p>Yes,unfortunately.</p><ol><li>Youwillhavecharactersthatareshiftedwhenyoudidnotintendonshifting,andothercharactersyouwantedshifted,butwerenot.Thissimplycomesdowntopractice.Aswegetinahurry,wethinkwehavehitthekeylongenoughforashiftedversion,butwedidnot.Ontheotherhand,wemaythinkwearetappingthekeys,butreallywehavehelditforalittlelongerthananticipated.</li><li>Additionally,withkeyrepeatthedesiredshiftstatecangetmixedup.Itwillalways'belong'tothelastkeypressed.Forexample,keyrepeatingacapitalandthentappingsomethinglowercase(whetherornotit'sanAutoShiftkey)willresultinthecapital's<em>key</em>stillbeingheld,butshiftnot.</li><li>AutoShiftdoesnotapplytoTapHoldkeys.ForautomaticshiftingofTapHoldkeyssee<ahref="#retro-shift">RetroShift</a>.</li></ol><h2id="how-do-i-enable-auto-shift"tabindex="-1">HowDoIEnableAutoShift?<aclass="header-anchor"href="#how-do-i-enable-auto-shift"aria-label="Permalinkto"HowDoIEnableAutoShift?""></a></h2><p>Addtoyour<code>rules.mk</code>inthekeymapfolder:</p><divclass="language-vp-adaptive-theme"><buttontitle="CopyCode"class="copy"></button><spanclass="lang"></span><preclass="shikishiki-themesgithub-lightgithub-darkvp-code"><code><spanclass="line"><span>AUTO_SHIFT_ENABLE=yes</span></span></code></pre></div><p>Ifno<code>rules.mk</code>exists,youcancr