update
This commit is contained in:
1
.config/tmux/plugins/catppuccin-tmux
Submodule
1
.config/tmux/plugins/catppuccin-tmux
Submodule
Submodule .config/tmux/plugins/catppuccin-tmux added at e30336b799
1
.config/tmux/plugins/tmux-continuum
Submodule
1
.config/tmux/plugins/tmux-continuum
Submodule
Submodule .config/tmux/plugins/tmux-continuum added at 0698e8f4b1
1
.config/tmux/plugins/tmux-floax
Submodule
1
.config/tmux/plugins/tmux-floax
Submodule
Submodule .config/tmux/plugins/tmux-floax added at 61c7f466b9
1
.config/tmux/plugins/tmux-fzf
Submodule
1
.config/tmux/plugins/tmux-fzf
Submodule
Submodule .config/tmux/plugins/tmux-fzf added at e91c1ae553
1
.config/tmux/plugins/tmux-fzf-url
Submodule
1
.config/tmux/plugins/tmux-fzf-url
Submodule
Submodule .config/tmux/plugins/tmux-fzf-url added at 16381dce1c
1
.config/tmux/plugins/tmux-resurrect
Submodule
1
.config/tmux/plugins/tmux-resurrect
Submodule
Submodule .config/tmux/plugins/tmux-resurrect added at cff343cf9e
1
.config/tmux/plugins/tmux-sensible
Submodule
1
.config/tmux/plugins/tmux-sensible
Submodule
Submodule .config/tmux/plugins/tmux-sensible added at 25cb91f42d
1
.config/tmux/plugins/tmux-sessionx
Submodule
1
.config/tmux/plugins/tmux-sessionx
Submodule
Submodule .config/tmux/plugins/tmux-sessionx added at 42c18389e7
1
.config/tmux/plugins/tmux-thumbs
Submodule
1
.config/tmux/plugins/tmux-thumbs
Submodule
Submodule .config/tmux/plugins/tmux-thumbs added at ae91d5f7c0
1
.config/tmux/plugins/tmux-yank
Submodule
1
.config/tmux/plugins/tmux-yank
Submodule
Submodule .config/tmux/plugins/tmux-yank added at acfd36e4fc
1
.config/tmux/plugins/tpm
Submodule
1
.config/tmux/plugins/tpm
Submodule
Submodule .config/tmux/plugins/tpm added at 99469c4a9b
132
.config/tmux/scripts/cal.sh
Normal file
132
.config/tmux/scripts/cal.sh
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ALERT_IF_IN_NEXT_MINUTES=10
|
||||||
|
ALERT_POPUP_BEFORE_SECONDS=10
|
||||||
|
NERD_FONT_FREE=" "
|
||||||
|
NERD_FONT_MEETING=""
|
||||||
|
|
||||||
|
get_attendees() {
|
||||||
|
attendees=$(
|
||||||
|
icalBuddy \
|
||||||
|
--includeEventProps "attendees" \
|
||||||
|
--propertyOrder "datetime,title" \
|
||||||
|
--noCalendarNames \
|
||||||
|
--dateFormat "%A" \
|
||||||
|
--includeOnlyEventsFromNowOn \
|
||||||
|
--limitItems 1 \
|
||||||
|
--excludeAllDayEvents \
|
||||||
|
--separateByDate \
|
||||||
|
--excludeEndDates \
|
||||||
|
--bullet "" \
|
||||||
|
--excludeCals "training,anderer" \
|
||||||
|
eventsToday
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_attendees() {
|
||||||
|
attendees_array=()
|
||||||
|
for line in $attendees; do
|
||||||
|
attendees_array+=("$line")
|
||||||
|
done
|
||||||
|
number_of_attendees=$((${#attendees_array[@]} - 3))
|
||||||
|
}
|
||||||
|
|
||||||
|
get_next_meeting() {
|
||||||
|
next_meeting=$(icalBuddy \
|
||||||
|
--includeEventProps "title,datetime" \
|
||||||
|
--propertyOrder "datetime,title" \
|
||||||
|
--noCalendarNames \
|
||||||
|
--dateFormat "%A" \
|
||||||
|
--includeOnlyEventsFromNowOn \
|
||||||
|
--limitItems 1 \
|
||||||
|
--excludeAllDayEvents \
|
||||||
|
--separateByDate \
|
||||||
|
--bullet "" \
|
||||||
|
--excludeCals "training,omerxx@gmail.com" \
|
||||||
|
eventsToday)
|
||||||
|
}
|
||||||
|
|
||||||
|
get_next_next_meeting() {
|
||||||
|
end_timestamp=$(date +"%Y-%m-%d ${end_time}:01 %z")
|
||||||
|
tonight=$(date +"%Y-%m-%d 23:59:00 %z")
|
||||||
|
next_next_meeting=$(
|
||||||
|
icalBuddy \
|
||||||
|
--includeEventProps "title,datetime" \
|
||||||
|
--propertyOrder "datetime,title" \
|
||||||
|
--noCalendarNames \
|
||||||
|
--dateFormat "%A" \
|
||||||
|
--limitItems 1 \
|
||||||
|
--excludeAllDayEvents \
|
||||||
|
--separateByDate \
|
||||||
|
--bullet "" \
|
||||||
|
--excludeCals "training,omerxx@gmail.com" \
|
||||||
|
eventsFrom:"${end_timestamp}" to:"${tonight}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_result() {
|
||||||
|
array=()
|
||||||
|
for line in $1; do
|
||||||
|
array+=("$line")
|
||||||
|
done
|
||||||
|
time="${array[2]}"
|
||||||
|
end_time="${array[4]}"
|
||||||
|
title="${array[*]:5:30}"
|
||||||
|
}
|
||||||
|
|
||||||
|
calculate_times() {
|
||||||
|
epoc_meeting=$(date -j -f "%T" "$time:00" +%s)
|
||||||
|
epoc_now=$(date +%s)
|
||||||
|
epoc_diff=$((epoc_meeting - epoc_now))
|
||||||
|
minutes_till_meeting=$((epoc_diff / 60))
|
||||||
|
}
|
||||||
|
|
||||||
|
display_popup() {
|
||||||
|
tmux display-popup \
|
||||||
|
-S "fg=#eba0ac" \
|
||||||
|
-w50% \
|
||||||
|
-h50% \
|
||||||
|
-d '#{pane_current_path}' \
|
||||||
|
-T meeting \
|
||||||
|
icalBuddy \
|
||||||
|
--propertyOrder "datetime,title" \
|
||||||
|
--noCalendarNames \
|
||||||
|
--formatOutput \
|
||||||
|
--includeEventProps "title,datetime,notes,url,attendees" \
|
||||||
|
--includeOnlyEventsFromNowOn \
|
||||||
|
--limitItems 1 \
|
||||||
|
--excludeAllDayEvents \
|
||||||
|
--excludeCals "training" \
|
||||||
|
eventsToday
|
||||||
|
}
|
||||||
|
|
||||||
|
print_tmux_status() {
|
||||||
|
if [[ $minutes_till_meeting -lt $ALERT_IF_IN_NEXT_MINUTES &&
|
||||||
|
$minutes_till_meeting -gt -60 ]]; then
|
||||||
|
echo "$NERD_FONT_MEETING \
|
||||||
|
$time $title ($minutes_till_meeting minutes)"
|
||||||
|
else
|
||||||
|
echo "$NERD_FONT_FREE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $epoc_diff -gt $ALERT_POPUP_BEFORE_SECONDS && epoc_diff -lt $ALERT_POPUP_BEFORE_SECONDS+10 ]]; then
|
||||||
|
display_popup
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
get_attendees
|
||||||
|
parse_attendees
|
||||||
|
get_next_meeting
|
||||||
|
parse_result "$next_meeting"
|
||||||
|
calculate_times
|
||||||
|
if [[ "$next_meeting" != "" && $number_of_attendees -lt 2 ]]; then
|
||||||
|
get_next_next_meeting
|
||||||
|
parse_result "$next_next_meeting"
|
||||||
|
calculate_times
|
||||||
|
fi
|
||||||
|
print_tmux_status
|
||||||
|
# echo "$minutes_till_meeting | $number_of_attendees"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
73
.config/tmux/tmux.conf
Normal file
73
.config/tmux/tmux.conf
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
source-file ~/.config/tmux/tmux.reset.conf
|
||||||
|
set-option -g default-terminal 'screen-256color'
|
||||||
|
set-option -g terminal-overrides ',xterm-256color:RGB'
|
||||||
|
|
||||||
|
set -g prefix ^A
|
||||||
|
set -g base-index 1 # start indexing windows at 1 instead of 0
|
||||||
|
set -g detach-on-destroy off # don't exit from tmux when closing a session
|
||||||
|
set -g escape-time 0 # zero-out escape time delay
|
||||||
|
set -g history-limit 1000000 # increase history size (from 2,000)
|
||||||
|
set -g renumber-windows on # renumber all windows when any window is closed
|
||||||
|
set -g set-clipboard on # use system clipboard
|
||||||
|
set -g status-position top # macOS / darwin style
|
||||||
|
set -g default-terminal "${TERM}"
|
||||||
|
setw -g mode-keys vi
|
||||||
|
set -g pane-active-border-style 'fg=magenta,bg=default'
|
||||||
|
set -g pane-border-style 'fg=brightblack,bg=default'
|
||||||
|
|
||||||
|
set -g @fzf-url-fzf-options '-p 60%,30% --prompt=" " --border-label=" Open URL "'
|
||||||
|
set -g @fzf-url-history-limit '2000'
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||||
|
set -g @plugin 'fcsonline/tmux-thumbs'
|
||||||
|
set -g @plugin 'sainnhe/tmux-fzf'
|
||||||
|
set -g @plugin 'wfxr/tmux-fzf-url'
|
||||||
|
set -g @plugin 'omerxx/catppuccin-tmux' # My fork that holds the meetings script bc I'm lazy af
|
||||||
|
set -g @plugin 'omerxx/tmux-sessionx'
|
||||||
|
set -g @plugin 'omerxx/tmux-floax'
|
||||||
|
set -g @floax-width '80%'
|
||||||
|
set -g @floax-height '80%'
|
||||||
|
set -g @floax-border-color 'magenta'
|
||||||
|
set -g @floax-text-color 'blue'
|
||||||
|
set -g @floax-bind 'p'
|
||||||
|
set -g @floax-change-path 'true'
|
||||||
|
set -g @sessionx-bind-zo-new-window 'ctrl-y'
|
||||||
|
set -g @sessionx-auto-accept 'off'
|
||||||
|
set -g @sessionx-custom-paths '/home/user/simone/dotfiles'
|
||||||
|
set -g @sessionx-bind 'o'
|
||||||
|
set -g @sessionx-x-path '~/dotfiles'
|
||||||
|
set -g @sessionx-window-height '85%'
|
||||||
|
set -g @sessionx-window-width '75%'
|
||||||
|
set -g @sessionx-zoxide-mode 'on'
|
||||||
|
set -g @sessionx-custom-paths-subdirectories 'false'
|
||||||
|
set -g @sessionx-filter-current 'false'
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @resurrect-strategy-nvim 'session'
|
||||||
|
set -g @catppuccin_window_left_separator ""
|
||||||
|
set -g @catppuccin_window_right_separator " "
|
||||||
|
#set -g @catppuccin_window_right_separator ""
|
||||||
|
set -g @catppuccin_window_middle_separator " █"
|
||||||
|
#set -g @catppuccin_window_middle_separator " ▇"
|
||||||
|
set -g @catppuccin_window_number_position "right"
|
||||||
|
set -g @catppuccin_window_default_fill "number"
|
||||||
|
set -g @catppuccin_window_default_text "#W"
|
||||||
|
set -g @catppuccin_window_current_fill "number"
|
||||||
|
set -g @catppuccin_window_current_text "#W#{?window_zoomed_flag,(),}"
|
||||||
|
set -g @catppuccin_status_modules_right "directory date_time"
|
||||||
|
set -g @catppuccin_status_modules_left "session"
|
||||||
|
set -g @catppuccin_status_left_separator " "
|
||||||
|
set -g @catppuccin_status_right_separator " "
|
||||||
|
set -g @catppuccin_status_right_separator_inverse "no"
|
||||||
|
set -g @catppuccin_status_fill "icon"
|
||||||
|
set -g @catppuccin_status_connect_separator "no"
|
||||||
|
set -g @catppuccin_directory_text "#{b:pane_current_path}"
|
||||||
|
set -g @catppuccin_meetings_text "#($HOME/.config/tmux/scripts/cal.sh)"
|
||||||
|
set -g @catppuccin_date_time_text "%H:%M"
|
||||||
|
|
||||||
|
run '/usr/share/tmux-plugin-manager/tpm'
|
||||||
|
# NOTE: in tmux '^a I' um all plugins zu installieren
|
||||||
|
|
||||||
40
.config/tmux/tmux.reset.conf
Normal file
40
.config/tmux/tmux.reset.conf
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# First remove *all* keybindings
|
||||||
|
# unbind-key -a
|
||||||
|
# Now reinsert all the regular tmux keys
|
||||||
|
bind ^X lock-server
|
||||||
|
bind ^C new-window -c "$HOME"
|
||||||
|
bind ^D detach
|
||||||
|
bind * list-clients
|
||||||
|
|
||||||
|
bind H previous-window
|
||||||
|
bind L next-window
|
||||||
|
|
||||||
|
bind r command-prompt "rename-window %%"
|
||||||
|
bind R source-file ~/.config/tmux/tmux.conf
|
||||||
|
bind ^A last-window
|
||||||
|
bind ^W list-windows
|
||||||
|
bind w list-windows
|
||||||
|
bind z resize-pane -Z
|
||||||
|
bind ^L refresh-client
|
||||||
|
bind l refresh-client
|
||||||
|
bind | split-window
|
||||||
|
bind s split-window -v -c "#{pane_current_path}"
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind '"' choose-window
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
bind -r -T prefix , resize-pane -L 20
|
||||||
|
bind -r -T prefix . resize-pane -R 20
|
||||||
|
bind -r -T prefix - resize-pane -D 7
|
||||||
|
bind -r -T prefix = resize-pane -U 7
|
||||||
|
bind : command-prompt
|
||||||
|
bind * setw synchronize-panes
|
||||||
|
bind P set pane-border-status
|
||||||
|
bind c kill-pane
|
||||||
|
bind x swap-pane -D
|
||||||
|
bind S choose-session
|
||||||
|
bind R source-file ~/.config/tmux/tmux.conf
|
||||||
|
bind K send-keys "clear"\; send-keys "Enter"
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||||
Binary file not shown.
39
.shell-aliases
Normal file
39
.shell-aliases
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
alias ls='ls --group-directories-first --color=auto -F'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias cp="cp -i" # confirm before overwriting something
|
||||||
|
alias df='df -h' # human-readable sizes
|
||||||
|
alias free='free -m' # show sizes in MB
|
||||||
|
alias np='nano -w PKGBUILD'
|
||||||
|
alias more=less
|
||||||
|
alias ll='ls -lF'
|
||||||
|
alias lla='ls -laF'
|
||||||
|
alias la='ls -aF'
|
||||||
|
alias l='eza -l --icons --git -a'
|
||||||
|
alias lt='eza --tree --level=2 --long --icons --git'
|
||||||
|
alias cat=bat
|
||||||
|
alias yaourts='yaourt --color --pager -Ss'
|
||||||
|
|
||||||
|
alias ..='cd ../'
|
||||||
|
alias ...='cd ../..'
|
||||||
|
alias ....='cd ../../..'
|
||||||
|
alias .....='cd ../../../..'
|
||||||
|
|
||||||
|
## GIT
|
||||||
|
alias ga='git add -p'
|
||||||
|
alias gadd='git add'
|
||||||
|
alias gb='git branch'
|
||||||
|
alias gba='git branch -a'
|
||||||
|
alias gc='git commit -m'
|
||||||
|
alias gca='git commit -a -m'
|
||||||
|
alias gco='git checkout'
|
||||||
|
alias gcoall='git checkout -- .'
|
||||||
|
alias gdiff='git diff'
|
||||||
|
alias glog='git log --graph --topo-order --pretty='\''%w(100,0,6)%C(yellow)%h%C(bold)%C(black)%d %C(cyan)%ar %C(green)%an%n%C(bold)%C(white)%s %N'\'' --abbrev-commit'
|
||||||
|
alias gp='git push origin HEAD'
|
||||||
|
alias gpu='git pull origin'
|
||||||
|
alias gre='git reset'
|
||||||
|
alias gst='git status'
|
||||||
|
#alias gobust='gobuster dir --wordlist ~/security/wordlists/diccnoext.txt --wildcard --url'
|
||||||
|
|
||||||
Reference in New Issue
Block a user