From 7f3c0f71e5ecf5eeb1961fb6717ac66413821c13 Mon Sep 17 00:00:00 2001 From: xsghetti Date: Wed, 3 Apr 2024 02:18:07 -0400 Subject: [PATCH] new content --- content/_index.md | 10 ++++++++ content/hyprcrux/installing-my-dots/index.md | 16 ++++++++++++- public/hyprcrux/installing-my-dots/index.html | 24 ++++++++++++++++++- public/index.html | 20 +++++++++++++++- public/index.json | 2 +- public/lib/typeit/typeit.umd.js | 2 ++ 6 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 public/lib/typeit/typeit.umd.js diff --git a/content/_index.md b/content/_index.md index 06b8042..6fb37b7 100644 --- a/content/_index.md +++ b/content/_index.md @@ -4,3 +4,13 @@ date = 2024-04-01T17:42:57-04:00 draft = false +++ +{{< typeit + tag=h3 + lifeLike=true + speed=80 + loop=false +>}} +Greetings, Traveler! +Here you will find documentation of my journey with Linux, Web Dev, Hyprland and other FOSS Projects. +{{< /typeit >}} + diff --git a/content/hyprcrux/installing-my-dots/index.md b/content/hyprcrux/installing-my-dots/index.md index e70a604..abf007b 100644 --- a/content/hyprcrux/installing-my-dots/index.md +++ b/content/hyprcrux/installing-my-dots/index.md @@ -6,9 +6,23 @@ description: "A concise guide on installing my hyprland dotfiles." tags: ["Hyprland", "Arch"] ---

This is a step by step guide on using
my dotfiles for Arch Linux/Hyprland

- {{< github repo="xsghetti/dotfiles" >}} +### Why *HyprCrux* you ask? +Well, to keep it as simple as possible if you're not familiar with the term...

+**Crux**
+*/krəks/*
+*noun
+a particular point of difficulty. +plural noun: cruces; plural noun: cruxes.* + +I chose this name for my [Hyprland](https://hyprland.org) configuration because I have always found this realm of technology extremely difficult. As an avid rock climber, the term crux is used for the toughest move or sequence of moves on a climb. As an aspiring developer, I felt the term *Crux* fit in here as well! + +I switched to Linux full time rougly 3 months ago after tinkering for a few months on VM's and using my laptop as a test machine, and finally installing Arch Linux on my PC. I have been fascinated with [r/unixporn](https://reddit.com/r/unixporn/) for quite some time now, and after doing very *minimal* research I saw hyprland and knew I had to get my hands on that software. + + + + {{< alert >}} **Warning!** My configs are messy and may not work for you! {{< /alert >}} diff --git a/public/hyprcrux/installing-my-dots/index.html b/public/hyprcrux/installing-my-dots/index.html index 62603ab..d047d3e 100644 --- a/public/hyprcrux/installing-my-dots/index.html +++ b/public/hyprcrux/installing-my-dots/index.html @@ -95,7 +95,7 @@ "keywords": ["Hyprland","Arch"], "mainEntityOfPage": "true", - "wordCount": "57" + "wordCount": "210" }] @@ -718,6 +718,28 @@

This is a step by step guide on using
my dotfiles for Arch Linux/Hyprla + +

Why HyprCrux you ask? +
+ + + # + + +

+

Well, to keep it as simple as possible if you’re not familiar with the term…

+Crux
+/krəks/
+noun
+a particular point of difficulty. +plural noun: cruces; plural noun: cruxes.

+

I chose this name for my + Hyprland configuration because I have always found this realm of technology extremely difficult. As an avid rock climber, the term crux is used for the toughest move or sequence of moves on a climb. As an aspiring developer, I felt the term Crux fit in here as well!

+

I switched to Linux full time rougly 3 months ago after tinkering for a few months on VM’s and using my laptop as a test machine, and finally installing Arch Linux on my PC. I have been fascinated with + r/unixporn for quite some time now, and after doing very minimal research I saw hyprland and knew I had to get my hands on that software.

+ diff --git a/public/index.html b/public/index.html index 94821ba..4765d33 100644 --- a/public/index.html +++ b/public/index.html @@ -120,6 +120,9 @@ + + + @@ -479,7 +482,22 @@

-
+

+ + +
diff --git a/public/index.json b/public/index.json index 95ce032..aa99e79 100644 --- a/public/index.json +++ b/public/index.json @@ -1,2 +1,2 @@ -[{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/arch/","section":"Tags","summary":"","title":"Arch","type":"tags"},{"content":" This is a step by step guide on using\nmy dotfiles for Arch Linux/Hyprland xsghetti/dotfiles My current dotfiles for Arch Linux/Hyprland null 14 0 Warning! My configs are messy and may not work for you! Clone It! Step One Clone my repository here: git clone https://github.com/xsghetti/dotfiles Run These Commands Step Two cd ~/dotfiles cp -r ~/dotfiles/.config/* ~/.config ","date":"2 April 2024","externalUrl":null,"permalink":"/hyprcrux/installing-my-dots/","section":"HyprCrux Documentation","summary":"This is a step by step guide on using","title":"How To Install My Hyprland Dotfiles","type":"hyprcrux"},{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/hyprland/","section":"Tags","summary":"","title":"Hyprland","type":"tags"},{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"1 April 2024","externalUrl":null,"permalink":"/hyprcrux/","section":"HyprCrux Documentation","summary":"","title":"HyprCrux Documentation","type":"hyprcrux"},{"content":"","date":"1 April 2024","externalUrl":null,"permalink":"/","section":"xSghetti","summary":"","title":"xSghetti","type":"page"},{"content":" whoami # Name: Dante Medoro\nCall Sign: Teez\nAliases: xCrux, xSghetti\nAge: 30\n","date":"1 April 2024","externalUrl":null,"permalink":"/about/","section":"xSghetti","summary":"whoami # Name: Dante Medoro","title":"About","type":"page"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}] \ No newline at end of file +[{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/arch/","section":"Tags","summary":"","title":"Arch","type":"tags"},{"content":" This is a step by step guide on using\nmy dotfiles for Arch Linux/Hyprland xsghetti/dotfiles My current dotfiles for Arch Linux/Hyprland null 14 0 Why HyprCrux you ask? # Well, to keep it as simple as possible if you\u0026rsquo;re not familiar with the term\u0026hellip;\nCrux /krəks/\nnoun a particular point of difficulty. plural noun: cruces; plural noun: cruxes.\nI chose this name for my Hyprland configuration because I have always found this realm of technology extremely difficult. As an avid rock climber, the term crux is used for the toughest move or sequence of moves on a climb. As an aspiring developer, I felt the term Crux fit in here as well!\nI switched to Linux full time rougly 3 months ago after tinkering for a few months on VM\u0026rsquo;s and using my laptop as a test machine, and finally installing Arch Linux on my PC. I have been fascinated with r/unixporn for quite some time now, and after doing very minimal research I saw hyprland and knew I had to get my hands on that software.\nWarning! My configs are messy and may not work for you! Clone It! Step One Clone my repository here: git clone https://github.com/xsghetti/dotfiles Run These Commands Step Two cd ~/dotfiles cp -r ~/dotfiles/.config/* ~/.config ","date":"2 April 2024","externalUrl":null,"permalink":"/hyprcrux/installing-my-dots/","section":"HyprCrux Documentation","summary":"This is a step by step guide on using","title":"How To Install My Hyprland Dotfiles","type":"hyprcrux"},{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/hyprland/","section":"Tags","summary":"","title":"Hyprland","type":"tags"},{"content":"","date":"2 April 2024","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"1 April 2024","externalUrl":null,"permalink":"/hyprcrux/","section":"HyprCrux Documentation","summary":"","title":"HyprCrux Documentation","type":"hyprcrux"},{"content":" ","date":"1 April 2024","externalUrl":null,"permalink":"/","section":"xSghetti","summary":" ","title":"xSghetti","type":"page"},{"content":" whoami # Name: Dante Medoro\nCall Sign: Teez\nAliases: xCrux, xSghetti\nAge: 30\n","date":"1 April 2024","externalUrl":null,"permalink":"/about/","section":"xSghetti","summary":"whoami # Name: Dante Medoro","title":"About","type":"page"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"1 January 0001","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}] \ No newline at end of file diff --git a/public/lib/typeit/typeit.umd.js b/public/lib/typeit/typeit.umd.js new file mode 100644 index 0000000..afd060f --- /dev/null +++ b/public/lib/typeit/typeit.umd.js @@ -0,0 +1,2 @@ +// TypeIt by Alex MacArthur - https://typeitjs.com +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TypeIt=t()}(this,(function(){"use strict";const e=e=>Array.isArray(e),t=t=>e(t)?t:[t];const s="data-typeit-id",i="ti-cursor",r={started:!1,completed:!1,frozen:!1,destroyed:!1},n={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map((e=>({opacity:e}))),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},o=`[${s}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,a=e=>document.createElement(e),u=e=>document.createTextNode(e),l=(e,t="")=>{let s=a("style");s.id=t,s.appendChild(u(e)),document.head.appendChild(s)},h=t=>(e(t)||(t=[t/2,t/2]),t),d=(e,t)=>Math.abs(Math.random()*(e+t-(e-t))+(e-t));let p=e=>e/2;const c=e=>Array.from(e);let m=e=>([...e.childNodes].forEach((e=>{if(e.nodeValue)return[...e.nodeValue].forEach((t=>{e.parentNode.insertBefore(u(t),e)})),void e.remove();m(e)})),e);const f=e=>{let t=document.implementation.createHTMLDocument();return t.body.innerHTML=e,m(t.body)};function y(e,t=!1,s=!1){let r,n=e.querySelector(`.${i}`),o=document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:e=>{if(n&&s){if(e.classList?.contains(i))return NodeFilter.FILTER_ACCEPT;if(n.contains(e))return NodeFilter.FILTER_REJECT}return e.classList?.contains(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),a=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),a.push(r);return t?a.reverse():a}function g(e,t=!0){return t?y(f(e)):c(e).map(u)}const b=e=>Number.isInteger(e),P=({queueItems:e,selector:t,cursorPosition:s,to:i})=>{if(b(t))return-1*t;let r=new RegExp("END","i").test(i),n=t?[...e].reverse().findIndex((({char:e})=>{let s=e.parentElement,i=s.matches(t);return!(!r||!i)||i&&s.firstChild.isSameNode(e)})):-1;return n<0&&(n=r?0:e.length-1),n-s+(r?0:1)},C=(e,t)=>new Array(t).fill(e);let v=e=>new Promise((t=>{requestAnimationFrame((async()=>{t(await e())}))})),T=e=>e?.getAnimations().find((t=>t.id===e.dataset.tiAnimationId)),w=({cursor:e,frames:t,options:s})=>{let i=e.animate(t,s);return i.pause(),i.id=e.dataset.tiAnimationId,v((()=>{v((()=>{i.play()}))})),i},I=e=>e.func?.call(null),q=async({index:e,queueItems:t,wait:s,cursor:i,cursorOptions:r})=>{let n=t[e][1],o=[],a=e,u=n,l=()=>u&&!u.delay,h=n.shouldPauseCursor()&&r.autoPause;for(;l();)o.push(u),l()&&a++,u=t[a]?t[a][1]:null;if(o.length)return await v((async()=>{for(let e of o)await I(e)})),a-1;let d,p=T(i);return p&&(d={...p.effect.getComputedTiming(),delay:h?r.autoPauseDelay:0}),await s((async()=>{p&&h&&p.cancel(),await v((()=>{I(n)}))}),n.delay),await(({cursor:e,options:t,cursorOptions:s})=>{if(!e||!s)return;let i,r=T(e);r&&(t.delay=r.effect.getComputedTiming().delay,i=r.currentTime,r.cancel());let n=w({cursor:e,frames:s.animation.frames,options:t});return i&&(n.currentTime=i),n})({cursor:i,options:d,cursorOptions:r}),e};const S=e=>"value"in e;let N=e=>"function"==typeof e?e():e,A=(e,t=document,s=!1)=>t["querySelector"+(s?"All":"")](e);const E=(e,t)=>Object.assign({},e,t);let L={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};return class{element;timeouts;cursorPosition;predictedCursorPosition;statuses={started:!1,completed:!1,frozen:!1,destroyed:!1};opts;id;queue;cursor;unfreeze=()=>{};constructor(e,s={}){var i;this.opts=E(n,s),this.element="string"==typeof(i=e)?A(i):i,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=E({},r),this.id=Math.random().toString().substring(2,9),this.queue=function(e){let s=function(e){return t(e).forEach((e=>n.set(Symbol(e.char?.innerText),i({...e})))),this},i=e=>(e.shouldPauseCursor=function(){return Boolean(this.typeable||this.cursorable||this.deletable)},e),r=()=>Array.from(n.values()),n=new Map;return s(e),{add:s,set:function(e,t){let s=[...n.keys()];n.set(s[e],i(t))},wipe:function(){n=new Map,s(e)},done:(e,t=!1)=>t?n.delete(e):n.get(e).done=!0,reset:function(){n.forEach((e=>delete e.done))},destroy:e=>n.delete(e),getItems:(e=!1)=>e?r():r().filter((e=>!e.done)),getQueue:()=>n,getTypeable:()=>r().filter((e=>e.typeable))}}([{delay:this.opts.startDelay}]),this.#e(s),this.cursor=this.#t(),this.element.dataset.typeitId=this.id,l(o),this.opts.strings.length&&this.#s()}go(){return this.statuses.started?this:(this.#i(),this.opts.waitUntilVisible?(e=this.element,t=this.#r.bind(this),new IntersectionObserver(((s,i)=>{s.forEach((s=>{s.isIntersecting&&(t(),i.unobserve(e))}))}),{threshold:1}).observe(e),this):(this.#r(),this));var e,t}destroy(e=!0){this.timeouts=(this.timeouts.forEach(clearTimeout),[]),N(e)&&this.cursor&&this.#n(this.cursor),this.statuses.destroyed=!0}reset(e){!this.is("destroyed")&&this.destroy(),e?(this.queue.wipe(),e(this)):this.queue.reset(),this.cursorPosition=0;for(let t in this.statuses)this.statuses[t]=!1;return this.element[this.#o()?"value":"innerHTML"]="",this}is=function(e){return this.statuses[e]};type(e,t={}){e=N(e);let{instant:s}=t,i=this.#a(t),r=g(e,this.opts.html).map((e=>{return{func:()=>this.#u(e),char:e,delay:s||(t=e,/<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML))?0:this.#l(),typeable:e.nodeType===Node.TEXT_NODE};var t})),n=[i[0],{func:async()=>await this.opts.beforeString(e,this)},...r,{func:async()=>await this.opts.afterString(e,this)},i[1]];return this.#h(n,t)}break(e={}){return this.#h({func:()=>this.#u(a("BR")),typeable:!0},e)}move(e,t={}){e=N(e);let s=this.#a(t),{instant:i,to:r}=t,n=P({queueItems:this.queue.getTypeable(),selector:null===e?"":e,to:r,cursorPosition:this.#d}),o=n<0?-1:1;return this.predictedCursorPosition=this.#d+n,this.#h([s[0],...C({func:()=>this.#p(o),delay:i?0:this.#l(),cursorable:!0},Math.abs(n)),s[1]],t)}exec(e,t={}){let s=this.#a(t);return this.#h([s[0],{func:()=>e(this)},s[1]],t)}options(e,t={}){return e=N(e),this.#c(e),this.#h({},t)}pause(e,t={}){return this.#h({delay:N(e)},t)}delete(e=null,t={}){e=N(e);let s=this.#a(t),i=e,{instant:r,to:n}=t,o=this.queue.getTypeable(),a=(()=>null===i?o.length:b(i)?i:P({queueItems:o,selector:i,cursorPosition:this.#d,to:n}))();return this.#h([s[0],...C({func:this.#m.bind(this),delay:r?0:this.#l(1),deletable:!0},a),s[1]],t)}freeze(){this.statuses.frozen=!0}flush(e=(()=>{})){return this.#i(),this.#r(!1).then(e),this}getQueue(){return this.queue}getOptions(){return this.opts}updateOptions(e){return this.#c(e)}getElement(){return this.element}empty(e={}){return this.#h({func:this.#f.bind(this)},e)}async#f(){this.#o()?this.element.value="":this.#y.forEach(this.#n.bind(this))}async#r(e=!0){this.statuses.started=!0;let t=t=>{this.queue.done(t,!e)};try{let s=[...this.queue.getQueue()];for(let e=0;ee+t)).forEach((e=>{let[i]=s[e];t(i)})),e=i}t(i)}}if(!e)return this;if(this.statuses.completed=!0,await this.opts.afterComplete(this),!this.opts.loop)throw"";let i=this.opts.loopDelay;this.#b((async()=>{await this.#P(i[0]),this.#r()}),i[1])}catch(s){}return this}async#p(e){var t,s,r;this.cursorPosition=(t=e,s=this.cursorPosition,r=this.#y,Math.min(Math.max(s+t,0),r.length)),((e,t,s)=>{let r=t[s-1],n=A(`.${i}`,e);(e=r?.parentNode||e).insertBefore(n,r||null)})(this.element,this.#y,this.cursorPosition)}async#P(e){let t=this.#d;t&&await this.#p({value:t});let s=this.#y.map((e=>[Symbol(),{func:this.#m.bind(this),delay:this.#l(1),deletable:!0,shouldPauseCursor:()=>!0}]));for(let i=0;i{this.unfreeze=()=>{this.statuses.frozen=!1,e()}})),s||await this.opts.beforeStep(this),await((e,t,s)=>new Promise((i=>{s.push(setTimeout((async()=>{await e(),i()}),t||0))})))(e,t,this.timeouts),s||await this.opts.afterStep(this)}async#i(){if(!this.#o()&&this.cursor&&this.element.appendChild(this.cursor),this.#C){((e,t)=>{let r=`[${s}='${e}'] .${i}`,n=getComputedStyle(t),o=Object.entries(L).reduce(((e,[t,s])=>`${e} ${t}: var(--ti-cursor-${t}, ${s||n[t]});`),"");l(`${r} { display: inline-block; width: 0; ${o} }`,e)})(this.id,this.element),this.cursor.dataset.tiAnimationId=this.id;let{animation:e}=this.opts.cursor,{frames:t,options:r}=e;w({frames:t,cursor:this.cursor,options:{duration:this.opts.cursorSpeed,...r}})}}#o(){return S(this.element)}#h(e,t){return this.queue.add(e),this.#v(t),this}#v(e={}){let t=e.delay;t&&this.queue.add({delay:t})}#a(e={}){return[{func:()=>this.#c(e)},{func:()=>this.#c(this.opts)}]}async#c(e){this.opts=E(this.opts,e)}#s(){let e=this.opts.strings.filter((e=>!!e));e.forEach(((t,s)=>{if(this.type(t),s+1===e.length)return;let i=this.opts.breakLines?[{func:()=>this.#u(a("BR")),typeable:!0}]:C({func:this.#m.bind(this),delay:this.#l(1)},this.queue.getTypeable().length);this.#T(i)}))}#e=e=>{e.cursor=(e=>{if("object"==typeof e){let t={},{frames:s,options:i}=n.cursor.animation;return t.animation=e.animation||{},t.animation.frames=e.animation?.frames||s,t.animation.options=E(i,e.animation?.options||{}),t.autoPause=e.autoPause??n.cursor.autoPause,t.autoPauseDelay=e.autoPauseDelay||n.cursor.autoPauseDelay,t}return!0===e?n.cursor:e})(e.cursor??n.cursor),this.opts.strings=this.#w(t(this.opts.strings)),this.opts=E(this.opts,{html:!this.#I&&this.opts.html,nextStringDelay:h(this.opts.nextStringDelay),loopDelay:h(this.opts.loopDelay)})};#w(e){let t=this.element.innerHTML;return t?(this.element.innerHTML="",this.opts.startDelete?(this.element.innerHTML=t,m(this.element),this.#T(C({func:this.#m.bind(this),delay:this.#l(1),deletable:!0},this.#y.length)),e):(s=t,s.replace(//g,"").trim().split(//)).concat(e)):e;var s}#t(){if(this.#I)return null;let e=a("span");return e.className=i,this.#C?(e.innerHTML=f(this.opts.cursorChar).innerHTML,e):(e.style.visibility="hidden",e)}#T(e){let t=this.opts.nextStringDelay;this.queue.add([{delay:t[0]},...e,{delay:t[1]}])}#u(e){((e,t)=>{if(S(e))return void(e.value=`${e.value}${t.textContent}`);t.innerHTML="";let s=(r=t.originalParent,/body/i.test(r?.tagName)?e:t.originalParent||e);var r;s.insertBefore(t,A("."+i,s)||null)})(this.element,e)}#m(){this.#y.length&&(this.#I?this.element.value=this.element.value.slice(0,-1):this.#n(this.#y[this.cursorPosition]))}#n(e){((e,t)=>{if(!e)return;let s=e.parentNode;(s.childNodes.length>1||s.isSameNode(t)?e:s).remove()})(e,this.element)}#l(e=0){return function(e){let{speed:t,deleteSpeed:s,lifeLike:i}=e;return s=null!==s?s:t/3,i?[d(t,p(t)),d(s,p(s))]:[t,s]}(this.opts)[e]}get#d(){return this.predictedCursorPosition??this.cursorPosition}get#I(){return S(this.element)}get#C(){return!!this.opts.cursor&&!this.#I}get#y(){return e=this.element,S(e)?c(e.value):y(e,!0).filter((e=>!(e.childNodes.length>0)));var e}}}));