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

  • The_Pete@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    The answer is that it depends what you’re doing. You can have an extremely efficient dev env CLI. You can kinda brows the web cli. You probably don’t want to edit videos and pictures in the CLI.

    Because a lot of foss has replaceable building blocks, you’re not going to find a ‘this is how you do things course’. You’re much more likely to find, ‘this is how you use a certain text editor in the CLI’.

    So, first, I guess, figure out or articulate what you want to do in the CLI. From reading and sending mail to writing code and building a dev environment to just basic scripting to maintain your install.

    After that step, you’ll want to try a couple of the building blocks that do that.

    Once you find one that kinda clicks, then you can go become proficient and start to put together the pieces of your workflow.

    I run arch/Ubuntu and gnome. I spend about 50-70% of my time every day in a terminal. I spend the rest in a browser. Sometimes I use files, libre office calc, gimp or the calculator app, but even combined their usage is probably a rounding error.

    I run gnome term (used to do a lot of urxvt but gnome term seems to work fine these days)

    From there, I start tmux. Inside of tmux, I run a few windows. One has email, a couple shells, chat and system monitoring.

    The next window has my core dev env, I run nvim with a server so I can upen tabs in nvim from different terminals, in nvim I run the lsp servers for linting and code completion. I use ranger as a file browser/previewer and that’s hooked to nvim so when I select a file there it will open as a tab in nvim, additionally I can run that file in the debug pane in the bottom of the window.

    Then I just have windows that I drop into to do additional tasks, ops work on multiple servers at once, a second dev env to make a quick change in a different package, or a new window to scrape up a one line script to parse a log file or data dump for processing else where.

    All of this takes time, for me about 15 years probably to say ‘ok, I want(need) to do this thing in the terminal, now what’s the best way to get that done . . .’

    And then, you just kinda build it.