# bash-dotfiles Moje oblíbené dotfiles Moje trošku vymazlené dotfiles pro bash. Kompatibilta by měla být RHEL 5/Debian Squeeze, pokud zde/ve skriptu není uvedeno jinak. * mcd - mkdir a vejdi * Proměnná PRODENV která mění barvu hostname v promptu aby odlišil smysl stroje (vyjma mé mašiny) ## Rozšíření v .bashrc.d Všechny scripty v tomhle adresáři mají podmínky kde se dá nastavit zda je sourcovat nebo ne. Soubory navzdory příponě .sh nejsou míněny pro to být spustitelné. Ideální stav je nechat čitelné pro daného uživatele. ### 10_colored_man.sh Default: Zapnuto Asi nemá cenu moc rozepisovat. Pokud se sourcuje, manuálové stránky jsou barevnější, dá se v nich lépe vyznat. Mířeno na tmavé terminály. ### 15_swaptop.sh Default: Zapnuto Použití: swaptop [kolik řádků] [max délka řádků] Jednoduchá berlička systémáka.. vysype seznam nejvíc swap heavy aplikací. Kompatibilita Debian Stretch/ RHEL 5 ### 20_emulate_pstree.sh Default: Zapnuto Záchranná berlička, pokud není nainstalován pstree, pokusí se o emulaci pstree v bashi. ### 30_man_konsole.sh Default: Vypnuto Background story: Můj setup je se 2mi monitory, levý na práci, pravý - pivot (na svislo) a na něm se po startu KDE Plasma otevře speciálně nastavená Konsole. Tyto bash funkce ovládají zmíněnou konzoli. #### Prerekvizity - specifické nastavení konzole: Naimportovat si tohle do **System Settings → Window Management → Window Rules** v KDE Plasma 6 **konsole-manualy.kwinrule** ```ini [Manualy - Konsole] Description=Manualy - Konsole clientmachine=localhost ignoregeometry=true ignoregeometryrule=2 noborder=true noborderrule=2 position=1922,0 positionrule=3 size=1080,1920 sizerule=3 skiptaskbar=true skiptaskbarrule=2 title=~ : bash — Konsole types=1 windowrole=MainWindow#1 windowrolematch=1 wmclass=manualy\n konsole wmclasscomplete=true wmclassmatch=1 ``` Do Autostart dát toto: **konsole-manualy.desktop** ```ini [Desktop Entry] Actions=NewWindow;NewTab; Categories=Qt;KDE;System;TerminalEmulator; Comment[cs_CZ]=Přístup k příkazové řádce Comment=Přístup k příkazové řádce Exec=konsole --name 'manualy\n' --title manualy --profile manualy GenericName[cs_CZ]=Terminál GenericName=Terminál Icon=utilities-terminal Keywords=terminal;console;script;run;execute;command;command-line;commandline;cli;bash;sh;shell;zsh;cmd;command prompt MimeType= Name[cs_CZ]=Konsole Name=Konsole Path= PrefersNonDefaultGPU=false StartupNotify=true StartupWMClass=konsole Terminal=false TerminalOptions= TryExec=konsole Type=Application X-DocPath=konsole/index.html X-KDE-AuthorizeAction=shell_access X-KDE-Shortcuts=Ctrl+Alt+T X-KDE-SubstituteUID=false X-KDE-Username= ``` * mman udělá ctrl+c na dané konzoli a vypíše manuálovou stránku * cman zruší manuálovou stránku, vyčistí konzoli a spustí na ni termclock.sh ### 30_man_konsole.sh Default: Vypnuto Background story: Můj setup je se 2mi monitory, levý na práci, pravý - pivot (na svislo) a na něm se po startu KDE Plasma otevře speciálně nastavená Konsole. Tyto bash funkce ovládají zmíněnou konzoli. #### Prerekvizity - specifické nastavení konzole: Naimportovat si tohle do **System Settings → Window Management → Window Rules** v KDE Plasma 6 **.config/kitty/kitty.conf** ```bash # ~/.config/kitty/kitty.conf # ------------------------------------------------------------ # FONT # ------------------------------------------------------------ font_family DejaVu Sans Mono bold_font auto italic_font auto bold_italic_font auto font_size 13.0 # ------------------------------------------------------------ # COLORS - Utterly-Nord-Solid # ------------------------------------------------------------ foreground #eceff4 background #2e3440 color0 #4c566a color1 #bf616a color2 #a3be8c color3 #ebcb8b color4 #5e81ac color5 #b48ead color6 #81a1c1 color7 #d8dee9 color8 #4c566a color9 #bf616a color10 #a3be8c color11 #ebcb8b color12 #5e81ac color13 #b48ead color14 #81a1c1 color15 #d8dee9 # ------------------------------------------------------------ # CURSOR # ------------------------------------------------------------ cursor #eceff4 cursor_text_color #2e3440 cursor_shape block cursor_shape_unfocused hollow cursor_blink_interval 0 # ------------------------------------------------------------ # SHELL INTEGRATION # # Vypnuto: # - Bash nebude menit block cursor na beam # - zmizi warning kvuli HISTCONTROL=ignoreboth/ignorespace # ------------------------------------------------------------ shell_integration disabled # ------------------------------------------------------------ # SELECTION # ------------------------------------------------------------ selection_foreground #eceff4 selection_background #4c566a # ------------------------------------------------------------ # WINDOW SPACING # top right bottom left # ------------------------------------------------------------ window_padding_width 3 5 3 5 window_margin_width 0 # ------------------------------------------------------------ # TUX # # tux-bw-kitty.png uz ma alpha zeslabenou na 10 % # ------------------------------------------------------------ window_logo_path /home/peva/.bondelek/tux-bw-kitty.png window_logo_position center window_logo_scale 75 window_logo_alpha 1.0 # ------------------------------------------------------------ # LAYOUT # ------------------------------------------------------------ enabled_layouts splits # ------------------------------------------------------------ # REMOTE CONTROL # # Instance "manualy" se spousti s: # --listen-on unix:@manualy # # Pouziva se pro mman/cman. # ------------------------------------------------------------ allow_remote_control socket-only ``` **.config/kitty/manualy.session** ```bash layout splits launch --title termclock --var role=termclock bash -lc '. /home/peva/.config/termclock.rc; /home/peva/bin/termclock.sh -g3; exec bash' launch --location=hsplit --bias=30 --title tele --var role=tele --logo /home/peva/.bondelek/tux-bw-kitty-small.png --logo-position center --logo-alpha 1.0 bash -lc 'tele; exec bash' focus ``` **kitty-manualy.sh** ```bash #!/bin/bash SOCKET="unix:@manualy" SESSION="$HOME/.config/kitty/manualy.session" LOGDIR="$HOME/.cache" LOGFILE="$LOGDIR/kitty-manualy.log" mkdir -p "$LOGDIR" if kitten @ --to "$SOCKET" ls >/dev/null 2>&1; then echo "Kitty manualy už běží." exit 0 fi exec kitty --class manualy --name manualy --title Manualy --listen-on "$SOCKET" --session "$SESSION" 2>>"$LOGFILE" & ``` * mman udělá ctrl+c na dané konzoli a vypíše manuálovou stránku * cman zruší manuálovou stránku, vyčistí konzoli a spustí na ni termclock.sh ### 35_hesgenk2.sh Default: Zapnuto Jednoduchá konverze webu na script a ze scriptu do bash funkce. Generuje hesla která jsou v K2 běžná - 12 znaků + 2 číslice v základku * hesgenk2 ### 40_notes.sh Default: Zapnuto Jednoduché funkce které umožňují si uložit jednoduché jednořádkové poznámky. Pozdnámky se ukládají do ~/.notes a nějaké tipy pro bash jsem v souboru nechal * notes - vypíše poznámky * note_add [poznamka] - přidá poznámku * note_rm [číslo poznámky] - odstraní poznámku ### 50_datum.sh Default: Zapnuto Jednoduchá funkce která vykreslí kalendářový list do terminálu se vším užitečným z repertoáru příkazu date * datum - vykreslí tabulku ### 99_skeleton.sh.disabled Nejedná se o script, ale o šablonu se vším potřebným pro to mít unifikované scripty v tomhle podadresáři. Díky jiné příponě se nikdy sourcovat nebude. Prostě cp ~/.bashrc.d/99_skeleton.sh.disabled ~/.bashrc.d/98_muj_projekt.sh a jedem...