Last active
June 23, 2023 00:34
-
-
Save novafacing/85aec89f45f2b014eda1a14fa3b3822b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# sh <(curl -L https://nixos.org/nix/install) | |
# nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer | |
# ./result/bin/darwin-installer | |
# Go through installer, put this file where you want it | |
# darwin-rebuild switch -I darwin-config=${HOME}/wherever/you/put/it/configuration.nix | |
# There will probably be errors :) | |
{ config, pkgs, lib, ... }: | |
let | |
username = "novafacing"; | |
name = "chaos"; | |
fenix = import | |
(fetchTarball "https://github.com/nix-community/fenix/archive/main.tar.gz") | |
{ }; | |
fisa-code = pkgs.callPackage ({ lib, stdenvNoCC, fetchFromGitHub }: | |
stdenvNoCC.mkDerivation rec { | |
pname = "fisa-code"; | |
version = "1.0"; | |
src = fetchFromGitHub { | |
owner = "sainnhe"; | |
repo = "icursive-nerd-font"; | |
rev = "623feb6815753c5679ef4111fb137b8dae4fb983"; | |
hash = "sha256-NJjyOsDCQ+QmCMlP6ZwBOBdEcKqRQdevUIilWr21snU="; | |
}; | |
installPhase = '' | |
runHook preInstall | |
install -m444 -Dt $out/share/fonts/truetype dist/*/*.ttf | |
runHook postInstall | |
''; | |
meta = with lib; { | |
homepage = "https://github.com/sainnhe/icursive-nerd-font"; | |
description = "Patched Nerd Fonts"; | |
longDescription = "Patched Nerd Fonts"; | |
platforms = platforms.all; | |
}; | |
}) { }; | |
sold = pkgs.callPackage ({ lib, stdenv, fetchFromGitHub, cmake, mimalloc | |
, ninja, openssl, zlib, testers }: | |
stdenv.mkDerivation rec { | |
name = "mold"; | |
pname = "mold"; | |
src = fetchFromGitHub { | |
owner = "bluewhalesystems"; | |
repo = "sold"; | |
rev = "ab4245a0919c16775c9d497dfa3f03330bda733b"; | |
hash = "sha256-hAxxnXy7OodIu5rSGlZImktd8ucNLauDeSgGsbaOIps="; | |
}; | |
nativeBuildInputs = [ cmake ninja ]; | |
buildInputs = [ openssl zlib ] | |
++ lib.optionals (!stdenv.isDarwin) [ mimalloc ]; | |
postPatch = '' | |
sed -i CMakeLists.txt -e '/.*set(DEST\ .*/d' | |
''; | |
cmakeFlags = [ "-DMOLD_USE_SYSTEM_MIMALLOC:BOOL=ON" ]; | |
env.NIX_CFLAGS_COMPILE = | |
toString (lib.optionals stdenv.isDarwin [ "-faligned-allocation" ]); | |
meta = with lib; { | |
description = "A faster drop-in replacement for existing Unix linkers"; | |
longDescription = '' | |
mold is a faster drop-in replacement for existing Unix linkers. It is | |
several times faster than the LLVM lld linker. mold is designed to | |
increase developer productivity by reducing build time, especially in | |
rapid debug-edit-rebuild cycles. | |
''; | |
homepage = "https://github.com/rui314/mold"; | |
changelog = "https://github.com/rui314/mold/releases/tag/v${version}"; | |
license = licenses.agpl3Plus; | |
maintainers = with maintainers; [ azahi nitsky ]; | |
platforms = platforms.unix; | |
}; | |
}) { }; | |
stateVersion = 4; | |
in let | |
home-packages = [ | |
fenix.default.toolchain | |
fenix.rust-analyzer-vscode-extension | |
fenix.rust-analyzer | |
sold | |
pkgs.vscode | |
pkgs.kitty | |
pkgs.python311Full | |
pkgs.llvmPackages_16.clang | |
pkgs.llvmPackages_16.compiler-rt | |
pkgs.llvmPackages_16.libclang | |
pkgs.llvmPackages_16.libcxx | |
pkgs.llvmPackages_16.libcxxabi | |
pkgs.llvmPackages_16.libllvm | |
pkgs.llvmPackages_16.libunwind | |
pkgs.llvmPackages_16.lld | |
pkgs.llvmPackages_16.lldb | |
pkgs.llvmPackages_16.openmp | |
pkgs.fd | |
pkgs.silver-searcher | |
pkgs.nil | |
pkgs.nixfmt | |
]; | |
in { | |
imports = [ <home-manager/nix-darwin> ]; | |
documentation = { | |
enable = false; | |
doc = { enable = false; }; | |
info = { enable = false; }; | |
man = { enable = false; }; | |
}; | |
environment = { | |
darwinConfig = "$HOME/config/configuration.nix"; | |
systemPackages = [ | |
pkgs.darwin.apple_sdk.frameworks.System | |
pkgs.darwin.apple_sdk.frameworks.CoreFoundation | |
pkgs.darwin.apple_sdk.frameworks.CoreServices | |
]; | |
systemPath = [ ]; | |
shellAliases = { }; | |
variables = { }; | |
}; | |
fonts = { | |
fontDir = { enable = true; }; | |
fonts = [ pkgs.font-awesome fisa-code pkgs.nerdfonts ]; | |
}; | |
users = { | |
users = { | |
${username} = { | |
name = "${username}"; | |
home = "/Users/${username}"; | |
}; | |
}; | |
}; | |
home-manager = { | |
useGlobalPkgs = true; | |
users = { | |
${username} = { lib, pkgs, ... }: { | |
manual = { manpages = { enable = false; }; }; | |
programs = { | |
zsh = { | |
enable = true; | |
enableAutosuggestions = true; | |
enableCompletion = true; | |
enableSyntaxHighlighting = true; | |
enableVteIntegration = true; | |
envExtra = '' | |
[[ -o login ]] && export PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:''${PATH}' | |
if [ -e '/nix/var/nix/profiles/etc/profile.d/nix-daemon.sh' ]; then | |
. '/nix/var/nix/profiles/etc/profile.d/nix-daemon.sh' | |
fi | |
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env" | |
export NIX_PATH="''${NIX_PATH}:darwin-config=/Users/${username}/config/configuration.nix:/Users/${username}/.nix-defexpr/channels" | |
export PATH="''${HOME}/install/bin/:''${PATH}" | |
export PATH="''${HOME}/.nix-profile/bin/:''${PATH}" | |
''; | |
history = { | |
ignoreDups = true; | |
extended = true; | |
save = 1000000; | |
share = true; | |
size = 1000000; | |
}; | |
initExtra = ""; | |
oh-my-zsh = { | |
enable = true; | |
extraConfig = ""; | |
plugins = [ "git" "python" "rust" "extract" "sudo" ]; | |
}; | |
plugins = [{ | |
name = "z"; | |
src = pkgs.fetchFromGitHub { | |
owner = "rupa"; | |
repo = "z"; | |
rev = "master"; | |
sha256 = "sha256-4jMHh1GVRdFNjUjiPH94vewbfLcah7Agu153zjVNE14="; | |
}; | |
}]; | |
}; | |
atuin = { | |
enable = true; | |
enableZshIntegration = true; | |
flags = [ ]; | |
settings = { | |
db_path = "~/.history.db"; | |
key_path = "~/.atuin-key"; | |
session_path = "~/.atuin-key"; | |
dialect = "us"; | |
auto_sync = false; | |
sync_frequency = "5m"; | |
sync_address = "https://api.atuin.sh"; | |
search_mode = "fuzzy"; | |
inline_height = 20; | |
style = "compact"; | |
show_preview = true; | |
exit_mode = "return-query"; | |
history_filter = [ "chpasswd" ]; | |
}; | |
}; | |
bat = { enable = true; }; | |
bottom = { enable = true; }; | |
command-not-found = { | |
}; | |
feh = { enable = true; }; | |
gh = { | |
enable = true; | |
settings = { git_protocol = "ssh"; }; | |
}; | |
git = { | |
enable = true; | |
aliases = { | |
status = "status --sort --branch"; | |
grog = | |
"log --graph --abbrev-commit --decorate --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(dim white) - %an%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n %C(white)%s%C(reset)'"; | |
}; | |
delta = { | |
enable = true; | |
options = { }; | |
}; | |
extraConfig = { | |
init = { defaultBranch = "main"; }; | |
"filter \"lfs\"" = { | |
required = true; | |
clean = "git-lfs clean -- %f"; | |
smudge = "git-lfs smudge -- %f"; | |
process = "git-lfs filter-process"; | |
}; | |
}; | |
ignores = [ ".DS_STORE" ]; | |
userName = "novafacing"; | |
userEmail = "[email protected]"; | |
}; | |
go = { | |
enable = true; | |
}; | |
gpg = { enable = true; }; | |
jq = { enable = true; }; | |
kitty = { | |
enable = true; | |
darwinLaunchOptions = [ ]; | |
environment = { }; | |
extraConfig = ""; | |
font = { | |
name = "Fisa Code"; | |
size = 12.0; | |
}; | |
settings = { | |
disable_ligatures = "tab cursor"; | |
scrollback_lines = 100000; | |
enable_audio_bell = "no"; | |
term = "xterm"; | |
allow_remote_control = "yes"; | |
# Colorscheme | |
background = "#32302f"; | |
foreground = "#d4be98"; | |
cursor = "#89b482"; | |
selection_foreground = "#32302f"; | |
selection_background = "#d4be98"; | |
color0 = "#32302f"; | |
color8 = "#d4be98"; | |
# red | |
color1 = "#ea6962"; | |
# light red | |
color9 = "#fb4934"; | |
# green | |
color2 = "#a9b665"; | |
# light green | |
color10 = "#6c782e"; | |
# yellow | |
color3 = "#d8a657"; | |
# light yellow | |
color11 = "#e78a4e"; | |
# blue | |
color4 = "#7daea3"; | |
# light blue | |
color12 = "#45707a"; | |
# magenta | |
color5 = "#d3869b"; | |
# light magenta | |
color13 = "#945e80"; | |
# cyan | |
color6 = "#89b482"; | |
# lighy cyan | |
color14 = "#4c7a5d"; | |
# light gray | |
color7 = "#928474"; | |
# dark gray | |
color15 = "#665c54"; | |
}; | |
shellIntegration = { enableZshIntegration = true; }; | |
}; | |
lsd = { | |
enable = true; | |
enableAliases = true; | |
settings = { | |
date = "relative"; | |
ignore-globs = [ ".git" ]; | |
}; | |
}; | |
neovim = { | |
enable = true; | |
defaultEditor = true; | |
extraConfig = ""; | |
plugins = with pkgs.vimPlugins; | |
[ | |
]; | |
viAlias = true; | |
vimAlias = true; | |
vimdiffAlias = true; | |
withNodeJs = true; | |
withPython3 = true; | |
}; | |
nix-index = { | |
enable = true; | |
enableZshIntegration = true; | |
}; | |
pandoc = { enable = true; }; | |
ssh = { | |
enable = true; | |
compression = true; | |
controlMaster = "auto"; | |
matchBlocks = { | |
grobot = { | |
hostname = "192.168.0.2"; | |
user = "grobot"; | |
}; | |
}; | |
}; | |
starship = { | |
enable = true; | |
enableZshIntegration = true; | |
settings = { | |
"$schema" = "https://starship.rs/config-schema.json"; | |
format = '' | |
[╭─](fg:#5a524c)$directory$git_branch$git_status$git_metrics$time$username$hostname$python$status$fill | |
[╰─ϕ ](fg:#5a524c)''; | |
command_timeout = 500; | |
add_newline = false; | |
python = { format = "[ 🐍$virtualenv $version](bg:#282828)"; }; | |
git_metrics = { | |
format = | |
"([+$added](fg:#89b482 bg:#7c6f64)[-$deleted](fg:#ea6962 bg:#7c6f64))[ ](fg:#d8a657 bg:#7c6f64)"; | |
disabled = false; | |
}; | |
git_branch = { | |
format = | |
"[ on $symbol$branch(:$remote_branch)](fg:#ddc7a1 bg:#7c6f64)"; | |
}; | |
git_status = { | |
format = "[ $all_status$ahead_behind ](fg:#ddc7a1 bg:#7c6f64)"; | |
ahead = "⇡\${count}"; | |
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; | |
behind = "⇣\${count}"; | |
}; | |
directory = { | |
format = | |
"[](fg:#89b482)[ $path ](fg:#282828 bg:#89b482)[](bg:#7c6f64 fg:#89b482)"; | |
}; | |
fill = { | |
symbol = "·"; | |
style = "fg:#46413e"; | |
}; | |
status = { | |
format = | |
"[ ](bg:#282828)[$status ](bg:#282828)[](fg:#89b482 bg:#282828)[](fg:#282828)"; | |
disabled = false; | |
success_symbol = "✓"; | |
}; | |
hostname = { | |
format = "[@$hostname](bg:#504945)[](fg:#504945 bg:#282828)"; | |
ssh_only = false; | |
}; | |
username = { | |
show_always = true; | |
format = "[$user](bg:#504945)"; | |
disabled = false; | |
}; | |
time = { | |
format = | |
"[ $time ](bg:#7c6f64 fg:#45403d)[](fg:#7c6f64 bg:#504945)"; | |
disabled = false; | |
}; | |
}; | |
}; | |
vscode = { | |
enable = true; | |
enableExtensionUpdateCheck = false; | |
enableUpdateCheck = false; | |
package = pkgs.vscode; | |
extensions = [ | |
pkgs.vscode-extensions.bierner.markdown-mermaid | |
pkgs.vscode-extensions.christian-kohler.path-intellisense | |
pkgs.vscode-extensions.dotjoshjohnson.xml | |
pkgs.vscode-extensions.eamodio.gitlens | |
# pkgs.vscode-extensions.edwinkofler.vscode-assorted-languages | |
pkgs.vscode-extensions.esbenp.prettier-vscode | |
# pkgs.vscode-extensions.exodiusstudios.comment-anchors | |
pkgs.vscode-extensions.formulahendry.auto-rename-tag | |
# pkgs.vscode-extensions.github.copilot | |
pkgs.vscode-extensions.github.vscode-pull-request-github | |
# pkgs.vscode-extensions.inferrinizzard.prettier-sql-vscode | |
pkgs.vscode-extensions.james-yu.latex-workshop | |
# pkgs.vscode-extensions.janisdd.vscode-edit-csv | |
pkgs.vscode-extensions.jebbs.plantuml | |
# pkgs.vscode-extensions.karunamurti.tera | |
pkgs.vscode-extensions.llvm-vs-code-extensions.vscode-clangd | |
# pkgs.vscode-extensions.maelvalais.autoconf | |
# pkgs.vscode-extensions.mesonbuild.mesonbuild | |
pkgs.vscode-extensions.ms-azuretools.vscode-docker | |
pkgs.vscode-extensions.ms-python.python | |
pkgs.vscode-extensions.ms-python.vscode-pylance | |
pkgs.vscode-extensions.ms-toolsai.jupyter | |
pkgs.vscode-extensions.ms-toolsai.jupyter-keymap | |
pkgs.vscode-extensions.ms-toolsai.jupyter-renderers | |
pkgs.vscode-extensions.ms-toolsai.vscode-jupyter-cell-tags | |
pkgs.vscode-extensions.ms-toolsai.vscode-jupyter-slideshow | |
# pkgs.vscode-extensions.ms-vscode-remote.remote-containers | |
pkgs.vscode-extensions.ms-vscode-remote.remote-ssh | |
# pkgs.vscode-extensions.ms-vscode-remote.remote-ssh-edit | |
# pkgs.vscode-extensions.ms-vscode-remote.remote-wsl | |
# pkgs.vscode-extensions.ms-vscode-remote.vscode-remote-extensionpack | |
pkgs.vscode-extensions.ms-vscode.cmake-tools | |
# pkgs.vscode-extensions.ms-vscode.cpptools | |
pkgs.vscode-extensions.ms-vscode.hexeditor | |
# pkgs.vscode-extensions.ms-vscode.remote-explorer | |
# pkgs.vscode-extensions.ms-vscode.remote-server | |
pkgs.vscode-extensions.naumovs.color-highlight | |
# pkgs.vscode-extensions.npclaudiu.vscode-gn | |
# pkgs.vscode-extensions.perkovec.emoji | |
pkgs.vscode-extensions.pkief.material-icon-theme | |
# pkgs.vscode-extensions.pnp.polacode | |
pkgs.vscode-extensions.redhat.java | |
pkgs.vscode-extensions.redhat.vscode-yaml | |
# pkgs.vscode-extensions.richie5um2.vscode-sort-json | |
pkgs.vscode-extensions.rust-lang.rust-analyzer | |
# pkgs.vscode-extensions.sainnhe.gruvbox-material | |
pkgs.vscode-extensions.serayuzgur.crates | |
pkgs.vscode-extensions.tamasfe.even-better-toml | |
pkgs.vscode-extensions.twxs.cmake | |
# pkgs.vscode-extensions.vadimcn.vscode-lldb | |
# pkgs.vscode-extensions.vgalaktionov.moonscript | |
pkgs.vscode-extensions.vscodevim.vim | |
pkgs.vscode-extensions.yzhang.markdown-all-in-one | |
]; | |
keybindings = [ | |
{ | |
key = "ctrl+l"; | |
command = "workbench.action.focusRightGroup"; | |
} | |
{ | |
key = "ctrl+k ctrl+right"; | |
command = "-workbench.action.focusRightGroup"; | |
} | |
{ | |
key = "ctrl+h"; | |
command = "workbench.action.focusLeftGroup"; | |
} | |
{ | |
key = "ctrl+k ctrl+left"; | |
command = "-workbench.action.focusLeftGroup"; | |
} | |
{ | |
key = "ctrl+shift+\\"; | |
command = "-workbench.action.terminal.focusTabs"; | |
when = | |
"terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported || terminalHasBeenCreated && terminalTabsFocus || terminalProcessSupported && terminalTabsFocus"; | |
} | |
{ | |
key = "ctrl+k"; | |
command = "workbench.action.focusActiveEditorGroup"; | |
} | |
{ | |
key = "ctrl+o"; | |
command = "workbench.action.files.openFolder"; | |
when = "true"; | |
} | |
{ | |
key = "ctrl+j"; | |
command = "-workbench.action.togglePanel"; | |
} | |
{ | |
key = "ctrl+j"; | |
command = "-extension.vim_ctrl+j"; | |
when = | |
"editorTextFocus && vim.active && vim.use<C-j> && !inDebugRepl"; | |
} | |
{ | |
key = "ctrl+j"; | |
command = "workbench.action.terminal.focus"; | |
} | |
{ | |
key = "ctrl+shift+k"; | |
command = "workbench.action.files.showOpenedFileInNewWindow"; | |
when = "emptyWorkspaceSupport"; | |
} | |
{ | |
key = "ctrl+k o"; | |
command = "-workbench.action.files.showOpenedFileInNewWindow"; | |
when = "emptyWorkspaceSupport"; | |
} | |
{ | |
key = "ctrl+l"; | |
command = "workbench.action.terminal.focusNextPane"; | |
when = | |
"terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"; | |
} | |
{ | |
key = "alt+down"; | |
command = "-workbench.action.terminal.focusNextPane"; | |
when = | |
"terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"; | |
} | |
{ | |
key = "ctrl+h"; | |
command = "workbench.action.terminal.focusPreviousPane"; | |
when = | |
"terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"; | |
} | |
{ | |
key = "alt+left"; | |
command = "-workbench.action.terminal.focusPreviousPane"; | |
when = | |
"terminalFocus && terminalHasBeenCreated || terminalFocus && terminalProcessSupported"; | |
} | |
{ | |
key = "ctrl+o"; | |
command = "-workbench.action.files.openFile"; | |
when = "true"; | |
} | |
]; | |
userSettings = { | |
"[c]" = { | |
"editor.defaultFormatter" = | |
"llvm-vs-code-extensions.vscode-clangd"; | |
}; | |
"[cpp]" = { | |
"editor.defaultFormatter" = | |
"llvm-vs-code-extensions.vscode-clangd"; | |
}; | |
"[html]" = { | |
"editor.defaultFormatter" = "vscode.html-language-features"; | |
}; | |
"[java]" = { "editor.defaultFormatter" = "redhat.java"; }; | |
"[javascript]" = { | |
"editor.defaultFormatter" = "esbenp.prettier-vscode"; | |
}; | |
"[json]" = { | |
"editor.defaultFormatter" = "vscode.json-language-features"; | |
}; | |
"[jsonc]" = { | |
"editor.defaultFormatter" = "esbenp.prettier-vscode"; | |
}; | |
"[markdown]" = { | |
"editor.defaultFormatter" = "yzhang.markdown-all-in-one"; | |
}; | |
"[nix]" = { "editor.defaultFormatter" = "jnoortheen.nix-ide"; }; | |
"[plaintext]" = { | |
"editor.unicodeHighlight.ambiguousCharacters" = false; | |
"editor.unicodeHighlight.invisibleCharacters" = false; | |
}; | |
"[rust]" = { | |
"editor.defaultFormatter" = "rust-lang.rust-analyzer"; | |
}; | |
"[sql]" = { "editor.defaultFormatter" = "mtxr.sqltools"; }; | |
"[toml]" = { | |
"editor.defaultFormatter" = "tamasfe.even-better-toml"; | |
}; | |
"[typescript]" = { | |
"editor.defaultFormatter" = "esbenp.prettier-vscode"; | |
}; | |
"C_Cpp.clang_format_fallbackStyle" = | |
"{Language = Cpp, BasedOnStyle = LLVM, AccessModifierOffset = -4, AlignAfterOpenBracket = Align, AlignArrayOfStructures = None, AlignConsecutiveMacros = None, AlignConsecutiveAssignments = None, AlignConsecutiveBitFields = None, AlignConsecutiveDeclarations = None, AlignEscapedNewlines = Right, AlignOperands = Align, AlignTrailingComments = true, AllowAllArgumentsOnNextLine = true, AllowAllConstructorInitializersOnNextLine = true, AllowAllParametersOfDeclarationOnNextLine = true, AllowShortEnumsOnASingleLine = true, AllowShortBlocksOnASingleLine = Never, AllowShortCaseLabelsOnASingleLine = false, AllowShortFunctionsOnASingleLine = All, AllowShortLambdasOnASingleLine = All, AllowShortIfStatementsOnASingleLine = Never, AllowShortLoopsOnASingleLine = false, AlwaysBreakAfterDefinitionReturnType = None, AlwaysBreakAfterReturnType = None, AlwaysBreakBeforeMultilineStrings = false, AlwaysBreakTemplateDeclarations = MultiLine, BinPackArguments = true, BinPackParameters = true, BraceWrapping = {, AfterCaseLabel = false, AfterClass = false, AfterControlStatement = Never, AfterEnum = false, AfterFunction = false, AfterNamespace = false, AfterObjCDeclaration = false, AfterStruct = false, AfterUnion = false, AfterExternBlock = false, BeforeCatch = false, BeforeElse = false, BeforeLambdaBody = false, BeforeWhile = false, IndentBraces = false, SplitEmptyFunction = true, SplitEmptyRecord = true, SplitEmptyNamespace = true, }; BreakBeforeBinaryOperators = None, BreakBeforeConceptDeclarations = true, BreakBeforeBraces = Attach, BreakBeforeInheritanceComma = false, BreakInheritanceList = BeforeColon, BreakBeforeTernaryOperators = true, BreakConstructorInitializersBeforeComma = false, BreakConstructorInitializers = BeforeColon, BreakAfterJavaFieldAnnotations = false, BreakStringLiterals = true, ColumnLimit = 88, CompactNamespaces = false, ConstructorInitializerAllOnOneLineOrOnePerLine = false, ConstructorInitializerIndentWidth = 4, ContinuationIndentWidth = 4, Cpp11BracedListStyle = true, DeriveLineEnding = true, DerivePointerAlignment = false, DisableFormat = false, EmptyLineAfterAccessModifier = Never, EmptyLineBeforeAccessModifier = LogicalBlock, ExperimentalAutoDetectBinPacking = false, FixNamespaceComments = true, IncludeBlocks = Preserve, IncludeIsMainRegex = '(Test)?$', IncludeIsMainSourceRegex = '', IndentAccessModifiers = false, IndentCaseLabels = true, IndentCaseBlocks = false, IndentGotoLabels = true, IndentPPDirectives = None, IndentExternBlock = AfterExternBlock, IndentRequires = false, IndentWidth = 4, IndentWrappedFunctionNames = false, InsertTrailingCommas = None, JavaScriptQuotes = Leave, JavaScriptWrapImports = true, KeepEmptyLinesAtTheStartOfBlocks = true, LambdaBodyIndentation = Signature, MacroBlockBegin = '', MacroBlockEnd = '', MaxEmptyLinesToKeep = 1, NamespaceIndentation = None, ObjCBinPackProtocolList = Auto, ObjCBlockIndentWidth = 2, ObjCBreakBeforeNestedBlockParam = true, ObjCSpaceAfterProperty = false, ObjCSpaceBeforeProtocolList = true, PenaltyBreakAssignment = 2, PenaltyBreakBeforeFirstCallParameter = 19, PenaltyBreakComment = 300, PenaltyBreakFirstLessLess = 120, PenaltyBreakString = 1000, PenaltyBreakTemplateDeclaration = 10, PenaltyExcessCharacter = 1000000, PenaltyReturnTypeOnItsOwnLine = 60, PenaltyIndentedWhitespace = 0, PointerAlignment = Right, PPIndentWidth = -1, ReferenceAlignment = Pointer, ReflowComments = true, ShortNamespaceLines = 1, SortIncludes = CaseSensitive, SortJavaStaticImport = Before, SortUsingDeclarations = true, SpaceAfterCStyleCast = false, SpaceAfterLogicalNot = false, SpaceAfterTemplateKeyword = true, SpaceBeforeAssignmentOperators = true, SpaceBeforeCaseColon = false, SpaceBeforeCpp11BracedList = false, SpaceBeforeCtorInitializerColon = true, SpaceBeforeInheritanceColon = true, SpaceBeforeParens = ControlStatements, SpaceAroundPointerQualifiers = Default, SpaceBeforeRangeBasedForLoopColon = true, SpaceInEmptyBlock = false, SpaceInEmptyParentheses = false, SpacesBeforeTrailingComments = 1, SpacesInAngles = Never, SpacesInConditionalStatement = false, SpacesInContainerLiterals = true, SpacesInCStyleCastParentheses = false, SpacesInLineCommentPrefix = {, Minimum = 1, Maximum = 1, }; SpacesInParentheses = false, SpacesInSquareBrackets = false, SpaceBeforeSquareBrackets = false, BitFieldColonSpacing = Both, Standard = Latest, TabWidth = 4, UseCRLF = false, UseTab = Never}"; | |
"C_Cpp.clang_format_sortIncludes" = true; | |
"C_Cpp.default.cppStandard" = "c++20"; | |
"C_Cpp.default.cStandard" = "c17"; | |
"C_Cpp.dimInactiveRegions" = false; | |
"C_Cpp.formatting" = "clangFormat"; | |
"C_Cpp.inactiveRegionBackgroundColor" = "#3c3836"; | |
"C_Cpp.intelliSenseEngine" = "disabled"; | |
"clangd.arguments" = [ "--enable-config" ]; | |
"clangd.checkUpdates" = true; | |
"clangd.path" = "/usr/bin/clangd"; | |
"cmake.configureOnOpen" = true; | |
"color-highlight.languages" = [ "*" ]; | |
"color-highlight.markerType" = "dot-after"; | |
"debug.internalConsoleOptions" = "neverOpen"; | |
"debug.onTaskErrors" = "debugAnyway"; | |
"editor.acceptSuggestionOnEnter" = "off"; | |
"editor.autoClosingQuotes" = "never"; | |
"editor.bracketPairColorization.enabled" = true; | |
"editor.cursorBlinking" = "smooth"; | |
"editor.cursorStyle" = "block"; | |
"editor.defaultFormatter" = "ms-python.python"; | |
"editor.fontFamily" = "Fisa Code"; | |
"editor.fontLigatures" = true; | |
"editor.fontSize" = 16; | |
"editor.formatOnPaste" = true; | |
"editor.formatOnSave" = true; | |
"editor.guides.bracketPairs" = true; | |
"editor.guides.highlightActiveBracketPair" = true; | |
"editor.guides.highlightActiveIndentation" = "always"; | |
"editor.inlineSuggest.enabled" = true; | |
"editor.renderWhitespace" = "all"; | |
"editor.rulers" = [ 88 ]; | |
"editor.stickyScroll.enabled" = true; | |
"editor.suggestSelection" = "first"; | |
"editor.tokenColorCustomizations" = { | |
"textMateRules" = [ | |
{ | |
"name" = "comment"; | |
"scope" = [ "comment" ]; | |
"settings" = { "fontStyle" = "italic"; }; | |
} | |
{ | |
"name" = "Keyword Storage"; | |
"scope" = [ "keyword" "keyword.control" "storage" ]; | |
"settings" = { "fontStyle" = "italic"; }; | |
} | |
]; | |
}; | |
"explorer.confirmDelete" = false; | |
"explorer.confirmDragAndDrop" = false; | |
"explorer.fileNesting.enabled" = true; | |
"explorer.fileNesting.expand" = false; | |
"extensions.ignoreRecommendations" = true; | |
"files.exclude" = { | |
"**/.classpath" = true; | |
"**/.factorypath" = true; | |
"**/.project" = true; | |
"**/.settings" = true; | |
}; | |
"files.maxMemoryForLargeFilesMB" = 8192; | |
"files.refactoring.autoSave" = true; | |
"github.copilot.enable" = { | |
"*" = true; | |
"markdown" = false; | |
"plaintext" = false; | |
"yaml" = false; | |
}; | |
"githubPullRequests.createOnPublishBranch" = "never"; | |
"githubPullRequests.remotes" = [ "origin" ]; | |
"gruvboxMaterial.colorfulSyntax" = true; | |
"gruvboxMaterial.italicKeywords" = true; | |
"gruvboxMaterial.lightPalette" = "material"; | |
"gruvboxMaterial.lightContrast" = "soft"; | |
"gruvboxMaterial.lightSelection" = "yellow"; | |
"gruvboxMaterial.darkPalette" = "material"; | |
"gruvboxMaterial.darkContrast" = "soft"; | |
"gruvboxMaterial.darkCursor" = "yellow"; | |
"gruvboxMaterial.darkSelection" = "green"; | |
"java.codeGeneration.generateComments" = true; | |
"java.completion.guessMethodArguments" = true; | |
"java.jdt.ls.java.home" = "/usr/lib/jvm/java-17-openjdk-amd64"; | |
"java.jdt.ls.vmargs" = '' | |
-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -javaagent:"/home/novafacing/.vscode/extensions/gabrielbb.vscode-lombok-1.0.1/server/lombok.jar"''; | |
"javascript.updateImportsOnFileMove.enabled" = "always"; | |
"keyboard.dispatch" = "keyCode"; | |
"latex-workshop.latex.recipe.default" = "lastUsed"; | |
"latex-workshop.latex.recipes" = [ | |
{ | |
"name" = "lualatex ➞ bibtex ➞ lualatex × 2"; | |
"tools" = [ "lualatex" "bibtex" "lualatex" "lualatex" ]; | |
} | |
{ | |
"name" = "Just pdflatex"; | |
"tools" = [ "pdflatex" ]; | |
} | |
{ | |
"name" = "Just lualatex"; | |
"tools" = [ "lualatex" ]; | |
} | |
{ | |
"name" = "latexmk 🔃"; | |
"tools" = [ "latexmk" ]; | |
} | |
{ | |
"name" = "latexmk (latexmkrc)"; | |
"tools" = [ "latexmk_rconly" ]; | |
} | |
{ | |
"name" = "latexmk (lualatex)"; | |
"tools" = [ "lualatexmk" ]; | |
} | |
{ | |
"name" = "pdflatex ➞ bibtex ➞ pdflatex × 2"; | |
"tools" = [ "pdflatex" "bibtex" "pdflatex" "pdflatex" ]; | |
} | |
{ | |
"name" = "Compile Rnw files"; | |
"tools" = [ "rnw2tex" "latexmk" ]; | |
} | |
{ | |
"name" = "Compile Jnw files"; | |
"tools" = [ "jnw2tex" "latexmk" ]; | |
} | |
{ | |
"name" = "tectonic"; | |
"tools" = [ "tectonic" ]; | |
} | |
]; | |
"latex-workshop.latex.tools" = [ | |
{ | |
"args" = [ | |
"-synctex=1" | |
"-shell-escape" | |
"-interaction=nonstopmode" | |
"-file-line-error" | |
"%DOCFILE%" | |
]; | |
"command" = "lualatex"; | |
"name" = "lualatex"; | |
} | |
{ | |
"args" = [ | |
"-synctex=1" | |
"-shell-escape" | |
"-interaction=nonstopmode" | |
"-file-line-error" | |
"%DOCFILE%" | |
]; | |
"command" = "pdflatex"; | |
"name" = "pdflatex"; | |
} | |
{ | |
"args" = [ | |
"-synctex=1" | |
"-interaction=nonstopmode" | |
"-file-line-error" | |
"%DOCFILE%" | |
]; | |
"command" = "xelatex"; | |
"name" = "xelatex"; | |
} | |
{ | |
"args" = [ "%DOCFILE%" ]; | |
"command" = "bibtex"; | |
"name" = "bibtex"; | |
} | |
]; | |
"latex-workshop.view.pdf.invertMode.enabled" = "always"; | |
"nix.serverPath" = "nil"; | |
"nix.formatterPath" = "nixfmt"; | |
"notebook.cellToolbarLocation" = { | |
"default" = "right"; | |
"jupyter-notebook" = "left"; | |
}; | |
"prettier.documentSelectors" = [ "*.js" "*.ts" "*.html" "*.css" ]; | |
"prettier.printWidth" = 88; | |
"prettier.tabWidth" = 4; | |
"prettier.trailingComma" = "all"; | |
"prettier.vueIndentScriptAndStyle" = true; | |
"python.defaultInterpreterPath" = "python3"; | |
"python.formatting.provider" = "black"; | |
"python.languageServer" = "Pylance"; | |
"python.linting.mypyEnabled" = true; | |
"python.linting.pylintEnabled" = true; | |
"redhat.telemetry.enabled" = false; | |
"rust-analyzer.check.command" = "clippy"; | |
"rust-analyzer.cargo.extraEnv" = { | |
"CARGO_PROFILE_RUST_ANALYZER_INHERITS" = "dev"; | |
}; | |
"rust-analyzer.cargo.extraArgs" = [ "--profile" "rust-analyzer" ]; | |
"security.workspace.trust.untrustedFiles" = "open"; | |
"settingsSync.ignoredSettings" = | |
[ "-python.formatting.blackPath" ]; | |
"sqltools.completionLanguages" = [ ]; | |
"sqltools.highlightQuery" = false; | |
"sqltools.useNodeRuntime" = true; | |
"telemetry.telemetryLevel" = "off"; | |
"terminal.external.linuxExec" = "kitty"; | |
"terminal.integrated.cursorBlinking" = true; | |
"terminal.integrated.customGlyphs" = false; | |
"terminal.integrated.defaultProfile.linux" = "zsh"; | |
"terminal.integrated.detectLocale" = "on"; | |
"terminal.integrated.drawBoldTextInBrightColors" = false; | |
"terminal.integrated.enableMultiLinePasteWarning" = false; | |
"terminal.integrated.fontFamily" = "Fisa Code"; | |
"terminal.integrated.fontSize" = 16; | |
"terminal.integrated.gpuAcceleration" = "on"; | |
"terminal.integrated.inheritEnv" = true; | |
"terminal.integrated.scrollback" = 100000; | |
"terminal.integrated.shellIntegration.enabled" = true; | |
"typescript.updateImportsOnFileMove.enabled" = "always"; | |
"vim.easymotion" = true; | |
"vim.easymotionDimBackground" = true; | |
"vim.easymotionDimColor" = "#7c6f64"; | |
"vim.easymotionMarkerBackgroundColor" = "#45403d"; | |
"vim.easymotionMarkerFontWeight" = "bold"; | |
"vim.easymotionMarkerForegroundColorOneChar" = "#d3869b"; | |
"vim.easymotionMarkerForegroundColorTwoCharFirst" = "#d8a657"; | |
"vim.easymotionMarkerForegroundColorTwoCharSecond" = "#e78a4e"; | |
"vim.hlsearch" = true; | |
"vim.normalModeKeyBindingsNonRecursive" = [ | |
{ | |
"after" = [ "<leader>" "<leader>" "<leader>" "b" "d" "w" ]; | |
"before" = [ "t" ]; | |
} | |
{ | |
"before" = [ "g" "n" ]; | |
"after" = [ ]; | |
"commands" = [{ "command" = "editor.action.marker.next"; }]; | |
} | |
]; | |
"vim.smartRelativeLine" = true; | |
"vim.statusBarColorControl" = false; | |
"vim.statusBarColors.commandlineinprogress" = | |
[ "#32302f" "#89b482" ]; | |
"vim.statusBarColors.normal" = [ "#32302f" "#d8a657" ]; | |
"vim.statusBarColors.insert" = [ "#32302f" "#d3869b" ]; | |
"vim.statusBarColors.replace" = [ "#32302f" "#e78a4e" ]; | |
"vim.statusBarColors.searchinprogressmode" = | |
[ "#32302f" "#89b482" ]; | |
"vim.statusBarColors.visual" = [ "#32302f" "#7daea3" ]; | |
"vim.statusBarColors.visualblock" = [ "#32302f" "#7daea3" ]; | |
"vim.statusBarColors.visualline" = [ "#32302f" "#7daea3" ]; | |
"vim.statusBarColors.easymotioninputmode" = | |
[ "#32302f" "#e78a4e" ]; | |
"vim.statusBarColors.easymotionmode" = [ "#32302f" "#e78a4e" ]; | |
"vim.textwidth" = 88; | |
"window.menuBarVisibility" = "toggle"; | |
"window.restoreWindows" = "none"; | |
"window.zoomLevel" = -2; | |
"workbench.colorCustomizations" = { | |
"editorBracketHighlight.foreground1" = "#ea6962"; | |
"editorBracketHighlight.foreground2" = "#d3869b"; | |
"editorBracketHighlight.foreground3" = "#e78a4e"; | |
"editorBracketHighlight.foreground4" = "#a9b665"; | |
"editorBracketHighlight.foreground5" = "#bd6f3e"; | |
"editorBracketHighlight.foreground6" = "#89b482"; | |
"editorStickyScroll.background" = "#3c3836"; | |
"editorStickyScrollHover.background" = "#46413e"; | |
"statusBar.background" = "#32302f"; | |
"statusBar.debuggingBackground" = "#32302f"; | |
"statusBar.debuggingForeground" = "#d8a657"; | |
"statusBar.foreground" = "#d8a657"; | |
"statusBar.noFolderBackground" = "#32302f"; | |
}; | |
"workbench.colorTheme" = "Gruvbox Material Dark"; | |
"workbench.editorAssociations" = { | |
"*.ipynb" = "jupyter-notebook"; | |
}; | |
"workbench.editor.tabSizing" = "fixed"; | |
"workbench.iconTheme" = "material-icon-theme"; | |
"workbench.sideBar.location" = "right"; | |
"workbench.startupEditor" = "none"; | |
"color-highlight.enable" = true; | |
"color-highlight.matchWords" = true; | |
"editor.minimap.enabled" = false; | |
}; | |
}; | |
}; | |
home = { | |
file = { | |
cargo-config-toml = { | |
target = ".cargo/config.toml"; | |
enable = true; | |
text = '' | |
[target.aarch64-apple-darwin] | |
linker = "clang" | |
rustflags = [ | |
"-C", | |
"link-arg=--ld-path=${sold}/bin/ld64.mold", | |
#"-L", | |
#"${pkgs.darwin.apple_sdk.frameworks.CoreFoundation}/Library/Frameworks/", | |
#"-L", | |
#"${pkgs.darwin.apple_sdk.frameworks.System}/Library/Frameworks/", | |
#"-L", | |
#"${pkgs.darwin.apple_sdk.frameworks.CoreFoundation}/lib/swift", | |
#"-L", | |
#"${pkgs.darwin.apple_sdk.frameworks.System}/lib/swift/", | |
] | |
''; | |
}; | |
}; | |
stateVersion = "23.05"; | |
packages = home-packages; | |
activation = { | |
unaliasApplications = lib.mkIf pkgs.stdenv.hostPlatform.isDarwin | |
(lib.hm.dag.entryBefore [ "checkLinkTargets" ] '' | |
echo "Un-Linking Home Manager applications..." 2>&1 | |
app_path="$HOME/Applications/Home Manager Apps" | |
rm -rf "$app_path" | |
''); | |
aliasApplications = lib.mkIf pkgs.stdenv.hostPlatform.isDarwin (let | |
apps = pkgs.buildEnv { | |
name = "home-manager-applications"; | |
paths = home-packages; | |
pathsToLink = "/Applications"; | |
}; | |
in lib.hm.dag.entryAfter [ "linkGeneration" ] '' | |
echo "Linking Home Manager applications..." 2>&1 | |
app_path="$HOME/Applications/Home Manager Apps" | |
tmp_path="$(mktemp -dt "home-manager-applications.XXXXXXXXXX")" || exit 1 | |
${pkgs.fd}/bin/fd \ | |
-t l -d 1 . ${apps}/Applications \ | |
-x $DRY_RUN_CMD /Users/${username}/install/bin/mkalias -L {} "$tmp_path/{/}" | |
$DRY_RUN_CMD rm -rf "$app_path" | |
$DRY_RUN_CMD mv "$tmp_path" "$app_path" | |
''); | |
}; | |
}; | |
services = { }; | |
}; | |
}; | |
}; | |
networking = { | |
computerName = "${name}"; | |
hostName = "${name}"; | |
}; | |
nix = { | |
nixPath = [ | |
{ darwin-config = "$HOME/config/configuration.nix"; } | |
"/nix/var/nix/profiles/per-user/root/channels" | |
]; | |
extraOptions = '' | |
auto-optimise-store = true | |
experimental-features = nix-command flakes | |
system = aarch64-darwin | |
extra-platforms = x86_64-darwin aarch64-darwin | |
''; | |
}; | |
nixpkgs = { | |
config = { | |
allowUnfree = true; | |
allowUnsupportedSystem = false; | |
}; | |
overlays = [ ]; | |
}; | |
programs = { }; | |
services = { | |
nix-daemon = { | |
enable = true; | |
logFile = "/var/log/nix-daemon.log"; | |
}; | |
skhd = { | |
enable = true; | |
skhdConfig = ""; | |
}; | |
/* spacebar = { | |
enable = true; | |
package = pkgs.spacebar; | |
config = { | |
position = "top"; | |
display = "main"; | |
height = 34; | |
title = "off"; | |
spaces = "off"; | |
clock = "on"; | |
power = "on"; | |
padding_left = 20; | |
padding_right = 20; | |
spacing_left = 25; | |
spacing_right = 15; | |
text_font = ''"Fisa Code:Regular:12.0"''; | |
icon_font = ''"Font Awesome 6 Free:Solid:12.0"''; | |
background_color = "0xff252423"; | |
foreground_color = "0xffd4be98"; | |
power_icon_color = "0xffa9b665"; | |
battery_icon_color = "0xffa9b665"; | |
dnd_icon_color = "0xffe78a4e"; | |
clock_icon_color = "0xff7daea3"; | |
power_icon_strip = " "; | |
spaces_for_all_displays = "on"; | |
display_separator = "on"; | |
display_separator_icon = ""; | |
clock_icon = ""; | |
dnd_icon = ""; | |
clock_format = ''"%d/%m/%y %R"''; | |
right_shell = "on"; | |
right_shell_icon = ""; | |
right_shell_command = "whoami"; | |
}; | |
extraConfig = ""; | |
}; | |
*/ | |
yabai = { | |
enable = true; | |
config = { }; | |
extraConfig = ""; | |
}; | |
}; | |
# Nix-darwin does not link installed applications to the user environment. This means apps will not show up | |
# in spotlight; and when launched through the dock they come with a terminal window. This is a workaround. | |
# Upstream issue = https://github.com/LnL7/nix-darwin/issues/214 | |
system = { | |
activationScripts = { | |
applications = { | |
text = lib.mkForce '' | |
echo "setting up ~/Applications..." >&2 | |
applications="$HOME/Applications" | |
nix_apps="$applications/Nix Apps" | |
# Needs to be writable by the user so that home-manager can symlink into it | |
if ! test -d "$applications"; then | |
mkdir -p "$applications" | |
chown ${username} = "$applications" | |
chmod u+w "$applications" | |
fi | |
# Delete the directory to remove old links | |
rm -rf "$nix_apps" | |
mkdir -p "$nix_apps" | |
find ${config.system.build.applications}/Applications -maxdepth 1 -type l -exec readlink '{}' + | | |
while read src; do | |
# Spotlight does not recognize symlinks; it will ignore directory we link to the applications folder. | |
# It does understand MacOS aliases though; a unique filesystem feature. Sadly they cannot be created | |
# from bash (as far as I know); so we use the oh-so-great Apple Script instead. | |
/usr/bin/osascript -e " | |
set fileToAlias to POSIX file \"$src\" | |
set applicationsFolder to POSIX file \"$nix_apps\" | |
tell application \"Finder\" | |
make alias file to fileToAlias at applicationsFolder | |
# This renames the alias; 'mpv.app alias' -> 'mpv.app' | |
set name of result to \"$(rev <<< "$src" | cut -d'/' -f1 | rev)\" | |
end tell | |
" 1>/dev/null | |
done | |
''; | |
}; | |
}; | |
stateVersion = stateVersion; | |
defaults = { | |
NSGlobalDomain = { | |
AppleEnableMouseSwipeNavigateWithScrolls = false; | |
AppleEnableSwipeNavigateWithScrolls = false; | |
AppleICUForce24HourTime = false; | |
AppleInterfaceStyle = "Dark"; | |
AppleInterfaceStyleSwitchesAutomatically = false; | |
AppleScrollerPagingBehavior = true; | |
AppleShowAllExtensions = true; | |
AppleShowAllFiles = true; | |
AppleShowScrollBars = "Automatic"; | |
AppleWindowTabbingMode = "always"; | |
NSAutomaticCapitalizationEnabled = false; | |
NSAutomaticDashSubstitutionEnabled = false; | |
NSAutomaticPeriodSubstitutionEnabled = false; | |
NSAutomaticQuoteSubstitutionEnabled = false; | |
NSAutomaticSpellingCorrectionEnabled = false; | |
NSAutomaticWindowAnimationsEnabled = false; | |
NSDocumentSaveNewDocumentsToCloud = false; | |
NSNavPanelExpandedStateForSaveMode = true; | |
NSScrollAnimationEnabled = true; | |
NSTableViewDefaultSizeMode = 1; | |
NSTextShowsControlCharacters = true; | |
NSUseAnimatedFocusRing = false; | |
NSWindowResizeTime = null; | |
PMPrintingExpandedStateForPrint = false; | |
_HIHideMenuBar = false; | |
"com.apple.keyboard.fnState" = false; | |
"com.apple.mouse.tapBehavior" = null; | |
"com.apple.sound.beep.feedback" = 1; | |
"com.apple.springing.delay" = null; | |
"com.apple.springing.enabled" = true; | |
"com.apple.swipescrolldirection" = true; | |
"com.apple.trackpad.enableSecondaryClick" = true; | |
"com.apple.trackpad.scaling" = 1.0; | |
"com.apple.trackpad.trackpadCornerClickBehavior" = 1; | |
}; | |
}; | |
keyboard = { | |
enableKeyMapping = true; | |
remapCapsLockToEscape = true; | |
}; | |
}; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment