I have some basic experience but I wanna be proficient and have a cli based workflow; I’m currently on Arch with GNOME

  • dart@lemmy.fmhy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Learn to like not having to use your mouse. Only use your mouse as a last resort. One strength of CLI is almost never having to move your hands off of the homerow. Fuzzy finding is your friend.

    For example:

    • Instead of using a desktop app like GNOME, where you click on stuff to open them on a visual desktop -> Use a window manager like i3. In i3 configs, set a keyboard shortcut to fuzzy find your installed applications and open them. Now, your process for opening Firefox goes from clicking on a desktop icon or scrolling through menus, to pressing a keyboard shortcut and typing in the first few characters of Firefox and pressing enter. Desktops are bloat, you can get all of the functionality of a desktop with just the i3 rust status bar extension and CLI.
    • Instead of typing out and remembering long CLI commands with a bunch of flags, use fzf to fuzzy find through your bash history. Fzf uses Ctrl-R for this, and it makes CLI interfaces much faster to navigate once you’ve already used those commands. It also makes searching files and navigating directories in CLI faster.
    • Mac and Windows lack keyboard shortcuts to fully manage the layout of things on your screen. I know they have some shortcuts, but they can’t do everything without a mouse. Once again, I recommend a tiling window manager like i3 for moving tiles around, resizing, etc, all from the keyboard.
    • Learn vim or similar text editors which not only use the keyboard for typing characters, but also for navigating and editing text. Instead of moving your mouse to the end character of a long word you want to delete and hitting the backspace key 20 times -> In vim, type ‘/’ and the first few characters of the word, press enter, and type ‘dw’ to delete the entire word. Vim mode is also available in bash and a bunch of extensions for other apps, you just have to configure them.