• 1 Post
  • 9 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 .
    







  • Imagine spending 3+ years on staying mad at GNOME to release the most underwhelming software imaginable.

    Shocking, a 3 year old project is not as well established as a 20+ year old desktops. Its feature set is enough to me, but they did release it too early as it is still quite buggy.

    COSMIC is very poorly designed, it might be written in the “memory-safe programming language” but it’s clear that they don’t have a design backbone

    It looks “fine”. I agree that modern Adwaita looks better, but it’s not terrible. The default theme is meh, but themes like Catppuccin makes it look nice. There’s also missing things like drop shadows and animations, which I believe are toolkit limitations.

    They built an entire new desktop from scratch rather than work with GNOME

    Gnome and System76 had different goals and UX ideas that were incompatible. Rather than continually patching Gnome and updating their patches to keep working, they decided to build their own thing, that’s fine.

    I don’t quite get why Gnome people see this as a negative. If System76 is a poor downstream, then System76 no longer being a downstream is beneficial for them.

    rather than work with GNOME or KDE and in that amount of time

    I think that’s a good thing in the long run. Gnome and KDE both have a significant amount of technical debt.

    One of the things I love about COSMIC is how sanely it’s built, following modern programming principles.

    • Rust helps avoid memory issues, helping with security and bugs
    • A lot of things run as their own processes, which would typically all be running under a single process in Gnome/KDE. So even if something does crash, say the power applet or notifications applet, it won’t bring down other components like the shell.
    • Clean layout of configuration, data, and state files. KDE is an absolute mess in this department. Gnome is better than KDE, but COSMIC does even better.

    So while COSMIC is worse now due to its bugs and lack of features, I think it’s built on better foundations. That is, if System76 continues to invest in it. I’m not sure how profitable/unprofitable it is for them. My guess would be unprofitable.