1026 lines
31 KiB
HTML
1026 lines
31 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en"><head>
|
|||
|
<link rel="preload" href="../static/fonts/comfortaa-v30-subset-regular.woff2" as="font" type="font/woff2" crossorigin>
|
|||
|
<link rel="preload" href="../static/fonts/ubuntu-v15-latin-regular.woff2" as="font" type="font/woff2" crossorigin>
|
|||
|
<link rel="preload" href="../static/fonts/ubuntu-v15-subset-500.woff2" as="font" type="font/woff2" crossorigin>
|
|||
|
<link rel="preload" href="../static/img/libera-color.svg" as="image" type="image/svg+xml">
|
|||
|
<meta charset="utf-8">
|
|||
|
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
|||
|
<meta content="width=device-width, initial-scale=1" name="viewport"><!-- Begin Jekyll SEO tag v2.8.0 -->
|
|||
|
<title>Catalysing and De-escalation | Libera Chat</title>
|
|||
|
<meta name="generator" content="Jekyll v3.9.2" />
|
|||
|
<meta property="og:title" content="Catalysing and De-escalation" />
|
|||
|
<meta property="og:locale" content="en_GB" />
|
|||
|
<meta name="description" content="People often use Libera.Chat to get help with something on their computer. Technical support channels are one of the things we’re here for!" />
|
|||
|
<meta property="og:description" content="People often use Libera.Chat to get help with something on their computer. Technical support channels are one of the things we’re here for!" />
|
|||
|
<link rel="canonical" href="catalyst.html" />
|
|||
|
<meta property="og:url" content="https://libera.chat/guides/catalyst" />
|
|||
|
<meta property="og:site_name" content="Libera Chat" />
|
|||
|
<meta property="og:type" content="article" />
|
|||
|
<meta property="article:published_time" content="2022-10-03T18:36:48+00:00" />
|
|||
|
<meta name="twitter:card" content="summary" />
|
|||
|
<meta property="twitter:title" content="Catalysing and De-escalation" />
|
|||
|
<meta name="twitter:site" content="@liberachat" />
|
|||
|
<meta property="article:publisher" content="liberachat" />
|
|||
|
<script type="application/ld+json">
|
|||
|
{"@context":"https://schema.org","@type":"TechArticle","dateModified":"2022-10-03T18:36:48+00:00","datePublished":"2022-10-03T18:36:48+00:00","description":"People often use Libera.Chat to get help with something on their computer. Technical support channels are one of the things we’re here for!","headline":"Catalysing and De-escalation","url":"https://libera.chat/guides/catalyst"}</script>
|
|||
|
<!-- End Jekyll SEO tag -->
|
|||
|
<link rel="icon" type="image/svg+xml" href="../static/img/libera-color.svg">
|
|||
|
<link rel="alternate icon" href="../favicon.ico">
|
|||
|
<!-- Stylesheets -->
|
|||
|
<style>/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
|
|||
|
*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}</style>
|
|||
|
<style>@font-face {
|
|||
|
/* comfortaa-regular - subset */
|
|||
|
font-family: 'Comfortaa';
|
|||
|
src: url('../static/fonts/comfortaa-v30-subset-regular.woff2') format('woff2'), url('../static/fonts/comfortaa-v30-subset-regular.woff') format('woff'), url('../static/fonts/comfortaa-v30-subset-regular.ttf') format('truetype');
|
|||
|
font-style: normal;
|
|||
|
font-weight: 400;
|
|||
|
font-display: swap;
|
|||
|
/* . C L a b e h i r t */
|
|||
|
unicode-range: U+002E, U+0043, U+004C, U+0061-0062, U+0065, U+0068-0069, U+0072, U+0074;
|
|||
|
}
|
|||
|
|
|||
|
@font-face {
|
|||
|
/* ubuntu-regular - latin */
|
|||
|
font-family: 'Ubuntu';
|
|||
|
src: local(''), url('../static/fonts/ubuntu-v15-latin-regular.woff2') format('woff2'), url('../static/fonts/ubuntu-v15-latin-regular.woff') format('woff'), url('../static/fonts/ubuntu-v15-latin-regular.ttf') format('truetype');
|
|||
|
font-style: normal;
|
|||
|
font-weight: 400;
|
|||
|
font-display: swap;
|
|||
|
}
|
|||
|
|
|||
|
@font-face {
|
|||
|
/* ubuntu-500 - subset */
|
|||
|
font-family: 'Ubuntu';
|
|||
|
src: local(''), url('../static/fonts/ubuntu-v15-subset-500.woff2') format('woff2'), url('../static/fonts/ubuntu-v15-subset-500.woff') format('woff'), url('../static/fonts/ubuntu-v15-subset-500.ttf') format('truetype');
|
|||
|
font-style: normal;
|
|||
|
font-weight: 500;
|
|||
|
font-display: swap;
|
|||
|
/* C c e n o t */
|
|||
|
unicode-range: U+0043 U+0063 U+0065 U+006E U+006F U+0074;
|
|||
|
}
|
|||
|
|
|||
|
:root {
|
|||
|
--header-height: 4rem;
|
|||
|
--content-inline-padding: 1.3rem;
|
|||
|
--content-max-width: 80ch;
|
|||
|
/* define our palette for all themes */
|
|||
|
--white: #fff;
|
|||
|
--gray-100: #f3f4f6;
|
|||
|
--gray-200: #e5e7eb;
|
|||
|
--gray-300: #d1d5db;
|
|||
|
--gray-400: #9ca3af;
|
|||
|
--gray-800: #1f2937;
|
|||
|
--gray-900: #111827;
|
|||
|
--brand-purple: #5555ff;
|
|||
|
--brand-pink: #ff55dd;
|
|||
|
/* light-theme vars */
|
|||
|
--c-bg: var(--gray-100);
|
|||
|
--c-bg-secondary: var(--white);
|
|||
|
--c-text: var(--gray-800);
|
|||
|
--c-border: var(--gray-300);
|
|||
|
--c-hl: var(--brand-pink);
|
|||
|
--c-hl-secondary: var(--brand-purple);
|
|||
|
--c-text-on-hl: var(--gray-800);
|
|||
|
--c-text-on-hl-secondary: var(--white);
|
|||
|
}
|
|||
|
|
|||
|
@media (prefers-color-scheme: dark) {
|
|||
|
:root {
|
|||
|
--c-bg: var(--gray-800);
|
|||
|
--c-bg-secondary: var(--gray-900);
|
|||
|
--c-text: var(--gray-200);
|
|||
|
--c-border: var(--gray-400);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
* {
|
|||
|
color: var(--c-text);
|
|||
|
box-sizing: border-box;
|
|||
|
font-family: Ubuntu, sans-serif;
|
|||
|
letter-spacing: .1ch;
|
|||
|
}
|
|||
|
|
|||
|
main *, .hero * {
|
|||
|
line-height: 1.5;
|
|||
|
}
|
|||
|
|
|||
|
body {
|
|||
|
background-color: var(--c-bg);
|
|||
|
min-height: 100vh;
|
|||
|
display: grid;
|
|||
|
grid-template-rows: var(--header-height) min-content auto auto min-content;
|
|||
|
grid-template-columns: 1fr;
|
|||
|
grid-template-areas: "header" "hero" "main" "aside" "footer";
|
|||
|
}
|
|||
|
|
|||
|
a {
|
|||
|
text-decoration: underline;
|
|||
|
text-underline-offset: .05rem;
|
|||
|
}
|
|||
|
|
|||
|
a:hover {
|
|||
|
text-underline-offset: .25rem;
|
|||
|
color: var(--c-hl);
|
|||
|
}
|
|||
|
|
|||
|
h1, h2, h3, h4, h5, h6, p {
|
|||
|
word-break: break-word;
|
|||
|
scroll-margin-block-start: 4.5rem;
|
|||
|
}
|
|||
|
|
|||
|
h1, h2, h3, h4, h5, h6, strong {
|
|||
|
font-weight: 500;
|
|||
|
}
|
|||
|
|
|||
|
em {
|
|||
|
font-style: italic;
|
|||
|
}
|
|||
|
|
|||
|
h1, h2, h3, h4, h5, h6 {
|
|||
|
margin-block-end: 0;
|
|||
|
}
|
|||
|
|
|||
|
h1+*, h2+*, h3+*, h4+*, h5+*, h6+* {
|
|||
|
margin-block-start: 0;
|
|||
|
}
|
|||
|
|
|||
|
main h1 {
|
|||
|
font-size: 2.25rem;
|
|||
|
}
|
|||
|
|
|||
|
main h2 {
|
|||
|
font-size: 1.5rem;
|
|||
|
}
|
|||
|
|
|||
|
main h3 {
|
|||
|
font-size: 1.25rem;
|
|||
|
}
|
|||
|
|
|||
|
main :is(h2, h3, h4, h5, h6) a {
|
|||
|
text-decoration: none;
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
|
|||
|
main :is(h2, h3, h4, h5, h6) a:hover::before {
|
|||
|
content: '#';
|
|||
|
position: absolute;
|
|||
|
left: -1.5ch;
|
|||
|
bottom: 0;
|
|||
|
font-weight: normal;
|
|||
|
font-size: 1rem;
|
|||
|
}
|
|||
|
|
|||
|
@media screen and (min-width: 800px) {
|
|||
|
body {
|
|||
|
grid-template-columns: min-content 8fr;
|
|||
|
grid-template-rows: 4rem min-content auto min-content;
|
|||
|
grid-template-areas: "header header" "hero hero" "aside main" "footer footer";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.skiplink {
|
|||
|
z-index: 9999;
|
|||
|
transform: translateY(calc(-100% - 1rem));
|
|||
|
display: block;
|
|||
|
position: absolute;
|
|||
|
height: 4rem;
|
|||
|
padding: var(--content-inline-padding);
|
|||
|
background-color: var(--c-bg);
|
|||
|
border-inline-end: 1px solid var(--c-border);
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
}
|
|||
|
|
|||
|
.skiplink:focus {
|
|||
|
z-index: 9999;
|
|||
|
transform: translateY(0);
|
|||
|
}
|
|||
|
|
|||
|
header {
|
|||
|
grid-area: header;
|
|||
|
height: var(--header-height);
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
background-color: var(--c-bg-secondary);
|
|||
|
position: sticky;
|
|||
|
top: 0;
|
|||
|
z-index: 1000;
|
|||
|
display: flex;
|
|||
|
flex-direction: row;
|
|||
|
flex-wrap: nowrap;
|
|||
|
justify-content: space-between;
|
|||
|
}
|
|||
|
|
|||
|
header a {
|
|||
|
text-decoration: none;
|
|||
|
}
|
|||
|
|
|||
|
header .logo {
|
|||
|
display: flex;
|
|||
|
flex-wrap: nowrap;
|
|||
|
align-items: center;
|
|||
|
height: 100%;
|
|||
|
padding-inline-start: var(--content-inline-padding);
|
|||
|
}
|
|||
|
|
|||
|
header .logo img {
|
|||
|
padding-block-end: .3rem;
|
|||
|
}
|
|||
|
|
|||
|
header .logo h1 {
|
|||
|
margin: 0;
|
|||
|
margin-bottom: -.4rem;
|
|||
|
font-size: 1.7rem;
|
|||
|
line-height: 1;
|
|||
|
font-family: Comfortaa, Ubuntu, sans-serif;
|
|||
|
font-weight: bold;
|
|||
|
}
|
|||
|
|
|||
|
header .nav-toggle {
|
|||
|
display: block;
|
|||
|
border-inline-start: 1px solid var(--c-border);
|
|||
|
padding: 0 1rem;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
|
|||
|
header nav details summary, header nav a {
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
padding: 1rem;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
cursor: pointer;
|
|||
|
white-space: nowrap;
|
|||
|
}
|
|||
|
|
|||
|
header nav details summary::before {
|
|||
|
content: "►";
|
|||
|
padding-inline-end: .3rem;
|
|||
|
}
|
|||
|
|
|||
|
header nav details[open] summary::before {
|
|||
|
content: "▼";
|
|||
|
}
|
|||
|
|
|||
|
header nav .nav-close {
|
|||
|
display: none;
|
|||
|
}
|
|||
|
|
|||
|
header nav.show .nav-close {
|
|||
|
display: flex;
|
|||
|
}
|
|||
|
|
|||
|
header nav {
|
|||
|
transform: translateY(calc(-100% - 1rem));
|
|||
|
display: flex;
|
|||
|
flex-direction: column;
|
|||
|
justify-content: flex-start;
|
|||
|
position: fixed;
|
|||
|
right: 0;
|
|||
|
top: 0;
|
|||
|
bottom: 0;
|
|||
|
background-color: var(--c-bg-secondary);
|
|||
|
min-width: 20rem;
|
|||
|
max-width: 30rem;
|
|||
|
border-inline-start: 1px solid var(--c-border);
|
|||
|
z-index: 10000;
|
|||
|
}
|
|||
|
|
|||
|
header nav.show, header nav:focus-within {
|
|||
|
transform: translateY(0);
|
|||
|
}
|
|||
|
|
|||
|
header nav details summary.highlight, header nav a.highlight {
|
|||
|
background-color: var(--c-hl);
|
|||
|
color: var(--c-text-on-hl);
|
|||
|
font-weight: 500;
|
|||
|
}
|
|||
|
|
|||
|
header nav details summary:hover, header nav a:hover {
|
|||
|
background-color: var(--c-bg);
|
|||
|
}
|
|||
|
|
|||
|
header nav details summary.highlight:hover, header nav a.highlight:hover {
|
|||
|
background-color: var(--c-hl-secondary);
|
|||
|
color: var(--c-text-on-hl-secondary);
|
|||
|
}
|
|||
|
|
|||
|
header nav details {
|
|||
|
display: flex;
|
|||
|
flex-direction: column;
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
|
|||
|
header nav details a {
|
|||
|
padding-inline-start: 2.5rem;
|
|||
|
}
|
|||
|
|
|||
|
@media screen and (min-width: 950px) {
|
|||
|
header .nav-toggle, header .nav-close, header nav.show .nav-close {
|
|||
|
display: none;
|
|||
|
}
|
|||
|
header nav {
|
|||
|
transform: initial;
|
|||
|
display: flex;
|
|||
|
flex-direction: row;
|
|||
|
justify-content: flex-end;
|
|||
|
position: initial;
|
|||
|
background-color: initial;
|
|||
|
min-width: unset;
|
|||
|
max-width: unset;
|
|||
|
border-inline-start: none;
|
|||
|
}
|
|||
|
header nav.show, header nav:focus-within {
|
|||
|
transform: initial;
|
|||
|
}
|
|||
|
header nav details summary, header nav a {
|
|||
|
border-block-end: none;
|
|||
|
border-inline-start: 1px solid var(--c-border);
|
|||
|
border-inline-end: 1px solid var(--c-border);
|
|||
|
padding: 0 1rem;
|
|||
|
display: flex;
|
|||
|
margin-inline-start: -1px;
|
|||
|
align-items: center;
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
header nav details:last-of-type summary {
|
|||
|
border-inline-end: none;
|
|||
|
}
|
|||
|
header nav details[open] summary {
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
height: calc(100% + 1px);
|
|||
|
}
|
|||
|
header nav details div {
|
|||
|
position: absolute;
|
|||
|
right: 0;
|
|||
|
}
|
|||
|
header nav details div a {
|
|||
|
background-color: var(--c-bg-secondary);
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
padding: 1rem;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
main {
|
|||
|
grid-area: main;
|
|||
|
padding: 0 var(--content-inline-padding);
|
|||
|
max-width: var(--content-max-width);
|
|||
|
min-width: 0;
|
|||
|
width: 100%;
|
|||
|
margin: 2rem auto;
|
|||
|
}
|
|||
|
|
|||
|
nav.article-nav {
|
|||
|
display: flex;
|
|||
|
flex-direction: row;
|
|||
|
justify-content: center;
|
|||
|
}
|
|||
|
|
|||
|
nav.article-nav div {
|
|||
|
width: 33%;
|
|||
|
text-align: center;
|
|||
|
}
|
|||
|
|
|||
|
footer {
|
|||
|
grid-area: footer;
|
|||
|
align-self: end;
|
|||
|
background-color: var(--c-bg-secondary);
|
|||
|
border-block-start: 1px solid var(--c-border);
|
|||
|
padding: .5rem var(--content-inline-padding);
|
|||
|
display: flex;
|
|||
|
flex-direction: row;
|
|||
|
flex-wrap: wrap;
|
|||
|
justify-content: space-between;
|
|||
|
}
|
|||
|
|
|||
|
footer div {
|
|||
|
line-height: 2;
|
|||
|
}
|
|||
|
|
|||
|
footer div .mobile-hide {
|
|||
|
display: none;
|
|||
|
}
|
|||
|
|
|||
|
footer div a {
|
|||
|
white-space: nowrap;
|
|||
|
}
|
|||
|
|
|||
|
footer div a:not([rel*=license]), footer div .copyright {
|
|||
|
display: block;
|
|||
|
}
|
|||
|
|
|||
|
@media screen and (min-width: 800px) {
|
|||
|
footer div {
|
|||
|
line-height: 1.5;
|
|||
|
}
|
|||
|
|
|||
|
footer div:last-of-type {
|
|||
|
padding-inline-start: 1rem;
|
|||
|
}
|
|||
|
|
|||
|
footer div .mobile-hide {
|
|||
|
display: inline;
|
|||
|
}
|
|||
|
|
|||
|
footer div a:not([rel*=license]), footer div .copyright {
|
|||
|
display: initial;
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|
|||
|
|
|||
|
|
|||
|
<style>aside {
|
|||
|
grid-area: aside;
|
|||
|
background-color: var(--c-bg-secondary);
|
|||
|
/* padding: var(--content-inline-padding); */
|
|||
|
border-block-start: 1px solid var(--c-border);
|
|||
|
width: 100%;
|
|||
|
height: min-content;
|
|||
|
align-self: end;
|
|||
|
display: flex;
|
|||
|
flex-direction: column;
|
|||
|
justify-content: flex-start;
|
|||
|
min-width: 30ch;
|
|||
|
overflow-y: auto;
|
|||
|
}
|
|||
|
|
|||
|
aside .title {
|
|||
|
margin-block-end: 0;
|
|||
|
margin-inline: var(--content-inline-padding);
|
|||
|
margin-block-start: 1rem;
|
|||
|
margin-block-end: .5rem;
|
|||
|
font-size: 2rem;
|
|||
|
font-weight: 500;
|
|||
|
}
|
|||
|
|
|||
|
aside details:not(:last-child) {
|
|||
|
border-block-end: 1px solid var(--c-border);
|
|||
|
}
|
|||
|
|
|||
|
aside details summary, aside a {
|
|||
|
padding: 1rem;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
cursor: pointer;
|
|||
|
white-space: nowrap;
|
|||
|
}
|
|||
|
|
|||
|
aside a {
|
|||
|
text-decoration: none;
|
|||
|
}
|
|||
|
|
|||
|
aside details summary::before {
|
|||
|
content: "►";
|
|||
|
padding-inline-end: .3rem;
|
|||
|
}
|
|||
|
|
|||
|
aside details[open] summary::before {
|
|||
|
content: "▼";
|
|||
|
}
|
|||
|
|
|||
|
aside details summary:hover, aside a:hover, aside a.active {
|
|||
|
background-color: var(--c-bg);
|
|||
|
}
|
|||
|
|
|||
|
aside details {
|
|||
|
display: flex;
|
|||
|
flex-direction: column;
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
|
|||
|
aside details a {
|
|||
|
padding-inline-start: 2.5rem;
|
|||
|
}
|
|||
|
|
|||
|
@media screen and (min-width: 800px) {
|
|||
|
aside {
|
|||
|
border-block-start: none;
|
|||
|
border-inline-end: 1px solid var(--c-border);
|
|||
|
width: max-content;
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|
|||
|
|
|||
|
<link rel="stylesheet" href="../static/css/additional-styles.css">
|
|||
|
<script src="../static/js/header-links.js" defer></script>
|
|||
|
</head>
|
|||
|
<body><a class="skiplink" href="catalyst.html#main">Skip to content</a>
|
|||
|
<header>
|
|||
|
<a class="logo" href="../index.html" aria-label="Libera Chat, back to start page">
|
|||
|
<img alt="" src="../static/img/libera-color.svg" height="48px" data-proofer-ignore>
|
|||
|
<h1>Libera.​Chat</h1>
|
|||
|
</a>
|
|||
|
|
|||
|
<a id="nav-toggle" class="nav-toggle hidden" aria-controls="main-nav"><span>Navigation</span></a>
|
|||
|
|
|||
|
<nav class="" id="main-nav" aria-labelledby="nav-toggle" role="menubar">
|
|||
|
<a id="nav-close" class="nav-close hidden" aria-controls="main-nav"><span>Close</span></a>
|
|||
|
|
|||
|
|
|||
|
<details>
|
|||
|
<summary
|
|||
|
|
|||
|
>About</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../policies.html"
|
|||
|
|
|||
|
><span>Network Policies</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../guidelines.html"
|
|||
|
|
|||
|
><span>Channel Guidelines</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../news.html"
|
|||
|
|
|||
|
><span>Blog & News</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../about.html"
|
|||
|
|
|||
|
><span>About Libera Chat</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../bylaws.html"
|
|||
|
|
|||
|
><span>Bylaws</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../minutes.html"
|
|||
|
|
|||
|
><span>Meeting Minutes</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../annual-reports.html"
|
|||
|
|
|||
|
><span>Annual Reports</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../sponsors.html"
|
|||
|
|
|||
|
><span>Sponsors</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<details>
|
|||
|
<summary
|
|||
|
|
|||
|
>Contribute</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../contributing/donate.html"
|
|||
|
|
|||
|
><span>Donate</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../contributing/sponsor.html"
|
|||
|
|
|||
|
><span>Sponsor Us</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="../contributing/development.html"
|
|||
|
|
|||
|
><span>Development</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a role="menuitem" href="../chanreg.html"><span>Channel Namespaces</span></a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a role="menuitem" href="../guides.html"><span>Guides</span></a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a role="menuitem" href="faq.html"><span>FAQ</span></a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<details>
|
|||
|
<summary
|
|||
|
class="highlight"
|
|||
|
>Connect</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="https://web.libera.chat"
|
|||
|
rel="noopener noreferrer"
|
|||
|
><span>Webchat</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="ircs://irc.libera.chat:6697"
|
|||
|
|
|||
|
><span>irc.libera.chat:6697 (TLS)</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
href="connect.html"
|
|||
|
|
|||
|
><span>How to Connect</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
</nav>
|
|||
|
</header>
|
|||
|
<script async>
|
|||
|
const navToggle = document.querySelector('#nav-toggle')
|
|||
|
const navClose = document.querySelector('#nav-close')
|
|||
|
const mainNav = document.querySelector('#main-nav')
|
|||
|
|
|||
|
// progressive enhancement!
|
|||
|
navToggle.classList.remove('hidden')
|
|||
|
navClose.classList.remove('hidden')
|
|||
|
|
|||
|
navToggle.addEventListener('click', event => {
|
|||
|
event.preventDefault()
|
|||
|
mainNav.classList.toggle('show')
|
|||
|
})
|
|||
|
navClose.addEventListener('click', event => {
|
|||
|
event.preventDefault()
|
|||
|
mainNav.classList.remove('show')
|
|||
|
})
|
|||
|
</script>
|
|||
|
<aside role="menu">
|
|||
|
<span class="title">Guides</span>
|
|||
|
|
|||
|
|
|||
|
<details open>
|
|||
|
<summary>About IRC</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="basics.html"
|
|||
|
><span>Basics of IRC</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="faq.html"
|
|||
|
><span>Frequently Asked Questions</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="clients.html"
|
|||
|
><span>Choosing an IRC client</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
<details open>
|
|||
|
<summary>Helping you connect</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="connect.html"
|
|||
|
><span>Connecting to Libera.Chat</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="webchat.html"
|
|||
|
><span>Using Our Webchat</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="sasl.html"
|
|||
|
><span>Using SASL</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="https://libera.chat/guides/certfp"
|
|||
|
><span>Using CertFP</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
<details open>
|
|||
|
<summary>Using the network</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="registration.html"
|
|||
|
><span>Nickname Registration</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="sendpass.html"
|
|||
|
><span>Resetting your Password</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="cloaks.html"
|
|||
|
><span>Cloaks</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="findingchannels.html"
|
|||
|
><span>Finding Channels</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="channels.html"
|
|||
|
><span>Using Channels</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="usermodes.html"
|
|||
|
><span>User Modes</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
|
|||
|
<details open>
|
|||
|
<summary>Running a channel</summary>
|
|||
|
|
|||
|
<div>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="creatingchannels.html"
|
|||
|
><span>Creating Channels</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="channelmodes.html"
|
|||
|
><span>Channel Modes</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="bots.html"
|
|||
|
><span>Network bots</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
class="active"
|
|||
|
href="catalyst.html"
|
|||
|
><span>Catalysing and De-escalation</span></a>
|
|||
|
|
|||
|
<a
|
|||
|
role="menuitem"
|
|||
|
|
|||
|
href="helpers.html"
|
|||
|
><span>Advice for Helpers</span></a>
|
|||
|
|
|||
|
</div>
|
|||
|
</details>
|
|||
|
|
|||
|
</aside>
|
|||
|
<main id="main">
|
|||
|
|
|||
|
<h1>Catalysing and De-escalation</h1>
|
|||
|
|
|||
|
<p>People often use Libera.Chat to get help with something on their computer.
|
|||
|
Technical support channels are one of the things we’re here for!</p>
|
|||
|
|
|||
|
<p>If you have ever had a technical problem, you know how overwhelming it can be.
|
|||
|
Sometimes people seeking help will get very frustrated and might have a temper
|
|||
|
or be rude. Patient and efficient help can be vital in avoiding conflict in
|
|||
|
these situations.</p>
|
|||
|
|
|||
|
<p>This guide will outline some good practices for both operators and helpers for
|
|||
|
interacting with people. It will also discuss some common situations and ideal
|
|||
|
ways of responding.</p>
|
|||
|
|
|||
|
<h2 id="only-be-opped-up-when-necessary">Only be “opped up” when necessary</h2>
|
|||
|
|
|||
|
<p>Most channels have a select few Operators who are responsible for managing the
|
|||
|
culture of the channel. These are the people with the <code class="language-plaintext highlighter-rouge">+o</code>
|
|||
|
<a href="faq.html#how-to-find-out-who-runs-a-channel">flags in <code class="language-plaintext highlighter-rouge">ChanServ</code></a>. Most
|
|||
|
clients display an <code class="language-plaintext highlighter-rouge">@</code> or another symbol next to their nick. Libera.Chat does
|
|||
|
not have “halfops” flags like some other networks.</p>
|
|||
|
|
|||
|
<p>We recommend that operators in channels refrain from being “opped up” unless
|
|||
|
it is necessary for immediate channel management activities like changing a
|
|||
|
locked topic or removing a problematic user. We discourage using the <code class="language-plaintext highlighter-rouge">+O</code>
|
|||
|
flag, which automatically “ops up” the flagged user on join. There are other
|
|||
|
ways for <a href="faq.html#how-to-find-out-who-runs-a-channel">users to find out</a>
|
|||
|
who runs the channel.</p>
|
|||
|
|
|||
|
<p>Being opped up (or even voiced <code class="language-plaintext highlighter-rouge">+v</code> for manual or <code class="language-plaintext highlighter-rouge">+V</code> for automatic) in your
|
|||
|
channel means you appear above normal users in your channel’s user list, which
|
|||
|
creates a visible hierarchy. While this might sound desirable, it can
|
|||
|
interfere with your ability to give support. People will see you as an
|
|||
|
authority figure and be wary of you. It’s like the difference between having a
|
|||
|
conversation with a boss or teacher, and having a conversation with a
|
|||
|
co-worker or a classmate. Users may view your responses as orders, threats, or
|
|||
|
trick questions when you do not intend them to be.</p>
|
|||
|
|
|||
|
<p>Channel Ops should avoid demonstrating hierarchy and interact as regular
|
|||
|
participants in their channels as much as possible. Try not to be someone who
|
|||
|
only appears when things are heated. Having a rapport with your users will
|
|||
|
make it easier to de-escalate heated situations, making it easier to avoid
|
|||
|
having to forcefully remove people from your community.</p>
|
|||
|
|
|||
|
<h3 id="why-is-libera-different">Why is <code class="language-plaintext highlighter-rouge">#libera</code> different?</h3>
|
|||
|
|
|||
|
<p>You may have noticed that the <code class="language-plaintext highlighter-rouge">#libera</code> channel doesn’t follow this guideline.</p>
|
|||
|
|
|||
|
<p>The <code class="language-plaintext highlighter-rouge">#libera</code> channel is relatively large and is a focal point for botnets and
|
|||
|
other nefarious behavior. It uses channel mode <code class="language-plaintext highlighter-rouge">+z</code> when dealing with unwanted
|
|||
|
messages, which requires staff to be opped, so they don’t miss messages.</p>
|
|||
|
|
|||
|
<p>Additionally, people often come to <code class="language-plaintext highlighter-rouge">#libera</code> to find network staff with
|
|||
|
network-level permissions. Having staff highlighted in the user list makes it
|
|||
|
clear who has those permissions. In a “normal” support channel, everyone can
|
|||
|
provide support, so there is no need to differentiate between ops and users.</p>
|
|||
|
|
|||
|
<h2 id="de-escalate-heated-situations">De-escalate heated situations</h2>
|
|||
|
|
|||
|
<h3 id="assume-good-faith">Assume good faith</h3>
|
|||
|
|
|||
|
<p>When you initiate conversations, try to assume that the other person is doing
|
|||
|
what they’re doing in good faith. People don’t tend to wake up one day and
|
|||
|
decide to yell obscenities into your IRC channel. They aren’t trying to cause
|
|||
|
harm.</p>
|
|||
|
|
|||
|
<h3 id="avoid-public-confrontation">Avoid public confrontation</h3>
|
|||
|
|
|||
|
<p>Sometimes you can avoid escalating a situation by talking to an angry person
|
|||
|
in private rather than publicly in a channel, which they could find
|
|||
|
humiliating. They may still act like you’re intruding into a personal space
|
|||
|
without their consent. Consider asking to talk to them either in the channel
|
|||
|
first or, as your first private message:</p>
|
|||
|
|
|||
|
<pre><code class="language-irc"><You> Hi, can I talk to you about <problem> here in private rather than where others can see?
|
|||
|
</code></pre>
|
|||
|
|
|||
|
<p>Note that some support channels discourage private interactions between
|
|||
|
channel members. Therefore, this technique may be limited to channel ops if
|
|||
|
that is the case in your community.</p>
|
|||
|
|
|||
|
<h3 id="listen-and-ask-questions">Listen and ask questions</h3>
|
|||
|
|
|||
|
<p>Asking someone why they are doing something will encourage them to reflect on
|
|||
|
their behaviour. Once they are paying attention to their actions, they will
|
|||
|
often self-moderate. Most people do not want to be viewed as “the bad guy.”</p>
|
|||
|
|
|||
|
<p>You may disarm their defensiveness by asking for their input instead of
|
|||
|
immediately admonishing them or levelling accusations. This centers the
|
|||
|
conversation on them and their thoughts, instead of on yourself.</p>
|
|||
|
|
|||
|
<p>Try to appear understanding of their concern rather than dismissive, even if
|
|||
|
you disagree. Your goal is to calm them down, and being oppositional will not
|
|||
|
achieve this.</p>
|
|||
|
|
|||
|
<p>When requesting someone change their behaviour, instead of ordering them to do
|
|||
|
or not do something, you can also ask them if they think they can. They will
|
|||
|
probably be more receptive and perhaps offer ways you can help them achieve
|
|||
|
it.</p>
|
|||
|
|
|||
|
<h3 id="try-to-remain-calm">Try to remain calm</h3>
|
|||
|
|
|||
|
<p>People learn by example and often respond in kind. Thus, if you demonstrate
|
|||
|
calmness when initiating a conversation, the conversation is more likely to
|
|||
|
proceed that way.</p>
|
|||
|
|
|||
|
<p>Likewise, being respectful and professional when dealing with an upset person
|
|||
|
will do a lot of work towards forming a treaty with them.</p>
|
|||
|
|
|||
|
<h3 id="compromising-conceding-and-resolutions-with-no-winner">Compromising, conceding, and resolutions with no winner</h3>
|
|||
|
|
|||
|
<p>Humility is essential when in leadership positions.</p>
|
|||
|
|
|||
|
<p>Sometimes, you will need to compromise or concede. Digging in when you make a
|
|||
|
mistake will not improve your community and could lead to distrust.</p>
|
|||
|
|
|||
|
<p>You can always amend a lenient decision or concession in the future if there
|
|||
|
is actually a need to do so.</p>
|
|||
|
|
|||
|
<h2 id="avoid-policing-external-behaviour">Avoid policing external behaviour</h2>
|
|||
|
|
|||
|
<p>People are often part of multiple communities. They often behave differently
|
|||
|
in each space, as various communities have their own cultures.</p>
|
|||
|
|
|||
|
<p>Confronting and punishing someone for behaviour that is happening somewhere
|
|||
|
else often escalates something small into a bigger issue affecting more
|
|||
|
people. Pre-emptive banning is rarely a good idea.</p>
|
|||
|
|
|||
|
<p>It can also make people in your channel feel like they’re being spied on,
|
|||
|
which makes both your community and other spaces feel less friendly.</p>
|
|||
|
|
|||
|
<h2 id="remember-to-take-breaks-to-avoid-burn-out">Remember to take breaks to avoid burn-out</h2>
|
|||
|
|
|||
|
<p>When previously rewarding tasks, like helping in channels, become tiring and
|
|||
|
less enjoyable, this is a sign of burn-out.</p>
|
|||
|
|
|||
|
<p>If you manage a space alone, it is easy to feel obligated to spend all your
|
|||
|
energy and time keeping the place in order. This can lead to burn-out, which
|
|||
|
makes it much harder to handle channel conflicts calmly. When that happens,
|
|||
|
your community members feel like they’re walking on eggshells. It is also
|
|||
|
easier for bad actors to weaponize you against other community members.</p>
|
|||
|
|
|||
|
<p>If you are the only channel op, we encourage you to consider giving trusted
|
|||
|
channel users ops as well. Not only does this provide you with the freedom to
|
|||
|
do other things without worrying about the channel, but it also gives you
|
|||
|
another person to talk with about situations that arise.</p>
|
|||
|
|
|||
|
<p>Find others in your community who are good at talking to people to help you
|
|||
|
manage things. They don’t need to be the most knowledgeable person in your
|
|||
|
channel, but they need to be patient, fair, and approachable.</p>
|
|||
|
|
|||
|
<h2 id="appeals-processes-and-accountability">Appeals processes and accountability</h2>
|
|||
|
|
|||
|
<p>Removing people should ideally not be a permanent thing. People make mistakes
|
|||
|
and have bad days. One mistake or bad day shouldn’t be the end of their
|
|||
|
participation in your channel.</p>
|
|||
|
|
|||
|
<p>Also, permanently excluding users from a channel can lead to them seeking a
|
|||
|
way of evading into the channel, becoming even more problematic.</p>
|
|||
|
|
|||
|
<p>It’s an excellent idea for your channel to have a way for people to appeal a
|
|||
|
ban and negotiate being allowed back. Consider having an “ops” channel; most
|
|||
|
channels use <code class="language-plaintext highlighter-rouge">#<channelname>-ops</code> for this. Request that non-ops leave the
|
|||
|
channel if they do not have an immediate issue, so that people can raise
|
|||
|
their issues with some privacy. When talking to banned users in an <code class="language-plaintext highlighter-rouge">-ops</code>
|
|||
|
channel, de-escalation tools and building rapport are critically important.</p>
|
|||
|
|
|||
|
<p>If many channel operators speak to a person at once in an <code class="language-plaintext highlighter-rouge">-ops</code> channel, it can
|
|||
|
seem like “ganging up on” the person. You may want to informally limit how
|
|||
|
many ops are involved in such discussions at once.</p>
|
|||
|
|
|||
|
<p>Operator channels also allow people a place to report issues without
|
|||
|
escalating situations in the channel. It is a good idea to advertise it in the
|
|||
|
channel’s topic. If people cannot get into your ops channel, they cannot use
|
|||
|
it, so banning from that should be very rare.</p>
|
|||
|
|
|||
|
<p>It is also a good idea to ensure that people can use <code class="language-plaintext highlighter-rouge">ChanServ</code> to find nicks of
|
|||
|
channel operators so they can contact them directly. As a result, we suggest
|
|||
|
avoiding the <code class="language-plaintext highlighter-rouge">PRIVATE</code> ChanServ flag and keeping the <code class="language-plaintext highlighter-rouge">PUBACL</code> flag unless you
|
|||
|
have specific reasons to use them.</p>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</main><footer>
|
|||
|
<div>
|
|||
|
<span class="copyright">© Libera Chat's contributors 2021</span>
|
|||
|
(<a rel="license noopener noreferrer" href="../LICENSE-content.txt">Content CC BY-NC-SA</a>,
|
|||
|
<a rel="license noopener noreferrer" href="../LICENSE-code.txt">Code MIT</a>)
|
|||
|
<span class="mobile-hide">/</span>
|
|||
|
<a href="../atom.xml">Feed (atom)</a>
|
|||
|
<span class="mobile-hide">/</span>
|
|||
|
<a href="../privacy.html">Privacy</a>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<a rel="me noopener noreferrer" href="https://fosstodon.org/@liberachat">Mastodon</a>
|
|||
|
<span class="mobile-hide">/</span>
|
|||
|
<a href="https://github.com/Libera-Chat/libera-chat.github.io" rel="noopener noreferrer">GitHub</a>
|
|||
|
<span class="mobile-hide">/</span>
|
|||
|
<a href="https://twitter.com/liberachat" rel="noopener noreferrer">Twitter</a>
|
|||
|
<span class="mobile-hide">/</span>
|
|||
|
<a href="https://facebook.com/liberachat" rel="noopener noreferrer">Facebook</a>
|
|||
|
</div>
|
|||
|
</footer>
|