added old posts from ghost
This commit is contained in:
@@ -2,4 +2,5 @@
|
|||||||
date = '{{ .Date }}'
|
date = '{{ .Date }}'
|
||||||
draft = true
|
draft = true
|
||||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||||
|
type='post'
|
||||||
+++
|
+++
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
+++
|
||||||
|
date = '2023-02-01T15:31:59'
|
||||||
|
draft = false
|
||||||
|
title = 'URLs in Latex With Proper Linebreaks'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['LaTeX']
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
While the [hyperref](https://www.ctan.org/pkg/hyperref) package provides the `\\url{}` command it doesn't handle line breaks well.
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
Use the package [xurl](https://www.ctan.org/pkg/xurl).
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:40:21'
|
||||||
|
draft = false
|
||||||
|
title = 'Automatic Updates'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Linux', 'Debian']
|
||||||
|
+++
|
||||||
|
Installing security updates is very important. Especially on a server that is not accessed on a daily basis.
|
||||||
|
This tutorial covers the basics for setting up unattended-upgrades on any Debian-based Linux distribution.
|
||||||
|
## Update the system
|
||||||
|
```
|
||||||
|
sudo apt update && sudo apt upgrade
|
||||||
|
```
|
||||||
|
## Install unattended-upgrades
|
||||||
|
```
|
||||||
|
apt install unattended-upgrades
|
||||||
|
```
|
||||||
|
```
|
||||||
|
dpkg-reconfigure unattended-upgrades
|
||||||
|
```
|
||||||
|
|
||||||
|
## Further Information
|
||||||
|
<https://wiki.debian.org/UnattendedUpgrades>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-11-07T13:42:02'
|
||||||
|
draft = false
|
||||||
|
title = 'Basic Doom Emacs Commands'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Emacs']
|
||||||
|
+++
|
||||||
|
|
||||||
|
This is basically just a collection of various commands I discovered while learning to use Doom Emacs.
|
||||||
|
All Sources will be listed at the bottom of this page.
|
||||||
|
|
||||||
|
Also. This side does not provide a lot of explanation regarding the function of the commands.
|
||||||
|
It is just intended as a cheat sheet.
|
||||||
|
Updates/ Changes **will** be added to this post.
|
||||||
|
|
||||||
|
# Navigation
|
||||||
|
## Workspaces
|
||||||
|
- switch between workspaces: '**SPC TAB .**'
|
||||||
|
- load workspace: '**SPC TAB l**'
|
||||||
|
- create new workspace: '**SPC TAB n**'
|
||||||
|
- rename workspace: '**SPC TAB r**'
|
||||||
|
- save workspace: '**SPC TAB s**'
|
||||||
|
- select project for workspace: '**SPC p p**'
|
||||||
|
### File Switching inside Workspaces
|
||||||
|
- switch to file within current project: '**SPC SPC**'
|
||||||
|
- '**SPC .**' provides the save functionality but can also search outside the current project
|
||||||
|
- switch to buffer within current project: '**SPC ,**'
|
||||||
|
- switch to a buffer outside the current project: '**SPC b B**'
|
||||||
|
- load recently viewed file: '**SPC fr**'
|
||||||
|
|
||||||
|
## Finding Text
|
||||||
|
- search all files in the current project: '**SPC sp**'
|
||||||
|
- search inside the current buffer: '**/**' (normal Vim navigation)
|
||||||
|
### Moving to Text
|
||||||
|
- jump to line (faster then relative line numbers): '**gsj**'
|
||||||
|
- '**s**' and two chars to jump to the nearest match
|
||||||
|
- '**S**' to jump backwards
|
||||||
|
- '**,**' or '**;**' to cycle through the matches (forwards/ backwards)
|
||||||
|
|
||||||
|
**NOTE:** this navigation can be combined with (almost) all of the standard Vim commands (e.g. '**vs\\<chars\\>**' visualizes all the text to the nearest match for \\<chars\\>)
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
- go to definition: '**gd**'
|
||||||
|
- list references: '**gD**'
|
||||||
|
### Fancy Delete
|
||||||
|
**NOTE:** all these commands should also work for 'change' ('**c**')
|
||||||
|
- delete inside the same indent (e.g. *function* of if statement): '**dii**'
|
||||||
|
- delete inside the same indent + line above (e.g. *complete* if statement in python): '**dik**'
|
||||||
|
- delete inside the same indent + line above and below (e.g. *complete* if statement in java): '**dij**'
|
||||||
|
|
||||||
|
## Compilation Errors
|
||||||
|
- next and previous flycheck error: '**\\]e**' and '**\\[e**'
|
||||||
|
- list current errors: '**SPC c x**'
|
||||||
|
|
||||||
|
# Miscellaneous
|
||||||
|
- compile: '**SPC p c**'
|
||||||
|
- open [Magit](https://magit.vc/): '**SPC gg**'
|
||||||
|
- comment/ uncomment a line: '**gcc**'
|
||||||
|
|
||||||
|
# Sources
|
||||||
|
- https://github.com/doomemacs/doomemacs/
|
||||||
|
- https://noelwelsh.com/posts/doom-emacs/
|
||||||
|
- https://medium.com/@aria_39488/the-niceties-of-evil-in-doom-emacs-cabb46a9446b
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:51:15'
|
||||||
|
draft = false
|
||||||
|
title = 'Create Windows USB on Linux'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Linux']
|
||||||
|
+++
|
||||||
|
|
||||||
|
# "USE [WOEUSB](https://github.com/WoeUSB/WoeUSB)"
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T16:04:09'
|
||||||
|
draft = false
|
||||||
|
title = 'Extract Images From PDF on Linux'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Linux']
|
||||||
|
+++
|
||||||
|
|
||||||
|
By using the `pdfimages` command included in most Linux distributions it is easy to extract all pictures included in a PDF document.
|
||||||
|
Instructions on how to use the command can be found [here](https://www.xpdfreader.com/pdfimages-man.html).
|
||||||
|
|
||||||
|
**Note:** the target directory for the extracted images must be created before executing the command, else it will just throw errors.
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:59:30'
|
||||||
|
draft = false
|
||||||
|
title = 'Finding Package Files With Apt Files'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Linux','Debian']
|
||||||
|
+++
|
||||||
|
|
||||||
|
To find the files/directories related to a package on a Debian-based system, use the [apt-file](https://wiki.debian.org/apt-file) package.
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:52:50'
|
||||||
|
draft = false
|
||||||
|
title = 'German Quotations in LaTeX'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['LaTeX']
|
||||||
|
+++
|
||||||
|
|
||||||
|
In short: do **not** use any fancy macros and shit that can break other configurations.
|
||||||
|
Just use the shorthands provided by the ```babel``` package.
|
||||||
|
For a list of all the babel shorthands see https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/babel-contrib/german/ngermanb.pdf
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:43:06'
|
||||||
|
draft = false
|
||||||
|
title = 'Regex Basics'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Misc']
|
||||||
|
+++
|
||||||
|
[just text:](#just-text) matches any string with the given text inside it
|
||||||
|
[^](#^) matches string that starts with the given text
|
||||||
|
[$](#$) matches string that ends with the given text
|
||||||
|
[*](#*) zero or more
|
||||||
|
[+](#+) one or more
|
||||||
|
[?](#?) zero or one
|
||||||
|
[{n}](#{n}) `n` occurrences
|
||||||
|
[a|b or [ab]](#OR-operator) a or b
|
||||||
|
[\\d](#\\d) matches a digit
|
||||||
|
[\\w](#\\w) matches a word character (alphanumeric plus underscore)
|
||||||
|
[\\s](#\\s) matches a whitespace character
|
||||||
|
[.](#.) matches any character
|
||||||
|
|
||||||
|
## Anchors
|
||||||
|
### just text
|
||||||
|
`abc` matches any string that has the text _abc_ in it
|
||||||
|
### ^
|
||||||
|
`^abc` matches any string that starts with _abc_
|
||||||
|
### $
|
||||||
|
`abc$` matches any string that ends with _abc_
|
||||||
|
### exact match
|
||||||
|
`^abc$` matches only the exact string _abc_
|
||||||
|
|
||||||
|
## Quantifiers
|
||||||
|
### *
|
||||||
|
`abc*` matches any string containing _ab_ followed by any number of _c_ s
|
||||||
|
### +
|
||||||
|
`abc+` matches any string containing _ab_ followed by at least one _c_
|
||||||
|
### ?
|
||||||
|
`abc?` matches any string containing _ab_ followed by at the most one _c_
|
||||||
|
### {n}
|
||||||
|
`abc{2}` matches any string containing _ab_ followed by two _c_ s
|
||||||
|
`abc{2,}` matches any string containing _ab_ followed by two __or more__ _c_ s
|
||||||
|
`abc{2,5}` matches any string containing _ab_ followed by between two and five _c_ s
|
||||||
|
|
||||||
|
## OR operator
|
||||||
|
`a|b` _a_ or _b_
|
||||||
|
`[abc]` _a_ or _b_ or _c_
|
||||||
|
|
||||||
|
## Character classes
|
||||||
|
### \d
|
||||||
|
`\d` matches any character in a string that is a digit
|
||||||
|
`\D` matches any character that __isn't__ a digit
|
||||||
|
### \w
|
||||||
|
`\w` matches any character in a string that is a word character
|
||||||
|
`\W` matches any character that __isn't__ a word character
|
||||||
|
### \s
|
||||||
|
`\s` matches any whitespace character in a string
|
||||||
|
`\S` matches any __non__-whitespace character
|
||||||
|
### .
|
||||||
|
`.` matches any character in a string
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:39:45'
|
||||||
|
draft = false
|
||||||
|
title = 'SSH Basics'
|
||||||
|
type='post'
|
||||||
|
tags = ['Misc']
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Generate Keypair
|
||||||
|
```bash
|
||||||
|
ssh-keygen
|
||||||
|
```
|
||||||
|
|
||||||
|
## Remote Login with Key
|
||||||
|
```bash
|
||||||
|
ssh-copy-id <Host>@<Remote>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Disable Access via Password
|
||||||
|
modify `/etc/ssh/sshd_config` so that it includes
|
||||||
|
```
|
||||||
|
PasswordAuthentication no
|
||||||
|
```
|
||||||
|
#### enable changes
|
||||||
|
```
|
||||||
|
systemctl restart ssh
|
||||||
|
```
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:55:29'
|
||||||
|
draft = false
|
||||||
|
title = 'Teamviewer on Arch Linux'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Arch Linux', 'Linux', 'Misc']
|
||||||
|
+++
|
||||||
|
|
||||||
|
1. install teamviewer from the AUR
|
||||||
|
2. every time you want to run TeamViewer GUI the deamon needs to be running.
|
||||||
|
This only works with a Display Manager (e.g. LightDM) and systemd.
|
||||||
|
```sudo systemctl start teamviewerd```
|
||||||
|
3. run the TeamViewer GUI
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
+++
|
||||||
|
date = '2024-12-03T14:35:27+01:00'
|
||||||
|
draft = false
|
||||||
|
title = 'Tkinter in a Conda Environment'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Conda']
|
||||||
|
+++
|
||||||
|
|
||||||
|
The default tk built shipped with conda does not have freetype support.
|
||||||
|
|
||||||
|
## Workaround
|
||||||
|
The workaround proposed in [this](https://github.com/conda-forge/tk-feedstock/pull/40#issuecomment-1803067221) Github issue is:
|
||||||
|
```
|
||||||
|
conda install -c conda-forge tk=*=xft_*
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** in zsh the * need to be escaped
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-15T23:04:00'
|
||||||
|
draft = false
|
||||||
|
title = 'Using 3Dconnexion Mice on Arch Linux'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Arch Linux', 'Misc']
|
||||||
|
+++
|
||||||
|
|
||||||
|
1. Check if the mouse is recognized by the system
|
||||||
|
```bash
|
||||||
|
grep 3Dconnexion /proc/bus/input/devices
|
||||||
|
```
|
||||||
|
1. Install open source drivers [libspnav](https://archlinux.org/packages/extra/x86_64/libspnav/) and [spacenavd](https://aur.archlinux.org/packages/spacenavd)from the AUR (propriatary drivers are very old)
|
||||||
|
|
||||||
|
1. test the setup by running the daemon manually (test programs like [FreeCAD](https://www.freecad.org/) might need to be restarted)
|
||||||
|
```bash
|
||||||
|
spacenavd -v -d
|
||||||
|
```
|
||||||
|
1. the daemon is provided in the form of `spacenavd.service` by the [spacenavd](https://aur.archlinux.org/packages/spacenavd) package and can be started or enabled with [systemctl](https://wiki.archlinux.org/title/Systemctl)
|
||||||
|
|
||||||
|
## configuration via GUI
|
||||||
|
to view and modify the button mappings as well as the general configuration install the [spnavcfg](https://aur.archlinux.org/packages/spnavcfg) package from the AUR
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
This "Tutorial" is just an abbreviated version of the [3D Mouse Arch Wiki Page](https://wiki.archlinux.org/title/3D_Mouse)
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
+++
|
||||||
|
date = '2022-09-04T15:56:51'
|
||||||
|
draft = false
|
||||||
|
title = 'Wireguard Keepalive'
|
||||||
|
type = 'post'
|
||||||
|
tags = ['Misc']
|
||||||
|
+++
|
||||||
|
|
||||||
|
If one peer is behind a DynDNS you need to use the `reresolve-dns.sh` script included with the wireguard-tools package.
|
||||||
|
Excelent [documentation in the Arch-Wiki](https://wiki.archlinux.org/title/WireGuard#Endpoint_with_changing_IP)
|
||||||
|
|
||||||
|
__Note__: wireguard-tools package is installed on another directory in Debian than in Arch. use [apt-file](/knowledge-base/finding-package-files-with-apt-files) to find the relevant directory.
|
||||||
@@ -20,11 +20,16 @@ theme = "gokarna"
|
|||||||
|
|
||||||
[menu]
|
[menu]
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Posts"
|
name = "Projects"
|
||||||
url = "/posts/"
|
url = "/projects/"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Knowledge Base"
|
||||||
|
url = "/knowledge-base/"
|
||||||
|
weight = 2
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
url = "/tags/"
|
||||||
weight = 2
|
weight = 3
|
||||||
|
|||||||
Reference in New Issue
Block a user