Compare commits

..

7 Commits

Author SHA1 Message Date
5342f5a270
Firefox and KDE Neon 2024-02-19 15:36:59 +01:00
3a6a65b0c0
Add git 2024-02-19 15:17:55 +01:00
78f4dd516d
Add Newsboat 2024-02-19 15:14:34 +01:00
16739c5aee
Added '.ssh' 2024-02-19 15:09:16 +01:00
3e8d71f6d3
Updated Vifm 2024-02-19 15:06:11 +01:00
be211f7146
Updating bash-related files 2024-02-19 14:54:32 +01:00
cbdd0e0c20
Vim – additional files and docs 2024-02-19 14:48:50 +01:00
28 changed files with 575 additions and 1 deletions

1
.XCompose Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.XCompose

8
.bash/README.md Normal file
View File

@ -0,0 +1,8 @@
# Bash
## Related files
- [../.bashrc](../.bashrc)
- [../.profile](../.profile)
- [../.inputrc](../.inputrc)
- [../.XConfig](../.XConfig)
- [./\*](./)

View File

@ -0,0 +1,38 @@
# A valid snippet should starts with:
#
# snippet trigger_word [ "description" [ options ] ]
#
# and end with:
#
# endsnippet
#
# Snippet options:
#
# b - Beginning of line.
# i - In-word expansion.
# w - Word boundary.
# r - Regular expression
# e - Custom context snippet
# A - Snippet will be triggered automatically, when condition matches.
#
# Basic example:
#
# snippet emitter "emitter properties" b
# private readonly ${1} = new Emitter<$2>()
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
# endsnippet
#
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
snippet cmt "/* | */"
${1}/* ${0} */
endsnippet
snippet f "inline function"
${1}function${2}(${3}){${0}}
endsnippet
snippet fun "function"
${1}function ${2:name}(${3:params}){
${0:/* code */}
}
endsnippet

View File

@ -0,0 +1,20 @@
# an idea from https://github.com/robinpokorny/git3moji
# [![git3mojiv1.0](https://img.shields.io/badge/git3mojiv1.0-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square)](https://robinpokorny.github.io/git3moji/)
snippet zap--⚡features-primary-concerns-3 ""
:zap:
endsnippet
snippet bug--🐛-fixes-3 ""
:bug:
endsnippet
snippet zapcop--⚡️👮-refactoring-3 ""
:zap::cop:
endsnippet
snippet tv--📺ci-tooling-configuration-3 ""
:tv:
endsnippet
snippet cop--👮tests-linting-comments-3 ""
:cop:
endsnippet
snippet abc--🔤-documentation-3 ""
:abc:
endsnippet

View File

@ -0,0 +1,204 @@
snippet alembic--experimenting-new-things "" b
:alembic:
endsnippet
snippet alien--updating-code-due-to-external-api-changes "" b
:alien:
endsnippet
snippet ambulance--critical-hotfix "" b
:ambulance:
endsnippet
snippet apple--fixing-something-on-macos "" b
:apple:
endsnippet
snippet arrow_down--downgrading-dependencies "" b
:arrow_down:
endsnippet
snippet arrow_up--upgrading-dependencies "" b
:arrow_up:
endsnippet
snippet art--improving-structure--format-of-the-code "" b
:art:
endsnippet
snippet beers--writing-code-drunkenly "" b
:beers:
endsnippet
snippet bento--adding-or-updating-assets "" b
:bento:
endsnippet
snippet bookmark--releasing--version-tags "" b
:bookmark:
endsnippet
snippet boom--introducing-breaking-changes "" b
:boom:
endsnippet
snippet bug--fixing-a-bug "" b
:bug:
endsnippet
snippet building_construction--making-architectural-changes "" b
:building_construction:
endsnippet
snippet bulb--documenting-source-code "" b
:bulb:
endsnippet
snippet busts_in_silhouette--add-contributor(s) "" b
:busts_in_silhouette:
endsnippet
snippet camera_flash--adding-or-updating-snapshots "" b
:camera_flash:
endsnippet
snippet card_file_box--performing-database-related-changes "" b
:card_file_box:
endsnippet
snippet chart_with_upwards_trend--adding-analytics-or-tracking-code "" b
:chart_with_upwards_trend:
endsnippet
snippet checkered_flag--fixing-something-on-windows "" b
:checkered_flag:
endsnippet
snippet children_crossing--improving-user-experience--usability "" b
:children_crossing:
endsnippet
snippet clown_face--mocking-things "" b
:clown_face:
endsnippet
snippet construction--work-in-progress "" b
:construction:
endsnippet
snippet construction_worker--adding-ci-build-system "" b
:construction_worker:
endsnippet
snippet dizzy--adding-or-updating-animations-and-transitions "" b
:dizzy:
endsnippet
snippet egg--adding-an-easter-egg "" b
:egg:
endsnippet
snippet fire--removing-code-or-files "" b
:fire:
endsnippet
snippet globe_with_meridians--internationalization-and-localization "" b
:globe_with_meridians:
endsnippet
snippet goal_net--catching-errors"-b
:goal_net:
endsnippet
snippet green_apple--fixing-something-on-ios "" b
:green_apple:
endsnippet
snippet green_heart--fixing-ci-build "" b
:green_heart:
endsnippet
snippet heavy_minus_sign--removing-a-dependency "" b
:heavy_minus_sign:
endsnippet
snippet heavy_plus_sign--adding-a-dependency "" b
:heavy_plus_sign:
endsnippet
snippet iphone--working-on-responsive-design "" b
:iphone:
endsnippet
snippet label--adding-or-updating-types--flow--typescript "" b
:label:
endsnippet
snippet lipstick--updating-the-ui-and-style-files "" b
:lipstick:
endsnippet
snippet lock--fixing-security-issues "" b
:lock:
endsnippet
snippet loud_sound--adding-logs "" b
:loud_sound:
endsnippet
snippet mag--improving-seo "" b
:mag:
endsnippet
snippet memo--add-or-update-documentation "" b
:memo:
endsnippet
snippet mute--removing-logs "" b
:mute:
endsnippet
snippet ok_hand--updating-code-due-to-code-review-changes "" b
:ok_hand:
endsnippet
snippet package--updating-compiled-files-or-packages "" b
:package:
endsnippet
snippet page_facing_up--adding-or-updating-license "" b
:page_facing_up:
endsnippet
snippet pencil--writing-docs "" b
:pencil:
endsnippet
snippet pencil2--fixing-typos "" b
:pencil2:
endsnippet
snippet penguin--fixing-something-on-linux "" b
:penguin:
endsnippet
snippet poop--writing-bad-code-that-needs-to-be-improved "" b
:poop:
endsnippet
snippet pushpin--pinning-dependencies-to-specific-versions "" b
:pushpin:
endsnippet
snippet recycle--refactoring-code "" b
:recycle:
endsnippet
snippet rewind--reverting-changes "" b
:rewind:
endsnippet
snippet robot--fixing-something-on-android "" b
:robot:
endsnippet
snippet rocket--deploying-stuff "" b
:rocket:
endsnippet
snippet rotating_light--removing-linter-warnings "" b
:rotating_light:
endsnippet
snippet see_no_evil--adding-or-updating-a- "" b
:see_no_evil:
endsnippet
snippet seedling--adding-or-updating-seed-files"-b
:seedling:
endsnippet
snippet sparkles--introducing-new-features "" b
:sparkles:
endsnippet
snippet speech_balloon--updating-text-and-literals "" b
:speech_balloon:
endsnippet
snippet tada--initial-commit "" b
:tada:
endsnippet
snippet triangular_flag_on_post--adding--updating--or-removing-feature-flags "" b
:triangular_flag_on_post:
endsnippet
snippet truck--moving-or-renaming-files "" b
:truck:
endsnippet
snippet twisted_rightwards_arrows--merging-branches "" b
:twisted_rightwards_arrows:
endsnippet
snippet wastebasket--deprecating-code-that-needs-to-be-cleaned-up "" b
:wastebasket:
endsnippet
snippet whale--work-about-docker "" b
:whale:
endsnippet
snippet wheel_of_dharma--work-about-kubernetes "" b
:wheel_of_dharma:
endsnippet
snippet wheelchair--improving-accessibility "" b
:wheelchair:
endsnippet
snippet white_check_mark--updating-tests "" b
:white_check_mark:
endsnippet
snippet wrench--changing-configuration-files "" b
:wrench:
endsnippet
snippet zap--improving-performance "" b
:zap:
endsnippet

View File

@ -0,0 +1,60 @@
# A valid snippet should starts with:
#
# snippet trigger_word [ "description" [ options ] ]
#
# and end with:
#
# endsnippet
#
# Snippet options:
#
# b - Beginning of line.
# i - In-word expansion.
# w - Word boundary.
# r - Regular expression
# e - Custom context snippet
# A - Snippet will be triggered automatically, when condition matches.
#
# Basic example:
#
# snippet emitter "emitter properties" b
# private readonly ${1} = new Emitter<$2>()
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
# endsnippet
#
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
snippet sceleton "HTML5" b
<!DOCTYPE html>
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
<!-- DEL https://github.com/jensimmons/cssremedy -->
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
<title></title>
<meta name="description" content="">
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
</head>
<body>
<!-- DEL -->
</body>
</html>
endsnippet
snippet cmt "comment"
<!-- ${0} -->
endsnippet
snippet viewport_cordova "viewport used in cordova apps"
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
endsnippet
snippet csp_cordova "CSP used in cordova"
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
endsnippet

View File

@ -0,0 +1,87 @@
snippet sceleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet sceleton_cli "nodejsscript" b
#!/usr/bin/env nodejsscript
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
${0}
endsnippet
snippet sceleton_zx "zx" b
#!/usr/bin/env zx
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet jshint "JSHint header" b
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
/* global ${0} */
endsnippet
snippet global "JSHint global"
/* global ${0} */
endsnippet
snippet global_ns "JSHint global"
/* ${1} *//* global ${0} */
endsnippet
snippet devel "JSHint devel"
${1}/* jshint devel: true *///gulp.keep.line${0}
endsnippet
snippet log "console.log"
${1}console.log('${0}');
endsnippet
snippet stor "localStorage"
${1}localStorage.${2:g}etItem("${0}");
endsnippet
snippet import "import with backward order"
import ${2:values} from "${1:specifier}";$0
endsnippet
snippet promise "return? new Promise"
${1:return }new Promise(function(resolve, reject){
${0:/* async code */}
});
endsnippet
snippet for "classical loop"
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
${0:/* statement */}
}
endsnippet
snippet foreach "PHP-like name" b
for(${2:const} ${3:element} of ${1:iterable}){
${0:/* statement */}
}
endsnippet
snippet switch "classical switch"
switch (${1}){
case ${2}:
${0}
break;
default:
}
endsnippet
snippet desctr "object destructure"
${1:const} { $0 }= ${2:def};
endsnippet
snippet ready "document ready"
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
endsnippet
snippet readyEvent "vanilla JS content ready event name"
${1}DOMContentLoaded${0}
endsnippet
snippet selid
${1}document.getElementById('${0}')
endsnippet
snippet seltag
${1}getElementsByTagName('${0}')
endsnippet
snippet selclass
${1}getElementsByClassName('${0}')
endsnippet
snippet sel
${1}querySelector('${0}')
endsnippet
snippet selall
${1}querySelectorAll('${0}')
endsnippet

View File

@ -0,0 +1,14 @@
snippet jshint "JSHint config for package.json" b
"jshintConfig": {
"esversion": 6,
"browser": "true",
"undef": "true",
"latedef": "true",
"maxparams": 4,
"maxdepth": 3,
"maxcomplexity": 17,
"globals": {
"gulp_place": false
}
}
endsnippet

View File

@ -0,0 +1,25 @@
# A valid snippet should starts with:
#
# snippet trigger_word [ "description" [ options ] ]
#
# and end with:
#
# endsnippet
#
# Snippet options:
#
# b - Beginning of line.
# i - In-word expansion.
# w - Word boundary.
# r - Regular expression
# e - Custom context snippet
# A - Snippet will be triggered automatically, when condition matches.
#
# Basic example:
#
# snippet emitter "emitter properties" b
# private readonly ${1} = new Emitter<$2>()
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
# endsnippet
#
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt

View File

@ -0,0 +1 @@
extends php, html

View File

@ -0,0 +1,9 @@
snippet sceleton "bash" b
#!/usr/bin/env ${1:bash}
set -eou pipefail
${0}
endsnippet
snippet info "script name and version" b
this="${0##*/}"
version="`date +%Y-%m-%d`"
endsnippet

View File

@ -0,0 +1 @@
extends javascript, html

1
.config/gh/config.yml Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/gh_config.yml

8
.config/vifm/README.md Normal file
View File

@ -0,0 +1,8 @@
# Vifm
[Vifm - Manual](https://vifm.info/manual.shtml).
## Related files
- [./\*](./)
## Additional
- [How to use bat as a fileviewer · Issue #404 · vifm/vifm](https://github.com/vifm/vifm/issues/404)

1
.gitconfig Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.gitconfig

View File

@ -0,0 +1,26 @@
# Mozilla Firefox
In fact, lots of settings are synced by Firefox itself.
So this folder contains just some infos around and settings for [tridactyl](#tridactyl).
## Related files
- [../../.tridactylrc](../../.tridactylrc)
- [../native-messaging-hosts/tridactyl.json](../native-messaging-hosts/tridactyl.json)
## Extensions
1. My collections:
1. [Main](https://addons.mozilla.org/cs/firefox/collections/13245610/Ubuntu/)
1. [Specific](https://addons.mozilla.org/cs/firefox/collections/13245610/Specific/)
1. [Bin](https://addons.mozilla.org/cs/firefox/collections/13245610/Bin/)
1. Notes
1. tridactyl: [see below](#tridactyl).
1. _History AutoDelete_ can clean _LoadTabOnSelect_s temp urls in history (e.g. `^.*4808bb0d\-324e\-4b8d\-bb9e\-a998b765153c.*$`).
1. Shortcuts
1. _Open containers panel_: `Ctrl+.`
1. _Open the Firefox Screenshots UI_: `Ctrl+Shift+s`
1. _Sidebar_: `Shift+Alt+w` (default for Firefox Notes plugin)
1. _To Google Translate_: `Ctrl+Shift+\d` (\d= 1,2,3).
## tridactyl
1. Plugin can be found on [tridactyl/tridactyl](https://github.com/tridactyl/tridactyl).
1. Load/Export settings see [tridactyl/tridactyl FAQ section](https://github.com/tridactyl/tridactyl#frequently-asked-questions-faq).
1. `gn*` (goto quickmark new tab), `o` in vmode ⇒ reverse selection

View File

@ -0,0 +1,7 @@
{
"name": "tridactyl",
"description": "Tridactyl native command handler",
"path": "/home/jaandrle/.local/share/tridactyl/native_main",
"type": "stdio",
"allowed_extensions": [ "tridactyl.vim@cmcaine.co.uk","tridactyl.vim.betas@cmcaine.co.uk", "tridactyl.vim.betas.nonewtab@cmcaine.co.uk" ]
}

5
.newsboat/README.md Normal file
View File

@ -0,0 +1,5 @@
# Newsboat
[newsboat/newsboat: An RSS/Atom feed reader for text terminals](https://github.com/newsboat/newsboat)
## Related files
- [./\*](./)

1
.newsboat/config Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.newsboat/config

View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.newsboat/html2rss-streamCZ.mjs

1
.newsboat/html2rss.mjs Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.newsboat/html2rss.mjs

1
.newsboat/urls Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.newsboat/urls

1
.ssh/README.md Symbolic link
View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/ubuntu/.ssh/README.md

4
.ssh/config Normal file
View File

@ -0,0 +1,4 @@
Host vpsfree
HostName 37.205.11.208
IdentityFile ~/.ssh/vpsfree
User root

17
.vim/README.md Normal file
View File

@ -0,0 +1,17 @@
# Vim
My cross-platform config file. Now primarly **Ubuntu**, in the past also Windows (I don't use them so much now → not tested!).
To navigate my secondary editor use [../vscode](../vscode).
## Related files
- [../.vimrc](../.vimrc)
- [../.config/coc/ultisnips](../.config/coc/ultisnips)
- [./\*](./)
## Plugins
See [./§vim_plugins_export-v0.json](./§vim_plugins_export-v0.json). Also call `:helptags ~/.vim/bundle/`.
## To consider
- [yaegassy/coc-html-css-support: HTML id and class attribute "completion" for coc.nvim.](https://github.com/yaegassy/coc-html-css-support): `alpine.js`, `petite-vue`
- [vimwiki/vimwiki: Personal Wiki for Vim](https://github.com/vimwiki/vimwiki)

View File

@ -0,0 +1 @@
{"bundle":["https://github.com/tpope/vim-repeat.git","https://github.com/machakann/vim-highlightedyank.git","https://github.com/tpope/vim-surround.git","https://github.com/tpope/vim-liquid.git","https://github.com/junegunn/rainbow_parentheses.vim.git","https://github.com/jaandrle/vim-mini_intro.git","git@github.com:jaandrle/vim-mini_sessions.git","https://github.com/jaandrle/vim-jaandrle_utils.git","https://github.com/jaandrle/vim-scommands.git","https://github.com/jaandrle/vim-mini_enhancement.git","https://github.com/ctrlpvim/ctrlp.vim.git","https://github.com/jaandrle/vim-user_tips.git","https://github.com/rantasub/vim-bash-completion.git","https://github.com/rhysd/git-messenger.vim.git","https://github.com/Yilin-Yang/vim-markbar.git","https://github.com/wellle/context.vim.git","https://github.com/tpope/vim-speeddating.git","https://github.com/jonsmithers/vim-html-template-literals.git","git@github.com:leafOfTree/vim-vue-plugin","git@github.com:madox2/vim-ai","git@github.com:AndrewRadev/linediff.vim.git"],"one_files":["https://gist.githubusercontent.com/jaandrle/9356d737ef5dfda2efbe50248d32cb78/raw/7f73e223b93d9cb889eecc77850604ebe7e102a3/cwordhi.vim","https://gist.githubusercontent.com/jaandrle/d0ce92e67d03dd8da4b7b932b379b879/raw/b47b1260759d32823890c39df31909f386cc3f6c/vifm.vim"],"pack":["git@github.com:Exafunction/codeium.vim.git","git@github.com:MaxMEllon/vim-jsx-pretty","https://github.com/neoclide/coc.nvim.git","git@github.com:editorconfig/editorconfig-vim","git@github.com:jaandrle/coc-custom_elements","https://github.com/mbbill/undotree.git"]}

View File

@ -0,0 +1 @@
/home/jaandrle/Vzdálené/GitHub/dotfiles/KDE Neon/Bing Image Of The Day/index_template.html

View File

@ -1,14 +1,44 @@
[![git3mojiv1.0](https://img.shields.io/badge/git3mojiv1.0-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square)](https://robinpokorny.github.io/git3moji/)
# dotfiles **(WIP)**
This repository contains my dotfiles. They are managed by using `git clone --bare`,
see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/dotfiles).
## Quick links
- [On a new machine](#on-a-new-machine)
- [Files overview](#files-overview)
## Files overview
- [Bash](./.bash/README.md)
- [Vim](./.vim/README.md)
- [Vifm](./.config/vifm/README.md)
- [SSH](./.ssh/README.md)
- [Newsboat](./.newsboat/README.md)
- Git: [.gitconfig](./.gitconfig), [gh](./.config/gh/config.yml)
- [KDE Neon](#kde-neon)
- [Mozilla Firefox](./.mozilla/firefox/README.md)
## On a new machine
1. install git
1. `cd ~`
1. `git clone --bare --depth 1 --recurse-submodules --shallow-submodules git@jaandrle.cz:jaandrle/dotfiles.git ~/.dotfiles`
1. `gd_branch=main`
1. `git clone --bare --branch $gd_branch --depth 1 --recurse-submodules --shallow-submodules git@jaandrle.cz:jaandrle/dotfiles.git ~/.dotfiles`
1. `alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'`
1. `gitdotfiles config --local status.showUntrackedFiles no`
1. you may also need to use
1. `gitdotfiles reset` (`git-dotfiles reset --hard HEAD`)
1. `gitdotfiles checkout -f`
1. `gitdotfiles submodule update --init --recursive`
## KDE Neon
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
- Using HTML Wallpaper (wip)
- [Bing Image Of The Day](./Obrázky/Bing Image Of The Day/index_template.html)
- [GNOME Keyring in KDE Plasma - JWillikers](https://www.jwillikers.com/gnome-keyring-in-kde-plasma)
- `sudo apt install $(check-language-support)`, see [Popup Language support is incomplete](http://unix.stackexchange.com/questions/421066/ddg#421079)
- [KDE Neon does not have an hibernation option? : kde](https://www.reddit.com/r/kde/comments/6n5m49/kde_neon_does_not_have_an_hibernation_option/dk7hd8v/)
- [kde plasma 5 - How to use miracast as an extended desktop on Linux? - Super User](https://superuser.com/questions/1160078/how-to-use-miracast-as-an-extended-desktop-on-linux)
- [Best tiling extensions for kwin? : kde](https://www.reddit.com/r/kde/comments/qgsv2u/best_tiling_extensions_for_kwin/?sort=new)
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
- [Setup git on the CLI to use 2FA with GitHub](https://gist.github.com/ateucher/4634038875263d10fb4817e5ad3d332f)
- [G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Main](https://gmic.eu/)