Toolbox

  1. With the right tools, everything becomes a bit more simple.
  2. Things will take less time to be done.
  3. Time can be spent on other (hopefully, meaningful) things.

How to choose a tool?

Basic rule: use the tool that suits you, knowing that a tool that satisfies all your requirements does not exist.

https://karl-voit.at/2021/01/18/tool-choices/

Helpful tools

Tools common for all OSs

  1. Search for files, file contents and text manipulation
  2. openjdk (the latest version) plus Maven
  3. docker and docker-compose
  4. Integrated Development Environment (IDEs) and Text Editors
  5. Browsers
  6. Git
    1. Set up SSH keys for it if necessary
    2. (and a Good git interface for Linux) -
    3. - If we can work with Vim and vim-fugitive, that, when used along with terminal, should be enough for pretty much everything related to Git.
    4. - gitg (lighter and faster - lets us stage individual lines and chunks)
    5. - GitAhead (Good tool to understand the history. Did not use it very extensively though. Can it be helpful with resolving merge conflicts and rebasing? Have to use it with bigger projects to figure that out.)
    6. - Eclipse eGit plugin is probably the best. It works the same way in all OSs and it has all the features we really need.
  7. zip (pacman -S zip)
    1. Command to zip a folder from terminal: zip -r <zip file name> <directory name>
    2. Other alternatives
      1. Peazip
      2. 7-zip
  8. File Managers
    1. Vifm
  9. Working with csv files
    1. Rainbow CSV
    2. This Visual Studio Code plugin highlights columns in CSV, TSV, semicolon, and pipe-separated files with distinct colors.
    3. https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv

Tools for Linux (Personal workstation set-up)

(See Tools common for all OSs in addition to the ones listed here.)

  1. terminals
    1. What is a gpu accelerated terminal?
      1. A GPU-accelerated terminal is a command-line interface (CLI) that uses the Graphics Processing Unit (GPU) to render its output, rather than relying solely on the Central Processing Unit (CPU). This offloading of graphics processing provides significantly faster rendering, lower latency for typing, and a smoother, more responsive user experience, especially when dealing with large amounts of text, complex processes, or multiple windows.
      2. How they work
        1. GPU offloading: Instead of the CPU rendering every character and line, the terminal sends the display information to the GPU, which can process graphics-intensive tasks much more efficiently due to its parallel processing power.
        2. Optimized rendering: By intelligently managing rendering time and tasks, GPU-accelerated terminals can display large files quickly and only redraw when the content changes, further improving performance.
        3. Enhanced features: GPU acceleration also allows for more advanced text rendering features, such as ligatures and better font handling, contributing to a more modern and polished look.
      3. Benefits
        1. Speed and responsiveness: The most significant advantage is a dramatic increase in speed, making typing feel instantaneous and making the terminal appear to be much faster overall.
        2. Efficiency: By using specialized hardware (the GPU), the terminal can handle complex displays and high-volume output more efficiently.
        3. Smoothness: Users experience a smoother visual output, which is especially noticeable during demanding tasks.
      4. Examples of GPU-accelerated terminals
        1. Alacritty: A cross-platform terminal written in Rust known for its speed.
        2. Kitty: An OpenGL-based terminal emulator designed for power users.
        3. WezTerm: A cross-platform terminal emulator and multiplexer also written in Rust.
        4. Ghostty: A fast, GPU-accelerated terminal emulator created by Mitchell Hashimoto.
    2. How to do comparison?
      1. Rendering in terminal is often a performance bottleneck. For example: executing “time find /usr”
        1. alacritty: 0,65s user 1,37s system 98% cpu 2,047 total
        2. gnome-terminal: 0,66s user 1,49s system 50% cpu 4,272 total
        3. kitty: 0,89s user 1,46s system 64% cpu 3,633 total
    3. xfce4-terminal
      1. Comes as the default terminal with xfce
      2. Supports tabs
    4. konsole
      1. Comes as the default terminal with KDE
      2. What I love about this is, it displays the names of the tabs - which is very very helpful. We don’t have to remember what each tab is doing. It makes switching between tabs so much easier.
      3. And we can navigate between tabs using Ctrl + Tab - just the way we navigate between tabs in a browser. It is so easy. (Didn’t see that happening with xfce4-terminal)
    5. kitty
      1. https://sw.kovidgoyal.net/kitty/
    6. Alacritty
      1. https://alacritty.org/
      2. sudo pacman -S alacritty
      3. How to customize alacritty?
        1. Alacritty is customized through a configuration file. This file uses the TOML format and is typically located at ~/.config/alacritty/alacritty.toml on Unix-like systems, or %APPDATA%\alacritty\alacritty.toml on Windows. If the file does not exist, it needs to be created.
        2. Find sample themes here: https://github.com/alacritty/alacritty-theme
    7. Customizing terminals: https://www.josean.com/posts/how-to-setup-alacritty-terminal
  2. calculator (pantheon-calculator)
    paru -S pantheon-calculator
    
  3. Variety - wallpaper utility - and its configuration.
    1. Change the default directory for favorites.
    2. Include unsplash.com as a source of wallpapers.
    3. Is there a way to include websites other than unsplash.com as a source of wallpapers? e.g. pexels.com
    4. (Nitrogen is an alternative tool to Variety)
    5. Installation
      1. Arch Linux
        pacman -S variety
        
        or
        
        sudo apt install variety
        
      2. Fedora
        sudo dnf install variety
        
  4. Office suites
    1. Worst case scenario where none of these suites are installed and we have to read a word document - use FBReader.
    2. Libre office (This works for most of the scenarios. If we have this, no other office suite is necessary.)
      sudo pacman -S libreoffice-fresh
      
    3. - Open office
    4. - Calligra
      • wps office? (used - the interface is good. But support for fonts is not as good as that of LibreOffice? Some fonts were totally unreadable)
  5. tmux
    pacman -S tmux
    
  6. screen capture tools (screenshots)
    1. Flameshot
      1. https://flameshot.org/
    2. xfce4-screenshooter
      pacman -S xfce4-screenshooter
      
    3. KDE Spectacle seems pretty good too.
  7. File Managers
    1. I came across Nemo while using the Mate version of Linux Mint. It has an option to search for file name, as well as, search for file content. I liked it.
    2. Thunar (works very well. no other file managers are really necessary if we have this.)
    3. - PCManFM (not really necessary if you already have Thunar)
  8. Media players and editing
  9. fastfetch - https://github.com/fastfetch-cli/fastfetch
    1. Build from source. See the Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Building
    2. Usage
      1. For more details
        fastfetch -c all
        
  10. Neofetch (https://github.com/dylanaraps/neofetch) 1. pacman -S neofetch 2. How to launch Neofetch each time you launch a Terminal window ? ~3. Edit /.bashrc in your favourite editor. This file is located in the root file system, not the Home folder. You may need to open as root, but only if the icon shows a padlock or no entry symbol. 4. Add a new line that says neofetch in it. +5. Save the file, exit the text editor and restart Terminal.
  11. arandr (for working with multiple monitors)+
    paru -S arandr
    
  12. Image tools
  13. Pdf tools

Tools for Windows

(See Tools common for all OSs in addition to the ones listed here.)

  1. Terminal
    1. From what I’ve seen, git bash is the best terminal for Windows when it comes to performance.
    2. ConEmu is very slow compared to git bash
    3. Console Emulation program - ConEmu How to launch GitBash in ConEmu? Click on the + symbol and select Git Bash If there is a more automated way to do this, look for it. For now, this seems to be the best way to support GitBash in a tabbed console.
  2. Text editors :
    1. Notepad++ - plugins: Compare plugin, XML tools plugin
  3. 7 zip
  4. WinMerge
  5. WSL2
  6. Speccy
    1. https://en.m.wikipedia.org/wiki/Speccy#:~:text=The%20information%20displayed%20by%20Speccy,how%20it%20is%20being%20used.
    2. https://www.ccleaner.com/speccy

(See Tools common for all OSs in addition to the ones listed here.)

  1. Amazon Workspaces
    paru -S amazon-workspaces-bin
    
  2. docker desktop for Mac and Windows
  3. Curl
  4. JDK (OpenJDK)
  5. Maven
  6. Npm, NodeJS, yarn, nvm
  7. Postman
  8. Ready API
  9. Redis on Windows or other OSs
  10. The silver searcher or ripgrep
  11. Visual Studio Code
  12. aws-cli
  13. aws SAM
  14. Python

File System

  1. Cygwin
  2. Search for files, file contents and text manipulation
  3. Listing Directories and Files in a folder
    1. View Directories and Files in a Tree Structure
  4. Renaming files and directories
  5. File and Folder comparison tools
  6. Copying files and directories
  7. Deleting files and folders
  8. Working with flash drives
  9. Memory Disk running out of memory
  10. Linux - WSL
  11. Linux - File I/O operations from terminal
  12. Linux - Changing permissions on files and folders
  13. Zipping folders
  14. Linux - Issues running App Images

Windows OS tips

  1. Mouse issues in Windows
  2. In Windows, can I make the right-click context menu always be in the “show more options” mode by default?

macOS tips

  1. macOS - creating folder in the root
  2. Installing and Using Homebrew
  3. macOS - Terminal shortcuts
  4. macOS - Security Tools
  5. macOS - Uninstalling Applications
  6. macOS - Keyboard Shortcuts
  7. Environment variables
  8. todo
    1. https://github.com/wojciech-kulik/FlashSpace
  9. Tiling window managers for MacOS
    1. Amethyst:
      1. Tiling window manager for MacOS, free, open source.
      2. It is fast, reliable and highly customizable - like xmonad.
      3. Amethyst GitHub: https://github.com/ianyh/Amethyst
      4. Some tools that go hand in hand when using Amethyst
        1. WhichSpace
          1. A small menu bar application that tells you in which space (desktop) you currently are.
          2. This makes switching spaces with keyboard shortcuts in Amethyst easier because you always know in which space you currently are.
          3. WhichSpace GitHub: https://github.com/gechr/WhichSpace
        2. AltTab
          1. https://alt-tab-macos.netlify.app/
          2. This combination gives us two advantages. Full screen funtionality because of the tiling features from Amethyst. Finding open windows easily using AltTab.
    2. https://github.com/koekeishiya/yabai
    3. https://magnet.crowdcafe.com/
    4. https://rectangleapp.com/
    5. https://www.raycast.com/

Hardware

Working with laptops

Sometimes, having the actual laptop in front of us on the desk can feel cluttered. It can feel like the laptop is in the way of getting things done.

Separate keyboard

Question: Macbook keyboard or seperate keyboard?

Sometimes, it helps to use an external keyboard. Helps to use it rough and tough and dont worry about what happens when something goes wrong with the Apple keyboard. If something breaks with the keyboard on the computer, getting it repaired (e.g. the keyboard on Apple laptops) is expensive.

External Keyboards

  1. Do not keep struggling with keyboards with layouts that are not comfortable for you. It is much preferable to throw them away and get ones that you feel comfortable with. The effort is worth it.
  2. Acer KU-0833
    1. I find that this is great for me.
    2. The keys are separated by a distance.
  3. Logitech K120

External Mouse

  1. [Maxxter] Optical gaming mouse
    1. I used this one and it is great.

Clamshell mode

Overall, the setup may feel much cleaner once we leave your Mac in clamshell mode and use a separate keyboard.

Disadvantages:

  1. If we have only one external monitor, switching between different apps on a single screen can be tiring.
  2. Also, if we have to use the microphone and speaker on the laptop for calls, it is difficult to work with clamshell mode.
    1. The alternative is to set-up dedicated devices for each purpose - an external headphones/headset, an external camera, etc.

Multi monitor set-up

With external dual monitors setup, some people may prefer to have the laptop/MacBook in clamshell mode.

Browser extensions to read articles aloud

Popular options include Read Aloud, Speechify, and NaturalReader

  1. I tried Read Aloud in Firefox. It does a decent job.
  2. I tried choqui tts. Installed it using docker. But it crashed when I gave a large input for it to read. https://github.com/coqui-ai/TTS
    1. Reasons to consider it are:
      1. its free
      2. doesn’t use internet
      3. local

Apps that the open source alternative is better

  1. https://www.reddit.com/r/opensource/comments/15hzbh1/apps_that_the_open_source_alternative_is_just/

ebook software

Dark mode for screens

Dark mode is not always better

  1. https://www.webeca.com/eye-care-resources/is-dark-mode-better-for-your-eyes
  2. https://www.ophthalmology24.com/using-dark-mode
  3. https://www.allaboutvision.com/conditions/computer-vision-syndrome/digital-eye-strain/is-dark-mode-better-for-eyes/
  4. http://xahlee.info/js/is_dark_theme_good.html

Tags

  1. Accounting tools
  2. awk
  3. Cloud storage options
  4. Cntlm
  5. Command to put computer to sleep
  6. Curl
  7. Drawing flow diagrams and UML diagrams
  8. How to force a public Wi-Fi network login page to open?
  9. How to convert HEIC photos to something normal?
  10. ics files - calendar management
  11. Integrated Development Environment (IDEs) and Text Editors
  12. Lenovo Thinkpad tips
  13. Media players and editing
  14. Multiple workspaces
  15. My notes about Phones and Android
  16. Nextcloud
  17. Website publishing - tools and options
  18. Putty
  19. ReadyAPI
  20. Search engines
  21. Shell
  22. Stopping spam calls
  23. Typing skills
  24. tmux
  25. Wizdler
  26. unzip
  27. Working with json objects and json files
  28. Moral lessons from free software and GNU Emacs

Links to this note