Ask HN: What are you all using to automate desktop setup and config?
I&#x27;d also use Ansible, but installing browser extensions, and pairing bluetooth is a bit more difficult, those probably require a different strategy&#x2F;tool.<p>If you don&#x27;t mind me blowing my own horn: I wrote this project that started off as a way to let me re-install new development machines with a single command, &#x27;freckles&#x27; ( <a href="https:&#x2F;&#x2F;freckles.io" rel="nofollow">https:&#x2F;&#x2F;freckles.io</a> ).<p>It uses Ansible under the hood, but configuration is simpler, all you&#x27;d need is a single text file containing something like:<p><pre><code>    - packages-installed:
        packages:                                                          
          - net-tools                                                                
          - vlc                                                                      
          - sshfs                                                                    
    - file-with-content:                                                           
        path: &#x2F;home&#x2F;nancy&#x2F;.gitconfig                                             
        content: |                                                                
          [user]                                                                 
          email = email@exmple                                                   
          name = Nancy Drew                                                      
    - file-with-content:                                                           
        path: &#x2F;home&#x2F;nancy&#x2F;.tmux.conf                                             
        content: |                                                               
          unbind C-b                                                             
          set -g prefix `                                                        
          bind-key ` send-prefix 
</code></pre>
Choosing pre-made tasks from: <a href="https:&#x2F;&#x2F;freckles.io&#x2F;frecklets&#x2F;default" rel="nofollow">https:&#x2F;&#x2F;freckles.io&#x2F;frecklets&#x2F;default</a> or create your own (for example, there is none for installing steam currently, but I&#x27;m happy to add those over time when users request them -- the nice thing is those only need to be written once).<p>Then execute the thing with:<p><pre><code>    frecklecute &lt;your_file&gt;
 </code></pre>
It&#x27;s smart enough to figure out whether it needs to ask for root and such. It needs (and autoinstalls if required) a minimal Python and rsync on the target machine, and it creates and installs some other helper tools into $HOME&#x2F;.local&#x2F;share&#x2F;freckles, but that can be deleted after a run if necessary.<p>There&#x27;s quite a bit more to it, but that&#x27;d be the simplest way to use it. The main thing really is that you can keep your machine specific configuration in a single, easy-to-read and -create file, and you only need one single command to apply it to your machine.<p>EDIT: anybody know how to format code blocks on here so they render on mobile properly?