Compare commits
23 Commits
cd04c91cef
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| dad30c2bb9 | |||
| 7aba0edcde | |||
| 7c8fd09bfc | |||
| a9627f7f88 | |||
| 3ef233942e | |||
| 737890bb62 | |||
| 77f62a8c0e | |||
| 6b3af90691 | |||
| 6aa6cd6d16 | |||
| 089112757c | |||
| afb355ba50 | |||
| c813e48c26 | |||
| 1d663f2a60 | |||
| 187e8f02f2 | |||
| 4a6cc7702a | |||
| 5740b583a4 | |||
| 85efb9e096 | |||
| 2a0c5b6420 | |||
| c39c6357bb | |||
| 47f846cc9a | |||
| 39df21f056 | |||
| fb1870d332 | |||
| 03f69af191 |
@@ -2,15 +2,7 @@
|
||||
cask_args appdir: "/Applications"
|
||||
cask_args language: "de,deu,en,eng"
|
||||
|
||||
# ## Taps
|
||||
# tap "homebrew/bundle"
|
||||
# tap "homebrew/cask"
|
||||
# tap "homebrew/cask-drivers"
|
||||
# tap "homebrew/cask-fonts"
|
||||
# tap "homebrew/cask-versions"
|
||||
# tap "homebrew/core"
|
||||
# tap "homebrew/services"
|
||||
# tap "microsoft/git"
|
||||
## Taps
|
||||
tap "nikitabobko/tap"
|
||||
tap "FelixKratz/formulae"
|
||||
|
||||
@@ -43,7 +35,6 @@ brew "topgrade"
|
||||
brew "tree"
|
||||
brew "vim"
|
||||
brew "yt-dlp"
|
||||
#brew "trippy"
|
||||
brew "zsh"
|
||||
brew "zsh-completions"
|
||||
|
||||
@@ -56,7 +47,6 @@ cask "font-source-code-pro"
|
||||
cask "actual"
|
||||
cask "adobe-creative-cloud"
|
||||
cask "airbuddy"
|
||||
cask "minecraft"
|
||||
cask "filebot"
|
||||
cask "firefox"
|
||||
cask "ghostty"
|
||||
@@ -69,20 +59,17 @@ cask "google-chrome"
|
||||
cask "raspberry-pi-imager"
|
||||
cask "hammerspoon"
|
||||
cask "hazel"
|
||||
# cask "hiddenbar"
|
||||
cask "jordanbaird-ice"
|
||||
cask "thawt"
|
||||
cask "karabiner-elements"
|
||||
cask "marked"
|
||||
cask "moneymoney"
|
||||
cask "pdf-expert"
|
||||
cask "transmit"
|
||||
# cask "whichspace"
|
||||
cask "calibre"
|
||||
cask "coconutbattery"
|
||||
cask "visual-studio-code"
|
||||
cask "itsycal"
|
||||
cask "stats"
|
||||
# cask "iterm2"
|
||||
cask "dbeaver-community"
|
||||
cask "discord"
|
||||
cask "inkscape"
|
||||
@@ -92,7 +79,6 @@ cask "microsoft-teams"
|
||||
cask "monitorcontrol"
|
||||
cask "nextcloud"
|
||||
cask "numi"
|
||||
# cask "rectangle"
|
||||
cask "sol"
|
||||
cask "spotify"
|
||||
cask "sourcegit"
|
||||
|
||||
@@ -10,3 +10,13 @@ golang.go
|
||||
usernamehw.indent-one-space
|
||||
Yummygum.city-lights-icon-vsc
|
||||
zbr.vscode-ansible
|
||||
kamikillerto.vscode-colorize
|
||||
emilast.LogFileHighlighter
|
||||
esbenp.prettier-vscode
|
||||
ESPHome.esphome-vscode
|
||||
keesschollaart.vscode-home-assistant
|
||||
lukas-tr.materialdesignicons-intellisense
|
||||
netcorext.uuid-generator
|
||||
oderwat.indent-rainbow
|
||||
redhat.vscode-yaml
|
||||
usernamehw.errorlens
|
||||
@@ -7,7 +7,7 @@
|
||||
"editor.wordWrap": "on",
|
||||
"workbench.startupEditor": "newUntitledFile",
|
||||
"workbench.fontAliasing": "auto",
|
||||
"terminal.external.osxExec": "iTerm.app",
|
||||
"terminal.external.osxExec": "Ghostty.app",
|
||||
"workbench.colorTheme": "Nord",
|
||||
"workbench.preferredDarkColorTheme": "Nord",
|
||||
"workbench.iconTheme": "city-lights-icons-vsc",
|
||||
@@ -1,12 +1,6 @@
|
||||
# This needs jankyborders and hyperkey installed.
|
||||
# Hyperkey must configured configured to use caps lock as hyperkey und must not include shift in hyperkey.
|
||||
# Hyperkey must be configured to use caps lock as hyperkey and must not include shift in hyperkey.
|
||||
|
||||
|
||||
# Place a copy of this config to ~/.aerospace.toml
|
||||
# After that, you can edit ~/.aerospace.toml to your liking
|
||||
|
||||
# You can use it to add commands that run after login to macOS user session.
|
||||
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
|
||||
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||
after-login-command = []
|
||||
|
||||
@@ -16,7 +10,7 @@ after-login-command = []
|
||||
# JankyBorders has a built-in detection of already running process,
|
||||
# so it won't be run twice on AeroSpace restart
|
||||
after-startup-command = [
|
||||
'exec-and-forget borders active_color=0xffeff1f5 inactive_color=0xff8c8fa1 width=10.0'
|
||||
'exec-and-forget borders active_color=0xffeff1f5 inactive_color=0xff8c8fa1 width=3.0'
|
||||
]
|
||||
|
||||
# Start AeroSpace at login
|
||||
@@ -142,30 +136,6 @@ cmd-ctrl-alt-shift-4 = 'move-node-to-workspace 4'
|
||||
cmd-ctrl-alt-shift-5 = 'move-node-to-workspace 5'
|
||||
cmd-ctrl-alt-shift-6 = 'move-node-to-workspace 6'
|
||||
cmd-ctrl-alt-shift-7 = 'move-node-to-workspace 7'
|
||||
# cmd-ctrl-alt-shift-8 = 'move-node-to-workspace 8'
|
||||
# cmd-ctrl-alt-shift-9 = 'move-node-to-workspace 9'
|
||||
# alt-shift-a = 'move-node-to-workspace A'
|
||||
# alt-shift-b = 'move-node-to-workspace B'
|
||||
# alt-shift-c = 'move-node-to-workspace C'
|
||||
# alt-shift-d = 'move-node-to-workspace D'
|
||||
# alt-shift-e = 'move-node-to-workspace E'
|
||||
# alt-shift-f = 'move-node-to-workspace F'
|
||||
# alt-shift-g = 'move-node-to-workspace G'
|
||||
# alt-shift-i = 'move-node-to-workspace I'
|
||||
# alt-shift-m = 'move-node-to-workspace M'
|
||||
# alt-shift-n = 'move-node-to-workspace N'
|
||||
# alt-shift-o = 'move-node-to-workspace O'
|
||||
# alt-shift-p = 'move-node-to-workspace P'
|
||||
# alt-shift-q = 'move-node-to-workspace Q'
|
||||
# alt-shift-r = 'move-node-to-workspace R'
|
||||
# alt-shift-s = 'move-node-to-workspace S'
|
||||
# alt-shift-t = 'move-node-to-workspace T'
|
||||
# alt-shift-u = 'move-node-to-workspace U'
|
||||
# alt-shift-v = 'move-node-to-workspace V'
|
||||
# alt-shift-w = 'move-node-to-workspace W'
|
||||
# alt-shift-x = 'move-node-to-workspace X'
|
||||
# alt-shift-y = 'move-node-to-workspace Y'
|
||||
# alt-shift-z = 'move-node-to-workspace Z'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
|
||||
cmd-ctrl-alt-tab = 'workspace-back-and-forth'
|
||||
@@ -173,7 +143,6 @@ cmd-ctrl-alt-tab = 'workspace-back-and-forth'
|
||||
cmd-ctrl-alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
||||
# alt-shift-sfemicolon = 'mode service'
|
||||
cmd-ctrl-alt-s = 'mode service'
|
||||
|
||||
# 'service' binding mode declaration.
|
||||
@@ -237,10 +206,6 @@ if.app-id = 'com.apple.AddressBook'
|
||||
run = 'move-node-to-workspace 4'
|
||||
|
||||
## Workspace 5: Shell
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.googlecode.iterm2'
|
||||
run = 'move-node-to-workspace 5'
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.mitchellh.ghostty'
|
||||
run = 'move-node-to-workspace 5'
|
||||
@@ -289,4 +254,4 @@ inherit-env-vars = true
|
||||
|
||||
## Add homebrew prefix to path
|
||||
[exec.env-vars]
|
||||
PATH = '$(brew --prefix)/bin:/$(brew --prefix)/sbin:${PATH}'
|
||||
PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
font-family = MesloLGM Nerd Font Mono
|
||||
font-thicken = true
|
||||
font-size = 15
|
||||
theme = catppuccin-mocha
|
||||
theme = Catppuccin Mocha
|
||||
|
||||
cursor-opacity = 0.5
|
||||
cursor-style-blink = true
|
||||
@@ -9,6 +9,16 @@ cursor-style-blink = true
|
||||
background-opacity = 0.9
|
||||
background-blur-radius = 20
|
||||
|
||||
initial-command = /opt/homebrew/bin/tmux a -d
|
||||
initial-command = /opt/homebrew/bin/tmux new -A -s main
|
||||
quit-after-last-window-closed = true
|
||||
|
||||
window-inherit-font-size = true
|
||||
window-height = 33
|
||||
window-width = 130
|
||||
|
||||
mouse-hide-while-typing = true
|
||||
shell-integration = zsh
|
||||
clipboard-paste-protection = false
|
||||
|
||||
macos-titlebar-style = native
|
||||
keybind = shift+enter=text:\n
|
||||
@@ -1,7 +1,7 @@
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[user]
|
||||
name = Christian Baer
|
||||
name = Christian Busch
|
||||
email = chris@debilux.org
|
||||
[core]
|
||||
editor = vim
|
||||
editor = vim
|
||||
@@ -1,95 +1,100 @@
|
||||
### General Settings
|
||||
# Enable mouse support in tmux
|
||||
# Mouse support
|
||||
set -g mouse on
|
||||
|
||||
# Set the default terminal type to "tmux-256color" for better color support
|
||||
# Terminal type
|
||||
set -g default-terminal "tmux-256color"
|
||||
|
||||
# Set the base index for windows to 1 (instead of the default 0)
|
||||
# Window base index
|
||||
set -g base-index 1
|
||||
|
||||
# Set the base index for panes to 1 (instead of the default 0)
|
||||
# Pane base index
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# Increase the history limit (useful for longer command histories)
|
||||
# History limit
|
||||
set-option -g history-limit 10000
|
||||
|
||||
### Startup Configuration
|
||||
# Start a new session named "main" if none exists
|
||||
new-session -s main
|
||||
|
||||
# Start htop and split the window when the session "main" is created
|
||||
set-hook -t main session-created 'send-keys -t main:1 "sudo htop" C-m; split-window'
|
||||
# Ensure main session exists and setup startup layout
|
||||
if-shell 'tmux has-session -t main 2>/dev/null' '' 'new-session -ds main; send-keys -t main:1 "htop" C-m; split-window -t main:1'
|
||||
|
||||
### Key Bindings
|
||||
# Remap the prefix key from 'C-b' (Ctrl-b) to 'C-a' (Ctrl-a)
|
||||
# Prefix key
|
||||
unbind C-b
|
||||
set-option -g prefix C-a
|
||||
bind-key C-a send-prefix
|
||||
|
||||
# Split panes using 'h' for horizontal and 'v' for vertical splits
|
||||
# Pane splits
|
||||
bind "h" split-window -h
|
||||
bind "v" split-window -v
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# Reload the tmux configuration file with 'r'
|
||||
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf
|
||||
# Reload config
|
||||
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf \; display-message "tmux config reloaded"
|
||||
|
||||
### Clipboard Integration
|
||||
# Clipboard
|
||||
set -s set-clipboard on
|
||||
set -ag terminal-overrides ",*:Ms=\\E]52;c;%p2%s\\7"
|
||||
|
||||
# Copy mode
|
||||
setw -g mode-keys vi
|
||||
|
||||
# Copy bindings
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "$XDG_CONFIG_HOME/tmux/yank.sh"
|
||||
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "$XDG_CONFIG_HOME/tmux/yank.sh"
|
||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "$XDG_CONFIG_HOME/tmux/yank.sh"
|
||||
|
||||
### Status and Window Configuration
|
||||
# Set the status bar update interval to 1 second
|
||||
# Status interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Enable automatic renaming of windows
|
||||
# Auto rename
|
||||
set-option -g automatic-rename on
|
||||
|
||||
# Set window title to the current directory if the process is zsh, otherwise show the process name with arguments
|
||||
# Rename format
|
||||
set-option -g automatic-rename-format '#{?#{==:#{pane_current_command},zsh},#(echo #{pane_current_path} | sed "s|^$HOME|~|"),#{pane_current_command}}'
|
||||
|
||||
# Set the color of the clock mode
|
||||
# Clock color
|
||||
set -g clock-mode-colour "#8bd5ca"
|
||||
|
||||
# Set the style for copy mode (foreground black, background a specific color, bold text)
|
||||
# Copy mode style
|
||||
set -g mode-style 'fg=black bg=#ed8796 bold'
|
||||
|
||||
# Set the style for pane borders
|
||||
# Pane borders
|
||||
set -g pane-border-style 'fg=white'
|
||||
set -g pane-active-border-style 'fg=#8bd5ca'
|
||||
|
||||
### Status Bar Configuration
|
||||
# Position the status bar at the bottom
|
||||
# Status position
|
||||
set -g status-position bottom
|
||||
|
||||
# Align status bar items to the left
|
||||
# Status justify
|
||||
set -g status-justify left
|
||||
|
||||
# Set the style for the status bar
|
||||
set -g status-style 'fg=white,bg=#262626'
|
||||
# Status style
|
||||
set -g status-style 'fg=white,bg=#262626'
|
||||
|
||||
# Clear the default left status
|
||||
set -g status-left ''
|
||||
# Clear status left
|
||||
set -g status-left ''
|
||||
|
||||
# Set the maximum length for the left status
|
||||
set -g status-left-length 30
|
||||
# Status left length
|
||||
set -g status-left-length 30
|
||||
|
||||
## Session name in the status bar
|
||||
set -ga status-left "#[bg=#444444,fg=white] #S "
|
||||
# Session and prefix
|
||||
set -ga status-left '#[fg=#cad3f5,bg=#1e1e2e] #S #[fg=#{?client_prefix,#f38ba8,#585b70}]● '
|
||||
|
||||
# Display different colors for the session name based on whether the prefix is active
|
||||
set -ga status-left '#[fg=black]#{?client_prefix,#[bg=#ed8796] S ,#[bg=#a6da95] S }'
|
||||
set -ga status-left '#[bg=#262626] '
|
||||
# Window tabs
|
||||
setw -g window-status-format '#[fg=#cdd6f4,bg=#313244] #I: #W #[fg=#cdd6f4,bg=#1e1e2e] '
|
||||
setw -g window-status-current-format '#[fg=#1e1e2e,bg=#cba6f7,bold] #I: #W #[fg=#cdd6f4,bg=#1e1e2e,nobold] '
|
||||
|
||||
# Set window status format to include the current directory or command
|
||||
setw -g window-status-format '#[bg=#8787AF,fg=black] #I #[bg=#585B70,fg=white] #W #F '
|
||||
# Window separator
|
||||
set -g window-status-separator ''
|
||||
|
||||
# Set the current window status format to include the current directory or command
|
||||
setw -g window-status-current-format '#[bg=#c6a0f6,fg=black] #I #[bg=#585B70,fg=white] #W #F '
|
||||
|
||||
# Set the separator between window statuses
|
||||
set -g window-status-separator " "
|
||||
|
||||
# Status bar right settings (display host information)
|
||||
set -g status-right "#[fg=black,bg=#7dc4e4] H #[fg=white,bg=brightblack] #H "
|
||||
|
||||
# Set the maximum length for the right status
|
||||
set -g status-right-length 40
|
||||
# Status right
|
||||
set -g status-right ''
|
||||
set -g status-right-length 50
|
||||
set -ga status-right '#{?SSH_CONNECTION,#[fg=#1e1e2e#,bg=#fab387#,bold] SSH #[fg=#cdd6f4#,bg=#1e1e2e#,nobold] ,}'
|
||||
set -ga status-right '#[fg=#1e1e2e,bg=#94e2d5,bold] #H #[fg=#cdd6f4,bg=#1e1e2e,nobold]'
|
||||
24
.config/tmux/yank.sh
Normal file
24
.config/tmux/yank.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
# tmux clipboard helper - works locally and over SSH/mosh
|
||||
|
||||
set -eu
|
||||
|
||||
# Read from stdin
|
||||
buf=$(cat)
|
||||
|
||||
# Try methods in order of preference
|
||||
|
||||
# Method 1: Use pbcopy if available (local macOS)
|
||||
if command -v pbcopy >/dev/null 2>&1; then
|
||||
printf '%s' "$buf" | pbcopy
|
||||
# Method 2: OSC 52 (for mosh/ssh)
|
||||
elif [ -n "${TMUX:-}" ]; then
|
||||
# Get the tmux tty
|
||||
tmux_tty=$(tmux display-message -p '#{client_tty}')
|
||||
|
||||
# Encode in base64
|
||||
encoded=$(printf "%s" "$buf" | base64 | tr -d '\n')
|
||||
|
||||
# Send OSC 52 sequence
|
||||
printf "\033]52;c;%s\a" "$encoded" > "$tmux_tty"
|
||||
fi
|
||||
@@ -1,13 +1,14 @@
|
||||
set undodir=${VIMDOTDIR}/undo
|
||||
set directory=${VIMDOTDIR}/swap
|
||||
set backupdir=${VIMDOTDIR}/backup
|
||||
set viewdir=${VIMDOTDIR}/view
|
||||
set viminfo+='1000,n${VIMDOTDIR}/viminfo
|
||||
set nocompatible " Vim defaults rather than vi ones. Keep at top.
|
||||
|
||||
set undodir=$VIMDOTDIR/undo
|
||||
set directory=$VIMDOTDIR/swap
|
||||
set backupdir=$VIMDOTDIR/backup
|
||||
set viewdir=$VIMDOTDIR/view
|
||||
set viminfo+='1000,n$VIMDOTDIR/viminfo
|
||||
set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after
|
||||
|
||||
|
||||
" Install vim-plug if not found
|
||||
if empty(glob('${VIMDOTDIR}/autoload/plug.vim'))
|
||||
if empty(glob($VIMDOTDIR.'/autoload/plug.vim'))
|
||||
silent !curl -fLo ${VIMDOTDIR}/autoload/plug.vim --create-dirs
|
||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
endif
|
||||
@@ -18,18 +19,11 @@ autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
\| endif
|
||||
|
||||
" Specify a directory for plugins
|
||||
" Install plugins
|
||||
call plug#begin('$VIMDOTDIR/plugged')
|
||||
|
||||
Plug 'elzr/vim-json'
|
||||
Plug 'arcticicestudio/nord-vim'
|
||||
|
||||
" Initialize plugin system
|
||||
call plug#begin($VIMDOTDIR.'/plugged')
|
||||
Plug 'elzr/vim-json'
|
||||
Plug 'catppuccin/vim', { 'as': 'catppuccin' }
|
||||
call plug#end()
|
||||
|
||||
set nocompatible " Vim defaults rather than vi ones. Keep at top.
|
||||
filetype plugin indent on " Enable filetype-specific settings.
|
||||
syntax on " Enable syntax highlighting.
|
||||
set backspace=2 " Make the backspace behave as most applications.
|
||||
set autoindent " Use current indent for new lines.
|
||||
set display=lastline " Show as much of the line as will fit.
|
||||
@@ -48,18 +42,24 @@ set nrformats-=octal " Remove octal support from 'nrformats'.
|
||||
set tabstop=2 " Size of a Tab character.
|
||||
set shiftwidth=2 " Use same value as 'tabstop'.
|
||||
set softtabstop=2 " Use same value as 'shiftwidth'.
|
||||
set encoding=utf-8 " Set encoding
|
||||
color nord " Use Nord color scheme
|
||||
set list listchars=tab:»⤍·,trail:·,eol:¤,nbsp:˽ " Show invisible chars
|
||||
" set colorcolumn=80 " Highlight the 80th collumn
|
||||
set wrap linebreak nolist " Softwrap long lines at window border, don't break words
|
||||
set showbreak= " Intend softwrapped lines with unbreakable space
|
||||
set termguicolors " Enable true color support
|
||||
color catppuccin_mocha " Use Catppuccin Mocha color scheme
|
||||
set listchars=tab:»·,trail:·,eol:¤,nbsp:ʽ " Define invisible chars
|
||||
set wrap linebreak " Softwrap long lines at window border, don't break words
|
||||
set showbreak= " Indent softwrapped lines with unbreakable space
|
||||
|
||||
" Highlight the line the cursor is on in markdown files
|
||||
autocmd FileType markdown set cursorline
|
||||
" Filetype-specific settings
|
||||
augroup filetypes
|
||||
autocmd!
|
||||
autocmd FileType markdown set cursorline
|
||||
autocmd BufNewFile,BufRead *.md set filetype=markdown
|
||||
autocmd FileType make set noexpandtab
|
||||
autocmd FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
|
||||
augroup end
|
||||
|
||||
" Go to the last cursor location when opening a file.
|
||||
augroup jump
|
||||
autocmd!
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||
\| exe 'normal! g`"'
|
||||
@@ -73,18 +73,3 @@ fun! s:trim_whitespace()
|
||||
call winrestview(l:save)
|
||||
endfun
|
||||
command! TrimWhitespace call s:trim_whitespace()
|
||||
|
||||
" Highlight characters behind the 80 chars margin
|
||||
" :au BufWinEnter * let w:m2=matchadd('ColumnMargin', '\%>80v.\+', -1)
|
||||
|
||||
" Treat all .md files as markdown
|
||||
autocmd BufNewFile,BufRead *.md set filetype=markdown
|
||||
|
||||
" make uses real tabs
|
||||
au FileType make set noexpandtab
|
||||
|
||||
" add json syntax highlighting
|
||||
au BufNewFile,BufRead *.json set ft=javascript
|
||||
|
||||
" make Python follow PEP8 ( http://www.python.org/dev/peps/pep-0008/ )
|
||||
au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
## Load config files in $ZSH/lib that for stage 3
|
||||
for config_file (${ZLIBDIR}/30-*.zsh) source $config_file
|
||||
unset config_file
|
||||
|
||||
## Compile startup files
|
||||
zwcautocompile
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
|
||||
# Load config files in $ZSH/lib that for stage 2
|
||||
for config_file (${ZLIBDIR}/20-*.zsh) source $config_file
|
||||
unset config_file
|
||||
|
||||
@@ -10,12 +10,12 @@ function dc() {
|
||||
# Save current working directory
|
||||
CURRENT_DIR="${PWD}"
|
||||
|
||||
for file in $(find ${PWD} -maxdepth 2 -type f -regextype posix-extended -regex '.*(docker-compose|compose)\.ya?ml' | sort); do
|
||||
cd $(dirname "$file")
|
||||
docker compose $@
|
||||
for file in $(find "${PWD}" -maxdepth 2 -type f \( -name "docker-compose.yml" -o -name "docker-compose.yaml" -o -name "compose.yml" -o -name "compose.yaml" \) | sort); do
|
||||
cd "$(dirname "$file")"
|
||||
docker compose "$@"
|
||||
done
|
||||
|
||||
# Change back to saved working directory
|
||||
cd ${CURRENT_DIR}
|
||||
cd "${CURRENT_DIR}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ function extract() {
|
||||
echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
|
||||
return 1
|
||||
else
|
||||
for n in $@; do
|
||||
for n in "$@"; do
|
||||
if [ -f "$n" ]; then
|
||||
case "${n%,}" in
|
||||
*.tar.bz2 | *.tar.gz | *.tar.xz | *.tbz2 | *.tgz | *.txz | *.tar)
|
||||
|
||||
@@ -3,19 +3,19 @@
|
||||
function zwcautocompile() {
|
||||
autoload -Uz zrecompile
|
||||
|
||||
for f in $(find ${ZDOTDIR} -maxdepth 3 -type f \( -name "*.zsh" -o -name ".zlogin" -o -name ".zshrc" \) ! -name "*.zwc" ! -name "*.zwc.old"); do
|
||||
zrecompile -pq ${f} && rm -f ${f}.zwc.old
|
||||
for f in $(find "${ZDOTDIR}" -maxdepth 3 -type f \( -name "*.zsh" -o -name ".zlogin" -o -name ".zshrc" \) ! -name "*.zwc" ! -name "*.zwc.old"); do
|
||||
zrecompile -pq "${f}" && rm -f "${f}.zwc.old"
|
||||
done
|
||||
|
||||
if [[ -d ${ZAUTOLOADDIR} ]]; then
|
||||
for f in ${ZAUTOLOADDIR}/*; do
|
||||
zrecompile -pq ${f} && rm -f ${f}.zwc.old
|
||||
if [[ -d "${ZAUTOLOADDIR}" ]]; then
|
||||
for f in "${ZAUTOLOADDIR}"/*; do
|
||||
zrecompile -pq "${f}" && rm -f "${f}.zwc.old"
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -d ${ZLIBDIR} ]]; then
|
||||
for f in ${ZLIBDIR}/*; do
|
||||
zrecompile -pq ${f} && rm -f ${f}.zwc.old
|
||||
if [[ -d "${ZLIBDIR}" ]]; then
|
||||
for f in "${ZLIBDIR}"/*; do
|
||||
zrecompile -pq "${f}" && rm -f "${f}.zwc.old"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
function zwcpurge() {
|
||||
autoload -Uz zrecompile
|
||||
for zsh_file in $(find ${ZDOTDIR} -maxdepth 3 -type f \( -name "*.zwc" -o -name "*.zwc.old" \)); do
|
||||
rm -f ${zsh_file}
|
||||
for zsh_file in $(find "${ZDOTDIR}" -maxdepth 3 -type f \( -name "*.zwc" -o -name "*.zwc.old" \)); do
|
||||
rm -f "${zsh_file}"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -4,15 +4,19 @@ typeset -U path # No duplicates
|
||||
path=()
|
||||
|
||||
_prepath() {
|
||||
for dir in "$@"; do
|
||||
dir=${dir:A}
|
||||
[[ ! -d "$dir" ]] && return
|
||||
path=("$dir" $path)
|
||||
done
|
||||
for dir in "$@"; do
|
||||
dir=${dir:A}
|
||||
[[ ! -d "$dir" ]] && continue
|
||||
path=("$dir" $path)
|
||||
done
|
||||
}
|
||||
|
||||
_prepath /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin # BSD and macOS
|
||||
_prepath /opt/homebrew/bin /opt/homebrew/sbin /usr/local/bin # Homebrew on macOS
|
||||
_prepath ~/bin ~/.local/bin # $HOME
|
||||
_prepath /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin # System
|
||||
_prepath /var/lib/flatpak/exports/bin # Flatpak (Linux, system)
|
||||
_prepath /snap/bin # Snap (Linux)
|
||||
_prepath /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/sbin # Homebrew (Linux)
|
||||
_prepath /opt/homebrew/bin /opt/homebrew/sbin # Homebrew (macOS)
|
||||
_prepath ~/.local/share/flatpak/exports/bin # Flatpak (Linux, user)
|
||||
_prepath ~/.local/bin ~/bin # $HOME
|
||||
|
||||
unfunction _prepath
|
||||
|
||||
@@ -18,25 +18,20 @@ fi
|
||||
if ! _exists fetch; then
|
||||
if _exists curl; then
|
||||
alias fetch="curl -O"
|
||||
elif _exists curl; then
|
||||
elif _exists wget; then
|
||||
alias fetch="wget"
|
||||
else
|
||||
echo "fetch not found."
|
||||
fi
|
||||
fi
|
||||
|
||||
# htop
|
||||
if _exists htop; then
|
||||
alias htop="sudo htop"
|
||||
fi
|
||||
|
||||
unfunction _exists
|
||||
|
||||
alias mkdir="mkdir -p"
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias google="ping -c 10240000 google.com"
|
||||
alias google="ping google.com"
|
||||
alias history="history -i"
|
||||
|
||||
case `uname` in
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
if [[ -d "${ZAUTOLOADDIR}" ]]; then
|
||||
|
||||
fpath=($fpath ${ZAUTOLOADDIR})
|
||||
fpath=(${ZAUTOLOADDIR} $fpath)
|
||||
|
||||
# Load functions
|
||||
for func in ${ZAUTOLOADDIR}/*; do
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
## Command history configuration
|
||||
export HISTFILE="${ZCACHE}/history"
|
||||
export HISTSIZE=1000000000
|
||||
export HISTSIZE=1000000
|
||||
export SAVEHIST=${HISTSIZE}
|
||||
export HISTORY_IGNORE="([bf]g *|disown|cd ..|cd -)"
|
||||
|
||||
export HISTTIMEFORMAT="[%F %T] "
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt EXTENDED_HISTORY
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_FIND_NO_DUPS
|
||||
setopt hist_ignore_dups
|
||||
setopt hist_verify
|
||||
setopt incappendhistory
|
||||
setopt histignorespace
|
||||
setopt histnostore
|
||||
setopt share_history
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_VERIFY
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_NO_STORE
|
||||
@@ -10,7 +10,7 @@ setopt long_list_jobs
|
||||
|
||||
## pager
|
||||
export LC_CTYPE=$LANG
|
||||
export LC_ALL=de_DE.UTF-8
|
||||
export LANG=de_DE.UTF-8
|
||||
export IOCAGE_COLOR=TRUE
|
||||
|
||||
## Set some app specific dirs with XDM scheme
|
||||
|
||||
42
.config/zsh/conf.d/30-ssh-agent.zsh
Normal file
42
.config/zsh/conf.d/30-ssh-agent.zsh
Normal file
@@ -0,0 +1,42 @@
|
||||
## SSH Agent - Load all keys from ~/.ssh/keys/ on startup
|
||||
|
||||
# On macOS, use the system keychain ssh-agent
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
# macOS uses a system-wide ssh-agent
|
||||
# Just add keys if they're not already loaded
|
||||
if [[ -d "$HOME/.ssh/keys" ]]; then
|
||||
for key in "$HOME/.ssh/keys"/*; do
|
||||
# Skip .pub files and non-existent files
|
||||
[[ "$key" == *.pub ]] && continue
|
||||
[[ ! -f "$key" ]] && continue
|
||||
|
||||
# Check if key is already in agent
|
||||
if ! ssh-add -l 2>/dev/null | grep -q "$(ssh-keygen -lf "$key" 2>/dev/null | awk '{print $2}')"; then
|
||||
# Add key to agent (macOS will use keychain)
|
||||
ssh-add --apple-use-keychain "$key" 2>/dev/null
|
||||
fi
|
||||
done
|
||||
fi
|
||||
else
|
||||
# Linux/BSD: Start ssh-agent if not running
|
||||
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
|
||||
( umask 077; ssh-agent -t 1h > "$HOME/.ssh-agent.env" )
|
||||
fi
|
||||
|
||||
# Source ssh-agent environment
|
||||
if [[ ! -S "$SSH_AUTH_SOCK" && -f "$HOME/.ssh-agent.env" ]]; then
|
||||
source "$HOME/.ssh-agent.env" >/dev/null
|
||||
fi
|
||||
|
||||
# Add all private keys from ~/.ssh/keys/
|
||||
if [[ -d "$HOME/.ssh/keys" ]]; then
|
||||
for key in "$HOME/.ssh/keys"/*; do
|
||||
[[ "$key" == *.pub ]] && continue
|
||||
[[ ! -f "$key" ]] && continue
|
||||
|
||||
if ! ssh-add -l 2>/dev/null | grep -q "$(ssh-keygen -lf "$key" 2>/dev/null | awk '{print $2}')"; then
|
||||
ssh-add -t 1h "$key" 2>/dev/null
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
@@ -1,6 +1,6 @@
|
||||
# get zsh_unplugged and store it with your other plugins
|
||||
if [[ ! -d ${ZPLUGINDIR}/zsh_unplugged ]]; then
|
||||
git clone --quiet https://github.com/mattmc3/zsh_unplugged ${ZPLUGINDIR}/zsh_unplugged
|
||||
git clone --quiet --depth 1 https://github.com/mattmc3/zsh_unplugged ${ZPLUGINDIR}/zsh_unplugged
|
||||
fi
|
||||
source ${ZPLUGINDIR}/zsh_unplugged/zsh_unplugged.zsh
|
||||
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -18,8 +18,6 @@ Thumbs.db
|
||||
*.sublime-*
|
||||
*.log
|
||||
.zsh/lib/30-extra.zsh
|
||||
.gitsecret/keys/random_seed
|
||||
!*.secret
|
||||
.config/espanso/user/email.yml
|
||||
.config/espanso/user/misc.yml
|
||||
.config/espanso/user/people.yml
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +0,0 @@
|
||||
.config/espanso/user/email.yml:ac89cab929dc42d24287c7ee1e88c6d10a1ef2df37ad3158c17c7db2538b857c
|
||||
.config/espanso/user/misc.yml:88886c9af9155c2394592367f219dd9720e773be8f0f6bf1ec3f7e59fcaed662
|
||||
.config/espanso/user/people.yml:f4dd3b40a0c53978bd96f66c79d9fbc1668ec57c4e46d6fce0e7b30d8d8358c2
|
||||
.config/espanso/user/personal.yml:5852be346f3f23f067e1c5e2e44a3632d4a7ca36ffe425c20bc8753793bd8df6
|
||||
.config/zsh/lib/30-extras.zsh:7e5f2d74e2477cb8cb1035a88e9e1ede0f3657a94ac5b957db5acf3e6142d388
|
||||
.ssh/conf.d/hosts.conf:763ca28ef20475b3954c2371cc253147b5019763225e42366255e2f15b4669e7
|
||||
Binary file not shown.
@@ -3,6 +3,10 @@ ControlMaster auto
|
||||
ControlPath ~/.ssh/master/control-%h-%p-%r
|
||||
ControlPersist 600
|
||||
|
||||
## Use macOS keychain for SSH keys
|
||||
AddKeysToAgent yes
|
||||
UseKeychain yes
|
||||
|
||||
## Disbale GSSAPI authentication to speedup connecting
|
||||
GSSAPIAuthentication=no
|
||||
|
||||
|
||||
1
.zshenv
1
.zshenv
@@ -15,3 +15,4 @@ export ZCACHE="${XDG_CACHE_HOME}/zsh" # Cache directory for history and zcompdum
|
||||
|
||||
# Load config files in $ZSH/lib that for stage 1
|
||||
for config_file (${ZLIBDIR}/10-*.zsh) source $config_file
|
||||
unset config_file
|
||||
|
||||
71
Makefile
71
Makefile
@@ -1,5 +1,12 @@
|
||||
SHELL = /bin/sh
|
||||
HOMEDIR = ${HOME}
|
||||
UNAME_S = $(shell uname -s)
|
||||
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
VSCODE_USER_DIR = ${HOMEDIR}/Library/Application Support/Code/User
|
||||
else
|
||||
VSCODE_USER_DIR = ${HOMEDIR}/.config/Code/User
|
||||
endif
|
||||
|
||||
|
||||
.PHONY: help all
|
||||
@@ -12,31 +19,19 @@ HOMEDIR = ${HOME}
|
||||
help: ## This help
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[1;1;36m%-30s\033[1;0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
|
||||
all: git-fetch git-secrets-reveal deploy-macos ## Update repo, decrypt secrets and run deploy-macos
|
||||
all: git-fetch deploy-macos ## Update repo and run deploy-macos
|
||||
|
||||
install: git-fetch deploy-base ## Update repor and run deploy-base
|
||||
|
||||
deploy-base: deploy-eza deploy-tmux deploy-vim deploy-zsh deploy-ssh deploy-hushlogin ## Only deploy basic conf files for shell usage
|
||||
deploy-base: deploy-eza deploy-tmux deploy-vim deploy-zsh deploy-ssh deploy-hushlogin deploy-git deploy-htop ## Only deploy basic conf files for shell usage
|
||||
|
||||
deploy-workstation: deploy-base deploy-vscodium deploy-youtubedl ## Deploy workstation specific config files (inherits deploy-shell)
|
||||
deploy-workstation: deploy-base deploy-vscode deploy-ghostty ## Deploy workstation specific config files (inherits deploy-shell)
|
||||
|
||||
deploy-macos: deploy-htop deploy-workstation deploy-brewfile ## Deploy macOS specific config files (inherits deploy-workstation)
|
||||
deploy-macos: deploy-workstation deploy-brewfile deploy-aerospace deploy-karabiner ## Deploy macOS specific config files (inherits deploy-workstation)
|
||||
|
||||
gen-vscodium-plugin-list: ## Update the list of VSCodium plugins
|
||||
@echo "\033[1;32m>>>\033[1;0m Updating the list of VSCodium plugins at .config/VSCodium/UserUser/extensions.list"
|
||||
@code --list-extensions > .config/VSCodium/UserUser/extensions.list
|
||||
|
||||
git-secrets-hide: ## Hide secrets with git-secret
|
||||
@echo "\033[1;32m>>>\033[1;0m Encrypting secrets."
|
||||
@git secret hide
|
||||
@echo "\033[1;32m>>>\033[1;0m Creating commit."
|
||||
@git add -A && git commit -m "Updated secrets."
|
||||
|
||||
git-secrets-reveal: ## Reveal secrets with git-secret
|
||||
@echo "\033[1;32m>>>\033[1;0m Decrypting secrets."
|
||||
@git secret reveal
|
||||
@echo "\033[1;32m>>>\033[1;0m Remove encrypted files."
|
||||
@git secret clean
|
||||
gen-vscode-extension-list: ## Update the list of VSCode extensions
|
||||
@echo "\033[1;32m>>>\033[1;0m Updating the list of VSCode extensions at .config/Code/User/extensions.list"
|
||||
@code --list-extensions > .config/Code/User/extensions.list
|
||||
|
||||
git-fetch: ## Fetch changes from origin
|
||||
@echo "\033[1;32m>>>\033[1;0m Fetching changes from origin."
|
||||
@@ -73,6 +68,8 @@ deploy-tmux: ## Deploy tmux config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy tmux config to ${HOMEDIR}/.config/tmux"
|
||||
@mkdir -p ${HOMEDIR}/.config/tmux
|
||||
@cp .config/tmux/*.conf ${HOMEDIR}/.config/tmux
|
||||
@cp .config/tmux/*.sh ${HOMEDIR}/.config/tmux
|
||||
@chmod +x ${HOMEDIR}/.config/tmux/*.sh
|
||||
|
||||
deploy-vim: ## Deploy vim config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy vim config to ${HOMEDIR}/.config/vim"
|
||||
@@ -85,18 +82,34 @@ deploy-vim: ## Deploy vim config
|
||||
@mkdir -p ${HOMEDIR}/.config/vim/undo
|
||||
@cp .config/vim/vimrc ${HOMEDIR}/.config/vim
|
||||
|
||||
deploy-vscodium: ## Deploy VSCodium config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy VSCodium config to ${HOMEDIR}/.config/VSCodium/User"
|
||||
@mkdir -p ${HOMEDIR}/.config/VSCodium/User
|
||||
@cp .config/VSCodium/User/*.json ${HOMEDIR}/.config/VSCodium/User
|
||||
deploy-vscode: ## Deploy VSCode config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy VSCode config to ${VSCODE_USER_DIR}"
|
||||
@mkdir -p "${VSCODE_USER_DIR}"
|
||||
@cp .config/Code/User/*.json "${VSCODE_USER_DIR}"
|
||||
|
||||
@echo "\033[1;32m>>>\033[1;0m Install VSCodium extensions from ${HOMEDIR}/.config/VSCodium/User/extensions.list"
|
||||
@cat .config/VSCodium/User/extensions.list | xargs -L 1 code --install-extension
|
||||
@echo "\033[1;32m>>>\033[1;0m Install VSCode extensions from .config/Code/User/extensions.list"
|
||||
@cat .config/Code/User/extensions.list | xargs -L 1 code --install-extension
|
||||
|
||||
deploy-youtubedl: ## Deploy youtube-dl config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy youtube-dl config to ${HOMEDIR}/.config/youtube-dl"
|
||||
@mkdir -p ${HOMEDIR}/.config/youtube-dl
|
||||
@cp .config/youtube-dl/config ${HOMEDIR}/.config/youtube-dl
|
||||
deploy-aerospace: ## Deploy Aerospace config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy Aerospace config to ${HOMEDIR}/.config/aerospace"
|
||||
@mkdir -p ${HOMEDIR}/.config/aerospace
|
||||
@cp .config/aerospace/aerospace.toml ${HOMEDIR}/.config/aerospace
|
||||
|
||||
deploy-ghostty: ## Deploy Ghostty config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy Ghostty config to ${HOMEDIR}/.config/ghostty"
|
||||
@mkdir -p ${HOMEDIR}/.config/ghostty
|
||||
@cp .config/ghostty/config ${HOMEDIR}/.config/ghostty
|
||||
|
||||
deploy-git: ## Deploy Git config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy Git config to ${HOMEDIR}/.config/git"
|
||||
@mkdir -p ${HOMEDIR}/.config/git
|
||||
@cp .config/git/config ${HOMEDIR}/.config/git
|
||||
|
||||
deploy-karabiner: ## Deploy Karabiner config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy Karabiner config to ${HOMEDIR}/.config/karabiner"
|
||||
@mkdir -p ${HOMEDIR}/.config/karabiner/scripts
|
||||
@cp .config/karabiner/karabiner.json ${HOMEDIR}/.config/karabiner
|
||||
@cp .config/karabiner/scripts/*.scpt ${HOMEDIR}/.config/karabiner/scripts
|
||||
|
||||
deploy-zsh: ## Deploy zsh config
|
||||
@echo "\033[1;32m>>>\033[1;0m Deploy zsh config to ${HOMEDIR}/.config/zsh"
|
||||
|
||||
40
README.md
40
README.md
@@ -19,26 +19,26 @@ The repo ships with a Makefile that you can use to deploy and update the dotfile
|
||||
```shell
|
||||
# make help
|
||||
help This help
|
||||
all Update repo, decrypt secrets and run deploy-macos
|
||||
install Update repor and run deploy-base
|
||||
deploy-base Only deploy basic conf files for shell usage
|
||||
deploy-workstation Deploy workstation specific config files (inherits deploy-shell)
|
||||
all Update repo and run deploy-macos
|
||||
install Update repo and run deploy-base
|
||||
deploy-base Only deploy basic conf files for shell usage (eza, tmux, vim, zsh, ssh, hushlogin, git, htop)
|
||||
deploy-workstation Deploy platform-independent workstation config files (inherits deploy-base)
|
||||
deploy-macos Deploy macOS specific config files (inherits deploy-workstation)
|
||||
gen-vscodium-plugin-list Update the list of VSCodium plugins
|
||||
git-secrets-hide Hide secrets with git-secret
|
||||
git-secrets-reveal Reveal secrets with git-secret
|
||||
gen-vscode-extension-list Update the list of VSCode extensions
|
||||
git-fetch Fetch changes from origin
|
||||
git-push Push changes to origin
|
||||
git-update-submodules Update all submodules
|
||||
brew-bundle Install applications with brew bundle
|
||||
brew-bundle-cleanup Removew all appplications that are not listed in Brewfile
|
||||
deploy-duti Deploy duti config
|
||||
brew-bundle-cleanup Remove all applications that are not listed in Brewfile
|
||||
deploy-eza Deploy eza config
|
||||
deploy-htop Deploy htop config
|
||||
deploy-htop-zfs Deploy htop config with zfs
|
||||
deploy-tmux Deploy tmux config
|
||||
deploy-vim Deploy vim config
|
||||
deploy-vscodium Deploy VSCodium config
|
||||
deploy-youtubedl Deploy youtube-dl config
|
||||
deploy-vscode Deploy VSCode config
|
||||
deploy-aerospace Deploy Aerospace config
|
||||
deploy-ghostty Deploy Ghostty config
|
||||
deploy-git Deploy Git config
|
||||
deploy-karabiner Deploy Karabiner config
|
||||
deploy-zsh Deploy zsh config
|
||||
deploy-brewfile Deploy Brewfile
|
||||
deploy-ssh Deploy SSH config
|
||||
@@ -47,8 +47,6 @@ deploy-hushlogin Deploy .hushlogin
|
||||
|
||||
The dotfiles will be copied to your **~**.
|
||||
|
||||
The repo is initialized for beeing used with git-secret. My own personal secrets are pushed to the repo as well and can be decrypted with my GPG key.
|
||||
|
||||
## ZSH with bells and whistles
|
||||
|
||||
The ZSH config doesn’t use any frameworks and is tuned for speed.
|
||||
@@ -69,6 +67,16 @@ It also supports nested sessions with a modified color scheme. That’s nice whe
|
||||
|
||||

|
||||
|
||||
## Karabiner Elements
|
||||
|
||||
- Map Capslock to CTRl+OPT+CMD
|
||||
- Map Capslock+Shift to CTRl+OPT+CMD+Shift
|
||||
- Display start of Music on Play/Pause button and toggle playpause only in Spotify when it's running
|
||||
|
||||
# Aerospace
|
||||
|
||||
Shortcuts
|
||||
|
||||
## Installation
|
||||
|
||||
## ### Getting the dotfiles.
|
||||
@@ -80,15 +88,19 @@ git clone https://github.com/chrisb86/dotfiles.git
|
||||
### Deploying the dotfiles
|
||||
|
||||
For installing the base set for shell usage run
|
||||
|
||||
```shell
|
||||
make install
|
||||
```
|
||||
|
||||
For the fullfl edged setup with decrypting of the secrets use
|
||||
|
||||
```shell
|
||||
make install
|
||||
```
|
||||
|
||||
To list all avaliable commands run:
|
||||
|
||||
```shell
|
||||
make help
|
||||
```
|
||||
|
||||
151
init/fedora.sh
151
init/fedora.sh
@@ -1,151 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Hostname that should be set
|
||||
HOST="martha"
|
||||
|
||||
# dnf packages that should be installed
|
||||
FEDORA_PKG="zsh rsync tmux mosh htop hugo gnome-tweaks firefox thunderbird elementary-planner codium newsflash calibre adobe-source-code-pro-fonts fira-code-fonts zeal sequeler gitg deja-dup deja-dup-nautilus vim-enhanced marker ImageMagick nodejs npm util-linux-user nextcloud-client nextcloud-client-nautilus gnome-extensions-app papirus-icon-theme libreoffice-icon-theme-papirus vlc libappindicator libappindicator-gtk3 broadcom-wl portfolio-performance"
|
||||
|
||||
FEDORA_FLAT="com.spotify.client girens noson"
|
||||
|
||||
FEDORA_PIP="gnome-extensions-cli"
|
||||
|
||||
FEDORA_COPR="lray/PortfolioPerformance"
|
||||
|
||||
GNOME_SHELL_EXTENSIONS="appindicatorsupport@rgcjonas.gmail.com auto-move-windows@gnome-shell-extensions.gcampax.github.com blyr@yozoon.dev.gmail.com caffeine@patapon.info dash-to-dock@micxgx.gmail.com Hide_Activities@shay.shayel.org Move_Clock@rmy.pobox.com native-window-placement@gnome-shell-extensions.gcampax.github.com netspeed@hedayaty.gmail.com nightthemeswitcher@romainvigier.fr panel-osd@berend.de.schouwer.gmail.com remove-dropdown-arrows@mpdeimos.com status-area-horizontal-spacing@mathematical.coffee.gmail.com steal-my-focus@kagesenshi.org user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||
|
||||
# NPM packes that should be installed
|
||||
NPM_PKG="nativefier typescript"
|
||||
|
||||
# Which App to use at default etxt editor (instead of gEdit)
|
||||
DEFAULT_EDITOR="codium.desktop"
|
||||
DEFAULT_EDITOR_FILETYPES="public.plain-text public.unix-executable public.data .zsh)"
|
||||
|
||||
## Get username
|
||||
USER=`whoami`
|
||||
|
||||
## Ask for the administrator password upfront
|
||||
sudo -v
|
||||
|
||||
## Set hostname
|
||||
echo ">>> Setting hostname"
|
||||
sudo hostnamectl set-hostname ${HOST}
|
||||
|
||||
echo ">>> Adding repos"
|
||||
## Add RPM Fusion repos
|
||||
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
|
||||
sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
|
||||
## Add VSCodium repo
|
||||
sudo rpm --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
|
||||
printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=gitlab.com_paulcarroty_vscodium_repo\nbaseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg" |sudo tee -a /etc/yum.repos.d/vscodium.repo
|
||||
|
||||
## Add copr repos
|
||||
echo ">>> Adding copr repos"
|
||||
if [ ! -z "${FEDORA_COPR}" ]; then
|
||||
for copr in ${FEDORA_COPR}; do
|
||||
sudo dnf copr enable ${copr} -y
|
||||
done
|
||||
fi
|
||||
|
||||
## Add flatpak repos
|
||||
echo ">>> Adding flatpak repos"
|
||||
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
## Update repos
|
||||
echo ">>> Updating repos"
|
||||
sudo dnf upgrade -y
|
||||
|
||||
## Update installed flatpaks
|
||||
echo ">>> Updating flatpaks"
|
||||
flatpak update
|
||||
|
||||
## Install packages
|
||||
if [ ! -z "${FEDORA_PKG}" ]; then
|
||||
echo ">>> Installing packages"
|
||||
sudo dnf install ${FEDORA_PKG} -y
|
||||
fi
|
||||
|
||||
## Install flatpaks
|
||||
if [ ! -z "${FEDORA_FLAT}" ]; then
|
||||
echo ">>> Installing flatpaks"
|
||||
flatpak install ${FEDORA_FLAT} -y
|
||||
fi
|
||||
|
||||
## Install npm packages
|
||||
if [ ! -z "${NPM_PKG}" ]; then
|
||||
|
||||
echo ">>> Setting up npm"
|
||||
mkdir "${HOME}/.npm-packages"
|
||||
npm config set prefix "${HOME}/.npm-packages"
|
||||
|
||||
echo ">>> Installing NPM packages"
|
||||
npm install -g ${NPM_PKG}
|
||||
PATH="${PATH}:${HOME}/.npm-packages/bin"
|
||||
fi
|
||||
|
||||
## Install pip packages
|
||||
if [ ! -z "${FEDORA_PIP}" ]; then
|
||||
echo ">>> Installing PIP packages"
|
||||
pip install --user ${FEDORA_PIP}
|
||||
fi
|
||||
|
||||
## Apply GNOME settings
|
||||
if [ -f "gsettings.lst" ]; then
|
||||
echo ">>> Applying GNOME settings"
|
||||
cat gsettings.lst | while read line; do
|
||||
schema=$(echo $line | cut -f1 -d' ')
|
||||
key=$(echo $line | cut -f2 -d' ')
|
||||
value=$(echo $line | cut -f3- -d' ')
|
||||
echo $schema "$key => $value"
|
||||
# commented out for dry-run:
|
||||
gsettings set ${schema} ${key} "${value}"
|
||||
done
|
||||
fi
|
||||
|
||||
## Install Nord theme for gnome-terminal
|
||||
echo ">>> Installing Nord theme for gnome-terminal"
|
||||
git clone https://github.com/arcticicestudio/nord-gnome-terminal.git /tmp/gnome-terminal
|
||||
cd /tmp/gnome-terminal/src
|
||||
./nord.sh
|
||||
|
||||
## Install pop_shell
|
||||
echo ">>> Installing pop_shell"
|
||||
git clone https://github.com/pop-os/shell.git /tmp/pop_shell
|
||||
cd /tmp/pop_shell
|
||||
touch .confirm_shortcut_change
|
||||
|
||||
## No need to restart gnome-shell at this point
|
||||
sed -e '/^make restart-shell/s/^/#/' -i ./rebuild.sh
|
||||
sed -e '/^make listen/s/^/#/' -i ./rebuild.sh
|
||||
./rebuild.sh
|
||||
|
||||
## Install workspace-switcher
|
||||
echo ">>> Installing workspace-switcher"
|
||||
git clone https://github.com/tomha/gnome-shell-extension-workspace-switcher ${HOME}/.local/share/gnome-shell/extensions/workspace-switcher@tomha.github.com
|
||||
gnome-extensions enable workspace-switcher@tomha.github.com
|
||||
|
||||
# Install gnome-shell extensions
|
||||
echo ">>> Installing gnome-shell extensions"
|
||||
${HOME}/.local/bin/gnome-extensions-cli install ${GNOME_SHELL_EXTENSIONS}
|
||||
|
||||
## Install VSCodium extensions
|
||||
echo ">>> Install VSCodium extensions"
|
||||
cat ${HOME}/.config/VSCodium/User/extensions.list | xargs -L 1 codium --install-extension
|
||||
|
||||
echo ">>> Setting VSCodium as default text editor"
|
||||
xdg-mime default ${DEFAULT_EDITOR} text/plain
|
||||
|
||||
for EXT in ${EDITOR_FILETYPES}; do
|
||||
xdg-mime default ${DEFAULT_EDITOR} ${EXT}
|
||||
done
|
||||
|
||||
## Set zsh as shell
|
||||
echo ">>> Setting zsh as shell for ${USER}"
|
||||
sudo chsh -s $(which zsh) ${USER}
|
||||
|
||||
## Rebuild kernel extensions
|
||||
echo ">>> Rebuilding kernel extensions"
|
||||
sudo akmods
|
||||
|
||||
echo ">>> Everything is done. You should reboot now."
|
||||
@@ -1,412 +0,0 @@
|
||||
com.github.alainm23.planner appearance 'Light'
|
||||
com.github.alainm23.planner badge-count 'None'
|
||||
com.github.alainm23.planner button-layout 'Windows'
|
||||
com.github.alainm23.planner calendar-enabled true
|
||||
com.github.alainm23.planner quick-add-project-selected int64 0
|
||||
com.github.alainm23.planner quick-add-save-last-project false
|
||||
com.github.alainm23.planner quick-add-shortcut '<Primary>Tab'
|
||||
com.github.alainm23.planner run-in-background true
|
||||
com.github.alainm23.planner run-on-startup true
|
||||
com.github.alainm23.planner todoist-account true
|
||||
com.github.fabiocolacio.marker.preferences.editor auto-indent true
|
||||
com.github.fabiocolacio.marker.preferences.editor enable-syntax-theme true
|
||||
com.github.fabiocolacio.marker.preferences.editor highlight-current-line true
|
||||
com.github.fabiocolacio.marker.preferences.editor replace-tabs true
|
||||
com.github.fabiocolacio.marker.preferences.editor show-line-numbers true
|
||||
com.github.fabiocolacio.marker.preferences.editor show-right-margin-position uint32 80
|
||||
com.github.fabiocolacio.marker.preferences.editor show-right-margin true
|
||||
com.github.fabiocolacio.marker.preferences.editor show-spaces true
|
||||
com.github.fabiocolacio.marker.preferences.editor spell-check-lang 'de_DE'
|
||||
com.github.fabiocolacio.marker.preferences.editor spell-check true
|
||||
com.github.fabiocolacio.marker.preferences.editor syntax-theme 'tango'
|
||||
com.github.fabiocolacio.marker.preferences.editor tab-width uint32 2
|
||||
com.github.fabiocolacio.marker.preferences.editor wrap-text true
|
||||
com.github.fabiocolacio.marker.preferences.preview charter-toggle false
|
||||
com.github.fabiocolacio.marker.preferences.preview css-theme 'swiss.css'
|
||||
com.github.fabiocolacio.marker.preferences.preview css-toggle true
|
||||
com.github.fabiocolacio.marker.preferences.preview highlight-theme 'default'
|
||||
com.github.fabiocolacio.marker.preferences.preview highlight-toggle true
|
||||
com.github.fabiocolacio.marker.preferences.window enable-dark-mode false
|
||||
com.github.fabiocolacio.marker.preferences.window view-mode 'dual-pane'
|
||||
org.gnome.calendar active-view 'week'
|
||||
org.gnome.calendar follow-night-light true
|
||||
org.gnome.clocks geolocation true
|
||||
org.gnome.clocks world-clocks [{'location': <(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>}]
|
||||
org.gnome.Contacts did-initial-setup true
|
||||
org.gnome.Contacts sort-on-surname false
|
||||
org.gnome.DejaDup allow-metered false
|
||||
org.gnome.DejaDup delete-after 0
|
||||
org.gnome.DejaDup periodic-period 1
|
||||
org.gnome.DejaDup periodic true
|
||||
org.gnome.desktop.calendar show-weekdate true
|
||||
org.gnome.desktop.datetime automatic-timezone true
|
||||
org.gnome.desktop.default-applications.office.calendar exec 'gnome-calendar'
|
||||
org.gnome.desktop.default-applications.office.calendar needs-term false
|
||||
org.gnome.desktop.default-applications.office.tasks exec 'com.github.alainm23.planner'
|
||||
org.gnome.desktop.default-applications.office.tasks needs-term false
|
||||
org.gnome.desktop.default-applications.terminal exec-arg '-x'
|
||||
org.gnome.desktop.default-applications.terminal exec 'gnome-terminal'
|
||||
org.gnome.desktop.input-sources sources [('xkb', 'de+nodeadkeys')]
|
||||
org.gnome.desktop.interface clock-format '24h'
|
||||
org.gnome.desktop.interface clock-show-date true
|
||||
org.gnome.desktop.interface clock-show-seconds false
|
||||
org.gnome.desktop.interface clock-show-weekday true
|
||||
org.gnome.desktop.interface cursor-size 24
|
||||
org.gnome.desktop.interface cursor-theme 'Adwaita'
|
||||
org.gnome.desktop.interface document-font-name 'Cantarell 10'
|
||||
org.gnome.desktop.interface enable-animations true
|
||||
org.gnome.desktop.interface enable-hot-corners true
|
||||
org.gnome.desktop.interface font-name 'Cantarell 10'
|
||||
org.gnome.desktop.interface gtk-color-palette 'black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90'
|
||||
org.gnome.desktop.interface gtk-enable-primary-paste true
|
||||
org.gnome.desktop.interface gtk-key-theme 'Default'
|
||||
org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
|
||||
org.gnome.desktop.interface icon-theme 'Papirus-Dark'
|
||||
org.gnome.desktop.interface menubar-detachable false
|
||||
org.gnome.desktop.interface menus-have-tearoff false
|
||||
org.gnome.desktop.interface monospace-font-name 'Source Code Pro 9'
|
||||
org.gnome.desktop.interface overlay-scrolling true
|
||||
org.gnome.desktop.interface scaling-factor uint32 0
|
||||
org.gnome.desktop.interface show-battery-percentage true
|
||||
org.gnome.desktop.interface text-scaling-factor 1.0
|
||||
org.gnome.desktop.interface toolbar-detachable false
|
||||
org.gnome.desktop.interface toolbar-icons-size 'small'
|
||||
org.gnome.desktop.interface toolbar-style 'both-horiz'
|
||||
org.gnome.desktop.interface toolkit-accessibility false
|
||||
org.gnome.desktop.notifications application-children ['org-gnome-software', 'gnome-printers-panel', 'org-gnome-terminal', 'mozilla-thunderbird', 'org-gnome-extensions-desktop', 'com-github-alainm23-planner', 'org-gnome-dejadup', 'com-github-fabiocolacio-marker', 'com-gitlab-newsflash', 'firefox', 'libreoffice-startcenter', 'org-gnome-evolution-alarm-notify', 'org-gnome-nautilus', 'org-freedesktop-problems-applet']
|
||||
org.gnome.desktop.notifications show-banners true
|
||||
org.gnome.desktop.notifications show-in-lock-screen false
|
||||
org.gnome.desktop.peripherals.keyboard numlock-state true
|
||||
org.gnome.desktop.peripherals.keyboard remember-numlock-state true
|
||||
org.gnome.desktop.peripherals.mouse natural-scroll false
|
||||
org.gnome.desktop.peripherals.touchpad click-method 'fingers'
|
||||
org.gnome.desktop.peripherals.touchpad disable-while-typing true
|
||||
org.gnome.desktop.peripherals.touchpad edge-scrolling-enabled false
|
||||
org.gnome.desktop.peripherals.touchpad left-handed 'mouse'
|
||||
org.gnome.desktop.peripherals.touchpad middle-click-emulation false
|
||||
org.gnome.desktop.peripherals.touchpad natural-scroll true
|
||||
org.gnome.desktop.peripherals.touchpad send-events 'enabled'
|
||||
org.gnome.desktop.peripherals.touchpad speed 0.0
|
||||
org.gnome.desktop.peripherals.touchpad tap-and-drag true
|
||||
org.gnome.desktop.peripherals.touchpad tap-to-click false
|
||||
org.gnome.desktop.peripherals.touchpad two-finger-scrolling-enabled true
|
||||
org.gnome.desktop.peripherals.touchscreen output ['', '', '']
|
||||
org.gnome.desktop.peripherals.trackball accel-profile 'default'
|
||||
org.gnome.desktop.peripherals.trackball middle-click-emulation false
|
||||
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 0
|
||||
org.gnome.desktop.privacy disable-camera false
|
||||
org.gnome.desktop.privacy disable-microphone false
|
||||
org.gnome.desktop.privacy disable-sound-output false
|
||||
org.gnome.desktop.privacy hide-identity false
|
||||
org.gnome.desktop.privacy report-technical-problems false
|
||||
org.gnome.desktop.privacy send-software-usage-stats false
|
||||
org.gnome.desktop.privacy show-full-name-in-top-bar true
|
||||
org.gnome.desktop.wm.keybindings activate-window-menu ['<Alt>space']
|
||||
org.gnome.desktop.wm.keybindings always-on-top @as []
|
||||
org.gnome.desktop.wm.keybindings begin-move ['<Alt>F7']
|
||||
org.gnome.desktop.wm.keybindings begin-resize ['<Alt>F8']
|
||||
org.gnome.desktop.wm.keybindings close ['<Super>q']
|
||||
org.gnome.desktop.wm.keybindings cycle-group ['<Alt>F6']
|
||||
org.gnome.desktop.wm.keybindings cycle-group-backward ['<Shift><Alt>F6']
|
||||
org.gnome.desktop.wm.keybindings cycle-panels-backward ['<Shift><Control><Alt>Escape']
|
||||
org.gnome.desktop.wm.keybindings cycle-panels ['<Control><Alt>Escape']
|
||||
org.gnome.desktop.wm.keybindings cycle-windows ['<Alt>Escape']
|
||||
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
|
||||
org.gnome.desktop.wm.keybindings lower @as []
|
||||
org.gnome.desktop.wm.keybindings maximize-horizontally @as []
|
||||
org.gnome.desktop.wm.keybindings maximize ['<Super>Up']
|
||||
org.gnome.desktop.wm.keybindings maximize-vertically @as []
|
||||
org.gnome.desktop.wm.keybindings minimize ['<Super>comma']
|
||||
org.gnome.desktop.wm.keybindings move-to-center @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-corner-ne @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-corner-nw @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-corner-se @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-corner-sw @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-monitor-down @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Shift><Super>Left', '<Shift><Super>h']
|
||||
org.gnome.desktop.wm.keybindings move-to-monitor-right ['<Shift><Super>Right', '<Shift><Super>l']
|
||||
org.gnome.desktop.wm.keybindings move-to-monitor-up @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-side-e @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-side-n @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-side-s @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-side-w @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-10 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-11 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-12 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-1 ['<Super><Shift>Home']
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-2 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-3 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-4 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-5 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-6 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-down ['<Shift><Super>Down', '<Shift><Super>j']
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-last ['<Super><Shift>End']
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-left ['<Control><Shift><Alt>Left']
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-right ['<Control><Shift><Alt>Right']
|
||||
org.gnome.desktop.wm.keybindings move-to-workspace-up ['<Shift><Super>Up', '<Shift><Super>k']
|
||||
org.gnome.desktop.wm.keybindings panel-main-menu ['<Alt>F1']
|
||||
org.gnome.desktop.wm.keybindings panel-run-dialog ['<Alt>F2']
|
||||
org.gnome.desktop.wm.keybindings raise @as []
|
||||
org.gnome.desktop.wm.keybindings raise-or-lower @as []
|
||||
org.gnome.desktop.wm.keybindings set-spew-mark @as []
|
||||
org.gnome.desktop.wm.keybindings show-desktop @as []
|
||||
org.gnome.desktop.wm.keybindings switch-applications-backward ['<Shift><Super>Tab', '<Shift><Alt>Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-applications ['<Super>Tab', '<Alt>Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-group-backward ['<Shift><Super>Above_Tab', '<Shift><Alt>Above_Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-group ['<Super>Above_Tab', '<Alt>Above_Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-input-source-backward ['<Shift><Super>space', '<Shift>XF86Keyboard']
|
||||
org.gnome.desktop.wm.keybindings switch-input-source ['<Super>space', 'XF86Keyboard']
|
||||
org.gnome.desktop.wm.keybindings switch-panels-backward ['<Shift><Control><Alt>Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-panels ['<Control><Alt>Tab']
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-10 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-11 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-12 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-1 ['<Super>Home']
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-2 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-3 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-4 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-5 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-6 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-7 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-8 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-9 @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-down ['<Primary><Super>Down', '<Primary><Super>j']
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-last ['<Super>End']
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-left @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-right @as []
|
||||
org.gnome.desktop.wm.keybindings switch-to-workspace-up ['<Primary><Super>Up', '<Primary><Super>k']
|
||||
org.gnome.desktop.wm.keybindings switch-windows @as []
|
||||
org.gnome.desktop.wm.keybindings switch-windows-backward @as []
|
||||
org.gnome.desktop.wm.keybindings toggle-above @as []
|
||||
org.gnome.desktop.wm.keybindings toggle-fullscreen @as []
|
||||
org.gnome.desktop.wm.keybindings toggle-maximized ['<Super>m']
|
||||
org.gnome.desktop.wm.keybindings toggle-on-all-workspaces @as []
|
||||
org.gnome.desktop.wm.keybindings toggle-shaded @as []
|
||||
org.gnome.desktop.wm.keybindings unmaximize ['<Super>Down', '<Alt>F5']
|
||||
org.gnome.desktop.wm.preferences action-double-click-titlebar 'toggle-maximize'
|
||||
org.gnome.desktop.wm.preferences action-middle-click-titlebar 'none'
|
||||
org.gnome.desktop.wm.preferences action-right-click-titlebar 'menu'
|
||||
org.gnome.desktop.wm.preferences button-layout 'appmenu:minimize,maximize,close'
|
||||
org.gnome.desktop.wm.preferences disable-workarounds false
|
||||
org.gnome.desktop.wm.preferences focus-mode 'click'
|
||||
org.gnome.desktop.wm.preferences focus-new-windows 'smart'
|
||||
org.gnome.desktop.wm.preferences mouse-button-modifier '<Super>'
|
||||
org.gnome.desktop.wm.preferences num-workspaces 5
|
||||
org.gnome.desktop.wm.preferences raise-on-click true
|
||||
org.gnome.desktop.wm.preferences resize-with-right-button false
|
||||
org.gnome.desktop.wm.preferences theme 'Adwaita'
|
||||
org.gnome.desktop.wm.preferences titlebar-font 'Cantarell Bold 10'
|
||||
org.gnome.desktop.wm.preferences titlebar-uses-system-font true
|
||||
org.gnome.desktop.wm.preferences visual-bell false
|
||||
org.gnome.desktop.wm.preferences visual-bell-type 'fullscreen-flash'
|
||||
org.gnome.desktop.wm.preferences workspace-names @as []
|
||||
org.gnome.gitg.preferences.commit.diff context-lines 3
|
||||
org.gnome.gitg.preferences.commit.diff tab-width 2
|
||||
org.gnome.gitg.preferences.commit.message enable-spell-checking true
|
||||
org.gnome.gitg.preferences.commit.message show-markup true
|
||||
org.gnome.gitg.preferences.commit.message show-right-margin true
|
||||
org.gnome.gitg.preferences.commit.message show-subject-margin true
|
||||
org.gnome.gitg.preferences.commit.message spell-checking-language ''
|
||||
org.gnome.gitg.preferences.diff changes-inline false
|
||||
org.gnome.gitg.preferences.diff context-lines 3
|
||||
org.gnome.gitg.preferences.diff ignore-whitespace false
|
||||
org.gnome.gitg.preferences.diff patience false
|
||||
org.gnome.gitg.preferences.diff tab-width 2
|
||||
org.gnome.gitg.preferences.diff wrap true
|
||||
org.gnome.gitg.preferences.history collapse-inactive-lanes 2
|
||||
org.gnome.gitg.preferences.history collapse-inactive-lanes-enabled true
|
||||
org.gnome.gitg.preferences.history default-selection 'all-commits'
|
||||
org.gnome.gitg.preferences.history mainline-head true
|
||||
org.gnome.gitg.preferences.history reference-sort-order 'last-activity'
|
||||
org.gnome.gitg.preferences.history show-staged true
|
||||
org.gnome.gitg.preferences.history show-stash true
|
||||
org.gnome.gitg.preferences.history show-unstaged true
|
||||
org.gnome.gitg.preferences.history show-upstream-with-branch true
|
||||
org.gnome.gitg.preferences.history topological-order true
|
||||
org.gnome.gitg.preferences.interface default-activity 'history'
|
||||
org.gnome.gitg.preferences.interface enable-diff-highlighting true
|
||||
org.gnome.gitg.preferences.interface enable-monitoring true
|
||||
org.gnome.gitg.preferences.interface orientation 'horizontal'
|
||||
org.gnome.gitg.preferences.interface style-scheme 'classic'
|
||||
org.gnome.gitg.preferences.interface use-gravatar true
|
||||
org.gnome.gitg.preferences.main clone-directory ''
|
||||
org.gnome.gitg.state.commit paned-sidebar-position 200
|
||||
org.gnome.gitg.state.commit sign-off false
|
||||
org.gnome.mutter attach-modal-dialogs true
|
||||
org.gnome.mutter auto-maximize true
|
||||
org.gnome.mutter center-new-windows true
|
||||
org.gnome.mutter dynamic-workspaces false
|
||||
org.gnome.mutter edge-tiling true
|
||||
org.gnome.mutter workspaces-only-on-primary true
|
||||
org.gnome.nautilus.compression default-compression-format 'zip'
|
||||
org.gnome.nautilus.icon-view captions ['none', 'size', 'date_modified']
|
||||
org.gnome.nautilus.icon-view default-zoom-level 'small'
|
||||
org.gnome.nautilus.icon-view text-ellipsis-limit ['3']
|
||||
org.gnome.nautilus.list-view default-column-order ['name', 'size', 'type', 'owner', 'group', 'permissions', 'where', 'date_modified', 'date_modified_with_time', 'date_accessed', 'recency', 'starred', 'detailed_type']
|
||||
org.gnome.nautilus.list-view default-visible-columns ['name', 'size', 'date_modified', 'starred']
|
||||
org.gnome.nautilus.list-view default-zoom-level 'small'
|
||||
org.gnome.nautilus.list-view use-tree-view true
|
||||
org.gnome.nautilus.preferences always-use-location-entry false
|
||||
org.gnome.nautilus.preferences click-policy 'double'
|
||||
org.gnome.nautilus.preferences confirm-trash true
|
||||
org.gnome.nautilus.preferences default-folder-viewer 'list-view'
|
||||
org.gnome.nautilus.preferences default-sort-in-reverse-order false
|
||||
org.gnome.nautilus.preferences default-sort-order 'name'
|
||||
org.gnome.nautilus.preferences executable-text-activation 'display'
|
||||
org.gnome.nautilus.preferences fts-enabled true
|
||||
org.gnome.nautilus.preferences install-mime-activation true
|
||||
org.gnome.nautilus.preferences mouse-back-button 8
|
||||
org.gnome.nautilus.preferences mouse-forward-button 9
|
||||
org.gnome.nautilus.preferences mouse-use-extra-buttons true
|
||||
org.gnome.nautilus.preferences open-folder-on-dnd-hover true
|
||||
org.gnome.nautilus.preferences recursive-search 'local-only'
|
||||
org.gnome.nautilus.preferences search-filter-time-type 'last_modified'
|
||||
org.gnome.nautilus.preferences search-view 'list-view'
|
||||
org.gnome.nautilus.preferences show-create-link false
|
||||
org.gnome.nautilus.preferences show-delete-permanently false
|
||||
org.gnome.nautilus.preferences show-directory-item-counts 'local-only'
|
||||
org.gnome.nautilus.preferences show-hidden-files false
|
||||
org.gnome.nautilus.preferences show-image-thumbnails 'local-only'
|
||||
org.gnome.nautilus.preferences tabs-open-position 'after-current-tab'
|
||||
org.gnome.nautilus.preferences thumbnail-limit uint64 10
|
||||
org.gnome.nautilus.preferences use-experimental-views false
|
||||
org.gnome.nautilus.window-state maximized false
|
||||
org.gnome.nautilus.window-state start-with-location-bar true
|
||||
org.gnome.nautilus.window-state start-with-sidebar true
|
||||
org.gnome.nm-applet disable-connected-notifications false
|
||||
org.gnome.nm-applet disable-disconnected-notifications false
|
||||
org.gnome.nm-applet disable-vpn-notifications false
|
||||
org.gnome.nm-applet disable-wifi-create false
|
||||
org.gnome.nm-applet show-applet true
|
||||
org.gnome.nm-applet stamp 0
|
||||
org.gnome.nm-applet suppress-wireless-networks-available true
|
||||
org.gnome.settings-daemon.plugins.color night-light-enabled true
|
||||
org.gnome.settings-daemon.plugins.color night-light-schedule-automatic true
|
||||
org.gnome.shell always-show-log-out true
|
||||
org.gnome.shell.app-switcher current-workspace-only false
|
||||
org.gnome.shell development-tools true
|
||||
org.gnome.shell enabled-extensions ['dash-to-dock@micxgx.gmail.com', 'auto-move-windows@gnome-shell-extensions.gcampax.github.com', 'blyr@yozoon.dev.gmail.com', 'Move_Clock@rmy.pobox.com', 'Hide_Activities@shay.shayel.org', 'panel-osd@berend.de.schouwer.gmail.com', 'remove-dropdown-arrows@mpdeimos.com', 'status-area-horizontal-spacing@mathematical.coffee.gmail.com', 'native-window-placement', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'native-window-placement@gnome-shell-extensions.gcampax.github.com', 'nightthemeswitcher@romainvigier.fr', 'ding@rastersoft.com', 'tray-icons@zhangkaizhao.com', 'trayIconsReloaded@selfmade.pl', 'pop-shell@system76.com', 'workspace-switcher@tomha.github.com', 'netspeed@hedayaty.gmail.com', 'caffeine@patapon.info', 'appindicatorsupport@rgcjonas.gmail.com', 'steal-my-focus@kagesenshi.org']
|
||||
org.gnome.shell favorite-apps ['org.gnome.Software.desktop', 'org.gnome.Nautilus.desktop', 'firefox.desktop', 'mozilla-thunderbird.desktop', 'com.github.fabiocolacio.marker.desktop', 'com.gitlab.newsflash.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Contacts.desktop', 'com.github.alainm23.planner.desktop', 'appeditor-local-application-4.desktop', 'appeditor-local-application-5.desktop', 'appeditor-local-application-3.desktop', 'org.gnome.Terminal.desktop', 'codium.desktop', 'org.gnome.gitg.desktop', 'org.zealdocs.Zeal.desktop']
|
||||
org.gnome.shell.keybindings focus-active-notification ['<Super>n']
|
||||
org.gnome.shell remember-mount-password true
|
||||
org.gnome.shell.weather automatic-location false
|
||||
org.gnome.shell.weather locations [<(uint32 2, <('Langenlonsheim', '', false, [(0.87082178170920299, 0.1378889992795384)], [(0.87411906122272931, 0.14398966328953219)])>)>]
|
||||
org.gnome.shell.window-switcher app-icon-mode 'both'
|
||||
org.gnome.shell.window-switcher current-workspace-only true
|
||||
org.gnome.shell.world-clocks locations [<(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>]
|
||||
org.gnome.software allow-updates true
|
||||
org.gnome.software download-updates-notify true
|
||||
org.gnome.software download-updates true
|
||||
org.gnome.software enable-repos-dialog true
|
||||
org.gnome.software enable-shell-extensions-repo true
|
||||
org.gnome.software external-appstream-system-wide false
|
||||
org.gnome.software external-appstream-urls @as []
|
||||
org.gnome.software filter-default-branch true
|
||||
org.gnome.software install-bundles-system-wide true
|
||||
org.gnome.software install-timestamp int64 0
|
||||
org.gnome.software show-nonfree-prompt false
|
||||
org.gnome.software show-nonfree-ui true
|
||||
org.gnome.software show-ratings false
|
||||
org.gnome.software show-upgrade-prerelease false
|
||||
org.gnome.system.smb workgroup 'debilux'
|
||||
org.gnome.Terminal.Legacy.Keybindings close-tab '<Ctrl><Shift>w'
|
||||
org.gnome.Terminal.Legacy.Keybindings close-window '<Ctrl><Shift>q'
|
||||
org.gnome.Terminal.Legacy.Keybindings copy '<Ctrl><Shift>c'
|
||||
org.gnome.Terminal.Legacy.Keybindings copy-html 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings detach-tab 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings export 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings find-clear '<Control><Shift>J'
|
||||
org.gnome.Terminal.Legacy.Keybindings find '<Control><Shift>F'
|
||||
org.gnome.Terminal.Legacy.Keybindings find-next '<Control><Shift>G'
|
||||
org.gnome.Terminal.Legacy.Keybindings find-previous '<Control><Shift>H'
|
||||
org.gnome.Terminal.Legacy.Keybindings full-screen 'F11'
|
||||
org.gnome.Terminal.Legacy.Keybindings header-menu 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings help 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings move-tab-left '<Ctrl><Shift>Page_Up'
|
||||
org.gnome.Terminal.Legacy.Keybindings move-tab-right '<Ctrl><Shift>Page_Down'
|
||||
org.gnome.Terminal.Legacy.Keybindings new-tab '<Ctrl><Shift>t'
|
||||
org.gnome.Terminal.Legacy.Keybindings new-window '<Ctrl><Shift>n'
|
||||
org.gnome.Terminal.Legacy.Keybindings next-tab '<Control>Page_Down'
|
||||
org.gnome.Terminal.Legacy.Keybindings paste '<Ctrl><Shift>v'
|
||||
org.gnome.Terminal.Legacy.Keybindings preferences 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings prev-tab '<Control>Page_Up'
|
||||
org.gnome.Terminal.Legacy.Keybindings print 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings read-only 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings reset-and-clear 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings reset 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings save-contents 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings select-all 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings set-terminal-title 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-10 '<Alt>0'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-11 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-12 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-13 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-14 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-15 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-16 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-17 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-18 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-19 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-1 '<Alt>1'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-20 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-21 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-22 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-23 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-24 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-25 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-26 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-27 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-28 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-29 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-2 '<Alt>2'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-30 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-31 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-32 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-33 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-34 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-35 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-3 '<Alt>3'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-4 '<Alt>4'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-5 '<Alt>5'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-6 '<Alt>6'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-7 '<Alt>7'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-8 '<Alt>8'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-9 '<Alt>9'
|
||||
org.gnome.Terminal.Legacy.Keybindings switch-to-tab-last 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings toggle-menubar 'disabled'
|
||||
org.gnome.Terminal.Legacy.Keybindings zoom-in '<Ctrl>plus'
|
||||
org.gnome.Terminal.Legacy.Keybindings zoom-normal '<Ctrl>0'
|
||||
org.gnome.Terminal.Legacy.Keybindings zoom-out '<Ctrl>minus'
|
||||
org.gnome.Terminal.Legacy.Settings confirm-close true
|
||||
org.gnome.Terminal.Legacy.Settings default-show-menubar true
|
||||
org.gnome.Terminal.Legacy.Settings headerbar @mb nothing
|
||||
org.gnome.Terminal.Legacy.Settings menu-accelerator-enabled true
|
||||
org.gnome.Terminal.Legacy.Settings mnemonics-enabled false
|
||||
org.gnome.Terminal.Legacy.Settings new-tab-position 'last'
|
||||
org.gnome.Terminal.Legacy.Settings new-terminal-mode 'window'
|
||||
org.gnome.Terminal.Legacy.Settings schema-version uint32 3
|
||||
org.gnome.Terminal.Legacy.Settings shell-integration-enabled true
|
||||
org.gnome.Terminal.Legacy.Settings shortcuts-enabled true
|
||||
org.gnome.Terminal.Legacy.Settings tab-policy 'automatic'
|
||||
org.gnome.Terminal.Legacy.Settings tab-position 'top'
|
||||
org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
|
||||
org.gnome.Terminal.Legacy.Settings unified-menu false
|
||||
org.gnome.Terminal.ProfilesList default '80ac96c0-9204-43c9-b17b-cb7230049729'
|
||||
org.gnome.Terminal.ProfilesList list ['80ac96c0-9204-43c9-b17b-cb7230049729']
|
||||
org.gnome.Weather automatic-location false
|
||||
org.gnome.Weather locations [<(uint32 2, <('Langenlonsheim', '', false, [(0.87082178170920299, 0.1378889992795384)], [(0.87411906122272931, 0.14398966328953219)])>)>]
|
||||
org.gtk.Settings.FileChooser clock-format '24h'
|
||||
org.gtk.Settings.FileChooser date-format 'regular'
|
||||
org.gtk.Settings.FileChooser expand-folders true
|
||||
org.gtk.Settings.FileChooser location-mode 'path-bar'
|
||||
org.gtk.Settings.FileChooser show-hidden false
|
||||
org.gtk.Settings.FileChooser show-size-column true
|
||||
org.gtk.Settings.FileChooser show-type-column true
|
||||
org.gtk.Settings.FileChooser sort-column 'name'
|
||||
org.gtk.Settings.FileChooser sort-directories-first true
|
||||
org.gtk.Settings.FileChooser sort-order 'ascending'
|
||||
org.gtk.Settings.FileChooser startup-mode 'recent'
|
||||
org.gtk.Settings.FileChooser type-format 'category'
|
||||
282
init/mac.sh
282
init/mac.sh
@@ -1,282 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
# Inspired by https://github.com/mathiasbynens/dotfiles/blob/master/.macos from Mathias Bynens
|
||||
|
||||
MAC_HOSTNAME="leia"
|
||||
|
||||
# URLs that should be created as singlesite browsers
|
||||
MAC_NATIVEFIERSITES="https://web.threema.ch/ https://app.youneedabudget.com/"
|
||||
|
||||
# Options for nativefier
|
||||
MAC_NATIVEFIEROPTS="--darwin-dark-mode-support"
|
||||
|
||||
# URLs of additional apps that should be downloaded as zip, dmg, pkg or app
|
||||
MAC_INSTALLDOWNLOADS="https://dl.exactcode.de/tmp/3bb50ff8eeb7ad116724b56a820139fa/ExactScanPro-19.10.10.dmg https://downloads.skylum.com/luminar4/installer/mac/Luminar4Installer.zip https://downloads.binaryage.com/TotalFinder-1.13.0.dmg https://github.com/cbreak-black/ZetaWatch/releases/download/r46/ZetaWatch-r46-0-g573606.zip"
|
||||
|
||||
## Which App to use at default etxt editor (instead of TextEdit)
|
||||
DEFAULT_EDITOR="VSCodium.app"
|
||||
DEFAULT_EDITOR_FILETYPES="public.plain-text public.unix-executable public.data all)"
|
||||
|
||||
## Which commands can be run with sudo without password prompt
|
||||
SUDO_NOPASS="/usr/local/bin/htop /usr/local/bin/yabai"
|
||||
|
||||
# tmp dirs
|
||||
MAC_DOWNLOAD="/tmp/macinstall"
|
||||
MAC_NATIVEFIERTMP="/tmp/nativefier"
|
||||
|
||||
# Close any open System Preferences panes, to prevent them from overriding
|
||||
# settings we’re about to change
|
||||
osascript -e 'tell application "System Preferences" to quit'
|
||||
|
||||
# Ask for the administrator password upfront
|
||||
sudo -v
|
||||
|
||||
echo ">>> Updating macOS..."
|
||||
sudo softwareupdate -i -a
|
||||
|
||||
echo ">>> Applying settings..."
|
||||
|
||||
# Keep-alive: update existing `sudo` time stamp until `.macos` has finished
|
||||
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
|
||||
|
||||
# Set hostname
|
||||
sudo scutil --set ComputerName "$MAC_HOSTNAME"
|
||||
sudo scutil --set HostName "$MAC_HOSTNAME"
|
||||
sudo scutil --set LocalHostName "$MAC_HOSTNAME"
|
||||
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$MAC_HOSTNAME"
|
||||
|
||||
# disable automatic update downloads
|
||||
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool FALSE
|
||||
|
||||
# enable network time
|
||||
sudo systemsetup -setusingnetworktime on
|
||||
|
||||
# Enable DSDontWrite - By default, the Finder collects labels, tags, and other
|
||||
# metadata related to files on mounted SMB volumes before determining how
|
||||
# to display the files. macOS High Sierra 10.13 introduces the option for the
|
||||
# Finder to fetch only the basic information about files on a mounted SMB
|
||||
# volume, and to display them immediately in alphabetical order. This can
|
||||
# increase performance in certain environments.
|
||||
|
||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
|
||||
|
||||
# Always show scrollbars
|
||||
defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
|
||||
|
||||
# Expand save panel by default
|
||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
|
||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
|
||||
|
||||
# Expand print panel by default
|
||||
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
|
||||
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
|
||||
|
||||
# Save to disk (not to iCloud) by default
|
||||
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
|
||||
|
||||
# Automatically quit printer app once the print jobs complete
|
||||
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
|
||||
|
||||
# Disable the “Are you sure you want to open this application?” dialog
|
||||
defaults write com.apple.LaunchServices LSQuarantine -bool false
|
||||
|
||||
# Remove duplicates in the “Open With” menu (also see `lscleanup` alias)
|
||||
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
|
||||
|
||||
# Disable automatic capitalization as it’s annoying when typing code
|
||||
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
|
||||
|
||||
# Set a custom wallpaper image. `DefaultDesktop.jpg` is already a symlink, and
|
||||
# all wallpapers are in `/Library/Desktop Pictures/`. The default is `Wave.jpg`.
|
||||
#rm -rf ~/Library/Application Support/Dock/desktoppicture.db
|
||||
#sudo rm -rf /System/Library/CoreServices/DefaultDesktop.jpg
|
||||
#sudo ln -s /path/to/your/image /System/Library/CoreServices/DefaultDesktop.jpg
|
||||
|
||||
# Save screenshots to the desktop
|
||||
defaults write com.apple.screencapture location -string "${HOME}/Desktop"
|
||||
|
||||
# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
|
||||
defaults write com.apple.screencapture type -string "png"
|
||||
|
||||
# Disable shadow in screenshots
|
||||
defaults write com.apple.screencapture disable-shadow -bool true
|
||||
|
||||
# Enable subpixel font rendering on non-Apple LCDs
|
||||
# Reference: https://github.com/kevinSuttle/macOS-Defaults/issues/17#issuecomment-266633501
|
||||
defaults write NSGlobalDomain AppleFontSmoothing -int 1
|
||||
|
||||
# Enable HiDPI display modes (requires restart)
|
||||
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
|
||||
|
||||
# Set $HOME as the default location for new Finder windows
|
||||
# For other paths, use `PfLo` and `file:///full/path/here/`
|
||||
defaults write com.apple.finder NewWindowTarget -string "PfLO"
|
||||
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"
|
||||
|
||||
# Show icons for hard drives, servers, and removable media on the desktop
|
||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
|
||||
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
|
||||
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
|
||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
|
||||
|
||||
# Finder: show all filename extensions
|
||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
|
||||
|
||||
# Finder: show status bar
|
||||
defaults write com.apple.finder ShowStatusBar -bool true
|
||||
|
||||
# Finder: show path bar
|
||||
defaults write com.apple.finder ShowPathbar -bool true
|
||||
|
||||
# Display full POSIX path as Finder window title
|
||||
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
|
||||
|
||||
# Keep folders on top when sorting by name
|
||||
defaults write com.apple.finder _FXSortFoldersFirst -bool true
|
||||
|
||||
# When performing a search, search the current folder by default
|
||||
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
|
||||
|
||||
# Disable the warning when changing a file extension
|
||||
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
|
||||
|
||||
# Avoid creating .DS_Store files on network or USB volumes
|
||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
||||
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
|
||||
|
||||
# Use list view in all Finder windows by default
|
||||
# Four-letter codes for the other view modes: `icnv`, `clmv`, `glyv`
|
||||
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
|
||||
|
||||
# Enable AirDrop over Ethernet and on unsupported Macs running Lion
|
||||
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
|
||||
|
||||
# Show the /Volumes folder
|
||||
sudo chflags nohidden /Volumes
|
||||
|
||||
# Expand the following File Info panes:
|
||||
# “General”, “Open with”, and “Sharing & Permissions”
|
||||
defaults write com.apple.finder FXInfoPanesExpanded -dict \
|
||||
General -bool true \
|
||||
OpenWith -bool true \
|
||||
Privileges -bool true
|
||||
|
||||
# Don’t group windows by application in Mission Control
|
||||
# (i.e. use the old Exposé behavior instead)
|
||||
defaults write com.apple.dock expose-group-by-app -bool false
|
||||
|
||||
# Don’t automatically rearrange Spaces based on most recent use
|
||||
defaults write com.apple.dock mru-spaces -bool false
|
||||
|
||||
# Hot corners
|
||||
# Bottom left screen corner → Desktop
|
||||
defaults write com.apple.dock wvous-bl-corner -int 4
|
||||
defaults write com.apple.dock wvous-bl-modifier -int 0
|
||||
|
||||
# Check for software updates daily, not just once per week
|
||||
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
|
||||
|
||||
echo ">>> Killing apps..."
|
||||
# Kill affected apps
|
||||
for app in "Activity Monitor" \
|
||||
"cfprefsd" \
|
||||
"Finder" \
|
||||
"SystemUIServer"; do
|
||||
killall "${app}" &> /dev/null
|
||||
done
|
||||
|
||||
echo ">>> Installing Homebrew..."
|
||||
# Install homebrew
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
||||
|
||||
echo ">>> Processing Brewfile..."
|
||||
# Install apps from Brewfile
|
||||
brew bundle cleanup -f
|
||||
brew bundle install
|
||||
|
||||
echo ">>> Installing apps that are not avaliable in brew or AppStore..."
|
||||
MAC_INSTALLMOUNT="$MAC_DOWNLOAD/mount"
|
||||
mkdir -p ${MAC_INSTALLMOUNT}
|
||||
|
||||
cd $MAC_DOWNLOAD
|
||||
|
||||
# Download all packages
|
||||
for d in ${MAC_INSTALLDOWNLOADS}; do
|
||||
echo ">>> Downloading ${d}"
|
||||
curl -O ${d}
|
||||
done
|
||||
|
||||
# Extracting *.zip
|
||||
find $MAC_DOWNLOAD -name "*.zip" -print0 | while IFS= read -r -d '' f; do
|
||||
echo ">>> Extracting ${f}"
|
||||
unzip -q ${f}
|
||||
rm ${f}
|
||||
done
|
||||
|
||||
# Install *.pkg
|
||||
find $MAC_DOWNLOAD -name "*.pkg" -print0 | while IFS= read -r -d '' f; do
|
||||
echo ">>> Processing ${f}"
|
||||
sudo installer -pkg "$f" -target /
|
||||
done
|
||||
|
||||
# Install *.dmg
|
||||
find $MAC_DOWNLOAD -name "*.dmg" -print0 | while IFS= read -r -d '' f; do
|
||||
echo ">>> Processing ${f}"
|
||||
hdiutil attach $f -quiet -mountpoint ${MAC_INSTALLMOUNT}
|
||||
find ${MAC_INSTALLMOUNT} -name "*.pkg" -print0 | while IFS= read -r -d '' f; do
|
||||
echo ">>> Processing ${f}"
|
||||
sudo installer -pkg "$f" -target /
|
||||
done
|
||||
cp -rf ${MAC_INSTALLMOUNT}/*.app /Applications
|
||||
hdiutil detach ${MAC_INSTALLMOUNT} -quiet
|
||||
done
|
||||
|
||||
# Install *.app
|
||||
find $MAC_DOWNLOAD -name "*.app" -print0 | while IFS= read -r -d '' f; do
|
||||
echo ">>> Processing ${f}"
|
||||
sudo mv "${f}" /Applications/
|
||||
done
|
||||
|
||||
#rm -rf $MAC_DOWNLOAD
|
||||
|
||||
echo ">>> Creating single site browsers"
|
||||
|
||||
mkdir -p $MAC_NATIVEFIERTMP
|
||||
|
||||
for s in ${MAC_NATIVEFIERSITES}; do
|
||||
nativefier ${MAC_NATIVEFIEROPTS} ${s} ${MAC_NATIVEFIERTMP}
|
||||
done
|
||||
|
||||
find $MAC_NATIVEFIERTMP -depth 2 -name "*.app" -exec cp -rf {} /Applications \;
|
||||
|
||||
rm -rf $MAC_NATIVEFIERTMP
|
||||
|
||||
## Set default text editor
|
||||
echo ">>> Setting ${DEFAULT_EDITOR} as default text editor."
|
||||
EDITOR_ID=`osascript -e 'id of app "'${DEFAULT_EDITOR}'"'`
|
||||
|
||||
for EXT in ${EDITOR_FILETYPES}; do
|
||||
duti -s ${EDITOR_ID} ${EXT}
|
||||
done
|
||||
|
||||
echo ">>> Setting up VSCodium"
|
||||
mkdir -p "${HOME}/Library/Application Support/VSCodium/User"
|
||||
|
||||
# Link config files from ~/.config to ~/Library
|
||||
ln -sf "${HOME}/.config/VSCodium/User/settings.json" "${HOME}/Library/Application Support/VSCodium/User/settings.json"
|
||||
ln -sf "${HOME}/.config/VSCodium/User/keybindings.json" "${HOME}/Library/Application Support/VSCodium/User/keybindings.json"
|
||||
|
||||
# Install extensions
|
||||
cat ${HOME}/.config/VSCodium/User/extensions.list | xargs -L 1 code --install-extension
|
||||
|
||||
## Set up BitBar
|
||||
defaults write com.matryer.BitBar pluginsDirectory "${HOME}/.config/BitBar/"
|
||||
|
||||
## Configure sudo
|
||||
echo ">>> Configure sudo"
|
||||
for command in ${SUDO_NOPASS}; do
|
||||
echo echo "${USER} ALL = NOPASSWD: ${command}" | sudo tee -a /etc/sudoers.d/${USER}
|
||||
fi
|
||||
|
||||
## Set zsh from brew as default shell
|
||||
echo ">>> Setting /usr/local/bin/zsh as default shell for ${USER}"
|
||||
sudo chsh -s /usr/local/bin/zsh ${USER}
|
||||
Reference in New Issue
Block a user