# Sharks - Navigation

`/home/artix/.zprofile` - Profile file that runs on login and includes enviromental variables and other stuff.
`/home/artix/.config/` - Configurations obviously.
`/home/artix/.local/src` - Compiled software utilities.
`/home/artix/.local/bin/` - All scripts that feature a automated workflow.
`/home/artix/.local/bin/statusbar` - All configuration Files for [dmenu](/home/artix/.local/bin/statusbar) the statusbar.

# Sharks - scripts, commands and bindings

Sharks pre-installed utilities are in alignment to the unixcism. Directorys of Scripts and commands are indicaded.

[TOC]

## autostart:

#### remaps

Remaps keys on startup, set on `/home/artix/.local/bin/remaps`

#### dmenupass

Using dmenu as a password prompter, set on `/home/artix/.local/bin/dmenupass`

## scripts:

#### maimpick:

`shift PrintScreen` - Make screenshot

#### backup

`backup <directory>` - will make a compressed backup of given directory

#### compiler

Compiles .tex. groff (.mom, .ms), .rmd, .md, .org.  Opens .sent files as sent presentations

#### displayselect

`displayselect` - A UI for detecting and selecting all displays

#### dmenuhandler

`dmenuhandler <link>` - Give it any link and dmenu outputs programms to open it

#### dmenunicode

 `dmenuunicode` - The famous "*get a menu of emojis to copy*" script

#### getkeys

`getkeys <software>` - Outputs all shotcut keys of given utility, configurable man alternative

#### noisereduce

`noisereduce <input video file> <output video file>` -  Reduces background noices of given video file

#### slider

`slider -i <file.txt>` - Give a file with images and timecodes and creates a video slideshow of them

#### mounter

`no argument` - Can mount decrypted drives or usb or anything

#### rssadd

`rssadd <rss-link>` - Add rss-feeds to newsboat from the command line

#### transadd 

`transadd <torrent-link>` - Add torrents to transmission from the command line

## bindings:

####  lfub: 

`y` - copy
`p` - paste
`a` - create
`A` - mkdir
`en` - open
`bs`  - go back one directory 
`D` - delete
`C` - copy
`X` - Cut
`P` - paste
`r` - rename
`/` - search
`q` - quit    
`m` - mark
`h`, `j`, `k` ,`l` - to move around and enter directories and open files.
`g`, `G`, `<c d>`,  `<c u>` - movement like in vim.
`w` - drop into a terminal in the current directory.     
        `<c d>` in the terminal, you will return to lf
`<crtl n>` - new directory
`V` - new file with `nvim`
`sp` - select files:
     `d` - cut files to lf's clipboard
     `y` - yank files to lf's clipboard
     `p` - paste/move copied/cut files
     `C` - copy selected files to a bookmarked directory
     `M` - move selected files to a bookmarked directory
     `Y` - copy text names of selected files to the system clipboard.

**Renaming files:**
`o` - rename the selected file
`A` - rename the selected file, starting at end
`a` - rename the selected file, starting after the extension
`I` - rename the selected file, starting at beginning
`i` - rename the selected file, starting before extension
`B` - bulk rename: use vidir to mass edit all files in the directory
`s` - sort files by a different metric
`z` - show extra data or hidden files

#### st (zsh):

*includes* `.config/shell/`

`<alt page-up/page-down>` - faster scroll
`<alt c j/k>` - decrease or increase font size
`<alt c>` - copy selected text to clipboard
`<alt c l>` - clear terminal
`<alt insert>` - paste clipboard contents
`<alt l>` - open a link
`<alt y>` - copy a link
`<alt o>` - copy the output from a recent command
`<alt a/s>` - decrease/increase transparency
`<crtl-l>` - clear-screen
`<crtl-a>` - beginning-of-line

#### vim:

*mapping*:
`<crtl h>` - wechsle zum Fenster links 
`<crtl j>` - wechsle zum Fenster unten 
`<crtl k>` - wechsle zum Fenster oben 
`<crtl l>` - wechsle zum Fenster rechts 
`<, n>` - öffne oder schließe NERDTree 
`b` - öffne die Bibliotheksdatei in einem vertikalen Split 
`,r` - öffne die Referenzdatei in einem vertikalen Split 
`,f` - aktiviere den Goyo-Modus für fokussiertes Schreiben 
`,h` - toggle die Anzeige der unteren Statusleiste 
`,o` - toggle die Rechtschreibprüfung (Englisch) 
`Q` - ersetze Ex-Mode mit dem `gq` Befehl (Formatierung) 
`S` - ersetze alle Vorkommen eines Suchmusters in der Datei 
`,,` - füge `<++>` ein und platziere den Cursor an der richtigen Stelle für den nächsten Text 
`,c` - speichere die Datei und kompiliere das Dokument (z.B. LaTeX, Markdown) 
`,p` - öffne das entsprechende PDF oder HTML-Dokument der aktuellen Datei 
`,s` - überprüfe die aktuelle Datei mit `shellcheck` 
`w!!` - speichere eine Datei mit Root-Rechten
`,v` - öffne den Vimwiki-Index 
`,`d - toggle DeadKeys 
`<, i>` - toggle IPA (International Phonetic Alphabet) Eingabe 
`<, q>` - toggle Prosa-Modus 
`Q` - ersetze Ex-Mode mit dem `gq` Befehl (Formatierung) 
`S` - ersetze alle Vorkommen eines Suchmusters in der Datei 
`,,` - füge `<++>` ein und platziere den Cursor an der richtigen Stelle für den nächsten Text 
`,`c - speichere die Datei und kompiliere das Dokument (z.B. LaTeX, Markdown) 
`,`p - öffne das entsprechende PDF oder HTML-Dokument der aktuellen Datei

*normal-mode*:
`k` - up 
`h` - left 
`l` - right 
`j` - down 
`w` - next start of word 
`W` - next start of whitespace-delimited word 
`e` - next end of word 
`E` - next end of whitespace-delimited word 
`b` - previous start of word 
`B` - previous start of whitespace-delimited word 
`:0` - start of line 
`:$` - end of line 
`gg` - go to first line in file 
`G` - go to end of file 
`gk` - move down one displayed line 
`gj` - move up one displayed line
`a` - append after the cursor 
`A` - append at the end of the line 

*insert-mode*:
`i` - insert before the cursor 
`I` - insert at the beginning of the line 
`o` - create a new line under the cursor 
`O` - create a new line above the cursor 
`R` - enter insert mode but replace instead of inserting chars 
`u` - undo
`yy` - yank (copy) a line
`y {motion}` - yank text that {motion} moves over
`p` - paste after cursor
`P` - paste before cursor
`x` - delete a character
`dd` - delete a line

#### dwm:

`<mod j/k>` – cycle thru windows
`<mod rc>` - drag window around (floating mode)
`<mod S>` – un-/make a window float
`<mod l>` - change window size
`<mod S>` – make selected window the master
`<mod h/l>` – change width of master window
`<mod z/x>` – increase/decrease gaps (not permament)
`<mod a>` – toggle gaps (not permament)
`<mod 1-9>` - send window to workspace 1-9
`<mod shift 1-9>` - take window with you to workspace 1-9
`<mod b>` – toggle statusbar
`<mod f>` - fullscreen a window
`<mod q>` - cloze a window

**utilities:**
`<m k>` - kdenlive
`<m w>` - firefox
`<m e>` - dolphin
`<m en>` - st

**dwmblocks:** 
`<mod a>` - agenda
`<mod m>` - mail
`<mod r>` - readme
`<mod u>` - updater

#### surf:

`<shift ctrl enter>` - New tab
`<shift ctrl l>` - Next higher number tab
`<shift ctrl h>` - Next lower number tab
Ctrl+Tab: Toggle between last 2 tabs
Ctrl+1: Switch to tab 1
Ctrl+2: Switch to tab 2

- Ctrl+3: Switch to tab 3, etc.
- Ctrl+q: Close this tab
- Ctrl+t: Tab picklist

- Ctrl+g: Go to URL (field on screen's upper left (not the browser window) opens for you to type)
- Ctrl+h: Previous page in history, like back button on other browsers
- Ctrl+r: Refresh/reload.
- Ctrl+-: Zoom out a little
- Shift+Ctrl++: Zoom in a little
- Shift+Ctrl+q: Normal zoom

- Ctrl+g: Go to URL (field on screen's upper left (not the browser window) opens for you to type)
- Ctrl+p: Go to URL in cut and paste clipboard
- Ctrl+y: Put current website URL into cut and paste clipboard
- Ctrl+h: Previous page in history, like back button on other browsers
- Ctrl+l: Undo the last Ctrl+h (go later in history)
- Ctrl+r: Refresh/reload from cache.
- Ctrl+Shift+r: Refresh/reload *without* cache
- Ctrl+-: Zoom out a little
- Shift+Ctrl++: Zoom in a little
- Shift+Ctrl+q: Normal zoom, and note that  this might not be the zoom the browser opened with, if the browser was  set to open with a non-normal zoom.
- Ctrl+o: Toggle "view source"
- Ctrl+j: Down a little
- Ctrl+k: Up a little
- Ctrl+Space: Down a lot
- Ctrl+b: Up a lot
- Ctrl+i: Scroll left a little
- Ctrl+u: Scroll right a little
- F11: Toggle fullscreen
- Shift+Ctrl+b: Toggle scrollbars
- Shift+Ctrl+g: Toggle geolocation

#### gimp:

`<crtl l>` - transfomieren 
`<crtl i>` - invertieren 

#### scrot:

`<mod s>` - make screenshot 

#### dfcitx:

`<crtl space>` - Change global language input

#### typora:

`<c ,>` - settings
`<c h>` - search for input
`<crtl alt c>` - convert selected text to code 
`<crtl 1-6>` - convert to heading 1-6

#### mpv:

`<a ->` - Zoom Out
`<a +>` - Zoom In
`o` - show progress
`s` - Screenshot the current frame
`S` - Cycle trough subtitels (.config/mpv/mpv.conf)
`f` - toggle Fullscreen

#### sxiv:

`b` - hide bar
`W` - fit image to window
`<` - rotate image by 90 degrees.
`?` - rotate image by 180 degrees.
`+` - zoom Out
`-` - zoom out
`q` - quit sxiv

#### zathura:

`sp` - next page
`D` - toggle double-page mode
`r` - reload
`R` - rotate
`K` - zoom in
`J` - zoom out
`i` - invert colour
`p` - print
`g` - go to top
`z` - zathura

#### neomutt:

`adduser mail -m -a mail bryan` - Add user bryan and add him to mail

#### calibre 

`<crtl t>` - inhaltsverzeichnis
`<crtl r>` - reload book

#### audacity:

`<crtl k>` - open keybindings menu
`<crtl r>` - start recording
`<crtl s>` - add new spur 
`<crtl e>` - export

#### kdenlive 

`<c a k>` - open keybindings menu
`<c a u>` - add subtitels
`<c a h>` - add helpline 
`<c a en>` - render video 
`<s lc>` - bulk select
`<c x>` - cutting tool
`<c i>` - un-/hide inhalt
`<c e>` - un-/hide effects 
`<c m>` - un-/hide menubar
`<c ü>` - un-/hide effect configuration
`<c +>` - zoom in 
`<c ->` - zoom out

#### libreoffice:

`<c k>` - open shortcut menu
`<c a left>` - select to beginning of line 
`<c B>` - buchstaben kleiner stellen 
`<c e>` - export directly as PDF
`<c 1-6>` - convert to heading 1-6
`<c o>` - optimal view 

#### goldendict:

` <crtl selct>` - opens word in goldendict
`<crtl A>` - sends word to anki-deck

## commands:

#### mv:

`mv [filename]` - Rename file in cd

#### rm:

`rm [filename]` - Remove file 
`rm -r [directory]` - Remove directory

#### ln:

`ln -s a/directory/ ~/to/another` - Link a directory to another
`sudo ln -s /home/script /usr/local/bin/script` - symlink script to global utitlites

#### tar:

`tar -czvf /var/backups/dokuwiki_pages_backup.tar.gz /var/www/dokuwiki/data/pages` - Erstelle ein Backup eines Directorys
`tar -xzvf /var/backups/dokuwiki_pages_backup.tar.gz -C /var/www/dokuwiki/data/pages` - Spule das Backup ins Directory

#### vim:

`:%d` - delete everything in file
`:%y` - copy everything in file

#### adb:

`adb backup -apk -noshared -all` - make backup of phone but without files
`adb restore backup.ab` - Restore from backup

#### man:

`mandb` - aktualisiere Datenbank 

#### git:

`git clone https://github.com/repository` - clone repository
`git remote set-url origin git@github.com:marlonivo/example.git` - link your local-folder with server-repo
`git-sync` - git pull --no-rebase origin main && git add . && git commit -m "Update" && git push origin main

#### git-lfs:

`git lfs install  # in repo` - install lfs
`git lfs track "file.txt"` - first track 
`git add .gitattributes` - then add this
`git add file.txt` - then add the file
`git commit -m "update"` - then commit
`git push origin main` - then push 

#### php:

`php -S localhost:8000` - start webserver on https://localhost:8000   #can be any number between 1-9999

#### ssh:

`m-shh` - connect (as root) to marlonivo.xyz
`ssh email@marlonivo.xyz` - connect (as mail) to marlonivo.xyz

#### yt-dl:

`yt [URL]` - download yt video from [URL]
`yt-mp3 [URL]` - download audio of yt video from [URL]

#### date:

`date MMDDhhmmYYYY` - set time
`date -u` - set time to utc 

#### rsync:

*includes `.config/shell/aliasrc`:*

`m-wesbite-sync` - push to marlonivo.xyz
`s-website-sync` - push to sharks.marlonivo.xyz
`d-website-pull` - pull from wiki.marlonivo.xyz
`d-wesbite-push` - push to wiki.marlonivo.xyz
`lib-push` - push to library.marlonivo.xyz

#### sqlite:

`CREATE TABLE tabelle` - create a new table called "tabelle"
`ALTER TABLE tablle ADD COLUMN column_name TEXT;` - Add a column called column_name to "tabelle"
`PRAGMA table_info(tabelle);` - look at the table called "tabelle"

#### fdisk:

`sudo fdisk` - start partitan manipulator 

#### artix:

`useradd -G mail -m user` - Add a user called "user" to a group called "mail" 
`passwd [user]` - Give user a password
`deluser user` - delete user

#### pandoc:



#### ffmpeg:

`ffmpeg -i input.MP4 -vf "transpose=1" out.MP4` - Turn video 90 clockwise
`ffmpeg -i track.mp3 -i cover.jpg -map 0:a -map 1:v -c:a copy -c:v mjpeg -metadata:s:v title="Album Cover" -metadata:s:v comment="Cover" output.mp3`  - Give mp3 a cover
`ffmpeg -i in.jpg -vf "transpose=1" output.jpg` - Turn picture 90 clockwise
`ffmpeg -i in.MP4 -vf "scale=trunc(iw/10)*2:trunc(ih/10)*2" out.MP4` - compress video-quality to a fitfth
`ffmpeg -i in.jpg -q:v 10 output.jpg` - Compress Picture (up to 31 Levels)
`ffmpeg -i in.MP4 -vf "crop=iw-96:ih:96:0" out.MP4` - Crop video 5% on the left site
`ffmpeg -f lavfi -i color=c=green:s=1280x720:d=80 -vf "drawtext=fontfile=/path/to/font.ttf:` - Create video with text 
`ffmpeg -i in.MP4 -ss 00:00:00 -t 00:00:60 -c copy out.MP4` - create mp4 with the first 60 seconds of input.mp4 
`ffmpeg -i in.MP4 -map 0:v:0 -map 0:a:0 -c:v copy -c:a aac -b:a 192k out.MP4` - Extract only video and audio from mp4

#### pacman:

`pacman -S [package]` - Install from Arch Repository
`pacman -Syyu` - Update System & Packages
`pacman -Rns $(pacman -Qdtq)` - Autoremove Reqiuerements that are no longer required
`pacman -Qm` - List packages installed 

#### imagemagick

`convert -density 300 input.pdf -quality 100 output.png` - hochauflösende konvertierung 

#### bluetoothctl:

`power on` - turn bluetooth on
`agent on` - set agent to on
`default-agent` - set default-agent 
`scan on` - scan for available devices
`dis/connect [XX:XX:XX:XX:XX:XX]` - dis/connect device