danemacmillan / dotfiles Goto Github PK
View Code? Open in Web Editor NEWThese are all the settings you will incrementally set and ultimately forget.
License: MIT License
These are all the settings you will incrementally set and ultimately forget.
License: MIT License
Due to the logic in dpm
, it checks if the command exists before installing it, and Apple ships with its own version. A different type of check would need to be run to ensure the Brew version does get installed.
Note that if the version of git
from brew
does not install, that means the __git_ps1
function is unavailable, which means that the entire PS1
string will not load due to a new condition that checks for it.
Currently only the dnsmasq config is saved and mapped, but there is also the resolver file.
/etc/resolver/test
:
nameserver 127.0.0.1
The directory will not exist, nor the file, and you will likely need sudo permission to do this.
I was most of the way there, but having issues following a symlink to ignored directories. For example, the M2 codebase I work on has releases/2020...
and then a symlink to one of the dated releases. Ignoring releases
works, but then the current
symlink cannot search the path.
Examples:
Do it. Make sure it installs.
At the moment, dotfiles
will install tonnes of things in addition to its files. This has become a problem on production servers that should be as barebones as possible. Often, the dotfiles dependencies will install far more than is needed.
What should it do now?
Dotfiles should only install the bare minimum required utilities that are needed in order for the dotfiles to be useful. Anything beyond that, like installing a language interpreter, compilers, etc, are superfluous. In other words, if not a single dotfile requires that one of those installs are required to function, it should not install by default.
What needs to be changed?
The dpm
utility should have categories of installations. By default, without options provided to it, it will install the necessarty utilities for the dotfiles to function. If the machine requires more, pass a flag, like --development
, and it will install all the additional developer tools, or --localmachine
, and it will install all the extra tools like weechat
.
Since November 2021, these dotfiles intended to migrate away to Nix for package management.
Numerous changes were made to the relevant feature branch that allowed the dotfiles to work, but they were not merged back to the master
branch.
Given time constraints, it may be worthwhile to attempt to merge all the changes that went into the nix branch and attempt to maintain cross-compatibility.
This issue will attempt to consolidate that.
First step:
zsh
: chsh -s /bin/bash
Review install notes:
Warning: /opt/homebrew/bin is not in your PATH.
Instructions on how to configure your shell for Homebrew
can be found in the 'Next steps' section below.
==> Installation successful!
==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/danemacmillan/.profile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
/opt/homebrew is new path. See #23 and silpheel@9d21f5b.
Update usages like this to allow fallback (Use the fallback syntax built in to bash variables.):
Review new default paths:
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
bash-completion.d is no longer compatible directory on pre-m1. see update.
fzf paths for keybindings are different
This is required to use the mount
command on MacOS.
curl https://rclone.org/install.sh | sudo bash
Bash history is stored in ${XDG_DATA_HOME}/bash/${DOTFILES_HOSTNAME}.${USER}.history
. The ${DOTFILES_HOSTNAME}
environment variable is assigned using hostname -f
. Depending on the network connected to, this domain information can change quite often, so use the short version, hostname -s
, which includes only the name of the host. Consider making the change backwards-compatible.
This line causes Alacritty 0.4.0 to crash when using Catalina (reported here for Alacritty). Any other listed value for statup_mode will work and the window can be maximized later. The linked issue was closed recently but a fixed version is not yet available on brew.
sudo xcodebuild -license accept
I couldn't think of how to tell you this other than a github issue but your tmux config is the best "out of the box" tmux experience i've ever had. Everything just works and is nice on iTerm2 & Mojave, especially the mouse.
Nothing but a thanks. Have a great day. ๐
Consider using https://github.com/lra/mackup for backing up many of these GUI tools' settings.
~/Downloads
with symlink to iCloud/Downloads.Mobile Documents
at ~/iCloud
etc/shells
and chsh
.XDebugToggle.app
and Dark Reader for Safari.app
stts
uptime tool, from App Store.Everything else is backed up or automated.
Note that to setup xdebug, configs in dotfiles use port 9001, so modify phpstorm to use that. Consider just going back to socket.
Also, xdebug's RC became 3+, so the configuration needs to be changed. See:
Edit Nov 9, 2021:
ln
that are POSIX-compliant (not using -r
option). This will also ensure some links like .ssh
directory are made properly.While trying to install the dotfiles on a M1 Mac, there were a few things I had to tinker with. It's a fresh Monterey install on M1 Mac, 2022-10-13:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
to replace it. As I got the below error that stopped me, I figured I may as well update this./usr/local
to /opt/homebrew
(see also Homebrew/brew#9177 and https://apple.stackexchange.com/questions/437618/why-is-homebrew-installed-in-opt-homebrew-on-apple-silicon-macs)My own commit was a quick-and-dirty test to make it work on the M1 Mac but the better solution would account for the hardware properly and still work for Intel, so I did not make a PR and instead just use it as reference: silpheel@9d21f5b
To detect M-series or Intel it should be enough to check if uname -m
returns arm64
or x86_64
respectively.
We can install Rosetta automatically, which will be handy because something at this stage surely will need it.
sudo softwareupdate --install-rosetta --agree-to-license
As above, this should only be done on arm64
It seems that stow is used as part of the install process but before brew has a chance to install packages. This would work as an update, but not an an initial install.
For my needs, I had brew installed by the time it failed, so I installed the package and restarted the installation process.
From latest install, these are some things that don't seem to have gotten installed.
For some reason as of now, dpm --install
will not work on a fresh install. It suddenly starts working if brew
is installed, but of course, that should be part of the install, and not an initial step. This used to work. Look at pre-installation and includes to see if they are calling brew
before it's available.
Also, check that __git_ps1
is available before attempting to use it in .bash_prompt
.
Example:
tmux
and rclone
to /usr/local/bin
.$PATH
; this path on CentOS, at least, does not contain /usr/local/bin
, which means this user will then compile tmux
and rclone
again, unnecessarily.Ensure that the PATH looks in these places for the install script.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.