Keep your application settings in sync (macOS/Linux)
Project description
Mackup
Keep your application settings in sync.
Table of content
- Mackup
- Table of content
- Quickstart
- Usage
- What does it do
- Bullsh*t, what does it really do to my files
- Supported Storages
- Unsupported Storages
- Supported Applications
- Can you support application X
- Personalization & configuration
- Why did you do this
- What platforms are supported
- What's up with the weird name
- Where can I find more information
Quickstart
If you have Dropbox installed and want to use it to save your config files, that's super easy.
On macOS, if you want an easy install, you can install Homebrew and do:
# Install Mackup
brew install mackup
# Launch it and back up your files
mackup backup
If not running macOS, or you don't like Homebrew, you can use pip.
Note: The below command will check if a previous version of Mackup is already installed on your system. If this is the case, it will be upgraded to the latest version.
# Install Mackup with PIP
pip install --upgrade mackup
# Launch it and back up your files
mackup backup
On Ubuntu, pip will install to the current user's home directory rather than system-wide. Because of this, when installing pip on Ubuntu you will need to run
pip install
with the--system
flag as well (on other platforms this is not needed)
You're all set and constantly backed up from now on.
Next, on any new workstation, do:
# Install Mackup
brew install mackup
# Launch it and restore your files
mackup restore
Done!
You can find more detailed instructions in INSTALL.md.
Usage
mackup backup
Backup your application settings.
mackup restore
Restore your application settings on a newly installed workstation.
mackup uninstall
Copy back any synced config file to its original place.
mackup list
Display the list of applications supported by Mackup.
mackup -h
Get some help, obviously...
What does it do
- Back ups your application settings in a safe directory (e.g. Dropbox)
- Syncs your application settings among all your workstations
- Restores your configuration on any fresh install in one command line
By only tracking pure configuration files, it keeps the crap out of your freshly new installed workstation (no cache, temporary and locally specific files are transfered).
Mackup makes setting up the environment easy and simple, saving time for your family, great ideas, and all the cool stuff you like.
Bullsh*t, what does it really do to my files
Let's take git
as an example. Your settings for git
are saved in your home
folder, in the .gitconfig
file.
Backup
If you have Dropbox, these things happen when you launch mackup backup
:
cp ~/.gitconfig ~/Dropbox/Mackup/.gitconfig
rm ~/.gitconfig
ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig
Now your git
config is always backed up and up to date on all your workstations.
Restore
When you launch mackup restore
, here's what it's really doing:
ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig
That's it, you got your git
config setup on your new workstation.
mackup
does the same for any supported application.
Uninstall
You can revert all your files to their original state.
# Just run this
mackup uninstall
This will remove the symlinks and copy back the files from the Mackup folder in Dropbox to their original places in your home. The Mackup folder and the files in it stay put, so that any other computer also running Mackup is unaffected.
Supported Storages
- Dropbox
- Google Drive
- iCloud
- Anything able to sync a folder (e.g. Git)
See the README file in the doc directory for more info.
Unsupported Storages
- Box: No longer supported as it ignores dotfiles, see https://github.com/lra/mackup/issues/807.
Supported Applications
- 1Password 4
- 2Do
- Ack
- act
- Adium
- Adobe Camera Raw
- Adobe Illustrator CC
- Adobe Photoshop CC
- Adobe Photoshop Lightroom CC
- Adobe Photoshop Lightroom Classic
- aerc
- AeroSpace
- Affinity Designer
- Affinity Photo
- Affinity Publisher
- Airflow
- Airmail
- Akamai-CLI
- Alacritty
- AltTab
- Amethyst
- Ancient Domains of Mystery
- Android Studio
- Ansible
- AppCleaner
- AppCode
- Apple Music
- Apptivate
- Arara
- aria2c
- Arm
- Artistic Style
- asciinema
- asdf version manager
- Aspell
- Atlantis
- Atom
- Audacious
- AusKey
- Autokey
- Awareness
- AWS Command Line Interface
- ActivityWatch
- Bartender
- Bash it
- Bash
- Base
- Bat
- Bc
- Beatport Pro
- Beets
- BetterSnapTool
- BetterTouchTool
- Beyond Compare
- BibDesk
- Billings Pro Server Admin
- BitBar
- Bitchx
- Blackfire
- Blender
- Boto
- Boxer
- Brackets
- Brave
- Btop
- Bump
- Bundler
- Byobu
- Caffeine
- Calibre
- Capture One
- Cartographica
- Cerebro
- Charles
- Cheat
- Chef
- Chicken
- Choosy
- chunkwm
- Cider
- ClashX
- Clasp
- CleanShot
- Clementine
- CLion
- ClipMenu
- Clipy
- CloudApp
- Coda 2
- Colloquy
- ColorSchemer Studio 2
- ColorSlurp
- ColorSync
- Composer
- Concentrate
- Conky
- Consular
- Contexts
- ControlPlane
- CopyQ
- CoRD
- CotEditor
- Ctags
- Cursor
- cVim
- Cyberduck
- DaisyDisk
- DataGrip
- Dash
- Day-O
- DBeaver
- DbVisualizer
- Deal Alert
- Deepin-dde-dock
- Deepin-dde-file-manager
- Deepin-Terminal
- Default Folder X
- Devil's Pie 2
- Devil's Pie
- dig
- Divvy
- Docker
- Dolphin
- Doom Emacs
- Double Commander
- Doxie
- Dozer
- Draft
- Droplr
- Dropzone 3
- Drush
- Eagle (ogdesign)
- EditorConfig
- Electrum
- Elgato StreamDeck
- Emacs
- Enjoyable
- Environmental Station Alpha
- eqMac2
- ESLint
- espanso
- Exercism
- ExpanDrive
- Factorio
- Fantastical
- fasd
- fastlane
- FastScripts
- Feeds
- FileZilla
- Finicky
- Fish
- Fisher
- Flake8
- Flameshot
- FlexGet
- Flux
- Focus
- Fontconfig
- FontExplorer X
- Forge
- Fork
- ForkLift
- Franz
- Gas Mask
- gdb
- Gear Player
- GeekTool
- GHCi
- Ghidra
- Ghostwriter
- Gimp
- Git Hooks
- Git
- Gitbox
- GitFox
- GitKraken
- GitUp
- Gmail Notifr
- GMVault
- Gnome SSH Tunnel Manager
- GnuPG
- Go2Shell
- Goku
- GoLand
- Goldendict
- GoodSync
- GoShare
- Gradle
- GrandTotal 3
- grsync
- Hammerspoon
- HandBrake
- Hands Off!
- Hazel
- Hero Lab
- Heroku
- HexChat
- Hexels
- Hocus Focus
- Homebridge
- Homebrew
- Houdini
- Hstr
- Htop
- HTTPie
- hub
- Hyper.app
- HyperDock
- HyperSwitch
- i2cssh
- i3
- IDA Pro
- IdeaVim
- IINA
- Inkscape
- Insomnia
- IntelliJIDEA
- IPython
- Irssi
- iStat Menus
- Itsycal
- iTerm2
- iTermocil
- iTunes Scripts
- JankyBorders
- Janus
- Jitouch
- Joplin
- jrnl
- JS Beautifier
- JSHint
- Julia
- Jumpcut
- Jupyter
- k9s
- Kaggle
- Kaleidoscope
- Karabiner Elements
- Karabiner
- Kdenlive
- KeePassX
- KeePassXC
- KeepingYouAwake
- Keka
- Keybase
- Keyboard Maestro
- Keymo
- KeyRemap4MacBook
- Khd
- kitty
- Krew
- Kubectl
- Kwm
- LaTeXiT
- LaunchBar
- lazygit
- Ledger
- lf
- LibreOffice
- Liftoff
- Light Table
- LimeChat
- Liquid Prompt
- LittleSnitch
- Livestreamer
- Logitech Options
- Logseq
- Lollypop
- Loopback
- Luftrausers
- LunarVim
- MacDive
- MacDown
- MacOSX
- MacVim
- Magic Launch
- MagicPrefs
- Magnet
- Maid
- Mailmate
- Mailplane
- mako
- Marked 2
- Marta
- MATLAB
- Maven
- Max
- Mendeley Desktop
- MenuMeters
- Mercurial
- MercuryMover
- Messages
- Micro
- Microsoft Azure CLI
- Microsoft Remote Desktop
- mitmproxy
- mkcert
- MonoDevelop
- Moom
- Mosaic
- Mou
- mpd
- MPlayerX
- MPS Youtube
- MPV
- MTMR
- Multitouch
- Mumu
- MusicBrainz Picard
- MuteSpotifyAds
- mycli
- myrepos
- MySQL Workbench
- MySQL
- Name Mangler
- Nano
- Navicat
- ncmpcpp
- Neofetch
- neovim
- Nethack
- Netlify
- newsbeuter
- ngrok
- ni
- Nomacs
- NoSQLBooster for MongoDB
- notion-enhancer
- Nova
- npm
- npmrc
- NSLogger
- nuget
- Nushell
- nvALT
- nvm
- nvpy
- OBS
- Oh My Fish
- Oh My Tmux
- OmniFocus
- OmniGraffle
- Openbox
- OpenEmu
- OpenSSH
- Oracle Cloud Infrastructure CLI
- Paintbrush
- Pandoc
- Pass
- Pastebot
- Path Finder
- PDFjam
- Pear
- Pentadactyl
- Perl
- Phoenix
- PhoneView
- PhpStorm
- PicGo
- Pidgin
- PIP
- PixelSnap
- PixelSnap 2
- Planner
- Pnpm
- Pock
- Poedit
- Poetry
- PokerStars
- Polybar
- PopClip
- Popcorn-Time
- PostgreSQL
- Postico
- Pow
- Powerlevel10k
- Powerline
- Powerline-shell
- Prezto
- Processing
- Proselint
- ProxyChains NG
- ProxyChains
- Proxyman
- PrusaSlicer
- PsySH
- Punto Switcher
- PyCharm
- PyPI
- PyRadio
- Querious
- Quicksilver
- Quitter
- Qutebrowser
- Qv2ray
- R
- Rails
- Ranger
- Rbenv
- Rclone
- Rectangle
- Redshift Scheduler
- Redshift
- Remote Desktop Manager
- Rhythmbox
- Rime
- ripgrep
- Robo 3T
- Rocket
- Rofi
- Royal TSX
- RStudio
- rTorrent
- rtx
- rubiTrack 5
- Rubocop
- Ruby Version Manager
- Ruby Version
- Ruby
- RubyMine
- Rust
- S3cmd
- SABnzbd
- SBCL
- SBT
- Scenario
- Screen
- Screenhero
- Scrivener
- Scroll Reverser
- SecureCRT
- Secure Pipes
- Seil
- SelfControl
- Sequel Pro
- ShiftIt
- Shifty
- Shimo
- ShowyEdge
- SHSH Blobs
- Shuttle
- SizeUp
- Sizzy
- SketchyBar
- skhd
- Skim
- Skitch
- Slate
- Slic3r
- Slogger
- SmartGit
- Smooth Mouse
- Soulver
- SourceTree
- SpaceLauncher
- Spacemacs
- SpaceVim
- SpamSieve
- Spark
- Spectacle
- Spectrwm
- Splice
- Spotify Notifications
- Spotify
- Sqitch
- Starship
- Startupizer2
- Stata
- Stats
- Stay
- Storyist
- Subler
- Sublime Merge
- Sublime Text
- Subversion
- SuperDuper!
- Surge
- Sway
- Swinsian
- Swish
- SwitchHosts
- T
- TablePlus
- TaskPaper
- Taskwarrior
- Teamocil
- Telegram for macOS
- Terminal
- Terminator
- termite
- Termux
- TextExpander
- TextMate
- Textual
- Tig
- Tiles
- Tilix
- Timeout
- tint2
- TinyFugue
- Tmux
- Tmuxp
- Tmuxinator
- Todo.txt CLI
- ToothFairy
- TotalSpaces2
- Tower
- Transmission
- Transmit
- TripMode
- Trizen
- Tunnelblick
- tvnamer
- Twitterrific
- Typinator
- Typora
- uTorrent
- ulauncher
- Ventrilo
- Verdaccio
- Versions
- Vim
- Vimperator
- Viscosity
- Visual Studio Code
- Visual Studio Code - Insiders
- Visual Studio Code - OSS
- VSCodium
- Visual Studio for Mac
- VLC
- Volt
- Wakatime
- Warp
- waybar
- WebStorm
- Wget
- WhatsApp Web
- Wireshark 2
- Witch
- WordGrinder
- WordPress WP-CLI
- Workrave
- X11
- Xee
- Xamarin Studio
- xbar
- XBindKeys
- Xchat
- Xcode
- XEmacs
- XLD
- Xonsh
- XtraFinder
- yabai
- yarn
- Yummy FTP
- zabbix-cli
- zathura
- zed
- Zoom
- zoxide
- Zsh
- Übersicht
Can you support application X
We can with your help ;)
Personalization & configuration
Have an application that shouldn't be generally supported but that you use? Or a cool file you want to sync?
- Create a
~/.mackup
directory to sync an application or any file or directory
Why did you do this
Yesterday, I had a talk with Zach Zaro, complaining about the pain it is to reconfigure our Macbook each time we get a new one or install from scratch. That's a talk we have already had months ago.
I change my workstation every X months. Each time I either lose my apps' configurations, or I just waste a bunch of hours getting setup like I was on my old box. I also spend a lot of time reconfiguring the same stuff again on all my workstations (home, work).
Boring...
Some people tried to solve the problem on the application layer, like Github's Boxen, but it solves a different problem, from my point of view. I don't spend a lot of time installing or downloading stuff. I spend time configuring it.
For years, I've used a personal shell script that was copying known config files into Subversion, Git or Dropbox, and linked them into my home. But I felt a lot of us had the same problem: Making a more generic tool could help others and I could get help from others to support more apps in the tool.
So here comes Mackup, the little tool that will sync all your application configs to Dropbox (or Google Drive, or anything).
And it's GPL, of course.
What platforms are supported
- macOS
- GNU/Linux
What's up with the weird name
Mackup is just a portmanteau of Mac and Backup. It is simple, short, and easy to remember, and it corresponds with the whole idea of Mackup: the simpler – the better! (And I suck at naming stuff, but who doesn't.)
Where can I find more information
In the doc directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mackup-0.8.41.tar.gz
.
File metadata
- Download URL: mackup-0.8.41.tar.gz
- Upload date:
- Size: 83.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49f929d502b3efbc01b5a206af6cff877447ac5821591b2a9231cbf42d97b17a |
|
MD5 | 3a987bdda65ebfac01f236efbd9d8fa8 |
|
BLAKE2b-256 | 63378f5ee72905948757f284e7a4fea1cd8b7203f13e57d2cf4917f2f1afa7a8 |
File details
Details for the file mackup-0.8.41-py3-none-any.whl
.
File metadata
- Download URL: mackup-0.8.41-py3-none-any.whl
- Upload date:
- Size: 195.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b16ea3d6b35869f53dd47507f0633b62a39bf2d3a990203c290dd79f57e80fce |
|
MD5 | cee87e062119362bb63b57d711b3618c |
|
BLAKE2b-256 | 20a1a3da6eb464be31cf2373d0256acc2fda2a8c3e685723f52d9282c770dc51 |