# dotfiles ## Bulk commands ``` yay -S spectrwm fish openssh rofi xorg xorg-server scrot xorg-xinit alacritty ranger feh xf86-video-intel librewolf-bin cifs-utils pulseaudio-alsa pulseaudio-ctl slock xautolock zip unzip alsa-utils redshift-minimal numlockx usbutils cmatrix yubikey-touch-detector tlp powertop phinger-cursors xdg-user-dirs cp dotfiles/.xinitrc ~/ cp dotfiles/.fehbg ~/ cp dotfiles/.bash_profile ~/ cp dotfiles/.tmux.conf ~/ cp dotfiles/.gemrc ~/ cp dotfiles/.Xresources ~/ mkdir -p ~/.gnupg && cp dotfiles/.gnupg/gpg.conf ~/.gnupg/ chmod +x ~/.fehbg mkdir -p ~/.config/{spectrwm,alacritty,rofi,fish/functions} cp dotfiles/.config/spectrwm/* ~/.config/spectrwm/ cp dotfiles/.config/alacritty/alacritty.yml ~/.config/alacritty/ cp dotfiles/.config/rofi/config.rasi ~/.config/rofi/ cp dotfiles/.config/fish/config.fish ~/.config/fish/ cp dotfiles/.config/fish/functions/* ~/.config/fish/functions/ cp dotfiles/.config/user-dirs.dirs ~/.config/ sudo sed -i "s/autospawn = no/autospawn = yes/" /etc/pulse/client.conf sudo cp dotfiles/X11/xorg.conf /etc/X11/ sudo cp dotfiles/system/slock@.service /etc/systemd/system/slock@.service sudo systemctl enable slock@$USER.service sudo cp dotfiles/xorg.conf.d/20-intel.conf /etc/X11/xorg.conf.d/ sudo cp dotfiles/system/mnt-data.* /etc/systemd/system/ sudo cp dotfiles/system/powertop.service /etc/systemd/system/ sudo systemctl enable --now mnt-data.automount powertop.service tlp.service ``` ## Packages ### General purposes ``` yay -S spectrwm fish openssh rofi xorg xorg-server scrot xorg-xinit alacritty ranger feh xf86-video-intel librewolf-bin cifs-utils pulseaudio-alsa pulseaudio-ctl slock xautolock zip unzip alsa-utils redshift-minimal numlockx usbutils cmatrix yubikey-touch-detector tlp powertop phinger-cursors ttf-agave-nerd ``` ### Hacking purposes ``` yay -S wfuzz exploitdb nmap gobuster nikto hydra perl-image-exiftool zsteg rtl88xxau-aircrack-dkms-git rockyou seclists fcrackzip gdb radare2 enum4linux peass hashcat intel-compute-runtime metasploit cuda ``` ## Configurations ### Power #### TLP ``` yay -S tlp sudo systemctl enable --now tlp.service ``` #### Powertop ``` yay -S powertop sudo cp dotfiles/system/powertop.service /etc/systemd/system/ sudo systemctl enable --now powertop.service ``` ### Locale ``` sudo localectl set-keymap fr sudo localectl --no-convert set-x11-keymap fr pc104 sudo localectl set-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 sudo timedatectl set-timezone Europe/Paris sudo timedatectl set-ntp true ``` ### Freebox share ``` sudo mkdir -p /mnt/data sudo mkdir -p /etc/samba/credentials sudo cp dotfiles/credentials/data /etc/samba/credentials/ (complete the login information in this file) sudo chmod 700 /etc/samba/credentials/ sudo chmod 600 /etc/samba/credentials/data ``` ### Enable services ``` sudo systemctl enable slock@$USER.service sudo systemctl enable --now mnt-data.automount ``` ### GPU On a second laptop I have a Quadro T2000 graphics card, if I want to be able to use it (for `hashcat` among others) I have to install the following tools and make the following configuration. ``` yay -S nvidia bumblebee sudo gpasswd -a $USER bumblebee sudo systemctl enable --now bumblebeed.service ``` It's a good idea to reboot, to make sure the modules load properly. To test if Bumblebee works with your Optimus system, you can execute the following thing. ``` optirun glxspheres64 ``` If the window with animation shows up, Optimus with Bumblebee is working. Some useful links to learn more: - https://wiki.archlinux.org/index.php/NVIDIA, - https://wiki.archlinux.org/index.php/AMDGPU, - https://wiki.archlinux.org/index.php/Bumblebee. ## Miscellaneous ### Generate a WPA-PSK for `netctl` Wi-Fi config files Copy the value of the `psk` key and paste it in the `netctl` config file and prefix it with `Key=\"`. ``` wpa_passphrase # reading passphrase from stdin ``` ### Configure git ``` git config --global user.name git config --global user.email git config --global gpg.program gpg git config --global user.signingkey 0x... (signing subkey ID) git config --global commit.gpgsign true ``` ### Configure vim ``` curl -LOsSf https://raw.githubusercontent.com/glepnir/oceanic-material/master/colors/oceanic_material.vim sudo mv oceanic_material.vim /usr/share/vim/vim90/colors/ echo "syntax on" | sudo tee -a /etc/vimrc echo "colorscheme oceanic_material" | sudo tee -a /etc/vimrc echo "filetype plugin indent on" | sudo tee -a /etc/vimrc ``` ### Disable sleep mode when closing the lid ``` sudo sed -i "s/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/" /etc/systemd /logind.conf ``` ## Specific installations ### Docker Closing (and then reopening) your session is necessary. ``` yay -S docker sudo gpasswd --add $USER docker sudo systemctl start docker sudo systemctl enable docker (optional) ``` #### Simple test ``` docker run --name nginx -p 80:80 -d nginx ``` #### Clean Docker (images, volumes and more that are not used) ``` docker system prune --all --volumes ``` ### Tinygo ``` yay -S tinygo avrdude avr-gcc avr-libc ``` #### Commands ##### Upload led blinking to Arduino Nano ``` tinygo flash -target=arduino-nano -port=/dev/ttyUSB0 examples/blinky1 ``` ##### Upload source code to Arduino Nano ``` tinygo flash -target arduino-nano /path/to/code ``` ### Arduino IDE and Arduino CLI ``` yay -S arduino arduino-cli sudo usermod -aG uucp $USER or sudo usermod -aG tty $USER sudo chmod a+rw /dev/ttyUSBX ``` ### Jekyll ``` yay -S ruby cp dotfiles/.gemrc ~/ gem install bundler jekyll rdoc ``` ### Rust Replace `{stable, nighlty}` by the toolchain you want to install. ``` yay -S rustup rustup default {stable, nightly} ``` #### Update toolchain ``` rustup update ``` ### IntelliJ IDEA ``` yay -S intellij-idea-ultimate-edition-jre intellij-idea-ultimate-edition ``` #### Use fish shell inside IntelliJ IDEA ``` sudo ln -s ~/.config/fish/fish_variables /opt/intellij-idea-ultimate-edition/plugins/terminal/fish/fish_variables ``` ### Laravel #### Install Composer ``` yay -S composer ``` #### Install Laravel Installer ``` composer global require laravel/installer ``` #### Add Laravel Installer's path to fish's path ``` set -U fish_user_paths ~/.config/composer/vendor/laravel/installer/bin $fish_user_paths ``` ### Fish #### Remove a path into fish's path ##### List current path(s) ``` echo $fish_user_paths | tr " " "\n" | nl 1 ~/.config/composer/vendor/laravel/installer/bin ``` ##### Delete the useless one (replace 1 by the desired index) ``` set --erase --universal fish_user_paths[1] ```