mirror of
https://github.com/alrayyes/dotfiles/
synced 2023-11-14 15:56:30 +00:00
replaced deadd with dunst again
This commit is contained in:
parent
21f99a3edf
commit
31d65b32bf
@ -108,6 +108,7 @@ A repository of my personal configuration files.
|
|||||||
- [[https://github.com/baskerville/bspwm][bspwm]]
|
- [[https://github.com/baskerville/bspwm][bspwm]]
|
||||||
- [[https://github.com/xgi/castero][castero]]
|
- [[https://github.com/xgi/castero][castero]]
|
||||||
- [[https://github.com/hlissner/doom-emacs][Doom Emacs]]
|
- [[https://github.com/hlissner/doom-emacs][Doom Emacs]]
|
||||||
|
- [[https://dunst-project.org/][dunst]]
|
||||||
- [[https://firejail.wordpress.com/][firejail]]
|
- [[https://firejail.wordpress.com/][firejail]]
|
||||||
- [[https://fishshell.com/][fish]]
|
- [[https://fishshell.com/][fish]]
|
||||||
- [[https://git-scm.com/][git]]
|
- [[https://git-scm.com/][git]]
|
||||||
|
@ -79,6 +79,7 @@ bspc rule -a scratchpad sticky=on state=floating
|
|||||||
bspc rule -a scratchmacs sticky=on state=floating
|
bspc rule -a scratchmacs sticky=on state=floating
|
||||||
|
|
||||||
###---Autostart---###
|
###---Autostart---###
|
||||||
|
start_if_not_running dunst
|
||||||
start_if_not_running unclutter
|
start_if_not_running unclutter
|
||||||
start_if_not_running nm-applet
|
start_if_not_running nm-applet
|
||||||
start_if_not_running pasystray
|
start_if_not_running pasystray
|
||||||
|
@ -1,233 +0,0 @@
|
|||||||
[notification-center]
|
|
||||||
|
|
||||||
# Margin at the top of the notification center in pixels. This can be
|
|
||||||
# used to avoid overlap between the notification center and bars such
|
|
||||||
# as polybar or i3blocks.
|
|
||||||
marginTop = 0
|
|
||||||
|
|
||||||
# Margin at the bottom of the notification center in pixels.
|
|
||||||
marginBottom = 0
|
|
||||||
|
|
||||||
# Margin to the right of the notification center in pixels.
|
|
||||||
marginRight = 0
|
|
||||||
|
|
||||||
|
|
||||||
# Width of the notification center in pixels.
|
|
||||||
width = 500
|
|
||||||
|
|
||||||
# Monitor on which the notification center will be printed.
|
|
||||||
monitor = 0
|
|
||||||
|
|
||||||
# (Optional) Command to run at startup. This can be used to setup
|
|
||||||
# button states.
|
|
||||||
# startupCommand = "deadd-notification-center-startup"
|
|
||||||
|
|
||||||
# If newFirst is set to true, newest notifications appear on the top
|
|
||||||
# of the notification center. Else, notifications stack, from top to
|
|
||||||
# bottom.
|
|
||||||
newFirst = true
|
|
||||||
|
|
||||||
# If true, the transient field in notifications will be ignored and
|
|
||||||
# the notification will be persisted in the notifiction center anyways
|
|
||||||
ignoreTransient = false
|
|
||||||
|
|
||||||
# If true, markup (<u>, <i>, <b>, <a>) will be displayed properly
|
|
||||||
useMarkup = true
|
|
||||||
|
|
||||||
# If set to true, the parameter noClosedMsg can be set on
|
|
||||||
# notifications. If noClosedMsg is set to true on a notification,
|
|
||||||
# DBUS NotificationClosed messages will not be send for this
|
|
||||||
# notification.
|
|
||||||
configSendNotiClosedDbusMessage = false
|
|
||||||
|
|
||||||
# If set to true: If no icon is passed by the app_icon parameter
|
|
||||||
# and no application "desktop-entry"-hint is present, the notification
|
|
||||||
# center will try to guess the icon from the application name (if present).
|
|
||||||
# Default is true.
|
|
||||||
guessIconFromAppname = true
|
|
||||||
|
|
||||||
# See section "Notification based scripting" for an explenation
|
|
||||||
#match = "title=Abc;body=abc":"app=notify-send"
|
|
||||||
#modify = "transient=false"
|
|
||||||
#run = "":"killall notify-send"
|
|
||||||
|
|
||||||
[notification-center-notification-popup]
|
|
||||||
|
|
||||||
# Default timeout used for notifications in milli-seconds. This can
|
|
||||||
# be overwritten with the "-t" option (or "--expire-time") of the
|
|
||||||
# notify-send command.
|
|
||||||
notiDefaultTimeout = 10000
|
|
||||||
|
|
||||||
# Margin above notifications (in pixels). This can be used to avoid
|
|
||||||
# overlap between notifications and a bar such as polybar or i3blocks.
|
|
||||||
distanceTop = 50
|
|
||||||
|
|
||||||
# Margin on the right of the notification (in pixels).
|
|
||||||
distanceRight = 50
|
|
||||||
|
|
||||||
# Vertical distance between 2 notifications (in pixels).
|
|
||||||
distanceBetween = 20
|
|
||||||
|
|
||||||
# Width of the notifications.
|
|
||||||
width = 300
|
|
||||||
|
|
||||||
# Monitor on which the notification will be printed.
|
|
||||||
monitor = 0
|
|
||||||
|
|
||||||
# The display size of the application icons in the notification
|
|
||||||
# pop-ups and in the notification center
|
|
||||||
iconSize = 20
|
|
||||||
|
|
||||||
# The maximal display size of images that are part of notifications
|
|
||||||
# for notification pop-ups and in the notification center
|
|
||||||
maxImageSize = 100
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
# Note about colors: Colors can be represented in (at least, I mean,
|
|
||||||
# who knows...) three different ways:
|
|
||||||
# 1. #RGB with "R", "G" and "B" hexadecimal numbers (0-9, A-F or
|
|
||||||
# a-f).
|
|
||||||
# 2. #RRGGBB with each occurence of "R", "G" and "B" are hexadecimal
|
|
||||||
# numbers (0-9, A-F or a-f).
|
|
||||||
# 3. rgba(R, G, B, A) where "R", "G" and "B" are between 0 and 255
|
|
||||||
# and A is a floating point number between 0 and 1 representing
|
|
||||||
# the alpha channel (transparency).
|
|
||||||
|
|
||||||
|
|
||||||
# Background color for the notification center.
|
|
||||||
background = rgba(29, 31, 33, 0.8)
|
|
||||||
|
|
||||||
# Background color for the notification popups.
|
|
||||||
notiBackground = rgba(25, 25, 25, 0.8)
|
|
||||||
|
|
||||||
# Color for the text (summary, body and application name) in
|
|
||||||
# notification popups.
|
|
||||||
notiColor = #fef3f6
|
|
||||||
|
|
||||||
# Background color for "critical" notification popups.
|
|
||||||
critical = rgba(144, 0, 0, 0.8)
|
|
||||||
|
|
||||||
# Color for the text (summary, body and application name) in
|
|
||||||
# "critical" notification popups.
|
|
||||||
criticalColor = #FFF
|
|
||||||
|
|
||||||
# Background color for "critical" notifications in notification
|
|
||||||
# center.
|
|
||||||
criticalInCenter = rgba(144, 0, 0, 0.8)
|
|
||||||
|
|
||||||
# Color for the text (summary, body and application name) in
|
|
||||||
# "critical" notification in notification center.
|
|
||||||
criticalInCenterColor = #FFF
|
|
||||||
|
|
||||||
|
|
||||||
# Global text color
|
|
||||||
labelColor = #eae2e0
|
|
||||||
|
|
||||||
### These button configurations are applied globaly (except they
|
|
||||||
### get overwritten in the [buttons] section. The buttons section
|
|
||||||
### only applies to the configurable buttons within the notification
|
|
||||||
### center, while these configs also apply to the buttons within
|
|
||||||
### notifications.)
|
|
||||||
# Color for the text in the buttons.
|
|
||||||
buttonColor = #eae2e0
|
|
||||||
|
|
||||||
# Background color of button in hover state (mouse over)
|
|
||||||
buttonHover = rgba(0, 20, 20, 1)
|
|
||||||
|
|
||||||
# Text color of button in hover state (mouse over)
|
|
||||||
buttonHoverColor = #fee
|
|
||||||
|
|
||||||
# Background color of button
|
|
||||||
buttonBackground = transparent
|
|
||||||
|
|
||||||
[buttons]
|
|
||||||
### This section describes the configurable buttons within the
|
|
||||||
### notification center and NOT the buttons that appear in the
|
|
||||||
### notifications
|
|
||||||
|
|
||||||
# Note: If you want your buttons in the notification center to be
|
|
||||||
# squares you should verify that the following equality holds:
|
|
||||||
# [notification-center]::width
|
|
||||||
# == [buttons]::buttonsPerRow * [buttons]::buttonHeight
|
|
||||||
# + ([buttons]::buttonsPerRow + 1) * [buttons]::buttonMargin
|
|
||||||
|
|
||||||
# Numbers of buttons that can be drawn on a row of the notification
|
|
||||||
# center.
|
|
||||||
buttonsPerRow = 5
|
|
||||||
|
|
||||||
# Height of buttons in the notification center (in pixels).
|
|
||||||
buttonHeight = 60
|
|
||||||
|
|
||||||
# Horizontal and vertical margin between each button in the
|
|
||||||
# notification center (in pixels).
|
|
||||||
buttonMargin = 2
|
|
||||||
|
|
||||||
# Labels written on the buttons in the notification center. Labels
|
|
||||||
# should be written between quotes and separated by a colon. For
|
|
||||||
# example:
|
|
||||||
# labels = "VPN":"Bluetooth":"Wifi":"Screensaver"
|
|
||||||
labels = "Shutdown":"Reboot":"Screenlock"
|
|
||||||
commands = "sudo shutdown":"sudo reboot":"betterlockscreen -l"
|
|
||||||
|
|
||||||
# Each label is represented as a clickable button in the notification
|
|
||||||
# center. The commands variable below define the commands that should
|
|
||||||
# be launched when the user clicks on the associated button. There
|
|
||||||
# should be the same number of entries in `commands` and in `labels`
|
|
||||||
# commands = "sudo vpnToggle":"bluetoothToggle":"wifiToggle":"screensaverToggle"
|
|
||||||
|
|
||||||
# Color of the labels of the custom buttons in the notification
|
|
||||||
# center.
|
|
||||||
buttonColor = #fee
|
|
||||||
|
|
||||||
# Color of the custom buttons' background in the notification center.
|
|
||||||
buttonBackground = rgba(255, 255, 255, 0.15)
|
|
||||||
|
|
||||||
# Color of the custom buttons' background in the notification center
|
|
||||||
# when hovered.
|
|
||||||
buttonHover = rgba(0, 20, 20, 0.2)
|
|
||||||
|
|
||||||
# Color of the labels of the custom buttons in the notification center
|
|
||||||
# when hovered.
|
|
||||||
buttonHoverColor = #fee
|
|
||||||
|
|
||||||
# Text size of the custom buttons in the notification center.
|
|
||||||
buttonTextSize = 10pt;
|
|
||||||
|
|
||||||
# Color of the custom buttons' background in the notification center
|
|
||||||
# when its state is set to true as described in the Section Usage
|
|
||||||
buttonState1 = rgba(255,255,255,0.5)
|
|
||||||
|
|
||||||
# Color of the custom buttons' text in the notification center
|
|
||||||
# when its state is set to true as described in the Section Usage
|
|
||||||
buttonState1Color = #fff
|
|
||||||
|
|
||||||
# Color of the custom buttons' background, hovering, in the
|
|
||||||
# notification center when its state is set to true as described in
|
|
||||||
# the Section Usage
|
|
||||||
buttonState1Hover = rgba(0, 20, 20, 0.4)
|
|
||||||
|
|
||||||
# Color of the custom buttons' text, hovering, in the
|
|
||||||
# notification center when its state is set to true as described in
|
|
||||||
# the Section Usage
|
|
||||||
buttonState1HoverColor = #fee
|
|
||||||
|
|
||||||
# Color of the custom buttons' background, in the notification center
|
|
||||||
# when the button is clicked and not yet set to a new value via the
|
|
||||||
# method as described in Section Usage
|
|
||||||
buttonState2 = rgba(255,255,255,0.3)
|
|
||||||
|
|
||||||
# Color of the custom buttons' text, in the notification center
|
|
||||||
# when the button is clicked and not yet set to a new value via the
|
|
||||||
# method as described in Section Usage
|
|
||||||
buttonState2Color = #fff
|
|
||||||
|
|
||||||
# Color of the custom buttons' background,
|
|
||||||
# hovering, in the notification center when the button is clicked and
|
|
||||||
# not yet set to a new value via the method as described in Section
|
|
||||||
# Usage
|
|
||||||
buttonState2Hover = rgba(0, 20, 20, 0.3)
|
|
||||||
|
|
||||||
# Color of the custom buttons' text, hovering, in the notification
|
|
||||||
# center when the button is clicked and not yet set to a new value via
|
|
||||||
# the method as described in Section Usage
|
|
||||||
buttonState2HoverColor = #fee
|
|
@ -1,12 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [ "$1" == "inc" ]; then
|
|
||||||
xbacklight -inc 20
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" == "dec" ]; then
|
|
||||||
xbacklight -dec 20
|
|
||||||
fi
|
|
||||||
notify-send.py "Screen Brightness" "$(printf "%.0f\n" "$(xbacklight -get)")" \
|
|
||||||
--hint string:image-path:video-display boolean:transient:true \
|
|
||||||
--replaces-process "brightness-popup"
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
kill -s USR1 $(pidof deadd-notification-center)
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# This is a very hacky way of doing this. Default sink for desktop is 0 and for laptop is 3. Kies de eerste de beste die werkt
|
|
||||||
if pamixer --list-sinks | grep -q "^0"; then
|
|
||||||
sink=0
|
|
||||||
elif pamixer --list-sinks | grep -q "^3"; then
|
|
||||||
sink=3
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" == "inc" ]; then
|
|
||||||
pactl -- set-sink-volume "$sink" +5%
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" == "dec" ]; then
|
|
||||||
pactl -- set-sink-volume "$sink" -5%
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" == "mute" ]; then
|
|
||||||
pactl -- set-sink-mute "$sink" toggle
|
|
||||||
fi
|
|
||||||
|
|
||||||
VOLUME=$(pamixer --sink "$sink" --get-volume)
|
|
||||||
if [ "$(pamixer --sink "$sink" --get-mute)" == "true" ]; then
|
|
||||||
ICON=audio-volume-muted
|
|
||||||
elif [ "$VOLUME" -le 20 ]; then
|
|
||||||
ICON=audio-volume-low
|
|
||||||
elif [ "$VOLUME" -le 60 ]; then
|
|
||||||
ICON=audio-volume-medium
|
|
||||||
else
|
|
||||||
ICON=audio-volume-high
|
|
||||||
fi
|
|
||||||
|
|
||||||
notify-send.py "Volume" "$VOLUME/100" \
|
|
||||||
--hint string:image-path:$ICON boolean:transient:true \
|
|
||||||
--replaces-process "volume-popup" &
|
|
148
dunst/.config/dunstrc
Normal file
148
dunst/.config/dunstrc
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
[global]
|
||||||
|
monitor = 0
|
||||||
|
follow = keyboard
|
||||||
|
geometry = "0x0-30+20"
|
||||||
|
indicate_hidden = yes
|
||||||
|
shrink = no
|
||||||
|
transparency = 0
|
||||||
|
notification_height = 0
|
||||||
|
separator_height = 2
|
||||||
|
padding = 0
|
||||||
|
horizontal_padding = 8
|
||||||
|
frame_width = 3
|
||||||
|
frame_color = "#aaaaaa"
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
idle_threshold = 120
|
||||||
|
font = JetBrainsMono Font Medium 10
|
||||||
|
|
||||||
|
line_height = 0
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
alignment = center
|
||||||
|
show_age_threshold = 60
|
||||||
|
word_wrap = yes
|
||||||
|
ellipsize = middle
|
||||||
|
ignore_newline = no
|
||||||
|
stack_duplicates = true
|
||||||
|
hide_duplicate_count = false
|
||||||
|
show_indicators = yes
|
||||||
|
icon_position = left
|
||||||
|
max_icon_size = 32
|
||||||
|
icon_path = /usr/share/icons/Papirus-Dark/24x24/panel/:/usr/share/icons/Papirus-Dark/24x24/devices/:/usr/share/icons/Papirus-Dark/24x24/apps:/usr/share/icons/Papirus-Dark/24x24/actions
|
||||||
|
sticky_history = yes
|
||||||
|
history_length = 20
|
||||||
|
dmenu = dmenu -p dunst:
|
||||||
|
browser = /usr/local/bin/brave
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
title = Dunst
|
||||||
|
class = Dunst
|
||||||
|
startup_notification = false
|
||||||
|
corner_radius = 5
|
||||||
|
force_xinerama = false
|
||||||
|
[experimental]
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
close = ctrl+space
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
history = ctrl+grave
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification
|
||||||
|
# to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
background = "#2b2b2b"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#2b2b2b"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
frame_color = "#ff0000"
|
4
install
4
install
@ -1,11 +1,11 @@
|
|||||||
#!/usr/bin/env fish
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
# Prerequisite & inistalled apps
|
# Prerequisite & inistalled apps
|
||||||
set prerequisiteApps bat broot brave caffeine-ng exa fslint fzf graphviz isync imagemagick lightdm-gtk-greeter mailcap deadd-notification-center-bin neofetch npm pandoc-bin pamixer playerctl pulseaudio pulsemixer python pywal ripgrep stow sxiv tldr trayer udisks2 xwallpaper yarn xprop zathura
|
set prerequisiteApps bat broot brave caffeine-ng exa fslint fzf graphviz isync imagemagick lightdm-gtk-greeter mailcap neofetch npm pandoc-bin pamixer playerctl pulseaudio pulsemixer python pywal ripgrep stow sxiv tldr trayer udisks2 xwallpaper yarn xprop zathura
|
||||||
set prerequisiteFonts otf-nerd-fonts-fira-code noto-fonts ttf-unifont
|
set prerequisiteFonts otf-nerd-fonts-fira-code noto-fonts ttf-unifont
|
||||||
set prerequisiteLibraries python-panflute
|
set prerequisiteLibraries python-panflute
|
||||||
set prerequisiteLsp bash-language-server ccls php-language-server python-language-server typescript-language-server-bin vscode-css-languageserver-bin vscode-html-languageserver-bin nodejs-intelephense
|
set prerequisiteLsp bash-language-server ccls php-language-server python-language-server typescript-language-server-bin vscode-css-languageserver-bin vscode-html-languageserver-bin nodejs-intelephense
|
||||||
set configuredApps alacritty bspwm castero emacs-native-comp firejail git gnupg gtk lf deadd-notification-center-bin mpd mpv mpv-mpris ncmpcpp neomutt neovim picom redshift sxhkd tmux tuir weechat
|
set configuredApps alacritty bspwm castero emacs-native-comp firejail git gnupg gtk lf dunst mpd mpv mpv-mpris ncmpcpp neomutt neovim picom redshift sxhkd tmux tuir weechat
|
||||||
set locales aspell-en hunspell-en_GB hunspell-en_US hunspell-nl
|
set locales aspell-en hunspell-en_GB hunspell-en_US hunspell-nl
|
||||||
set golang go golangci-lint-bin
|
set golang go golangci-lint-bin
|
||||||
set shell shfmt shellcheck
|
set shell shfmt shellcheck
|
||||||
|
Loading…
Reference in New Issue
Block a user