diff --git a/Config/Settings/vscode-settings.json b/Common/Config/vscode-settings.json similarity index 98% rename from Config/Settings/vscode-settings.json rename to Common/Config/vscode-settings.json index 44b9ce0..e6ea048 100644 --- a/Config/Settings/vscode-settings.json +++ b/Common/Config/vscode-settings.json @@ -1854,7 +1854,7 @@ "activityBar.inactiveForeground": "#ffffff66", "activityBarBadge.foreground": "#ffffff", "activityBarBadge.background": "#0046cc", - "sideBar.background": "#1d2125", + "sideBar.background": "#000000", "sideBar.foreground": "#f5f5f5", "sideBarSectionHeader.background": "#00000000", "sideBarSectionHeader.foreground": "#cccccc", @@ -1879,11 +1879,11 @@ "statusBarItem.hoverBackground": "#ffffff1f", "statusBar.debuggingBackground": "#cc6633", "statusBar.debuggingForeground": "#ffffff", - "statusBar.noFolderBackground": "#68217a", + "statusBar.noFolderBackground": "#0d0d0c", "statusBar.noFolderForeground": "#ffffff", "statusBarItem.remoteBackground": "#172458", "statusBarItem.remoteForeground": "#ffffff", - "titleBar.activeBackground": "#1d2125", + "titleBar.activeBackground": "#000000", "titleBar.activeForeground": "#cccccc", "titleBar.inactiveBackground": "#3c3c3c99", "titleBar.inactiveForeground": "#cccccc99", @@ -1994,7 +1994,7 @@ "breadcrumb.background": "#171c21", "breadcrumb.foreground": "#cccccccc", "breadcrumb.focusForeground": "#e0e0e0", - "editorGroupHeader.tabsBackground": "#1d2125", + "editorGroupHeader.tabsBackground": "#000000", "tab.activeForeground": "#ffffff", "tab.border": "#252526", "tab.activeBackground": "#2b3845", @@ -2087,7 +2087,7 @@ "settings.headerForeground": "#bbc9d5", "settings.focusedRowBackground": "#ffffff07", "walkThrough.embeddedEditorBackground": "#00000050", - "breadcrumb.activeSelectionForeground": "#e0e0e0", + "breadcrumb.activeSelectionForeground": "#", "editorGutter.commentRangeForeground": "#c5c5c5", "debugExceptionWidget.background": "#333333", "debugExceptionWidget.border": "#474747" @@ -2099,26 +2099,26 @@ "foreground": "#bbc9d5", "focusBorder": "#32373b", - "sideBar.background": "#1d2125", + "sideBar.background": "#000000", "sideBar.foreground": "#f5f5f5", "sideBarSectionHeader.background": "#00000000", "sideBarSectionHeader.foreground": "#cccccc", "sideBarSectionHeader.border": "#cccccc33", "sideBarTitle.foreground": "#bbbbbb", "statusBar.foreground": "#ffffff", - "statusBar.background": "#141d24", + "statusBar.background": "#111111", "statusBarItem.hoverBackground": "#ffffff1f", "statusBar.debuggingBackground": "#cc6633", "statusBar.debuggingForeground": "#ffffff", - "statusBar.noFolderBackground": "#68217a", + "statusBar.noFolderBackground": "#0d0d0c", "statusBar.noFolderForeground": "#ffffff", "statusBarItem.remoteBackground": "#172458", "statusBarItem.remoteForeground": "#ffffff", - "titleBar.activeBackground": "#1d2125", + "titleBar.activeBackground": "#000000", "titleBar.activeForeground": "#cccccc", - "titleBar.inactiveBackground": "#3c3c3c99", + "titleBar.inactiveBackground": "#111111", "titleBar.inactiveForeground": "#cccccc99", - "titleBar.border": "#00000000", + "titleBar.border": "#000000", "menubar.selectionForeground": "#cccccc", "menubar.selectionBackground": "#ffffff1a", "menu.foreground": "#cccccc", @@ -2142,7 +2142,7 @@ "inputOption.activeForeground": "#ffffff", "input.placeholderForeground": "#a6a6a6", "textLink.foreground": "#3794ff", - "editor.background": "#0d1116", + "editor.background": "#101519", "editor.foreground": "#d4d4d4", "editorLineNumber.foreground": "#858585", "editorCursor.foreground": "#aeafad", @@ -2184,7 +2184,7 @@ "editorInfo.foreground": "#75beff", "editorInfo.background": "#4490BF00", "editorInfo.border": "#4490BF00", - "editorGutter.background": "#191d21", + "editorGutter.background": "#121619", "editorGutter.modifiedBackground": "#0c7d9d", "editorGutter.addedBackground": "#587c0c", "editorGutter.deletedBackground": "#94151b", @@ -2223,16 +2223,16 @@ "terminal.ansiRed": "#cd3131", "terminal.ansiWhite": "#e5e5e5", "terminal.ansiYellow": "#e5e510", - "breadcrumb.background": "#171c21", + "breadcrumb.background": "#111111", "breadcrumb.foreground": "#cccccccc", "breadcrumb.focusForeground": "#e0e0e0", - "editorGroupHeader.tabsBackground": "#1d2125", + "editorGroupHeader.tabsBackground": "#000000", "tab.activeForeground": "#ffffff", "tab.border": "#252526", - "tab.activeBackground": "#2b3845", + "tab.activeBackground": "#555555", "tab.activeBorder": "#00000000", "tab.activeBorderTop": "#00000000", - "tab.inactiveBackground": "#19212a", + "tab.inactiveBackground": "#111111", "tab.inactiveForeground": "#ffffff80", "scrollbarSlider.background": "#79797966", "scrollbarSlider.hoverBackground": "#646464b3", @@ -2380,7 +2380,7 @@ "scope": "heading.2.markdown entity.name.section.markdown, heading.2.markdown punctuation.definition.heading.markdown", "settings": { "foreground": "#ff6a00", - "fontStyle": "italic", + "fontStyle": "bold", } }, { @@ -2444,7 +2444,6 @@ "editor.wordWrap": "on", "editor.wrappingIndent": "none", "git.openRepositoryInParentFolders": "always", - "editor.lineNumbers": "off", "editor.guides.indentation": false, "editor.guides.highlightActiveIndentation": false, "editor.occurrencesHighlight": "off", @@ -2460,7 +2459,8 @@ "files.exclude": { "**/.build": true, "**/.swiftpm": true, - "**/.vscode": true + "**/.vscode": true, + "**/.*": true }, "terminal.integrated.defaultProfile.osx": "zsh", "terminal.integrated.enableFileLinks": "notRemote", @@ -2472,5 +2472,8 @@ "terminal.integrated.lineHeight": 1.1, "terminal.integrated.smoothScrolling": true, "editor.fontWeight": "normal", - "workbench.iconTheme": "dobri-theme-icons" + "workbench.iconTheme": "dobri-theme-icons", + "github.copilot.nextEditSuggestions.enabled": true, + "editor.lineNumbers": "off", + "security.workspace.trust.untrustedFiles": "open" } \ No newline at end of file diff --git a/Mac/help.sh b/Common/Path/help.sh similarity index 97% rename from Mac/help.sh rename to Common/Path/help.sh index 78b0329..e727375 100755 --- a/Mac/help.sh +++ b/Common/Path/help.sh @@ -1,4 +1,4 @@ -#!/bin/zsh +#!/bin/bash # # help.sh -- simple instructions on how to use these dotfiles # diff --git a/Common/Path/setup-container.sh b/Common/Path/setup-container.sh new file mode 100755 index 0000000..7af42d5 --- /dev/null +++ b/Common/Path/setup-container.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# setup-container.sh -- use Swift's Containerization / Container package +# +# ============================================================================== + +source ~/.functions +message "setup-container.sh" "Setting up the Swift Containerization environemtn" + +which -s brew &> /dev/null +if [[ $? != 0 ]] ; then + + error "Missing Containerization" "Installing for the first time..." + ## Do stuff to do a fresh install + +else + + message "Found Containerization" "Updating, upgrading, installing Jekyll and others" + ## Do stuff to update + +fi + + +# ============================================================================== +exit 0 diff --git a/Common/Path/setup-ssh-keys.sh b/Common/Path/setup-ssh-keys.sh new file mode 100755 index 0000000..206722a --- /dev/null +++ b/Common/Path/setup-ssh-keys.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# ssh-key-setup.sh -- how to setup the SSH key for a remote server +# +# Import the default functions used in these scripts +source ${HOME}/.functions +message "ssh-key-setup" "Instructions to setup remote password-less SSH login" +# ============================================================================== + + + + + + + + + + +# ============================================================================== +message "All done now! diff --git a/Config/dot-gitignore b/Common/dot-gitignore similarity index 100% rename from Config/dot-gitignore rename to Common/dot-gitignore diff --git a/Config/dot-vimrc b/Common/dot-vimrc similarity index 100% rename from Config/dot-vimrc rename to Common/dot-vimrc diff --git a/Config/Preferences/com.apple.Terminal.plist b/Config/Preferences/com.apple.Terminal.plist deleted file mode 100644 index 5fd3b41..0000000 Binary files a/Config/Preferences/com.apple.Terminal.plist and /dev/null differ diff --git a/Config/Preferences/com.googlecode.iterm2.plist b/Config/Preferences/com.googlecode.iterm2.plist deleted file mode 100644 index 62dac0a..0000000 Binary files a/Config/Preferences/com.googlecode.iterm2.plist and /dev/null differ diff --git a/Config/Settings/vscode-settings2.json b/Config/Settings/vscode-settings2.json deleted file mode 100644 index 6f7fadb..0000000 --- a/Config/Settings/vscode-settings2.json +++ /dev/null @@ -1,2455 +0,0 @@ -{ - "name": "TimTr Default", - "type": "dark", - "semanticHighlighting": true, - "semanticTokenColors": { - "enumMember": { - "foreground": "#aab2c2" - }, - "variable.constant": { - "foreground": "#e7f800" - }, - "variable.defaultLibrary": { - "foreground": "#7b7de5" - } - }, - "tokenColors": [ - { - "name": "unison punctuation", - "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "haskell variable generic-type", - "scope": "variable.other.generic-type.haskell", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "haskell storage type", - "scope": "storage.type.haskell", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "support.variable.magic.python", - "scope": "support.variable.magic.python", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "punctuation.separator.parameters.python", - "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "variable.parameter.function.language.special.self.python", - "scope": "variable.parameter.function.language.special.self.python", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "storage.modifier.lifetime.rust", - "scope": "storage.modifier.lifetime.rust", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "support.function.std.rust", - "scope": "support.function.std.rust", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "entity.name.lifetime.rust", - "scope": "entity.name.lifetime.rust", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "variable.language.rust", - "scope": "variable.language.rust", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "support.constant.edge", - "scope": "support.constant.edge", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "regexp constant character-class", - "scope": "constant.other.character-class.regexp", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "regexp operator.quantifier", - "scope": "keyword.operator.quantifier.regexp", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "punctuation.definition", - "scope": "punctuation.definition.string.begin,punctuation.definition.string.end", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "Text", - "scope": "variable.parameter.function", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Comment Markup Link", - "scope": "comment markup.link", - "settings": { - "foreground": "#76858d" - } - }, - { - "name": "markup diff", - "scope": "markup.changed.diff", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "diff", - "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "inserted.diff", - "scope": "markup.inserted.diff", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "deleted.diff", - "scope": "markup.deleted.diff", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "c++ function", - "scope": "meta.function.c,meta.function.cpp", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "c++ block", - "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "js/ts punctuation separator key-value", - "scope": "punctuation.separator.key-value", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "js/ts import keyword", - "scope": "keyword.operator.expression.import", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "math js/ts", - "scope": "support.constant.math", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "math property js/ts", - "scope": "support.constant.property.math", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "js/ts variable.other.constant", - "scope": "variable.other.constant", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "java type", - "scope": [ - "storage.type.annotation.java", - "storage.type.object.array.java" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "java source", - "scope": "source.java", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "java modifier.import", - "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "java modifier.import", - "scope": "meta.method.java", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "java modifier.import", - "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "java instanceof", - "scope": "keyword.operator.instanceof.java", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "java variable.name", - "scope": "meta.definition.variable.name.java", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "operator logical", - "scope": "keyword.operator.logical", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "operator bitwise", - "scope": "keyword.operator.bitwise", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "operator channel", - "scope": "keyword.operator.channel", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "support.constant.property-value.scss", - "scope": "support.constant.property-value.scss,support.constant.property-value.css", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "CSS/SCSS/LESS Operators", - "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "css color standard name", - "scope": "support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "css comma", - "scope": "punctuation.separator.list.comma.css", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "css attribute-name.id", - "scope": "support.constant.color.w3c-standard-color-name.css", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "css property-name", - "scope": "support.type.vendored.property-name.css", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "js/ts module", - "scope": "support.module.node,support.type.object.module,support.module.node", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "entity.name.type.module", - "scope": "entity.name.type.module", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "js variable readwrite", - "scope": "variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "js/ts json", - "scope": "support.constant.json", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "js/ts Keyword", - "scope": [ - "keyword.operator.expression.instanceof", - "keyword.operator.new", - "keyword.operator.ternary", - "keyword.operator.optional", - "keyword.operator.expression.keyof" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "js/ts console", - "scope": "support.type.object.console", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "js/ts support.variable.property.process", - "scope": "support.variable.property.process", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "js console function", - "scope": "entity.name.function,support.function.console", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "keyword.operator.misc.rust", - "scope": "keyword.operator.misc.rust", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "keyword.operator.sigil.rust", - "scope": "keyword.operator.sigil.rust", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "operator", - "scope": "keyword.operator.delete", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "js dom", - "scope": "support.type.object.dom", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "js dom variable", - "scope": "support.variable.dom,support.variable.property.dom", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "keyword.operator", - "scope": "keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "C operator assignment", - "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Punctuation", - "scope": "punctuation.separator.delimiter", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Other punctuation .c", - "scope": "punctuation.separator.c,punctuation.separator.cpp", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "C type posix-reserved", - "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "keyword.operator.sizeof.c", - "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "python parameter", - "scope": "variable.parameter.function.language.python", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "python type", - "scope": "support.type.python", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "python logical", - "scope": "keyword.operator.logical.python", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "pyCs", - "scope": "variable.parameter.function.python", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "python block", - "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "python function-call.generic", - "scope": "meta.function-call.generic.python", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "python placeholder reset to normal string", - "scope": "constant.character.format.placeholder.other.python", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Operators", - "scope": "keyword.operator", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Compound Assignment Operators", - "scope": "keyword.operator.assignment.compound", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Compound Assignment Operators js/ts", - "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Keywords", - "scope": "keyword", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Namespaces", - "scope": "entity.name.namespace", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Variables", - "scope": "variable", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Variables", - "scope": "variable.c", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Language variables", - "scope": "variable.language", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Java Variables", - "scope": "token.variable.parameter.java", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Java Imports", - "scope": "import.storage.java", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Packages", - "scope": "token.package.keyword", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Packages", - "scope": "token.package", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Functions", - "scope": [ - "entity.name.function", - "meta.require", - "support.function.any-method", - "variable.function" - ], - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "Classes", - "scope": "entity.name.type.namespace", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Classes", - "scope": "support.class, entity.name.type.class", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Class name", - "scope": "entity.name.class.identifier.namespace.type", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Class name", - "scope": [ - "entity.name.class", - "variable.other.class.js", - "variable.other.class.ts" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Class name php", - "scope": "variable.other.class.php", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Type Name", - "scope": "entity.name.type", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Keyword Control", - "scope": "keyword.control", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Control Elements", - "scope": "control.elements, keyword.operator.less", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Methods", - "scope": "keyword.other.special-method", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "Storage", - "scope": "storage", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Storage JS TS", - "scope": "token.storage", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void", - "scope": "keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Java Storage", - "scope": "token.storage.type.java", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Support", - "scope": "support.function", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Support type", - "scope": "support.type.property-name", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Support type", - "scope": "support.constant.property-value", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Support type", - "scope": "support.constant.font-name", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Meta tag", - "scope": "meta.tag", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Strings", - "scope": "string", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "Inherited Class", - "scope": "entity.other.inherited-class", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Constant other symbol", - "scope": "constant.other.symbol", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Integers", - "scope": "constant.numeric", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Constants", - "scope": "constant", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Constants", - "scope": "punctuation.definition.constant", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Tags", - "scope": "entity.name.tag", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Attributes", - "scope": "entity.other.attribute-name", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Attribute IDs", - "scope": "entity.other.attribute-name.id", - "settings": { - "fontStyle": "normal", - "foreground": "#88f817" - } - }, - { - "name": "Attribute class", - "scope": "entity.other.attribute-name.class.css", - "settings": { - "fontStyle": "normal", - "foreground": "#e7f800" - } - }, - { - "name": "Selector", - "scope": "meta.selector", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Headings", - "scope": "markup.heading", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Headings", - "scope": "markup.heading punctuation.definition.heading, entity.name.section", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "Units", - "scope": "keyword.other.unit", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Bold", - "scope": "markup.bold,todo.bold", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "Bold", - "scope": "punctuation.definition.bold", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "markup Italic", - "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "emphasis md", - "scope": "emphasis md", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown headings", - "scope": "entity.name.section.markdown", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown heading Punctuation Definition", - "scope": "punctuation.definition.heading.markdown", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "punctuation.definition.list.begin.markdown", - "scope": "punctuation.definition.list.begin.markdown", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown heading setext", - "scope": "markup.heading.setext", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Bold", - "scope": "punctuation.definition.bold.markdown", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Inline Raw", - "scope": "markup.inline.raw.markdown", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Inline Raw", - "scope": "markup.inline.raw.string.markdown", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown List Punctuation Definition", - "scope": "punctuation.definition.list.markdown", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String", - "scope": [ - "punctuation.definition.string.begin.markdown", - "punctuation.definition.string.end.markdown", - "punctuation.definition.metadata.markdown" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "beginning.punctuation.definition.list.markdown", - "scope": [ - "beginning.punctuation.definition.list.markdown" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Link", - "scope": "punctuation.definition.metadata.markdown", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Underline Link/Image", - "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Link Title/Description", - "scope": "string.other.link.title.markdown,string.other.link.description.markdown", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "Regular Expressions", - "scope": "string.regexp", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Escape Characters", - "scope": "constant.character.escape", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Embedded", - "scope": "punctuation.section.embedded, variable.interpolation", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Embedded", - "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "illegal", - "scope": "invalid.illegal", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "illegal", - "scope": "invalid.illegal.bad-ampersand.html", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Broken", - "scope": "invalid.broken", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Deprecated", - "scope": "invalid.deprecated", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Unimplemented", - "scope": "invalid.unimplemented", - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > String Quoted Json", - "scope": "source.json meta.structure.dictionary.json > string.quoted.json", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String", - "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation", - "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json", - "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "[VSCODE-CUSTOM] JSON Property Name", - "scope": "support.type.property-name.json", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "[VSCODE-CUSTOM] JSON Punctuation for Property Name", - "scope": "support.type.property-name.json punctuation", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "laravel blade tag", - "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "laravel blade @", - "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "use statement for other classes", - "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "error suppression", - "scope": "keyword.operator.error-control.php", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "php instanceof", - "scope": "keyword.operator.type.php", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "style double quoted array index normal begin", - "scope": "punctuation.section.array.begin.php", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "style double quoted array index normal end", - "scope": "punctuation.section.array.end.php", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "php illegal.non-null-typehinted", - "scope": "invalid.illegal.non-null-typehinted.php", - "settings": { - "foreground": "#f44747" - } - }, - { - "name": "php types", - "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "php call-function", - "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "php function-resets", - "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "support php constants", - "scope": "support.constant.core.rust", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "support php constants", - "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "php goto", - "scope": "entity.name.goto-label.php,support.other.php", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "php logical/bitwise operator", - "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "php regexp operator", - "scope": "keyword.operator.regexp.php", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "php comparison", - "scope": "keyword.operator.comparison.php", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "php heredoc/nowdoc", - "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "python function decorator @", - "scope": "meta.function.decorator.python", - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "python function support", - "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "parameter function js/ts", - "scope": "function.parameter", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "brace function", - "scope": "function.brace", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "parameter function ruby cs", - "scope": "function.parameter.ruby, function.parameter.cs", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "constant.language.symbol.ruby", - "scope": "constant.language.symbol.ruby", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "rgb-value", - "scope": "rgb-value", - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "rgb value", - "scope": "inline-color-decoration rgb-value", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "rgb value less", - "scope": "less rgb-value", - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "sass selector", - "scope": "selector.sass", - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "ts primitive/builtin types", - "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "block scope", - "scope": "block.scope.end,block.scope.begin", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "cs storage type", - "scope": "storage.type.cs", - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "cs local variable", - "scope": "entity.name.variable.local.cs", - "settings": { - "foreground": "#ff9300" - } - }, - { - "scope": "token.info-token", - "settings": { - "foreground": "#88f817" - } - }, - { - "scope": "token.warn-token", - "settings": { - "foreground": "#e7f800" - } - }, - { - "scope": "token.error-token", - "settings": { - "foreground": "#f44747" - } - }, - { - "scope": "token.debug-token", - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "String interpolation", - "scope": [ - "punctuation.definition.template-expression.begin", - "punctuation.definition.template-expression.end", - "punctuation.section.embedded" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Reset JavaScript string interpolation expression", - "scope": [ - "meta.template.expression" - ], - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Import module JS", - "scope": [ - "keyword.operator.module" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "js Flowtype", - "scope": [ - "support.type.type.flowtype" - ], - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "js Flow", - "scope": [ - "support.type.primitive" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "js class prop", - "scope": [ - "meta.property.object" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "js func parameter", - "scope": [ - "variable.parameter.function.js" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "js template literals begin", - "scope": [ - "keyword.other.template.begin" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "js template literals end", - "scope": [ - "keyword.other.template.end" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "js template literals variable braces begin", - "scope": [ - "keyword.other.substitution.begin" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "js template literals variable braces end", - "scope": [ - "keyword.other.substitution.end" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "js operator.assignment", - "scope": [ - "keyword.operator.assignment" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "go operator", - "scope": [ - "keyword.operator.assignment.go" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "go operator", - "scope": [ - "keyword.operator.arithmetic.go", - "keyword.operator.address.go" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "Go package name", - "scope": [ - "entity.name.package.go" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "elm prelude", - "scope": [ - "support.type.prelude.elm" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "elm constant", - "scope": [ - "support.constant.elm" - ], - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "template literal", - "scope": [ - "punctuation.quasi.element" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "html/pug (jade) escaped characters and entities", - "scope": [ - "constant.character.entity" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour", - "scope": [ - "entity.other.attribute-name.pseudo-element", - "entity.other.attribute-name.pseudo-class" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "Clojure globals", - "scope": [ - "entity.global.clojure" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Clojure symbols", - "scope": [ - "meta.symbol.clojure" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Clojure constants", - "scope": [ - "constant.keyword.clojure" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "CoffeeScript Function Argument", - "scope": [ - "meta.arguments.coffee", - "variable.parameter.function.coffee" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Ini Default Text", - "scope": [ - "source.ini" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "Makefile prerequisities", - "scope": [ - "meta.scope.prerequisites.makefile" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Makefile text colour", - "scope": [ - "source.makefile" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Groovy import names", - "scope": [ - "storage.modifier.import.groovy" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Groovy Methods", - "scope": [ - "meta.method.groovy" - ], - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "Groovy Variables", - "scope": [ - "meta.definition.variable.name.groovy" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "Groovy Inheritance", - "scope": [ - "meta.definition.class.inherited.classes.groovy" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "HLSL Semantic", - "scope": [ - "support.variable.semantic.hlsl" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "HLSL Types", - "scope": [ - "support.type.texture.hlsl", - "support.type.sampler.hlsl", - "support.type.object.hlsl", - "support.type.object.rw.hlsl", - "support.type.fx.hlsl", - "support.type.object.hlsl" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "SQL Variables", - "scope": [ - "text.variable", - "text.bracketed" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "types", - "scope": [ - "support.type.swift", - "support.type.vb.asp" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "heading 1, keyword", - "scope": [ - "entity.name.function.xi" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "heading 2, callable", - "scope": [ - "entity.name.class.xi" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "heading 3, property", - "scope": [ - "constant.character.character-class.regexp.xi" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "heading 4, type, class, interface", - "scope": [ - "constant.regexp.xi" - ], - "settings": { - "foreground": "#17b3f8" - } - }, - { - "name": "heading 5, enums, preprocessor, constant, decorator", - "scope": [ - "keyword.control.xi" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "heading 6, number", - "scope": [ - "invalid.xi" - ], - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "string", - "scope": [ - "beginning.punctuation.definition.quote.markdown.xi" - ], - "settings": { - "foreground": "#f70b0b" - } - }, - { - "name": "comments", - "scope": [ - "beginning.punctuation.definition.list.markdown.xi" - ], - "settings": { - "foreground": "#76858d" - } - }, - { - "name": "link", - "scope": [ - "constant.character.xi" - ], - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "accent", - "scope": [ - "accent.xi" - ], - "settings": { - "foreground": "#88f817" - } - }, - { - "name": "wikiword", - "scope": [ - "wikiword.xi" - ], - "settings": { - "foreground": "#e7f800" - } - }, - { - "name": "language operators like '+', '-' etc", - "scope": [ - "constant.other.color.rgb-value.xi" - ], - "settings": { - "foreground": "#ffffff" - } - }, - { - "name": "elements to dim", - "scope": [ - "punctuation.definition.tag.xi" - ], - "settings": { - "foreground": "#76858d" - } - }, - { - "name": "C++/C#", - "scope": [ - "entity.name.label.cs", - "entity.name.scope-resolution.function.call", - "entity.name.scope-resolution.function.definition" - ], - "settings": { - "foreground": "#7b7de5" - } - }, - { - "name": "Markdown underscore-style headers", - "scope": [ - "entity.name.label.cs", - "markup.heading.setext.1.markdown", - "markup.heading.setext.2.markdown" - ], - "settings": { - "foreground": "#ff9300" - } - }, - { - "name": "meta.brace.square", - "scope": [ - " meta.brace.square" - ], - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "name": "Comments", - "scope": "comment, punctuation.definition.comment", - "settings": { - "fontStyle": "italic", - "foreground": "#76858d" - } - }, - { - "name": "[VSCODE-CUSTOM] Markdown Quote", - "scope": "markup.quote.markdown", - "settings": { - "foreground": "#76858d" - } - }, - { - "name": "punctuation.definition.block.sequence.item.yaml", - "scope": "punctuation.definition.block.sequence.item.yaml", - "settings": { - "foreground": "#d4d4d4" - } - }, - { - "scope": [ - "constant.language.symbol.elixir" - ], - "settings": { - "foreground": "#aab2c2" - } - }, - { - "name": "js/ts italic", - "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "comment", - "scope": "comment.line.double-slash,comment.block.documentation", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "Python Keyword Control", - "scope": "keyword.control.import.python,keyword.control.flow.python", - "settings": { - "fontStyle": "italic" - } - }, - { - "name": "markup.italic.markdown", - "scope": "markup.italic.markdown", - "settings": { - "fontStyle": "italic" - } - } - ], - "colors": { - "foreground": "#bbc9d5", - "focusBorder": "#32373b", - "selection.background": "#db6015", - "scrollbar.shadow": "#2e2a2a", - "activityBar.foreground": "#ffffff", - "activityBar.background": "#1d1b1b", - "activityBar.inactiveForeground": "#ffffff66", - "activityBarBadge.foreground": "#ffffff", - "activityBarBadge.background": "#0046cc", - "sideBar.background": "#1d2125", - "sideBar.foreground": "#f5f5f5", - "sideBarSectionHeader.background": "#00000000", - "sideBarSectionHeader.foreground": "#cccccc", - "sideBarSectionHeader.border": "#cccccc33", - "sideBarTitle.foreground": "#bbbbbb", - "list.inactiveSelectionBackground": "#37373d", - "list.inactiveSelectionForeground": "#cccccc", - "list.hoverBackground": "#2a2d2e", - "list.hoverForeground": "#cccccc", - "list.activeSelectionBackground": "#582b0c", - "list.activeSelectionForeground": "#ffffff", - "tree.indentGuidesStroke": "#585858", - "list.dropBackground": "#383b3d", - "list.highlightForeground": "#a2c6de", - "list.focusBackground": "#292938", - "list.focusForeground": "#cccccc", - "listFilterWidget.background": "#582b0c", - "listFilterWidget.outline": "#00000000", - "listFilterWidget.noMatchesOutline": "#be1100", - "statusBar.foreground": "#ffffff", - "statusBar.background": "#141d24", - "statusBarItem.hoverBackground": "#ffffff1f", - "statusBar.debuggingBackground": "#cc6633", - "statusBar.debuggingForeground": "#ffffff", - "statusBar.noFolderBackground": "#68217a", - "statusBar.noFolderForeground": "#ffffff", - "statusBarItem.remoteBackground": "#172458", - "statusBarItem.remoteForeground": "#ffffff", - "titleBar.activeBackground": "#1d2125", - "titleBar.activeForeground": "#cccccc", - "titleBar.inactiveBackground": "#3c3c3c99", - "titleBar.inactiveForeground": "#cccccc99", - "titleBar.border": "#00000000", - "menubar.selectionForeground": "#cccccc", - "menubar.selectionBackground": "#ffffff1a", - "menu.foreground": "#cccccc", - "menu.background": "#252526", - "menu.selectionForeground": "#ffffff", - "menu.selectionBackground": "#094771", - "menu.selectionBorder": "#00000000", - "menu.separatorBackground": "#bbbbbb", - "menu.border": "#00000085", - "button.background": "#0e639c", - "button.foreground": "#ffffff", - "button.hoverBackground": "#1177bb", - "button.secondaryForeground": "#ffffff", - "button.secondaryBackground": "#3a3d41", - "button.secondaryHoverBackground": "#45494e", - "input.background": "#3c3c3c", - "input.border": "#00000000", - "input.foreground": "#cccccc", - "inputOption.activeBackground": "#007fd466", - "inputOption.activeBorder": "#007acc00", - "inputOption.activeForeground": "#ffffff", - "input.placeholderForeground": "#a6a6a6", - "textLink.foreground": "#3794ff", - "editor.background": "#121212", - "editor.foreground": "#d4d4d4", - "editorLineNumber.foreground": "#858585", - "editorCursor.foreground": "#aeafad", - "editorCursor.background": "#000000", - "editor.selectionBackground": "#264f78", - "editor.inactiveSelectionBackground": "#3a3d41", - "editorWhitespace.foreground": "#e3e4e229", - "editor.selectionHighlightBackground": "#add6ff26", - "editor.selectionHighlightBorder": "#495F77", - "editor.findMatchBackground": "#515c6a", - "editor.findMatchBorder": "#74879f", - "editor.findMatchHighlightBackground": "#ea5c0055", - "editor.findMatchHighlightBorder": "#ffffff00", - "editor.findRangeHighlightBackground": "#3a3d4166", - "editor.findRangeHighlightBorder": "#ffffff00", - "editor.rangeHighlightBackground": "#ffffff0b", - "editor.rangeHighlightBorder": "#ffffff00", - "editor.hoverHighlightBackground": "#264f7840", - "editor.wordHighlightStrongBackground": "#004972b8", - "editor.wordHighlightBackground": "#575757b8", - "editor.lineHighlightBackground": "#ffffff0A", - "editor.lineHighlightBorder": "#282828", - "editorLineNumber.activeForeground": "#c6c6c6", - "editorLink.activeForeground": "#4e94ce", - "editorIndentGuide.background": "#404040", - "editorIndentGuide.activeBackground": "#707070", - "editorRuler.foreground": "#5a5a5a", - "editorBracketMatch.background": "#0064001a", - "editorBracketMatch.border": "#888888", - "editor.foldBackground": "#264f784d", - "editorOverviewRuler.background": "#25252500", - "editorOverviewRuler.border": "#7f7f7f4d", - "editorError.foreground": "#f48771", - "editorError.background": "#B73A3400", - "editorError.border": "#ffffff00", - "editorWarning.foreground": "#cca700", - "editorWarning.background": "#A9904000", - "editorWarning.border": "#ffffff00", - "editorInfo.foreground": "#75beff", - "editorInfo.background": "#4490BF00", - "editorInfo.border": "#4490BF00", - "editorGutter.background": "#191d21", - "editorGutter.modifiedBackground": "#0c7d9d", - "editorGutter.addedBackground": "#587c0c", - "editorGutter.deletedBackground": "#94151b", - "editorGutter.foldingControlForeground": "#c5c5c5", - "editorCodeLens.foreground": "#999999", - "editorGroup.border": "#444444", - "diffEditor.insertedTextBackground": "#9bb95533", - "diffEditor.removedTextBackground": "#ff000033", - "diffEditor.border": "#444444", - "panel.background": "#1e1e1e", - "panel.border": "#80808059", - "panelTitle.activeBorder": "#e7e7e7", - "panelTitle.activeForeground": "#e7e7e7", - "panelTitle.inactiveForeground": "#e7e7e799", - "badge.background": "#4d4d4d", - "badge.foreground": "#ffffff", - "terminal.foreground": "#cccccc", - "terminal.selectionBackground": "#ffffff40", - "terminalCursor.background": "#0087FF", - "terminalCursor.foreground": "#ffffff", - "terminal.border": "#80808059", - "terminal.ansiBlack": "#000000", - "terminal.ansiBlue": "#2472c8", - "terminal.ansiBrightBlack": "#666666", - "terminal.ansiBrightBlue": "#3b8eea", - "terminal.ansiBrightCyan": "#29b8db", - "terminal.ansiBrightGreen": "#23d18b", - "terminal.ansiBrightMagenta": "#d670d6", - "terminal.ansiBrightRed": "#f14c4c", - "terminal.ansiBrightWhite": "#e5e5e5", - "terminal.ansiBrightYellow": "#f5f543", - "terminal.ansiCyan": "#11a8cd", - "terminal.ansiGreen": "#0dbc79", - "terminal.ansiMagenta": "#bc3fbc", - "terminal.ansiRed": "#cd3131", - "terminal.ansiWhite": "#e5e5e5", - "terminal.ansiYellow": "#e5e510", - "breadcrumb.background": "#171c21", - "breadcrumb.foreground": "#cccccccc", - "breadcrumb.focusForeground": "#e0e0e0", - "editorGroupHeader.tabsBackground": "#1d2125", - "tab.activeForeground": "#ffffff", - "tab.border": "#252526", - "tab.activeBackground": "#2b3845", - "tab.activeBorder": "#00000000", - "tab.activeBorderTop": "#00000000", - "tab.inactiveBackground": "#19212a", - "tab.inactiveForeground": "#ffffff80", - "scrollbarSlider.background": "#79797966", - "scrollbarSlider.hoverBackground": "#646464b3", - "scrollbarSlider.activeBackground": "#bfbfbf66", - "progressBar.background": "#0e70c0", - "widget.shadow": "#0000005c", - "editorWidget.foreground": "#cccccc", - "editorWidget.background": "#252526", - "editorWidget.resizeBorder": "#5F5F5F", - "pickerGroup.border": "#3f3f46", - "pickerGroup.foreground": "#3794ff", - "debugToolBar.background": "#333333", - "debugToolBar.border": "#474747", - "notifications.foreground": "#cccccc", - "notifications.background": "#252526", - "notificationToast.border": "#474747", - "notificationsErrorIcon.foreground": "#f48771", - "notificationsWarningIcon.foreground": "#cca700", - "notificationsInfoIcon.foreground": "#75beff", - "notificationCenter.border": "#474747", - "notificationCenterHeader.foreground": "#cccccc", - "notificationCenterHeader.background": "#303031", - "notifications.border": "#303031", - "gitDecoration.addedResourceForeground": "#81b88b", - "gitDecoration.conflictingResourceForeground": "#6c6cc4", - "gitDecoration.deletedResourceForeground": "#c74e39", - "gitDecoration.ignoredResourceForeground": "#8c8c8c", - "gitDecoration.modifiedResourceForeground": "#e2c08d", - "gitDecoration.stageDeletedResourceForeground": "#c74e39", - "gitDecoration.stageModifiedResourceForeground": "#e2c08d", - "gitDecoration.submoduleResourceForeground": "#8db9e2", - "gitDecoration.untrackedResourceForeground": "#73c991", - "editorMarkerNavigation.background": "#2d2d30", - "editorMarkerNavigationError.background": "#f48771", - "editorMarkerNavigationWarning.background": "#cca700", - "editorMarkerNavigationInfo.background": "#75beff", - "merge.currentHeaderBackground": "#367366", - "merge.currentContentBackground": "#27403B", - "merge.incomingHeaderBackground": "#395F8F", - "merge.incomingContentBackground": "#28384B", - "merge.commonHeaderBackground": "#383838", - "merge.commonContentBackground": "#282828", - "editorSuggestWidget.background": "#252526", - "editorSuggestWidget.border": "#454545", - "editorSuggestWidget.foreground": "#d4d4d4", - "editorSuggestWidget.highlightForeground": "#0097fb", - "editorSuggestWidget.selectedBackground": "#062f4a", - "editorHoverWidget.foreground": "#cccccc", - "editorHoverWidget.background": "#252526", - "editorHoverWidget.border": "#454545", - "peekView.border": "#007acc", - "peekViewEditor.background": "#001f33", - "peekViewEditorGutter.background": "#001f33", - "peekViewEditor.matchHighlightBackground": "#ff8f0099", - "peekViewEditor.matchHighlightBorder": "#ee931e", - "peekViewResult.background": "#252526", - "peekViewResult.fileForeground": "#ffffff", - "peekViewResult.lineForeground": "#bbbbbb", - "peekViewResult.matchHighlightBackground": "#ea5c004d", - "peekViewResult.selectionBackground": "#3399ff33", - "peekViewResult.selectionForeground": "#ffffff", - "peekViewTitle.background": "#1e1e1e", - "peekViewTitleDescription.foreground": "#ccccccb3", - "peekViewTitleLabel.foreground": "#ffffff", - "icon.foreground": "#bbc9d5", - "checkbox.background": "#3c3c3c", - "checkbox.foreground": "#cccccc", - "checkbox.border": "#00000000", - "dropdown.background": "#3c3c3c", - "dropdown.foreground": "#cccccc", - "dropdown.border": "#00000000", - "minimapGutter.addedBackground": "#587c0c", - "minimapGutter.modifiedBackground": "#0c7d9d", - "minimapGutter.deletedBackground": "#94151b", - "minimap.findMatchHighlight": "#515c6a", - "minimap.selectionHighlight": "#264f78", - "minimap.errorHighlight": "#f48771", - "minimap.warningHighlight": "#cca700", - "minimap.background": "#121212", - "sideBar.dropBackground": "#383b3d", - "editorGroup.emptyBackground": "#121212", - "panelSection.border": "#80808059", - "statusBarItem.activeBackground": "#FFFFFF25", - "settings.headerForeground": "#bbc9d5", - "settings.focusedRowBackground": "#ffffff07", - "walkThrough.embeddedEditorBackground": "#00000050", - "breadcrumb.activeSelectionForeground": "#e0e0e0", - "editorGutter.commentRangeForeground": "#c5c5c5", - "debugExceptionWidget.background": "#333333", - "debugExceptionWidget.border": "#474747" - }, - "editor.minimap.enabled": false, - "__comment": "Below this line are manual customizations ***********", - "workbench.colorCustomizations": - { - - "foreground": "#bbc9d5", - "focusBorder": "#32373b", - "sideBar.background": "#1d2125", - "sideBar.foreground": "#f5f5f5", - "sideBarSectionHeader.background": "#00000000", - "sideBarSectionHeader.foreground": "#cccccc", - "sideBarSectionHeader.border": "#cccccc33", - "sideBarTitle.foreground": "#bbbbbb", - "statusBar.foreground": "#ffffff", - "statusBar.background": "#141d24", - "statusBarItem.hoverBackground": "#ffffff1f", - "statusBar.debuggingBackground": "#cc6633", - "statusBar.debuggingForeground": "#ffffff", - "statusBar.noFolderBackground": "#68217a", - "statusBar.noFolderForeground": "#ffffff", - "statusBarItem.remoteBackground": "#172458", - "statusBarItem.remoteForeground": "#ffffff", - "titleBar.activeBackground": "#1d2125", - "titleBar.activeForeground": "#cccccc", - "titleBar.inactiveBackground": "#3c3c3c99", - "titleBar.inactiveForeground": "#cccccc99", - "titleBar.border": "#00000000", - "menubar.selectionForeground": "#cccccc", - "menubar.selectionBackground": "#ffffff1a", - "menu.foreground": "#cccccc", - "menu.background": "#252526", - "menu.selectionForeground": "#ffffff", - "menu.selectionBackground": "#094771", - "menu.selectionBorder": "#00000000", - "menu.separatorBackground": "#bbbbbb", - "menu.border": "#00000085", - "button.background": "#0e639c", - "button.foreground": "#ffffff", - "button.hoverBackground": "#1177bb", - "button.secondaryForeground": "#ffffff", - "button.secondaryBackground": "#3a3d41", - "button.secondaryHoverBackground": "#45494e", - "input.background": "#3c3c3c", - "input.border": "#00000000", - "input.foreground": "#cccccc", - "inputOption.activeBackground": "#007fd466", - "inputOption.activeBorder": "#007acc00", - "inputOption.activeForeground": "#ffffff", - "input.placeholderForeground": "#a6a6a6", - "textLink.foreground": "#3794ff", - "editor.background": "#0d1116", - "editor.foreground": "#d4d4d4", - "editorLineNumber.foreground": "#858585", - "editorCursor.foreground": "#aeafad", - "editorCursor.background": "#000000", - "editor.selectionBackground": "#264f78", - "editor.inactiveSelectionBackground": "#3a3d41", - "editorWhitespace.foreground": "#e3e4e229", - "editor.selectionHighlightBackground": "#add6ff26", - "editor.selectionHighlightBorder": "#495F77", - "editor.findMatchBackground": "#515c6a", - "editor.findMatchBorder": "#74879f", - "editor.findMatchHighlightBackground": "#ea5c0055", - "editor.findMatchHighlightBorder": "#ffffff00", - "editor.findRangeHighlightBackground": "#3a3d4166", - "editor.findRangeHighlightBorder": "#ffffff00", - "editor.rangeHighlightBackground": "#ffffff0b", - "editor.rangeHighlightBorder": "#ffffff00", - "editor.hoverHighlightBackground": "#264f7840", - "editor.wordHighlightStrongBackground": "#004972b8", - "editor.wordHighlightBackground": "#575757b8", - "editor.lineHighlightBackground": "#ffffff0A", - "editor.lineHighlightBorder": "#282828", - "editorLineNumber.activeForeground": "#c6c6c6", - "editorLink.activeForeground": "#4e94ce", - "editorIndentGuide.background1": "#404040", - "editorIndentGuide.activeBackground1": "#707070", - "editorRuler.foreground": "#5a5a5a", - "editorBracketMatch.background": "#0064001a", - "editorBracketMatch.border": "#888888", - "editor.foldBackground": "#264f784d", - "editorOverviewRuler.background": "#25252500", - "editorOverviewRuler.border": "#7f7f7f4d", - "editorError.foreground": "#f48771", - "editorError.background": "#B73A3400", - "editorError.border": "#ffffff00", - "editorWarning.foreground": "#cca700", - "editorWarning.background": "#A9904000", - "editorWarning.border": "#ffffff00", - "editorInfo.foreground": "#75beff", - "editorInfo.background": "#4490BF00", - "editorInfo.border": "#4490BF00", - "editorGutter.background": "#191d21", - "editorGutter.modifiedBackground": "#0c7d9d", - "editorGutter.addedBackground": "#587c0c", - "editorGutter.deletedBackground": "#94151b", - "editorGutter.foldingControlForeground": "#c5c5c5", - "editorCodeLens.foreground": "#999999", - "editorGroup.border": "#444444", - "diffEditor.insertedTextBackground": "#9bb95533", - "diffEditor.removedTextBackground": "#ff000033", - "diffEditor.border": "#444444", - "panel.background": "#1e1e1e", - "panel.border": "#80808059", - "panelTitle.activeBorder": "#e7e7e7", - "panelTitle.activeForeground": "#e7e7e7", - "panelTitle.inactiveForeground": "#e7e7e799", - "badge.background": "#4d4d4d", - "badge.foreground": "#ffffff", - "terminal.foreground": "#7c8590", - "terminal.background": "#020408", - "terminal.selectionBackground": "#ffffff40", - "terminalCursor.background": "#0087FF", - "terminalCursor.foreground": "#ffffff", - "terminal.border": "#1e1f1e59", - "terminal.ansiBlack": "#000000", - "terminal.ansiBlue": "#2472c8", - "terminal.ansiBrightBlack": "#666666", - "terminal.ansiBrightBlue": "#3b8eea", - "terminal.ansiBrightCyan": "#29b8db", - "terminal.ansiBrightGreen": "#23d18b", - "terminal.ansiBrightMagenta": "#d670d6", - "terminal.ansiBrightRed": "#f14c4c", - "terminal.ansiBrightWhite": "#e5e5e5", - "terminal.ansiBrightYellow": "#f5f543", - "terminal.ansiCyan": "#11a8cd", - "terminal.ansiGreen": "#0dbc79", - "terminal.ansiMagenta": "#bc3fbc", - "terminal.ansiRed": "#cd3131", - "terminal.ansiWhite": "#e5e5e5", - "terminal.ansiYellow": "#e5e510", - "breadcrumb.background": "#171c21", - "breadcrumb.foreground": "#cccccccc", - "breadcrumb.focusForeground": "#e0e0e0", - "editorGroupHeader.tabsBackground": "#1d2125", - "tab.activeForeground": "#ffffff", - "tab.border": "#252526", - "tab.activeBackground": "#2b3845", - "tab.activeBorder": "#00000000", - "tab.activeBorderTop": "#00000000", - "tab.inactiveBackground": "#19212a", - "tab.inactiveForeground": "#ffffff80", - "scrollbarSlider.background": "#79797966", - "scrollbarSlider.hoverBackground": "#646464b3", - "scrollbarSlider.activeBackground": "#bfbfbf66", - "progressBar.background": "#0e70c0", - "widget.shadow": "#0000005c", - "editorWidget.foreground": "#cccccc", - "editorWidget.background": "#252526", - "editorWidget.resizeBorder": "#5F5F5F", - "pickerGroup.border": "#3f3f46", - "pickerGroup.foreground": "#3794ff", - "debugToolBar.background": "#333333", - "debugToolBar.border": "#474747", - "notifications.foreground": "#cccccc", - "notifications.background": "#252526", - "notificationToast.border": "#474747", - "notificationsErrorIcon.foreground": "#f48771", - "notificationsWarningIcon.foreground": "#cca700", - "notificationsInfoIcon.foreground": "#75beff", - "notificationCenter.border": "#474747", - "notificationCenterHeader.foreground": "#cccccc", - "notificationCenterHeader.background": "#303031", - "notifications.border": "#303031", - "gitDecoration.addedResourceForeground": "#81b88b", - "gitDecoration.conflictingResourceForeground": "#6c6cc4", - "gitDecoration.deletedResourceForeground": "#c74e39", - "gitDecoration.ignoredResourceForeground": "#8c8c8c", - "gitDecoration.modifiedResourceForeground": "#e2c08d", - "gitDecoration.stageDeletedResourceForeground": "#c74e39", - "gitDecoration.stageModifiedResourceForeground": "#e2c08d", - "gitDecoration.submoduleResourceForeground": "#8db9e2", - "gitDecoration.untrackedResourceForeground": "#73c991", - "editorMarkerNavigation.background": "#2d2d30", - "editorMarkerNavigationError.background": "#f48771", - "editorMarkerNavigationWarning.background": "#cca700", - "editorMarkerNavigationInfo.background": "#75beff", - "merge.currentHeaderBackground": "#367366", - "merge.currentContentBackground": "#27403B", - "merge.incomingHeaderBackground": "#395F8F", - "merge.incomingContentBackground": "#28384B", - "merge.commonHeaderBackground": "#383838", - "merge.commonContentBackground": "#282828", - "editorSuggestWidget.background": "#252526", - "editorSuggestWidget.border": "#454545", - "editorSuggestWidget.foreground": "#d4d4d4", - "editorSuggestWidget.highlightForeground": "#0097fb", - "editorSuggestWidget.selectedBackground": "#062f4a", - "editorHoverWidget.foreground": "#cccccc", - "editorHoverWidget.background": "#252526", - "editorHoverWidget.border": "#454545", - "peekView.border": "#007acc", - "peekViewEditor.background": "#001f33", - "peekViewEditorGutter.background": "#001f33", - "peekViewEditor.matchHighlightBackground": "#ff8f0099", - "peekViewEditor.matchHighlightBorder": "#ee931e", - "peekViewResult.background": "#252526", - "peekViewResult.fileForeground": "#ffffff", - "peekViewResult.lineForeground": "#bbbbbb", - "peekViewResult.matchHighlightBackground": "#ea5c004d", - "peekViewResult.selectionBackground": "#3399ff33", - "peekViewResult.selectionForeground": "#ffffff", - "peekViewTitle.background": "#1e1e1e", - "peekViewTitleDescription.foreground": "#ccccccb3", - "peekViewTitleLabel.foreground": "#ffffff", - "icon.foreground": "#bbc9d5", - "checkbox.background": "#3c3c3c", - "checkbox.foreground": "#cccccc", - "checkbox.border": "#00000000", - "dropdown.background": "#3c3c3c", - "dropdown.foreground": "#cccccc", - "dropdown.border": "#00000000", - "minimapGutter.addedBackground": "#587c0c", - "minimapGutter.modifiedBackground": "#0c7d9d", - "minimapGutter.deletedBackground": "#94151b", - "minimap.findMatchHighlight": "#515c6a", - "minimap.selectionHighlight": "#264f78", - "minimap.errorHighlight": "#f48771", - "minimap.warningHighlight": "#cca700", - "minimap.background": "#121212", - "sideBar.dropBackground": "#383b3d", - "editorGroup.emptyBackground": "#121212", - "panelSection.border": "#80808059", - "statusBarItem.activeBackground": "#FFFFFF25", - "settings.headerForeground": "#bbc9d5", - "settings.focusedRowBackground": "#ffffff07", - "walkThrough.embeddedEditorBackground": "#00000050", - "breadcrumb.activeSelectionForeground": "#e0e0e0", - "editorGutter.commentRangeForeground": "#c5c5c5", - "debugExceptionWidget.background": "#333333", - "debugExceptionWidget.border": "#474747" - }, - "editor.tokenColorCustomizations": { - "comments": "#777575", - "strings": "#ff791b", - "keywords": "#17b3f8", - "functions": "#93ec7f", - "numbers": "#2f00ff", - "types": "#e3d74b", - "variables": "#00c3ff", - - "textMateRules": [ - { - "scope": [ - "support.type.property-name.json", - "entity.name.tag.html" - ], - "settings": { - "foreground": "#92c061" - } - }, - { - "scope": [ - "entity.name.command.shell", - "support.function.any-method.swift", - "keyword.control.public.swift" - ], - "settings": { - "foreground": "#6686de" - } - }, - { - "scope": [ - "meta.definition.type.body.swift" - ], - "settings": { - "foreground": "#a0b3bb" - } - }, - { - "scope": [ - "entity.name.type.struct.swift", - ], - "settings": { - "foreground": "#e63ede" - } - }, - { - "scope": "heading.1.markdown entity.name.section.markdown, heading.1.markdown punctuation.definition.heading.markdown", - "settings": { - "foreground": "#ff6a00", - "fontStyle": "bold", - } - }, - { - "scope": "heading.2.markdown entity.name.section.markdown, heading.2.markdown punctuation.definition.heading.markdown", - "settings": { - "foreground": "#ff6a00", - "fontStyle": "italic", - } - }, - { - "scope": "heading.3.markdown entity.name.section.markdown, heading.3.markdown punctuation.definition.heading.markdown", - "settings": { - "foreground": "#ff6a00", - "fontStyle": "normal", - } - }, - { - "scope": "heading.4.markdown entity.name.section.markdown, heading.4.markdown punctuation.definition.heading.markdown", - "settings": { - "foreground": "#ff6a00", - "fontStyle": "normal", - } - }, - { "scope": "markup.underline.link.markdown", "settings": { "foreground": "#1bc4de", } - }, - { "scope": "punctuation.definition.list.begin.markdown", "settings": { "foreground": "#FFED9D", } - }, - { "scope": "entity.name.section.markdown", "settings": { "fontStyle": "bold underline", } - }, - { - "scope": "string.other.link.title.markdown", - "settings": { - "foreground": "#d1dc53", - "fontStyle": "italic bold", - } - }, - { - "scope": "punctuation.definition.metadata.markdown", - "settings": { - "foreground": "#e761dc", - } - }, - { - "scope": [ - "entity.name.type.class.swift", - ], - "settings": { - "foreground": "#b244d7" - } - } - - ] - }, - "editor.semanticTokenColorCustomizations": { - "rules": { - "class": { - "foreground": "#ff9999" - } - } - }, - "window.zoomLevel": 1, - "editor.showFoldingControls": "never", - "editor.fontSize": 14, - "workbench.fontAliasing": "antialiased", - "editor.fontFamily": "SF Mono, Menlo, Monaco, 'Courier New', monospace", - "git.autofetch": true, - "githubPullRequests.fileListLayout": "tree", - "githubPullRequests.useReviewMode": "auto", - "editor.wordWrap": "on", - "editor.wrappingIndent": "none", - "git.openRepositoryInParentFolders": "always", - "workbench.colorTheme": "GitHub Dark Default", - "editor.lineNumbers": "on", - "editor.guides.indentation": false, - "editor.guides.highlightActiveIndentation": false, - "editor.occurrencesHighlight": "off", - "editor.renderLineHighlightOnlyWhenFocus": true, - "editor.selectionHighlight": false -} \ No newline at end of file diff --git a/Config/Xcode/TimTr Dark.xccolortheme b/Config/Xcode/TimTr Dark.xccolortheme deleted file mode 100644 index 7cccb74..0000000 --- a/Config/Xcode/TimTr Dark.xccolortheme +++ /dev/null @@ -1,234 +0,0 @@ - - - - - DVTConsoleDebuggerInputTextColor - 0.629499 0.595809 0.998957 1 - DVTConsoleDebuggerInputTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleDebuggerOutputTextColor - 0.88176 0.87387 0.892097 1 - DVTConsoleDebuggerOutputTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleDebuggerPromptTextColor - 0.776651 0.796145 0.778473 1 - DVTConsoleDebuggerPromptTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleExectuableInputTextColor - 0.986042 0 0.0946885 1 - DVTConsoleExectuableInputTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleExectuableOutputTextColor - 0.17236 0.910542 0.998932 1 - DVTConsoleExectuableOutputTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleTextBackgroundColor - 0.064263 0.067871 0.0815955 1 - DVTConsoleTextInsertionPointColor - 1 1 1 1 - DVTConsoleTextSelectionColor - 0.397 0.397 0.302 1 - DVTFontAndColorVersion - 1 - DVTFontSizeModifier - 1 - DVTLineSpacing - 1.1000000238418579 - DVTMarkupTextBackgroundColor - 0.153318 0.157241 0.177321 1 - DVTMarkupTextBorderColor - 0.221053 0.224662 0.243136 1 - DVTMarkupTextCodeFont - SFMono-Regular - 12.0 - DVTMarkupTextEmphasisColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextEmphasisFont - .SFNS-RegularItalic - 15.0 - DVTMarkupTextInlineCodeColor - 0.42772 0.465692 0.465582 0.7 - DVTMarkupTextLinkColor - 0.1 0.1 0.819 1 - DVTMarkupTextLinkFont - .SFNS-Regular - 15.0 - DVTMarkupTextNormalColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextNormalFont - .SFNS-Regular - 15.0 - DVTMarkupTextOtherHeadingColor - 0.42772 0.465692 0.465582 0.5 - DVTMarkupTextOtherHeadingFont - .SFNS-Regular - 20.2 - DVTMarkupTextPrimaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextPrimaryHeadingFont - .SFNS-Regular - 33.2 - DVTMarkupTextSecondaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextSecondaryHeadingFont - .SFNS-Regular - 25.4 - DVTMarkupTextStrongColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextStrongFont - .SFNS-Bold - 15.0 - DVTScrollbarMarkerAnalyzerColor - 0.403922 0.372549 1 1 - DVTScrollbarMarkerBreakpointColor - 0.290196 0.290196 0.968627 1 - DVTScrollbarMarkerDiffColor - 0.556863 0.556863 0.556863 1 - DVTScrollbarMarkerDiffConflictColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerErrorColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerRuntimeIssueColor - 0.643137 0.509804 1 1 - DVTScrollbarMarkerWarningColor - 0.937255 0.717647 0.34902 1 - DVTSourceTextBackground - 0.0645066 0.0645066 0.0645066 1 - DVTSourceTextBlockDimBackgroundColor - 0.5 0.5 0.5 1 - DVTSourceTextCurrentLineHighlightColor - 0.106591 0.120683 0.136839 1 - DVTSourceTextInsertionPointColor - 1 1 1 1 - DVTSourceTextInvisiblesColor - 0.5 0.5 0.5 1 - DVTSourceTextSelectionColor - 0.0382766 0.143328 0.350102 1 - DVTSourceTextSyntaxColors - - xcode.syntax.attribute - 0.145098 0.568627 0.52549 1 - xcode.syntax.character - 0.845619 0.845619 0.845619 1 - xcode.syntax.comment - 0.27182 0.289624 0.39479 1 - xcode.syntax.comment.doc - 0.262099 0.4621 0.495959 1 - xcode.syntax.comment.doc.keyword - 0.424672 0.424672 0.424672 1 - xcode.syntax.declaration.other - 0.963669 0.71655 0.466212 1 - xcode.syntax.declaration.type - 0.963669 0.71655 0.466212 1 - xcode.syntax.identifier.class - 0.713704 0.249773 0.707592 1 - xcode.syntax.identifier.class.system - 0.886388 0.983859 0 1 - xcode.syntax.identifier.constant - 0.875867 0.548301 0.784713 1 - xcode.syntax.identifier.constant.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.function - 0.915091 0.478554 0.845259 1 - xcode.syntax.identifier.function.system - 0.886388 0.983859 0 1 - xcode.syntax.identifier.macro - 0.92549 0.415686 0.384314 1 - xcode.syntax.identifier.macro.system - 0.92549 0.415686 0.384314 1 - xcode.syntax.identifier.type - 0.587517 0.206665 0.58352 1 - xcode.syntax.identifier.type.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.variable - 0.719135 0.4568 0.617874 1 - xcode.syntax.identifier.variable.system - 0.427451 0.67451 1 1 - xcode.syntax.keyword - 0.114574 0.633574 0.964563 1 - xcode.syntax.mark - 0.323259 0.92111 0.232525 1 - xcode.syntax.markup.code - 0.665 0.052 0.569 1 - xcode.syntax.number - 0.191379 0.822222 0.361929 1 - xcode.syntax.plain - 0.682131 0.74416 0.798634 1 - xcode.syntax.preprocessor - 0.825736 0.675904 0.162883 1 - xcode.syntax.regex - 0 0.976153 1 1 - xcode.syntax.regex.capturename - 0.560922 0.340188 0.63728 1 - xcode.syntax.regex.charname - 0.427451 0.67451 1 1 - xcode.syntax.regex.number - 0.445898 0.967334 0.999197 1 - xcode.syntax.regex.other - 0.731204 0.763292 0.842913 1 - xcode.syntax.string - 0.987517 0.322992 0.0290003 1 - xcode.syntax.url - 0.186306 0.478119 0.849336 1 - - DVTSourceTextSyntaxFonts - - xcode.syntax.attribute - SFMono-Regular - 16.0 - xcode.syntax.character - SFMono-Light - 16.0 - xcode.syntax.comment - SFMono-LightItalic - 16.0 - xcode.syntax.comment.doc - SFMono-LightItalic - 16.0 - xcode.syntax.comment.doc.keyword - SFMono-Semibold - 16.0 - xcode.syntax.declaration.other - SFMono-MediumItalic - 16.0 - xcode.syntax.declaration.type - SFMono-MediumItalic - 16.0 - xcode.syntax.identifier.class - SFMono-Semibold - 16.0 - xcode.syntax.identifier.class.system - SFMono-SemiboldItalic - 16.0 - xcode.syntax.identifier.constant - SFMono-Light - 16.0 - xcode.syntax.identifier.constant.system - SFMono-Medium - 16.0 - xcode.syntax.identifier.function - SFMono-Medium - 16.0 - xcode.syntax.identifier.function.system - SFMono-Medium - 16.0 - xcode.syntax.identifier.macro - SFMono-Light - 16.0 - xcode.syntax.identifier.macro.system - SFMono-Light - 16.0 - xcode.syntax.identifier.type - SFMono-Semibold - 16.0 - xcode.syntax.identifier.type.system - SFMono-Medium - 16.0 - xcode.syntax.identifier.variable - SFMono-Medium - 16.0 - xcode.syntax.identifier.variable.system - SFMono-Medium - 16.0 - xcode.syntax.keyword - SFMono-Light - 16.0 - xcode.syntax.mark - SFMono-Semibold - 16.0 - xcode.syntax.markup.code - SFMono-Light - 16.0 - xcode.syntax.number - SFMono-Medium - 16.0 - xcode.syntax.plain - SFMono-Light - 16.0 - xcode.syntax.preprocessor - SFMono-Light - 16.0 - xcode.syntax.regex - SFMono-Light - 16.0 - xcode.syntax.regex.capturename - SFMono-Light - 16.0 - xcode.syntax.regex.charname - SFMono-Light - 16.0 - xcode.syntax.regex.number - SFMono-Light - 16.0 - xcode.syntax.regex.other - SFMono-Light - 16.0 - xcode.syntax.string - SFMono-LightItalic - 16.0 - xcode.syntax.url - SFMono-LightItalic - 16.0 - - - diff --git a/Config/Xcode/TimTr Grey.xccolortheme b/Config/Xcode/TimTr Grey.xccolortheme deleted file mode 100644 index 68c94ee..0000000 --- a/Config/Xcode/TimTr Grey.xccolortheme +++ /dev/null @@ -1,234 +0,0 @@ - - - - - DVTConsoleDebuggerInputTextColor - 0.962371 0 0.202292 1 - DVTConsoleDebuggerInputTextFont - SFMono-Regular - 16.0 - DVTConsoleDebuggerOutputTextColor - 0.265953 0.766255 0.295905 1 - DVTConsoleDebuggerOutputTextFont - SFMono-Regular - 16.0 - DVTConsoleDebuggerPromptTextColor - 0 0 0 1 - DVTConsoleDebuggerPromptTextFont - SFMono-Regular - 16.0 - DVTConsoleExectuableInputTextColor - 0.121328 0.484181 0.744579 1 - DVTConsoleExectuableInputTextFont - SFMono-RegularItalic - 16.0 - DVTConsoleExectuableOutputTextColor - 0.239254 0.150996 0.696956 1 - DVTConsoleExectuableOutputTextFont - SFMono-SemiboldItalic - 16.0 - DVTConsoleTextBackgroundColor - 0.761289 0.771976 0.78238 1 - DVTConsoleTextInsertionPointColor - 1 1 1 1 - DVTConsoleTextSelectionColor - 0.397 0.397 0.302 1 - DVTFontAndColorVersion - 1 - DVTFontSizeModifier - 3 - DVTLineSpacing - 1.1000000238418579 - DVTMarkupTextBackgroundColor - 0.153318 0.157241 0.177321 1 - DVTMarkupTextBorderColor - 0.221053 0.224662 0.243136 1 - DVTMarkupTextCodeFont - SFMono-Regular - 14.0 - DVTMarkupTextEmphasisColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextEmphasisFont - .SFNS-RegularItalic - 15.0 - DVTMarkupTextInlineCodeColor - 0.42772 0.465692 0.465582 0.7 - DVTMarkupTextLinkColor - 0.1 0.1 0.819 1 - DVTMarkupTextLinkFont - .SFNS-Regular - 15.0 - DVTMarkupTextNormalColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextNormalFont - .SFNS-Regular - 15.0 - DVTMarkupTextOtherHeadingColor - 0.42772 0.465692 0.465582 0.5 - DVTMarkupTextOtherHeadingFont - .SFNS-Regular - 20.2 - DVTMarkupTextPrimaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextPrimaryHeadingFont - .SFNS-Regular - 33.2 - DVTMarkupTextSecondaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextSecondaryHeadingFont - .SFNS-Regular - 25.4 - DVTMarkupTextStrongColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextStrongFont - .SFNS-Bold - 15.0 - DVTScrollbarMarkerAnalyzerColor - 0.403922 0.372549 1 1 - DVTScrollbarMarkerBreakpointColor - 0.290196 0.290196 0.968627 1 - DVTScrollbarMarkerDiffColor - 0.556863 0.556863 0.556863 1 - DVTScrollbarMarkerDiffConflictColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerErrorColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerRuntimeIssueColor - 0.643137 0.509804 1 1 - DVTScrollbarMarkerWarningColor - 0.937255 0.717647 0.34902 1 - DVTSourceTextBackground - 0.888571 0.88112 0.894161 1 - DVTSourceTextBlockDimBackgroundColor - 0.5 0.5 0.5 1 - DVTSourceTextCurrentLineHighlightColor - 0.856627 0.859469 0.830862 1 - DVTSourceTextInsertionPointColor - 0.347281 0.472149 1 1 - DVTSourceTextInvisiblesColor - 0.5 0.5 0.5 1 - DVTSourceTextSelectionColor - 0.544452 0.750691 0.863803 1 - DVTSourceTextSyntaxColors - - xcode.syntax.attribute - 0.145098 0.568627 0.52549 1 - xcode.syntax.character - 0.872111 0.0395974 0.0383149 1 - xcode.syntax.comment - 0.471746 0.527245 0.527245 1 - xcode.syntax.comment.doc - 0.433176 0.429703 0.435783 1 - xcode.syntax.comment.doc.keyword - 0.224989 0.336844 0.480074 1 - xcode.syntax.declaration.other - 0.0588235 0.407843 0.627451 1 - xcode.syntax.declaration.type - 0.0431373 0.309804 0.47451 1 - xcode.syntax.identifier.class - 0.0687206 0.366902 0.0816858 1 - xcode.syntax.identifier.class.system - 0 0.36348 0.343376 1 - xcode.syntax.identifier.constant - 0.0687206 0.366902 0.0816858 1 - xcode.syntax.identifier.constant.system - 0 0.36348 0.343376 1 - xcode.syntax.identifier.function - 0.0687206 0.366902 0.0816858 1 - xcode.syntax.identifier.function.system - 0 0.36348 0.343376 1 - xcode.syntax.identifier.macro - 0.658637 0.41042 0.239777 1 - xcode.syntax.identifier.macro.system - 0.550008 0.344646 0.209343 1 - xcode.syntax.identifier.type - 0.0687206 0.366902 0.0816858 1 - xcode.syntax.identifier.type.system - 0 0.36348 0.343376 1 - xcode.syntax.identifier.variable - 0.0687206 0.366902 0.0816858 1 - xcode.syntax.identifier.variable.system - 0 0.36348 0.343376 1 - xcode.syntax.keyword - 0.196328 0.318187 0.44559 1 - xcode.syntax.mark - 0.290196 0.333333 0.376471 1 - xcode.syntax.markup.code - 0.665 0.052 0.569 1 - xcode.syntax.number - 0 0.650529 0.000448474 1 - xcode.syntax.plain - 0.150211 0.164023 0.164023 1 - xcode.syntax.preprocessor - 0.600971 0.0751941 0.0631112 1 - xcode.syntax.regex - 0.77 0.102 0.086 1 - xcode.syntax.regex.capturename - 0.194184 0.429349 0.454553 1 - xcode.syntax.regex.charname - 0.421903 0.212783 0.663785 1 - xcode.syntax.regex.number - 0.11 0 0.81 1 - xcode.syntax.regex.other - 0 0 0 0.85 - xcode.syntax.string - 0.872111 0.0395974 0.0383149 1 - xcode.syntax.url - 0.273306 0.321671 0.77764 1 - - DVTSourceTextSyntaxFonts - - xcode.syntax.attribute - SFMono-Regular - 16.0 - xcode.syntax.character - SFMono-Regular - 16.0 - xcode.syntax.comment - SFMono-RegularItalic - 16.0 - xcode.syntax.comment.doc - SFMono-RegularItalic - 16.0 - xcode.syntax.comment.doc.keyword - SFMono-Semibold - 16.0 - xcode.syntax.declaration.other - SFMono-Regular - 16.0 - xcode.syntax.declaration.type - SFMono-Regular - 16.0 - xcode.syntax.identifier.class - SFMono-Regular - 16.0 - xcode.syntax.identifier.class.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.constant - SFMono-SemiboldItalic - 16.0 - xcode.syntax.identifier.constant.system - SFMono-SemiboldItalic - 16.0 - xcode.syntax.identifier.function - SFMono-Regular - 16.0 - xcode.syntax.identifier.function.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.macro - SFMono-Regular - 16.0 - xcode.syntax.identifier.macro.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.type - SFMono-Regular - 16.0 - xcode.syntax.identifier.type.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.variable - SFMono-Regular - 16.0 - xcode.syntax.identifier.variable.system - SFMono-Regular - 16.0 - xcode.syntax.keyword - SFMono-Semibold - 16.0 - xcode.syntax.mark - SFMono-Bold - 16.0 - xcode.syntax.markup.code - SFMono-Regular - 16.0 - xcode.syntax.number - SFMono-Regular - 16.0 - xcode.syntax.plain - SFMono-Regular - 16.0 - xcode.syntax.preprocessor - SFMono-Regular - 16.0 - xcode.syntax.regex - SFMono-Regular - 16.0 - xcode.syntax.regex.capturename - SFMono-Regular - 16.0 - xcode.syntax.regex.charname - SFMono-Regular - 16.0 - xcode.syntax.regex.number - SFMono-Regular - 16.0 - xcode.syntax.regex.other - SFMono-Regular - 16.0 - xcode.syntax.string - SFMono-Regular - 16.0 - xcode.syntax.url - SFMono-Regular - 16.0 - - - diff --git a/Config/Xcode/TimTr Lighthaus.xccolortheme b/Config/Xcode/TimTr Lighthaus.xccolortheme deleted file mode 100644 index 3fe82e0..0000000 --- a/Config/Xcode/TimTr Lighthaus.xccolortheme +++ /dev/null @@ -1,232 +0,0 @@ - - - - - DVTConsoleDebuggerInputTextColor - 0.629499 0.595809 0.998957 1 - DVTConsoleDebuggerInputTextFont - SFMono-Bold - 15.0 - DVTConsoleDebuggerOutputTextColor - 0.88176 0.87387 0.892097 1 - DVTConsoleDebuggerOutputTextFont - SFMono-Regular - 15.0 - DVTConsoleDebuggerPromptTextColor - 0.776651 0.796145 0.778473 1 - DVTConsoleDebuggerPromptTextFont - SFMono-Bold - 15.0 - DVTConsoleExectuableInputTextColor - 0.986042 0 0.0946885 1 - DVTConsoleExectuableInputTextFont - SFMono-Regular - 15.0 - DVTConsoleExectuableOutputTextColor - 0.17236 0.910542 0.998932 1 - DVTConsoleExectuableOutputTextFont - SFMono-RegularItalic - 15.0 - DVTConsoleTextBackgroundColor - 0.118 0.125 0.157 1 - DVTConsoleTextInsertionPointColor - 1 1 1 1 - DVTConsoleTextSelectionColor - 0.397 0.397 0.302 1 - DVTFontAndColorVersion - 1 - DVTLineSpacing - 1.1000000238418579 - DVTMarkupTextBackgroundColor - 0.153318 0.157241 0.177321 1 - DVTMarkupTextBorderColor - 0.221053 0.224662 0.243136 1 - DVTMarkupTextCodeFont - SFMono-Regular - 15.0 - DVTMarkupTextEmphasisColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextEmphasisFont - .SFNS-RegularItalic - 15.0 - DVTMarkupTextInlineCodeColor - 0.42772 0.465692 0.465582 0.7 - DVTMarkupTextLinkColor - 0.1 0.1 0.819 1 - DVTMarkupTextLinkFont - .SFNS-Regular - 15.0 - DVTMarkupTextNormalColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextNormalFont - .SFNS-Regular - 15.0 - DVTMarkupTextOtherHeadingColor - 0.42772 0.465692 0.465582 0.5 - DVTMarkupTextOtherHeadingFont - .SFNS-Regular - 20.2 - DVTMarkupTextPrimaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextPrimaryHeadingFont - .SFNS-Regular - 33.2 - DVTMarkupTextSecondaryHeadingColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextSecondaryHeadingFont - .SFNS-Regular - 25.4 - DVTMarkupTextStrongColor - 0.42772 0.465692 0.465582 1 - DVTMarkupTextStrongFont - .SFNS-Bold - 15.0 - DVTScrollbarMarkerAnalyzerColor - 0.403922 0.372549 1 1 - DVTScrollbarMarkerBreakpointColor - 0.290196 0.290196 0.968627 1 - DVTScrollbarMarkerDiffColor - 0.556863 0.556863 0.556863 1 - DVTScrollbarMarkerDiffConflictColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerErrorColor - 0.968627 0.290196 0.290196 1 - DVTScrollbarMarkerRuntimeIssueColor - 0.643137 0.509804 1 1 - DVTScrollbarMarkerWarningColor - 0.937255 0.717647 0.34902 1 - DVTSourceTextBackground - 0.0736967 0.0726692 0.0908933 1 - DVTSourceTextBlockDimBackgroundColor - 0.5 0.5 0.5 1 - DVTSourceTextCurrentLineHighlightColor - 0.0981913 0.0971052 0.124926 1 - DVTSourceTextInsertionPointColor - 1 1 1 1 - DVTSourceTextInvisiblesColor - 0.5 0.5 0.5 1 - DVTSourceTextSelectionColor - 0.197624 0.195012 0.260953 1 - DVTSourceTextSyntaxColors - - xcode.syntax.attribute - 0.145098 0.568627 0.52549 1 - xcode.syntax.character - 1 1 1 1 - xcode.syntax.comment - 0.325604 0.376022 0.399204 1 - xcode.syntax.comment.doc - 0.427072 0.4949 0.526111 1 - xcode.syntax.comment.doc.keyword - 0.0449826 0.373004 0.838549 1 - xcode.syntax.declaration.other - 0.254902 0.631373 0.752941 1 - xcode.syntax.declaration.type - 0.362946 0.846428 0.998966 1 - xcode.syntax.identifier.class - 0.870588 0.517647 0.984314 1 - xcode.syntax.identifier.class.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.constant - 0.870588 0.517647 0.984314 1 - xcode.syntax.identifier.constant.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.function - 0.870588 0.517647 0.984314 1 - xcode.syntax.identifier.function.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.macro - 0.92549 0.415686 0.384314 1 - xcode.syntax.identifier.macro.system - 0.92549 0.415686 0.384314 1 - xcode.syntax.identifier.type - 0.870588 0.517647 0.984314 1 - xcode.syntax.identifier.type.system - 0.427451 0.67451 1 1 - xcode.syntax.identifier.variable - 0.870588 0.517647 0.984314 1 - xcode.syntax.identifier.variable.system - 0.427451 0.67451 1 1 - xcode.syntax.keyword - 0.417513 0.774071 0.606108 1 - xcode.syntax.mark - 0.572549 0.631373 0.694118 1 - xcode.syntax.markup.code - 0.665 0.052 0.569 1 - xcode.syntax.number - 0.445898 0.967334 0.999197 1 - xcode.syntax.plain - 0.992471 0.980096 0.852306 1 - xcode.syntax.preprocessor - 0.979069 0.930697 0.464634 1 - xcode.syntax.regex - 0.769443 0.291108 0.113752 1 - xcode.syntax.regex.capturename - 0.870588 0.517647 0.984314 1 - xcode.syntax.regex.charname - 0.427451 0.67451 1 1 - xcode.syntax.regex.number - 0.445898 0.967334 0.999197 1 - xcode.syntax.regex.other - 0.992471 0.980096 0.852306 1 - xcode.syntax.string - 0.769443 0.291108 0.113752 1 - xcode.syntax.url - 0.335283 0.388522 0.941505 1 - - DVTSourceTextSyntaxFonts - - xcode.syntax.attribute - SFMono-Regular - 16.0 - xcode.syntax.character - SFMono-Regular - 16.0 - xcode.syntax.comment - SFMono-LightItalic - 16.0 - xcode.syntax.comment.doc - SFMono-Semibold - 16.0 - xcode.syntax.comment.doc.keyword - SFMono-Semibold - 16.0 - xcode.syntax.declaration.other - SFMono-Medium - 16.0 - xcode.syntax.declaration.type - SFMono-Medium - 16.0 - xcode.syntax.identifier.class - SFMono-Regular - 16.0 - xcode.syntax.identifier.class.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.constant - SFMono-Regular - 16.0 - xcode.syntax.identifier.constant.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.function - SFMono-Regular - 16.0 - xcode.syntax.identifier.function.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.macro - SFMono-SemiboldItalic - 16.0 - xcode.syntax.identifier.macro.system - SFMono-Semibold - 16.0 - xcode.syntax.identifier.type - SFMono-Regular - 16.0 - xcode.syntax.identifier.type.system - SFMono-Regular - 16.0 - xcode.syntax.identifier.variable - SFMono-Regular - 16.0 - xcode.syntax.identifier.variable.system - SFMono-Regular - 16.0 - xcode.syntax.keyword - SFMono-Regular - 16.0 - xcode.syntax.mark - SFMono-Bold - 16.0 - xcode.syntax.markup.code - SFMono-Medium - 16.0 - xcode.syntax.number - SFMono-Semibold - 16.0 - xcode.syntax.plain - SFMono-Regular - 16.0 - xcode.syntax.preprocessor - SFMono-Regular - 16.0 - xcode.syntax.regex - SFMono-Regular - 16.0 - xcode.syntax.regex.capturename - SFMono-Regular - 16.0 - xcode.syntax.regex.charname - SFMono-Regular - 16.0 - xcode.syntax.regex.number - SFMono-Regular - 16.0 - xcode.syntax.regex.other - SFMono-Regular - 16.0 - xcode.syntax.string - SFMono-RegularItalic - 16.0 - xcode.syntax.url - SFMono-RegularItalic - 16.0 - - - diff --git a/Docs/todo.md b/Docs/changelog.md similarity index 81% rename from Docs/todo.md rename to Docs/changelog.md index 8e0661f..73f1bae 100644 --- a/Docs/todo.md +++ b/Docs/changelog.md @@ -1,13 +1,9 @@ # TODO items for dotfiles project -- Add basic support for Linux -- Git tool to use `~/Documents` instead of the `~/Work` for custom code signing -- Report current ruby, swift, python, and Homebrew versions on setup -- Function to delete `./DS_Store` files recursively down a folder structure - -## Done +- [Almost done] Move PATH files to `/usr/local/bin/$USER` and don't put dotfiles themselves directly into the PATH anymore. This allows files to be created on-the-fly into the PATH, and not put into a folder that may be under source control. +- Git tool to use `~/Documents` instead of the `~/Work` for custom code signing - Verify that re-running `dotfiles.sh` from anywhere resets the setup - Put Dotfiles as the source for PATH - no extra copy in `~/Developer` - Move everything from the `./Mac/` subfolder to the root - Linux remains diff --git a/Docs/container.md b/Docs/container.md new file mode 100644 index 0000000..0e78e77 --- /dev/null +++ b/Docs/container.md @@ -0,0 +1,11 @@ +# Explain how to use containers + +Tool project: [https://github.com/apple/container](https://github.com/apple/container) +Framework: [https://github.com/apple/containerization](https://github.com/apple/containerization) + +todo + + +// end of file. + + diff --git a/Docs/index.md b/Docs/index.md index 9018362..0e85114 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -1,12 +1,24 @@ -# TimTr dotfiles documentation +# TimTr Dotfiles documentation + +This is the `index.md` file in the `./dotfiles/Docs/` directory. +**Updated November 1, 2025.** + +NOTE: This is presently for testing purposes as the GitHub Pages documentation is being produced with the `index.md` file rendered from the root. Working to adjust that. -This is the `index.md` file within the docs ## Table of Contents +- [Overview](./overview.html) +- [Commands](./commands.html) +- [Change Log](./changelog.html) +- [Container](./container.html) +- [Mac(./mac.html) +- [Linux](./linux.html) + ### Credits +None yet. // end of file. diff --git a/Docs/linux.md b/Docs/linux.md new file mode 100644 index 0000000..55a2380 --- /dev/null +++ b/Docs/linux.md @@ -0,0 +1,9 @@ +# Linux detailed instructions for dotfiles + +So far testing with Ubuntu 25 using [VirtualBuddy](https://github.com/insidegui/VirtualBuddy) on macOS. + +todo + + + +// end of file. diff --git a/Docs/mac.md b/Docs/mac.md new file mode 100644 index 0000000..004e9ef --- /dev/null +++ b/Docs/mac.md @@ -0,0 +1,8 @@ +# Mac detailed instructions for dotfiles + +todo + + + + +// end of file. diff --git a/DotRunner/Source/DotRunner.swift b/DotRunner/Source/DotRunner.swift index 78a0e84..5fafa90 100644 --- a/DotRunner/Source/DotRunner.swift +++ b/DotRunner/Source/DotRunner.swift @@ -1,16 +1,20 @@ // DotRunner.swift -@main -struct FizzBuzz { + +/** This is a header doc section of comments + this is a test + only a test + */ +@main struct FizzBuzz { static func main() { print("\n >>>> Calling fizzBuzzSimple: \n") for count in 1...100 { - print ("\(fizzBuzzSimple(count))") + print("\(fizzBuzzSimple(count))") } print( "\n\n >>>> Calling fizzBuzzSwitch: \n") for count in 1...100 { - print ("\(fizzBuzzSwitch(count))") + print("\(fizzBuzzSwitch(count))") } print("\n >>>> Finished FizzBuzz.swift via SwiftPM \n"); diff --git a/Mac/clean.sh b/Linux/Path/reset.sh similarity index 95% rename from Mac/clean.sh rename to Linux/Path/reset.sh index dc98e2d..865eef6 100755 --- a/Mac/clean.sh +++ b/Linux/Path/reset.sh @@ -6,7 +6,7 @@ # Import the default functions used in these scripts source ${HOME}/.functions -message "clean.sh" "Reset caches and preferences" +message "reset.sh" "Reset caches and preferences" # ============================================================================== diff --git a/Linux/dot-aliases.sh b/Linux/dot-aliases.sh index c27772c..976d0c6 100755 --- a/Linux/dot-aliases.sh +++ b/Linux/dot-aliases.sh @@ -1,4 +1,6 @@ -# source this file into .zshrc +# source this file into .bashrc + +# Linux version if [[ -v LOADED_ALIAS ]]; then return; fi LOADED_ALIAS=true @@ -7,22 +9,9 @@ LOADED_ALIAS=true # =========================================== # Aliases -# ... Turn off the Quarantine Bit for all files in local folder -alias qbit="xattr -d com.apple.quarantine ./*" - -# ... Eject a volume (type the volume name after) -alias eject="hdiutil detach -verbose -force /Volumes/" - # ... Touch the time and date recursively for all files in current folder alias touchall="find . -exec touch {} \;" -# ... Tell Time Machine to use higher CPU priority until reboot -alias time-machine-fast="sudo sysctl debug.lowpri_throttle_enabled=0" - -# launch the iOS Simulator app from the command line -# you can then type "simulator help" or "simulator list" to see more info -alias simulator="xcrun simctl" - # Recursively remove .DS_Store files alias cleanupds="find . -type f -name '*.DS_Store' -ls -delete" @@ -40,28 +29,17 @@ alias mv='mv -v' alias rm='rm -i -v' alias cp='cp -v' -# Use the eza command by default, if installed (better ls) -if ! command -v eza &> /dev/null -then - echo "Tool \`eza\` not found. For a better \`ls\` run: brew install eza" - # Use 'll' to suppress the "show all" flag when listing files - alias ll='ls -oFG --color' - # Use `lls` to do the short form version of `ls1 - alias lls='ls -FG --color' - # Use 'lla' to enable "show all" for hidden files beginning with a period - alias lla='ls -oAFG --color' - # Use 'llx' to see the most info, including extended attributes - alias llx='ls -oAFG --color' - # Use 'llt' to see the files sorted by modification time - alias llt='ls -oAFG --color' - -else - ## Aliasing 'ls' commands to use 'eza' - alias ll='eza --long --sort=Name --git --git-repos -I "Icon?" --group-directories-first --no-quotes --no-permissions --no-user' - alias lla='eza -a --long --sort=Name --git -I "Icon?" -I ".DS_Store" --group-directories-first' - alias llx='eza -a --long --sort=Name --git -I "Icon?" -I ".DS_Store" --group-directories-first -@ -Z' - alias llt='eza --tree' -fi + +# Use 'll' to suppress the "show all" flag when listing files +alias ll='ls -oFG --color' +# Use `lls` to do the short form version of `ls1 +alias lls='ls -FG --color' +# Use 'lla' to enable "show all" for hidden files beginning with a period +alias lla='ls -oAFG --color' +# Use 'llx' to see the most info, including extended attributes +alias llx='ls -oAFG --color' +# Use 'llt' to see the files sorted by modification time +alias llt='ls -oAFG --color' # Git can sometimes create locked files in the .git folder, which then diff --git a/Linux/dot-bashrc.sh b/Linux/dot-bashrc.sh new file mode 100755 index 0000000..4e6cc67 --- /dev/null +++ b/Linux/dot-bashrc.sh @@ -0,0 +1,43 @@ +# .bashrc - Linux - loaded first by bash +# +# Adding the $HOME/bin directory to the PATH +export PATH="$HOME/bin" + +# Add default system PATHs at end of the chain +export PATH="$PATH:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/usr/sbin:/sbin:/snap/bin" + +source $HOME/.aliases +source $HOME/.functions + +# Report tha .bashrc is loading and at what time +TIMENOW=$(date +%d-%m-%Y" "%H:%M:%S) +message "\n .bashrc (or .profile)" "Launched $SHELL' at ${TIMENOW}." + +# Fixes sort order with capital letters first in Linux +export LC_COLLATE="C" + +# Handle some color rules (not sure this is tuned for Linux) +export CLICOLOR=1 +export LSCOLORS=gxFxCxDxbxExBxAxaxaxex +export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=37:cd=34:su=36:sg=36;40:tw=36:ow=36" + +## Parse git branch to put into the prompt +parse_git_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' +} + +# Enable substitutions within the prompt +# setopt PROMPT_SUBST + +# Set the actual prompt +HOSTNAME=$(hostname -s) +NEWLINE=$'\n' +export PS1='${NEWLINE}[\[\e[90m\]${USER} | ${HOSTNAME} |\[\e[91m\] \w\[\e[0m\]\[\e[0m\]] \[\e[34m\]$(parse_git_branch) \[\e[0m ${NEWLINE}[\d \t] \[\e[91m\] ↪ \[\e[0m\] ' + +# Previous (working) prompt +# PS1="\n[\[\033[32m\]\w]\[\033[0m\] \[\033[1;36m\]\u\[\033[1;33m\] > \[\033[0m\]" + + +# ============================================================================== +## Below this line are dynamically added variables and commands +# ============================================================================== diff --git a/Linux/dot-functions.sh b/Linux/dot-functions.sh index 3169d98..a27fe58 100755 --- a/Linux/dot-functions.sh +++ b/Linux/dot-functions.sh @@ -1,26 +1,27 @@ -#!/bin/zsh +# source this file into .bashrc +# +# Linux version -if [[ -v LOADED_FUNCTIONS ]]; then return; fi +if [[ -v LOADED_FUNCTIONS ]]; then return; fi; LOADED_FUNCTIONS=true +# NOTE: some characters will not work within printf functions, e.g. "!" +# error() should report major failures, often ejecting from the script +function error() { printf "\r\033[01;31m [ERROR]\033[00;31m $1 \033[0m \n"; } -# Functions to make output attractive when running the script -# NOTE: some characters in parameters will not work, e.g. "!" +# alert() is extra bright to get attention, but not an error (two parameters) +function alert() { printf "\r\033[00;35m $1\033[0m $2\n"; } -# `message` and `error` take two string parameters -message () { printf "\r [\033[00;32m $1\033[0m ] $2\n" } -error () { printf "\r\033[00;31m ** $1\033[0m - \033[00;31m$2 \033[0m \n" } -alert () { printf "\r\033[00;35m >> $1\033[0m $2\n" } -bullet () { printf "\r\033[00;36m ==\033[0m $1 $2\n" } +# message() as a bright message, and less-bright detail message (two parameters) +function message() { printf "\r\033[00;32m $1\033[0m $2\n"; } + +# bullet() is sub-items from messages, if warranting more lines of text +function bullet() { printf "\r\033[00;36m ==\033[0m $1 \n"; } # ... Find all files recursively under current folder -findall () { - find ./ -name $1 -print 2> /dev/null -} +function findall() { find . -name "$1" -print 2> /dev/null; } # ... Create a new directory and enter it -md() { - mkdir -p "$@" && cd "$@" -} - +function md() { mkdir -p "$@" && cd "$@"; } +## end of file. diff --git a/Linux/dot-gitconfig b/Linux/dot-gitconfig new file mode 100644 index 0000000..15cead4 --- /dev/null +++ b/Linux/dot-gitconfig @@ -0,0 +1,16 @@ +# Global Git configuration + +[user] + name = Tim Triemstra + email = root@timtr.com +[color] + diff = auto + status = auto + branch = auto + ui = true +[core] + excludesfile = ~/.gitignore + editor = vim +[push] + default = simple + diff --git a/Linux/dot-zshenv.sh b/Linux/dot-zshenv.sh deleted file mode 100755 index c981967..0000000 --- a/Linux/dot-zshenv.sh +++ /dev/null @@ -1,27 +0,0 @@ -# .zshenv - Loaded in every session, even if not interactive -# -# No need to import command prompt, graphics, or other things -# that only apply to interactive shells. Those won't have any -# impact and can just slow down some tools that load this. -# ------------------------------------------------------------- - -## TODO: Not yet supporting Homebrew on Linux, commenting out - -# Adding the Dotfiles/Mac folder to PATH, as well as Homebrew -# export PATH="$DOTFILES_ROOT/Linux:/opt/homebrew/bin" - -# This adds Swift and the Swiftly tool to the PATH in .local -export PATH="$DOTFILES_ROOT/Linux:$HOME/.local/bin" - -# Setting for Apple silicon version of Ruby. Pre-pend it and Gems to the PATH -# export PATH=$PATH:/opt/homebrew/opt/ruby/bin -# export PATH=$PATH:`gem environment gemdir`/bin - -# Add default system PATHs at end of the chain -export PATH="$PATH:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/usr/sbin:/sbin" - -# Python3 - Augument the default PATH for Python3 use -export PY_PYTHON=3 - - -# end of file diff --git a/Linux/dot-zshrc.sh b/Linux/dot-zshrc.sh deleted file mode 100755 index 2e0aefe..0000000 --- a/Linux/dot-zshrc.sh +++ /dev/null @@ -1,43 +0,0 @@ -# .zshrc - Loaded only in interactive shell sessions - Linux version -# -# Because this file is only loaded in interactive shell (Terminal) sessions, -# It is perfect for setting up things like colors, etc. However, it isn't -# the right place to setup PATH and other variables that tools may want. -# For those global (no shell visible) cases, use the `.zshenv` file. -# ------------------------------------------------------------- - -source $HOME/.aliases -source $HOME/.functions -source $HOME/.zshenv - -# Report tha .zshrc is loading and at what time -TIMENOW=$(date +%d-%m-%Y" "%H:%M:%S) -message ".zshrc" "Launched $SHELL' at ${TIMENOW}." - - -# ============================================================================== -# Python3 - Augument the default PATH for Python3 use -export PY_PYTHON=3 - -# Colors -- usable everywhere now that they are in the .zshrc -autoload colors; colors; - -# Syntax coloring for ZSH is a bit different than bash -export CLICOLOR=1 -export LSCOLORS=gxFxCxDxbxExBxAxaxaxex -export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=37:cd=34:su=36:sg=36;40:tw=36:ow=36" - - -## Parse git branch to put into the prompt -parse_git_branch() { - git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' -} -# Enable substitutions within the prompt -setopt PROMPT_SUBST - -# Set the actual prompt -NEWLINE=$'\n' -PROMPT='${NEWLINE}%F{white}% → %F{red}% %9c% %F{grey}% $(parse_git_branch) %F{white}% ${NEWLINE}↪ %f' - - -## end of file. diff --git a/Linux/dotfiles.sh b/Linux/dotfiles.sh deleted file mode 100755 index d412602..0000000 --- a/Linux/dotfiles.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/zsh -# -# dotfiles.sh - the Linux version - -# TODO: abort if git, cc, or other needed tools are not available -source "$DOTFILES_ROOT/Linux/dot-functions.sh" -message "dotfiles.sh -- clean setup up for Linux via ${DOTFILES_ROOT}" - -chown -R $USER ${DOTFILES_ROOT}/* 2> /dev/null -chmod -R 777 ${DOTFILES_ROOT}/* 2> /dev/null - -# ============================================================================== -message "Installing root dotfiles" "Overwriting existing versions of these files" -cp $DOTFILES_ROOT/Linux/dot-zshrc.sh $HOME/.zshrc -cp $DOTFILES_ROOT/Linux/dot-zshenv.sh $HOME/.zshenv -cp $DOTFILES_ROOT/Linux/dot-aliases.sh $HOME/.aliases -cp $DOTFILES_ROOT/Linux/dot-functions.sh $HOME/.functions - -# Copy over tool and app settings -cp $DOTFILES_ROOT/Config/dot-gitconfig $HOME/.gitconfig -cp $DOTFILES_ROOT/Config/dot-gitignore $HOME/.gitignore -cp $DOTFILES_ROOT/Config/dot-vimrc $HOME/.vimrc - -echo "Empty file to silence new shell messages" >> $HOME/.hushlogin - -# Register gitignore and other git stuff -git config --global core.excludesfile ~/.gitignore - - -# ============================================================================== -# Check if the "~/local.sh" file exists, and if not, copy the stub version to user home -if [[ -f "$HOME/local.sh" ]]; then - message "~/local.sh exists" "Delete the file then re-run to install a template version" -else - message "Creating ~/local.sh" "Modify this file to add GitHub and SSH tokens" - cp $DOTFILES_ROOT/Linux/local-template.sh $HOME/local.sh -fi - - -message "Restart the terminal" "After restart, you can run the following commands:" -bullet "git config --global user.name \"Your Name\"" -bullet "git config --global user.email \"youremail@yourdomain.com\"" -bullet "setup-brew.sh <-- install or update Homebrew" -bullet "setup-ruby.sh <-- setup a newer version (or update) of Ruby via Homebrew" -echo - -exit 0 - -## end of file. diff --git a/Linux/local-template.sh b/Linux/local-template.sh index e2c78f4..615d33c 100755 --- a/Linux/local-template.sh +++ b/Linux/local-template.sh @@ -1,6 +1,6 @@ -#!/usr/bin/env zsh +#!/bin/bash # -# LINUX VERSION +# Linux version # # Modify this file at your root folder to customize the local machine # diff --git a/Linux/setup-brew.sh b/Linux/setup-brew.sh deleted file mode 100755 index 0acd38d..0000000 --- a/Linux/setup-brew.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/zsh -# -# setup-brew.sh -- Linux version -# -# ============================================================================== - -source ~/.functions - -message "setup-brew.sh" "Installing Homebrew using default script" - -which -s brew &> /dev/null -if [[ $? != 0 ]] ; then - error "Missing Homebrew" "Installing for the first time..." - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -else - message "Found Homebrew" "Updating, upgrading, installing Jekyll and others" - - brew update - brew upgrade - brew install automake bison openssl readline libyaml gdbm libffi wget - brew install eza - - # Install ruby gems, specifically Jekyll for blogs - gem update - gem install jekyll - - message "Homebrew update complete" "Reporting current versions:" - python3 --version - ruby --version - jekyll --version -fi - - -# ============================================================================== -exit 0 diff --git a/Linux/setup-docker.sh b/Linux/setup-docker.sh deleted file mode 100755 index aa3d37b..0000000 --- a/Linux/setup-docker.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/zsh -# -# setup-brew.sh -- macOS version -# -# ============================================================================== - -source ~/.functions - -message "setup-docker.sh" "Installing Docker daemon" - -which -s docker &> /dev/null -if [[ $? != 0 ]] ; then - error "Missing Docker" "Installing for the first time..." - - # INSTALL DOCKER - NOT YET IMPLEMENTED -else - message "Found Docker" "Starting the deamon..." - - ## Starts the Docker daemon on Ubuntu (should already be running) - sudo systemctl start docker -fi - - -exit 0 diff --git a/Linux/setup-linux.sh b/Linux/setup-linux.sh new file mode 100755 index 0000000..a545f77 --- /dev/null +++ b/Linux/setup-linux.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# +# dotfiles.sh - the Linux version + +# TODO: abort if git, cc, or other needed tools are not available +source "$DOTFILES_ROOT/Linux/dot-functions.sh" +message "dotfiles.sh -- clean BASH setup for Linux via ${DOTFILES_ROOT}" +bullet "Cannot use SUDO in the Linux version of this script" + +# ============================================================================== +# Require `bash` as the default on Linux, and set the default shell if needed +if [ $SHELL != "/bin/bash" ]; then + chsh -s /bin/bash + echo "❌ Script has set default shell to BASH, now re-run setup.sh" + exit 0 +fi + +# Claim ownership of all my dotfiles +chown -R $USER $DOTFILES_ROOT 2> /dev/null + +## Make sure all the dotfiles have proper ownership before starting +chown -R $USER ${DOTFILES_ROOT}/* 2> /dev/null +chmod -R 777 ${DOTFILES_ROOT}/* 2> /dev/null + +# Make all .sh files (-type f) also executable +find $DOTFILES_ROOT -name "*.sh" -type f -print0 | xargs -0 chmod 755 + + +# ============================================================================== +# Create $HOME/Bin folder in which to put local code repositorities +if [[ -d "$HOME/bin" ]]; then + bullet "$HOME/bin exists. Added to the PATH for user content" +else + mkdir -p $HOME/bin + chown -R $USER $HOME/bin + chmod 744 $HOME/bin + message "✅ Created $HOME/bin and added it to PATH for your code" +fi + + +# ============================================================================== +message "✅ Installing root dotfiles" "Overwriting existing versions of these files" +cp $DOTFILES_ROOT/Linux/dot-bashrc.sh $HOME/.bashrc +cp $DOTFILES_ROOT/Linux/dot-aliases.sh $HOME/.aliases +cp $DOTFILES_ROOT/Linux/dot-functions.sh $HOME/.functions + +# Copy over tool and app settings +cp $DOTFILES_ROOT/Linux/dot-gitconfig $HOME/.gitconfig + +# Copy common files used across platforms (keeps them in sync) +cp $DOTFILES_ROOT/Common/dot-vimrc $HOME/.vimrc +cp $DOTFILES_ROOT/Common/dot-gitignore $HOME/.gitignore + +# Register gitignore and other git stuff +git config --global core.excludesfile ~/.gitignore + +# ============================================================================== +message "✅ Copy scripts to PATH" "Using $HOME/bin for user scripts" +cp $DOTFILES_ROOT/Linux/Path/* $HOME/bin + + +# ============================================================================== +message "✅ Setup defaults" "Adding paths and variables to .bashrc for bash" +echo " " >> ~/.bashrc +echo "# Add global DOTFILES_ROOT pointing Dotfiles install folder" >> ~/.bashrc +echo "export DOTFILES_ROOT=$DOTFILES_ROOT" >> ~/.bashrc + +# copy .bashrc to .profile to support some different SSH sessions +rm $HOME/.bash_profile 2> /dev/null +cp $HOME/.bashrc $HOME/.bash_profile +cp $HOME/.bashrc $HOME/.profile + +# ============================================================================== +# Check if the "~/local.sh" file exists, and if not, copy the stub version to user home +if [[ -f "$HOME/local.sh" ]]; then + bullet "~/local.sh exists - delete then re-run to reset from the template" +else + message "✅ Creating ~/local.sh" "Modify this file to add GitHub and SSH tokens" + cp $DOTFILES_ROOT/Linux/local-template.sh $HOME/local.sh +fi + +message "✅ git config --global user.name" "= $(git config --get user.name)" +message "✅ git config --global user.email" "= $(git config --get user.email)" +echo +message "🎉 Success!" "Restart Terminal and run setup-brew.sh and setup-ruby.sh" + +echo + +exit 0 + +## end of file. diff --git a/Linux/setup-ruby.sh b/Linux/setup-ruby.sh deleted file mode 100755 index a97cc05..0000000 --- a/Linux/setup-ruby.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/zsh -# -# setup-ruby.sh -- Linux version (simple version, installs latest) - -source ${HOME}/.functions -message "setup-ruby.sh" "Running [brew install ruby] instead of [rbenv]" -bullet "The latest Ruby is installed via this script and put first in PATH" - -which -s brew -if [[ $? != 0 ]] ; then - error "Missing Homebrew" "Must first install Homebrew before installing Ruby" - exit 0 -fi - -brew install ruby - -# Update to the latest version of Ruby Gems installers -sudo gem update - - - -# TODO: the below may require Terminal is restarted one before it succeeds? - -# ============================================================================== -# Install some gems (Jekyll and Bundler to start) -which -s bundler &> /dev/null -if [[ $? != 0 ]] ; then - bullet "Installing Bundler" "Installing the Bundler gem for the first time" - sudo gem install bundler -else - message "Updating Bundler" "Updating the Bundler gem to latest version" - sudo gem update bundler -fi - -which -s jekyll &> /dev/null -if [[ $? != 0 ]] ; then - bullet "Installing Jekyll" "Installing the Jekyll gem for the first time" - sudo gem install jekyll -else - bullet "Updating Jekyll" "Updating the Jekyll gem to latest version" - sudo gem update jekyll -fi - - - -# ============================================================================== -exit 0 diff --git a/Config/Settings/TimTr.prompttheme b/Mac/Config/Apps/TimTr.prompttheme similarity index 58% rename from Config/Settings/TimTr.prompttheme rename to Mac/Config/Apps/TimTr.prompttheme index 32228cc..dce67e1 100644 --- a/Config/Settings/TimTr.prompttheme +++ b/Mac/Config/Apps/TimTr.prompttheme @@ -11,107 +11,202 @@ $class CF$UID - 32 + 30 ANSIBlackColor CF$UID - 14 + 12 + + ANSIBlackColorDark + + CF$UID + 0 ANSIBlueColor CF$UID - 20 + 17 + + ANSIBlueColorDark + + CF$UID + 0 ANSIBrightBlackColor CF$UID - 24 + 21 + + ANSIBrightBlackColorDark + + CF$UID + 0 ANSIBrightBlueColor CF$UID - 27 + 25 + + ANSIBrightBlueColorDark + + CF$UID + 0 ANSIBrightCyanColor CF$UID - 28 + 26 + + ANSIBrightCyanColorDark + + CF$UID + 0 ANSIBrightGreenColor CF$UID - 26 + 24 + + ANSIBrightGreenColorDark + + CF$UID + 0 ANSIBrightMagentaColor CF$UID - 29 + 27 + + ANSIBrightMagentaColorDark + + CF$UID + 0 ANSIBrightRedColor CF$UID - 25 + 23 + + ANSIBrightRedColorDark + + CF$UID + 0 ANSIBrightWhiteColor CF$UID - 9 + 22 + + ANSIBrightWhiteColorDark + + CF$UID + 0 ANSIBrightYellowColor CF$UID - 30 + 28 + + ANSIBrightYellowColorDark + + CF$UID + 0 ANSICyanColor CF$UID - 21 + 18 + + ANSICyanColorDark + + CF$UID + 0 ANSIGreenColor CF$UID - 19 + 16 + + ANSIGreenColorDark + + CF$UID + 0 ANSIMagentaColor CF$UID - 22 + 19 + + ANSIMagentaColorDark + + CF$UID + 0 ANSIRedColor CF$UID - 18 + 15 + + ANSIRedColorDark + + CF$UID + 0 ANSIWhiteColor CF$UID - 15 + 14 + + ANSIWhiteColorDark + + CF$UID + 0 ANSIYellowColor CF$UID - 23 + 20 + + ANSIYellowColorDark + + CF$UID + 0 backgroundColor CF$UID 3 + backgroundColorDark + + CF$UID + 0 + boldTextColor CF$UID 9 + boldTextColorDark + + CF$UID + 0 + cursorColor CF$UID - 13 + 11 + + cursorColorDark + + CF$UID + 0 identifier CF$UID - 31 + 29 locked @@ -121,11 +216,18 @@ 2 opacity - 0.93591517857142847 + 0.80108154296875 + opacityDark + 1 selectionColor CF$UID - 12 + 10 + + selectionColorDark + + CF$UID + 0 showTextGlow @@ -134,8 +236,17 @@ CF$UID 8 + textColorDark + + CF$UID + 0 + useBoldFonts + useBoldFontsDark + + usesSeparateDarkTheme + TimTr @@ -155,6 +266,10 @@ CF$UID 4 + NSLinearExposure + + MQ== + NSRGB MCAwIDAA @@ -171,22 +286,80 @@ CF$UID 5 - NSSpaceID - 12 + NSID + 7 - AAACGGFwcGwEAAAAbW50clJHQiBYWVogB+YAAQABAAAAAAAAYWNzcEFQUEwA - AAAAQVBQTAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs7P2jjjiF - R8NttL1PetoYLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZGVz - YwAAAPwAAAAwY3BydAAAASwAAABQd3RwdAAAAXwAAAAUclhZWgAAAZAAAAAU - Z1hZWgAAAaQAAAAUYlhZWgAAAbgAAAAUclRSQwAAAcwAAAAgY2hhZAAAAewA - AAAsYlRSQwAAAcwAAAAgZ1RSQwAAAcwAAAAgbWx1YwAAAAAAAAABAAAADGVu - VVMAAAAUAAAAHABEAGkAcwBwAGwAYQB5ACAAUAAzbWx1YwAAAAAAAAABAAAA - DGVuVVMAAAA0AAAAHABDAG8AcAB5AHIAaQBnAGgAdAAgAEEAcABwAGwAZQAg - AEkAbgBjAC4ALAAgADIAMAAyADJYWVogAAAAAAAA9tUAAQAAAADTLFhZWiAA - AAAAAACD3wAAPb////+7WFlaIAAAAAAAAEq/AACxNwAACrlYWVogAAAAAAAA - KDgAABELAADIuXBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbc2Yz - MgAAAAAAAQxCAAAF3v//8yYAAAeTAAD9kP//+6L///2jAAAD3AAAwG4= + AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA + AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3By + dAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAU + clhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA + AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA + A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS + QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 + OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0Ig + SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVog + AAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAA + ACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA + AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAu + SUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdC + AAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEA + AAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVD + NjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT + pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf + 521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAA + Q1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA + RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy + ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsB + MgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHR + AdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgC + ogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW + A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYE + xATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYW + BicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kH + rAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk + CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL + aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2O + DakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQ + CRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj + EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgV + mxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihiv + GNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIc + KhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5Qj + wiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfc + KA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks + biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zES + MUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02 + NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtr + O6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdB + KUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bw + RzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJN + Sk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq + U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZa + plr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi + YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxp + Q2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDg + cTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5 + KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFr + gc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K + ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NN + k7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc + 951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL + pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw + 6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu + u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjG + RsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8 + 0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3Ird + EN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui8 + 6Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 + UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf// $classes @@ -223,6 +396,10 @@ CF$UID 4 + NSLinearExposure + + MQ== + NSRGB MC4zOTE0NjE3MyAwLjM5MTQ2MTczIDAuMzkxNDYxNzMA @@ -235,140 +412,25 @@ 7 NSColorSpace - 3 + 1 NSComponents - MSAx + MSAxIDEgMQ== NSCustomColorSpace CF$UID - 10 + 4 - NSWhite + NSLinearExposure - MQA= + MQ== + + NSRGB + + MSAxIDEA - - $class - - CF$UID - 6 - - NSICC - - CF$UID - 11 - - NSID - 9 - NSModel - 0 - - - AAARnGFwcGwCAAAAbW50ckdSQVlYWVogB9wACAAXAA8ALgAPYWNzcEFQUEwA - AAAAbm9uZQAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZGVz - YwAAAMAAAAB5ZHNjbQAAATwAAAgaY3BydAAACVgAAAAjd3RwdAAACXwAAAAU - a1RSQwAACZAAAAgMZGVzYwAAAAAAAAAfR2VuZXJpYyBHcmF5IEdhbW1hIDIu - MiBQcm9maWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AG1sdWMAAAAAAAAAHwAAAAxza1NLAAAALgAAAYRkYURLAAAAOgAAAbJjYUVT - AAAAOAAAAex2aVZOAAAAQAAAAiRwdEJSAAAASgAAAmR1a1VBAAAALAAAAq5m - ckZVAAAAPgAAAtpodUhVAAAANAAAAxh6aFRXAAAAGgAAA0xrb0tSAAAAIgAA - A2ZuYk5PAAAAOgAAA4hjc0NaAAAAKAAAA8JoZUlMAAAAJAAAA+pyb1JPAAAA - KgAABA5kZURFAAAATgAABDhpdElUAAAATgAABIZzdlNFAAAAOAAABNR6aENO - AAAAGgAABQxqYUpQAAAAJgAABSZlbEdSAAAAKgAABUxwdFBPAAAAUgAABXZu - bE5MAAAAQAAABchlc0VTAAAATAAABgh0aFRIAAAAMgAABlR0clRSAAAAJAAA - BoZmaUZJAAAARgAABqpockhSAAAAPgAABvBwbFBMAAAASgAABy5hckVHAAAA - LAAAB3hydVJVAAAAOgAAB6RlblVTAAAAPAAAB94AVgFhAGUAbwBiAGUAYwBu - AOEAIABzAGkAdgDhACAAZwBhAG0AYQAgADIALAAyAEcAZQBuAGUAcgBpAHMA - awAgAGcAcgDlACAAMgAsADIAIABnAGEAbQBtAGEALQBwAHIAbwBmAGkAbABH - AGEAbQBtAGEAIABkAGUAIABnAHIAaQBzAG8AcwAgAGcAZQBuAOgAcgBpAGMA - YQAgADIALgAyAEMepQB1ACAAaADsAG4AaAAgAE0A4AB1ACAAeADhAG0AIABD - AGgAdQBuAGcAIABHAGEAbQBtAGEAIAAyAC4AMgBQAGUAcgBmAGkAbAAgAEcA - ZQBuAOkAcgBpAGMAbwAgAGQAYQAgAEcAYQBtAGEAIABkAGUAIABDAGkAbgB6 - AGEAcwAgADIALAAyBBcEMAQzBDAEOwRMBD0EMAAgAEcAcgBhAHkALQQzBDAE - PAQwACAAMgAuADIAUAByAG8AZgBpAGwAIABnAOkAbgDpAHIAaQBxAHUAZQAg - AGcAcgBpAHMAIABnAGEAbQBtAGEAIAAyACwAMgDBAGwAdABhAGwA4QBuAG8A - cwAgAHMAegD8AHIAawBlACAAZwBhAG0AbQBhACAAMgAuADKQGnUocHCWjlFJ - XqYAMgAuADKCcl9pY8+P8Md8vBgAINaMwMkAIKwQucgAIAAyAC4AMgAg1QS4 - XNMMx3wARwBlAG4AZQByAGkAcwBrACAAZwByAOUAIABnAGEAbQBtAGEAIAAy - ACwAMgAtAHAAcgBvAGYAaQBsAE8AYgBlAGMAbgDhACABYQBlAGQA4QAgAGcA - YQBtAGEAIAAyAC4AMgXSBdAF3gXUACAF0AXkBdUF6AAgBdsF3AXcBdkAIAAy - AC4AMgBHAGEAbQBhACAAZwByAGkAIABnAGUAbgBlAHIAaQBjAQMAIAAyACwA - MgBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABHAHIAYQB1AHMAdAB1AGYAZQBu - AC0AUAByAG8AZgBpAGwAIABHAGEAbQBtAGEAIAAyACwAMgBQAHIAbwBmAGkA - bABvACAAZwByAGkAZwBpAG8AIABnAGUAbgBlAHIAaQBjAG8AIABkAGUAbABs - AGEAIABnAGEAbQBtAGEAIAAyACwAMgBHAGUAbgBlAHIAaQBzAGsAIABnAHIA - 5QAgADIALAAyACAAZwBhAG0AbQBhAHAAcgBvAGYAaQBsZm6QGnBwXqZ8+2Vw - ADIALgAyY8+P8GWHTvZOAIIsMLAw7DCkMKww8zDeACAAMgAuADIAIDDXMO0w - 1TChMKQw6wOTA7UDvQO5A7oDzAAgA5MDugPBA7kAIAOTA6wDvAO8A7EAIAAy - AC4AMgBQAGUAcgBmAGkAbAAgAGcAZQBuAOkAcgBpAGMAbwAgAGQAZQAgAGMA - aQBuAHoAZQBuAHQAbwBzACAAZABhACAARwBhAG0AbQBhACAAMgAsADIAQQBs - AGcAZQBtAGUAZQBuACAAZwByAGkAagBzACAAZwBhAG0AbQBhACAAMgAsADIA - LQBwAHIAbwBmAGkAZQBsAFAAZQByAGYAaQBsACAAZwBlAG4A6QByAGkAYwBv - ACAAZABlACAAZwBhAG0AbQBhACAAZABlACAAZwByAGkAcwBlAHMAIAAyACwA - Mg4jDjEOBw4qDjUOQQ4BDiEOIQ4yDkAOAQ4jDiIOTA4XDjEOSA4nDkQOGwAg - ADIALgAyAEcAZQBuAGUAbAAgAEcAcgBpACAARwBhAG0AYQAgADIALAAyAFkA - bABlAGkAbgBlAG4AIABoAGEAcgBtAGEAYQBuACAAZwBhAG0AbQBhACAAMgAs - ADIAIAAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAEcA - cgBhAHkAIABHAGEAbQBtAGEAIAAyAC4AMgAgAHAAcgBvAGYAaQBsAFUAbgBp - AHcAZQByAHMAYQBsAG4AeQAgAHAAcgBvAGYAaQBsACAAcwB6AGEAcgBvAVsA - YwBpACAAZwBhAG0AbQBhACAAMgAsADIGOgYnBkUGJwAgADIALgAyACAGRAZI - BkYAIAYxBkUGJwYvBkoAIAY5BicGRQQeBDEESQQwBE8AIARBBDUEQAQwBE8A - IAQzBDAEPAQ8BDAAIAAyACwAMgAtBD8EQAQ+BEQEOAQ7BEwARwBlAG4AZQBy - AGkAYwAgAEcAcgBhAHkAIABHAGEAbQBtAGEAIAAyAC4AMgAgAFAAcgBvAGYA - aQBsAGUAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMTIAAFhZ - WiAAAAAAAADzUQABAAAAARbMY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4A - IwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQ - AJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEB - BwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGa - AaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQC - XQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOAND - A08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUE - YwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWm - BbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjS - COcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4K - xQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZ - DPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUP - QQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJ - EegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsU - rRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReu - F9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwb - FBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6U - Hr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUi - giKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaH - Jrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8r - Ais2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+R - L8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0 - njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8 - Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/ - YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxL - U0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGb - UeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9Y - fVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19h - X7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm - 6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5r - bsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52 - m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7C - fyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuH - n4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBu - kNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ - /JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2 - o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUSt - uK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfg - uFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C - 28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21 - zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T8 - 5YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXx - cvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26 - /kv+3P9t//8= - $class @@ -386,9 +448,13 @@ CF$UID 4 + NSLinearExposure + + MQ== + NSRGB - MCAwLjQ0MzIzMjI2ODEgMC40NjQ1MDE1MDAxAA== + MC4xMjYwMTc5NDMgMC40MzI5ODkyMzk3IDAuNDU3ODIxMTYwNgA= @@ -408,9 +474,13 @@ CF$UID 4 + NSLinearExposure + + MQ== + NSRGB - MC45MDI0NTkxNDQ2IDAuMzc2MzA0MjA5MiAwLjEwMTc1NjI4OTYA + MC44MzA3NzE1NjU0IDAuNDA1NTk0NDM4MyAwLjE3MjQ4ODAzMzgA @@ -420,22 +490,26 @@ 7 NSColorSpace - 1 - NSComponents - - MC4yMzE0OTU2NTA4IDAuMjMxNDk1NjUwOCAwLjIzMTQ5NTY1MDgg - MQ== - + 2 NSCustomColorSpace CF$UID - 4 + 13 NSRGB - MC4xNzU4NTQ2OTc4IDAuMTc1ODU0Njk3OCAwLjE3NTg1NDY5NzgA + MC4yMzE0OTU2NTA4IDAuMjMxNDk1NjUwOCAwLjIzMTQ5NTY1MDgA + + $class + + CF$UID + 6 + + NSID + 4 + $class @@ -443,107 +517,35 @@ 7 NSColorSpace - 1 - NSComponents - - MC43NDEgMC43NjQ0IDAuNzggMQ== - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC42ODc1Mjk2MjM1IDAuNzEzODM4NDU4MSAwLjczMjAxMTY3NTgA + MC43NDEgMC43NjQ0IDAuNzgA $class CF$UID - 6 + 7 - NSICC + NSColorSpace + 2 + NSCustomColorSpace CF$UID - 17 + 13 - NSID - 7 + NSRGB + + MC44NzA1ODgxODM0IDAuNDg2Mjc0NTQwNCAwLjIyMzUyOTM5ODQA + - - AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA - AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3By - dAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAU - clhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA - AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA - A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS - QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 - OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0Ig - SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVog - AAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAA - ACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gA - AAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAu - SUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdC - AAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg - c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEA - AAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVD - NjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT - pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf - 521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAA - Q1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA - RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy - ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsB - MgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHR - AdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgC - ogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW - A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYE - xATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYW - BicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kH - rAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlk - CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL - aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2O - DakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQ - CRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj - EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgV - mxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihiv - GNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIc - KhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ - H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5Qj - wiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfc - KA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks - biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zES - MUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02 - NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtr - O6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdB - KUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bw - RzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJN - Sk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq - U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZa - plr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi - YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxp - Q2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDg - cTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5 - KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFr - gc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K - ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NN - k7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc - 951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL - pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw - 6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu - u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjG - RsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE8 - 0b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3Ird - EN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui8 - 6Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 - UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf// - $class @@ -551,20 +553,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC44NzA1ODgxODM0IDAuNDg2Mjc0NTQwNCAwLjIyMzUyOTM5ODQg - MQ== - + 2 NSCustomColorSpace CF$UID - 4 + 13 NSRGB - MC45MDM0NTU3MzQzIDAuMzc1NDk3OTk2OCAwLjEwMTk3MzI4MDMA + MC4xNTM1MiAwLjc2IDAuMTIxNgA= @@ -574,20 +571,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC4xNTM1MiAwLjc2IDAuMTIxNiAx - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4xNTQyMzM2MzQ1IDAuNzI5MzA0MDE1NiAwLjA5NTMwNjE4Nzg3 - AA== + MC4xNjE1IDAuNTYzMTI1IDAuODUA @@ -597,19 +589,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC4xNjE1IDAuNTYzMTI1IDAuODUgMQ== - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4xMzY4MTU4MDEzIDAuNDgxMjU4NjMwOCAwLjgxMzkwOTE3MwA= + MC40NDU5IDAuODMyNjUgMC45MQA= @@ -619,19 +607,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC40NDU5IDAuODMyNjUgMC45MSAx - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4zODUwMjYzNjU1IDAuNzk3NTM2NDkyMyAwLjg4NzEwNjgzNTgA + MC44OCAwLjQ2NjQgMC44NDU1MzMzMzMzAA== @@ -641,19 +625,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC44OCAwLjQ2NjQgMC44NDU1MzMzMzMzIDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC44NDE2MDU3ODI1IDAuMzU2MDU4Nzc2NCAwLjgwOTI3MDYyMDMA + MSAwLjc4NjY2NjY2NjcgMC4yAA== @@ -663,19 +643,15 @@ 7 NSColorSpace - 1 - NSComponents - - MSAwLjc4NjY2NjY2NjcgMC4yIDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC45OTQ3OTk2NzM2IDAuNzQ3MjM1ODk0MiAwLjE1NjczMDM2ODcA + MC4zMTUgMC4zMzQyNSAwLjM1AA== @@ -685,19 +661,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC4zMTUgMC4zMzQyNSAwLjM1IDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4yNDc3MzcxMjQ2IDAuMjY0NDYxOTY0NCAwLjI3ODkyNjY3MDYA + MSAxIDEA @@ -707,19 +679,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC45ODc0MzU1NjcgMC41NDYwMjI0NTI3IDAuMjM0MTE5Njc5MyAx - + 2 NSCustomColorSpace CF$UID - 4 + 13 NSRGB - MSAwLjQyOTY2MDY0ODEgMC4wODU0MjU2MzAyMQA= + MC45ODc0MzU1NjcgMC41NDYwMjI0NTI3IDAuMjM0MTE5Njc5MwA= @@ -729,19 +697,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC40NDI4IDAuOCAwLjM0NCAx - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4zODIxMTYxMDkxIDAuNzczNTgxMjY2NCAwLjI3NDkxNDAyNjMA + MC40NDI4IDAuOCAwLjM0NAA= @@ -751,19 +715,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC4zMzg0IDAuNjg5MzMzMzMzMyAwLjk0IDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC4yODAyNjI4Mjc5IDAuNjIxNTA1ODU2NSAwLjkyMzcyNTE4NzgA + MC4zMzg0IDAuNjg5MzMzMzMzMyAwLjk0AA== @@ -773,19 +733,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC42NiAwLjk2NiAxIDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC42MDYzMjA4NTggMC45NjE4ODAzMjYzIDAuOTk5MzY2ODc5NQA= + MC42NiAwLjk2NiAxAA== @@ -795,19 +751,15 @@ 7 NSColorSpace - 1 - NSComponents - - MC45MyAwLjY2OTYgMC45MDgzIDE= - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC45MDUzNDU0Mzk5IDAuNTg3MTEzMjYxMiAwLjg4NTQ4NjQyNAA= + MC45MyAwLjY2OTYgMC45MDgzAA== @@ -817,22 +769,18 @@ 7 NSColorSpace - 1 - NSComponents - - MSAwLjg5IDAuNDUgMQ== - + 2 NSCustomColorSpace CF$UID - 16 + 13 NSRGB - MC45OTc0NjgyMzMxIDAuODczMjczNzMwMyAwLjM3NzI2ODU1MjgA + MSAwLjg5IDAuNDUA - 600653C6-C971-4C30-8EEB-312C033B641D + 2E952EFE-A71D-48CB-A06D-95A91BA30186 $classes diff --git a/Mac/Config/Preferences/com.apple.Terminal.plist b/Mac/Config/Preferences/com.apple.Terminal.plist new file mode 100644 index 0000000..9327f25 Binary files /dev/null and b/Mac/Config/Preferences/com.apple.Terminal.plist differ diff --git a/Mac/Config/Preferences/com.googlecode.iterm2.plist b/Mac/Config/Preferences/com.googlecode.iterm2.plist new file mode 100644 index 0000000..2e1a589 Binary files /dev/null and b/Mac/Config/Preferences/com.googlecode.iterm2.plist differ diff --git a/Config/Xcode/TimTr.xccolortheme b/Mac/Config/Xcode/TimTr.xccolortheme similarity index 81% rename from Config/Xcode/TimTr.xccolortheme rename to Mac/Config/Xcode/TimTr.xccolortheme index 24c06da..065cbcf 100644 --- a/Config/Xcode/TimTr.xccolortheme +++ b/Mac/Config/Xcode/TimTr.xccolortheme @@ -23,7 +23,7 @@ DVTConsoleExectuableOutputTextFont SFMono-RegularItalic - 16.0 DVTConsoleTextBackgroundColor - 0.064263 0.067871 0.0815955 1 + 0.0467027 0.0467746 0.0444158 1 DVTConsoleTextInsertionPointColor 1 1 1 1 DVTConsoleTextSelectionColor @@ -57,15 +57,15 @@ DVTMarkupTextOtherHeadingColor 0.42772 0.465692 0.465582 0.5 DVTMarkupTextOtherHeadingFont - .SFNS-Regular - 20.2 + .SFNS-Regular - 21.0 DVTMarkupTextPrimaryHeadingColor 0.42772 0.465692 0.465582 1 DVTMarkupTextPrimaryHeadingFont - .SFNS-Regular - 33.2 + .SFNS-Regular - 36.0 DVTMarkupTextSecondaryHeadingColor 0.42772 0.465692 0.465582 1 DVTMarkupTextSecondaryHeadingFont - .SFNS-Regular - 25.4 + .SFNS-Regular - 27.0 DVTMarkupTextStrongColor 0.42772 0.465692 0.465582 1 DVTMarkupTextStrongFont @@ -85,11 +85,11 @@ DVTScrollbarMarkerWarningColor 0.937255 0.717647 0.34902 1 DVTSourceTextBackground - 0.0475648 0.0560609 0.0696912 1 + 0.0540316 0.0662176 0.0772645 1 DVTSourceTextBlockDimBackgroundColor 0.5 0.5 0.5 1 DVTSourceTextCurrentLineHighlightColor - 0.106591 0.120683 0.136839 1 + 0.0467118 0.046791 0.0441853 1 DVTSourceTextInsertionPointColor 1 1 1 1 DVTSourceTextInvisiblesColor @@ -101,94 +101,94 @@ xcode.syntax.attribute 0.145098 0.568627 0.52549 1 xcode.syntax.character - 0.845619 0.845619 0.845619 1 + 0 0.892636 0 1 xcode.syntax.comment - 0.27182 0.289624 0.39479 1 + 0.193315 0.496568 0.650872 1 xcode.syntax.comment.doc - 0.262099 0.4621 0.495959 1 + 0.211507 0.279567 0.393124 1 xcode.syntax.comment.doc.keyword - 0.424672 0.424672 0.424672 1 + 0.277458 0.277458 0.277458 1 xcode.syntax.declaration.other - 0.670008 0.739169 0.030366 1 + 0.987517 0.322992 0.0290003 1 xcode.syntax.declaration.type - 0.886388 0.983859 0 1 + 0.987517 0.322992 0.0290003 1 xcode.syntax.identifier.class 0.713704 0.249773 0.707592 1 xcode.syntax.identifier.class.system - 0.904986 0 0.436726 1 + 0.894411 0.266279 0.609741 1 xcode.syntax.identifier.constant - 0.875867 0.548301 0.784713 1 + 0.714947 0.200942 0.600032 1 xcode.syntax.identifier.constant.system - 0.427451 0.67451 1 1 + 0.714947 0.200942 0.600032 1 xcode.syntax.identifier.function - 0.915091 0.478554 0.845259 1 + 0.492982 0.191502 0.375354 1 xcode.syntax.identifier.function.system - 0.904986 0 0.436726 1 + 0.710353 0.725575 0.736085 1 xcode.syntax.identifier.macro 0.92549 0.415686 0.384314 1 xcode.syntax.identifier.macro.system 0.92549 0.415686 0.384314 1 xcode.syntax.identifier.type - 0.587517 0.206665 0.58352 1 + 0.712252 0.677153 0.759108 1 xcode.syntax.identifier.type.system - 0.427451 0.67451 1 1 + 0.983621 1 1 1 xcode.syntax.identifier.variable - 0.719135 0.4568 0.617874 1 + 0.35643 0.463551 0.516356 1 xcode.syntax.identifier.variable.system - 0.427451 0.67451 1 1 + 0.983621 1 1 1 xcode.syntax.keyword - 0.424672 0.424672 0.424672 1 + 0.983621 1 1 1 xcode.syntax.mark - 0.323259 0.92111 0.232525 1 + 0.886388 0.983859 0 1 xcode.syntax.markup.code 0.987517 0.322992 0.0290003 1 xcode.syntax.number 0.191379 0.822222 0.361929 1 xcode.syntax.plain - 0.999995 1 1 1 + 0.691651 0.70645 0.716668 1 xcode.syntax.preprocessor - 0.886388 0.983859 0 1 + 1 0.35217 0.989654 1 xcode.syntax.regex - 0 0.976153 1 1 + 0.174161 0.385937 0.430921 1 xcode.syntax.regex.capturename - 0.560922 0.340188 0.63728 1 + 0.174161 0.385937 0.430921 1 xcode.syntax.regex.charname - 0.427451 0.67451 1 1 + 0.174161 0.385937 0.430921 1 xcode.syntax.regex.number - 0.445898 0.967334 0.999197 1 + 0.174161 0.385937 0.430921 1 xcode.syntax.regex.other - 0.731204 0.763292 0.842913 1 + 0.174161 0.385937 0.430921 1 xcode.syntax.string - 0.987517 0.322992 0.0290003 1 + 0.984288 0.111031 0.152288 1 xcode.syntax.url - 0.186306 0.478119 0.849336 1 + 0.419458 0.565601 0.990365 1 DVTSourceTextSyntaxFonts xcode.syntax.attribute SFMono-Light - 16.0 xcode.syntax.character - SFMono-Light - 16.0 + SFMono-SemiboldItalic - 16.0 xcode.syntax.comment - SFMono-Light - 16.0 + SFMono-LightItalic - 16.0 xcode.syntax.comment.doc SFMono-LightItalic - 16.0 xcode.syntax.comment.doc.keyword SFMono-Semibold - 16.0 xcode.syntax.declaration.other - SFMono-Light - 16.0 + SFMono-LightItalic - 16.0 xcode.syntax.declaration.type - SFMono-Light - 16.0 + SFMono-Semibold - 16.0 xcode.syntax.identifier.class - SFMono-Light - 16.0 + SFMono-Semibold - 16.0 xcode.syntax.identifier.class.system SFMono-Light - 16.0 xcode.syntax.identifier.constant - SFMono-Light - 16.0 + SFMono-SemiboldItalic - 16.0 xcode.syntax.identifier.constant.system - SFMono-Light - 16.0 + SFMono-SemiboldItalic - 16.0 xcode.syntax.identifier.function - SFMono-Light - 16.0 + SFMono-Semibold - 16.0 xcode.syntax.identifier.function.system SFMono-Light - 16.0 xcode.syntax.identifier.macro @@ -204,13 +204,13 @@ xcode.syntax.identifier.variable.system SFMono-Light - 16.0 xcode.syntax.keyword - SFMono-Semibold - 16.0 - xcode.syntax.mark SFMono-Light - 16.0 + xcode.syntax.mark + SFMono-Semibold - 16.0 xcode.syntax.markup.code SFMono-Bold - 24.0 xcode.syntax.number - SFMono-Light - 16.0 + SFMono-SemiboldItalic - 16.0 xcode.syntax.plain SFMono-Light - 16.0 xcode.syntax.preprocessor @@ -226,7 +226,7 @@ xcode.syntax.regex.other SFMono-Light - 16.0 xcode.syntax.string - SFMono-SemiboldItalic - 16.0 + SFMono-LightItalic - 16.0 xcode.syntax.url SFMono-MediumItalic - 16.0 diff --git a/Mac/Path/backup.sh b/Mac/Path/backup.sh new file mode 100755 index 0000000..a5fd1a8 --- /dev/null +++ b/Mac/Path/backup.sh @@ -0,0 +1,64 @@ +#!/bin/zsh +# +# backup.sh -- macOS version: backs up critical files locally +# ============================================================================== + + +# Check if both parameters are provided +if [ $# -ne 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +SOURCE="$1" +DEST="$2" +BACKUP_DIR="$DEST/past-backups" + +# Validate source directory exists +if [ ! -d "$SOURCE" ]; then + echo "Error: Source directory '$SOURCE' does not exist" + exit 1 +fi + +# Create destination and backup directories if they don't exist +mkdir -p "$DEST" +mkdir -p "$BACKUP_DIR" + +# Function to move file to backup with date if needed +backup_file() { + local file="$1" + local basename=$(basename "$file") + local backup_path="$BACKUP_DIR/$basename" + + if [ -f "$backup_path" ]; then + # Get file modification date + local file_date=$(date -r "$file" "+%Y%m%d-%H%M%S") + local filename="${basename%.*}" + local extension="${basename##*.}" + + # Handle files without extension + if [ "$filename" = "$extension" ]; then + backup_path="$BACKUP_DIR/${basename}_${file_date}" + else + backup_path="$BACKUP_DIR/${filename}_${file_date}.${extension}" + fi + fi + + mv "$file" "$backup_path" +} + +# Find files in destination that will be overwritten or don't exist in source +find "$DEST" -type f -not -path "$BACKUP_DIR/*" | while read -r dest_file; do + relative_path="${dest_file#$DEST/}" + source_file="$SOURCE/$relative_path" + + # If source file doesn't exist or is different, backup the destination file + if [ ! -f "$source_file" ] || ! cmp -s "$source_file" "$dest_file"; then + backup_file "$dest_file" + fi +done + +# Sync files from source to destination +rsync -av --exclude='past-backups' "$SOURCE/" "$DEST/" + +echo "Sync complete. Backups stored in $BACKUP_DIR" diff --git a/Mac/Path/reset.sh b/Mac/Path/reset.sh new file mode 100755 index 0000000..f52247a --- /dev/null +++ b/Mac/Path/reset.sh @@ -0,0 +1,35 @@ +#!/bin/zsh +# +# reset.sh -- cleans caches and re-hides folders, making things pretty +# ============================================================================== + + +# Import the default functions used in these scripts +source ${HOME}/.functions +message "reset.sh" "Reset caches and preferences" +# ============================================================================== + + +# Hide tfolders from being visible in Finder (they still show in Terminal) +chflags hidden ${HOME}/Documents/Insta360/ &> /dev/null +chflags hidden ${HOME}/Documents/Larian\ Studios + +# Remove a bunch of common defaults -- re-run setup to add them back +# Cleaning them exists to get back into a good state, just in case +# a default option is causing some sort of problem + +# All Xcode settings +defaults delete com.apple.dt.Xcode + +# Set macOS to not write .DS_Store files on network drives +defaults delete com.apple.desktopservices + +# Set macOS to not write .DS_Store files on USB drives +defaults delete com.apple.desktopservices + +# Save screenshots (location, file type, etc.) +defaults delete com.apple.screencapture + +# Stops Xcode IDE from saving the workspace layout (window size, etc) +defaults delete com.apple.dt.Xcode IDEDisableStateRestoration + diff --git a/Mac/setup-brew.sh b/Mac/Path/setup-brew.sh similarity index 99% rename from Mac/setup-brew.sh rename to Mac/Path/setup-brew.sh index 78d57be..042f48e 100755 --- a/Mac/setup-brew.sh +++ b/Mac/Path/setup-brew.sh @@ -1,9 +1,9 @@ #!/bin/zsh # # setup-brew.sh -- macOS version -# # ============================================================================== + source ~/.functions message "setup-brew.sh" "Installing Homebrew using default script" diff --git a/Mac/setup-ruby.sh b/Mac/Path/setup-ruby.sh similarity index 88% rename from Mac/setup-ruby.sh rename to Mac/Path/setup-ruby.sh index 9062d45..531f3ad 100755 --- a/Mac/setup-ruby.sh +++ b/Mac/Path/setup-ruby.sh @@ -1,6 +1,8 @@ #!/bin/zsh # # setup-ruby.sh -- macOS version (simple version, installs latest) +# ============================================================================== + source ${HOME}/.functions message "setup-ruby.sh" "Running [brew install ruby] instead of [rbenv]" @@ -19,7 +21,7 @@ sudo gem update -# TODO: the below may require Terminal is restarted one before it succeeds? +# TODO: below may require Terminal is restarted once before it succeeds? # ============================================================================== # Install some gems (Jekyll and Bundler to start) diff --git a/Mac/dot-functions.sh b/Mac/dot-functions.sh index 532ed38..f306a4b 100755 --- a/Mac/dot-functions.sh +++ b/Mac/dot-functions.sh @@ -1,47 +1,38 @@ -#!/bin/zsh +# source this file into .zshrc -if [[ -v LOADED_FUNCTIONS ]]; then return; fi +if [[ -v LOADED_FUNCTIONS ]]; + then return; +fi; LOADED_FUNCTIONS=true # NOTE: some characters will not work within printf functions, e.g. "!" # error() should report major failures, often ejecting from the script -error () { printf "\r\033[01;31m [ERROR]\033[00;31m $1 \033[0m \n"} +function error() { printf "\r\033[01;31m [ERROR]\033[00;31m $1 \033[0m \n"} # alert() is extra bright to get attention, but not an error (two parameters) -alert () { printf "\r\033[00;35m $1\033[0m $2\n" } +function alert() { printf "\r\033[00;35m $1\033[0m $2\n" } # message() as a bright message, and less-bright detail message (two parameters) -message () { printf "\r\033[00;32m $1\033[0m $2\n" } +function message() { printf "\r\033[00;32m $1\033[0m $2\n" } # bullet() is sub-items from messages, if warranting more lines of text -bullet () { printf "\r\033[00;36m ==\033[0m $1 \n" } - - -# Past versions of these functions -# message () { printf "\r [\033[00;32m $1\033[0m ] $2\n" } -# error () { printf "\r\033[00;31m ** $1\033[0m - \033[00;31m$2 \033[0m \n" } -# alert () { printf "\r\033[00;35m >> $1\033[0m $2\n" } -# bullet () { printf "\r\033[00;36m ==\033[0m $1 $2\n" } - -# echo "this is ${txtbold}bold${txtnormal} but this isn't" -txtbold=$(tput bold) -txtnormal=$(tput sgr0) - +function bullet() { printf "\r\033[00;36m ==\033[0m $1 \n" } # ... Find all files recursively under current folder -findall () { - find . -name "$1" -print 2> /dev/null -} +function findall() { find . -name "$1" -print 2> /dev/null; } # ... Create a new directory and enter it -md() { - mkdir -p "$@" && cd "$@" -} +function md() { mkdir -p "$@" && cd "$@"; } # Delete Xcode derived data -xcode-clean() { - echo "Deleting all Xcode derived data..." - rm -rdf ~/Library/Developer/Xcode/DerivedData/* +function xcode-clean() { + echo "Deleting all Xcode derived data..."; + rm -rdf ~/Library/Developer/Xcode/DerivedData/*; } +# echo "this is ${txtbold}bold${txtnormal} but this isn't" +txtbold=$(tput bold) +txtnormal=$(tput sgr0) + +# end of file. diff --git a/Config/dot-gitconfig b/Mac/dot-gitconfig similarity index 81% rename from Config/dot-gitconfig rename to Mac/dot-gitconfig index 79c6bcd..4c3cb98 100644 --- a/Config/dot-gitconfig +++ b/Mac/dot-gitconfig @@ -15,6 +15,6 @@ default = simple [credential] helper = osxkeychain -[includeIf "gitdir:~/Work/"] - path = ~/Work/.gitconfig-work +[includeIf "gitdir:~/Documents/"] + path = ~/Documents/.gitconfig-work diff --git a/Config/dot-gitconfig-work b/Mac/dot-gitconfig-work similarity index 100% rename from Config/dot-gitconfig-work rename to Mac/dot-gitconfig-work diff --git a/Mac/dot-zshenv.sh b/Mac/dot-zshenv.sh index f99f253..ef4c191 100755 --- a/Mac/dot-zshenv.sh +++ b/Mac/dot-zshenv.sh @@ -1,21 +1,21 @@ -# .zshenv - Loaded in every session, even if not interactive. Great for PATH. +# .zshenv - Mac version - Loaded in every session, great for PATH. -# Adding the $HOME/bin and dotfiles/Mac folders to PATH, as well as Homebrew -export PATH="$HOME/Bin:$DOTFILES_ROOT/Mac:/opt/homebrew/bin" +# Clean new path with starting with: $HOME/Bin +export PATH="$HOME/Bin" # Setting for Apple silicon version of Ruby. Pre-pend it and Gems to the PATH -export PATH=$PATH:/opt/homebrew/opt/ruby/bin +export PATH=$PATH:/opt/homebrew/bin:/opt/homebrew/opt/ruby/bin export PATH=$PATH:`gem environment gemdir`/bin -# Add default system PATHs at end of the chain +# Add default system PATHs at end of the chain (my custom stuff comes first) export PATH="$PATH:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/usr/sbin:/sbin" # Python3 - Augument the default PATH for Python3 use export PY_PYTHON=3 # Node.js and npm setup (this first part loads NVM) -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" +# export NVM_DIR="$HOME/.nvm" +# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm bash_completion # [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" diff --git a/Mac/dot-zshrc.sh b/Mac/dot-zshrc.sh index eb7e989..b5bf31b 100755 --- a/Mac/dot-zshrc.sh +++ b/Mac/dot-zshrc.sh @@ -1,4 +1,4 @@ -# .zshrc - Loaded only in interactive shell sessions - macOS version +# .zshrc - Mac version - Loaded only in interactive shell sessions # # Because this file is only loaded in interactive shell (Terminal) sessions, # It is perfect for setting up things like colors, etc. However, it isn't @@ -48,8 +48,15 @@ parse_git_branch() { setopt PROMPT_SUBST # Set the actual prompt +HOSTNAME=$(hostname -s) NEWLINE=$'\n' -PROMPT='${NEWLINE}%F{white}% → %F{red}% %9c% %F{grey}% $(parse_git_branch) %F{white}% ${NEWLINE}↪ %f' +PROMPT='${NEWLINE}%F{white}% [%F{red}% $USER %F{grey}% ${HOSTNAME}%F{white}% %F{red}% %9c% %F{white}% ] %F{blue}% $(parse_git_branch) %F{white}% ${NEWLINE}[%F{238} %D %T%F{white}% ] ↪ %f' + + +# Previous version of the prompt (worked) +# NEWLINE=$'\n' +# PROMPT='${NEWLINE}%F{white}% → %F{red}% %9c% %F{grey}% $(parse_git_branch) %F{white}% ${NEWLINE}↪ %f' + # Load local custom settings (e.g. security keys that don't belong in Git) diff --git a/Mac/local-template.sh b/Mac/local-template.sh index 933b86f..6687ba2 100755 --- a/Mac/local-template.sh +++ b/Mac/local-template.sh @@ -15,6 +15,13 @@ if [[ -v LOADED_LOCAL ]]; then return; fi export LOADED_LOCAL=true message "Loading ~/local.sh" "Sets local Swift toolchain, tokens, keys, and passwords" +# Alias commands to login to servers +# ALERT: Edit these locally and do not commit these to GitHub! +alias ssh-example="ssh example@example -p password" + + + + # To enable latest Swift.org toolchain in /Library/Developer/Toolchains/" # export TOOLCHAINS=swift ("swift" = use Swift.org tools, empty = use Xcode) export TOOLCHAINS= diff --git a/Mac/setup-docker.sh b/Mac/setup-docker.sh deleted file mode 100755 index bdb742b..0000000 --- a/Mac/setup-docker.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/zsh -# -# setup-brew.sh -- macOS version -# -# ============================================================================== - -source ~/.functions - -message "setup-docker.sh" "Installing Docker using Homebrew" - -which -s brew &> /dev/null -if [[ $? != 0 ]] ; then - error "Missing Homebrew" "Installing for the first time..." - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -else - message "Found Homebrew" "Updating and upgrading first..." - - brew update - brew upgrade -fi - -brew install --cask docker -sudo open /Applications/Docker.app - -# ============================================================================== -exit 0 diff --git a/Mac/dotfiles.sh b/Mac/setup-mac.sh similarity index 67% rename from Mac/dotfiles.sh rename to Mac/setup-mac.sh index 6aa2a6b..e0100ec 100755 --- a/Mac/dotfiles.sh +++ b/Mac/setup-mac.sh @@ -8,27 +8,32 @@ message "🔔 Environment:" "Locations being used for this install of Dotfiles" bullet "DOTFILES_ROOT = $DOTFILES_ROOT" bullet "Run location = ${0:a:h}" + +# ============================================================================== +# Require that Xcode is installed and selected before proceeding if xcode-select -p &> /dev/null then bullet "xcode-select -p = $(xcode-select -p)" else - error "❌ Install Xcode, then re-run setup.sh" + error "❌ Install Xcode, run xcode-select -p, and then re-run setup.sh" exit 0 fi + # ============================================================================== -# Require `zsh` as the default, and set the default shell if needed +# Require `zsh` as the default on macOS, and set the default shell if needed if [ $SHELL != "/bin/zsh" ]; then chsh -s /bin/zsh - echo "❌ Set default shell to /bin/zsh and re-run setup.sh" + echo "❌ Script has set default shell to ZSH, now re-run setup.sh" exit 0 fi + # ============================================================================== -message "🔐 SUDO required" "Creating folders, aliases, and setting file permissions" +message "📂 Creating directories" "Creating and/or setting file permissions" # Claim ownership of all my dotfiles -sudo chown -R $USER $DOTFILES_ROOT 2> /dev/null +chown -R $USER $DOTFILES_ROOT 2> /dev/null # Make all directories (-type d) 755 executable, files (-type f) as 644 find $DOTFILES_ROOT -type d -print0 | xargs -0 chmod 755 @@ -37,102 +42,83 @@ find $DOTFILES_ROOT -type f -print0 | xargs -0 chmod 644 # Make all .sh files (-type f) also executable find $DOTFILES_ROOT -name "*.sh" -type f -print0 | xargs -0 chmod 755 -# Get rid of teh quarantine bit (which occasionally gets set for some reason) +# Get rid of the quarantine bit (which occasionally gets set via downloads) xattr -d com.apple.quarantine $DOTFILES_ROOT/* 2> /dev/null -# /opt/homebrew on M1+ CPUs, /usr/local is Mac Intel, and /opt/bin on Linux -# Create these directories "just in case" -sudo mkdir -p /opt/homebrew/bin -sudo mkdir -p /usr/local/bin - -# Reset ownership, note the directory name does not end in / or /* -sudo chown -R "$USER":admin /opt/homebrew -sudo chown -R "$USER":admin /usr/local/bin - -# Set the permissions for the folders (read for all, write for just me) -sudo chmod 744 /opt/homebrew/bin -sudo chmod 744 /usr/local/bin - # ============================================================================== -# Create ~/Bin folder in which to put local code repositorities -if [[ -d "$HOME/Bin/" ]]; then - bullet "~/Bin exists. Put user scripts and code you want in the PATH here" +# Create $HOME/Bin folder in which to put local code repositorities +if [[ -d "$HOME/Bin" ]]; then + bullet "$HOME/Bin exists. Added to the PATH for user content" else - mkdir ~/Bin - sudo chown -R "$USER":admin $HOME/Bin - sudo chmod 744 $HOME/Bin - bullet "✅ Created ~/Bin - New folder for user code and scripts in the PATH" + mkdir -p $HOME/Bin + chown -R "$USER":admin $HOME/Bin + chmod 744 $HOME/Bin + message "✅ Created $HOME/Bin and added it to PATH for your code" fi - -# ============================================================================== # Create ~/Developer folder in which to put local code repositorities if [[ -d "$HOME/Developer/" ]]; then - bullet "~/Developer exists. Use this folder for personal repositories" + bullet "$HOME/Developer exists. Use this folder for personal repositories" else mkdir ~/Developer - bullet "✅ Created ~/Developer - New folder for local developer work" + message "✅ Created $HOME/Developer - use this folder for personal developer work" fi -# ============================================================================== -# Create a ~/Work folder if it doesn't exist already -# -if [[ -d "$HOME/Work/" ]]; then - bullet "~/Work exists. Use this folder for work repositories" +# Create a ~/Documents folder if it doesn't exist already +if [[ -d "$HOME/Documents/" ]]; then + bullet "$HOME/Documents exists. Use this folder for work repositories" else - mkdir ~/Work - bullet "✅ Created ~/Work - New folder for work repositories" + mkdir ~/Documents + message "✅ Created $HOME/Documents - use this folder for work repositories" fi -# ============================================================================== -# Create a symlink to Dropbox's location in CloudStore if valid -# -#if [[ -d "$HOME/Dropbox/" ]]; then -# bullet "~/Dropbox alias exists. Delete symlink if broken, then re-run" -#else -# if [[ -d "$HOME/Library/CloudStorage/Dropbox/" ]]; then -# bullet "✅ Setup ~/Dropbox - Symlink to ~/Library/CloudStorage/Dropbox/" -# ln -s $HOME/Library/CloudStorage/Dropbox $HOME/Dropbox -# else -# alert "Dropbox not installed" "Missing folder: ~/Library/CloudStorage/Dropbox/" -# fi -#sfi # ============================================================================== # Check if the ~/local.sh file exists, if not then copy the template to $HOME if [[ -f "$HOME/local.sh" ]]; then - bullet "~/local.sh file exists. Delete the file and re-run to install from template" + bullet "$HOME/local.sh file exists. Delete the file and re-run to install from template" else - bullet "✅ Installing ~/local.sh - Creating new from ./Dotfiles/Mac/local-template.sh" + message "✅ Installing $HOME/local.sh - Creating new from ./Dotfiles/Mac/local-template.sh" cp $DOTFILES_ROOT/Mac/local-template.sh $HOME/local.sh fi # ============================================================================== -message "✅ Setup root dotfiles" "Overwriting existing files at $HOME" +message "✅ Setup root dot-files" "Overwriting existing files at $HOME" cp $DOTFILES_ROOT/Mac/dot-zshrc.sh $HOME/.zshrc cp $DOTFILES_ROOT/Mac/dot-zshenv.sh $HOME/.zshenv cp $DOTFILES_ROOT/Mac/dot-aliases.sh $HOME/.aliases cp $DOTFILES_ROOT/Mac/dot-functions.sh $HOME/.functions -echo "Empty file to silence new shell messages" >> $HOME/.hushlogin -# Copy Git and other config files -cp $DOTFILES_ROOT/Config/dot-gitconfig $HOME/.gitconfig -cp $DOTFILES_ROOT/Config/dot-gitconfig-work $HOME/Work/.gitconfig-work -cp $DOTFILES_ROOT/Config/dot-gitignore $HOME/.gitignore -cp $DOTFILES_ROOT/Config/dot-vimrc $HOME/.vimrc +# Mac-specific Git configuration dot-files (using ./Documents for work repos) +cp $DOTFILES_ROOT/Mac/dot-gitconfig $HOME/.gitconfig +cp $DOTFILES_ROOT/Mac/dot-gitconfig-work $HOME/Documents/.gitconfig-work + +# Common settings across platforms +cp $DOTFILES_ROOT/Common/dot-gitignore $HOME/.gitignore +cp $DOTFILES_ROOT/Common/dot-vimrc $HOME/.vimrc + +echo "This dummy file silences the [new shell] messages" >> $HOME/.hushlogin # Register gitignore and other git stuff git config --global core.excludesfile ~/.gitignore + +# ============================================================================== +message "✅ Copy scripts to PATH" "Using $HOME/Bin for user scripts" +cp $DOTFILES_ROOT/Mac/Path/* $HOME/Bin + + +# ============================================================================== message "✅ Setup app preferences" "Overwriting Terminal, Xcode, and other settings" + # Copy app settings -cp $DOTFILES_ROOT/Config/Preferences/* $HOME/Library/Preferences/ +cp $DOTFILES_ROOT/Mac/Config/Preferences/* $HOME/Library/Preferences/ # Copy Xcode preferences mkdir -p $HOME/Library/Developer/Xcode/UserData/FontAndColorThemes -cp -R $DOTFILES_ROOT/Config/Xcode/* $HOME/Library/Developer/Xcode/UserData/FontAndColorThemes/ +cp -R $DOTFILES_ROOT/Mac/Config/Xcode/* $HOME/Library/Developer/Xcode/UserData/FontAndColorThemes/ # ============================================================================== @@ -160,9 +146,10 @@ defaults write com.apple.desktopservices DSDontWriteUSBStores -bool TRUE message "✅ git config --global user.name" "= $(git config --get user.name)" message "✅ git config --global user.email" "= $(git config --get user.email)" echo -message "🎉 Success!" "Restart Terminal and run ${txtbold}setup-brew.sh${txtnormal} and ${txtbold}setup-ruby.sh${txtnormal}" - +message "🎉 Success!" "Restart Terminal and run setup-brew.sh and setup-ruby.sh" echo + +## End of file. exit 0 @@ -170,6 +157,35 @@ exit 0 +# ============================================================================== +# TODO: removing the creation of Homebrew folders - let Homebrew install do that +# Homebrew uses /opt/homebrew on ARM and /usr/local on Intel, and /opt/bin on Linux +# Create these directories "just in case" on macOS +# sudo mkdir -p /opt/homebrew/bin +# sudo mkdir -p /usr/local/bin + +# Reset ownership, note the directory name does not end in / or /* +# sudo chown -R "$USER":admin /opt/homebrew +# sudo chown -R "$USER":admin /usr/local/bin + +# Set the permissions for the folders (read for all, write for just me) +# sudo chmod 744 /opt/homebrew/bin +# sudo chmod 744 /usr/local/bin + + +# ============================================================================== +# Create a symlink to Dropbox's location in CloudStore if valid +# +#if [[ -d "$HOME/Dropbox/" ]]; then +# bullet "~/Dropbox alias exists. Delete symlink if broken, then re-run" +#else +# if [[ -d "$HOME/Library/CloudStorage/Dropbox/" ]]; then +# bullet "✅ Setup ~/Dropbox - Symlink to ~/Library/CloudStorage/Dropbox/" +# ln -s $HOME/Library/CloudStorage/Dropbox $HOME/Dropbox +# else +# alert "Dropbox not installed" "Missing folder: ~/Library/CloudStorage/Dropbox/" +# fi +#sfi # ============================================================================== diff --git a/README.md b/README.md deleted file mode 100644 index 58f66db..0000000 --- a/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Dotfiles for Tim Triemstra - -To setup on Mac or Linux: - -```shell - git clone https://github.com/timtr/dotfiles.git - cd dotfiles - ./setup.sh -``` - -On Mac, first install Xcode or the command line tools. Then run `./setup.sh` from within the local `dotfiles` folder to install. Quit and re-launch the terminal. - -Once installed, run `dotfiles.sh` from the PATH to reset your config. For instance, if you want to reset the `~/local.sh` file to default config, simply delete it, then run `dotfiles.sh`. You can also run `help.sh` for additional help. - -Documentation is a [work in progress.](https://timtr.github.io/dotfiles/) - - -## Overview - -This is my personal collection of setup scripts for macOS and Linux (WIP). It includes settings for `zsh`, macOS Terminal, Xcode, Swift, and other tools and apps. This set will also install Homebrew and a recent version of Ruby. - -The setup will assume your settings are configured directly within the `dotfiles` folder where you cloned this repo. It will also add `~/Bin` and `/opt/homebrew/bin` to the PATH for local scripts and Homebrew support. - -Amost the most important pieces is the `dotfiles/Config/dot-gitignore` file that installs into `~/.gitignore` since that filters out build and other temporary files. - - -## Work-specific Git configuration - -The `Config` folder includes a `dot-gitconfig-work` file that is installed to control the Git behavior for respositories in the `~/Work` folder. In this case, it is setting up to do code signing at commit time, and changing the username and email for those commits. This general approach can work for any sub-folder custom configuration, especially for custom email addresses depending on the folder they are stored in on disk. Feel free to edit to match your workflow and configuration. - - -## Features - -**local.sh** - A file called `~/local.sh` is installed (if doesn't exist) that you can customize with settings that do not belong checked into GitHub, for instance set certain keys, or environment variables. This is also the file to add things like feature flags during development, define a Swift toolchain, or to enable secret build settings. Re-running `dotfiles.sh` will never override this file, so if you want to restart from scratch, just delete the file and the re-install dotfiles to get a fresh setup. - -**dotfiles.sh** - run this at any time (it is in $PATH) to reset all settings. - -**ZSH settings** - sets up the prompt, `$PATH`, and other basic settings. Note that `.zshenv` sets up `$PATH` so it works even when there is no interactive terminal session, and `.zshrc` will source this file as well. - -**Dropbox** - Optionally symlink in `$HOME` points to `~/Library/CloudStorage/Dropbox` if Dropbox is installed on the computer. I often have this commented out. - - -## Using a custom Swift toolchain - -You can download new Swift toolchains from [Swift.org](https://swift.org/download/#snapshots) and set them to be used by default. The `~/local.sh` file is perfect to place to configure these settings per-machine, rather than configure in the main Dotfiles repo. - -## Demos - -Once installed, you can install Homebrew and run demos. For example, run `demo-homebrew.sh` from the `Dotfiles/Demos` to show a Terminal screen of software being downloaded, built, installed, and erased (in a repeating loop). Hit `CONTROL-Z` to quit that demo. - -You can also open the `Dotfiles/Demos/demo-safari-cycle.html` file to launch Safari and begin cycling through many web pages, simulating an automated web test harness. - - -## Useful reference links - -Documentation (or the start of docs) can be [found here](https://timtr.github.io/Dotfiles/docs/). Note that the `docs` folder must be in lower-case for GitHub Pages support. Capital `Docs` will fail. - -Which `zsh` files contain which settings: [CodeSpaces and Dotfiles](https://unix.stackexchange.com/questions/71253/what-should-shouldnt-go-in-zshenv-zshrc-zlogin-zprofile-zlogout) - -Docs on using `setup.sh` with [GitHub CodeSpaces and Dotfiles](https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account) - - -### ZSH order of loading - -For reference, `zsh` config files are loaded in the following order: - -``` shell - .zshenv -- global (even non-interactive), useful for PATH and tooling variables - .zshrc -- loaded from the interactive shell (e.g. a Terminal window) - .zprofile -- if login (not using this file in current setup) -``` - -`// end of file.` diff --git a/dotfiles.xcodeproj/project.pbxproj b/dotfiles.xcodeproj/project.pbxproj index 6c14410..449c26f 100644 --- a/dotfiles.xcodeproj/project.pbxproj +++ b/dotfiles.xcodeproj/project.pbxproj @@ -7,16 +7,15 @@ objects = { /* Begin PBXFileReference section */ - BAD0E0152E5395CD00274CAF /* index.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = index.md; sourceTree = ""; }; BAD0E0162E5395CD00274CAF /* license.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = license.txt; sourceTree = ""; }; - BAD0E0172E5395CD00274CAF /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + BAD0E0172E5395CD00274CAF /* readme.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = readme.md; sourceTree = ""; }; BAD0E0182E5395CD00274CAF /* setup.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = setup.sh; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - BAD0DFF42E5395B200274CAF /* Config */ = { + BA1096052EF509B400392276 /* Common */ = { isa = PBXFileSystemSynchronizedRootGroup; - path = Config; + path = Common; sourceTree = ""; }; BAD0DFF92E5395B200274CAF /* Docs */ = { @@ -45,13 +44,12 @@ BAD0DFDD2E53946700274CAF = { isa = PBXGroup; children = ( - BAD0E0172E5395CD00274CAF /* README.md */, - BAD0DFF42E5395B200274CAF /* Config */, + BAD0E0172E5395CD00274CAF /* readme.md */, BAD0DFF92E5395B200274CAF /* Docs */, BAD0DFFE2E5395B200274CAF /* DotRunner */, + BA1096052EF509B400392276 /* Common */, BAD0E0082E5395B200274CAF /* Linux */, BAD0E0142E5395B200274CAF /* Mac */, - BAD0E0152E5395CD00274CAF /* index.md */, BAD0E0162E5395CD00274CAF /* license.txt */, BAD0E0182E5395CD00274CAF /* setup.sh */, ); @@ -64,7 +62,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastUpgradeCheck = 2600; + LastUpgradeCheck = 2620; }; buildConfigurationList = BAD0DFE12E53946700274CAF /* Build configuration list for PBXProject "dotfiles" */; developmentRegion = en; @@ -87,12 +85,74 @@ BAD0DFE22E53946700274CAF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEAD_CODE_STRIPPING = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; }; name = Debug; }; BAD0DFE32E53946700274CAF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEAD_CODE_STRIPPING = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; }; name = Release; }; diff --git a/index.md b/index.md deleted file mode 100644 index 2d09c5c..0000000 --- a/index.md +++ /dev/null @@ -1,23 +0,0 @@ -# TimTr Dotfiles Documentation - -This is the `index.md` file at root. **Updated April 22, 2025.** - -This forms the root of the GitHub Pages documentation generated for this repository. It will link over to files within the `./Docs` folder of this repo for the actual documentation. - -* Documentation (work in progress) [table of contents](Docs/index.html). -* Tasks and accomplishments in the [TODO.md file](Docs/todo.html) via relative path. -* Link the [commands file](Docs/commands.html) via relative path. -* Full link to the [overview file](Docs/overview.html). -* The [README](readme.md) file for these `Dotfiles`. - -**Note:** the `docs` folder must be in lower-case for GitHub Pages support, if you want to use it as the basis of docs. Capital `Docs` will fail. At present, this repository is setup to use the root of the repo for Pages docs generation, so this `index.md` file manually links to other documentation files. At this time the docs support is mostly place holder to ensure the Pages support works. - -## Table of Contents - -This 'dotfiles` project is covered by the [MIT license](license.md). - -## Credits - -This `Dotfiles` setup is maintained by Tim Triemstra - [github.com/timtr](https://github.com/timtr) - -// end of file diff --git a/license.txt b/license.txt index 62cd0d2..af3b5e3 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ The MIT License -Copyright (c) Tim Triemstra, https://timtr.com/ +Copyright (c) 2024-2025 Tim Triemstra, https://timtr.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a2fb1d7 --- /dev/null +++ b/readme.md @@ -0,0 +1,85 @@ +# Dotfiles README.md + +To install, run `./setup.sh` from within the local `dotfiles` directory. Quit and re-launch the terminal. Re-run to reset at any time. + +```shell + git clone https://github.com/timtr/dotfiles.git + cd dotfiles + ./setup.sh +``` + +This will install files into `~/Bin` (or `~/bin` on Linux) and add that directory to your PATH. Run `help.sh` to see additional functionality. On macOS, Xcode must first be installed. Linux is tested on recent Ubuntu releases. Re-run `./setup.sh` from the `dotfiles` folder to reset to original files. + +More [documentation is available](https://timtr.github.io/dotfiles/Docs/), but is a work in progress. + + +# TODO + +- Run `setup.sh` from `dotfiles` directory, and copy files to `/usr/local/bin/$USER` in the PATH +- Move common settings and scripts to the `docfiles/Common` folder to ease maintenance +- Add basic support for Linux + + +## Overview + +This is the personal collection of setup scripts for macOS and Linux (WIP). It includes settings for macOS including `zsh` shell, `eza` for `ls` replacement, Terminal, Xcode, Swift, Homebrew, and Ruby. The Linux install is based on `bash` and still uses mostly default tools. + +The setup adds `$HOME/Bin` (or `~/bin` on Linux) and `/opt/homebrew/bin` to the PATH for local scripts and Homebrew support. + + +## Work-specific Git configuration + +The macOS install includes a `dot-gitconfig-work` file that is installed to control the Git behavior for respositories stored in the `~/Documents` directory. It sets up code signing at commit time, and changes the username and email for those commits to work accounts. This general approach can work for any sub-directory custom configuration. + + +## Setup SSH keys to easily login to remote servers + +TODO: + + +## Features + +**local.sh** - A file called `~/local.sh` is installed (if doesn't exist) that you can customize with settings that do not belong checked into GitHub, for instance set certain keys, or environment variables. This is also the file to add things like feature flags during development, define a Swift toolchain, or to enable secret build settings. Re-running `dotfiles.sh` will never override this file, so if you want to restart from scratch, just delete the file and the re-install dotfiles to get a fresh setup. + +**dotfiles.sh** - run this at any time to reset all settings (it is in $PATH). + +**ZSH dotfiles** - set up the prompt, `$PATH`, and other basic settings. The `.zshenv` file sets up `$PATH` so it works even when there is no interactive terminal session, and `.zshrc` will source this file as well. + +**Dropbox** - Optional symlink in `$HOME` points to `~/Library/CloudStorage/Dropbox` if Dropbox is installed on the computer. This is often commented out. + + +# Reference + +## Using a custom Swift toolchain + +You can download new Swift toolchains from [Swift.org](https://swift.org/download/#snapshots) and set them to be used by default. The `~/local.sh` file is perfect to place to configure these settings per-machine, rather than configure in the main Dotfiles repo. + + +## Demos + +Once installed, you can install Homebrew and run demos. For example, run `demo-homebrew.sh` from the `Dotfiles/Demos` to show a Terminal screen of software being downloaded, built, installed, and erased (in a repeating loop). Hit `CONTROL-Z` to quit that demo. + +You can also open the `Dotfiles/Demos/demo-safari-cycle.html` file to launch Safari and begin cycling through many web pages, simulating an automated web test harness. + + +## Useful links + +Documentation (or the start of docs) can be [found here](https://timtr.github.io/Dotfiles/docs/). Note that the `docs` directory must be in lower-case for GitHub Pages support. Capital `Docs` will fail. + +Which `zsh` files contain which settings: [CodeSpaces and Dotfiles](https://unix.stackexchange.com/questions/71253/what-should-shouldnt-go-in-zshenv-zshrc-zlogin-zprofile-zlogout) + +Docs on using `setup.sh` with [GitHub CodeSpaces and Dotfiles](https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account) + +### ZSH order of loading + +For reference, `zsh` config files are loaded in the following order: + +``` shell + .zshenv -- global (even non-interactive), useful for PATH and tooling variables + .zshrc -- loaded from the interactive shell (e.g. a Terminal window) + .zprofile -- if login (not using this file in current setup) +``` + + + +`// end of file.` diff --git a/setup.sh b/setup.sh index 52965b1..d12f1ba 100755 --- a/setup.sh +++ b/setup.sh @@ -1,16 +1,24 @@ -#!/usr/bin/env zsh +#!/bin/bash # -# 'setup.sh' is understood as a startup by GitHub Codespaces and other VMs +# 'setup.sh' is used by GitHub and other VMs at startup +# +# This script is setup to launch using the bash shell since it is +# common across supported platforms. It doesn't do anything very complex +# so the code should work even on very old versions of bash. +# +# The subsequent scripts in this repo may use more advanced features +# so they may specify zsh or bash as needed, with Linux using primarily +# bash. On macOS zsh is now the default shell and bash is quite old. # Set Dotfiles home to be the folder in which `setup.sh` was run (requires ZSH) -export DOTFILES_ROOT=${0:a:h} +export DOTFILES_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -# This script will run either the Linux or macOS installer +# This script launches either Linux or macOS installer (do not "source" the scripts) if [[ $OSTYPE == darwin* ]]; then - source $DOTFILES_ROOT/Mac/dotfiles.sh + $DOTFILES_ROOT/Mac/setup-mac.sh else - source $DOTFILES_ROOT/Linux/dotfiles.sh + $DOTFILES_ROOT/Linux/setup-linux.sh fi exit 0 @@ -24,9 +32,13 @@ exit 0 #### Saved script tidbits may want later -# This is the name of the actual file that was run (don't need it) +# -- This is the name of the actual file that was run (don't need it) # DOTFILES_SETUP_FILE=${0:a} +# -- This was how to get the containing folder via zsh +# export DOTFILES_ROOT=${0:a:h} + + # This piece of script would require that you launch the setup while