Files
komorebi/example-configurations.html
2024-01-13 21:53:06 -08:00

1085 lines
33 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="The Tiling Window Manager for Windows">
<link rel="prev" href="installation.html">
<link rel="icon" href="assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.2, mkdocs-material-9.3.1">
<title>Example configurations - Komorebi</title>
<link rel="stylesheet" href="assets/stylesheets/main.046329b4.min.css">
<link rel="stylesheet" href="assets/stylesheets/palette.85d0ee34.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="deep-purple" data-md-color-accent="deep-purple">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#downloading-example-configurations" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="." title="Komorebi" class="md-header__button md-logo" aria-label="Komorebi" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Komorebi
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Example configurations
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="deep-purple" data-md-color-accent="deep-purple" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="deep-purple" data-md-color-accent="purple" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
</label>
</form>
<div class="md-header__source">
<a href="https://github.com/LGUG2Z/komorebi" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
LGUG2Z/komorebi
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="index.html" class="md-tabs__link">
Komorebi
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="installation.html" class="md-tabs__link">
Getting started
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="." title="Komorebi" class="md-nav__button md-logo" aria-label="Komorebi" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
Komorebi
</label>
<div class="md-nav__source">
<a href="https://github.com/LGUG2Z/komorebi" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
LGUG2Z/komorebi
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
<div class="md-nav__link md-nav__container">
<a href="index.html" class="md-nav__link ">
<span class="md-ellipsis">
Komorebi
</span>
</a>
<label class="md-nav__link " for="__nav_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
Komorebi
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="design.html" class="md-nav__link">
<span class="md-ellipsis">
Design
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Getting started
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Getting started
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="installation.html" class="md-nav__link">
<span class="md-ellipsis">
Installation
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Example configurations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="example-configurations.html" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Example configurations
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#downloading-example-configurations" class="md-nav__link">
Downloading example configurations
</a>
</li>
<li class="md-nav__item">
<a href="#komorebijson" class="md-nav__link">
komorebi.json
</a>
<nav class="md-nav" aria-label="komorebi.json">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#application-specific-configuration" class="md-nav__link">
Application-specific configuration
</a>
</li>
<li class="md-nav__item">
<a href="#padding" class="md-nav__link">
Padding
</a>
</li>
<li class="md-nav__item">
<a href="#active-window-border" class="md-nav__link">
Active window border
</a>
</li>
<li class="md-nav__item">
<a href="#border-colours" class="md-nav__link">
Border colours
</a>
</li>
<li class="md-nav__item">
<a href="#layouts" class="md-nav__link">
Layouts
</a>
<nav class="md-nav" aria-label="Layouts">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bsp" class="md-nav__link">
BSP
</a>
</li>
<li class="md-nav__item">
<a href="#vertical-stack" class="md-nav__link">
Vertical Stack
</a>
</li>
<li class="md-nav__item">
<a href="#horizontal-stack" class="md-nav__link">
Horizontal Stack
</a>
</li>
<li class="md-nav__item">
<a href="#columns" class="md-nav__link">
Columns
</a>
</li>
<li class="md-nav__item">
<a href="#rows" class="md-nav__link">
Rows
</a>
</li>
<li class="md-nav__item">
<a href="#ultrawide-vertical-stack" class="md-nav__link">
Ultrawide Vertical Stack
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#whkdrc" class="md-nav__link">
whkdrc
</a>
<nav class="md-nav" aria-label="whkdrc">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setting-shell" class="md-nav__link">
Setting .shell
</a>
</li>
<li class="md-nav__item">
<a href="#key-codes" class="md-nav__link">
Key codes
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#downloading-example-configurations" class="md-nav__link">
Downloading example configurations
</a>
</li>
<li class="md-nav__item">
<a href="#komorebijson" class="md-nav__link">
komorebi.json
</a>
<nav class="md-nav" aria-label="komorebi.json">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#application-specific-configuration" class="md-nav__link">
Application-specific configuration
</a>
</li>
<li class="md-nav__item">
<a href="#padding" class="md-nav__link">
Padding
</a>
</li>
<li class="md-nav__item">
<a href="#active-window-border" class="md-nav__link">
Active window border
</a>
</li>
<li class="md-nav__item">
<a href="#border-colours" class="md-nav__link">
Border colours
</a>
</li>
<li class="md-nav__item">
<a href="#layouts" class="md-nav__link">
Layouts
</a>
<nav class="md-nav" aria-label="Layouts">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#bsp" class="md-nav__link">
BSP
</a>
</li>
<li class="md-nav__item">
<a href="#vertical-stack" class="md-nav__link">
Vertical Stack
</a>
</li>
<li class="md-nav__item">
<a href="#horizontal-stack" class="md-nav__link">
Horizontal Stack
</a>
</li>
<li class="md-nav__item">
<a href="#columns" class="md-nav__link">
Columns
</a>
</li>
<li class="md-nav__item">
<a href="#rows" class="md-nav__link">
Rows
</a>
</li>
<li class="md-nav__item">
<a href="#ultrawide-vertical-stack" class="md-nav__link">
Ultrawide Vertical Stack
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#whkdrc" class="md-nav__link">
whkdrc
</a>
<nav class="md-nav" aria-label="whkdrc">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setting-shell" class="md-nav__link">
Setting .shell
</a>
</li>
<li class="md-nav__item">
<a href="#key-codes" class="md-nav__link">
Key codes
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/LGUG2Z/komorebi/edit/master/docs/example-configurations.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"/></svg>
</a>
<a href="https://github.com/LGUG2Z/komorebi/raw/master/docs/example-configurations.md" title="View source of this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.15 8.15 0 0 1-1.23-2Z"/></svg>
</a>
<h1>Example configurations</h1>
<p><code>komorebi</code>, and tiling window managers in general, are very complex pieces of
software.</p>
<p>In an attempt to reduce some of the initial configuration burden for users who
are looking to try out the software for the first time, example configurations
are provided and updated whenever appropriate.</p>
<h2 id="downloading-example-configurations">Downloading example configurations</h2>
<p>Run the following command to download example configuration files for
<code>komorebi</code> and <code>whkd</code>. Pay attention to the output of the command to see where
the example files have been downloaded. For most new users this will be in the
<code>$Env:USERPROFILE</code> directory.</p>
<pre><code class="language-powershell">komorebic quickstart
</code></pre>
<h2 id="komorebijson">komorebi.json</h2>
<p>The example window manager configuration sets some sane defaults and provides
five preconfigured workspaces on the primary monitor each with a different
layout.</p>
<pre><code class="language-json">{
&quot;$schema&quot;: &quot;https://raw.githubusercontent.com/LGUG2Z/komorebi/master/schema.json&quot;,
&quot;app_specific_configuration_path&quot;: &quot;$Env:USERPROFILE/applications.yaml&quot;,
&quot;window_hiding_behaviour&quot;: &quot;Cloak&quot;,
&quot;cross_monitor_move_behaviour&quot;: &quot;Insert&quot;,
&quot;alt_focus_hack&quot;: true,
&quot;default_workspace_padding&quot;: 20,
&quot;default_container_padding&quot;: 20,
&quot;active_window_border&quot;: false,
&quot;active_window_border_colours&quot;: {
&quot;single&quot;: { &quot;r&quot;: 66, &quot;g&quot;: 165, &quot;b&quot;: 245 },
&quot;stack&quot;: { &quot;r&quot;: 256, &quot;g&quot;: 165, &quot;b&quot;: 66 },
&quot;monocle&quot;: { &quot;r&quot;: 255, &quot;g&quot;: 51, &quot;b&quot;: 153 }
},
&quot;monitors&quot;: [
{
&quot;workspaces&quot;: [
{ &quot;name&quot;: &quot;I&quot;, &quot;layout&quot;: &quot;BSP&quot; },
{ &quot;name&quot;: &quot;II&quot;, &quot;layout&quot;: &quot;VerticalStack&quot; },
{ &quot;name&quot;: &quot;III&quot;, &quot;layout&quot;: &quot;HorizontalStack&quot; },
{ &quot;name&quot;: &quot;IV&quot;, &quot;layout&quot;: &quot;UltrawideVerticalStack&quot; },
{ &quot;name&quot;: &quot;V&quot;, &quot;layout&quot;: &quot;Rows&quot; }
]
}
]
}
</code></pre>
<h3 id="application-specific-configuration">Application-specific configuration</h3>
<p>There is a <a href="https://github.com/LGUG2Z/komorebi-application-specific-configuration">community-maintained
repository</a>
of "apps behaving badly" that do not conform to Windows application development
guidelines and behave erratically when used with <code>komorebi</code> without additional
configuration.</p>
<p>You can always download the latest version of these configurations by running
<code>komorebic fetch-asc</code>. The output of this command will also provide a line that
you can paste into <code>komorebi.json</code> to ensure that the window manager looks for
the file in the correction location.</p>
<p>When installing and running <code>komorebi</code> for the first time, the <code>komorebic
quickstart</code> command will usually download this file to the <code>$Env:USERPROFILE</code>
directory.</p>
<h3 id="padding">Padding</h3>
<p>While you can set the workspace padding (the space between the outer edges of
the windows and the bezel of your monitor) and the container padding (the space
between each of the tiled windows) for each workspace independently, you can
also set a default for both of these values that will apply to all workspaces
using <code>default_workspace_padding</code> and <code>default_container_padding</code>.</p>
<h3 id="active-window-border">Active window border</h3>
<p>You may have seen videos and screenshots of people using <code>komorebi</code> with a
thick, colourful active window border. You can also enable this by setting
<code>active_window_border</code> to <code>true</code>. However, please be warned that this feature
is a crude hack trying to compensate for the insistence of Microsoft Windows
design teams to make custom borders with widths that are actually visible to
the user a thing of the past and removing this capability from the Win32 API.</p>
<p>I know it's buggy, and I know that most of the it sucks, but this is something
you should be bring up with the billion dollar company and not with me, the
solo developer.</p>
<h3 id="border-colours">Border colours</h3>
<p>If you choose to use the active window border, you can set different colours to
give you visual queues when you are focused on a single window, a stack of
windows, or a window that is in monocole mode.</p>
<p>The example colours given are blue single, green for stack and pink for
monocle.</p>
<h3 id="layouts">Layouts</h3>
<h4 id="bsp">BSP</h4>
<pre><code>+-------+-----+
| | |
| +--+--+
| | |--|
+-------+--+--+
</code></pre>
<h4 id="vertical-stack">Vertical Stack</h4>
<pre><code>+-------+-----+
| | |
| +-----+
| | |
+-------+-----+
</code></pre>
<h4 id="horizontal-stack">Horizontal Stack</h4>
<pre><code>+------+------+
| |
|------+------+
| | |
+------+------+
</code></pre>
<h4 id="columns">Columns</h4>
<pre><code>+--+--+--+--+
| | | | |
| | | | |
| | | | |
+--+--+--+--+
</code></pre>
<h4 id="rows">Rows</h4>
<p>If you have a vertical monitor, I recommend using this layout.</p>
<pre><code>+-----------+
|-----------|
|-----------|
|-----------|
+-----------+
</code></pre>
<h4 id="ultrawide-vertical-stack">Ultrawide Vertical Stack</h4>
<p>If you have an ultrawide monitor, I recommend using this layout.</p>
<pre><code>+-----+-----------+-----+
| | | |
| | +-----+
| | | |
| | +-----+
| | | |
+-----+-----------+-----+
</code></pre>
<h2 id="whkdrc">whkdrc</h2>
<p><code>whkd</code> is a fairly basic piece of software with a simple configuration format:
key bindings go to the left of the, and shell commands go to the right of the
colon.</p>
<p>Please remember that <code>whkd</code> does not support overriding Microsoft's limitations
on hotkey bindings that include the <code>Windows</code> key. If this is important to you,
I recommend using <a href="https://autohotkey.com">AutoHotKey</a> to set up your key
bindings for <code>komorebic</code> commands instead.</p>
<pre><code>.shell powershell
# Reload whkd configuration
# alt + o : taskkill /f /im whkd.exe &amp;&amp; start /b whkd # if shell is cmd
alt + o : taskkill /f /im whkd.exe &amp;&amp; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell
alt + shift + o : komorebic reload-configuration
# App shortcuts - these require shell to be pwsh / powershell
# The apps will be focused if open, or launched if not open
# alt + f : if ($wshell.AppActivate('Firefox') -eq $False) { start firefox }
# alt + b : if ($wshell.AppActivate('Chrome') -eq $False) { start chrome }
# Focus windows
alt + h : komorebic focus left
alt + j : komorebic focus down
alt + k : komorebic focus up
alt + l : komorebic focus right
alt + shift + oem_4 : komorebic cycle-focus previous # oem_4 is [
alt + shift + oem_6 : komorebic cycle-focus next # oem_6 is ]
# Move windows
alt + shift + h : komorebic move left
alt + shift + j : komorebic move down
alt + shift + k : komorebic move up
alt + shift + l : komorebic move right
alt + shift + return : komorebic promote
# Stack windows
alt + left : komorebic stack left
alt + down : komorebic stack down
alt + up : komorebic stack up
alt + right : komorebic stack right
alt + oem_1 : komorebic unstack # oem_1 is ;
alt + oem_4 : komorebic cycle-stack previous # oem_4 is [
alt + oem_6 : komorebic cycle-stack next # oem_6 is ]
# Resize
alt + oem_plus : komorebic resize-axis horizontal increase
alt + oem_minus : komorebic resize-axis horizontal decrease
alt + shift + oem_plus : komorebic resize-axis vertical increase
alt + shift + oem_minus : komorebic resize-axis vertical decrease
# Manipulate windows
alt + t : komorebic toggle-float
alt + shift + f : komorebic toggle-monocle
# Window manager options
alt + shift + r : komorebic retile
alt + p : komorebic toggle-pause
# Layouts
alt + x : komorebic flip-layout horizontal
alt + y : komorebic flip-layout vertical
# Workspaces
alt + 1 : komorebic focus-workspace 0
alt + 2 : komorebic focus-workspace 1
alt + 3 : komorebic focus-workspace 2
# Move windows across workspaces
alt + shift + 1 : komorebic move-to-workspace 0
alt + shift + 2 : komorebic move-to-workspace 1
alt + shift + 3 : komorebic move-to-workspace 2
</code></pre>
<h3 id="setting-shell">Setting .shell</h3>
<p>There is one special directive at the top of the file, <code>.shell</code> which can be
set to either <code>powershell</code>, <code>pwsh</code> or <code>cmd</code>. Which one you use will depend on
which shell you use in your terminal.</p>
<ul>
<li>
<p><code>powershell</code> - set this if you are using the version of PowerShell that comes
installed with Windows 10+ (the executable file for this is <code>powershell.exe</code>)</p>
</li>
<li>
<p><code>pwsh</code> - set this if you are using PowerShell 7+, which you have installed yourself either through the Windows Store or WinGet (the executable file for this is <code>pwsh.exe</code>)</p>
</li>
<li>
<p><code>cmd</code> - set this if you don't want to use PowerShell at all and instead you
want to call commands through the shell used by the old-school Command
Prompt (the executable file for this is <code>cmd.exe</code>)</p>
</li>
</ul>
<h3 id="key-codes">Key codes</h3>
<p>Key codes for alphanumeric and arrow keys are just what you would expect. For
punctuation and other keys, please refer to the <a href="https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">Virtual Key
Codes</a>
reference.</p>
<p>If you want to use one of those key codes, put them into lower case and remove
the <code>VK_</code> prefix. For example, the keycode <code>VK_OEM_PLUS</code> becomes <code>oem_plus</code> in
the sample configuration above.</p>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="installation.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Installation" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
Installation
</div>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2020-Present LGUG2Z
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": ".", "features": ["content.action.edit", "content.action.view", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "assets/javascripts/workers/search.dfff1995.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="assets/javascripts/bundle.dff1b7c8.min.js"></script>
</body>
</html>