Skip to content

igarag/dotfiles

Repository files navigation

Markdownify
My Dotfiles

🇪🇸 · 🇬🇧

Content


This document shows the programs and configurations I have in the distributions I use. I currently work with:

  • Pop! OS 20.04 - Gnome - Ubuntu based / Debian.
  • Manjaro 20.2 - Gnome/Qtile - Arch.

File management and installation on the system has been done using dotbot.

Fonts

You can test all the fonts in programmingfonts.org.

Application launcher

🚀 Rofi

Rofi is a popular, easy and simple application launcher. Is a dmenu program. In a 'tiling window' desktops environments is commonly executed by Alt + D.

Rofi installation:

  • Debian:

    sudo apt install rofi
  • Arch:

    sudo pacman -S rofi

Add the following command to your custom shortcuts in order to executed like the above animation (launcher + icons).

  • Run programs:

    rofi -show drun -show-icons
  • Show windows

    rofi -show window -show-icons

Copy the photon-orange.rasi theme to /usr/share/rofi/themes to complete the installation:

sudo cp ./config/rofi/photon-orange/photon-orange.rasi /usr/share/rofi/themes

And set the theme typing:

rofi-theme-selector

🖥️ Terminals

The terminals I normally use are:

  • Alacritty
  • Terminator
  • rxvt-unicode

To change the default terminal type:

sudo update-alternatives --config x-terminal-emulator

A table will appear where the desired terminal is selected with a number.

Zsh

My favorite shell is zsh. It's very easy to configure and you can add extensions that improve its capabilities. The extension for it to look like in the image is PowerLevel10k. This version includes a program to configure it quickly and easily 😄.

Plugins (inside of /.oh-my-zsh/plugins/:

  • zsh-syntax-highlighting

    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
    echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
  • zsh-autosuggestions

    git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.zsh/zsh-autosuggestions
    source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

Under testing. Replace powelevel10 by "oh-my-posh"

Desktop configuration

PopShell

PopShell is a great and powerful tool for Linux distributions with Gnome as desktop environment that automatically manages the windows of the operating system by placing them in a logical way. At the same time, it adjusts keyboard shortcuts using the Vim shortcut map.

Import/Export PopOS / Ubuntu configuration:

  • Export:
dconf dump / > popos_debian.conf
  • Import:
dconf load -f /org/gnome/shell/extensions/pop-shell/ < backuppp

Tiling window manager resources

  • Qtile

  • Multimonitor: mons

SaveDektop (Gnome only)

Save and apply your Desktop Environment configuration using this tool. The repository is hosted by flatpak in this link.

flatpak install flathub io.github.vikdevelop.SaveDesktop

Run the program:

flatpak run io.github.vikdevelop.SaveDesktop

Code editors

  • VSCode
  • Pycharm
  • NVim

NeoVim

Neovim is a fork – with additions – of Vim that strives to improve the extensibility and maintainability of Vim. Neovim has the same configuration syntax as Vim; thus the same configuration file can be used with both editors, although there are minor differences in details of options. If the added features of Neovim are not used, Neovim is compatible with almost all of Vim's features.

vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Productivity

📧 MailSpring

  • Qtile

  • Multimonitor: mons

Code editors

  • VSCode
  • Pycharm
  • NVim

NeoVim

Neovim is a fork – with additions – of Vim that strives to improve the extensibility and maintainability of Vim. Neovim has the same configuration syntax as Vim; thus the same configuration file can be used with both editors, although there are minor differences in details of options. If the added features of Neovim are not used, Neovim is compatible with almost all of Vim's features.

vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Productivity

Web Browser addons

📧 MailSpring

MailSpring is an Open Source and powerful mail client. I am using the "predawn" theme that the user "asparc" has modified.

To modify the theme you have to open the directory where it is installed.

  • In Ubuntu: ~/snap/mailspring/common/packages/predawn

  • Enable the developer flags (Developer --> Run with debug flags)

  • Reload the theme at each change by typing:

    AppEnv.themes.setActiveTheme('ui-light'); // default theme (for example).
    AppEnv.themes.setActiveTheme('predawn');  // Custom theme.
    

⌨️ Command line tools

LazyGit

LazyGit is a powerful command-line Git manager. The user interface is excellent and the ease of getting used to keyboard shortcuts increases your productivity. It brings a lot of value to your day-to-day work. You can see in the image an example of this same repository while I create it 😉.

Installation:

  • Debian

    sudo apt install lazygit
  • Arch:

    sudo pacman -S lazygit

⭐ Ranger

Ranger is a powerful command-line file manager written in Python that allows you to move around very quickly using Vim's shortcuts.

Installing typing:

  • Debian:

    sudo apt install ranger
  • Arch:

    sudo pacman -S ranger

🦇 BatCat

BatCat is an extension for the shell that allows the contents of the formatted files to be viewed. It makes it easier to understand the code when we make a 'cat' on them. With the command batcat <file> we start it up. In the .zshrc file I have an alias to launch it with cat, keeping the original functionality of cat intact (to copy the content of a file the original cat is more useful since the lines of code don't appear).

In the following image you can see a simple example of a file in Python:

🔎 fzf

fzf is a very agile search engine for directories, files and commands on the interpreter's history, allowing searches using regular expressions and selecting the results from a list of best candidates. The use of the library is focused in its basic part on three commands:

Atajo Resultado
Control+T Búsqueda de ficheros
Control+R Búsqueda en el historial de comandos
Alt+C Búsqueda de directorios

Install:

  • Debian:

    sudo apt install fzf
  • Arch:

    sudo pacman -S fzf

Configuration:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

📶 NMTUI

In tiling window manager environments or environments focused on hyper-customization and keyboard use it is not common to have the widget to connect to a network via Wi-Fi. The NMTUI command line tool allows in an agile way to connect using a simple interface.

💾 NCDU

Command line disk analyzer in the style of the GUI version of Baobab.

Install:

  • Debian:

    sudo apt install ncdu
    

♻️ Trash-CLI

Trash-cli is a command line interface that helps prevent permanent file deletion that we would do with rm. With trash-cli we send files to the trash, list the contents, vary or restore files with a simple use of its commands:]

trash-put           envía archivos y carpetas a la papelera
trash-empty         eliminar el contenido de la papelera
trash-list          lista el contenido de la papelera
trash-restore       restaura un archivo de la papelera
trash-rm            elimina un único archivo de la papelera

Installation:

pip3 install -U trash-cli

📓 exa

exa is a software to enhance the ls terminal command.

Based on colorls and lsd (LSDeluxe) and written in the Rust language, exa adds one more element of configuration: it allows you to configure the elements you want to display. Use is made of alias to launch different configurations.

Installation:

  • Debian, by downloading the binary from the releases section and using dpkg:

    sudo apt install exa
  • Arch:

    sudo pacman -S exa

ctop

Ctop is a command line container manager that allows you to see the status of Docker containers as well as CPU and memory consumption with auto-refresh. Ideal for when you have several services at once and want to monitor performance. In the animation they have in their repository you can see an example:

z

From habd.as: rupa/z is an amazing shell script that allows users to traverse a filesystem in no time flat. Use it if you spend any time at all changing directories in a *nix environment. It will improve productivity and spare fat fingers quite a bit of backpedaling.

An alternative written in Rust there are another tool for it: zoxide.

cheat

Interactive cheatsheets on the command-line. Link.

🎵 ncstop

Lightweight Spotify client for command line.

Link

Useful GitHub repos

  • github-markdown-toc

Useful links

Command-line applications

Dotfiles manager