PageSourceSearch

https://eieio.games/_next/static/chunks/pages/blog/the-global-capslock-key-b48b3727dc60b04c.js

js eieio.games collected 2026-09-24 18:29:21 UTC 8,094 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6862],{919:function(e,t,o){(window.__NEXT_P=window.__NEXT_P||[]).push(["/blog/the-global-capslock-key",function(){return o(9656)}])},9656:function(e,t,o){"use strict";o.r(t),o.d(t,{default:function(){return h},frontmatter:function(){return l},tableOfContents:function(){return r}});var n=o(5893),i=o(9843),s=o(1582);let l={title:"THE GLOBAL CAPSLOCK KEY",short_title:"THE GLOBAL CAPSLOCK KEY",subhead:"finally we can all agree on when to use caps lock",date:"2025-02-05",filter_categories:["multiplayer","stranger-interaction","best-of"],assets_dir:"the-global-capslock-key",image:"social.png",description:"I MADE A GLOBAL CAPS LOCK KEY SO THAT WE CAN ALL AGREE ON WHEN TO USE CAPS LOCK",rss_description:"I MADE A GLOBAL CAPS LOCK KEY SO THAT WE CAN ALL AGREE ON WHEN TO USE CAPS LOCK. You can see the status and download the client at https://globalcapslock.com."},r=[{level:2,text:"GlObAl CapSLOcK Is OVER",id:"toc:global-capslock-is-over",href:"#toc:global-capslock-is-over"},{level:2,text:"WHY DID YOU DO THIS",id:"toc:why-did-you-do-this",href:"#toc:why-did-you-do-this"},{level:2,text:"HOW DOES THIS WORK",id:"toc:how-does-this-work",href:"#toc:how-does-this-work"},{level:2,text:"SHOULD I USE THIS",id:"toc:should-i-use-this",href:"#toc:should-i-use-this"},{level:2,text:"THANKS, THIS SOLVES A MAJOR PROBLEM IN MY LIFE",id:"toc:thanks-this-solves-a-major-problem-in-my-life",href:"#toc:thanks-this-solves-a-major-problem-in-my-life"}],a=function(e){let{children:t}=e;return(0,n.jsx)(s.Z,{post:l,tableOfContents:r,children:t})};function c(e){let t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components},{SingleImage:o,SingleVideo:s}=t;return o||d("SingleImage",!0),s||d("SingleVideo",!0),(0,n.jsxs)(n.Fragment,{children:["\n",(0,n.jsx)(t.h2,{id:"toc:global-capslock-is-over",children:"GlObAl CapSLOcK Is OVER"}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.a,{href:"https://github.com/nolenroyalty/global-capslock",children:"REPo"})," NoW CoNTains An ExamPle SerVer if You Want to RUN It YOUrSELF."]}),"\n",(0,n.jsx)(t.p,{children:"PeoPle PressED Caps LOcK AbouT 1,500,000 TiMES oVer the 1.5 WeeKs the TOoL was OnLine."}),"\n",(0,n.jsx)(t.p,{children:"Thanks foR PlaYIng."}),"\n",(0,n.jsx)("hr",{style:{borderBottom:"none",borderLeft:"none",borderRight:"none",borderTop:"2px solid var(--color-white-transparent)"}}),"\n",(0,n.jsx)(t.p,{children:"I MADE A GLOBAL CAPS LOCK KEY. THIS WAY WE CAN ALL AGREE ON WHEN TO USE CAPS LOCK."}),"\n",(0,n.jsx)(s,{src:"global-capslock.mp4",width:1072,height:604,description:"finally i've made something useful",alt:"globalcapslock.com. A button with CAPS LOCK IS ON is visible. It is bright yellow. It switches to caps lock is off and turns grey."}),"\n",(0,n.jsxs)(t.p,{children:["It’s a small cross-platform client - it works on Windows, Mac, and Linux (although it requires ",(0,n.jsx)(t.code,{children:"xdotool"})," on Linux, so YMMV there. Send me a pull request!)"]}),"\n",(0,n.jsxs)(t.p,{children:["You can ",(0,n.jsx)(t.a,{href:"https://github.com/nolenroyalty/global-capslock",children:"set up the client here"})," or ",(0,n.jsx)(t.a,{href:"https://globalcapslock.com/",children:"see the current caps lock state here"}),"."]}),"\n","\n",(0,n.jsx)(t.h2,{id:"toc:why-did-you-do-this",children:"WHY DID YOU DO THIS"}),"\n",(0,n.jsx)(t.p,{children:"Well, some people get annoyed when you use caps lock."}),"\n",(0,n.jsx)(o,{width:1076,height:194,src:"bash-dot-org-capslock.png",alt:"A quote from bash.org. Full text: <Khassaki> HI EVERYBODY!!!!!!!!!!\n<Judge-Mental> try pressing the the Caps Lock key\n<Khassaki> O THANKS!!! ITS SO MUCH EASIER TO WRITE NOW!!!!!!!\n<Judge-Mental> fuck me",description:"CAPS LOCK IS CONTROVERSIAL"}),"\n",(0,n.jsx)(t.p,{children:"I figure the problem is that we can’t agree on when to use it - but if everyone switches to this tool, the democratic process should do its thing."}),"\n",(0,n.jsx)(t.h2,{id:"toc:how-does-this-work",children:"HOW DOES THIS WORK"}),"\n",(0,n.jsxs)(t.p,{children:["It’s pretty simple. ",(0,n.jsx)(t.a,{href:"https://github.com/nolenroyalty/global-capslock/blob/main/client.py",children:"The client"})," implements platform-specific ways of detecting and toggling caps lock state, and then has a platform-independent loop that compares your current caps lock state with the global state, and toggles things as necessary."]}),"\n",(0,n.jsx)(t.p,{children:"It’s a little harder than I expected to toggle caps lock - my first attempts on my macbook got me into a state where caps lock was on, I couldn’t turn it off, and I also couldn’t hold shift to type lowercase!"}),"\n",(0,n.jsx)(t.p,{children:"But I…think I fixed those bugs. You can probably use this."}),"\n",(0,n.jsx)(t.h2,{id:"toc:should-i-use-this",children:"SHOULD I USE THIS"}),"\n",(0,n.jsx)(t.p,{children:"tbh - if you’re asking that question, probably not!"}),"\n",(0,n.jsx)(t.h2,{id:"toc:thanks-this-solves-a-major-problem-in-my-life",children:"THANKS, THIS SOLVES A MAJOR PROBLEM IN MY LIFE"}),"\n",(0,n.jsx)(t.p,{children:"enjoy :)"})]})}function h(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})})}function d(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},1582:function(e,t,o){"use strict";o.d(t,{Z:function(){return j}});var n=o(5893),i=o(7294),s=o(1754),l=o(1686),r=o(9711),a=o(2172);let c=l.ZP.a.withConfig({componentId:"sc-d1d98fc4-0"})(["font-family:var(--regular-font);color:var(--color-white-dim);text-decoration:none;line-height:1.2;margin:0;width:fit-content;&:visited{color:var(--color-white-dim);}@media (hover:hover){&:hover{color:var(--color-white);}}"]),h=(0,l.ZP)(c).withConfig({componentId:"sc-d1d98fc4-1"})(["font-size:var(--font-size-lsmall);&:not(:first-child){margin-top:0.375rem;}"]),d=(0,l.ZP)(c).withConfig({componentId:"sc-d1d98fc4-2"})(["font-size:var(--font-size-lsmall);margin-top:0.375rem;"]),p=(0,l.ZP)(c).withConfig({componentId:"sc-d1d98fc4-3"})(["font-size:var(--font-size-small);margin-left:0.25rem;margin-top:0.125rem;"]),f=(0,l.ZP)(c).withConfig({componentId:"sc-d1d98fc4-4"})(["font-size:var(--font-size-xsmall);margin-left:0.25rem;margin-top:0.125rem;"]),u=(0,l.ZP)(c).withConfig({componentId:"sc-d1d98fc4-5"})(["font-size:var(--font-size-xsmall);margin-left:0.25rem;margin-top:0.125rem;"]),m=l.ZP.nav.withConfig({componentId:"sc-d1d98fc4-6"})(["display:flex;flex-direction:column;padding-right:64px;"]),g="toc:title";var O=i.memo(function(e){let{items:t,title:o}=e;return o&&(t=[{level:1,text:o,id:g,href:"#".concat(g)},...t]),(0,n.jsx)(m,{children:t.map(e=>{let{id:t,href:o}=e,i=null;return 1===e.level?i=h:2===e.level?i=d:3===e.level?i=p:4===e.level?i=f:5===e.level&&(i=u),(0,n.jsx)(i,{href:o,children:e.text},t)})})}),x=o(3715),b=o(9332),E=o(1916),I=o(337),S=o(1413);let w=l.ZP.nav.withConfig({componentId:"sc-67c5266d-0"})(["display:none;@media ","{display:revert;position:sticky;top:2rem;}"],s.vb.TWO_COLUMN_LAYOUT),L=l.ZP.h4.withConfig({componentId:"sc-67c5266d-1"})(["margin-top:0;font-size:var(--font-size-large);"]);var j=function(e){let{children:t,post:o,tableOfContents:s,noFooter:l=!1}=e,c=i.useRef(null),h=null!=s&&s.length>0,d=(0,b.usePathname)(),p=h?(0,n.jsxs)(w,{children:[(0,n.jsx)(L,{children:"Table of Contents"}),(0,n.jsx)(O,{items:s,title:o.short_title})]}):null,f=(0,n.jsx)(r.Dr,{contentRef:c}),u=o.image?"https://eieio.games/images/".concat(o.assets_dir,"/").concat(o.image):null;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.Z,{title:o.title,de
1scription:o.description,image:u,type:"article",date:o.date}),(0,n.jsx)(r.pD,{children:(0,n.jsx)(r.Od,{id:1,children:(0,n.jsx)(a.CL,{path:o.assets_dir,children:(0,n.jsx)(E.Z,{additionalLeftContent:p,additionalRightContent:f,noFooter:l,children:(0,n.jsxs)(I.Ls,{ref:c,children:[(0,n.jsx)(x.Z,{titleId:g,title:o.title,subhead:o.subhead,date:o.date,href:d}),t]})})})})})]})}}},function(e){e.O(0,[959,4952,3299,2888,9774,179],function(){return e(e.s=919)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.