-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBrewfile
More file actions
92 lines (80 loc) · 2.88 KB
/
Brewfile
File metadata and controls
92 lines (80 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
DEBUG_MODE = false # Set to true to enable/disable debug messages
def debug(msg)
if DEBUG_MODE
puts "DEBUG: #{msg}"
end
end
# Check if the application is installed outside of the cask app directory
# This is useful for applications that are installed manually or through other means
# It checks if the application is installed in the /Applications directory
# and returns true if it is, false otherwise
#
# @param application [String] The name of the application to check
# @return [Boolean] true if the application is installed, false otherwise
def isAppInstalled(application)
debug("Checking if #{application} is installed...")
if IS_MAC
root_application_installed = system "test -d /Applications/#{application}.app"
debug("#{application} is #{root_application_installed ? 'installed' : 'not installed'} in /Applications")
else
root_application_installed = system "which #{application} > /dev/null 2>&1"
debug("#{application} is #{root_application_installed ? 'installed' : 'not installed'} in PATH")
end
root_application_installed
end
# Setup MAC OS GUI apps
IS_MAC = OS.mac? # Check if the OS is macOS
if IS_MAC
cask_args appdir: "/Applications", require_sha: true
end
# Terminal
cask "ghostty"
# Shell and prompt
brew "zsh"
brew "zsh-vi-mode" # vi mode for zsh
brew "starship" # shell prompt
brew "eza" # better ls
brew "zoxide" # better cd
brew "tmux" # terminal multiplexer
# Neovim
brew "neovim"
cask "font-jetbrains-mono-nerd-font" # font for terminal and editor
brew "fzf" # fuzzy finder
brew "fd" # faster find
brew "ripgrep" # faster grep
brew "sd" # faster sed
brew "stylua" # lua formatter
# Source control
brew "git"
brew "git-delta" # better git diff
brew "lazygit" # terminal UI for git
# CLIs
brew "gnu-sed" # text manipulation
brew "bat" # cat with syntax highlighting
brew "procs" # modern ps
brew "dust" # newer, faster du
brew "tokei" # code line counter
brew "hyperfine" # benchmarking tool
brew "jq" # json parser
brew "htop" # system monitor
brew "xdg-ninja" # XDG compliance checker
brew "gum" # glamorous shell scripts
# LLM tooling
cask "claude-code" # claude code cli
# GUI Apps
if IS_MAC
cask "bluesnooze" # bluetooth autosleep
cask "cleanshot" # screen capture
cask "karabiner-elements" # keyboard remapping
cask "bartender"
cask "colemak-dh", args: { require_sha: false } # colemak dh keyboard layout
# todo: find a way to install on linux via this file
cask "1password" # password manager
# todo: find a way to install on linux via this file
cask "beyond-compare" # file comparison tool
end
if !isAppInstalled("firefox")
# firefox might be installed manually, if so we want to skip this
cask "firefox" # browser
end
# vi: ft=ruby