lost in the wired

  • 1 Post
  • 6 Comments
Joined 2 months ago
cake
Cake day: September 22nd, 2025

help-circle

  • because it’s less work. i don’t have to strip out what a distro thinks i want. i don’t have to worry about major distro releases that might have changes that need manual intervention. if there are updates that need manual intervention, they’re small, easy to deal with and usually do not effect me. everything is well documented and standard. packages are installed with default settings/config (to my understanding), so i can easily read upstream documentation and not have to deal with weirdness. getting packages that are obscure is easier. i don’t have to worry about upstream having a fix, or supporting something that i need but my distro not having the update in their repo. it’s just simpler and easier to manage (for my use case)



  • some benefits to using tmux,

    • When you switch terminal emulators your workflow and keybinds come with you.
    • If you need to operate within a tty, you can still use tmux and it feels almost like using a wm but without a gui.
      • useful if you need to drop out of your desktop environment or maybe your DE/WM/compositor fails to load.
      • also if you DE/WM/compositor crashes, your terminal doesn’t go with it.
    • If you ever end up working on servers it’s so nice to be able to have the same workflow that you already use on desktop.
    • tmux in my experience is much more scriptable.
    • running system updates in tmux scares me less–if i accidently close the running terminal window i won’t end up with a partial update.

    One pro tip: on your local machine, set the tmux prefix to <C-n> (instead of <C-b>), that way when you’re using tmux on a remote server you can run tmux on the remote as well as on your local and the binds don’t conflict.

    unbind C-b
    set-option -g prefix C-n
    

    baby steps though. don’t rush into things. don’t even worry about what i said… just learn to use man and --help (and/or install tldr) keep building on the knowledge you have as you go; and don’t be afraid to jump in when something interests you. good luck friend!



  • coltn@lemmy.mltoLinux@lemmy.mlLinux terminal with text selection
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    23 days ago

    I think most of this works for me in zsh. But also tmux can help with selection; I believe by default you use your prefix then open bracket (Ctrl-b + [) to put your self in selection mode. I have some configs to use vim bindings in selection mode.

    Tmux selection:

    # Yanking
    bind-key -T copy-mode-vi v send-keys -X begin-selection
    bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
    bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
    

    zsh keybinding:

    # Key Bindings
    # set vim mode
    bindkey -v
    
    # create a zkbd compatible hash;
    # to add other keys to this hash, see: man 5 terminfo
    typeset -g -A key
    
    key[Home]="${terminfo[khome]}"
    key[End]="${terminfo[kend]}"
    key[Insert]="${terminfo[kich1]}"
    key[Backspace]="${terminfo[kbs]}"
    key[Delete]="${terminfo[kdch1]}"
    key[Up]="${terminfo[kcuu1]}"
    key[Down]="${terminfo[kcud1]}"
    key[Left]="${terminfo[kcub1]}"
    key[Right]="${terminfo[kcuf1]}"
    key[PageUp]="${terminfo[kpp]}"
    key[PageDown]="${terminfo[knp]}"
    key[Shift-Tab]="${terminfo[kcbt]}"
    
    # setup key accordingly
    [[ -n "${key[Home]}"      ]] && bindkey -- "${key[Home]}"       beginning-of-line
    [[ -n "${key[End]}"       ]] && bindkey -- "${key[End]}"        end-of-line
    [[ -n "${key[Insert]}"    ]] && bindkey -- "${key[Insert]}"     overwrite-mode
    [[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}"  backward-delete-char
    [[ -n "${key[Delete]}"    ]] && bindkey -- "${key[Delete]}"     delete-char
    [[ -n "${key[Up]}"        ]] && bindkey -- "${key[Up]}"         up-line-or-history
    [[ -n "${key[Down]}"      ]] && bindkey -- "${key[Down]}"       down-line-or-history
    [[ -n "${key[Left]}"      ]] && bindkey -- "${key[Left]}"       backward-char
    [[ -n "${key[Right]}"     ]] && bindkey -- "${key[Right]}"      forward-char
    [[ -n "${key[PageUp]}"    ]] && bindkey -- "${key[PageUp]}"     beginning-of-buffer-or-history
    [[ -n "${key[PageDown]}"  ]] && bindkey -- "${key[PageDown]}"   end-of-buffer-or-history
    [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}"  reverse-menu-complete
    
    # Finally, make sure the terminal is in application mode, when zle is
    # active. Only then are the values from $terminfo valid.
    if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
    	autoload -Uz add-zle-hook-widget
    	function zle_application_mode_start { echoti smkx }
    	function zle_application_mode_stop { echoti rmkx }
    	add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
    	add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
    fi
    
    
    # History - use current line up to cursor to search through history with arrow keys
    autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
    zle -N up-line-or-beginning-search
    zle -N down-line-or-beginning-search
    
    [[ -n "${key[Up]}"   ]] && bindkey -- "${key[Up]}"   up-line-or-beginning-search
    [[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search