mirror of
https://github.com/hyprwm/hyprland-website.git
synced 2024-11-17 10:55:58 +01:00
468 lines
19 KiB
Text
468 lines
19 KiB
Text
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="UTF-8" />
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
|
<link rel="shortcut icon" href="ico/favicon.ico" type="image/x-icon" />
|
||
|
<link rel="stylesheet" href="css/configure.css" />
|
||
|
<title>Configure</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="content-center" class="content-center">
|
||
|
<header id="header" class="header">
|
||
|
<div id="header-logo-div" class="header">
|
||
|
<a href="/">
|
||
|
<img
|
||
|
id="header-logo"
|
||
|
class="header"
|
||
|
src="svg/hyprland.svg"
|
||
|
alt="Hyprland Logo"
|
||
|
/>
|
||
|
</a>
|
||
|
</div>
|
||
|
<div id="header-links-div" class="header">
|
||
|
<div id="header-links" class="header">
|
||
|
<a id="header-link-home" class="header-link" href="/">Hyprland</a>
|
||
|
<a id="header-link-install" class="header-link" href="/install"
|
||
|
>Install</a
|
||
|
>
|
||
|
<a id="header-link-configure" class="header-link" href="/configure"
|
||
|
>Configure</a
|
||
|
>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="links-out" class="header-out">
|
||
|
<div id="github" class="header-out">
|
||
|
<a
|
||
|
id="link-github"
|
||
|
href="https://github.com/hyprwm/Hyprland"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>Github</a
|
||
|
>
|
||
|
</div>
|
||
|
</div>
|
||
|
</header>
|
||
|
<div id="install_h1"><img src="svg/configure.svg" alt=""><h1 >Configure_</h1></div>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Content:</p>
|
||
|
<ul id="table">
|
||
|
<li><a href="#bar">Remove the bar.</a></li>
|
||
|
<li><a href="#startup">Startup Apps</a></li>
|
||
|
<li><a href="#wall">Adding a Wallpaper</a></li>
|
||
|
<li><a href="#monitor">Monitor stuff</a></li>
|
||
|
<li><a href="#keys">Working with keybindings</a></li>
|
||
|
<li><a href="#workspaces">Setting up Workspaces</a></li>
|
||
|
<li><a href="#rules">Ruling Windows</a></li>
|
||
|
<li><a href="#animate">Animating Stuff</a></li>
|
||
|
<li><a href="#vars">Defining Variables</a></li>
|
||
|
<li><a href="#config">Multiple config files</a></li>
|
||
|
<li><a href="#sub">Submaps</a></li>
|
||
|
<li><a href="#input-sens">Per-device input</a></li>
|
||
|
<li><a href="#layer-blur">Blurring layerSurfaces</a></li>
|
||
|
</ul>
|
||
|
<br>
|
||
|
<br>
|
||
|
<div id="warning">
|
||
|
<img src="svg/warning.svg" alt="" />
|
||
|
<p style="line-height: 1.2">
|
||
|
This is just a basic config documentation, for a more detailed one, visit our <a href="https://github.com/hyprwm/Hyprland/wiki/Advanced-config" target="_blank" rel="noopener">github page</a>
|
||
|
.</p>
|
||
|
</div>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Welcome to Hyprland, now that you've done completing the install, hop onto Hyprland by selecting "Hyprland" on your desired display manager.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>On your first launch, Hyprland should automatically make a config file for you, and you should see something like this - </p>
|
||
|
<br>
|
||
|
<img src="imgs/default.png" alt="" style="width: auto; height: 400px;">
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>If it doesn't, you've probly messed up,</p>
|
||
|
<br>
|
||
|
<p>Make sure the default config <span class="code">hyprland.conf</span> exists at <span class="code">~/.config/hypr</span>.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>If it doesn't, follow along - </p>
|
||
|
<br>
|
||
|
<div id="qi-content">
|
||
|
<p>mkdir ~/.config/hypr</p>
|
||
|
</div>
|
||
|
<p>Then copy the code linked below to <span class="code">~/.config/hypr/hyprland.conf</span>.</p>
|
||
|
<br>
|
||
|
<a id="hyp-install" href="confs/hyprland.conf"><button>hyprland.conf</button></a>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>If it still does not work, something must be wrong with your install, try <a href="/install" style="color: aquamarine;"> installing</a> Hyprland again or asking our community in our <a href="https://discord.com/invite/hQ9XvMUjjr" target="_blank" rel="noopener" style="color: aquamarine;"> discord server</a>.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="bar"Per-device output>Removing that bothersome yellow message <br>on top</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Change the <span class="code">autogenerated=1</span>to 0.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>autogenerated=0</p>
|
||
|
</div>
|
||
|
<h1 id="startup">Starting your favorite apps</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<div id="qi-content">
|
||
|
<p>exec = <i>the <b>TERMINAL</b> command used to start in up.</i></p>
|
||
|
<p>exec-once = <i>the <b>TERMINAL</b> command used to start in up.</i></p>
|
||
|
</div>
|
||
|
<p>Where <span class="code">exec</span>will execute the command on every startup as-well-as every reload whereas-in <span class="code">exec-once</span>will only execute the command on startup, avoiding to run during reload(s).</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Eg.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>exec = swaybg -i ~/.config/hypr/wallpapers/wall-1.png</p>
|
||
|
<p>exec-once = waybar</p>
|
||
|
</div>
|
||
|
<h1 id="wall">Setting up a wallpaper</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Install <a href="https://github.com/hyprwm/hyprpaper">Hyprpaper</a><span style="color: rgba(243, 139, 168,1);">*</span> on your system then type the following command-</p>
|
||
|
<br>
|
||
|
<p>Hyprpaper is controlled by the config, like this:</p>
|
||
|
<br>
|
||
|
<p><span class="code">~/.config/hypr/hyprpaper.conf</span></p>
|
||
|
<div id="qi-content"><p>preload = /path/to/image.png <br>
|
||
|
<br>
|
||
|
# .. more preloads <br>
|
||
|
<br>
|
||
|
wallpaper = monitor,/path/to/image.png <br>
|
||
|
<br>
|
||
|
# .. more monitors</p></div>
|
||
|
<p>Preload will tell Hyprland to load a particular image (supported formats: png, jpg, jpeg). Wallpaper will apply the wallpaper to the selected output (monitor is the monitor's name, easily can be retrieved with hyprctl monitors)</p>
|
||
|
<br>
|
||
|
<p>You may add contain: before the file path in wallpaper= to set the mode to contain instead of cover:</p>
|
||
|
<div id="qi-content"><p>wallpaper = monitor,contain:/path/to/image.jpg</p></div>
|
||
|
<p>
|
||
|
|
||
|
A Wallpaper cannot be applied without preloading. The config is not reloaded dynamically.</p>
|
||
|
|
||
|
<p style="color: rgba(243, 139, 168,1); font-size: 14px;">*NOTE: Legacy X11 wallpaper managers like <span class="code" style="font-size: 12px;">feh</span> and <span class="code" style="font-size: 12px;">nitrogen</span> may not work on Wayland Compositor(s) such as Hyprland.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="monitor">Setting up your monitor(s)</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Your monitor can be configured by changing the <span class="code">monitor = </span> line on top of your <span class="code">hyprland.conf</span>file.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>monitor = name,res,offset,scale</p>
|
||
|
</div>
|
||
|
<p>eg.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>monitor = DP-1,1920x1080@240,0x0,1</p>
|
||
|
</div>
|
||
|
<p>will tell Hyprland to make the monitor on <span class="code">DP-1</span>with resolution <span class="code">1920x1080</span>capped at <span class="code">240 hz</span>, <span class="code">0x0</span>off from the beginning at a scale of <span class="code">1</span>.</p>
|
||
|
<br>
|
||
|
<p>Increasing the scale will make everything large.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Please use the offset for its intended purpose before asking stupid questions about "fixing" monitors being mirrored.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Please remember the offset is calculated with the scaled resolution, meaning if you want your 4K monitor with scale 2 to the left of your 1080p one, you'd use the offset <span class="code">1920x0</span> for the second screen. (3840 / 2)</p>
|
||
|
<br>
|
||
|
<p>To disable a monitor,</p>
|
||
|
<div id="qi-content">
|
||
|
<p>monitor = <i>NAME</i>, disable</p>
|
||
|
</div>
|
||
|
<p>If your workflow requires custom reserved area, you can add it with</p>
|
||
|
<div id="qi-content">
|
||
|
<p>monitor = <i>NAME</i>,<i> ADDRESERVED</i>, TOP, BOTTOM, LEFT, RIGHT</p>
|
||
|
</div>
|
||
|
<p>Where <span class="code">Top</span> <span class="code">BOTTOM</span> <span class="code">LEFT</span> and <span class="code">RIGHT</span> are integers in pixels of the reserved area to add. This does stack on top of the calculated one, (e.g. bars) but you may only use one of these rules per monitor in the config.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
|
||
|
<div id="qi-content">
|
||
|
<p>workspace = <i>NAME</i>, <i>NUMBER</i></p>
|
||
|
</div>
|
||
|
<p>Will tell Hyprland where to make the default workspace of a specific monitor</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>If you want to rotate a monitor,</p>
|
||
|
<div id="qi-content">
|
||
|
<p>monitor= <i>NAME</i>,transform,<i>TRANSFORM</i></p>
|
||
|
</div>
|
||
|
<p>where <span class="code">NAME</span> is the name, and <span class="code">TRANSFORM</span> is an integer, from 0 to 7, corresponding to your transform of choice.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>WL_OUTPUT_TRANSFORM_NORMAL = 0</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_90 = 1</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_180 = 2</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_270 = 3</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_FLIPPED = 4</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_FLIPPED_90 = 5</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_FLIPPED_180 = 6</p>
|
||
|
<p>WL_OUTPUT_TRANSFORM_FLIPPED_270 = 7</p>
|
||
|
</div>
|
||
|
<h1 id="keys">Configuring keybindings</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<div id="qi-content"><p>
|
||
|
bind = SUPER, key, dispatcher, params
|
||
|
</p></div>
|
||
|
<div id="qi-content">
|
||
|
<p>SUPER (or MOD) = Win/Alt Key</p>
|
||
|
<p>SUPERSHIFT = Win/Alt + Shift*</p>
|
||
|
<p>SUPERCTRL = Win/Alt + Ctrl*</p>
|
||
|
<P>ALT = Alt key (independent of the mod key)</P>
|
||
|
</div>
|
||
|
<P>You can even use functional keys</P>
|
||
|
<div id="qi-content">
|
||
|
<p>f<i>x</i>= function key where <i>x</i> is your 1st-12th key <br>eg. f5</p></div>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p style="font-size: 32px; font-family: JosefinSans-Regular; font-weight: 600;">Introduction Flags!</p>
|
||
|
<div id="qi-content">
|
||
|
<p>l -> locked, aka. works also when an input inhibitor is active</p>
|
||
|
<p>r -> release, will trigger on release of a key</p>
|
||
|
<p>e -> repeat, will repeat when held.</p></div>
|
||
|
<p>How to use flags?</p>
|
||
|
<div id="qi-content">
|
||
|
<p>bind[Flag] = ...</p> </div>
|
||
|
<p>Eg.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>bindrl=MOD,KEY,exec,amongus</p> </div>
|
||
|
<p>For a full list of dispacters, <a href="https://github.com/hyprwm/Hyprland/wiki/Advanced-config#general-dispatcher-list" style="color: aquamarine;">click here.</a></p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="workspaces">Workspaces</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p style="line-height: 2;">workspace args are unified. You have six choices: <br>
|
||
|
ID: e.g. 1, 2, or 3 <br>
|
||
|
Relative ID: e.g. +1, -3 or +100 <br>
|
||
|
Relative workspace on monitor: e.g. m+1, m-1 or m+3 <br>
|
||
|
Relative open workspace: e.g. e+1 or e-10 <br>
|
||
|
Name: e.g. name:Web, name:Anime or name:Better anime <br>
|
||
|
Special Workspace: special Warning: special is supported ONLY on movetoworkspace. Any other dispatcher will result in undocumented behavior.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="rules">Window Rules</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>You can set window rules for various actions. These are applied on window open!</p>
|
||
|
<div id="qi-content">
|
||
|
<p>windowrule=RULE,WINDOW</p>
|
||
|
</div>
|
||
|
<p><span class="code">RULE</span> is a rule (and a param if applicable)</p>
|
||
|
<p><span class="code">WINDOW</span> is a RegEx, either:</p>
|
||
|
<ul><li>plain regex (for matching a window class)</li> <li><span class="code">title:</span> followed by a regex (for matching a window's title)</li></ul>
|
||
|
<br>
|
||
|
<p>You can get both by typing <span class="code">hyprctl clients</span>in your terminal.</p>
|
||
|
<br>
|
||
|
<p>A full list of rules can be found <a href="https://github.com/hyprwm/Hyprland/wiki/Advanced-config#rules" style="color: aquamarine;">here.</a></p>
|
||
|
<br>
|
||
|
<p>Eg.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>windowrule=float,kitty</p>
|
||
|
<p>windowrule=monitor 0,Firefox</p>
|
||
|
<p>windowrule=opacity 0.8,Discord</p></div>
|
||
|
<h1 id="animate">Animations</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<p>Animations are declared with the <span class="code">animation</span> keyword</p>
|
||
|
<div id="qi-content">
|
||
|
<p>animation=NAME,ONOFF,SPEED,CURVE,STYLE</p>
|
||
|
</div>
|
||
|
<p><span class="code">NAME</span> can be either 0 or 1, 0 to disable, 1 to enable.</p>
|
||
|
<p><span class="code">ONOFF</span> is the amount of ds (1ds = 100ms) the animation will take</p>
|
||
|
<p><span class="code">CURVE</span> is the bezier curve name, see curves above.</p>
|
||
|
<p><span class="code">STYLE</span> (optional) is the animation style</p>
|
||
|
<br>
|
||
|
<p>Eg.</p>
|
||
|
<div id="qi-content">
|
||
|
<p>animation=workspaces,1,8,default</p>
|
||
|
<p>animation=windows,1,10,myepiccurve,slide</p>
|
||
|
</div>
|
||
|
<p>The animations are a tree. If an animation is unset, it will inherit its' parent's values.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="vars">Defining Variables</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<p>You can define your own custom variables like this:</p>
|
||
|
<div id="qi-content">
|
||
|
<p>$VAR = value</p></div>
|
||
|
|
||
|
<p>Then, to use them, simply use them. For example:</p>
|
||
|
<div id="qi-content">
|
||
|
<p>col.active_border=$MyColor</p></div>
|
||
|
<h1 id="config">Sourcing (multi-files)</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Use the source keyword to source another file.</p>
|
||
|
<br>
|
||
|
<p>For example, in your <span class="code">hyprland.conf</span> you can:</p>
|
||
|
<div id="qi-content">
|
||
|
<p>source=~/.config/hypr/myColors.conf</p></div>
|
||
|
|
||
|
<p>Please note it's LINEAR. Meaning lines above the source= will be parsed first, then lines inside <span class="code"> ~/.config/hypr/myColors.conf</span>, then lines below.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="sub">Submaps</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>If you want keybind submaps, for example if you press ALT+R, you can enter a "resize" mode, resize with arrow keys, and leave with escape, do it like this:</p>
|
||
|
<div id="qi-content"><p>bind=ALT,R,submap,resize # will switch to a submap called resize</p>
|
||
|
<br>
|
||
|
<p>submap=resize # will start a submap called "resize"</p>
|
||
|
<br>
|
||
|
<p>bind=,right,resizeactive,10 0</p>
|
||
|
<p>bind=,left,resizeactive,-10 0</p>
|
||
|
<p>bind=,up,resizeactive,0 -10</p>
|
||
|
<p>bind=,down,resizeactive,0 10</p>
|
||
|
<br>
|
||
|
<p>bind=,escape,submap,reset # use reset to go back to the global submap</p>
|
||
|
<br>
|
||
|
<p>submap=reset # will reset the submap, meaning end the current one and return to the global one.
|
||
|
</p>
|
||
|
<br>
|
||
|
<p>
|
||
|
# keybinds further down will be global again...</p></div>
|
||
|
<p><b>IMPORTANT:</b> do not forget a keybind to reset the keymap while inside it! (In this case, escape)</p>
|
||
|
<br>
|
||
|
<p>If you get stuck inside a keymap, you can use hyprctl dispatch submap reset to go back. If you do not have a terminal open, tough luck buddy. I warned you.</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<h1 id="input-sens">
|
||
|
Per-device input
|
||
|
</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>Warning: Some configs, notably touchpad ones, require a Hyprland restart.</p>
|
||
|
<br>
|
||
|
<p>Per-device config options will overwrite your options set in the input section. It's worth noting that ONLY values explicitly changed will be overwritten.</p>
|
||
|
<br>
|
||
|
<p>In order to apply per-device config options, make a new category like this:</p>
|
||
|
<div id="qi-content"><p>
|
||
|
device:name { <br>
|
||
|
<br>
|
||
|
}</p></div>
|
||
|
<p>the <span class="code">name</span> can be easily obtained by doing <span class="code">hyprctl devices</span>.</p>
|
||
|
<br>
|
||
|
<p>Inside of it, put your config options. All options from the input category (and all subcategories, e.g. input:touchpad) can be put inside, EXCEPT:</p>
|
||
|
<br>
|
||
|
<span class="code" style="color: #cfe8f6;">force_no_accel, follow_mouse</span>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>For example:</p>
|
||
|
<div id="qi-content"><p>
|
||
|
device:ROYUAN Akko Multi-modes Keyboard-B {<br>
|
||
|
repeat_rate=50<br>
|
||
|
repeat_delay=500<br>
|
||
|
middle_button_emulation=0<br>
|
||
|
} <br></p></div>
|
||
|
<p><i>remember about the space after the end of the device's name (before the {)!</i></p>
|
||
|
<br>
|
||
|
<br><h1 id="layer-blur">Blurring layerSurfaces</h1>
|
||
|
<hr>
|
||
|
<br>
|
||
|
<br>
|
||
|
<p>LayerSurfaces are not windows. These are for example: Your wallpapers, notification overlays, bars, etc.</p>
|
||
|
<br>
|
||
|
<p>If you really want to blur them, use blurls=</p>
|
||
|
<div id="qi-content">
|
||
|
<p>blurls=NAMESPACE</p></div>
|
||
|
<P>where <span class="code">NAMESPACE</span> is the namespace of the layerSurface. (You can get it from <span class="code">hyprctl layers</span> )</P>
|
||
|
<br>
|
||
|
<p>to remove a namespace from being blurred (useful in dynamic situations) use:</p>
|
||
|
<br>
|
||
|
<p>blurls=remove,NAMESPACE</p>
|
||
|
<br>
|
||
|
<br>
|
||
|
<br>
|
||
|
<hr>
|
||
|
<footer>
|
||
|
<div>
|
||
|
<p>© Hyprland Development 2022</p>
|
||
|
|
||
|
<div id="devs">
|
||
|
<p>
|
||
|
Developers -
|
||
|
<a
|
||
|
href="https://github.com/vaxry"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>Vaxry (Lead Developer)</a
|
||
|
><span>,</span>
|
||
|
<a
|
||
|
href="https://github.com/fufezan"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>Fufezan (Supporting Developer)</a
|
||
|
><span>,</span>
|
||
|
<a
|
||
|
href="https://github.com/ThatOneCalculator"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>ThatOneCalculator (Package Maintainer)</a
|
||
|
><span> and </span
|
||
|
><a
|
||
|
href="https://github.com/hyprwm/Hyprland/graphs/contributors"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>our fellow contributors</a
|
||
|
>.
|
||
|
</p>
|
||
|
</div>
|
||
|
<p class="p2">
|
||
|
Website created by -
|
||
|
<a
|
||
|
class="site"
|
||
|
href="https://github.com/System-x64"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
>System-x64 (Dikshant Namdeo)</a
|
||
|
>.
|
||
|
</p>
|
||
|
<br />
|
||
|
<p class="p2" style="margin-bottom: 10px;">
|
||
|
Hyprland is licensed under the BSD 3-Clause "New" or "Revised"
|
||
|
License.
|
||
|
</p>
|
||
|
</div>
|
||
|
<div id="foot-icons">
|
||
|
<a
|
||
|
href="https://github.com/hyprwm/Hyprland"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
><img src="svg/github.svg" alt=""
|
||
|
/></a>
|
||
|
<a
|
||
|
href="https://discord.com/invite/hQ9XvMUjjr"
|
||
|
target="_blank"
|
||
|
rel="noopener"
|
||
|
><img src="svg/discord.svg" alt=""
|
||
|
/></a>
|
||
|
</div>
|
||
|
</footer>
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
|
||
|
|
||
|
<!-- <div id="qi-content">
|
||
|
<p>mkdir ~/.config/hypr</p>
|
||
|
</div> -->
|