thedesk/app/view/es-ES/setting.html

632 lines
29 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="es-ES" style="overflow-y:scroll">
<head>
<title>Settings - TheDesk</title>
<!--
<script type="text/javascript">
var _jipt = [];
_jipt.push(['project', 'thedesk']);
</script>
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
-->
<meta content="width=device-width,initial-scale=1.0" name="viewport">
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
<link href="../../css/master.css" type="text/css" rel="stylesheet">
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
<meta charset="utf-8">
<style>
input {
max-height: 3.84rem !important
}
.pcr-result {
height: 1rem !important;
}
.container-after-titlebar {
padding: 20px;
}
</style>
<script>var pwa = false;</script>
<script>var store = false;</script>
</head>
<body id="mainView" style="overflow-y:scroll" class="">
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="../../js/platform/first.js"></script>
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
<script type="text/javascript" src="main.js"></script>
<script src="../../node_modules/json5/dist/index.min.js"></script>
<script src="../../node_modules/vue/dist/vue.min.js"></script>
<script type="text/javascript" src="setting.vue.js"></script>
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
<script>function renderMem() { return false; }</script>
<h4>Preferences</h4>
<ul class="collapsible" data-collapsible="accordion">
<li>
<div class="collapsible-header">
<i class="material-icons">desktop_windows</i>Preferencias del sistema
</div>
<div class="collapsible-body">
<h5>Idiomas</h5>
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
<div style="display: flex;">
<div style="width: 22rem;" id="langsel">
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
</div>
<button class="btn waves-effect" onclick="changeLang()">Cambiar</button>
</div>
<h5>Importación y exportación de la configuración</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
style="width:100%; max-width:15rem;">Exportar</button>
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
style="width:100%; max-width:15rem;">Importar</button><br>
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
<input type="text" id="imp-exp" style="width: 22rem">
<div id="envView">
<template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5>
<template v-if="item.text.desc">
<span v-html="item.text.desc"></span><br>
</template>
<template v-if="item.id=='notf'"><a onclick="notftest()"
class="pointer">Prueba de notificación</a><br></template>
<template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox">
<label>
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
<span>{{check.text}}</span>
</label>
</template>
</template>
<template v-else>
<template v-if="item.doubleText">
<template v-for="(textbox, j) in item.data">
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
</template>
</template>
<template v-else>
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">Cambiar</button>
</template><br>
</template>
</div>
<h5>Fuente</h5>
Select your favorite font to 'Select'(Windows/ macOS only)<br>
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Seleccionar</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
<br>
<input type="text" style="width:11.5rem" id="font">
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Save</button>
<br>
<h5>Carpeta para guardar</h5>
TheDesk utiliza este valor cuando intenta guardar fotos o tomar capturas de pantalla.<br>
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Cambiar</button>
<br>
</div>
</li>
<li class="pwa">
<div class="collapsible-header">
<i class="material-icons">color_lens</i>Temas
</div>
<div class="collapsible-body">
<h4>Seleccionar tema</h4>
<div style="width:22rem" id="sel-selector">
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
</div>
<h4>Editar y añadir temas personalizados</h4>
<div style="width:22rem" id="edit-selector" data-add="Add new">
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
<option value="add_new">Add new</option>
</select>
</div>
<h5>Name</h5>
<input type="text" style="width:22rem" id="custom_name" placeholder="Name...">
<h5>About this theme</h5>
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
placeholder="About this theme..."></textarea></div>
<h5>Esquema de colores</h5>
<label>
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
checked="true" />
<span>Dark</span>
</label>
<label>
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
value="light" />
<span>Light</span>
</label><br><br />
<button class="btn waves-effect" onclick="advanced()">Opciones avanzadas (6 colores adicionales)</button>
<span class="advanced hide"></span>
<div id="pickers">
<div>
<h5>Background</h5>Background color<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker0_value">
</div>
<div>
<h5>Text</h5>Text color<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker1_value">
</div>
<div>
<h5>Subcolor</h5>Distinguishable from background<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker2_value">
</div>
<div>
<h5>Accent</h5>Background of boosts<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker3_value">
</div>
<div class="advanced hide">
<h5>Modal</h5>Background of modal window<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
<br />
<input type="color" id="color-picker4_value">
</div>
<div class="advanced hide">
<h5>Modal Footer</h5>Background of modal window's footer<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
<br />
<input type="color" id="color-picker5_value">
</div>
<div class="advanced hide">
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
<br />
<input type="color" id="color-picker6_value">
</div>
<div class="advanced hide">
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
<br />
<input type="color" id="color-picker7_value">
</div>
<div class="advanced hide">
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
<br />
<input type="color" id="color-picker8_value">
</div>
<div class="advanced hide">
<h5>2nd Accent</h5>Emphasized toot's background<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
<br />
<input type="color" id="color-picker9_value">
</div>
<div class="advanced hide">
<h5>Postbox</h5>Background of post-box and menu<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
<br />
<input type="color" id="color-picker10_value">
</div>
<div class="advanced hide">
<h5>Active</h5>Background of 'active' elements<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
<span>Use this</span>
</label><br />
Copy from:
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
<br />
<input type="color" id="color-picker11_value">
</div>
<div class="advanced hide">
<h5>Selected</h5>Background of selected with arrow keys<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker12_value">
</div>
<div class="advanced hide">
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
<label>
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
<span>Use this</span>
</label><br />
<input type="color" id="color-picker13_value">
</div>
</div><br /><br />
<button class="btn-large waves-effect" onclick="customComp()">Cambiar</button>&nbsp;<button
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
placeholder="JSON style" readonly><br>
<h4>Import of custom themes</h4>
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
placeholder="JSON/JSON5 style">
<button class="btn waves-effect" onclick="customImp()">Importar</button><br>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">reorder</i>Timeline Preferences
</div>
<div class="collapsible-body">
<div id="tlView">
<template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5>
<template v-if="item.text.desc">
<span v-html="item.text.desc"></span><br>
</template>
<template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox">
<label>
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
<span>{{check.text}}</span>
</label>
</template>
</template>
<template v-else>
<template v-if="item.doubleText">
<template v-for="(textbox, j) in item.data">
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
</template>
</template>
<template v-else>
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">Cambiar</button>
</template><br>
</template>
</div>
<h5>Custom sound</h5>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
id="c1-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
id="c2-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
id="c3-file"></span><br>
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
id="c4-file"></span><br>
<h5>Volume</h5>
0-100(default:80)<br>
<p class="range-field"><span id="soundVolVal">80</span><br>
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
style="width:40rem; max-width:100%" />
</p>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">send</i>Posting Preferences
</div>
<div class="collapsible-body">
<div id="postView">
<template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5>
<template v-if="item.text.desc">
<span v-html="item.text.desc"></span><br>
</template>
<template v-if="item.checkbox">
<template v-for="(check, j) in item.text.checkbox">
<template
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
<label><input class="with-gap" v-on:click="complete(i,check.value)"
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
v-bind:value="check.value" />
<span>{{check.text}}</span></label>
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
</template>
</template>
</template>
<template v-else>
<template v-if="item.doubleText">
<template v-for="(textbox, j) in item.data">
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
</template>
</template>
<template v-else>
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">Cambiar</button>
</template><br>
</template>
</div>
<h5>Easy inserter</h5>
You can insert any letters and emojis with only 3 keys<br>
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
</div>
</li>
<li>
<div class="collapsible-header">
<img src="../../img/aiscript.svg"
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
</div>
<div class="collapsible-body">
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Cambiar</button>
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
onclick="deletePlugin()">Delete</button>
<h5>Plugin list</h5>
<div style="width:22rem" id="plugin-selector" data-add="Add new">
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
<option value="add_new">Add new</option>
</select>
</div>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
</div>
<div class="collapsible-body">
<h5>Client Mute</h5>
<div id="mute-cli"></div>
<h5>Client Emphasis</h5>
Click client name on toots to toggle mute and emphasis.
<h5>Words Mute</h5>
Enter to set<br>
<div class="chips" id="wordmute" style="background-color:gray;"></div>
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
<h5>Words Emphasis</h5>
Enter to set<br>
<div class="chips" id="wordemp" style="background-color:gray;"></div>
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
<h5>Users Emphasis</h5>
Set on users data modals.
<span class="emphasized"> Use this color to emphasis </span>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
</div>
<div class="collapsible-body">
<h5>Account Connection(Spotify)</h5>
TheDesk save your data on thedesk.top server.<br>
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Save</button></div>
<a onclick="spotifyConnect()" class="btn waves-effect nex"
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
class="fab fa-spotify left"></i>Connect</a>
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
class="fab fa-spotify left"></i>Disconnect</a>
<h5>Account Connection(Last.fm)</h5>
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
<input type="text" style="width:11.5rem" id="lastFmUser">
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Save</button>
<h5>Edit a template</h5>
<br>
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
{url}</textarea><br>
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
<h5>Attach an Artwork of Spotify</h5>
<label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
value="yes" />
<span>Yes</span>
</label>
<label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
value="no" />
<span>No</span>
</label>
<div class="mac">
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
<label>
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
value="yes" />
<span>Yes</span>
</label>
<label>
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
value="no" />
<span>No</span>
</label>
<br>
</div>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
</div>
<div class="collapsible-body">
<h5>BouyomiChan connect</h5>
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
target="_blank">GitHub</a><br>
<label>
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
value="yes" />
<span>Yes</span>
</label>
<label>
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
<span>No</span>
</label>
<h5>Speed</h5>
1-100(default:10)<br>
<p class="range-field"><span id="voicespeedVal">10</span><br>
<input type="range" id="voicespeed" min="1" max="100" value="10"
onchange="document.getElementById('voicespeedVal').innerText=this.value"
style="width:40rem; max-width:100%" />
</p>
<h5>Pitch</h5>
0-100(default:50)<br>
<p class="range-field"><span id="voicepitchVal">50</span><br>
<input type="range" id="voicepitch" min="0" max="100" value="50"
onchange="document.getElementById('voicepitchVal').innerText=this.value"
style="width:40rem; max-width:100%" />
</p>
<h5>Volume</h5>
0-100(default:100)<br>
<p class="range-field"><span id="voicevolVal">100</span><br>
<input type="range" id="voicevol" min="0" max="100" value="100"
onchange="document.getElementById('voicevolVal').innerText=this.value"
style="width:40rem; max-width:100%" />
</p>
<h5>Test</h5>
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
id="testplay">Play/Stop</button><br>
<br>
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Save</button>
</div>
</li>
</ul>
<br>
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
class="material-icons left">undo</i>Atrás</a>
<br>
<br>Keyboard shortcuts
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
<li>N:Open toot box</li>
<li>X:Toggle toot box</li>
<li>Ctrl+Enter:Post</li>
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
<li>Alt+Enter:Secondary Toot Button</li>
<li>Ctrl+E:Make all notifications read</li>
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
<li>Esc:Hide toot box</li>
<li>F5:Super Reload</li>
<li>Ctrl+Shift+C:Clear toot box</li>
<li>Ctrl+Shift+S:Preferences</li>
<li>Ctrl+Shift+M:Account Manager</li>
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
<li>Ctrl+Shift+P:Show profile of selecting</li>
<li>←/→:Show next or previous image</li>
<li>Mousewheel:Zoom a image</li>
<div class="hide kirishima">
以下Markdownに対応したインスタンスのみ。
<br>
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
When a toot is selected:
<li>F:Favourite this toot</li>
<li>B:Boost this toot</li>
<li>R:Reply to this toot</li>
</div>
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
class="material-icons left">info</i>About TheDesk</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
class="material-icons left">web</i>Website</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
style="width:100%; max-width:40rem; background-color: #f6c915"><i
class="material-icons left">trending_up</i>Support(Liberapay)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
class="material-icons left">list</i>Help/Docs</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
<br>
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
class="pointer pwa">Check update</a><br>
<br>
Kyash<br>
<img src="../../img/kyash.png" width="100"><br>
<a href="https://status.cutls.com/">
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
</a><br>
<h5>OSS License</h5>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
alt="FOSSA Status"><img
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
<br>
<span style="font-family:Open Sans;">Copyright &copy; TheDesk 2018
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
href="https://thedesk.top/priv.html">Privacy
Policy</a>
<br>
</span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
<script type="text/javascript" src="../../js/common/modal.js"></script>
<script type="text/javascript" src="../../js/common/about.js"></script>
<script type="text/javascript" src="../../js/platform/end.js"></script>
<script type="text/javascript" src="../../js/login/logout.js"></script>
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
<script type="text/javascript" src="../../js/tl/speech.js"></script>
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
<script type="text/javascript" src="../../js/ui/settings.js"></script>
<script type="text/javascript" src="../../js/ui/theme.js"></script>
<script type="text/javascript" src="../../js/tl/date.js"></script>