Skip to content

About

My configuration files for Windows 10, MacOS, and Linux.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

313 Commits

Folders and files

Repository files navigation

Configuration

Windows macOS

This project is a collection of configuration files and scripts that I use on my machine. They have been open-sourced for my own convenience, so you may use anything you see here at your own risk. Some settings are tailored to meet my personal needs, so running these scripts might not work for you out of the box.

As a successor to confiles, this repository has been meticulously designed with cross-platform compatibility in mind.

This repository has not been ported to a Linux-based platform yet. But in theory, it can be extended to support multiple operating systems.

Prerequisites

Install pwsh and allow local scripts to run:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

The bootstrap scripts expect cargo, pipx, and a platform package manager (winget on Windows, brew on MacOS; Linux is not implemented) on your PATH.

The setting files use the classic Code Page 437 character set; the matching DOS VGA font is available at https://cp437.github.io/. Optionally, follow https://github.com/StefanGreve/profile to import the PowerShell profile.

Usage

Run the following scripts to bootstrap your system, preferably in order.

Symlink config files from the appSettings directory by force:

./bootstrap/configure.ps1 -All

As a result of running this scripts, a new assets directory will be created in $HOME/Pictures/configuration/assets.


Install all required programs:

./bootstrap/install.ps1 -All

The installer script also accepts individual flags for user-customized installations and reads its definitions from the settings folder. You may need to restart your terminal session for the changes to take effect fully.

MacOS only. -All also writes zsh completion functions to ~/.local/share/zsh/site-functions for the tools that ship a generator instead of a ready-made function; Homebrew formulae install their own. Re-run this after upgrading a toolchain, or when a tool was not yet on PATH during the initial run:

./bootstrap/install.ps1 -Completion

Use this Cmdlet to maintain the system.

Update-System -All

MacOS only. Firefox is configured through settings/firefox.mobileconfig, which mirrors the Microsoft Edge policies in settings/edge.reg wherever Firefox has an equivalent. Configuration profiles cannot be installed from the command line without an MDM, so this step is manual and only needs to be done once:

open ./settings/firefox.mobileconfig

Then open System Settings > General > Device Management (older releases list it under Privacy & Security > Profiles), select the downloaded Firefox Policies profile and confirm the installation. Restart Firefox and verify the result under about:policies.

The profile is stored in the org.mozilla.firefox preference domain rather than inside the application bundle, so it survives a cask upgrade. Re-run the command above after editing the file; macOS replaces the profile when the payload identifier matches.


MacOS only. iTerm2 keeps its settings in appSettings/iterm2 through Load settings from a custom folder or URL, so the application writes the repository copy itself and nothing needs to be symlinked; cfprefsd refuses to write through a symlink under ~/Library/Preferences. configure.ps1 points a new machine at the folder, but only while iTerm2 is closed, because iTerm2 overwrites these keys from memory when it quits. To enable it by hand instead, use Settings > General > Settings and also turn on Save changes to folder when iTerm2 quits.

Only settings iTerm2 considers portable are exported: window positions, the Sparkle updater state and everything prefixed with NoSync stay in ~/Library/Preferences.

Personal Notes

  • The hosts file on Windows can not be replaced by a symbolic link
  • Prior to the Windows 10 Creator Update, creating symbolic links required elevated permissions. Enabling the Developer Mode in the settings app lifts this restriction. Creating symbolic links doesn't require elevated rights on MacOS (or Linux?).
  • The SSH config file is configured to look for two separate SSH keys
  • Import the GPG key for signing commits with the following command:
gpg --import .\gpg-private-key.asc
  • In order to use the Work profile of Set-DevelopmentProfile script, you need to define the environment variables GitWorkUserName and GitWorkUserEmail first.
  • Configure a usage window anchor routine that starts the 5-hour usage windows at 04:00, 09:00, 14:00, 19:00 and 00:00 CET/CEST by using the /schedule command

About

My configuration files for Windows 10, MacOS, and Linux.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages