diff --git a/docs/TODO.md b/docs/TODO.md index 0e0d84c5..69a32efd 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -13,6 +13,7 @@ zsh completions have been installed to: ==> Linking Binary 'completion.bash.inc' to '/usr/local/etc/bash_completion.d/google-cloud-sdk' ==> Linking Binary 'completion.zsh.inc' to '/usr/local/share/zsh/site-functions/_google_cloud_sdk' Ansible roles +https://github.com/altermo/vim-plugin-list ## Pending diff --git a/home/.chezmoi.yaml.tmpl b/home/.chezmoi.yaml.tmpl index 53e39260..2b16bab1 100644 --- a/home/.chezmoi.yaml.tmpl +++ b/home/.chezmoi.yaml.tmpl @@ -170,7 +170,7 @@ data: cloudflare: r2: "{{ $cloudflareR2AccountId }}" username: "{{ $cloudflareUsername }}" - defaultBrowser: firefox + defaultBrowser: brave digitalOceanClusterId: b7fc4e37-ffe7-4ea1-887a-0e19ee077f32 # `domain` is kept here for backwards compatibility, but the .host.domain is the preferred selector domain: "{{ $domain }}" diff --git a/home/.chezmoidata.yaml b/home/.chezmoidata.yaml index e8849e02..50ae7688 100644 --- a/home/.chezmoidata.yaml +++ b/home/.chezmoidata.yaml @@ -437,6 +437,7 @@ softwareGroups: - xcode - xcodes - xcodes-app + - x64dbg Docker: &Docker - bane - clair @@ -599,7 +600,9 @@ softwareGroups: - wkhtmltopdf - youtube-dl Media-Desktop: &Media-Desktop + - audacity - balenaetcher + - blender - brasero - crunch-app - gimp @@ -654,6 +657,7 @@ softwareGroups: - aqua - astronvim - automake + - bazelisk - bfg - bundler - carthage @@ -818,6 +822,7 @@ softwareGroups: - wireshark-cli Sys-Admin-Desktop: &Sys-Admin-Desktop - quasar + - recuva - sloth - snitch - wireshark @@ -928,6 +933,7 @@ softwareGroups: - altair - betwixt - electron-app + - fiddler - imagine - imageoptim - ipfs-desktop diff --git a/home/.chezmoiscripts/universal/run_onchange_after_39-vim-plugins.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_39-vim-plugins.sh.tmpl new file mode 100644 index 00000000..77aa838e --- /dev/null +++ b/home/.chezmoiscripts/universal/run_onchange_after_39-vim-plugins.sh.tmpl @@ -0,0 +1,13 @@ +{{- if ne .host.distro.family "windows" -}} +#!/usr/bin/env bash +# @file VIM Plugin Pre-Install +# @brief Pre-installs the VIM plugins from their git sources +# @description +# This script pre-installs the VIM plugins defined in [`.chezmoidata.yaml`](https://github.com/megabyte-labs/install.doctor/tree/master/home/.chezmoidata.yaml) +# so that VIM does not have to do anything on its first launch. + +### Run the VIM plugin install routine +if command -v vim > /dev/null; then + vim +PlugInstall +qall +fi +{{ end -}} diff --git a/home/.chezmoiscripts/universal/run_onchange_after_45-default-browser.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_45-default-browser.sh.tmpl new file mode 100644 index 00000000..d8475a16 --- /dev/null +++ b/home/.chezmoiscripts/universal/run_onchange_after_45-default-browser.sh.tmpl @@ -0,0 +1,34 @@ +{{- if ne .host.distro.family "windows" -}} +#!/usr/bin/env bash +# @file Set Default Browser +# @brief Sets default browser to value managed in `.chezmoi.yaml.tmpl` +# @description +# This script sets the default browser to the value stored in [`.chezmoi.yaml.tmpl`](https://github.com/megabyte-labs/install.doctor/tree/master/home/.chezmoi.yaml.tmpl) +# under the `user` section. +# +# * On macOS, it uses the `defaultbrowser` Homebrew package to update the default browser. +# * On Linux, it uses a combination of `xdg-mime` and `xdg-settings` options to update the default browser. +# +# The default browser for terminal applications is stored as the `BROWSER` value which is +# defined at the end of the [`exports.sh.tmpl`](https://github.com/megabyte-labs/install.doctor/tree/master/home/dot_config/shell/exports.sh.tmpl) +# file. This value is also populated from the `.chezmoi.yaml.tmpl` value. + +if [ -d /Applications ] && [ -d /System ]; then + if ! command -v defaultbrowser > /dev/null; then + logg info 'Installing `defaultbrowser` via Homebrew which is the preferred way of configuring the default browser' + brew install defaultbrowser + fi + logg info "Setting default browser to {{ .user.defaultBrowser }}" + defaultbrowser "{{ .user.defaultBrowser }}" +else + logg info 'Setting default browser for `text/html` to `{{ .user.defaultBrowser }}`' + xdg-mime default {{ .user.defaultBrowser }}.desktop text/html + logg info 'Setting default browser for `x-scheme-handler/http` to `{{ .user.defaultBrowser }}`' + xdg-mime default {{ .user.defaultBrowser }}.desktop x-scheme-handler/http + logg info 'Setting default browser for `x-scheme-handler/https` to `{{ .user.defaultBrowser }}`' + xdg-mime default {{ .user.defaultBrowser }}.desktop x-scheme-handler/https + logg info 'Setting default browser for `x-scheme-handler/about` to `{{ .user.defaultBrowser }}`' + xdg-mime default {{ .user.defaultBrowser }}.desktop x-scheme-handler/about + logg info 'Setting default browser with `xdg-settings` to `{{ .user.defaultBrowser }}`' + xdg-settings set default-web-browser {{ .user.defaultBrowser }}.desktop +fi diff --git a/home/dot_config/shell/exports.sh.tmpl b/home/dot_config/shell/exports.sh.tmpl index 35fa795f..a839fa6a 100644 --- a/home/dot_config/shell/exports.sh.tmpl +++ b/home/dot_config/shell/exports.sh.tmpl @@ -394,7 +394,7 @@ fi {{ end }} ### Browser -export BROWSER=brave +export BROWSER="{{ .user.defaultBrowser }}" ### WSL if [ -d /proc ] && [[ "$(grep Microsoft /proc/version > /dev/null)" ]]; then diff --git a/software.yml b/software.yml index 571c371a..b00be190 100644 --- a/software.yml +++ b/software.yml @@ -6980,6 +6980,76 @@ softwarePackages: # - mhash2 - sanoid _type: cli + x64dbg: + _bin: x64dbg + _desc: An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis. + _docs: https://github.com/x64dbg/x64dbg/wiki + _github: https://github.com/x64dbg/x64dbg + _home: https://x64dbg.com/ + _name: x64dbg + choco: x64dbg.portable + scoop: extras/x64dbg + blender: + _bin: blender + _desc: Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing. + _docs: https://docs.blender.org/manual/en/latest/ + _github: https://github.com/blender/blender + _home: https://www.blender.org/ + _name: Blender + _snapClassic: true + _when:cask: '! test -d /Applications/Blender.app' + apt: blender + cask: blender + choco: blender + dnf: blender + flatpak: org.blender.Blender + scoop: extras/blender + snap: blender + fiddler: + _bin: fiddler + _desc: The community-trusted free Windows-only tool that logs HTTP(s) network traffic. + _docs: https://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler + _github: false + _home: https://www.telerik.com/fiddler + _name: Fiddler + _todo: Add headless installation method for Linux + choco: fiddler + scoop: extras/fiddler + recuva: + _bin: recuva + _desc: Recuva recovers files from your Windows computer, recycle bin, digital camera card, or MP3 player! + _docs: https://www.ccleaner.com/recuva + _github: false + _home: https://www.ccleaner.com/recuva + _name: Recuva + choco: recuva + scoop: extras/recuva + audacity: + _bin: audacity + _desc: An open-source audio editor + _docs: https://support.audacityteam.org/ + _github: https://github.com/audacity/audacity + _home: https://www.audacityteam.org/ + _name: Audacity + appimage: Audacity + apt: audacity + choco: audacity + dnf: audacity + flatpak: org.audacityteam.Audacity + scoop: extras/audacity + snap: audacity + bazelisk: + _bin: bazelisk + _desc: A user-friendly launcher for Bazel. + _docs: https://bazel.build/docs + _github: https://github.com/bazelbuild/bazelisk + _home: https://bazel.build/ + _name: Bazel + brew: bazelisk + choco: bazelisk + go: github.com/bazelbuild/bazelisk@latest + npm: '@bazel/bazelisk' + scoop: main/bazel pv: _bin: pv apt: pv