• 10 Posts
  • 23 Comments
Joined 4 months ago
cake
Cake day: October 2nd, 2025

help-circle


  • Then you only need the “secret zero” of an ssh key to get everything set up and syncable

    I made a script just for this purpose, I run the script on a fresh system and it pulls my stow directory without me needing to manually mess with ssh keys or passwords.

    On a flashdrive, I have a folder named “setup”. In that folder, I have this script called “run” and a directory called “ssh”. In that “ssh” folder (not to be confused with ~/.ssh), I put my private ssh keys and their pubs.

    #!/bin/bash
    
    # stop script immediately on error
    set -e
    
    # change working directory to directory containing this script
    cd "$(dirname "$0")"
    
    # check that ./ssh exists and exit if not
    if [ ! -d ./ssh ]; then
        echo "./ssh not detected, exiting..."
        exit 1
    fi
    
    # create .ssh directory
    [ ! -d $HOME/.ssh ] && mkdir $HOME/.ssh
    chmod 700 $HOME/.ssh
    
    # copy keys to ~/.ssh
    cp -a ./.ssh/. $HOME/.ssh/
    
    # ensure right permissions for .ssh contents
    # note: 2>/dev/null suppresses errors if no .pub files exist, || true to avoid exiting on failure
    chmod 600 $HOME/.ssh/*
    chmod 644 $HOME/.ssh/*.pub 2>/dev/null || true
    
    # start ssh agent
    eval `ssh-agent -s`
    trap "ssh-agent -k" EXIT
    
    # add keys
    ssh-add "$HOME/.ssh/privatesshkey"
    
    # add known hosts
    # note: removing them first then adding again to avoid duplicate entries
    ssh-keygen -R codeberg.org 2>/dev/null || true
    ssh-keygen -R github.com 2>/dev/null || true
    ssh-keyscan -H codeberg.org >> $HOME/.ssh/known_hosts
    ssh-keyscan -H github.com >> $HOME/.ssh/known_hosts
    
    # clone repo
    cd $HOME
    if [ -d "$HOME/stow" ]; then
        TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
        mv "$HOME/stow" "$HOME/stow.old.$TIMESTAMP"
    fi
    git clone ssh://git@gitprovider.domain/myusername/stow.git
    

  • I’ve been happy with GNU Stow. Super simple and clean. I keep all the files in ~/stow and follow this workflow. You can avoid the git bits if you want and update ~/stow however you want.

    cd ~/stow
    
    # pull latest changes from git provider for syncing
    git fetch
    git status
    git pull
    
    # if made any edits and wanted to push them
    git add .
    git push origin main
    
    # do a dry run of stow just to make sure it won't do anything weird
    stow -n -v --no-folding .
    
    # do a real run of stow if nothing is wrong
    # note: --no-folding prevents folders from becoming symlinked, only files will be symlinks,
    # this prevents unintended files from going into ~/stow
    stow -v --no-folding .
    



  • The old Cosmic was built on top of Gnome using extensions, but the new Cosmic was written from scratch. It largely mimics the look of old Cosmic, but has introduced a few new things.

    There are desktops try do mimic the look of MacOS, but none I’ve used actually felt like using MacOS. The first time I used MacOS, I was shocked at how many quirky things it does, the way it operates. No Linux desktop prepared me for that.


  • The only thing MacOS and Gnome have in common is a top bar and app grid. Other than that, MacOS is closer to Windows than Gnome.

    • Windows and MacOS have always visible panel showing favorite apps and open apps, Gnome dosen’t
    • Windows and MacOS have appindicators on panels, Gnome doesn’t

    And to further differentiate Gnome from MacOS,

    • Gnome’s UX is closer to Windows. There are many, many reasons why, but some are: don’t need to click a window to focus it before you can interact with it, fullscreening behaviors, assumes Windows-style keyboard layout
    • No global menu, Gnome doesn’t even use that paradigm.

    Honestly the closest DE to MacOS is Cosmic. The launchers work similarly, the overviews work similarly, it has the option to handle minimized windows similarly to MacOS, uses menubars (but not global).






  • Snap is interesting for me it can do more things than flatpak and has some really interesting sandboxing features coming up such as permission prompts for filesystem access.

    But Canonical management is a significant hindrance. The Snap Store simply cannot be trusted after so much malware got in and they still have not improved their processes. So many snaps including Canonical’s own, are still using core22 for some reason. And there’s the broken snaps Canonical pushed on users.

    I would love to see a snap repo that takes the best parts of Flathub and Fedora Flatpaks. Because as a technology, I think snap beats flatpak (if you’re using AppArmor). But it’s Canonical’s poor management that really drags it down.