Compare commits
21 Commits
db1d2bd992
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ada0604178 | |||
| 85c0cd8691 | |||
| 1fdbf50a02 | |||
| 75b7c1f998 | |||
| 481734c291 | |||
| 8f78497f56 | |||
| 4db2c3461e | |||
| 6189aec9b5 | |||
| d85455d6c8 | |||
| fc4bcb1f0b | |||
| 7965c3bb31 | |||
| bc4d93aa75 | |||
| 3afc437234 | |||
| 85300fcd1d | |||
| 70b0241da9 | |||
| bd95ed8d4f | |||
| 05a458bd20 | |||
| 1429b3b9a7 | |||
| a202b07d1a | |||
| 2bd416e7f9 | |||
| e4469cb67d |
@@ -6,8 +6,11 @@
|
|||||||
# important for window manager and menu app (fuzzel, rofi, ..)
|
# important for window manager and menu app (fuzzel, rofi, ..)
|
||||||
# to find scripts and utilities
|
# to find scripts and utilities
|
||||||
|
|
||||||
export_paths=("${HOME}/dotfiles/scripts")
|
unset export_paths
|
||||||
|
export_paths+=("${HOME}/dotfiles/scripts")
|
||||||
|
export_paths+=("${HOME}/dotfiles/desktop-files")
|
||||||
export_paths+=("/opt/jlink")
|
export_paths+=("/opt/jlink")
|
||||||
|
export_paths+=("${HOME}/.cargo/bin")
|
||||||
|
|
||||||
for entry in ${export_paths[@]}; do
|
for entry in ${export_paths[@]}; do
|
||||||
if ! [[ -d "${entry}" ]]; then
|
if ! [[ -d "${entry}" ]]; then
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
# to find scripts and utilities
|
# to find scripts and utilities
|
||||||
|
|
||||||
export_paths=("${HOME}/dotfiles/scripts")
|
export_paths=("${HOME}/dotfiles/scripts")
|
||||||
|
export_paths+=("${HOME}/dotfiles/desktop-files")
|
||||||
export_paths+=("${HOME}/tools/jlink")
|
export_paths+=("${HOME}/tools/jlink")
|
||||||
|
|
||||||
for entry in ${export_paths[@]}; do
|
for entry in ${export_paths[@]}; do
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ fi
|
|||||||
# because `libreWolf` is ambiguous for tab completion
|
# because `libreWolf` is ambiguous for tab completion
|
||||||
if $(which librewolf &>/dev/null); then
|
if $(which librewolf &>/dev/null); then
|
||||||
alias firefox='librewolf'
|
alias firefox='librewolf'
|
||||||
|
elif $(which librewolf.appimage &>/dev/null); then
|
||||||
|
alias firefox='librewolf.appimage'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# short forms for tmux commands
|
# short forms for tmux commands
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=firefox
|
||||||
|
Comment=launch zegonix browser of choice
|
||||||
|
Exec=bash start-browser.sh
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
@@ -21,5 +21,7 @@ mouse-scroll-multiplier = 1.0
|
|||||||
app-notifications = no-clipboard-copy
|
app-notifications = no-clipboard-copy
|
||||||
copy-on-select = false
|
copy-on-select = false
|
||||||
clipboard-paste-protection = false
|
clipboard-paste-protection = false
|
||||||
|
clipboard-read = allow
|
||||||
|
clipboard-write = allow
|
||||||
|
|
||||||
theme = zegonix
|
theme = zegonix
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
[core]
|
[core]
|
||||||
pager = less -+F
|
|
||||||
editor = nvim
|
editor = nvim
|
||||||
|
|
||||||
[init]
|
[init]
|
||||||
@@ -21,6 +20,6 @@
|
|||||||
--graph \
|
--graph \
|
||||||
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
|
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
|
||||||
|
|
||||||
oneline = !git --no-pager log \
|
oneline = log \
|
||||||
-n 20 \
|
-n 20 \
|
||||||
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
|
--pretty='tformat:%C(yellow)%h %C(blue)%as%C(auto)%d %C(reset)%s'
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-icon-theme-name = Adwaita
|
gtk-icon-theme-name=Adwaita
|
||||||
gtk-theme-name = Adwaita-dark
|
gtk-theme-name=Adwaita-dark
|
||||||
gtk-font-name = JetBrainsMonoNerdFont
|
gtk-cursor-theme-name=Adwaita
|
||||||
|
gtk-font-name=JetBrainsMonoNerdFont
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-icon-theme-name = Adwaita
|
gtk-icon-theme-name=Adwaita
|
||||||
gtk-theme-name = Adwaita-dark
|
gtk-theme-name=Adwaita-dark
|
||||||
gtk-font-name = JetBrainsMonoNerdFont
|
gtk-cursor-theme-name=Adwaita
|
||||||
|
gtk-font-name=JetBrainsMonoNerdFont
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ exec --no-startup-id dunst
|
|||||||
exec --no-startup-id picom -b
|
exec --no-startup-id picom -b
|
||||||
|
|
||||||
# clean up and start polybar
|
# clean up and start polybar
|
||||||
exec_always --no-startup-id killall polybar
|
exec_always --no-startup-id pkill polybar
|
||||||
exec_always --no-startup-id bash ~/.config/polybar/launch_polybar.sh
|
exec_always --no-startup-id bash ~/.config/polybar/launch_polybar.sh
|
||||||
|
|
||||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||||
@@ -168,8 +168,8 @@ bindsym $mod+o move workspace to output up
|
|||||||
bindsym $mod+p move workspace to output right
|
bindsym $mod+p move workspace to output right
|
||||||
|
|
||||||
# take screenshots
|
# take screenshots
|
||||||
bindsym $mod+s exec --no-startup-id maim -suo | xclip -selection clipboard -t image/png
|
bindsym $mod+s exec --no-startup-id bash x11-screenshot.sh --clipboard
|
||||||
bindsym $mod+Shift+s exec --no-startup-id maim -suo "${HOME}/Pictures/screenshots/$(date '+%Y%m%d_%H%M%S').png"
|
bindsym $mod+Shift+s exec --no-startup-id bash x11-screenshot.sh
|
||||||
|
|
||||||
# use pactl for media keys
|
# use pactl for media keys
|
||||||
set $refresh_i3status killall -SIGUSR1 i3status
|
set $refresh_i3status killall -SIGUSR1 i3status
|
||||||
@@ -197,7 +197,7 @@ mouse_warping none
|
|||||||
############################
|
############################
|
||||||
|
|
||||||
# load background image
|
# load background image
|
||||||
exec --no-startup-id feh --bg-fill ~/dotfiles/images/dungeon_forest.jpg
|
exec --no-startup-id feh --bg-fill ~/dotfiles/images/pixel-windows.png
|
||||||
|
|
||||||
# window border style
|
# window border style
|
||||||
default_border pixel 2
|
default_border pixel 2
|
||||||
@@ -205,8 +205,8 @@ default_floating_border pixel 0
|
|||||||
for_window [class=".*"] border pixel 1
|
for_window [class=".*"] border pixel 1
|
||||||
|
|
||||||
# gaps between windows and screen border
|
# gaps between windows and screen border
|
||||||
gaps inner 4 px
|
gaps inner 6 px
|
||||||
gaps outer 2 px
|
gaps outer 0 px
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
# is used in the bar {} block below.
|
# is used in the bar {} block below.
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
@@ -1,69 +0,0 @@
|
|||||||
|
|
||||||
# use interactive shell instead of login shell
|
|
||||||
set-option -g default-command "/bin/bash"
|
|
||||||
|
|
||||||
# enable rgb colors
|
|
||||||
set -ag terminal-overrides ",*:RGB"
|
|
||||||
|
|
||||||
# reasonable resizing
|
|
||||||
setw -g aggressive-resize on
|
|
||||||
|
|
||||||
# start window and pane index at 1
|
|
||||||
set -g base-index 1
|
|
||||||
set -g pane-base-index 1
|
|
||||||
set-window-option -g pane-base-index 1
|
|
||||||
set-option -g renumber-windows on
|
|
||||||
|
|
||||||
# status bar
|
|
||||||
set -g status-interval 5
|
|
||||||
|
|
||||||
# buffer size
|
|
||||||
set-option -g history-limit 3000
|
|
||||||
|
|
||||||
|
|
||||||
### input options & keybindings
|
|
||||||
set-window-option -g mode-keys vi
|
|
||||||
bind-key -n M-c copy-mode
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
|
||||||
bind-key -T copy-mode-vi 'y' send -X copy-selection
|
|
||||||
|
|
||||||
# change prefix key to <space>
|
|
||||||
unbind C-b
|
|
||||||
set-option -g prefix C-Space
|
|
||||||
|
|
||||||
# window navigation
|
|
||||||
bind-key -n M-Left previous-window
|
|
||||||
bind-key -n M-Right next-window
|
|
||||||
bind-key -n M-S-Left swap-window -t -1 -d
|
|
||||||
bind-key -n M-S-Right swap-window -t +1 -d
|
|
||||||
|
|
||||||
# pane navigation
|
|
||||||
bind -n M-Left select-pane -L
|
|
||||||
bind -n M-Down select-pane -D
|
|
||||||
bind -n M-Up select-pane -U
|
|
||||||
bind -n M-Right select-pane -R
|
|
||||||
|
|
||||||
bind -n M-j swap-pane -D
|
|
||||||
bind -n M-k swap-pane -U
|
|
||||||
|
|
||||||
bind-key -n M-F1 select-layout even-horizontal
|
|
||||||
bind-key -n M-F2 select-layout main-vertical
|
|
||||||
bind-key -n M-F3 select-layout tiled
|
|
||||||
|
|
||||||
unbind x
|
|
||||||
bind-key x kill-pane -t +0
|
|
||||||
|
|
||||||
# detach current session and close terminal
|
|
||||||
bind-key k run "tmux detach -P"
|
|
||||||
|
|
||||||
# enable mouse support
|
|
||||||
set -g mouse on
|
|
||||||
# bind -n WheelUpPane {
|
|
||||||
# if -F '#{==:#{window_name},nvim}' {
|
|
||||||
# send-keys -M
|
|
||||||
# } {
|
|
||||||
# copy-mode -e
|
|
||||||
# }
|
|
||||||
# }
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
if type "xrandr"; then
|
if type "xrandr"; then
|
||||||
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
for m in $(xrandr --query | grep " connected " | cut -d" " -f1); do
|
||||||
MONITOR=$m polybar --reload toph &
|
MONITOR=$m polybar --reload toph &
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,25 +1,36 @@
|
|||||||
@theme "~/.config/rofi/themes/zegonix-blue.rasi"
|
@theme "~/.config/rofi/themes/zegonix-blue.rasi"
|
||||||
//@theme "~/.config/rofi/themes/zegonix-black.rasi"
|
// @theme "~/.config/rofi/themes/zegonix-black.rasi"
|
||||||
|
|
||||||
configuration {
|
configuration {
|
||||||
modes: "combi,window,run";
|
// mode
|
||||||
|
modes: "combi,run";
|
||||||
combi-modes: "drun,run";
|
combi-modes: "drun,run";
|
||||||
drun-match-fields: "name,generic,keywords";
|
drun-match-fields: "name,generic,keywords";
|
||||||
matching: "fuzzy";
|
|
||||||
|
// blargh?
|
||||||
monitor: -1;
|
monitor: -1;
|
||||||
terminal: "ghostty";
|
terminal: "ghostty";
|
||||||
|
no-plugins: true;
|
||||||
|
|
||||||
|
// matching
|
||||||
|
matching: "fuzzy";
|
||||||
case-sensitive: false;
|
case-sensitive: false;
|
||||||
|
|
||||||
|
// keybindings
|
||||||
kb-row-up: "Up,Control+k";
|
kb-row-up: "Up,Control+k";
|
||||||
kb-row-down: "Down,Control+j";
|
kb-row-down: "Down,Control+j";
|
||||||
kb-accept-entry: "Return,Control+m";
|
kb-accept-entry: "Return";
|
||||||
kb-remove-to-eol: "";
|
kb-remove-to-eol: "";
|
||||||
kb-clear-line: "";
|
kb-clear-line: "";
|
||||||
kb-remove-word-back: "Control+BackSpace,Control+w";
|
kb-remove-word-back: "Control+BackSpace,Control+w";
|
||||||
|
|
||||||
|
// do not cancel me!
|
||||||
timeout {
|
timeout {
|
||||||
action: "kb-cancel";
|
action: "kb-cancel";
|
||||||
delay: 0;
|
delay: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ??
|
||||||
filebrowser {
|
filebrowser {
|
||||||
directories-first: true;
|
directories-first: true;
|
||||||
sorting-method: "name";
|
sorting-method: "name";
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
* {
|
* {
|
||||||
font: "Victor Mono Nerd Font 13";
|
font: "JetBrains Mono Nerd Font 14";
|
||||||
|
|
||||||
zx-transparent: transparent;
|
zx-transparent: transparent;
|
||||||
zx-white: #C8C8C8FF;
|
zx-white: #C8C8C8FF;
|
||||||
zx-dark-blue: #080C1CEA;
|
zx-dark-blue: #000010EA;
|
||||||
zx-blue: #203050C8;
|
zx-blue: #203050C8;
|
||||||
zx-light-blue: #6bceffff;
|
zx-light-blue: #5BB8FFFF;
|
||||||
zx-cyan: #15D7E5FF;
|
zx-cyan: #15D7E5FF;
|
||||||
zx-light-grey: #A0A0ADFF;
|
zx-light-grey: #A0A0ADFF;
|
||||||
zx-dark-grey: #202028C8;
|
zx-dark-grey: #202028C8;
|
||||||
zx-black: #000000EA;
|
zx-black: #000000EA;
|
||||||
zx-background: @zx-black;
|
zx-background: @zx-black;
|
||||||
zx-secondary: @zx-dark-grey;
|
zx-secondary: @zx-dark-grey;
|
||||||
zx-accent: @zx-white;
|
zx-accent: @zx-light-grey;
|
||||||
zx-text: @zx-white;
|
zx-text: @zx-white;
|
||||||
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
@@ -20,16 +20,14 @@
|
|||||||
|
|
||||||
window {
|
window {
|
||||||
location: center;
|
location: center;
|
||||||
width: 35%;
|
width: 30%;
|
||||||
|
|
||||||
background-color: @zx-background;
|
background-color: @zx-background;
|
||||||
|
|
||||||
border: 0;
|
border: 0;
|
||||||
border-color: @zx-accent;
|
border-color: @zx-accent;
|
||||||
|
|
||||||
padding: 2 12 8 12;
|
children: [ mainbox ];
|
||||||
|
|
||||||
children: [mainbox];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mainbox {
|
mainbox {
|
||||||
@@ -37,7 +35,7 @@ mainbox {
|
|||||||
border: 0px;
|
border: 0px;
|
||||||
spacing: 8px;
|
spacing: 8px;
|
||||||
|
|
||||||
children: [inputbar, listview];
|
children: [ inputbar, listview, mode-switcher ];
|
||||||
}
|
}
|
||||||
|
|
||||||
inputbar {
|
inputbar {
|
||||||
@@ -50,7 +48,7 @@ inputbar {
|
|||||||
border: 0 0 1px 0;
|
border: 0 0 1px 0;
|
||||||
border-color: @zx-accent;
|
border-color: @zx-accent;
|
||||||
|
|
||||||
children: [prompt, entry];
|
children: [ entry ];
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt {
|
prompt {
|
||||||
@@ -72,17 +70,17 @@ listview {
|
|||||||
spacing: 5px;
|
spacing: 5px;
|
||||||
|
|
||||||
border: 0px;
|
border: 0px;
|
||||||
background-color: @transparent; //@zx-background;
|
background-color: @zx-transparent;
|
||||||
|
|
||||||
children: [element];
|
children: [ element ];
|
||||||
}
|
}
|
||||||
|
|
||||||
element {
|
element {
|
||||||
background-color: transparent;
|
background-color: @zx-transparent;
|
||||||
text-color: inherit;
|
text-color: inherit;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
|
||||||
children: [element-text];
|
children: [ element-text ];
|
||||||
}
|
}
|
||||||
|
|
||||||
element-text {
|
element-text {
|
||||||
@@ -107,3 +105,18 @@ element-text.selected {
|
|||||||
prompt, entry, element-text {
|
prompt, entry, element-text {
|
||||||
vertical-align: 0.5;
|
vertical-align: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mode-switcher {
|
||||||
|
children: [ button ];
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding: 4 0 4 0;
|
||||||
|
text-color: @zx-text;
|
||||||
|
text-transform: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.selected {
|
||||||
|
text-color: @zx-background;
|
||||||
|
background-color: @zx-accent;
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,15 +20,13 @@
|
|||||||
|
|
||||||
window {
|
window {
|
||||||
location: center;
|
location: center;
|
||||||
width: 25%;
|
width: 30%;
|
||||||
|
|
||||||
background-color: @zx-background;
|
background-color: @zx-background;
|
||||||
|
|
||||||
border: 0;
|
border: 0;
|
||||||
border-color: @zx-accent;
|
border-color: @zx-accent;
|
||||||
|
|
||||||
//padding: 2 12 8 12;
|
|
||||||
|
|
||||||
children: [mainbox];
|
children: [mainbox];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +42,6 @@ inputbar {
|
|||||||
spacing: 40px;
|
spacing: 40px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
||||||
//background-color: @zx-secondary;
|
|
||||||
text-color: @zx-text;
|
text-color: @zx-text;
|
||||||
|
|
||||||
border: 0 0 1px 0;
|
border: 0 0 1px 0;
|
||||||
@@ -72,7 +69,7 @@ listview {
|
|||||||
spacing: 5px;
|
spacing: 5px;
|
||||||
|
|
||||||
border: 0px;
|
border: 0px;
|
||||||
background-color: @zx-transparent; //@zx-background;
|
background-color: @zx-transparent;
|
||||||
|
|
||||||
children: [element];
|
children: [element];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ function __search-history {
|
|||||||
READLINE_POINT=$((0 + ${#command}))
|
READLINE_POINT=$((0 + ${#command}))
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ "$-" == *i* ]] && which fzf &>/dev/null; then
|
if [[ "$-" == *i* ]] && $(which fzf &>/dev/null); then
|
||||||
bind -r "\C-r"
|
bind -r "\C-r"
|
||||||
bind -x '"\C-r": __search-history'
|
bind -x '"\C-r": __search-history'
|
||||||
fi
|
fi
|
||||||
|
|||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if $(which librewolf &>/dev/null); then
|
||||||
|
librewolf
|
||||||
|
elif $(which librewolf.appimage); then
|
||||||
|
librewolf.appimage
|
||||||
|
else
|
||||||
|
notify-send "[ERROR]" "Failed to start browser"
|
||||||
|
fi
|
||||||
@@ -4,13 +4,17 @@ function remove-whitespace {
|
|||||||
# exclude file types
|
# exclude file types
|
||||||
# (ignore generated files/directories)
|
# (ignore generated files/directories)
|
||||||
exclude_paths=(
|
exclude_paths=(
|
||||||
'*/.git/*'
|
".git"
|
||||||
)
|
)
|
||||||
exclude_files=(
|
exclude_files=(
|
||||||
"*.lst"
|
"*.lst"
|
||||||
"*.map"
|
"*.map"
|
||||||
"*.svd"
|
"*.svd"
|
||||||
"*.sym"
|
"*.sym"
|
||||||
|
"*.doc"
|
||||||
|
"*.docx"
|
||||||
|
"*.ppt"
|
||||||
|
"*.pptx"
|
||||||
)
|
)
|
||||||
|
|
||||||
unset help
|
unset help
|
||||||
@@ -23,7 +27,7 @@ function remove-whitespace {
|
|||||||
unset args
|
unset args
|
||||||
unset arguments
|
unset arguments
|
||||||
|
|
||||||
for arg in $@; do
|
for arg in "$@"; do
|
||||||
if [[ "${arg}" =~ ^-[a-zA-Z]{2,}$ ]]; then
|
if [[ "${arg}" =~ ^-[a-zA-Z]{2,}$ ]]; then
|
||||||
temp=($(echo ${arg} | grep --color=never -o "."))
|
temp=($(echo ${arg} | grep --color=never -o "."))
|
||||||
args+=(${temp[@]/#/-})
|
args+=(${temp[@]/#/-})
|
||||||
@@ -32,14 +36,14 @@ function remove-whitespace {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
for arg in ${args[@]}; do
|
for arg in "${args[@]}"; do
|
||||||
[[ "${arg}" != "--" ]] && arguments+=("${arg}")
|
[[ "${arg}" != "--" ]] && arguments+=("${arg}")
|
||||||
done
|
done
|
||||||
unset args
|
unset args
|
||||||
|
|
||||||
for arg in ${arguments[@]}; do
|
for arg in "${arguments[@]}"; do
|
||||||
unset arg_found
|
unset arg_found
|
||||||
case ${arg} in
|
case "${arg}" in
|
||||||
"-u" | "--unix")
|
"-u" | "--unix")
|
||||||
arg_found="true"
|
arg_found="true"
|
||||||
ffunix="true"
|
ffunix="true"
|
||||||
@@ -82,26 +86,42 @@ function remove-whitespace {
|
|||||||
grep_regex=$'[[:blank:]]+\r?$'
|
grep_regex=$'[[:blank:]]+\r?$'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for arg in ${path_args[@]}; do
|
# compile exclude arguments
|
||||||
files+=($(
|
unset excludes
|
||||||
|
excludes=("(")
|
||||||
|
|
||||||
|
for n in ${!exclude_paths[@]}; do
|
||||||
|
excludes+=("-name" "${exclude_paths[$n]}")
|
||||||
|
if ((${n} < ${#exclude_paths[@]} - 1)); then
|
||||||
|
excludes+=("-o")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
excludes+=(")" "-type d" "-prune" "-o")
|
||||||
|
|
||||||
|
for arg in "${exclude_files[@]}"; do
|
||||||
|
excludes+=("-not" "-name" "${arg}")
|
||||||
|
done
|
||||||
|
|
||||||
|
for arg in "${path_args[@]}"; do
|
||||||
|
files=("$(
|
||||||
find "${arg}" \
|
find "${arg}" \
|
||||||
${exclude_paths[@]/#/-not -path } \
|
${excludes[@]} \
|
||||||
${exclude_files[@]/#/-not -name } \
|
|
||||||
-type f \
|
-type f \
|
||||||
-exec grep -EIq "${grep_regex}" {} \; \
|
-exec grep -EIq "${grep_regex}" {} \; \
|
||||||
-print
|
-print
|
||||||
))
|
)")
|
||||||
done
|
|
||||||
for arg in ${file_args[@]}; do
|
|
||||||
grep -EIq "${grep_regex}" ${arg} && files+=("${arg}")
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "${files[@]}" ]] && [[ -n "${path_args}" ]]; then
|
IFS=$'\n'
|
||||||
echo "no files with trailing whitespace or dos style line endings found"
|
files=(${files})
|
||||||
return 0
|
unset IFS
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "${help}" ]] || [[ -z "${files[@]}" ]]; then
|
for arg in "${file_args[@]}"; do
|
||||||
|
grep -EIq "${grep_regex}" "${arg}" && files+=("${arg}")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -n "${help}" ]] || [[ -z "${file_args[@]} ${path_args[@]}" ]]; then
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: remove-whitespace [-h] [-n] path [path]
|
Usage: remove-whitespace [-h] [-n] path [path]
|
||||||
|
|
||||||
@@ -123,12 +143,17 @@ EOF
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -z "${files[@]}" ]]; then
|
||||||
|
echo "no files with trailing whitespace or dos style line endings found"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "${no_action}" ]]; then
|
if [[ -z "${no_action}" ]]; then
|
||||||
for file in ${files[@]}; do
|
for file in "${files[@]}"; do
|
||||||
if [[ -n "${ffunix}" ]]; then
|
if [[ -n "${ffunix}" ]]; then
|
||||||
sed -i "${sed_cmd}" ${file}
|
sed -i "${sed_cmd}" "${file}"
|
||||||
else
|
else
|
||||||
sed -i "${sed_cmd}" ${file}
|
sed -i "${sed_cmd}" "${file}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@@ -139,7 +164,7 @@ EOF
|
|||||||
tput smso
|
tput smso
|
||||||
echo "The following files contain whitespace:"
|
echo "The following files contain whitespace:"
|
||||||
tput sgr0
|
tput sgr0
|
||||||
for file in ${files[@]}; do
|
for file in "${files[@]}"; do
|
||||||
echo "${file}"
|
echo "${file}"
|
||||||
done
|
done
|
||||||
elif [[ -z "${silent}" ]] &&
|
elif [[ -z "${silent}" ]] &&
|
||||||
@@ -148,7 +173,7 @@ EOF
|
|||||||
tput smso
|
tput smso
|
||||||
echo "The following files contained whitespace:"
|
echo "The following files contained whitespace:"
|
||||||
tput sgr0
|
tput sgr0
|
||||||
for file in ${files[@]}; do
|
for file in "${files[@]}"; do
|
||||||
echo "${file}"
|
echo "${file}"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|||||||
Executable
+26
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
unset use_clipboard
|
||||||
|
if [[ "$1" == "-c" ]] || [[ "$1" == "--clipboard" ]]; then
|
||||||
|
use_clipboard="true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $(which maim &>/dev/null); then
|
||||||
|
notify-send "[screenshot]" "missing \`maim\`"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ -n "${use_clipboard}" ]] && ! $(which xclip &>/dev/null); then
|
||||||
|
notify-send "[screenshot]" "missing \`xclip\`"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "${use_clipboard}" ]]; then
|
||||||
|
screenshots_path="${HOME}/screenshots"
|
||||||
|
echo "${screenshots_path}"
|
||||||
|
if [[ ! -d "${screenshots_path}" ]]; then
|
||||||
|
mkdir "${screenshots_path}"
|
||||||
|
fi
|
||||||
|
maim -suo "${screenshots_path}/$(date '+%Y%m%d_%H%M%S').png"
|
||||||
|
else
|
||||||
|
maim -suo | xclip -selection clipboard -t image/png
|
||||||
|
fi
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
# use interactive shell instead of login shell
|
# use interactive shell instead of login shell
|
||||||
set-option -g default-command "/bin/bash"
|
set-option -g default-command "/bin/bash"
|
||||||
|
|
||||||
# enable rgb colors
|
# configure terminal
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
set -ag terminal-overrides ",*:RGB"
|
set -ag terminal-overrides ",*:RGB"
|
||||||
|
|
||||||
# enable mouse support
|
# enable mouse support
|
||||||
|
|||||||
Reference in New Issue
Block a user